SQL용어 | 관계형 데이터베이스 용어 | 설명 |
테이블 (Table) | 레이블 (Relation) | |
로우 (Row) | 튜플 (Tuple) 혹은 레코드 | 도메인의 곱집합의 각 요소 |
컬럼 (Column) | 속성 (attribute) | |
도메인 (Domain) | 집합으로써 하나의 속성이 가질 수 있는 값들의 범위 (예 : 연령, 급여 등) | |
뷰 | 튜플들의 모임 |
n개의 도메인 D1, D2, D3, ..Dn이 있다고 했을때
도메인의 곱집합은 D1 x D2 x D3 x ... Dn 으로 나타낸다.
D1 = {1,2}, D2 = {a,b,c}, D3 = D1 이라고 가정하면
D1 x D2 x D3은 다음과 같이 12개의 요소를 가진 집합이 된다.
{ (1,a,1), (1,a,2), (1,b,1), (1,b,2), (1,c,1), (1,c,2), (2,a,1), (2,a,2), (2,b,1), (2,b,2), (2,c,1), (2,c,2) }
이때 집합의 각 요소를 튜플(Tuple)이라고 한다.
여기서 릴레이션을 정의가능하다.
n개의 도메인이 있을때 D1, D2, .., Dn 의 릴레이션이란
D1 x D2 x D3 x ... x Dn 의 임의의 유한부분집합을 말한다.
예를 들어 D1 x D2 x D3 상의 경우 릴레이션은,
R = { (1,a,1), (1,a,2), (2,b,1), (2,c,2) } 이다.
여기서 R의 농도 혹은 기수(cardinality, 카디날리티)는 R의 튜플 수이다.
릴레이션이 정의된 도메인의 수를 차수(degree)라고 한다.
이 경우 기수는 4, 차수는 3이다.
릴레이션의 차수에 따라 다음과 같이 분류한다
- 1 : 단항(unary) 릴레이션
- 2 : 2항(binary) 릴레이션
- 3 : 3항(ternary) 릴레이션
.
.
- n : n항 릴레이션
1. 로우(튜플) 간의 순서는 아무런 의미가 없음
2. 컬럼(속성) 간의 순서에는 의미가 있음.
3. 릴레이션은 수시로 변화한다.
각 릴레이션의 속성에는 속성이 담고있는 정보를 알기 쉽게 속성명을 붙인다.
릴레이션 R ⊆ (D1 x D2 x ... x Dn) 의 속성명을 A1, A2, ..., An라고 할때 도메인 함수dom는 다음과 같이 정의한다.
dom : Ai → Di (i = 1, 2, ..., n)
이때 릴레이션은,
R ⊆ (dom(A1) x dom(A2) x ... x dom(An)) 으로 정의된다.
릴레이션은 수시로 변화하기 때문에 변하지 않는 부분을 릴레이션 스키마(relation schema)라고 한다.
또, 시간에 따라 변화하는 릴레이션 그 자체를 릴레이션 스키마의 인스턴스(instance)라고 한다.
(순간 순간의 릴레이션이라고 이해하면 될 듯)
릴레이션 친구라는 게 있을때 이 릴레이션에서 변하지 않는 부분인 이름과 연령이 릴레이션 스키마가 된다.
또 릴레이션 친구는 어느 시점에서의 친구의 인스턴스인 것이다.
편의상 릴레이션 스키마를 생략하고 릴레이션으로 부르기도 한다.
릴레이션을 나타내는 도메인이 심플할 때 그 릴레이션을 제1정규형이라고 한다.
도메인이 심플하단 것은 도메인이 다른 도메인으로 구성되어 있지 않고 멱집합이 아닌것이다.
위를 비제1정규형(non-first normal Form, (NF)^2) 혹은 그냥 비정규형이라고 한다.
우측 표는 비정규형을 정규화한 것이다.
- 참고서적 : サイエンス社 データベース入門
[DB기초] ER모델과 개체, 관계 개념 설명 (0) | 2020.11.28 |
---|---|
[DB기초] SQL의 기본 개념 (0) | 2020.11.24 |
[DB기초] 관계형 데이터베이스의 관계 대수 연산 (0) | 2020.11.18 |
[DB기초] 관계형 데이터 베이스 주 키와 후보키, 키 제약이란? (0) | 2020.11.16 |
[DB기초] DBMS의 역할과 데이터 모델의 종류 (0) | 2020.10.17 |
댓글 영역