먼저, relational의 의미를 살펴보기에 앞서, set에 대해 알아보자.
set
- 서로 다른 elements를 가지는 collection
- 하나의 set에서 elements의 순서는 중요하지 않다
- ex) {1, 3, 22, 11, 7}
수학에서의 relation이란 어떤 의미가 있을까?
relation in mathematics
set A와 set B가 있다고 하자.
set A = {1, 2}
set B = {p, ,q, r}
Cartesian product A X B = {(a, b) | a ∈ A and b ∈ B}
여기에서 Cartesian product란, set A와 set B로 만들 수 있는 모든 pair의 조합즉, (1, p), (1, q), (1, r), (2, p), (2, q), (2, r)을 의미한다.
이와 같은 set A, set B 상황에서는 Cartesian product가 binary relation으로 밖에 나오지 않는다.
binary relation ⊆ A X B
※ ⊆ : 부분집합
이 개념을 확장해보자.
집합이 여러 개가 되면 어떻게 될까?
n개의 set이 있다고 하자.
n-ary relation ⊆ A X B X C X D .....
이런 경우를 n 튜플이라고 한다.
즉, relation in mathematics는 subset of Cartesian product, set of tuples 이다.
이제 수학적 의미에서의 relation이 relational data model에 어떻게 적용되었는지 살펴보자.
student relation을 예로 들어보자.
1. domain 정의하기
- student_ids : 학번 집합, 7자리 정수
- human_names : 사람 이름 집합, 문자열
- university_grades : 대학교 학년 집합
- major_names : 대학교에서 배우는 전공 이름 집합
- phone_numbers : 핸드폰 번호 집합
2. attribute of student relation
- student_ids : id
- human_names : name
- university_grades : grade
- major_names : major
- phone_numbers : phone_num (학생 번호)
- phone_numbers : emer_phone_num (비상연락망)
3. student relation in relational data model
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의 이름과 attributes 리스트로 표기된다
- ex) STUDENT(id, name, grade, major, phone_num, emer_phone_num)
- attribute와 관련된 constraints도 포함한다
degree of a relation
- relation schema에서 attribute의 수
- ex) STUDENT(id, name, grade, major, phone_num, emer_phone_num) → degree 6
'database' 카테고리의 다른 글
SQL 예제로 구조 파악하기 (0) | 2023.08.17 |
---|---|
table 생성하기 (0) | 2023.08.17 |
SQL 명령어 (0) | 2023.08.17 |
[데이터베이스 용어] database language (0) | 2023.08.04 |
[데이터베이스 용어] schema & state (0) | 2023.08.04 |