기본적으로 테이블table이다. 데이터data를 table 형태로 표현한 것. 하지만 단순 테이블 이상의 의미와 제약 사항이 포함.
RDB를 구성하는 개체entity, 관계relationship를 relation이라는 table로 표현한다.
RDB를 구성하는 개체entity, 관계relationship를 relation이라는 table로 표현한다.
다음 둘:
- 개체 relation
- 관계 relation
Definition of relation
정의 1. (대충 ordered list of $\displaystyle n$ values로 정의)
relation_extension : a relation state r(R)
A relation (state) r, r(R) of the relation schema R(A1, A2, ..., An) = {t1, t2, ... tm} where t is an ordered list of n values t=〈v1, v2, …, vn〉 and each vi ∈ dom(Ai)
n은 차수degree.
t는 튜플tuple. 여기선 n-tuple.
Ai는 i번째 속성attribute.
vi는 i번째 (속성의) 값value .
정의 2.n은 차수degree.
t는 튜플tuple. 여기선 n-tuple.
Ai는 i번째 속성attribute.
vi는 i번째 (속성의) 값value .
r(R) ⊆ (dom(A1) × dom(A2) × … × dom(An))
우변은 domain들의 cartesian product: 모든 가능한 조합으로 된 집합.
그리고 r(R)이 그것의 instance(state)임을 부분집합 기호로 나타낸 듯. - chk
relation_intension : schema R우변은 domain들의 cartesian product: 모든 가능한 조합으로 된 집합.
그리고 r(R)이 그것의 instance(state)임을 부분집합 기호로 나타낸 듯. - chk
relation_extension : a relation state r(R)
릴레이션스키마relation_schema = (어려운말로) relation intension
릴레이션인스턴스relation_instance = relation extension? chk
릴레이션인스턴스relation_instance = relation extension? chk
구성: 다음 둘, 릴레이션 스키마와 릴레이션 인스턴스로 구성된다.
릴레이션스키마relation_schema 릴레이션인스턴스relation_instance
참고(비교):
릴레이션스키마relation_schema 릴레이션인스턴스relation_instance
릴레이션 스키마 = relation 스키마schema (relation type)
relation의 이름과 relation의 속성들의 집합.
relation의 이름과 relation에 포함된 모든 속성의 이름으로 정의하는 relation의 논리적 구조.
릴레이션 내포 (relation intension), 내포intension라고도 함.
형태 표현:
릴레이션 인스턴스 = relation instance (relation occurrence)relation의 이름과 relation에 포함된 모든 속성의 이름으로 정의하는 relation의 논리적 구조.
릴레이션 내포 (relation intension), 내포intension라고도 함.
형태 표현:
릴레이션이름 (속성이름1, 속성이름2, ..., 속성이름n)
ID | 이름 | 나이 | 등급 | → 릴레이션 스키마 |
apple | 김현준 | 20 | gold | ┐ |
banana | 정소화 | 25 | vip | ├→ 릴레이션 인스턴스 |
good | 정지영 | 22 | silver | ┘ |
참고(비교):
- database schema: DB를 구성하는 relation schema의 모음
- database instance: DB를 구성하는 relation instance의 모음
RDB | OOP language |
relation schema | class |
relation instance | object, instance |
relation의 특성[1]
- tuple의 유일성 : 한 relation에는 동일한 tuple이 존재할 수 없음.
- tuple의 무순서 : 한 relation에서 tuple사이의 순서는 무의미함.
- 속성attribute의 무순서 : 하나의 relation에서 속성 사이의 순서는 무의미함.
- 속성attribute의 원자성atomicity : 속성 값으로 원자 값만 쓸 수 있음. i.e. 릴레이션을 구성하는 모든 속성 값은 더 이상 분해할 수 없는 하나의 원자값만을 가짐.
릴레이션은 다중값속성이나 복합속성을 허용하지 않음.
한 relation에 포함된 tuple들은 모두 다르다.
한 relation에 포함된 tuple들 사이에는 순서가 없다.
한 relation에 포함된 tuple들 사이에는 순서가 없다.
키key : relation에서 tuple들을 구별하는 역할을 하는 속성 또는 속성들의 집합.
차수degree: 한 relation에서 속성의 전체 개수.
릴레이션 관련 SQL 문법 ¶
릴레이션을 생성하는 SQL 문법: CREATE TABLE
릴레이션을 삭제하는 SQL 문법: DROP TABLE
릴레이션의 속성attribute을 추가/삭제/변경하는 명령: ALTER TABLE
릴레이션을 삭제하는 SQL 문법: DROP TABLE
릴레이션의 속성attribute을 추가/삭제/변경하는 명령: ALTER TABLE
Up: database