릴레이션relation

릴레이션relation (rev. 1.9)

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

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

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


구성: 다음 둘, 릴레이션 스키마와 릴레이션 인스턴스로 구성된다.
릴레이션스키마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의 원자성 : 속성 값으로 원자 값만 쓸 수 있음.

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

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

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

릴레이션 관련 SQL 문법

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