본문 바로가기

Computer Science/DB

8. 데이터 모델링

728x90
반응형

데이터의 3개의 세계

개념적 모델링)

현실 세계를 추상적 개념, 개채 타입으로 표현하고 이는 개념적 구조, 개념적 설계의 원칙을 따른다.

 

데이터 모델링)

개념적 구조를 논리적 개념, 레코드 타입으로 표현하고 논리적 설계, 데이터 모델을 가진다.

 

데이터 구조화)

논리적 구조를 물리적 구조로 표현해서 물리적 설계를 만든다. 저장 장치에서의 데이터 표현이다.

 

데이터 모델링 과정

DB설계 과정의 일부)

설계의 핵심은 개념적인 구조와 논리적인 구조를 거쳐 실제 데이터를 저장 가능한 물리적 구조로 변환하는 것

 

개념적 데이터 모델링)

애트리뷰트 들로 기술된 개체 타입과 이 개체 타입들 관의 관계를 이용하여 현실 세계를 표현하는 방법이다.

E-R 모델이 대표적인 개체-관계 모델이다. 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행이다.

 

논리적 데이터 모델링)

데이터 필드로 기술된 레코드 타입과 이 레코드 타입들 간의 관계를 이용하여 개념 세계를 표현하는 방법이다.

관계 데이터 모델, 네트워크 데이터 모델, 객체 관계 데이터 모델, 객체 지향 데이터 모델 등이 존재한다.

시스템으로 구축하고자 하는 업무에 대해 key, 속성, 관계 등을 정확하게 표현한다. 재사용성이 높다. 

 

<데이터 모델은 반드시 S, O, C를 가져야 한다.>

Structure: 데이터의 정적 성질, 개체 타입과 개체 간의 관계를 명세 ex) 학생 & 교수

Operation: 데이터의 동적 성질, 개체 인스턴스를 처리하는 작업에 대한 명세

Constraint: 데이터의 논리적 제약, 개체 인스턴스의 존재 조건, S로 부터 파생, 무결성을 위해 필요한 조건

 

논리적 데이터 모델 중 가장 많이 사용되는 모델은 Relation Data Model(관계 데이터 모델)

최근에는 객체 지향 데이터 모델, 객체-관계 데이터 모델이 사용됨

 

DBMS는 하나의 논리적 데이터 모델만을 구현한다.

 

Entitiy(개체): 단독으로 존재할 수 있으며 다른 것 과 구별되는 객체(object)

 

Entitiy Type(개체 타입): 이름과 애트리뷰트들로 정의됨, 개체 집합이란 한 개체 타입에 대한 개체 인스턴스들의 집합

 

<애트리뷰트의 유형>

1. 단순 애트리뷰트와 복합 애트리뷰트

2. 단일 값 애트리뷰트와 다중 값 애트리뷰트

3. 유도 애트리뷰트와 저장 애트리뷰트

4. NULL 애트리뷰트

 

단순 애트리뷰트: 더 이상 작은 구성 원소로 분해할 수 없다.

복합 애트리뷰트: 몇 개의 단순 애트리뷰트로 분해 가능하다.

 

 

위 그림에서 도 와 우편 번호는 단순 애트리뷰트로 볼 수 있고 동면 번지는 동면, 번지, 아파트 번호로 다시 쪼개질 수 있기에 복합 애트리뷰트라 볼 수 있다.

 

단일 값 애트리뷰트: '학생'이라는 개체 타입의 name 애트리뷰트는 각 개체가 하나의 값만 가짐

다중 값 애트리뷰트: '학생' 이라는 개체 타입의 수강과목 애트리뷰트는 각 개체가 2개 이상도 가질 수 있음

 

유도 애트리뷰트: 애트리뷰트 값이 다른 애트리뷰트나 개체가 가지고 있는 값으로부터 유도되어 결정됨 ex) 과목 성적에서 유래한 평균성적

저장 애트리뷰트: 유도 애트리뷰트를 생성하는 데 사용된 애트리뷰트 ex) 과목 성적

 

NULL 애트리뷰트: NULL 값을 가질 때 unknown(값을 모르거나), missing(값이 누락됐거나), not known(값이 존재하는지 조차 모르는)의 경우

 

<관계 타입>

개체 집합(타입)들 사이의 대응(correspondence), 즉 사상(mapping)을 의미

Relationship Type의 유형

Mapping Cardinality에 따라서 1:1, 1:N, N:1, N:M으로 나눌 수 있다. 여기서 min Cardinality가 0은 선택적이고 1은 의무적이다.

참여하는 개체수에 따라서 Unary, Binary, Ternary, N-ary로 나뉜다.

 

<Relationship의 특성>

전체 참여) A-B 관계에서 개체 집합 A의 모든 개체가 A-B 관계에 참여 ex) 교수 - 학과 관계

부분 참여) A-B 관계에서 개체집합 A의 일부 개체만 A-B 관계에 참여 ex) 학생 - 과목 관계에서 휴학생 제외

 

존재 종속) 어떤 개체 b의 존재가 개체 a에 종속됨 따라서 b는 a에 종속, a: 주 개체, b: 종속 개체

<ER - MODEL>

개체-관계 모델, 현실 세계의 개념적 표현, 개체 집합, 관계 집합

 

E-R 다이어그램

개체 -> 테이블로 매핑 => 필요시 정규화 진행

 

1:1 관계) 한쪽의 기본키를 다른 테이블에 외래 키로 배치

1:N 관계) one side의 기본키를 many side의 외래키로 배치

N:M 관계) 독립적인 테이블로 생성하고 참여 개체의 기본키를 가져와서 외래 키로 설정

 

특징) 다 대 다(m:n) 관계 표현, 다원 관계 표현, 다중 관계 표현, 관계 타입도 속성을 가지는 것이 가능

 

키 애트리뷰트) 한 개체 집합 안에서 각 개체마다 상이한 값을 갖는 애트리뷰트나 애트리뷰트 집합

키) 개체 타입 내의 모든 개체 인스턴스들을 유일하게 식별, 동일한 키 값을 갖는 두 개의 개체 인스턴스는 없다.

ERD에서 밑줄로 표시

 

<약한 개체 타입>

자기 자신의 애트리뷰트 만으로는 키를 명세할 수 없는 개체 타입 반대는 강한 개체 타입.

주 개체 == 강한 개체 타입, 종속 개체 == 약한 개체 타입

 

구별자) 강한 개체와 연관된 약한 개체 집합 내에서만 이들을 서로 구별할 수 있는 애트리뷰트, 부분 키

 

식별 관계 타입) 약한 개체를 강한 개체에 연관시켜 개체를 유일하게 식별하게 하는 관계

 

<논리적 데이터 모델>

개념적 구조를 데이터베이스로 구현하기 위한 중간 단계, 논리적 개념인 개체 타입과 관계로 표현.

데이터 베이스 = 릴레이션과 테이블의 집합

릴레이션 스키마 = 개체와 관계성을 모두 릴레이션(테이블)으로 정의

 

다양한 데이터 모델의 종류

728x90
반응형