1. 데이터 모델링
-
현실세계를 데이터베이스로 표현하기 위해 추상화
-
고객과의 의사소통을 통해 고객의 업무 프로세스를 이해해야함
-
고객이 쉽게 이해할 수 있도록 복잡하지 않게 해야함
-
고객의 업무 프로세스를 이해한 후 데이터 모델링 표기법을 사용해 모델링
-
고객의 업무프로세스 추상화, 소프트웨어 분석, 설계하면서 점점 더 상세해짐
-
고객의 비즈니스 프로세스를 이해하고 비즈니스 프로세스의 규칙 정의함
2. 데이터 모델링의 특징
-
추상화(Abstraction): 공통적인 특징을 찾고 간략하게 표현
-
단순화(Simplification): 복잡한 문제를 피하고 누구나 이해할 수 있게 표현
-
명확성(Clarity): 의미적 해석이 모호하지 않고 명확하게 해석 되어야 함
3. 데이터 모델링 단계
(1) 개념적 모델링(Conceptual Data Modeling)
-
고객의 비즈니스 프로세스 분석, 업무 전체에 대한 데이터 모델링
-
중요한 부분을 위주로 모델링(복잡하게 표현 안함)
-
업무적 관점에서 모델링, 기술적 용어는 지양함
-
엔터티(Entity)와 속성(Attribute)을 도출하고 개념적 ERD(개체-관계 모델)를 작성
(2) 논리적 모델링(Logical Data Modeling)
-
개념적 모델링을 논리적 모델링으로 변환
-
식별자 도출하고 필요한 모든 릴레이션 정의
-
정규화 수행해서 데이터 모델의 독립성 확보
(3) 물리적 모델링(physical Modeling)
-
데이터베이스를 실제 구축함
-
테이블, 인덱스, 함수 등을 생성
-
성능, 보안, 가용성 고려해서 구축
4. 데이터 모델링 관점
(1) 데이터
-
비즈니스 프로세스에서 사용되는 데이터를 의미함
-
구조 분석, 정적 분석
(2) 프로세스
-
비즈니스 프로세스에서 수행하는 작업을 의미함
-
시나리오 분석, 도메인 분석, 동적 분석
(3) 데이터와 프로세스
-
프로세스와 데이터 간의 관계를 의미함
-
CRUD(Create, Read, Update, Delete)분석
5. 데이터 모델링을 위한 ERD(Entity Relationship Diagram)
-
1976sus 피터첸이 Entity Relationship Model 표기법 만듦
-
엔터티와 엔터티 간의 관계를 정의하는 모델링 방법
(1) ERD작성 절차
-
엔터티를 도출하고 그림(업무에서 관리해야 하는 집합을 도출)
-
엔터티를 배치(도출 후 엔터티 배치, 주용한 엔터티를 왼쪽 상단 배치)
-
엔터티 간의 관계를 설정함
-
관계명을 서술함(엔터티 간의 어떤 행위나 존재가 있는지 표현함
-
관계 참여도를 표현함(한 개의 엔터티와 다른 엔터티 간 참여하는 관계 수 의미)
-
관계의 필수 여부 표현(필수는 반드시 존재해야 하는 것)
(2) ERD 작성 시 고려사항
-
중요한 엔터티는 가급적 왼쪽 상단에 배치
-
ERD는 이해가 쉬워야 하고 너무 복잡하지 않아야 함
6. 데이터 모델링 고려사항
(1) 데이터 모델의 독립성
-
독립성이 확보된 모델은 고객의 업무 변화에 능동적으로 대응 가능
-
독립성을 확보하기 위해서는 중복된 데이터를 제거해야 함
-
데이터 중복을 제거하는 방법이 바로 정규화임
(2) 고객 요구사항의 표현
-
데이터 모델링으로 고객과 데이터 모델러 간 의사소통을 할 수 있어야 함
-
고객의 요구사항을 간결하고 명확하게 표현해야 함
(3) 데이터 품질 확보
-
데이터베이스 구축 시에 데이터 표준을 정의하고 표준 준수율을 관리해야 함
-
데이터 표준을 확보해야 데이터 품질을 향상시킬 수 있음
1. 3층 스키마
-
사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고 이들 간의 관계를 정의한 ANSI 표준
-
데이터베이스의 독립성을 확보하기 위한 방법
-
데이터 복잡도 증가, 데이터 중복 제거, 사용자 요구사항 변경에 따른 대응력 향상, 관리 및 유지보수 비용 절감 등의 장점 가짐
-
3단계 계층으로 분리해서 독립성을 확보하는 방법으로 각 계층을 뷰(View)라고도 함
* 3층 스키마의 독립성
(1)논리적 독립성: 개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것
(2)물리적 독립성: 내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것
2. 3층 스키마 구조
(1) 외부 스키마(External Schema)
-
사용자 관점, 업무상 관련이 있는 데이터 접근
-
관련 데이터베이스의 뷰를 표시함
-
응용 프로그램이 접근하는 데이터베이스를 정의함
(2) 개념 스키마(Conceptual Schema)
-
설계자 관점, 사용자 전체 집단의 데이터베이스 구조
-
전체 데이터베이스 내의 규칙과 구조를 표현함
-
통합 데이터베이스 구조
(3) 내부 스키마(Internal Schema)
-
개발자 관점, 데이터베이스의 물리적 저장 구조
-
데이터 저장 구조, 레코드 구조, 필드 정의, 인덱스 등을 의미
'SQL 공부' 카테고리의 다른 글
(SQLD)관계형데이터베이스(Relation Database)/SQL 종류 (0) | 2020.08.07 |
---|---|
(SQLD)반정규화(De-Normalization)/분산 데이터베이스 (0) | 2020.08.06 |
(SQLD)정규화(Normalization)/정규화와 성능 (0) | 2020.08.04 |
(SQLD)관계(Relationship)/엔터티 식별자 (0) | 2020.08.02 |
(SQLD)엔터티(Entity)/속성(Attribute) (0) | 2020.07.31 |