현실 세계 존재하는 데이터를 컴퓨터 데이터 베이스의 구조 속으로 변환하는 작업
- 추상화 (Abstraction) - 특정 관점에서 필요한 것들을 추출해내는 과정
추상화를 통해서 현실 세계의 객체들을 데이터 베이스의 구조로 변환
개념적 데이터 모델링
현실적 세계를 개념적으로 모델링하여 ER-Diagram으로 변환하는 과정
개체(Entity)와 관계(Relation)를 중심으로 세계를 설명
개체 Entity
특정 관점에서 저장할 가치가 있는 데이터를 가지고 있고 구별되는 사람, 사물, 개념, 사건 등
- 개체 타입? 개체를 고유의 이름과 해당 개체가 가지고 있는 속성들로 정의한 것
- 개체 인스턴스? 개체는 틀인데, 틀이 실제 값을 가지고 실체화 된것
- 개체 집합? 개체 인스턴트들을 모아놓은 집합
개체 종류
(뒤의 관계 설명과 연관시켜서 이해)
> 약한 개체 (Weak Entity)
자기 자신 만의 속성으로는 다른 개체 인스턴스들과 구별할 수 없는 개체 -> 다른 개체가 존재하고 관계되어야 구별가능한 개체
부분키 (Partial Key) : 다른 개체의 기본키와 같이 결합되어 구별되는 약한 개체 내의 키
> 강한 개체 (Strong Entity)
혼자서도 충분히 다른 개체와 구별 가능한 개체
관계 Relation
개체들 사이의 어떠한 의미있는 관계가 있는지 나타냄
개체들 집합 사이의 매핑 관계
- 매핑 카디널리티 (Mapping Cardinality)? 관계가 있는 두 개체 집합에서, 각 개체 인스턴스가 연관을 맺고 있는 상대 개체 집합의 인스턴스 개수
- 1:1 관계
- 1:N 관계 -> 강한 개체와 약한개체는 일반적으로 1:N 관계!
- N:M 관계
관계의 참여 특성
> 필수적 참여 (전체 참여)
개체의 인스턴스가 관계에 반드시 참여해야함
나중에 논리적 모델링을 통해 제약 조건으로 변환됨
약한 개체는 강한 개체와의 관계에서 필수적으로 참여
-> E-R 다이어그램에서 두개의 선으로 표현
"관리"라는 관계에 제품은 반드시 참여해야하는 개체 인스턴스
> 선택적 참여 (부분 참여)
개체 인스턴스가 관계에 꼭 참여해도 되지 않아도 되는 것
-> E-R 다이어그램에서 실선으로 표현
"구매"라는 관계에서 고객이 상품 구매를 하지 않을 수도 있다
제약조건
삽입, 삭제, 변경의 SQL 연산 시에는 해당 제약 조들을 확인 후 신중히 실행해야 함
- 전체 참여가 있는 관계
- 관계의 종속성 - 약한 개체, 강한 개체가 존재하는가?
- 개체 집한 간의 매핑 카디널리티
속성 Attribute
개체 혹은 관계가 가지는 특성
속성 값의 개수에 따른 분류
> 단일 값 속성 (Single-valued attribute)
개체에서 하나의 값만 가질 수 있는 속성
ex) 학생 개체의 학번, 이름
> 다중 값 속성 (Multi-valued attribute)
개체에서의 여러개의 값을 가질 수 있는 속성
application에서 어디까지 허용하는가에 따라서 다중 값 속성은 상이하다
-> E-R 다이어그램에서 이중 타원으로 표현
ex) 학생 개체의 연락처, 수강 과목
의미 분해에 따른 분류
> 단순 속성 (Simple Attribute)
의미를 더이상 분해 불가능한 속성
> 복합 속성 (Composite Attribute)
의미를 더이상 분해 불가능한 속성
ex) 주소 같은 경우 - 도, 시, 동으로 세분화 가능
> 유도 속성
다른 속성에서의 연산을 통해서 얻어질 수 있는 속성
-> E-R 다이어그램에서 점선으로 표현
ex) 상품의 재고량과 판매량 수를 고려하여 판매율을 고려했을 시, 판매율은 판매량/재고량 * 100에서 유도되는 속성이다
> 키 속성 (Key Attribute)
개체의 각 인스턴스를 구별/식별하는 데에 사용되는 속성
pk (primary key)라고 하기도 한다.
하나의 속성만 PK가 되는 것이 아니라 여러개의 속성이 PK가 되기도 함
-> E-R 다이어그램에서 실선으로 표시
논리적 데이터 모델
개념적 데이터 모델링을 완성된 개념적 구조를 데이터베이스의 논리적 구조(스키마)로 표현하는 과정
관계 데이터 모델을 사용하여 표현 -> 2차원 테이블 형태
'데이터베이스 Database' 카테고리의 다른 글
SQL (Structured Query Language) - DDL 총정리 (0) | 2021.12.09 |
---|---|
관계 데이터 모델 (Relation) (0) | 2021.12.08 |
데이터 베이스 구조 - DataBase Structure (0) | 2021.12.07 |
데이터베이스 관리 시스템 DBMS(Data Base Management System) (0) | 2021.12.07 |
데이터베이스 Data Base 기본 개념 (0) | 2021.12.07 |