디지털 너구리 : 게임, IT 정보 및 다양한 지식 공유드립니다.

안녕하세요 엘빈입니다. 데이터 베이스는 대부분 관계형 데이터 베이스로 이루어져 있습니다. 데이터 베이스 학문을 다루는데에 관계형 데이터 베이스를 빼놓을 수 없죠. 이번 포스팅에서는 관계형 데이터 베이스에 대해서 자세히 알아보도록 하겠습니다

 

 

 


# 기본 구조

 

1. 관계란

 

주어진 세트 D1, D2, …. Dn이 있을때 관계(relation) r은 D1* D2 * …. * Dn 으로 표현합니다. 즉 관계란 n개의 튜플(tuple)들의 집합입니다.

 

예시 :

customer_name = {Jones, Smith, Curry, Lindsay}
customer_street = {Main, North, Park}
customer_city = {Harrison, Rye, Pittsfield}

 

튜플이 총 3개 있을때 이들의 집합 관계 r은 다음과 같습니다.

 

r = { (Jones, Main, Harrison),
(Smith, North, Rye),
(Curry, North, Rye),
(Lindsay, Park, Pittsfield) }

 

관계의 각 속성에는 이름이 있습니다. 각 속성에 허용되는 값들의 집합을 속성(attribute)의 도메인(domain)이라고 합니다. attribute 값은 원자성( 더이상 나누어지지 않아야 한다) 속성을 가지고 있어야 합니다.

 

또한 특수값 null은 모든 도메인의 구성원입니다. null은 알수없는 값 또는 존재하지 않는 값을 말합니다.

 

null 값은 많은 조작과 정의에서 복잡함을 불러옵니다. 처음 접하는 분들은 null값의 영향을 무시하고 나중에 고려하는 것이 좋습니다.

 

 

 

2. 관계 스키마(Relation Schema)

 

A1, A2,…, An은 속성입니다

R = (A1, A2,…, An)은 관계 스키마입니다

 

예시 : Customer_schema = (customer_name, customer_street, customer_city)

 

r (R)은 관계 스키마 R에 대한 관계입니다.

 

예시 : customer (Customer_schema) - 고객에 대한 관계 스키마는 Customer_schema이다.

 

다음은 속성과 튜플을 나타낸 그림입니다. customer이라는 데이터 베이스가 있을때 구분 짓는 역할을 하는 속성을 애트리뷰트라고 많이 부르며 그 내용물들을 튜플(tuple)이라고 많이 부릅니다.

 

 

 

3. 데이터 베이스

 

데이터 베이스는 여러 관계로 구성됩니다. 기업에 대한 정보는 각 부분이 정보의 한 부분을 저장하는 식으로 나뉩니다.

 

예시(은행 데이터베이스) : 

(1) 계정 : 예금주에 대한 정보를 저장합니다.

(2) 예금주 : 고객이 어떤 계좌를 소유하고 있는지에 대한 정보를 저장합니다.

(3) 고객 : 고객에 관한 정보를 저장합니다.

 

모든 정보를 bank bank (account_number, balance, customer_name, ..)와 같이 단일 관계로 저장하면 정보의 반복이나 계정이 없는 고객(NULL값으로 표현)등 여러 문제가 발생할 것입니다. 따라서 데이터 베이스는 여러 관계로 나누어 구성합니다.

 

 

예시 : 관계를 2개로 나눈 데이터베이스의 모습 (customer_name 위주로 단일 관계로 구성하지 않았다)

 

 

 

# 키(Keys)

 

K 가 R 집합에 포함된다고 해봅시다.

 

K에 대한 값이 관계에 속한 튜플을 고유하게 식별하기에 충분한 경우 K는 R의 슈퍼키(superkey)입니다.

 

예시 ) 두 명의 고객이 동일한 이름을 가질 수없는 경우 {customer_name, customer_street} 및 {customer_name}은 모두 고객의 슈퍼키입니다.

 

후보키 : 관계를 구성하는 속성들 중 튜플을 식별하기 위해 사용하는 속성들의 부분집합이다. 기본키로 사용할 수 있는 속성들을 말한다.

 

기본키 : 후보키 중에서 선택한 중심이 되는 키를 말하며 주어진 관계에서 특정 튜플을 유일하게 구별할 수 있는 속성이다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band