본문 바로가기

Programming/DataBase

관계형 데이터모델 (Relational Data Model)

관계형 데이터모델

     관계형 데이터 모델은 데이터를 테이블(=릴레이션)의 구조로 표현하는 논리적 데이터 모델이다.


관계형 데이터 구조 : 릴레이션

(1) 관계형 데이터 모델에서는 데이터를 원자 값(Atomic Value)으로 갖는 이차원의 테이블로 표현, 이를 릴레이션이라 한다.


(2) 릴레이션의 구조는 물리적인 저장 구조를 나타내는 것이 아닌 논리적 구조이므로 다양한 정렬 기준을 통하여 릴레이션을 표현


(3) 릴레이션은 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성


cf) Relation Schema(=Relation intension, 릴레이션 내포) : 릴레이션의 이름, 각 속성의 이름과 타입, 그리고 속성 값의 도메인을 정의하는, 즉 다시 말해 릴레이션 에 데이터를 넣을 수 있도록 하는 릴레이션 틀이라고 생각하면 됨.


Relation Instance(=Relation extension, 릴레이션 외연) : 어느 시점의 릴레이션에 들어 있는 튜플들의 집합.


(4) 릴레이션의 열(Column)을 속성(Attribute)이라 하고, 행(Row)을 튜플(Tuple)이라 한다.


(5) 도메인 : 릴레이션에서 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자(Atomic) 값들의 집합, 도메인은 실제 애트리뷰트 값이 나타날 때 그 값의 합법 여부를 시스템이 검사하는데 이용



 

- 차수(Degree) : 속성의 수 (여기서는 4개)

- 카디널리티 : 튜플의 수 (여기서는 4개)

- 릴레이션 인스턴스 : 튜플들의 집합

 

ERD(=Entity Relationship Diagram)

 

ER모델 -> 관계형 데이터 모델로 변환 

(1) Mapping Rule : 개념적 데이터 모델인 ER모델을 논리적 데이터 모델인 릴레이션 스키마로 변환하는 것


(2) ER 도형에서의 개체와 관계는 관계형 데이터 모델에서의 개체 릴레이션과 관계 릴레이션으로 변환하여 표현


(3) 속성은 컬럼으로 식별자는 기본키로 표현하고 릴레이션 간의 관계는 기본키와 이를 참조하는 외래키를 이용

 

 

ER 모델(개념적 설계) -> 릴레이션 스키마(논리적 설계)


(1) 1:1 관계


[ER모델]



[릴레이션 스키마]  : 위의 ERD를 아래의 속성들의 관계로 표현한것이다. 

* ERD에서는 표시안된 과목의 교수번호 속성은 외래키로 릴레이션 스키마에서 표현해준다.


- 교수 개체와 과목 개체 간에는 1:1의 강의 관계를 가지므로 <교수> 릴레이션의 기본키인 교수번호를 <과목> 릴레이션에 외래키로 추가

- <과목> 릴레이션의 과목번호를 <교수> 릴레이션에 외래키로 추가도 가능

- 한 교수는 한 과목만 강의만 할 수 있고 한 과목은 한 명의 교수만 강의 할 수 있다.

 

 

(2) 1:N 관계


[ER모델]

 


[릴레이션 스키마]
- 교수 개체와 학생 개체는 1:N의 지도 관계를 가지므로 <교수> 릴레이션의 기본키인 교수번호를 <학생> 릴레이션에 외래키로 추가

- 한 교수는 여러 명의 학생을 지도할 수 있고, 한 학생은 한 명의 교수로 부터만 지도 받을 수 있다.

 

 

(3) M:N 관계


[ER모델]



[릴레이션 스키마]

- ER모델에 표현된 학생 개체와 과목 개체에 대한 릴레이션을 정의하고, 학생 개체와 과목 개체 간에 존재하는 M:N의 등록 관계를 <등록>이라는 별도의 릴레이션으로 정의한다. 관계로부터 정의된 <등록> 릴레이션에 추가적인 속성을 가질 수 있다. <등록> 릴레이션에는 외래키들이 들어간다.

- 한 학생은 여러 과목을 등록할 수 있고, 한 과목에 여러 학생들이 신청 할 수 있다.


'Programming > DataBase' 카테고리의 다른 글

키(key)의 개념 및 종류  (0) 2013.06.25
데이터베이스 설계(DataBase Design)  (0) 2013.06.25
스키마 (Schema)  (0) 2013.06.25
데이터베이스 관리 시스템(DBMS)  (0) 2013.06.25
DataBase 의 개념  (0) 2013.06.25