CS/데이터베이스

[데이터베이스] (5) 관계 데이터 모델

dltjdn 2022. 3. 8. 23:52

< 관계 데이터 모델 >

일반적으로 사용되는 논리적 데이터 모델 ( 개념적 구조를 논리적 구조로 표현 )

하나의 개체에 대한 데이터를 하나의 릴레이션에 저장

 

 

  • 릴레이션( relation ) : 하나의 개체에 관한 데이터를 2차원의 테이블 구조로 저장한 것
  • 속성 ( attribute ) : 릴레이션의 열
  • 튜플 ( tuple ) : 릴레이션의 행
  • 도메인 ( domain ) : 하나의 속성이 가질 수 있는 모든 값의 집합속성의 특성을 고려한 데이터 타입으로 정의
  • 널(null) : 속성 값을 아직 모름 Or 해당되는 값이 없음을 표현
  • 차수( degree ) : 하나의 릴레이션에서 속성의 전체 개수
  • 카디널리티 ( cardinality ) : 하나의 릴레이션에서 튜플의 전체 개수

 

< 릴레이션의 구성 >

릴레이션 스키마 ( relation schema ) 

릴레이션의 논리적 구조

릴레이션의 이름, 릴레이션에 포함된 모든 속성 이름으로 정의

ex) 고객 ( 고객아이디, 고객이름, 나이, 등급 직업, 적립금 ) 

 

릴레이션 인스턴스 ( relation instance ) 

어느 한 시점에 릴레이션에 존재하는 튜플들의 집합

 

 

 

< 데이터베이스의 구성 >

데이터베이스 스키마(database schema )

데이터베이스의 전체 구조

데이터베이스를 구성하는 릴레이션 스키마의 모음

 

데이터베이스 인스턴스 ( database instance)

데이터베이스를 구성하는 릴레이션 인스턴스의 모음

 

 

<  릴레이션의 특성  >

  • 튜플의 유일성 : 하나의  릴레이션에는 동일한 튜플이 존재할 수 X
  • 튜플의 무순서 : 릴레이션에서 튜플의 순서는 무의미
  • 속성의 무순서: 릴레이션에서 속성의 순서는 무의미 ( 복합속성은 다 분할되어 만들어짐 )

 

< 키 ( Key )  >

릴레이션에서 튜플들을 유일하게 구별하는 속성 Or 속성들의 집합

 

키의 특성

  • 유일성 ( uniqueness ) : 하나의 릴레이션에서 모든 튜플은 서로 다른 키 값 가져야 함 
  • 최소성 ( minimality ) : 최소한의 속성들로만 키를 구성함

 

키의 종류

슈퍼키( super key )

  • 유일성을 만족하는 속성 Or 속성들의 집합
  • ex) 고객아이디
  • ex) ( 고객아이디, 고객이름)
  • ex) ( 고객이름, 주소 )

 

후보키( candidate key )

  • 유일성최소성을 만족하는 속성 또는 속성들의 집합
  • ex) 고객 아이디
  • ex) (고객이름, 주소)

 

기본키( primary key )

  • 후보키 중에서 기본적으로 사용하기 위해 선택한 키
  • ex) 고객 아이디

 

대체키 ( alternate key )

  • 후보키 중에서 기본키로 선택되지 못한 키
  • ex) (고객이름, 주소)

 

 

외래키 ( foreign key )

  • 다른 릴레이션의 기본키를 참조하는 속성 Or 속성들의 집합
  • 참조하는 릴레이션 : 외래키를 가진 릴레이션
  • 참조되는 릴레이션 : 외래키가 참조하는 기본키를 가진 릴레이션
  • 외래키 속성과 그것이 참조하는 기본키 속성의 이름은 달라도 됨 But, 도메인(ex. int, string 등등) 은 같아야 함
  • 하나의 릴레이션에는 외래키가 여러개 존재할 수 있고, 외래키를 기본키로 사용할 수도 있음
  • 같은 릴레이션의 기본키를 참조하는 외래키도 정의 가능
  • 널 값을 가질 수 있다

 

 

< 관계 데이터 모델의 제약 >

무결성 제약조건 ( integrity constraint )

데이터의 무결성(정확하고 유효하게 유지하는것)을 보장하고 일관된 상태로 유지하기 위한 규칙

 

개체 무결성 제약조건

  • 기본키를 구성하는 모든 속성은 null값 가질 수 X

 

참조 무결성 제약조건

  • 외래키참조할 수 없는 값을 가질 수 X 
  • 주의) null 값은 가질 수 있다