릴레이션
관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위이다. 결국, 릴레이션은 DB 테이블이다. 흔히 개발을 할 때 DB 설계를 하게 되는데 ERD (Entity Relationship Diagram) 아래와 같이 구성한다. 그래서 이 네모칸 하나하나가 결국 릴레이션이다.
특징
- 한 릴레이션에는 똑같은 튜플 (Tuple)이 포함될 수 없으므로 릴레이션에 포함된 튜플들은 모두 상이하다.
- 한 릴레이션에 포함된 튜플 사이에는 순서가 없다.
- 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.
- 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않다.
- 속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 동일한 값이 있을 수 있다.
- 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합 키 (Key)로 설정한다.
- 속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자 값만을 저장한다.
속성 (attribute, 어트리뷰트)
하나의 릴레이션은 현실 세계의 어떤 개체 (entity)를 표현하고 저장하는데 사용된다. 이때 개체는 사물이 될 수도 추상적인 개념이 될 수도 있다.
속성은 내가 저장하고 싶은 개체의 항목들이다. 예를 들어, 내가 쇼핑몰을 운영하고 있다고 생각하자.
그럴 때 쇼핑몰 운영을 위해 고객의 이름, 고객 고유 번호, 전화 번호, 집 주소 등이 필요하다 따라서 고객의 이름, 고객 고유 번호, 전화 번호, 집 주소 등이 속성이 되고 아래와 같이 테이블을 만들 수 있다.
결국 하나의 열은 하나의 속성 정보를 표시한다. 속성 또한 고유한 이름을 가지고 있어 동일 릴레이션 내에서는 같은 이름의 속성이 존재할 수 없다.
차수 (degree)
한 릴레이션 안에 있는 어트리뷰트 수를 차수라고 한다. 따라서, 유효한 릴레이션의 최소 차수는 1이다, 그렇기 때문에 모든 릴레이션은 적어도 하나 이상의 어트리뷰트를 갖고 있고 위의 쇼핑몰 고객 테이블에서 차수는 4 임을 알 수 있다.
튜플 (tuple, 레코드)
릴레이션의 각 행을 레코드라고 한다, 레코드를 더 공식적으로 튜플이라고 부른다.
카디널리티 (Cardinality)
카디널리티는 릴레이션 튜플의 개수이다, 따라서 아직 데이터가 삽입되지 않은 테이블의 경우 카디널리티는 차수와 다르게 0의 값을 가질 수 있다. 또한 카디널리티는 시간에 지남에 따라 값이 계속해서 변화한다.
도메인 (domain)
도메인은 릴레이션에 포함된 속성들이 각각 가질 수 있는 값들의 집합이라 할 수 있다. 예를 들어 "안경 착용의 유무"라는 속성이 있을 때 이 속성이 가질 수 있는 값은 "유" 혹은 "무"일 것이다. 이 집합 즉 도메인의 이름을 'A'라고 칭하자.
그럼 '안경 착용의 유무'라는 속성은 A라는 도메인에 있는 값만 가질 수 있다, 도메인의 이름은 속성 이름과 같을 수도 있고 다를 수도 있다. 또 하나의 도메인을 여러 속성에서 공유할 수도 있다.
스키마 (schema)
스키마는 데이터 베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다. 스키마는 데이터 베이스를 구성하는데 데이터 개체 (Entity), 속성 (Attribute), 관계 (Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다. 그리고 스키마는 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나눠진다.
논리 모델 vs 물리 모델
[Database] 데이터베이스 용어 - 릴레이션, 어트리뷰트, 튜플, 도메인, 차수, 카디널리티, 스키마 | Hoyeon (hoyeonkim795.github.io)
'프로그래밍 언어 > SQL' 카테고리의 다른 글
[DB] 트랜잭션 (Transaction) 4가지 특성 (0) | 2024.07.15 |
---|---|
[데이터베이스] 스키마란? 개념 스키마, 내부 스키마, 외부 스키마 (1) | 2024.05.27 |
[SQL] 자료형 (0) | 2024.04.30 |
[SQL] 데이터베이스 키(KEY) 종류 (0) | 2023.12.29 |
[SQL] DATETIME 원하는 유형으로 변경 (YYMMDD) (0) | 2023.12.29 |