본문 바로가기

전공/데이터베이스

[데이터베이스] 관계형 모델 - (1)

관계형 데이터베이스(relational database)의 구조


- 릴레이션(relation):

관계형 데이터베이스에서 테이블을 의미하는 단어로 사용된다.

주어진 집합 D1, D2, ..., Dn에 대해서 relation r은 D1 x D2 x ... x Dn의 부분집합이다.

 

예시)

그림 1에서 주어진 집합은 다음과 같다.

 

D1: customer-name = {Jones, Smith}

D2: customer-street = {Main, North}

D3: customer-city = {Harrison, Rye}

 

D1 x D2 x D3 즉, 가능한 모든 튜플 2 * 2 * 2 = 8개 중 부분집합(subset)인 relation r은 아래와 같다.

 

r = { (Jones, Main, North),

       (Smith, North, Rye) }

      

- 릴레이션 스키마(relation schema):

속성(attribute)과 그 속성이 가지는 도메인(domain)으로 구성된다.

 

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

행의 특정 집합을 포함하고 있는 릴레이션의 특정 인스턴스를 지칭할 때 사용된다.

 

- 도메인(domain):

각 속성(attribute)이 가질 수 있는 값의 범위를 가진다.

 

- 속성(attributes):

테이블의 열을 의미한다.

속성의 값들은 atomic하다. 즉 더 이상 나뉠 수 없는 단위이다.

(multivalued attribute values, composite attribute values는 atomic하지 않다.)

속성들의 순서는 상관없다. (Set Theory)

 

- 튜플(tuple):

테이블의 행을 의미한다.

모든 튜플은 유일하다. 즉 중복된 튜플이 존재하지 않는다. 또한 튜플의 순서는 상관없다.(Set Theory)

 

 

그림1. 관계형 데이터베이스 구조

 

 

 

 

 

릴레이션 스키마


- A1, A2, ... , An을 속성(attribute)이라고 하면,

relation schema R은 {A1 : D1, A2 : D2, ... , An : Dn}이고, 간략하게 {A1, A2, ..., An}이라고 나타낸다.

 

예시)

그림 1에서 customer_schema = (customer_name, customer_street, customer_city)이다.

 

 

- r(R)relation schema R에 대한 relation이다.

 

예시)

customer (customer_schema)

 

 

https://kr.freepik.com/vectors/background by macrovector_official

 

 

 

 

 

데이터베이스


- 데이터베이스는 하나 이상의 relation으로 이루어져 있다. 즉, 하나 이상의 table로 이루어져 있다.

 

예시) 대학교의 데이터베이스 (multiple relation)

 

student (ID, name, dept_name, tot_cred)

classroom (building, room_number, capacity)

department (dept_name, building, budget)

section (course_id, sec_id, semester, year, building, room_number, time_slot_id)

teaches (ID, course_id, sec_id, semester, year)

.

.

.

 

 

Photo by Mika Baumeister on Unsplash