Real World에서 Row, Column, Table이라고 부르는 요소를, Relational Data Model에서는 Tuple, Attribute, Relation이라고 바꾸어 부른다. 즉, Attribute로 구성된 Tuple의 집합으로 Relation을 표현하고, 이러한 Relation들이 모여 Database를 이루는 것이다. ER 모델링 이후에 Relational Model로 변환되며, 이 때 attribute의 수를 degree, tuple의 수를 cardinality라고 한다. 참고로 Relation은 대문자로, Attribute는 Camel Case로 표기하는 것이 관례이다.
Relation은 Relation Schema를 따라 구성되며, 이 때
Relation Schema에는 attribute, data type, constraints, primary key, foreign key, default value 등이 포함될 수 있다.
① Tuple randomness(무순서성)
② Attribute randomness
③ Attribute의 원자성
데이터 모델의 스키마에서 DDL로 표현되는 제약 조건을 스키마 기반 제약조건이라 부른다. 이 제약조건은 모든 relation 인스턴스들이 반드시 만족해야 한다. 이러한 이유로 Relational Database의 스키마를 S + IC(Schema + Integrity Constraints) 구조라고 말하기도 한다.
※ Relational Database Schema와 Relation Schema
두 용어가 비슷하게 생기긴 했지만, 실상은 완전히 다른 개념이다. 말 그대로, 데이터베이스와 테이블의 차이이다. 즉, Relational Database Schema는 전체 데이터베이스의 설계 및 구조를 나타내는 것이며, Relation Schema는 개별 테이블의 설계와 구조를 나타내는 것이다.
① relation은 집합이므로, 중복을 허용하지 않는다.
② key의 종류
Attribute는 null을 허용하거나 허용하지 않을 수 있다. 만약, null이 허용되지 않는 경우 attribute는 null 값을 가질 수 없다. 아래와 같은 DDL이 있다고 가정해보자.
CREATE TABLE DEPARTMENT
(DNAME VARCHAR(15) NOT NULL,
DNUMBER INT,
MGRSSN CHAR(9) NOT NULL,
MGRSTARTDATE DATE,
PRIMARY KEY(DNUMBER),
UNIQUE(DNAME)
FOREIGN KEY(MGRSSN) REFERENCES EMPLOYEE(SSN));
DNAME(부서명) 필드는 NOT NULL로 제한된다. 이 때 DNUMBER는 pk이므로, NOT NULL을 명시하지 않아도 NOT NULL로 제한되며, NULL에 대한 조건이 명시되어 있지 않은 MGRSTARTDATE는 기본 값인 NULL(nullable)이 적용된다.
참고로 Null 허용 여부는 해당 attribute가 mandatory인지, optional인지로 결정할 수 있다.
참조 무결성 제약조건은 Relation 생성과 Tuple 추가에 순서가 필요함을 의미한다.
① 개념
② 활용 예시