데이터베이스(Database)
- 공유하는 관련 데이터 모임. 서로 관련있는 데이터들을 하나로 통합하여 데이터베이스 구축
데이터베이스 관리 시스템(DBMS: Database Management System)
- 사용자 또는 응용 시스템과 데이터베이스간의 인터페이스 역할을 담당하는 시스템 소프트웨어
- 주요 기능
- 데이터 정의 기능: 데이터베이스에 스키마 정의
- 데이터 조작 기능
- 데이터 제어 기능: 데이터의 정확성와 안정성을 유지하기 위한 기능, 데이터의 정확성 유지를 위한 트랜젝션 관리나 접근 권한 관리 기능 - 장점
- 데이터 중복의 최소화
- 데이터 공유
- 데이터 일관성 유지
- 데이터 무결성 유지
- 데이터 보안 보장
- 전체 데이터에 대한 요구 조정
데이터베이스의 개념적 구조
ANSI/SPARC 3단계 데이터베이스 구조 (3-Layer Database Archetecture)
- ANSI(American National Standards institute)에서 Database를 개념적으로 이해하기 위해 Database를 보는 관점(View)을 세 단계로 분리하여 복잡한 구조를 단순화하여 표현함.
- 주요 목적: Database에 대한 사용자의 뷰와 Database가 실제로 표현되는 방식을 분리하기 위함
- 외부 단계 (External Level)
- 외부 스키마로 구성: Sub Schema라고도 하며, View의 개념. 개념 스키마 중 사용자에게 필요한 부분 스키마
- 각 사용자가 다른 뷰를 가지는 이유는 최종 사용자와 응용 프로그래머들은 데이터베이스의 일부분만 필요하기 때문 - 개념 단계 (Conceptual Level)
- 전체 데이터베이스의 논리적인 구조를 기술
- 개념 스키마로 구성: 전체 데이터베이스의 정의를 말하는 것으로 통합 조직별로 하나만 존재. 저장 장치에 독립적으로 기술되며, 데이터와의 관계(relationship), 제약사항, 무결성에 대한 내용이 포함. - 내부 단계 (Internal Level)
- 내부 스키마로 구성: 실제 물리적인 데이터구조에 관한 스키마. DB에 어떤 데이터가 어떻게 저장되어 있는가 기술
데이터 독립성(Data Independence) - 3-Layer Database Archetecture의 특징
하위 단계의 내용을 추상화하여 상위 단계에 그 세부 사항을 숨김으로써 한 단계 내의 변경에 대해서 다른 단계와 상호 간섭이 없도록 하는 것
- 논리적 데이터 독립성(logical data independence) : 외부 단계와 개념 단계 사이의 독립성
- 물리적 데이터 독립성(physical data independence): 개념 단계와 내부 단계 사이의 독립성
DDL / DML / DCL (SQL 언어의 분류)
- DDL (Data Definition Language)
- DBMS에 저장된 테이블 구조 정의(스키마 정의). 쿼리가 입력되면 DBMS가 스키마에 대한 명세를 시스템 카탈로그에 저장
- CREATE, ALTER, DROP, RENAME - DML (Data Manipulation Language)
- 데이터베이스의 원하는 데이터 수정, 삽입, 삭제하는 언어
- SELECT, INSERT, UPDATE, DELETE - DCL (Data Control Language)
- 데이터베이스의 규정이나 기법을 정의하고 제어하는 언어
- 권한 부여/취소, 보안, 병행수행 제어
- GRANT, REVOKE - TCL (Transaction Control Language)
- 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업 단위(트랜젝션) 별로 제어하는 언어
- COMMIT, ROLLBACK, SAVEPOINT
관계형 데이터 모델(Relational data model)
- 테이블 형식을 이용하여 데이터를 정의하고 설명한 모델
- 용어 정리 - 개념/논리 데이터 모델에서 사용
- 속성 (Attribute) - 물리 데이터 모델 Column
: 각 열의 이름
- 도메인 (Domain)
: 입력 가능한 값들의 범위
- 차수 (Degree)
: 속성의 수
- 튜플 (Tuple) - 물리 데이터 모델 Row
: 하나의 row
- 카디널리티 (Cardinality)
: 튜플의 수
- 릴레이션 (Relation)
: 2차원 테이블 구조, 튜플(tuple)과 속성(attribute)의 집합으로 구성
- 키 (Key)
: 튜플을 유일하게 식별할 수 있는 속성이나 속성의 집합
- 후보키 (Candinate key)
: 튜플을 구분할 수 있는 최소한의 속성만으로 구성된 키
- 기본키 (Primary key)
SQL(Structed Query Language)
- 관계형 데이터 모델로 표현되는 데이터베이스를 다루는 언어
Ref.
오라클 중심의 sql 배움터
'Database' 카테고리의 다른 글
[PL/SQL] Function, Procedure (0) | 2019.09.11 |
---|---|
[Oracle] 조건 검색 - WHERE 절 (0) | 2019.09.10 |
[Oracle] ERROR: ORA-00937 (0) | 2019.09.10 |
[Oracle] 서브쿼리(Sub Query) (0) | 2019.09.09 |
[Oracle] DML(Data Manipulation Language) - INSERT, UPDATE, DELETE, MERGE (0) | 2019.09.09 |