School/데이터베이스

데이터 모델링

응엉잉 2022. 4. 15. 16:28

데이터 모델링과 데이터 모델의 개념

데이터 모델링(Data Modeling)

현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정

2개 단계로 이루어짐 : 개념적 데이터 모델링 -> 논리적 데이터 모델링

개념적 데이터 모델링 논리적 데이터 모델링
현실 세계의 중요 데이터를 추출, 개념 세계로 옮기는 작업 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업

데이터 모델

데이터 모델링의 결과물을 표현하는 도구

개념적 데이터 모델 논리적 데이터 모델
사람의 머리로 이해할 수 있도록 현실 세계를 개념적으로 모델링하여 개념적 구조로 표현하는 도구
ex) 개체-관계 모델
개념적 구조를 논리적으로 모델링하여 데이터베이스의 논리적 구조를 표현하는 도구
ex) 관계 데이터 모델

 

데이터 모델의 구성

 

 

<개념적 데이터 모델>

ER model (개체-관계 모델 : Entity-Relationship Model)

개체와 개체간 관계를 이용해서 현실세계를 개념적 구조로 표현한 개념적 데이터 모델

 

E-R Diagram (개체-관계 다이어그램)

개체-관계 모델을 이용해 개념적 모델링한 결과물을 그림으로 표현한 것

이름 설명 파일 시스템 E-R 다이어그램 예시
개체
(Entity)
- 저장할 가치가 있는 중요 데이터를 가지고 있는 사람, 사물, 개념, 사건
- 다른 개체와 구별되는 이름을 가지고 있음
- 각 개체만의 속성(고유한 특성이나 상태)을 하나 이상 갖고있음
 레코드 사각형 서점에 필요한 개체 : 고객, 책
속성
(Attribute)
- 개체나 관계가 갖고 있는 고유한 특성
- 의미 있는 데이터의 가장 작은 논리적 단위
필드 타원 고객의 속성
: 아이디, 고객명

 

이름 설명 파일시스템
개체 타입
(Entity Type)
- 개체를 고유의 이름과 속성으로 정의한 것
- 개체의 구조를 나타냄
레코드 타입
개체 인스턴스
(Entity Instance)
- 구조에 따라 저장된 각각의 값 레코드 인스턴스
개체 집합
(Entity Set)
- 특정 개체 타입에 대한 개체 인스턴스를 모아둔 것  

 

속성의 분류

 

 

1) 속성 값 개수에 따른 분류

단일값 속성(single-valued attribute) 다중값 속성(multi-valued atribute)
깂을 하나만 가질 수 있는 속성
ER 다이어그램에서 타원으로 표현
ex) 고객 개체의 이름, 적립금 속성
값을 여러개 가질 수 있는 속성
ER 다이어그램에서 이중 타원으로 표현
ex) 고객 개체의 연락처 속성

2) 의미의 분해 가능성에 따른 분류

단순 속성(Simple Attribute) 복합 속성(Composite Attribute)
의미를 더 분해할 수 없는 속성
ex) 고객 개체 적립금 속성
ex) 책 개체 이름, ISBN, 가격 속성
의미를 분해(세분화)할 수 있는 속성
ex) 고객 개체 주소 속성 -> 도, 시, 우편번호 등으로 분해가능
ex) 고객 개체 생년월일 속성 -> 년, 월, 일 등

분해 가능한 하위 속성을 쪼갤 수 있음

 

3) 기존 속성값에서 유도

유도 속성(Derived Attribute)

기존의 다른 속성 값에서 유도되어 결정되는 속성

값이 별도로 저장되지 않음

ER다이어그램에서 점선 타원으로 표현

ex) 책 개체 가격과 할인울 속성으로 계산되는 판매가격 속성

ex) 고객 개체의 출생년도 속성으로 계산되는 나이 속성

널 속성(Null Attribribute)

널 값이 허용되는 속성

 

* 널(Null)값

아직 결정되지 않았거나 모르는 값, 또는 존재하지 않는값

공백이나 0과는 의미가 다름

ex) 등급 속성이 널 값 -> 등급이 아직 결정되지 않았음을 의미

 

키 속성(Key Arrtibute)

객체 인스턴스를 식별하는데 사용되는 속성

모든 객체 인스턴스 키 속성 값이 다름

둘 이상의 속성으로 구성되기도 함

ER 다이어그램에서 밑줄로 표현

ex) 고객아이디 속성

 

관계(Relationship)

개체와 개체가 맺고 있는 의미있는 연관성

mapping(개체 집합 사이의 대응관계) 을 의미

ER 다이어그램에서 마름모로 표현

ex) 고객 개체와 책 개체 간 구매관계

 

관계 유형 분류

1. 관계에 참여하는 개체 타입 수를 기준으로 분류

1) 이항관계 : 개체 타입 2개가 맺는 관계

