카테고리 없음

관계형 데이터베이스

jjonse 2023. 1. 20. 15:29
set이란?

- 서로 다른 elements를 가지는 collection(중복 X)

- 하나의 set에서 elements의 순서는 중요하지 않다.

- 예 : {1, 3, 11, 4, 7}

 

 

카티션 프로덕트란?

A*B = {(a, b) | a E A and b E B}

-> A와 B로 만들 수 있는 모든 페어의 조합을 의미한다. 

 

 

binary relation이란?

- A와 B의 카르티션 프로덕트의 부분집합을 의미한다. 

- 만약 n개의 집합이 있을 때, 카르티션 프로덕트를 구한 후 이때 릴레이션은 집합이 여러개니까 n-ary relation이라 한다.

- 즉, n-ary relation은 n개의 카르티션 프로덕트에 대한 부분집합을 의미한다. 

- 또한 이를 튜플들의 집합이라고도 한다. 

 

 

relational data model이란?

- 일단, student relation을 예를 들어 relational data model을 설명해 보겠다. 

 

<학생들 domain>

- students_ids : 학번 집합, 7자리 integer 정수(id)

- human_names : 사람 이름 집합, 문자열(name)

- uniersity_grades : 대학교 학년 집합, {1, 2, 3, 4}(grade)

- major_names : 대학교에서 배우는 전공 이름 집합(major)

- phone_numbers : 핸드폰 번호 집합(phone_num)

- phone_numbers : 학생들의 비상연락망(emer_phone_num)

 

-> 같은 phone_numbers라는 도메인이 두번 사용되지만, 이들의 역할은 다르다. 이들의 역할을 표시해주기 위해서 relational model에서는 attribute(역할)의 이름을 붙여준다. 

 

 

relational data model의 주요 개념
  • domain : set of atomic values(값이 더 이상 나누어질 수 없는 값들로 이루어진 집합)
  • domain name : domain 이름
  • attribute : domain이 relation에서 맡은 역할 이름
  • tuple : 각 attribute의 값으로 이루어진 리스트, 일부 값은 NULL일 수 있다
  • relation : set of tuples
  • relation name : relation의 이름

 

relation schema란

- relation의 구조를 나타낸다.

- relation 이름과 attribute 리스트로 표기된다.

- attributes와 관련된 constraints도 포함한다.

 

!!여기서 잠깐!!

degree of a relation이란?

- relation schema에서 attributes의 수를 나타낸다. 

-예를 들어 STUDENT에 id, name, grade, major, phone_num, emer_phone_num이 있으면 degree는 6이다.

 

 

 

relational database란?

- relational data model에 기반하여 구조화된 database

- relational database는 여러 개의 relations로 구성된다. 

 

 

relation의 특징들
  • relation은 중복된 튜플들을 가질 수 없다 (튜플은 집합의 개념인데 중복을 허용하지 않음)
  • relation의 튜플을 식별하기 위해 attribute의 부분 집합을 키로 설정한다
  • relation에서 튜플의 순서는 중요하지 않다
  • 하나의 relation에서 attribute의 이름은 중복되면 안 된다 
  • attribute는 더 이상 나눌 수 없어야(atomic) 한다 

 

슈퍼키(superkey)

- relation에서 튜플들을 유니크하게 식별할 수 있는 attributes set

 

 

후보키(candidate key)

- 어느 한 attribute라도 제거하면 유니크하게 튜플들을 식별할 수 없는 슈퍼키

 

 

주요키(primary key)

- relation에서 튜플들을 유니크하게 식별하기 위해 선택된 후보키

 

 

대체키(unique key, alternate key)

- 주요키로 선택되지 못한 후보키들, 대체키라고도 함 

 

외래키(foreign key)

- 다른 relation의 PK를 참조하는 attributes set

 

 

constraints 뜻

- relational database의 relation들이 언제나 항상 지켜줘야 하는 제약 사항을 말한다.