※ 데이터 모델(Data Model)
1. 데이터 모델이란? - 구축할 시스템의 정보 요구 사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구
2. 데이터 모델 기능
• 시스템을 현재 또는 원하는 모습으로 가시화
• 시스템의 구조와 행동을 명세화
• 시스템을 구축하는 구조화한 틀 제공
• 시스템을 구축하는 과정에서 결정하는 것을 문서화
• 다양한 영역에 집중하기 위해 다른 영역의 세부 사항은 숨기는 다양한 관점 제공
• 특정 목표에 따라 구체화된 상세 수준의 표현방법 제공
※ 데이터 모델링(Data Modeling)
1. 데이터 모델링이란? - 현실 세계를 추상화, 단순화, 명확화 하여 표현하는 기법으로 관리하고자 하는 데이터를 모델로 설계하여 데이터베이스를 구축
2. 데이터 모델링 특징
• 추상화(Abstraction) - 현실 세계를 일정한 형식으로 표현하는 것으로 아이디어나 개념을 간략하게 표현하는 과정
• 단순화(Simplification) - 복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현한다는 의미
• 명확화(Clarity) - 불분명함을 제거하고 명확하게 해석할 수 있도록 기술하는 것
3. 데이터 모델링 관점
• 데이터 관점(What, Data) - 데이터 위주의 모델링으로 어떤 데이터들이 업무와 얽혀있고 데이터 간에는 어떤 관계가 있는지에 대해서 모델링하는 방법
• 프로세스 관점(How, Process) - 프로세스 위주의 모델링으로 이 업무가 실제로 처리하고 있는 일은 무엇인지 또는 앞으로 처리해야 하는 일은 무엇인지를 모델링하는 방법
• 데이터와 프로세스의 상관 관점(Data vs. Process, Interaction) - 데이터와 프로세스의 관계 위주 모델링으로 프로세스의 흐름에 따라 데이터가 어떤 영향을 받는지를 모델링하는 방법
4. 데이터 모델링 세 가지 단계
① 개념적 데이터 모델링(Conceptual Data Modeling) - 전사적 데이터 모델링 수행 시 행해지는 추상화 레벨이 가장 높은 모델링. 업무 중심적이고 포괄적인 수준의 모델링이 진행됨
② 논리적 데이터 모델링(Logical Data Modeling) - 재사용성이 가장 높은 모델링으로 데이터베이스 모델에 대한 Key, 속성, 관계 등을 모두 표현하는 단계
③ 물리적 데이터 모델링(Physical Data Modeling) - 실제 데이터베이스로 구현할 수 있도록 성능이나 가용성 등의 물리적인 성격을 고려하여 모델을 표현하는 단계
5. 데이터의 독립성
① 3단계 스키마 구조
㉮ 외부 스키마(External Schema) / 사용자 관점 - Multiple User's View 단계로 각 사용자가 보는 데이터베이스의 스키마를 정의
㉯ 개념 스키마(Conceptual Schema) / 통합된 관점 - Community View of DB 단계로 모든 사용자가 보는 데이터베이스의 스키마를 통합하여 전체 데이터베이스를 나타내는 것으로 데이터베이스에 저장되는 데이터들을 표현하고 데이터 간의 관계를 나타냄
㉰ 내부 스키마(Internal Schema) / 물리적인 관점 - Physical Representation 단계로 물리적인 저장 구조를 나타내며 실질적인 데이터의 저장 구조, 컬럼 정의, 인덱스 등이 포함됨
* 스키마: 데이터 모델에 의거하여 데이터베이스의 성질을 형식적으로 기술
② 3단계 스키마 구조가 보장하는 독립성
㉮ 논리적 독립성 - 개념 스키마가 변경되어도 외부 스키마는 영향받지 않음
㉯ 물리적 독립성 - 내부 스키마가 변경되어도 외부/개념 스키마는 영향받지 않음
6. ERD(Entity Relationship Diagram)
① ERD 표기방식
㉮ IE/Crow's Foot - 까마귀발 표기법이라고도 부르고 가장 많이 사용되며 ERWin, ERStudio에서 사용되는 모델
㉯ Case*Method/Baker - Oracle에서 사용되는 모델로 Crow's Foot과 비슷
② IE/Crow'sFoot 표기법
기호 | 의미 |
사각형 ▭ | 엔터티 |
타원 ◯ | 0개 |
해쉬 마크 | | 1개 |
까마귀 발 ⪪ | 2개 이상(n) |
실선 – | Identifying - 부모 엔터티의 기본 키를 자식 엔터티의 기본 키로 사용![]() A가 없으면 B가 존재할 수 없는 관계 |
점선 ⋯ | Non-Identifying![]() A가 없어도 B가 존재할 수 있는 관계 |
③ ERD 작성 순서
㉮ 엔터티를 도출하고 그린다.
㉯ 엔터티를 적절하게 배치한다.
㉰ 엔터티 간의 관계를 설정한다.
* 기본 키로 속성이 상속되는 식별자 관계를 설정
* 중복되는 관계가 있으면 안됨
* Circle 관계가 발생하면 안됨
㉱ 관계명을 기입한다.
* 현재용을 사용
* 지나치게 포괄적인 용어 사용금지
* IE/Crow's Foot 표기법에서는 링크마다 각각의 관계 기술
㉲ 관계의 참여도를 기입한다.
㉳ 관계의 필수/선택 여부를 기입한다.
'자격증 > SQLD' 카테고리의 다른 글
[ SQLD 자격증 ] 데이터 모델과 SQL - 1. 정규화(Nomalization) (0) | 2023.05.15 |
---|---|
[ SQLD 자격증 ] 데이터 모델링의 이해 - 5. 식별자(Identifier) (0) | 2023.05.13 |
[ SQLD 자격증 ] 데이터 모델링의 이해 - 4. 관계(Relationship) (0) | 2023.05.13 |
[ SQLD 자격증 ] 데이터 모델링의 이해 - 3. 속성(Attribute) (0) | 2023.05.11 |
[ SQLD 자격증 ] 데이터 모델링의 이해 - 2. 엔터티(Entity) (0) | 2023.05.10 |