※관계 데이터 모델
■용어 설명
릴레이션 | 관계 | 스키마(내포) | 인스턴스(외연) | 도메인 | 차수 | 카디날리티 |
행과 열로 구성된 테이블 | 릴레이션과 데이터 , 릴레이션과 릴레이션의 관계 | 속성,특징 | 데이터,내용 | 속성이 가질 수 있는 값 | 속성의 개수 | 튜플의 수 |
■릴레이션의 특징
●속성
1.속성은 하나씩만 있어야하며
2.서로 다른 이름,
3.한 속성에서는 같은 도메인값(자료형)
4.순서는 상관없다.
●투플
1.중복은 허용하지 않는다
2.순서는 상관없다
■키
데이터베이스에서 키는 특정 투플을 식별할 때 사용하는 속성 혹은 속성의 집합이다.
●슈퍼키
투플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합
●후보키
투플을 유일하게 식별할 수 있는 최소의 집합
●기본키
여러 후보키 중 하나를 선정하여 대표로 삼는 키
※기본키 선정 시 고려사항
1.릴레이션 내 투플을 식별할 수 있는 고유한 값을 가져야함
2.NULL 값은 허용하지 않음
●대리키
마땅한 기본키가 없을 때 일련번호 같은 가상의 속성을 만들어 기본키로 만드는것
인조키라고 함
●대체키
기본키로 선정되지않은 후보키
●외래키
관계에 사용, 다른 테이블의 기본키를 참조하는키
※외래키 선정시 고려사항
1.도메인 같아야하고 참조되는 값이 변하면 참조하는 값도 변해야한다.
2.NULL값이 들어가도 되며,중복이 가능하고, 자기자신을 참조할 수 있으며 기본키의 일부도 가능하다.
■데이터무결성
●도메인 무결성 제약조건
투플이 각 속성의 도메인에 지정된 값만을 가져야 한다는 조건
●개체 무결성 제약조건
기본키 제약조건
●참조 무결성 제약조건
자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야 하며, 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다는 것
->삭제나 수정시 부모 릴레이션과 자식 릴레이션 모두 영향이 있다
■관계대수
어떻게 질의를 수행하는가 -> 절차적인 언어
●관계대수식
연산자<조건> 릴레이
●관계대수 연산자
SELECT | δ(시그마) | δ<조건>(R) | 조건 선택 |
PROJECT | π(파이) | π<리스트>(R) | 속성 별 리스트 가져오기 |
JOIN | ⋈(보타이) | R⋈<조건>S | 조건에 맞는 두 릴레이션 가져오기 |
DIVISION | ÷(나누기) | R÷S | S에 해당하는 값을 가지고 있는 행가져오기 |
●각 연산 및 연산별 차수/ 카디널리티 변화
●합집합
중복제거 후 두 릴레이션을 합침
->연산 후 차수가 같지만 카디널리티는 같거나 작다.
●교집합
두 릴레이션이 공통으로 가지고 있는 것을 보여줌
->연산 후 차수는 같고 카디널리티는 두 릴레이션의 어느것 보다 크지않다
●차집합
두 릴레이션에서 겹치지않는 부분 보여줌
->연산 후 차수는 같다
-> 카디널리티 R-S일경우는 R과 같거나 작고 S-R이면 S와 같거나 작다.
●카티션프로덕트
->전체x전체 연산
->연산 후 두 릴레이션의 차수를 더한게 차수이고 카디널리티는 두 릴레이션의 카디널리티의 곱이다.
■조인연산
두 릴레이션의 공통 속성을 기준으로 속성 값이 같은 투플을 수평으로 결합하는 연산
R⋈<조건>S
->동등조인 조건에서 =연산자를 사용한 조인
●자연조인
동등조인에서 중복되는 값을 제외한 연산
R⋈N<조건>S
●외부조인선이 있는 쪽에 있는값 모두 출력(상대 릴레이션이랑 맞췄을 때 NULL값이여도 출력)