데이터베이스 DB

[데이터베이스/DB] 관계형 데이터 모델 Relational Data Model

관계형 데이터 모델을 설명해볼게요 

1970년 Codd라는 수학자로부터 제안되어 시작되고 현재까지 개선되어오고 있습니다.

 

관계형 데이터 모델은 데이터베이스를 관계(relation)와 무결성제약사항의 집합으로 표현합니다.

 

<기본 용어>

관계 Relation

터플 Tuple

속성 Attribute

이 "student" 관계는 5 터플과 7 속성을 가집니다. 

 

 

각 속성은 속성 값으로 허용할 수 있는 값의 집합을 가지고 있으며, 이를 도메인이라고 합니다.

그리고 모든 속성 값은 원자(atomic) 값이어야 합니다. 일반적으로 정수, 실수, 문자, 문자열, 시간, 날짜 등이 원자값입니다. 집합, 리스트, 복합값은 원자값이 아닙니다. 

 

 

Relation Schema and Instance

관계 스키마는 관계 이름과 속성명 나열을 의미합니다. 

A1, A2....가 속성(attribute)

R = (A1, A2,.....An) 이 관계스키마(Relation Schema)

관계스키마를 정의한 후에 이에 적합한 값의 조합을 가질 수 있습니다.

 

관계형 데이터베이스는 관계와 제약조건으로 구성됩니다.

Relational DB = a set of relations + a set of integritiy constrainsts

Relational DB = a set of relations + a set of integritiy constrainsts

무결성제약에 대해서는 아래에서 자세히 설명드릴게요

 

대학 데이터베이스 예제

관계형 데이터베이스 예제입니다.

밑줄 그어진 속성은 primary key 속성이고, course 관계의 primary key는 cID입니다. 

teaches 관계의 primary key는 4개 속성의 연결(concentration)(pID, cID, semester, year)이며, 속성 하나하나는 primary key가 아닙니다

화살표시는 참조 무결성 제약을 표시합니다. 예를 들어, teaches의 cID는 course의 cID를 참조하는 foreign key입니다

 

관계 간엔 순서가 없고 관계 내 터플도 순서가 없는 특징이 있습니다. 

 

Keys 키

 

키는 속성의 집합으로 구성이 됩니다. 

K⊆R

K⊆R

Superkey는 관계에서 터플을 유일하게 식별할 수 있는 속성의 집합

Candidate key는 슈퍼키의 유일성을 유지하면서 가장 적은(minimal) 수의 속성으로 구성된 키입니다. 

K는 R의 Superkey이고, K가 minimal하다면 candidate key이다. 

Candidate key 중 하나는 primary key가 됩니다. 

 

Relational Integrity Constraint 참조 무결성

 

관계형 데이터 모델에만 존재합니다. 이는 관계형 데이터 모델이 데이터 간의 관계를 "값"(values)으로 표현하기 떄문이에요. (기존 데이터모델은 포인터로 표현)

관계형 데이터 모델을 기반으로 하는 객체-관계형 데이터 모델에서도 참조 무결성 제약은 존재합니다.

 

정의: 특정 속성에 나타난 모든 값은 반드시 다른 속성에도 나타나야 한다.

 

 

이 예제에서 major 속성 값은 아무런 제약 없이 임의의 값을 가질 수 없고, 

department의 dID속성값에 나와있어야 의미가 있습니다. 

 

major 속성값은 department의 dID를 참조하는 외래키(foreign key) 입니다. 

student 테이블은 참조하는 테이블, department 테이블은 참조 받는 테이블입니다. 

 

참조받는 속성은 반드시 그 테이블의 주 키(primary key)이어야 합니다.