데이터 모델링과 데이터 모델의 개념
데이터 모델링(data modeling): 현실세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환과정
추상화(abstraction): 현실세계의 특징을 잘 묘사하는 데이터를 뽑아내는 것
개념적 모델링(conceptual modeling): 묘사하고자 하는 대상에 대한 중요 데이터를 추출하여 개념 세계로 옮기는 작업
논리적 모델링(logical modeling): 개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업
개념적 모델링 + 논리적 모델링 = 데이터 모델링
데이터 모델(data model): 데이터 구조+연산+제약조건
개체ㅡ관계 모델
개체-관계 모델 : 개체(entity)와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현하는 방법
개체-관계 다이어그램 : 현실 세계를 개체-관계모델을 이용해 개념적으로 모델링 하여 그림으로 표현한 것
- 개체
개체(entity): 현실 세계에서 조직을 운영하는데 꼭 필요한 사람이나 사물같이 구별되는 모든 것개념적으로만 존재하는 사건이나 개념도 개체가 될 수 있다.
개체 타입(entity type): 개체를 고유한 이름과 속성들로 정의한 것
개체 인스턴스(entity instance), 개체 어커런스(entity occurrence): 속성이 실제 값을 가지므로서 실체화 된 개체
개체 집합(entity set): 특정 개체 타입에 대한 개체 인스턴스들을 모아놓은 것 - 속성
- 단일 값 속성과 다중 값 속성
단일 값 속성: 인스턴스당 하나의 값만 있는 것(ex. 고객 이름, 고객 적립금)
다중 값 속성: 인스턴스당 여러개의 값을 가지는 것(ex. 고객 전화번호, 책 저자) - 단순 속성과 복합 속성
단순 속성: 더는 분해할 수 없는 속성(ex. 고객 아이디, 책 이름)
복합 속성: 의미를 분해할 수 있어 값이 여러개의 의미를 포함하는 것(ex. 주소, 생년월일) - 유도 속성
저장 속성: 값이 실제로 저장되어 있는 속성(ex. 가격, 할인율)
유도 속성: 값이 별도로 저장되는 것이 아니라 기존의 다른 속성 값에 유도되어 결정되는 속성( ex. 판매가격 = (가격*(1-할인율)) ) - 널 속성
널 값: 아직 결정되지 않았거나 모르는 값, 존재하지 않는 값
널 속성: 널 값이 허용되는 속성 - 키속성
키 속성: 개체 집합에 존재하는 각 개체 인스턴스들을 식별하는 데 사용키를 둘 이상의 속성들로 구성하기도 함
- 단일 값 속성과 다중 값 속성
- 관계
관계 타입(relationship type): 개체와 개체 사이에 정의된 구매 관계(관계 타입도 속성을 가질 수 있다.) (ex. 고객(개체)과 책(개체) 사이에 구매(관계 타입) 정의, 구매의 속성으로 구매일자(속성), 결제방식(속성)을 가진다)
관계 인스턴스: 관계타입이 실제 값을 가지므로서 실체화 된 관계
- 관계의 유형
관계 참여하는 개체 타입의 수에 따른 분류: 이항 관계(개체 타입 2개가 맺는 관계), 삼항 관계(개체 타입 3개가 맺는 관계), 순환 관계(개체 타입 1개가 자기 자신과 맺는 관계)
매핑 원소의 수, 즉 매핑 카디널리티(mapping cardinality) 기준으로 분류 : 일대일, 일대다, 다대다
- 일대일 관계
- 일대다 관계
- 다대다 관계
- 관계의 참여 특성
A와 B의 관계를 생각한다
A의 모든 개체 인스턴스가 관계에 반드시 참여해야 하는 상황 : 'A가 관계에 필수적(or 전체) 참여한다'
A의 개체 인스턴스 중 일부만 관계에 참여해도 되는 상황: 'A가 관계에 선택적(or 부분) 참여한다'
- 관계의 종속성
A와 B의 관계를 생각한다
개체 B가 독자적으로는 존재할 수 없고, 다른 개체 A의 존재 여부에 의존적인 상황: '개체 B가 개체 A에 종속되어 있다' -> A가 존재해야 개체 B가 존재할 수 있고, A가 삭제되면 B도 삭제한다(생명주기가 A에 종속적이다) 이때 A를 강한 개체, B를 약한 개체fk gksek.
4. E-R 다이어그램
논리적 데이터 모델
- 논리적 데이터 모델의 개념과 특성
앞서 설명한 개념적 데이터모델(개체-관계 모델)은 사람들의 머리속에 그려지는 개념적 모델임
하지만, 이를 논리적 데이터 모델링을 하기 위해서 DBMS의 종류가 중요함 - 계층 데이터 모델
- 네트워크 데이터 모델
'DB' 카테고리의 다른 글
관계 데이터 모델 (0) | 2022.04.10 |
---|---|
데이터베이스 시스템 (0) | 2022.04.09 |
데이터베이스 관리 시스템 (0) | 2022.04.09 |
데이터베이스 기본개념 (0) | 2022.04.09 |