SQLD 개념정리 - 데이터 모델링 (1)
모델링
현실세계를 추상화, 단순화하여 표현하는 기법
데이터 모델링
업무정보를 구성하는 기초정보를 약속된 표기법에 의해 표현함으로써 업무내용을 정확하게 분석하고,
분석된 모델로 실제 데이터베이스를 생성하여 시스템 개발 및 데이터 관리에 사용하기 위해 수행
애매모호함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술하는 정확화의 의미를 가진다.
시스템 구현을 포함한 업무분석 및 업무형상화 목적이 있다.
(시스템 구현만을 위해 진행하는 작업은 아님)
데이터 모델링 고려사항
- 시스템 완성 후, 잘못된 데이터 모델링을 변경하고자 한다면 파급효과가 크다.
- 독립성이 확보되어야 능동대응이 가능
- 복잡한 정보를 간결하게 표현해야 한다.
- 데이터 표준을 정의하여 데이터의 품질을 높여야 한다.
데이터 모델링 유의점
- 중복 : 여러 장소에 같은 정보가 저장되지 않도록 해야 한다.
- 비유연성 : 사소한 업무변화에 데이터 모델이 수시로 변경되면 안 된다.
즉, 데이터 정의와 데이터 사용 프로세스와 분리해야 한다. - 비일관성 : 데이터는 모순되지 않고 일관성 있어야 한다.
데이터 모델링 3단계
1. 개념적 모델링 (Conceptual Data Modeling)
- 추상화정도 높음
- 구체화정도 낮음
- 요구사항을 사람이 이해할 수 있는 데이터 모델로 변환하는 과정
- ERD 정의
2. 논리적 모델링 (Logical Data Modeling)
- 추상화정도 중간
- 구체화정도 중간
- 컴퓨터가 이해할 수 있는 논리적 구조로 변환하는 과정
- ERD -> 특정 DBMS에 맞게 사상
3. 물리적 모델링 (Physical Data Modeling)
- 추상화정도 낮음
- 구체화정도 높음
- 논리적 구조 -> 물리적 구조로 변환하는 과정
데이터 독립성
유지보수 비용 증가, 데이터 중복성 증가, 데이터 복잡도 증가, 요구사항 대응 저하
이러한 이유로 데이터 독립성이 필요.
데이터 독립성은 ANSI/SPARC의 3단계 구조로 정의
외부 스키마 : 사용자 관점 DB 스키마, 추상화 높음
- 논리적 데이터 독립성 : 개념 스키마가 변경되어도 외부 스키마에 영향을 주지 않음
개념 스키마 : 사용자와 설계자 관점
- 물리적 데이터 독립성 : 내부 스키마가 변경되어도 개념/외부 스키마에 영향을 주지 않음
내부 스키마 : 설계자 관점 DB 스키마, 물리적으로 데이터 저장방법 표현, 추상화 낮음
데이터 모델 표기법 (ERD - Entity Relationship Model)
ERD는 엔티티와 엔티티 간의 관계를 다이어그램으로 표시하는 방법
ERD 작업순서
- 엔티티 도출
- 엔티티 배치
- 엔티티 간 관계 설정
- 엔티티 간 관계명 기술
- 관계의 관계차수 기술
- 관계의 필수여부 기술
좋은 데이터 모델의 요소
- 완전성 : 업우메서 필요로 하는 모든 데이터가 정의돼있어야 한다.
- 중복배제 : 동일한 사실은 반드시 한 번만 저장되어야 한다.
- 업무규칙 : 업무규칙이 데이터 모델에 표현되어 있어야 한다.
- 데이터 재사용 : 데이터가 재사용 가능하도록 설계되어야 한다.
- 의사소통 : 엔티티, 관계, 업무규칙 등이 정보시스템에 표현됨으로써 데이터 모델이 의사소통의 도구로서 사용된다.
- 통합성 : 공유데이터를 여러 업무영역에서 공동으로 사용할 수 있도록 정의되어야 한다.
엔티티 (Entity)
사람, 개념 등 명사에 해당하며, 업무상 관리가 필요한 관심사에 해당
엔티티와 인스턴스
엔티티는 범주(사람)에 해당되는 것이며, 인스턴스는 실제 객체(홍길동, 홍길순..)이다.
엔티티는 인스턴스의 집합이다.
특징
- 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
- 유익한 식별자(PK)에 식별이 가능해야 한다.
- 2개 이상의 인스턴스의 집합이어야 한다. (= 2개 이상의 속성을 갖는다)
- 업무 프로세스에 이용되어야 한다.
- 반드시 속성이 있어야 한다.
- 다른 엔티티와의 관계가 있어야 한다. (단, 통계성/코드성 엔티티는 관계 생략 가능)
분류
1. 유/무형에 따른 분류
- 유형 엔티티 : 물리적인 형태가 있는 엔티티
- 개념 엔티티 : 개념적으로 사용되는 엔티티
- 사건 엔티티 : 업무를 수행함에 따라 발생되는 엔티티
유형 엔티티 | 물리적인 형태가 있는 엔티티 | 사원, 물품 |
개념 엔티티 | 개념적으로 사용되는 엔티티 | 조직, 보험상품 |
사건 에티티 | 업무를 수행함에 따라 발생되는 엔티티 | 주문, 청구 |
2. 발생시점에 따른 분류
기본 엔티티 | 원래 존재하는 독립 가능한 엔티티 | 사원, 부서, 고객 |
중심 엔티티 | 업무로부터 발생되고 다른 엔티티와 관계를 통해 해위 엔티티 생성 |
계약, 청구, 주문 |
행위 엔티티 | 2개 이상의 부모로부터 발생되고 자주 내용이 바뀌는 엔티티 |
주문목록 |
엔티티명 생성 시 유의사항
- 현업업무에서 사용하는 용어 사용
- 약어 사용 X
- 단수명사 사용
- 모든 엔티티에서 유일하게 이름 부여
- 엔티티 생성의미대로 이름 부여