About Logical Data Model Relation Data Model
논리적 데이터 모델은 논리적 데이터 모델링의 결과물이며, 사용자가 상상하는 DB의 구조 또는 모습입니다.
논리적 구조는 사용하게 되는 DB 관리 시스템에 따라 달라지고, 대표적인 예로는 DB 스키마가 있습니다.
논리적 데이터 모델에는 DB의 논리적 구조가 트리인 계층 데이터 모델, DB의 논리적 구조가 그래프 또는 네트워크 형태인 네트워크 데이터 모델 등이 있는데, 이번에 저희는 현재 가장 많이 사용되는 논리적 데이터 모델인 관계 데이터 모델에 대해 알아보도록 하겠습니다.
Basic Terms for Relationship Data Model
Attribute (속성)
속성은 릴레이션의 열을 의미하며, 각 속성의 이름은 서로 다르게 설정하여 구별합니다.
릴레이션은 파일 관리 시스템에서의 파일에 대응하는 개념이라면, 속성은 해당 파일의 필드에 대응하는 개념입니다.
Tuple (튜플)
튜플은 릴레이션의 행을 의미하며, 파일 관리 시스템 관점에서 해당 파일의 레코드에 대응하는 개념입니다.
Domain (도메인)
도메인은 속성 하나가 가질 수 있는 모든 값의 집합을 의미하며, 관계 데이터 모델에서는 속성 값으로 더는 분해 불가능한 원자 값만 사용 가능합니다.
도메인을 미리 정의해두면 사용자가 속성 값을 입력 혹은 수정할 때 DB 시스템이 적합성을 판단한 후 도메인 값으로 설정한 값 이외의 값은 허용하지 않기에 항상 올바른 값만 유지 가능하다는 장점이 있습니다.
NULL (널)
릴레이션에 있는 특정 튜플의 속성 값은 모르거나 적합한 값이 없는 경우 NULL이라는 특별한 값을 사용 가능합니다.
NULL 값은 DB 관리 시스템마다 내부적으로 표시하는 기호가 다릅니다.
Degree (차수)
차수란 하나의 릴레이션에서 속성의 전체 개수를 의미하며, 일반적으로 자주 변하지 않는다는 정적인 특징이 있습니다.
Cardinality (카디널리티)
카티널리티란 하나의 릴레이션에서 튜플의 전체 개수를 뜻합니다.
튜플은 새로 삽입되거나 기존 튜플이 삭제될 수 있다는 특징 때문에 카티널리티는 일반적으로 자주 변한다는 동적인 특징이 있습니다.
Relation Schema (릴레이션 스키마)
릴레이션 스키마는 릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조입니다.
릴레이션 스키마를 통해 릴레이션의 이름이 무엇이며, 어떤 속성들로 구성되어 있는지 전체 구조를 쉽게 파악 가능합니다.
Relation Instance (릴레이션 인스턴스)
릴레이션 인스턴스는 어느 한 시점에 릴레이션에 존재하는 튜플들의 집합이며, 포함된 튜플은 릴레이션 스키마에서 정의하는 각 속성에 대응하는 실제 값으로 구성되어 있습니다.
릴레이션 스키마는 자주 변하지 않는다는 정적인 특징이 있고, 릴레이션 인스턴스는 튜플의 삽입, 수정, 삭제가 자주 발생한다는 동적인 특징이 있습니다.
DB Schema & DB Instance (데이터베이스 스키마와 데이터베이스 인스턴스)
DB Schema는 DB의 전체 구조를 의미하며, DB를 구성하는 릴레이션들의 스키마를 모아놓은 것입니다.
DB Instance는 어느 한 시점에서 DB에 저장된 데이터 내용의 전체 집합을 의미하며 구성하는 모든 릴레이션의 인스턴스를 모아놓은 것입니다.
Characteristic of Relation in Relation Data Model
관계 데이터 모델의 릴레이션은 네 가지 특성을 만족해야 테이블이 릴레이션으로 인정받을 수 있습니다.
1. 튜플의 유일성 : 하나의 릴레이션에는 동일한 튜플이 존재할 수 없습니다.
2. 튜플의 무순서 : 하나의 릴레이션에서 튜플 사이의 순서는 무의미합니다.
3. 속성의 원자성 : 속성 값으로 원자 값만 사용할 수 있습니다.
4. 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미합니다.
About Key Types
1. Primary Key (기본키)
릴레이션에서 튜플을 구별하기 위해 여러 후보키 중에서 기본적으로 사용할 키를 선택합니다.
후보키가 여러 개일 경우 DB 사용 환경을 고려하여 적합한 것을 기본키로 설정하면 됩니다.
2. Super Key (슈퍼키)
Uniqueness(유일성)은 키가 가져야 하는 기본 특성이며, 키 값이 같은 튜플은 존재 불가능합니다.
슈퍼키는 유일성의 특성을 만족하는 속성 또는 속성들의 집합입니다.
3. Candidate Key (후보키)
후보키는 유일성 & 최소성을 만족하는 속성 또는 속성들의 집합입니다.
이때 최소성이란, 꼭 필요한 최소한의 속성들로만 키를 구성하는 특성입니다.
후보키를 선정할 때는, DB가 사용될 현실 세계의 환경까지 염두에 두고 속성의 본래 의미를 정확히 이해한 후 슈퍼키와 후보키를 선별해야 합니다.
이 뜻은, 현재 DB에서 중복되지 않지만 향후 데이터 삽입을 통해 중복될 수도 있기에 주의해서 슈퍼키와 후보키를 선별해야 한다는 것입니다.
4. Alternate Key (대체키)
Primary Key, 기본키로 선택이 되지 못한 후보키들입니다.
5. Foreign Key (외래키)
어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키입니다.
외래키를 단독으로 기본키로 사용 가능하고 외래키를 포함해 기본키를 구성할 수 있습니다.
Constraints of Relation Data Model
관계 데이터 모델의 제약 조건은 데이터를 정확하고 유효하게 유지하는 무결성, Integrity를 보장해야 한다는 규칙입니다.
이것을 Integrity Constraint(무결성 제약 조건)라 하고, 무결성 제약 조건에는 개체 무결성 제약 조건, 참조 무결성 제약 조건이 존재합니다.
개체 무결성 제약 조건과 참조 무결성 제약 조건에 대해서는 밑에서 더 자세히 다루도록 하겠습니다.
Entity Integrity Constraint
개체 무결성 제약 조건(Entity Integrity Constraint)은 기본키를 구성하는 모든 속성은 널 값을 가져서는 안 된다는 제약 조건입니다.
기본키를 구성하는 속성 일부 혹은 전체가 널 값이 되면 튜플의 유일성을 판단 불가능 하기에 기본키의 본래 목적을 상실하게 되기 때문에 문제가 발생합니다.
Referential Integrity Constraint
참조 무결성 제약 조건(Referential Integrity Constraint)은 외래키가 참조 불가능한 값을 가질 수 없다는 제약 조건입니다.
외래키가 자신이 참조하는 릴레이션의 기본키와 상관 없는 값을 갖게 되면 두 릴레이션을 연관시킬 수 없으며, 두 릴레이션을 연관시켜주는 외래키 본래의 의미를 잃게 됩니다.
이상으로 논리적 데이터 모델 / 관계 데이터 모델에 대한 글을 마치도록 하겠습니다.
다음에는 더 좋은 글로 찾아뵙도록 하겠습니다!
감사합니다.
'.etc > DB' 카테고리의 다른 글
[DB] - SQL의 데이터 정의 기능 (0) | 2022.06.23 |
---|---|
[DB] - 관계 데이터 연산 (0) | 2022.06.23 |
[DB] - ERD (0) | 2022.06.22 |
[DB] - 데이터 모델링 (0) | 2022.06.22 |
[DB] - 데이터베이스 시스템 요소 설명 (0) | 2022.06.06 |