반응형
[4] 데이터 모델링
1) 데이터 모델링 이해
(1) 데이터 모델링 개요
- DBMS의 분류
① 계층형(Hierarchical) DBMS
② 네트워크형(Network) DBMS
③ 관계형(Relational) DBMS - 데이터 모델링의 정의
① 복잡한 현실세계를 단순화시켜 표현하는 것
② 모델이란 사물이나 사건에 관한 양상이나 관점을 관계된 사람이나 그룹을 위하여 명확하게 하는 것
③ 조직내의 실체, 사건, 활동 및 그들 관계에 관한 자료를 추상적으로 기술한 것
④ 비즈니스 조직과 IT 조직 간 통영사의 역할 수행
⑤ 데이터 모델링 이유: 낮은 비용/ 실험 가능/ 이식성 - 데이터 모델링이 제공하는 것
① 모델은 시스템을 현재 또는 원하는 모습으로 가시화 하도록 도와준다
② 모델은 시스템의 구조와 행동을 명세화 할 수 있게 한다
③ 모델은 시스템을 구축하는 틀을 제공한다
④ 모델은 우리가 결정한 것을 문서화한다
⑤ 모델은 한 영역에 집중하기 위해 다른 영역의 세부사항은 숨기는 다양한 관점을 제공한다
⑥ 모델은 특정 목표에 따라 다양한 상세 수준을 제공한다 - 데이터 모델링의 특징
① 논리적 데이터 모델링은 Data-driven 방식을 따른다
② 비즈니스 정보 요구 사항의 종합적인 이해를 하는데 도움이 된다
③ 설계 전 단계에 걸쳐 설계자, 개발자, 사용자 사이에 효과적인 의사 소통의 수단을 제공한다
④ 정확하고, 일관성이 있으며, 공유 가능하고, 유연성을 갖는 데이터베이스 설계의 기초를 제공한다 - 효과적인 데이터 모델링을 위한 지침
① 데이터 모델링은 비즈니스의 근본적인 속성을 찾아내는 작업
② 데이터 모델링은 ERD라는 결과물을 작도하려는 작도법이 아니다
③ 데이터 모델링은 테이블과 컬럼을 디자인하는 수준이어서는 곤란이나 (작품, 창조적) - 관계형 모델 이론 정의
① 관계형 모델은 업무에서 사용되는 데이터를 인식, 구성, 조작하는 정연하고도 직관적인 방법이다
② 즉, 관계형 모델은 데이터가 사용자에게 어떻게 비쳐지며, 사용자가 데이터에 어떻게 조작을 하며, 데이터가 처리 될 때 어떻게 유지되어야 하는가에 대한 토대이다
③ 무엇보다도 중요한 것은 관계형 모델이 사용자 관점에서 본 데이터를 정이 하는 지적인 개념이라는 사실이다. - 관계형 모델 이론
① 데이터 구조(Data Structure): 사용자가 데이터를 인식하는 2차원의 관계 테이블
② 데이터 조작(Data Manipulation): 사용자가 관계테이블에 행하는 일련의 처리형태
③ 데이터 무결성(Data Integrity): 관계테이블에 존재하는 데이터의 정확성과 일관성을 유지하기 위한 업무규칙 - 객체관계형 데이터베이스(ORDBMS)
① 관계형 모델과 객체 지향형 모델의 통합형
② 기존 SQL에 객체지향개념을 확장한 SQL3표준화 작업 중 데이터와 프로세스를 함께 모델링
③ 현재 다양한 구현방법이 혼재되어 있음
④ UniSQL, Informix, Oracle, IBM, CA 등이 지원 - 데이터 구조 특징
① 6가지 특성을 가진 행(Row)과 열(Column)로 구성된 2차원의 관계테이블로 표현
② 각 열은 하나의 값만을 가진다
③ 각 열은 동일한 성격의 값을 가진다
④ 각 행은 일련의 열의 값에 의해 유일하게 식별된다.
⑤ 열의 순서는 의미가 없다
⑥ 행의 순서는 의미가 없다
⑦ 각 열은 유일한 이름을 가진다 - 데이터 조작
① SET 처리(Not one record at a time)
② 관계 연산자: 조회
i. Select(or restrict): 열에 의거한 행의 subset
ii. Project: 열의 subset
iii. Product: 두 관계 테이블간 행의 조합을 묶음
iv. Join: 열의 기준에 의거하여 각 행을 수평적으로 묶음
v. Union: 중복을 없이하여 각 행을 수직적으로 묶음
vi. Intersection: 관계 테이블간의 공통된 행
vii. Difference: 하나의 관계 테이블에만 있는 행
viii. Division: 다른 관계 테이블의 모든 행에 대응하는 열을 제외한 열
③ 처리 연산자: 관계 테이블의 내용에 변화
i. Insert: 행의 입력
ii. Update: 행의 수정
iii. Delete: 행의 삭제 - 데이터 무결성
① 무결성: 업무 규칙에 따라 데이터의 일관성과 정확성을 유지하는 것
② 실체 무결성 규칙(Entity Integrity Rule)
주식별자(특정 행을 유일하게 인식하는 하나 이상의 열)는 null 값을 포함하지 않는다
③ 참조 무결성 규칙(Reference Integrity Rule)
관계 테이블의 모든 외부 식별자 값은 관련 있는 관계 테이블의 모든 주식별자 값이 존재해야 한다
④ 영역 무결성 규칙(Domain Integrity Rule)
테이블 내의 모든 열에 관한 무결성 규칙으로 데이터 타입, 길이, 허용 값, 기본값, 유일성, null 여부 등에 관한 제한이다. - 입력 규칙(Insert Rule)
① Dependent: 대응되는 부모 실체에 instance가 있는 경우에만 자식 실체에 입력을 허용
② Automatic: 자식 실체 instance의 입력을 항상 허용하고, 대응되는 부모 건이 없는 경우 이를 자동 생성
③ Nullify: 자식 실체 instance의 입력을 항상 허용하고, 대응되는 부모 건이 없는 경우 자식 실체의 foreign key를 null 값으로 처리
④ Default: 자식 실체 instance의 입력을 항상 허용하고, 대응되는 부모 건이 없는 경우 자식 실체의 foreign key를 지정된 기본값으로 처리
⑤ Customized: 특정한 검증조건이 만족되는 경우에만 자식 실체 instance의 입력을 허용
⑥ No Effect: 자식 실체 instance의 입력을 조건 없이 허용 - 삭제 규칙(Delete Rule)
① Restrict: 대응되는 자식 실체에 instance가 없는 경우에만 부모 실체 instance 삭제를 허용
② Cascade: 부모 실체 instance의 삭제를 항상 허용하고, 대응되는 자식 실체의 instance를 자동삭제
③ Nullify: 부모 실체 instance의 삭제를 항상 허용하고, 대응되는 자식 실체의 instance가 존재하면, 그것의 foreign key를 null 값으로 수정
④ Default: 부모 실체 instance의 삭제를 항상 허용하고, 대응되는 자식 실체의 instance가 존재하면, 그것의 foreign key를 기본값으로 수정
⑤ Customized: 특정한 검증조건이 만족되는 경우에만 부모 실체 instance의 삭제를 허용
⑥ No Effect: 부모 실체 instance 삭제를 조건 없이 허용 - Triggering Operation
① 유형1: 사용자규칙에 의한 Triggering Operation
② 유형2: Source 속성 값의 변화에 따른 추출속성값의 변화를 정의하는 Triggering Operation
③ 유형3: 엔티티 타입간의 관계에 따른 무결성 유지의 필요성을 정의한 Triggering Operation
④ 유형4: 시점에 의해 자동으로 일어나는 Triggering Operation
(2) 데이터 모델 구성 요소
- 데이터 모델 구성요소 개념
① 업무가 다루는 사항
② 업무가 다루는 사항들 사이에 존재하는 연관
③ 각 사항이 가지고 있는 상세한 특성
④ 업무 모델을 만드는데 사용되는 모든 diagram은 instance가 아닌 type을 다룬다 - 속성(Attribute) 정의
① 실체(Entity)내에서 관리하고자 하는 정보들의 항목
② 더 이상 분리되지 않는 단위 값
③ Entity를 서술하고 양을 계수화하고 자격을 부여하고 분류를 하고 구체적으로 기입하는 정보 항목 - 관계 정의
① 하나 또는 두 개의 사례를 연관시키는 업무와 관련된 중요한 사항
② 실체 상호 간 어떻게 연관되어 있는지를 파악하여 표현한다
: 식별성(Identity), 선택성(Optionality), 기수성(Degree, Cardinality), 비전이성(Non-transferability)
③ 관계는 항상 2개의 실체 사이에 존재한다
④ 관계는 두 개의 관점(관계 Membership)을 갖는다.
⑤ 관계의 양쪽 끝에 관계 명을 적는다
(3) 데이터 모델링 표기법 이해 - 표기법 기본 개념
- 실체(Entity) 표현
- 속성(Attribute) 표현
- 관계 표현
- 식별 관계와 비식별 관계
- 식별 관계와 비식별 관계의 구분
- 선택성 정의
- 관계 읽기
- 부모 실체와 자식 실체의 구분
- 관계형태
- 서브타입
- 배타적 관계
- 순환(Recursive) 관계 데이터모델
- 데이터 모델 검증
2) 개념 데이터 모델링
(1) 개념 데이터 모델링 이해
- 데이터 모델링과 프로세스 모델링
- 데이터 분류/관리 체계 필요
- 전사 데이터 구조
- 개념 데이터 모델링 절차
- 참조 모델 활용
- 개념 데이터 모델 구성 요소
(2) 주제 영역 정의
- 주제 영역 선언
- 주제 영역 도출
- 주제 영역 계층
- 단위 주제 영역
(3) 후보 엔티티 선정
- 개념 데이터 모델링 절차
- 엔티티 정의 절차
- 후보 엔티티 수집처
- 후보 엔티티 식별
- 후보 엔티티 검증
- 후보 엔티티 분류(우선 적용대상 선정)
(4) 핵심 엔티티 정의
- 엔티티 명확화
- 엔티티 자격검정 (면적 검증)
- 엔티티 자격검증 (집합 순수성)
- 엔티티 자격검증 (서브타입 지정)
- 엔티티 자격검증 (형태 결정)
- 본질 식별자
(5) 관계 정의
- 관계 의미
- 관계 표현
- 관계 정의 절차
- 관계 규명 절차
- 관계 형태
- 관계 형태 (1:1)
- 관계 형태 (M:1)
- 관계 형태(M:N)
- 관계 정의 방법
3) 논리 데이터 모델링
(1) 논리 데이터 모델링 이해
- 논리 데이터 모델 정의
- 논리 데이터 모델링 목적 및 효과
- 논리 데이터 모델링 필수 성공 요소
- 데이터 모델의 잘못된 유형 – 형체형 접근
- 데이터 모델의 잘못된 유형 – 족보형, 네트워크형 접근
- 데이터 모델의 잘못된 유형 – Bottom up 접근
- 데이터 모델의 잘못된 유형 – 데이터 모델링 객관화
(2) 속성 정의
- 속성 의미
- 속성 정의 시 유의사항
- 속성 후보 선정 원칙
- 속성 후보 선정 원칙 – 반복적인 작업
- 속성 검증
- 식별자 정의
- ID BAR
- ID 역할
(3) 엔티티 상세화
- 데이터 모델 상세화
- 데이터 모델 통합화
- 엔티티 분활과 통합
- 정규화
- 제1정규형
- 제2정규형
- 제3정규형
- M:M 관계 해소
- 속성 없는 관계 엔티티
- 계층형 데이터 모델
- 순환 관계 데이터 모델
- 계층 구조 통합
- 순환 구조 정의 시 유의 사항
- M:M 순환 관계
- 서브타입 모델
- 배타관계 모델
(4) 이력관리 정의
- 이력 관리 방법
- 의미 관계 (Between 관계)
- 이력 선분 의미
- 이력 선분 차이
- 이력 관리 유형
4) 물리 데이터 모델링
(1) 물리 데이터 모델링 이해
- 물리 데이터 모델 정의
- 물리 데이터 모델의 의의
- 논리 데이터 모델 – 물리 데이터 모델 변환
(2) 물리 요소 조사 및 분석
- 시스템 구축 관련 명명 규칙
- 하드웨어 자원 파악
- 운영 체제 및 DBMS 버전 확인
- DBMS 파라미터 확인
(3) 논리-물리 모델 변환
- 변환 절차
- 단위 엔티티 테이블
- UID PK로 변환
- 변환 절차(UID BAR가 있는 경우)
- 일반 속성을 컬럼으로 변환
- 관계 변환(M:1)
- 관계 변환(1:1)
- 관계 변환(M:1 순환관계)
- 관계 변환(1:1 순환관계)
- 관계 변환(배타적 관계)
- 서브타입 변환
- 데이터 타입 및 길이 결정
- 선분 이력 변환 시 주의사항
(4) 반정규화
- 뷰
- 중복 테이블 생성
- 중복 테이블
- 중복 테이블 – 진행 테이블
- 테이블 분할
- 테이블 분할 (수직 분할)
- 테이블 분할 (수평 분할)
- 테이블 통합
- 중복 컬럼
반응형
댓글