SQLD 개념 정리 -1. 데이터 모델링
#
데이터 모델링 :
현실세계(사물/사건에 관한 양상)를 추상화, 단순화, 명확화하기 위해 일정한 표기법에 의해 표현하는 기법.
(현실세계를 추상화, 단순화, 명확화한 것이=데이터 모델)
-추상화: 현실세계를 일정한 형식에 맞추어 표현
-단순화: 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현
-명확화: 누구나 이해하기 쉽도록 애매모호함이 없고 정확하게 기술
#
모델링의 세 가지 관점
-데이터 관점: 업무가 어떤 데이터와 관련이 있는지?
-프로세스 관점: 업무가 무엇을 해야하는지?
-상관관점: 일의 방법에 따라서 데이터가 어떻게 영향을 받는지?
#
데이터 모델이 제공하는 기능:
-시스템을 현재 또는 원하는 모습으로 가시화
-시스템의 구조와 행동을 명세화
-시스템을 구축하는 구조화된 틀 제공
-시스템을 구축하는 과정에서 결정한 것을 문서화
-다양한 영역에 집중하기 위해 다른 영역의 세부 사항은 숨기는 다양한 관점 제공
-특정 목표에 따라 구체화된 상세 수준의 표현 방법을 제공
#
데이터 모델링의 중요성
-파급효과 : 기초적인 작업으로 파급 효과가 크기 때문에 시스템 구축 작업 중에서 다른 어떤 설계 과정보다 데이터 설계가 중요.
-복잡한 정보 요구사항의 간결한 표현: 말과 글보다 훨씬 간결
-데이터 품질: 데이터 중복(고객 정보 등의 정보), 비유연성, 비일관성이 발생할 수 있다.
#
모델링의 3단계
현실세계에서 개념적 구조로 만드는
개념데이터 모델링 :
추상화 수준 높음(상세하지 않음), 업무 중심적이고 가장 중요하고 포괄적인 수준의 모델링 진행.
(전사적 데이터 모델링, EA수립 시 많이 사용)
개념적 구조에서 논리적 구조로 만드는
논리데이터 모델링:
구축하고자 하는 업무의 키, 속성, 관계등을 정확하게 표현한다. 한번 구축해놓으면 재사용성이 높음
논리에서 물리로
물리데이터 모델링:
실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적 성격 고려하여 설계한다.
#
프로젝트 생명 주기는 정보전략계획- 분석- 설계- 개발- 테스트- 전환/이행 단계이다.
이 중 개념적 데이터 모델링: 정보전략계획, 분석단계에서 일어나고
논리적 데이터 모델링: 분석단계, 물리적 데이터 모델링: 설계 단계에서 일어난다.
#
데이터 독립의 필요성
오늘 날씨와 내일 날씨가 다르니까, 이 세상의 데이터는 끊임없이 증가한다. --> 데이터 중복성 증가--> 데이터 복잡도 증가
사용자 요구사항도 끊임없이 발생함. - 유지보수 비용 증가 - 요구사항 대응 저하
데이터 독립성 개념은 사용자가 보는 화면과 데이터베이스 간의 독립성을 유지하기 위해서 출현하였다.
#
데이터 독립성을 유지하기 위한 3단계 구조
외부 단계와 개념적 단계의 독립성은 논리적 데이터 독립성으로 유지된다.
내부적단계와 개념적 단계/외부 단계의 독립성은 물리적 데이터 독립성으로 유지된다.
외부 스키마(사용자 관점)
개념 스키마(연결고리 , 통합관점)
내부 스키마(물리적 관점)
논리적 독립성: 개념스키마가 변경되어도 내부스키마는 그대로임.
물리적 독립성: 내부스키마가 변경되어도 개념, 외부 스키마는 그대로임.
#
데이터베이스 3단계 구조에서의 사상(매핑)
외부적, 개념적 사상: 논리적 사상. 외부적 뷰와 개념적 뷰의 상호 호환성을 정의함.
개념적, 내부적 사상: 물리적 사상. 개념적 뷰와 저장된 데이터베이스의 상호 관련성을 정의함.
*** 중간에 매핑 과정이 있기 때문에 만약 내부 데이터베이스가 바뀌어도 사상만 바꾸면 개념 스키마가 그대로 남아있는 것. 반대로 사용자가 접근하는 형식에 따라 다른 타입의 필드를 가질 수 있는데, 사상만 바꾸면 개념 스키마 즉 개념적 뷰의 필드 타입에는 변화가 없음.
#
데이터 모델링 용어
* 어떤 것?
복수/집합 개념은 엔터티, 개별/단수 개념은 인스턴스
ex)고객 = 엔터티, 홍길동= 인스턴스
*어떤 것 간의 연관
고객과 고객이 주문한 상품이 페어링 되는 관계..
* 어떤 것의 성격
: 속성- ex)주문금액, 주문 일시, 배송지..
: 속성값- ex) 2만 9천원, 3월 1일...
#
데이터 모델링 작업 순서
1. 엔터티 그리기
2. 엔터티 배치
3. 엔터티 간 관계 설정
4. 관계명 기술
5. 관계의 참여도 기술
6. 관계의 필수 여부 기술
IE 표기법과 BARKER 표기법이 있음.
#
데이터 모델링의 이해관계자
프로젝트 개발자(제일 중요), 현업업무 전문가, 전문 모델러, DBA
관계자 모두가 적어도 모델을 정확하게 해석할 수 있을 정도의 데이터 모델링 지식을 갖춰야 함.
#
좋은 데이터 모델?
완전성
중복 배제
업무 규칙-데이터 모델 분석만으로도 비즈니스 로직이 이해가 되어야 함
데이터 재사용
의사소통
통합성-동일한 데이터는 유일하게 정의해서 다른 영역에서 참조해야 함(한 정보는 한 곳에서만 관리함)