본문 바로가기

Programming

관계 데이터 모델

● 관계 데이터 모델

수학자 E. F. Codd 박사가 제안한 모델로써, 수학의 집합이론에 근거하고 있어 타 모델에 비해 튼튼한 이론적인
토대를 갖고 있다. 또한 관계 데이터 모델이 적용된 SQL 언어는 비절차적인 언어로 원하는 데이터를 쉽게 표현하는 장점이 있다.

● 릴레이션과 용어 정리

릴레이션은 행과 열로 구성되는 테이블이다.



① 스키마 : 관계 데이터베이스의 릴레이션이 어떻게 구성되는지 어떤 정보를 담고 있는지에 대한 기본적인
            구조를 정의한다.
② 인스턴스 : 정의된 스키마에 따라 테이블에 실제로 저장되는 데이터의 집합.
③ 카디날리티 : 투플(or 행)의 수
④ 차수 : 속성(or 열)의 수
⑤ 도메인 : 속성이 가질 수 있는 값의 집합

※스키마 표기법



● 릴레이션의 특징

① 속성은 단일 값을 가진다. 
② 속성은 서로 다른 이름을 가진다.
③ 한 속성은 모두 같은 도메인 값을 가진다.
④ 속성의 순서는 상관없다.
⑤ 릴레이션 내의 중복된 투플은 허용하지 않는다.
⑥ 투플의 순서는 상관없다.



● 무결성 제약조건

① 키 : 관계 데이터베이스에서 키는 릴레이션에서 특정 투플을 식별할 때 사용하는 속성 혹은 속성의 집합이다.
② 슈퍼키 : 유일성만 만족하면 된다. ( 후보키를 포함한 모든 속성의 집합 )
③ 후보키 : 유일성, 최소성 ( 없어도 되는 속성이 있으면 후보키가 아니다 )
④ 기본키 : 후보키들 중에서 선택된 하나의 키 ( 중복불가, 필수입력 )
⑤ 대체키 : 후보키들 중에서 기본키로 선택되지 않은 키
⑥ 외래키 : 한 릴레이션의 기본키를 참조하는 키 ( NULL 값 입력이 가능하고, 기본키와 달리 중복이 허용된다 )
             도메인이 서로 같아야한다는 조건이 있다.
⑦ 대리키 : 마땅한 기본키가 없을 때 속성을 하나 만들어 그것을 기본키로 설정하는 것.


● 외래키의 특징

① 관계 데이터 모델의 릴레이션 간의 관계를 표현한다. 
② 다른 릴레이션의 기본키를 참조하는 속성이다.
③ 참조하고 참조되는 양쪽 릴레이션의 도메인은 서로 같아야 한다.
④ 참조되는 값이 변경되면 참조하는 값도 변경된다.
⑤ NULL 값과 중복 값 등이 허용된다.
⑥ 외래키가 기본키의 일부가 될 수 있다.



● 무결성 제약조건

데이터 무결성은 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것을 말한다.

① 도메인 무결성 제약조건 : 릴레이션 내의 투플들은
 각 속성의 도메인에 지정된 값만을 가져야 한다.

② 개체 무결성 제약조건 : 기본키는 NULL 값을 가져서는 안되며 릴레이션 내에 오직 하나의 값만 존재한다.
③ 참조 무결성 제약조건 : 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야 하며,
                        자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다는 것이다.
④ 고유성 제약조건 : 키 속성의 모든 값들은 서로 같은 값이 없어야 한다는 것이다. 기본키 제약과는 달리
                    NULL 값을 허용한다.


● 참조 무결성 제약조건의 옵션

① RESTRICTED : 자식 릴레이션에서 참조하고 있을 경우 부모 릴레이션의 삭제 작업을 거부한다.
② CASCADE    : 자식 릴레이션의 관련 투플을 같이 삭제한다. ( 외래키 설정 뒤에 ON DELETE CASCADE)
③ DEFAULT    : 자식 릴레이션의 관련 투플을 미리 설정해둔 값으로 변경한다.
④ NULL        : 자식 릴레이션의 관련 투플을 NULL 값으로 설정한다. ( ON DELETE SET NULL )


● 관계대수

주요 연산자 

사용 예 

설명 

셀렉션 ( σ )

σA=a1 or A=a2 (R1) 

R1에서 조건에 맞는 투플을 추출한다.

프로젝션 ( π )

πA,B(R2)

R2에서 조건에 맞는 속성만을 추출한다.

합집합 ( ∪ )

R1 ∪ R2 

R1과 R2의 합집합을 구한다. 
중복은 제거한다.

차집합( - )

R1 - R2 

R1과 R2의 차집합을 구한다. 

조인( ▷◁ )

R1 ▷◁R1.C=R2.C R2 

R1과 R2의 카티전 프로덕트를 구하여 조건에 맞는 투플을 추출한다.

세타조인 : 조인에 참여하는 두 릴레이션의 속성 값을 비교하여 조건을 만족하는 투플만 반환한다.
동등조인 : 세타조인에서 = 연산자를 사용한 조인 ( 모든 필드가 나온다. 단순히 두 테이블의 필드를 합친다.)
자연조인 : 동등조인에서 조인에 참여한 속성이 두 번 나오지 않도록 두 번째 속성을 제거한 결과를 반환한다.
외부조인 : 자연조인의 확장된 형태로 자연조인 시 실패한 투플을 모두 보여주되 값이 없는 대응 속성에는 NULL
          값을 채워서 반환한다. ( 왼쪽 외부조인, 완전 외부조인, 오른쪽 외부조인이 있다. )


ex ) 관계대수식



'Programming' 카테고리의 다른 글

SQL 문법 정리 - CREATE , ALTER , DROP  (0) 2015.02.04
SQL 문법 정리 - SELECT  (0) 2015.02.03
Move , Turn  (0) 2015.01.30
C# 스크립트  (0) 2015.01.29
Unity 기본 인터페이스  (0) 2015.01.29