[ 모델링 ]
[ 모델링의 이해 ]
1. 모델링의 정의
∘ 사람, 사물, 개념 등의 다양한 현상을 정해진 표기법에 의해 표기하는 것
∘ 가설적 or 일정 양식에 맞춘 표현하는 것
∘ 복잡한 현실세계를 단순화시켜 표현하는 것
∘ 현실세계의 추상화된 표현
2. 모델링의 특징
∘ 추상화, 단순화, 명확화
3. 모델링의 관점
∘ 데이터 관점 (what / data)
∘ 프로세스 관점 (how/process)
∘ 상관 관점
[ 데이터 모델 ]
1. 데이터 모델링의 정의
∘ 정보 시스템을 구축하기 위한 데이터 관점의 업무분석 기법
∘ 현실세계의 데이터에 대해 약속된 표기법으로 표현하는 과정
∘ DB 구축을 위한 분석/설계의 과정
2. 데이터 모델의 기능
∘ 시스템 가시화를 돕는다.
∘ 시스템의 구조&행동 명세화
∘ 시스템을 구축하는 구조화된 틀 제공
∘ 시스템 구축 과정 문서화
3. 데이터 모델링의 중요성&유의점
ⅰ. 파급 효과
∘ 데이터 구조의 변경으로 인한 작업은 큰 위험요소이다. ⇨ 데이터 설계가 중요함
ⅱ. 간결한 표현
∘ 정보요구사항의 이해와 데이터 정합성 유지를 도움
ⅲ. 데이터 품질
∘ 데이터 모델링의 유의점
① 중복 (Duplication) : DB가 여러 장소에 같은 정보를 저장하는 잘못을 방지해야 한다.
② 비유연성 (Inflexibility) : 데이터 정의와 사용 프로세스를 분리함으로써 변경에 대한 유지보수를 쉽게 한다.
③ 비일관성 (Inconsistnecy) : 데이터간 상호 연관관계의 명확한 정의로 데이터의 모순을 예방해야 한다.
4. 데이터 모델링 3단계 진행
ⅰ. 개념적 데이터 모델링 ( 전사적 데이터 모델링 )
∘ 추상화 수준이 높은 업무 중심적이고 포괄적인 수준의 모델링
∘ 엔터티, 관계를 발견하고 ERD를 생성
∘ 데이터 요구사항 발견을 지원, 현 시스템의 변형 이해에 유용
ⅱ. 논리적 데이터 모델링
∘ 시스템으로 구축하고자 하는 업무에 대해 key, 속성, 관계 표현
∘ 재사용성이 높음
ⅲ. 물리적 데이터 모델링
∘ 실제로 DB에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계
[ 데이터 독립성 ]
1. 데이터 독립성의 필요성
∘ 유지보수 비용↓, 데이터 중복성↓, 데이터 복잡도↓, 요구사항 대응이 쉽다.
∘ 각 계층별 View에 영향을 주지 않고 변경이 가능하다
∘ 단계별 Schema에 따라 DDL과 DML이 다름을 제공한다.
2. DB 3 단계 구조
ⅰ. 외부 스키마 (사용자 관점)
∘ View 단계 여러 개의 사용자 관점으로 구성
∘ DB의 사용자, 프로그래머가 접근하는 DB 정의
ⅱ. 개념 스키마 (통합 관점)
∘ 조직 전체의 DB를 기술하는 것
∘ DB에 저장되는 데이터와 그들간의 관계를 표현하는 스키마
ⅲ. 내부 스키마 (물리적 저장 구조)
∘ DB가 물리적으로 저장된 형식
∘ 물리적 장치에서 데이터가 실제로 저장되는 방식을 표현한 스키마
3. 데이터독립성의 영역
1. 논리적 독립성
∘ 개념 스키마가 변경되어도 외부 스키마에 영향을 미치지 않도록 지원하는 것
⇨ 논리적 구조가 변경되어도 응용 프로그램에 영향이 없음
2. 물리적 독립성
∘ 내부 스키마가 변경되어도 외부/내부 스키마에 영향을 미치지 않도록 지원하는 것
⇨ 저장 장치의 구조 변경은 응용 프로그램 & 개념스키마에 영향 없음
[ 데이터 모델링의 중요한 세가지 개념 ]
세가지 요소
∘ 업무가 관여하는 어떤 것 Things
∘ 어떤 것이 가지는 성격 Attributes
∘ 업무가 관여하는 어떤 것 간의 관계 Relationships
[ ERD ]
데이터 모델 표기법
ERD 작업 순서
① 엔터티 작성
② 엔터티 배치
③ 엔터티간 관계 설정
④ 관계명 기술
⑤ 관계의 참여도 기술
⑥ 관계의 필수 여부 기술
[ 좋은 데이터 모델의 요소 ]
∘ 완전성
∘ 중복 배제
∘ 업무 규칙
∘ 데이터 재사용
∘ 의사소통
∘ 통합성
[ 엔터티 : Entity ]
[ 엔터티의 개념 ]
∘ 변변할 수 있는 사물
∘ DB 내에서 변별 가능한 객체
∘ 정보를 저장할 수 있는 어떤 것 (Thing : 사람, 장소, 물건, 사건, 개념 )
∘ 인스턴스의 집합 ( 인스턴스 : 엔터티의 하나의 값 )
[ 엔터티 표기법 ]
[ 엔터티의 특징 ]
∘ 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.
∘ 유일성 : 유일한 식별자에 의해 식별이 가능해야 한다.
∘ 영속적으로 존재하는 두 개 이상의 인스턴스의 집합이어야 한다.
∘ 엔터티는 업무 프로세스에 의해 이용되어야 한다.
∘ 엔터티는 반드시 속성이 있어야 한다.
∘ 엔터티는 다른 엔터테와 최소 한 개 이상의 관계가 있어야 한다.
[ 엔터티 분류 ]
1. 유무에 따른 분류
① 유형 엔터티 ⇨ 물리적인 형태 존재
② 개념 엔터티 ⇨ 물리적인 형태 없이 관리해야 할 개념적 정보로 구분이 되는 엔터티
③ 사건 엔터티 ⇨ 업무를 수행함에 따라 발생되는 엔터티 ( 통계자료에 이용 )
2. 발생시점에 따른 분류
① 기본 엔터티 ⇨ 다른 엔터티와의 관계 없이 독립적으로 생성이 가능한 엔터티 ex) 사원, 부서, 고객, 상품
② 중심 엔터티 ⇨ 기본엔터티로부터 발생되어 업무의 중심 역할을 하는 엔터티 ex) 계약, 사고, 주문, 매출
③ 행위 엔터티 ⇨ 두 개 이상의 부모 엔터티로부터 발생, 상세 설계시 도출 ex) 주문목록, 사원변경이력
[ 엔터티 명명 ]
∘ 현업 업무에서 사용하는 용어 사용, 약어 사용 자제, 단수명사 사용
∘ 모든 엔터티의 이름이 유일, 엔터티 생성 의미대로 이름 부여
[ 속성 ]
[ 속성의 개념 ]
∘ 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
[ 속성의 특징 ]
∘ 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.
∘ 정규화 이론에 근간하여 정해진 주식별자에 함수적 종속성을 가져야 한다.
∘ 하나의 속성에는 한 개의 값만을 가진다.
[ 속성 분류 ]
① 기본 속성 ⇨ 가장 일반적인 속성
ex) 제품이름, 제조년월, 제조원가
② 설계 속성 ⇨ 업무상 필요한 데이터 이외에 데이터 모델을 위해 속성을 새로 만들거나 변형하여 정의하는 속성
ex) 001-식품용기, 002-약품용기
③ 파생 속성 ⇨ 다른 속성에 영향을 받아 발생하는 속성, 보통 계산된값
ex) 전체 용기수, 용기의 총금액
[ 속성 명명 ]
∘ 해당업무에서 사용하는 이름 부여,
∘ 서술식 속성명 x,
∘ 약어 사용 자제,
∘ 전체 데이터모델에서 유일
[ 도메인 ]
∘ 각 속성이 가질 수 있는 값의 범위
[ 관계 ]
[ 관계의 정의 ]
∘ 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태, 행위로서 서로에게 연관성이 부여된 상태
∘ 엔터티의 정의에 따라 or 속성 정의 및 관계 정의에 따라서 변할 수 있다.
[ 관계 표기법 ]
① 관계명 : 관계의 이름
② 관계차수 - 1:1, 1:N, N:N
③ 관계선택사양 ⇨ 선택연관관계, 필수연관관계
[ 식별자 ]
[ 식별자 개념 ]
∘ 여러 집합체를 담고 있는 엔터티를 구분할 수 있는 논리적인 이름
∘ 식별자 특징
유일성 : 주식별자에 의해 엔터티 내 모든 인스턴스들이 유일하게 구별되어야 한다
최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
불변성 : 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다
존재성 : 주식별자가 지정이 되면 반드시 값이 들어와야 한다. (NOT NULL)
[ 식별자 분류 ]
∘ 대표성 여부 : 주식별자 vs 보조식별자
∘ 스스로 생성 여부 : 내부식별자 vs 외부식별자
∘ 속성의 수 : 단일식별자 vs 복합식별자
∘ 대체 여부 : 본질식별자 vs 인조식별자
[ 식별자관계, 비식별자관계에 따른 식별자 ]
'SQLD' 카테고리의 다른 글
SQLD 1-2. 데이터 모델링의 성능 (0) | 2021.11.12 |
---|