릴레이션relation

Difference between r1.5 and the current

@@ -1,6 +1,7 @@
#noindex
한 [[개체entity]]에 관한 data를 2차원 [[테이블table]] 구조로 저장한 것.

기본적으로 [[테이블table]]이다. data를 table 형태로 표현한 것.
기본적으로 [[테이블table]]이다. [[데이터data]]를 table 형태로 표현한 것. 하지만 단순 테이블 이상의 의미와 제약 사항이 포함.
RDB를 구성하는 [[개체entity]], [[관계relationship]]를 '''relation'''이라는 table로 표현한다.

다음 둘:
@@ -8,6 +9,32 @@
* 관계 relation
으로 구분 가능.

----
Definition of '''relation'''
 
정의 1. (대충 ordered list of $n$ values로 정의)
A relation (state) r, r(R) of the [[릴레이션스키마relation_schema|relation schema]] R(A,,1,,, A,,2,,, ..., A,,n,,) = {t,,1,,, t,,2,,, ... t,,m,,} where t is an ordered list of n values t=〈v,,1,,, v,,2,,, …, v,,n,,〉 and each v,,i,, ∈ dom(A,,i,,)
n은 [[차수degree]].
t는 [[튜플tuple]]. 여기선 n-tuple.
A,,i,,는 i번째 [[속성attribute]].
v,,i,,는 i번째 (속성의) [[값value]] .
 
정의 2.
r(R) ⊆ (dom(A,,1,,) × dom(A,,2,,) × … × dom(A,,n,,))
우변은 domain들의 cartesian product: 모든 가능한 조합으로 된 집합.
''그리고 r(R)이 그것의 instance(state)임을 부분집합 기호로 나타낸 듯. - chk''
 
relation_intension : schema R
relation_extension : a relation state r(R)
 
[[릴레이션스키마relation_schema]] = (어려운말로) relation intension
[[릴레이션인스턴스relation_instance]] = relation extension? chk
 
보통
대문자 - [[스키마schema]]를,
소문자 - relation state를.
 
----
구성: 다음 둘, 릴레이션 스키마와 릴레이션 인스턴스로 구성된다.
[[릴레이션스키마relation_schema]] [[릴레이션인스턴스relation_instance]]
릴레이션 스키마 = relation [[스키마schema]] (relation type)
@@ -30,11 +57,19 @@
* database schema: DB를 구성하는 relation schema의 모음
* database instance: DB를 구성하는 relation instance의 모음

OOP언어와의 비교
||RDB ||OOP language ||
||relation schema ||class ||
||relation instance ||object, instance ||
 
----
relation의 특성[* https://terms.naver.com/entry.naver?docId=3431146&cid=58430&categoryId=58430&expCategoryId=58430]
* tuple의 유일성 : 한 relation에는 동일한 tuple이 존재할 수 없음.
* tuple의 무순서 : 한 relation에서 tuple사이의 순서는 무의미함.
* [[속성attribute]]의 무순서 : 하나의 relation에서 속성 사이의 순서는 무의미함.
* [[속성attribute]]의 원자성 : 속성 값으로 원자 값만 쓸 수 있음.
* [[속성attribute]]의 [[원자성atomicity]] : 속성 값으로 원자 값만 쓸 수 있음. i.e. 릴레이션을 구성하는 모든 속성 값은 더 이상 분해할 수 없는 하나의 원자값만을 가짐.
릴레이션은 다중값속성이나 복합속성을 허용하지 않음.
([[튜플tuple]]에서도 언급)

한 relation에 포함된 tuple들은 모두 다르다.
한 relation에 포함된 tuple들 사이에는 순서가 없다.
@@ -58,4 +93,8 @@
[[https://terms.naver.com/entry.naver?docId=3431156&cid=58430&categoryId=58430 데이터베이스 개론]]

----
[[WpKo:관계_(데이터베이스)]]
[[WpEn:Relation_(database)]]
HashKr:릴레이션
Up: [[database]]


개체entity에 관한 data를 2차원 테이블table 구조로 저장한 것.

기본적으로 테이블table이다. 데이터data를 table 형태로 표현한 것. 하지만 단순 테이블 이상의 의미와 제약 사항이 포함.
RDB를 구성하는 개체entity, 관계relationshiprelation이라는 table로 표현한다.

다음 둘:
  • 개체 relation
  • 관계 relation
으로 구분 가능.


Definition of relation

정의 1. (대충 ordered list of $\displaystyle n$ values로 정의)
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.
r(R) ⊆ (dom(A1) × dom(A2) × … × dom(An))
우변은 domain들의 cartesian product: 모든 가능한 조합으로 된 집합.
그리고 r(R)이 그것의 instance(state)임을 부분집합 기호로 나타낸 듯. - chk

relation_intension : schema R
relation_extension : a relation state r(R)

릴레이션스키마relation_schema = (어려운말로) relation intension
릴레이션인스턴스relation_instance = relation extension? chk

보통
대문자 - 스키마schema를,
소문자 - relation state를.


구성: 다음 둘, 릴레이션 스키마와 릴레이션 인스턴스로 구성된다.
릴레이션스키마relation_schema 릴레이션인스턴스relation_instance
릴레이션 스키마 = relation 스키마schema (relation type)
relation의 이름과 relation의 속성들의 집합.
relation의 이름과 relation에 포함된 모든 속성의 이름으로 정의하는 relation의 논리적 구조.
릴레이션 내포 (relation intension), 내포intension라고도 함.
형태 표현:
릴레이션이름 (속성이름1, 속성이름2, ..., 속성이름n)
릴레이션 인스턴스 = relation instance (relation occurrence)
relation에 어느 시점에 들어있는 튜플tuple들의 집합.
어느 한 시점에 relation에 존재하는 tuple들의 집합.
외연extension이라고 함.

ID 이름 나이 등급 → 릴레이션 스키마
apple 김현준 20 gold
banana 정소화 25 vip ├→ 릴레이션 인스턴스
good 정지영 22 silver

참고(비교):
  • database schema: DB를 구성하는 relation schema의 모음
  • database instance: DB를 구성하는 relation instance의 모음

OOP언어와의 비교
RDB OOP language
relation schema class
relation instance object, instance


relation의 특성[1]
  • tuple의 유일성 : 한 relation에는 동일한 tuple이 존재할 수 없음.
  • tuple의 무순서 : 한 relation에서 tuple사이의 순서는 무의미함.
  • 속성attribute의 무순서 : 하나의 relation에서 속성 사이의 순서는 무의미함.
  • 속성attribute원자성atomicity : 속성 값으로 원자 값만 쓸 수 있음. i.e. 릴레이션을 구성하는 모든 속성 값은 더 이상 분해할 수 없는 하나의 원자값만을 가짐.
    릴레이션은 다중값속성이나 복합속성을 허용하지 않음.
(튜플tuple에서도 언급)

한 relation에 포함된 tuple들은 모두 다르다.
한 relation에 포함된 tuple들 사이에는 순서가 없다.

키key : relation에서 tuple들을 구별하는 역할을 하는 속성 또는 속성들의 집합.

차수degree: 한 relation에서 속성의 전체 개수.

릴레이션 관련 SQL 문법

릴레이션을 생성하는 SQL 문법: CREATE TABLE
릴레이션을 삭제하는 SQL 문법: DROP TABLE
릴레이션의 속성attribute을 추가/삭제/변경하는 명령: ALTER TABLE