데이터베이스

관계 데이터 모델

윤돌_99 2021. 3. 16. 14:30

관계 데이터 모델의 기본 개념

개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델

 

<도서 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