관계 데이터 모델
: 동일 구조(relation) 관점에서 모든 데이터를 논리적으로 구성
- relation(=table, file) : 2차원 테이블, tuple의 집합(중복 허용 X)
- tuple(=record, row) : relation의 각 행, 순서 중요 X
- attribute(=column, field) : relation에서 이름을 가진 하나의 column
- domain : 한 attribute에 나타낼 수 있는 값들의 집합
- degree(차수) : 한 relation에 들어있는 attribute 수
- cardinality : relation의 tuple 수
- null value(널값) : 알려지지 않음(현재 상태에서 알 수 없음) or 적용할 수 없음(존재할 수 없음)
- relation schema(릴레이션 스키마) : relation의 이름과 attribute의 집합 (relation을 위한 틀이자 framework)
- relation instance(릴레이션 인스턴스) : relation의 어느 시점에 들어있는 tuple 집합 (시간 흐름 따라 계속 변화)
key : 각 tuple을 고유하게 식별할 수 있는 attribute들의 모임
- super key(수퍼 키) : 한 relation 내 특정 tuple을 고유하게 식별 (꼭 필요하지 않은 attribute도 포함할 수 있음)
- candidate key(후보 키) : 각 tuple 고유하게 식별하는 최소한의 attribute 모임
- composite key(복합 키) : 2개 이상의 후보 키
- primary key(기본 키) : 한 relation 내 후보 키가 2개 이상 있는 경우 하나를 기본 키로 설정
- alternate key(대체 키) : 기본 키가 아닌 후보 키
- foreign key(외래 키) : 기본 키를 참조하는 attribute
무결성 제약조건
1. domain constraint(도메인 제약조건)
: 데이터 형식 및 CHECK 제약 조건을 통해 attribute의 default 값, 범위 지정 가능
-- attribute에 도메인 제약 지정
CREATE TABLE Persons(
ID int NOT NULL,
LASTNAME varchar(255) NOT NULL,
FirstName varchar(255),
Age int CHECK (Age >= 18)
);
-- 여러 attribute에 걸친 도메인 제약 지정
CREATE TABLE Persons(
ID int NOT NULL,
LASTNAME varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255),
CONSTRAINT CHK_Person CHECK (Age >= 18 AND City = 'Sandnes)
);
2. key constraint(키 제약조건)
: 키 attribute에 중복된 값이 존재해서는 안됨
CREATE TABLE Persons(
ID int NOT NULL UNIQUE,
LASTNAME varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
CREATE TABLE Persons(
ID int NOT NULL,
LASTNAME varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT UC_Person UNIQUE (ID, LastName)
);
3. entity integrity constrain(엔티티 무결성 제약조건)
: 기본 키를 구성하는 어떤 attribute도 null값을 가질 수 없음 (대체 키는 적용 X)
referential integrity constraint(참조 무결성 제약조건) : 두 relation의 연관된 tuple 사이의 일관성 유지하는데 사용
CREATE TABLE EMPLOYEE(
EMPNO int primary key,
EMPNAME varchar(100),
DNO int,
CONSTRAINT EMPLOYEE_DNO_FK REFERENCES DEPARTMENT(DNO)
)
반응형
'COMPUTER SCIENCE > DATABASE' 카테고리의 다른 글
[SQL] 4. SQL (0) | 2019.04.25 |
---|---|
[SQL] 1. 데이터베이스 시스템 (0) | 2019.04.24 |
[SQL] 3. 관계 대수 (0) | 2019.03.30 |