04. 데이터 모델링
현실 세계의 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 과정을 데이터 모델링이라고 한다.
- 사람 머릿속에 코끼리를 연상시킬 수 있는 중요한 데이터를 찾아 개념 세계로 옮기는 단계와, 이를 컴퓨터 세계에 저장하는 구조를 결정해서 표현하는 단계로 나누어 진행한다.
- 현실 세계에서 코끼리에 대한 중요 데이터를 추출해서 개념 세계로 옮기는 작업을 개념적 모델링이라고 하고, 개념 세계의 데이터를 컴퓨터의 데이터베이스 구조로 표현하는 작업을 논리적 모델링이라고 한다
- 데이터 모델은 데이터 모델링의 결과를 표현하는 도구로, 개념적 데이터 모델과 논리적 데이터 모델로 나눌 수 있다.
- 개념적 데이터 모델 : 현실 세계를 개념 세계로 추상화했을 때 어떤 요소로 이루어져 있는지 표현하는 개념적 구조.
- ex) 개체-관계 모델 (E-R 모델)
- 논리적 데이터 모델 : 데이터를 어떤 모습으로 저장할 것인지 표현하는 논리적 구조
- ex) 관계 데이터 모델
개체-관계 모델
- 존재 종속 관계는, 개체 B가 개체 A에 종속될 경우 개체 A가 존재해야 개체 B가 존재하며 개체 A가 삭제되면 개체 B도 함께 삭제되는 관계를 의미한다.
- 이때 다른 개체의 존재 여부에 의존적인 개체 B를 약한 개체라 하고, 다른 개체의 존재 여부를 결정하는 개체 A를 강한 개체라 한다.
- 강한 개체와 약한 개체는 일대다 관계
- 약한 개체는 강한 개체의 관계에 필수적으로 참여 (=전체 참여)
- 약한 개체는 DB 전체에서 식별되기 어려우므로, 강한 개체의 키를 포함하여 키를 구성함.
- 약한 개체집합 내에서 서로 구별할 수 있는 속성은 부분키라고 함.
- 약한 개체의 부분키는 전체 DB에서 key 식별이 불가하고, 종속된 강한 개체 내에서는 key로 식별이 가능함.
💡 개체와의 부가관계가 2개 이상의 속성을 지닐 경우, 개체의 속성으로 빼지 말고 존재종속 관계로 표현해야 함
논리적 데이터 모델
- 위에서 개념적 구조를 표현한 E-R 다이어그램을 데이터베이스에 저장할 형태로 표현한 논리적 구조를 논리적 데이터 모델이라 한다.
- 컴퓨터의 DB에 표현하는 형태를 결정하기 때문에 DBMS 종류에 영향을 받는다. (개념적 데이터 모델은 DBMS과 무관)
- 이 때 개념적 구조는 다이어그램이고, 논리적 구조는 schema(스키마)임 → 이 스키마는 사용하는 데이터베이스 관리 시스템에 따라 달라짐
- 대표적으로 계층 데이터 모델, 네트워크 데이터 모델, 관계 데이터 모델이 존재한다.
- 이 중 관계 데이터 모델이 일반적으로 많이 사용됨
05. 관계 데이터 모델
- 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델로, 하나의 개체에 관한 데이터를 릴레이션 하나에 담아 DB에 저장한다.
- 릴레이션의 열을 속성 또는 애트리뷰트라고 부른다.
- 릴레이션은 파일 관리 시스템의 파일에 해당하고, 속성은 해당 파일의 필드에 해당
- 릴레이션의 행은 투플이라고 부른다.
- 해당 릴레이션의 인스턴스로, 파일 관리 시스템의 레코드에 대응하는 개념
키(key)
- 릴레이션에 포함된 투플들을 유일하게 구별해주는 역할을 한다. DB 전체에서 식별이 가능해야 키(key)로 인정되는 개념적 구조의 E-R 모델과 다르게 릴레이션 내에서만 구별이 가능하면 키로 인정한다.
- 슈퍼키 : 유일성의 특성을 만족하는 속성 혹은 속성들의 집합
- 후보키 : 유일성과 최소성을 만족하는 속성 혹은 속성들의 집합
- 슈퍼키 중에서도 최소성을 만족하면 후보키가 됨.
- 하나의 속성으로 구성된 키는 당연히 최소성을 만족함.
- 대체키 : 기본키로 선택되지 못한 후보키들
- 외래키 : 다른 릴레이션의 기본키를 그대로 참조하는 속성 혹은 속성의 집합
- 이 때 외래키 속성과 그것이 참조하는 기본키 속성의 이름은 달라도 되지만, 도메인은 동일해야 함.
- ex) 이름은 ‘고객아이디’와 ‘주문고객’으로 다르지만, 속성의 도메인은 동일
- 외래키는 기본키를 참조하지만, 외래키 자체는 해당 릴레이션에서 기본키가 아니기 때문에 NULL 값일 수 있음.
관계 데이터 모델의 제약
- 개체 무결성 제약조건 (기본키에 대한 규칙)
- 기본키를 구성하는 모든 속성은 널 값을 가지면 안 된다는 규칙
- 기본키를 구성하는 속성이 NULL 값이 되면 유일성 판단이 어려워짐 → 본래 목적 상실
- 참조 무결성 제약조건 (외래키에 대한 규칙)
- 외래키는 자신이 참조하는 릴레이션에 기본키 값으로 존재하는 값, 즉 참조 가능한 값만 가져야 함
- 아래 그림의 경우 cherry라는 주문고객의 속성은 존재하지 않으므로, 제약조건을 위반한 예임.
- 외래키가 NULL 값을 가지는 것은 참조 무결성 제약조건을 위반한 예시는 아님.
'Computer Science' 카테고리의 다른 글
[데이터베이스] 데이터베이스 저장 및 인덱스 (0) | 2023.11.29 |
---|---|
[데이터베이스] #2 데이터베이스 시스템 (0) | 2023.09.09 |
[데이터베이스] #1 데이터베이스 기본 개념, 관리 시스템 DBMS (0) | 2023.09.09 |