체계화 된 데이터의 집합
데이터를 구조화하여 효율적으로 처리할 수 있도록 관리
스키마(Schema)
데이터 모델을 기반으로 데이터베이스의 구조를 기술한 것
- External Schema
- 특정 유저들이 필요로 하는 데이터만 표현
- 그 외의 필요 없는 데이터들은 숨김
- 사용 언어: VDL
- Conceptual Schema
- 전체 DB의 구조를 기술
- 물리적인 저장 구조에 관한 내용은 숨김
- 사용 언어: DDL
- Internal Schema
- 물리적으로 데이터가 어떻게 표현되는지
- 사용 언어: SDL
VDL(View Definition Language)
: External Schema를 정의하기 위해 사용되는 언어 대부분의 DBMS에서는 DDL이 VDL 역할까지 수행
DDL(Data Definition Language)
: Conceptual Schema를 정의하기 위해 사용되는 언어 (Internal Schema까지 정의하는 경우도 있음)
SDL(Storage Definition Language)
: Internal Schema를 정의하기 위해 사용되는 언어 (최근에는 SDL 사용 대신 파라미터의 설정 등으로 대체)
DML(Data Manipulation Language)
: Database에 있는 Data를 활용하기 위해 사용되는 언어 (추가, 삭제, 수정, 검색 등)
SQL
: 위의 언어들을 통합
제약 조건
RDB에서 Relations가 갖는 제약 사항
1. 암시적 제약 조건 :: Implicit Constraints
Relational Database Model 자체가 갖는 제약 조건
- Relation은 중복되는 Tuple을 가질 수 없다.
- Relation 내에서 같은 이름의 속성을 가질 수 없다.
2. 명시적 제약 조건 :: Explicit Constraints
주로 DDL을 통해 스키마에 직접 명시할 수 있는 제약 조건
무결성 제약 조건
: 데이터 베이스에 저장된 데이터의 무결성을 보장하고 데이터베이스의 상태를 일관되게 유지 하는 것
무결성이란?
데이터의 정확성, 일관성, 유효성이 유지되는 것
- 개체 무결성
Primary Key는 Null 값을 가질 수 없다. - 참조 무결성
FK와 PK의 도메인이 같아야 하고, PK에 없는 값을 FK가 값으로 가질 수 없다. - 도메인 무결성
속성의 값은 해당 속성의 도메인에 속한 값이어야 한다. - 키 무결성
서로 다름 튜플은 같은 값의 키를 가질 수 없다. - Null 무결성
속성이 Not Null로 명시되었다면 Null 값을 가질 수 없다. - 고유 무결성
각 튜플에서 하나의 속성 값은 중복된 값이 없는 각각 서로 다른 값을 가져야 한다.