#noindex 한 [[개체entity]]에 관한 data를 2차원 [[테이블table]] 구조로 저장한 것. 기본적으로 [[테이블table]]이다. [[데이터data]]를 table 형태로 표현한 것. 하지만 단순 테이블 이상의 의미와 제약 사항이 포함. RDB를 구성하는 [[개체entity]], [[관계relationship]]를 '''relation'''이라는 table로 표현한다. 다음 둘: * 개체 relation * 관계 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) 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의 특성[* https://terms.naver.com/entry.naver?docId=3431146&cid=58430&categoryId=58430&expCategoryId=58430] * 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 see also https://terms.naver.com/entry.naver?docId=2270455&cid=51173&categoryId=51173 릴레이션을 삭제하는 SQL 문법: DROP TABLE 릴레이션의 [[속성attribute]]을 추가/삭제/변경하는 명령: ALTER TABLE See [[SQL,structured_query_language]] ---- from [[https://terms.naver.com/entry.naver?docId=3481742&cid=58439&categoryId=58439 지형공간정보체계 용어사전]] [[https://terms.naver.com/entry.naver?docId=3431156&cid=58430&categoryId=58430 데이터베이스 개론]] ---- [[WpKo:관계_(데이터베이스)]] [[WpEn:Relation_(database)]] HashKr:릴레이션 Up: [[database]]