관계 데이터 모델의 기본 개념
개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델
<도서 Table>
도서번호 | 도서이름 | 출판사 | 가격 |
1 | 축구의 역사 | 한별 | 10000 |
2 | 축구 아는 여자 | 빛나 | 12000 |
<속성과 튜플>
열을 속성이라고 한다. 속성의 개수는 '차수'라고 부른다.
행을 튜플(tuple)이라고 한다. 튜플의 개수는 '카디널리티'라고 부른다.
<스키마와 인스턴스>
도서번호, 도서이름, 출판사 등 속성의 이름을 통틀어서 '스키마'라고 부른다.
속성의 값을 '인스턴스'라고 부른다.
릴레이션(relation)
하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것
테이블 내에 객체를 표현하고자 하는 모델
행과 열로 구성된 테이블
관계 데이터 모델의 기본 용어
> 도메인
하나의 속성이 가질 수 있는 모든 값의 집합
ex) 중학교 학년 : 1학년, 2학년, 3학년
속성값을 입력 및 수정할 때 적합성 판단의 기준이 된다.
> 널(NULL)
속성값을 아직 모르거나 해당되는 값이 없음을 표현
> 차수(degree)
하나의 릴레이션에서 속성의 전체 개수
> 카디널리티
하나의 릴레이션에서 튜플의 전체 개수
릴레이션의 구성
릴레이션 스키마
> 릴레이션의 논리적 구조
> 릴레이션의 이름과 릴레이션에 포함된 모든 속성 이름으로 정의
> 릴레이션 내포라고도 함
> 정적인 특징(수정될 일이 적다.)
릴레이션 인스턴스
> 릴레이션에 존재하는 투플들의 집합 ( 중복되는 투플이 있어서는 안된다.)
> 릴레이션 외면이라고도 함
> 동적인 특징
릴레이션의 특성
> 투플의 유일성 ( 중복되는 투플이 있을 수 없다.)
> 투플의 무순서 (투플 사이의 순서는 무의미하다.)
> 속성의 무순서 (속성 사이의 순서는 무의미하다.)
> 속성의 원자성 (속성 값으로 원자값만 사용할 수 있다.)
키(Key)
릴레이션에서 투플을 유일하게 구별하는 속성 또는 속성들의 집합. 따라서 투플은 중복된 값을 허용하지 않는다.
키는 릴레이션 간의 관계를 맺는 데도 사용됨
키의 특성
> 유일성: 하나의 릴레이션에서 모든 투플은 서로 다른 키값을 가져야 한다.
> 최소성: 꼭 필요한 최소한의 속성들로만 키를 구성
키의 종류
> 슈퍼키 : 유일성을 만족하는 속성 또는 속성들의 집합. 최소성을 만족하지 않음 (중복되는 값을 가지지 않음)
예) 고객아이디 + 고객이름, 고객이름+주소 등등....
> 후보키 : 최소성과 유일성을 가진 속성 또는 속성들의 집합
> 기본키 : 후보키 중 기본적으로 사용하기 위해 선택한 키
릴레이션 내 투플을 식별할 수 있는 고유한 값을 가져야 한다.
NULL 값을 허용하지 않는다.
예) 고객아이디
> 대체키 : 기본키로 선택되지 못한 후보키
예) 고객이름, 주소
> 외래키 : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
관계 데이터 모델의 제약
무결성 제약조건 : 데이터의 무결성을 보장하고 일관된 상태로 유지하기 위한 규칙
- 개체 무결성 제약조건 : 기본키를 구성하는 모든 속성은 널 값을 가질 수 없다. 릴레이션 내에 오직 하나의 값만 존재 해야 한다는 조건
※ 삽입 : 기본키 값이 같으면 삽입이 금지된다.
※ 수정 : 기본키 값이 같거나 NULL로도 수정이 금지
※ 삭제 : 특별한 확인이 필요하지 않으며 즉시 수행함
- 참조 무결성 제약조건 : 외래키는 참조할 수 없는 값을 가질 수 없다.
※ 삽입
부모 릴레이션 : 투플 삽입 후 수행하면 자연스럽게 진행 가능
자식 릴레이션 : 참조받는 테이블에 외래키 값이 없을 경우 삽입이 금지된다.
※ 수정 : 기본키 값이 같거나 NULL로도 수정이 금지
삽입과 삭제가 연속해서 수행된다.
부모 릴레이션 : 수정이 일어날 경우 삭제 옵션에 따라 처리된후 문제가 없으면 다시 삽입 에약 조건에 따라 처리된다.
※ 삭제 : 특별한 확인이 필요하지 않으며 즉시 수행함
부모 릴레이션 : 참조하는 테이블이 같이 삭제될 수 있어 금지하거나 다른 추가 작업을 필요로 한다.
자식 릴레이션 : 바로 삭제 가능
명령어 | 의미 | 예 |
RESTRICTED | 자식 릴레이션을 참조하고 있는 경우 부모 릴에션의 삭제 작업을 거부 | 학과 릴레이션의 투플 삭제 거부 |
CASCADE | 자식 릴레이션의 관련 투플을 같이 삭제 처리함 | 학생 릴레이션의 관련 투플을 삭제 |
DEFAULT | 자식 릴레이션의 관련 투플을 미리 설정해둔 값으로 변경 | |
NULL | 자식 릴레이션의 관련 투플을 NULL 값으로 설정 |
- 도메인 무결성 제약조건 : 릴레이션 내의 투플들이 각 속성의 도메인에 지정된 값만을 가져야 한다는 조건. 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다.
'데이터베이스' 카테고리의 다른 글
관계 데이터 연산 (0) | 2021.04.19 |
---|---|
데이터베이스 관리 시스템 (0) | 2021.04.18 |
데이터베이스 기본 개념 (0) | 2021.04.18 |
데이터베이스 시스템 (0) | 2021.03.16 |
Linux command 정리 (0) | 2021.03.14 |