데이터 모델링의 과정은 크게 업무파악, 설계, 데이터베이스 구현 3가지로 나눌 수 있다.
여기서 설계에 대한 세부적인 내용을 포함하여 5단계로 나누어 표현해보았다.
<데이터 모델링의 과정>
① 업무파악
② 개념 모델링(개념 스키마 설계)
③ 논리 모델링(DBMS에 따라 논리적 스키마 설계)
④ 물리 모델링(실제 시스템에 구현)
⑤ 데이터 베이스 구현
각 과정에 대해 정리해보자.
- 의뢰한 사람의 요구를 파악/기획서 작성
- UI(User Interface) 작업 -> 요구를 파악할 수 있는 수단, 도구
- 이 과정에서 컴퓨터가 해야 할 일을 정확하게 이해하고 기획/구현해야함.
<요구의 종류>
- 컴퓨터 자체의 문제 해결 (EX. DB프로그램을 만드는 경우)
- 현실의 문제 해결 (EX. 인터넷 뱅킹 시스템, 아이디어 구현 등)
◆ UML(Unified Modeling Language)이란?
- 시스템 개발 과정에서 산출물의 명세화, 시각화, 문서화할 때 사용하는 모델링 언어
- 하나의 시스템으 표현하기 위한 표준적인 방법을 제공
- 요구에 부합하는 핵심 개념(Entity)들을 확보하고 개념들 간의 관계(구조)를 파악하고 정의
- 전체적인 뼈대(ERD)를 만드는 과정(가장 중요★★★)
◆ 효용적 의미
- 현실에서 개념(Entity)을 추출하는 ‘필터’
- 다른 사람과 대화하게 해주는 ‘언어’(ERD)
Entity Relationship Diagram
1. 정보를 발견
2. 연관된 정보를 그룹화
3. 정보 그룹 사이의 관계를 표현
◆ ERD의 구성요소
ERD 구성요소 | □ Entity -> Table |
○ Attribute -> Column | |
◇ Relation -> PK, FK, JOIN | |
Tuple -> Row |
- RDB는 내포관계를 허용하지 않는다.
- Entity를 통합적, 포괄적으로 표현하면 중복이 발생한다.
따라서, 정보를 주제별로 쪼개어 만드는 것이 좋다.
(중복을 줄일 수 있다(JOIN을 통해서))
◇ Entity : 실체, 객체
- 업무적 의미 : 업무에 필요한 정보를 저장하고 관리하기 위한 집합적인 것
- 시스템적 의미 : 동일한 성격의 entity의 인스턴스(테이블의 행)들을 보관하는 저장장소
◇ Attribute : 속성
- 업무에 필요한 데이터로 엔티티의 성질, 분류, 수량, 상태, 특성 등을 나타내는 세부 항목
◇ Identifier : 식별자
- 누구도 같은 값을 가지지 않는 속성(인스턴스의 유일성을 보장)
- 엔티티 간의 연결고리
◇ Relationship : 관계
- 두 엔티티 간의 업무적인 연관성(논리적인 관계)
Q. Entity VS. Object 같은가? 다른가?
A. 다르다.
- Entity : 개체(부분집합) / 정보를 표현하는 단위(Attribute의 묶음)
- Object : 객체(소프트 웨어를 구성하는 요소) / 사물(소프트웨어 또는 시스템)을 표현하는 단위
- 추출된 개념을 관계형 데이터베이스에 걸맞게 DBMS에 논리적 스키마를 설계
- 개념 데이터 모델링에서 만든 ERD를 DBMS에 맞게 Mapping하여
실제 데이터베이스로 구현하기 위한 모델을 만드는 과정
=> □ Entity -> Table , ○ Attribute -> Column , ◇ Relation -> PK, FK
<논리 데이터 모델링 과정>
1. 개념 모델링에서 추출하지 않았던 상세 속성들을 모두 추출(모든 Entity와 속성을 표현)
2. 정규화 수행
3. 데이터 표준화 수행
- 작성된 논리 모델을 저장하기 위한 물리적 구조를 정의하고 실제 시스템에 구현하는 과정(성능 중요)
- 사용자 또는 프로그램이 직접 접근하여 사용할 수 있는 구체적인 물리적인 모습을 표현
<물리 데이터 모델링 과정>
1. 데이터베이스에 사용할 제품 선택
2. 최적화된 실제 코드를 작성하여 데이터를 표로 작성
- 설계 단계에서 생성된 스키마를 실제 DBMS에 적용하여 에티블 및 관련 객체(뷰, 인덱스 등) 만듬.
- 구현된 데이터베이스를 기반으로 소프트웨어를 구축하여 서비스 제공
[DB] 데이터 모델링 - ERD 사용하기 (0) | 2021.05.25 |
---|---|
[DB] 데이터 모델링 - ERD 실습 문제 (1) | 2021.05.25 |
[DB] 데이터 모델링 - 관계(Relationship)란?/ EER 모델링이란? (0) | 2021.05.25 |
[DB] 데이터 모델링 - 엔티티(Entity) 란? (0) | 2021.05.25 |
[DB] 데이터 모델링이란? (0) | 2021.05.25 |