2) 삼항관계 : 개체 타입 3개가 맺는 관계

3) 순환관계 : 개체 타입 하나가 자기 자신과 맺는 관계

 

2. 매핑 카디널리티 기준

* 매핑 카디널리티(Mapping Cardinality)

: 관계를 맺는 두 개체 집합에서, 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수

 

1) 일대일(1:1) 관계

개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 하나와 관계를 맺을 수 있고,

객체 B의 각 객체 인스턴스도 개체 A의 개체 인스턴스 하나와 관계를 맺을 수 있음

2) 일대다(1:n) 관계

개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러개와 관계를 맺을 수 있지만,

개체 B의 각 개체 인스턴스는 개체 A의 개체 인스턴스 하나와 관계를 맺을 수 있음

 

부서 개체의 개체 인스턴스는 사원 개체 인스턴스 여러개와 관계를 맺을 수 있지만,

사원 개체의 개체 인스턴스는 부서 개체 인스턴스 하나와 관계를 맺을 수 있다

 

3) 다대다(n:m) 관계

개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러개와 관계를 맺을 수 있고,

개체 B의 각 개체 인스턴스도 개체 A의 개체 인스턴스 여러개와 관계를 맺을 수 있다

고객 개체의 인스턴스들은 책 개체의 인스턴스 여러개와 관계를 맺을 수 있고,

책 개체의 인스턴스들은 고객 개체의 인스턴스 여러개와 관계를 맺을 수 있다

 

관계의 참여 특성

필수적 참여(전체 참여) 선택적 참여(부분 참여)

모든 개체 인스턴스가 관계에 반드시 참여해야 되는 것
ER 다이어그램에서 이중선으로 표현
ex) 고객 개체가 책 개체와의 구매 관계에 필수적으로 참여
-> 모든 고객은 책을 반드시 구매해야함

개체 인스턴스 중 일부만 관계에 참여해도 되는 것
ER 다이어그램에서 선으로 포현
ez) 책 개체가 고객 개체와의 구매관계에 선택적으로 참여
-> 고객이 구매하지 않은 책이 존재할 수 있음

관계의 종속성

약한 개체(weak entity) 강한 개체(strong entity)
다른 개체의 존재 여부에 의존적인 개체
ER다이어그램에서 이중 사각형으로 표현
다른 개체의 존재 여부를 결정하는 개체
ER다이어그램에서 사각형으로 표현

강한 개체와 약한 개체는 일반적으로 일대다 관계

약한 개체는 강한 개체와의 관계에 필수적으로 참여

약한 개체와 강한 개체가 맺는관계는 이중 마름모로 포현

약한 개체는 강한 개체의 키를 포함하여 키를 구성함

직원개체는 강한 개체, 부양가족 객체는 약한 개체

직원과 부양가족간 관계 '부양'은 이중 마름모로 표현

 

E-R다이어그램

사각형 : 개체를 표현

타원 : 속성을 표현

마름모 : 객체 사이의 관계를 표현

링크(연결선) : 각 요소를 연결

레이블 : 일대일, 일대다, 다대다 관계를 표기

 

<논리적 데이터 모델>

ER다이어그램으로 표현한 개념적 구조를 데이터베이스에 논리적 구조 형태로 표현한 것

데이터베이스의 논리적 구조 = 데이터베이스의 스키마

사용자가 생각하는 데이터베이스의 모습 또는 구조

 

논리적 데이터 모델의 종류

: 데이터베이스의 논리적 구조의 형태에 따라 구분

1) 관계 데이터 모델

2) 계층 데이터 모델

3) 네트워크 데이터 모델

 

1) 관계 데이터 모델

데이터베이스의 논리적 구조가 2차원 테이블 형태

일반적으로 많이 사용되는 논리적 데이터 모델

 

2) 계층 데이터 모델

데이터베이스의 논리적 구조가 트리(tree) 형태

개체간 상하관계 = 부모-자식 객체

부모와 자식 객체는 일대다 관계만 허용

두 개체 사이에 하나의 관계만 정의할 수 있음

다대다 관계를 직접 표현할 수 없음

개념적 구조를 모델링하기 어려워 구조가 복잡해질 수 있음

데이터 삽입,삭제,수정,검색이 쉽지 않음

 

3) 네트워크 데이터 모델

데이터베이스의 논리적 구조가 네트워크(그래프) 형태임

개체 간에는 일대다 관계만 허용 (오너-멤버)

두 개체 사이의 여러 관계를 정의할 수 있어 이름으로 구별함

다대다 관계를 직접 표현

'School > 데이터베이스' 카테고리의 다른 글

관계 데이터 연산  (0) 2022.04.17
관계 데이터 모델  (0) 2022.04.16
데이터베이스 시스템  (0) 2022.04.13
데이터베이스 관리 시스템(DBMS)  (0) 2022.04.12
데이터베이스 기본개념  (0) 2022.04.12