개발자 성장일지
제 4장 데이터 모델링 본문
1. 데이터 모델링 개념
- 데이터 모델링(데이터베이스 설계)이란 현실 세계의 사물이나 개념을 데이터베이스 개체(테이블)로 표현하기 위한 일련의 과정
- 데이터 모델링은 크게 개념적 모델링, 논리적 모델링, 물리적 모델링 단계로 나뉨
2. 데이터 모델링 과정
- 데이터베이스 생명주기는 구축 – 사용 – 개선 - 재구축의 순환과정으로 이루어짐
- 데이터 모델링 첫 단계로 현실 세계를 파악하고 사용자의 요구사항을 수집 및 분석 단계
3. 개념적 모델링
- 요구사항을 수집하고 분석한 결과를 토대로 업무의 핵심적인 개념을 구분하고 전체적인 뼈대를 만드는 과정
- 개체(entity)를 추출하고 각 개체들 간의 관계를 정의하여 ER 다이어그램(ERD, Entity Relationship Diagram)을 만드는 과정
4. 논리적 모델링
- 개념적 모델링에서 만든 ER 다이어그램을 사용하려는 DBMS에 맞게 사상(매핑, mapping)하여 실제 데이터베이스로 구현하기 위한 모델을 만드는 과정
- 논리적 모델링 과정에서는 상세 속성을 추출 및 정규화를 수행 그리고 데이터의 형태 및 크기(표준화)를 확정
5. 물리적 모델링
- 작성된 논리적 모델을 실제 컴퓨터의 저장 장치에 저장하기 위한 물리적 구조를 정의하고 구현하는 과정
- DBMS 특성에 맞게 저장 구조를 정의해야 데이터베이스가 최적의 성능을 낼 수 있음
6. ER 모델
- ER(Entity Relationship) 모델은 데이터 모델링 과정 중 개념적 모델링에서 사용하는 모델로, 1976년 Peter Chen이 제안
- ER 모델은 현실의 사물을 개체(Entity)와 개체 간의 관계(Relationship)로 표현
7. 개체와 속성
- 개체(Entity)는 사람, 사물, 장소, 개념, 사건과 같이 유무형의 정보를 가지고 있는 독립적인 실체
- 개체는 다른 개체의 도움없이 독자적으로 존재하는 강한 개체(Strong Entity)와 독자적으로 존재할 수 없는 약한 개체(Weak Entity)가 있음
- 속성(Attribute)은 개체가 가진 특성
- 개체는 직사각형, 속성은 타원으로 표현하고 개체를 유일하게 식별할 수 있는 속성은 밑줄 그음
8. 관계와 관계 타입
- 관계(Relationship)는 개체와 개체 사이의 연관성을 나타내는 개념으로 마름모로 표현
- 관계 타입은 개체와 개체 간의 연결 가능한 관계를 정의한 개념
9. IE 표기법
- IE(Information Engineering) 표기는 ERD을 더 쉽게 표현하여 모델링 도구에서 사용하는 표기법
- IE 표기에서는 개체와 속성은 직사각형으로 표현하고 관계는 실선 또는 점선으로 표현
- 관계 대응수는 아래와 같은 기호로 표현
10. 관계유형 1:N
- 학생 1명(인스턴스, 튜플) 은 1개 이상의 과목을 수강할 수 있기 때문에 1:N 관계
11. 관계유형 1:1
- 학생 1명(인스턴스, 튜플) 은 1개의 신체정보만 가질 수 있기 때문에 1:1 관계
12. 관계유형 N:M
- 학생 1명(인스턴스, 튜플) 은 1개 이상의 강좌를 수강할 수 있기 때문에 1:N 관계
- 강좌 1개(인스턴스, 튜플) 는 1명 이상의 학생이 수강할 수 있기 때문에 1:N 관계
- 일반적으로 두 엔티티가 N:M 관계에 있는 경우 중간에 또 다른 엔티티를 두어 1:N 관계로 전환
13. 관계 참여도
- 관계 참여도는 필수(|), 선택(O) 두 가지로 표현
- 필수 참여는 어느 한쪽의 엔티티 값이 존재하면 반대 엔티티에도 존재하는 참여
- 선택 참여는 어느 한쪽의 엔티티 값이 존재하지만 대응되는 반대쪽 엔티티에 존재하거나 존재하지 않는 참여
14. 식별 관계
- 강한 개체 관계는 강한 개체 간의 관계로 비식별자 관계라 하고 점선으로 표현
- 약한 개체 관계는 약한 개체를 포함하는 관계로 식별자 관계라 하고 실선으로 표현
'DataBase' 카테고리의 다른 글
모델링 실습 - ERD (0) | 2023.10.10 |
---|---|
제 3장 SQL 고급 (1) | 2023.10.10 |
제 2장 테이블 제약 조건 (0) | 2023.10.10 |
DBMS(MariaDB) 설치 및 환경 구축 실습 (0) | 2023.10.10 |
제 1장 데이터베이스 이해 (0) | 2023.10.10 |