데이터 모델링의 이해
데이터 모델링
데이터 모델링은 현실 세계를 데이터베이스로 표현하기 위해서 추상화한다.
데이터 모델링의 특징
•
추상화 : 공통적인 특징을 찾고 간략하게 표현한다.
•
단순화 : 복잡한 문제를 피하고 누구나 이해할 수 있게 표현
•
명확화 : 의미적 해석이 모호하지 않고 명확하게 해석. 한 가지 의미를 가져야 한다.
데이터 모델링 단계
•
개념적 모델링
◦
전사적 관점에서 기업의 데이터를 모델링한다.
◦
추상화 수준이 가장 높은 수준의 모델링
◦
업무 측면에서 모델링
•
논리적 모델링
◦
정규화를 통해서 재사용성을 높인다.
◦
식별자를 정의하고 관계, 속성 등을 모두 표현한다.
•
물리적 모델링
◦
성능, 보안, 가용성 등을 고려하여 데이터베이스를 구축한다.
◦
테이블, 인덱스 생성 단계
데이터 모델링 관점
•
데이터 : 비즈니스 프로세스에서 사용되는 데이터 의미
•
프로세스 : 비즈니스 프로세스에서 수행하는 작업을 의미
•
데이터와 프로세스 : 프로세스와 데이터 간의 관계를 의미
ERD
절차
엔티티를 도출하고 그린다 → 엔티티를 배치한다 → 엔티티 간의 관계를 설정한다 → 관계명을 서술한다 → 관계 참여도를 표현한다 → 관계의 필수 여부를 표현한다
데이터 모델링 고려사항
•
데이터 모델의 독립성 → 중복된 데이터 제거 (= 정규화)
•
고객 요구사항의 표현
•
데이터 품질 확보
3층 스키마
•
사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고 이들간의 관계를 정의한 ANSI 표준이다.
•
데이터베이스의 독립성을 확보하기 위한 방법이다.
•
데이터 복잡도 감소, 중복 제거, 대응력 향상, 유지보수 비용 절감
•
각 계층을 뷰 라고도 한다.
•
구조
◦
외부 스키마 : 응용 프로그램이 접근하는 데이터 베이스
◦
개념 스키마 : 설계자 관점의 데이터 베이스. 통합 데이터베이스 구조이다.
◦
내부 스키마 : 개발자 관점, 데이터베이스의 물리적 저장 구조이다.
•
독립성
◦
논리적 독립성 : 개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것
◦
물리적 독립성 : 내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것
좋은 모델링의 요건
중복 배제, Business Rule, 완전성
엔티티
엔티티
•
업무에서 관리해야 하는 데이터 집합을 의미한다.
•
엔터티는 개념, 사건, 장소 등의 명사이다.
특징
•
식별자 : 엔티티는 유일한 식별자가 있어야 한다.
•
인스턴스 집합 : 2개 이상의 인스턴스가 있어야 한다. (= 행의 수)
•
속성 : 반드시 속성을 가지고 있다.
•
관계 : 다른 엔터티와 최소한 한 개 이상 관계가 있어야 한다.
•
업무 : 엔터티는 업무에서 관리되어야 하는 집합이다.
종류
•
유형과 무형에 따른 엔티티 종류
◦
유형 엔티티 : 지속적으로 사용되는 엔티이이다. (물리적 형태 존재)
◦
개념 엔티티 : 물리적 형태 없음
◦
사건엔티티 : 비즈니스 프로세스를 실행하면서 생성되는 엔터티이다.
•
발생 시점에 따른 엔티티 종류
◦
기본 엔티티 : 키 엔티티. 독립적으로 생성되는 엔티티
◦
중심 엔티티 : 기본 엔티티로부터 발생되고 행위 엔티티를 생성하는 것
◦
행위 엔티티 : 2 개 이상의 엔티티로부터 발생된다.
속성
•
업무에서 필요한 정보인 엔티티가 가지는 항목
•
더 이상 분리되지 않는 단위
•
분해 여부에 따른 속성의 종류
◦
단일 속성 : 하나의 의미로 구성된 것 (이름)
◦
복합 속성 : 여러 개의 의미가 있는 것. 주소가 있다.
◦
다중값 속성 : 속성에 여러 개의 값을 가질 수 있는 것. 엔터티로 분해된다.
•
특성에 따른 속성의 종류
◦
기본속성 : 비즈니스 프로세스에서 도출되는 본래의 속성이다.
◦
설계속성 : 데이터 모델링 과정에서 발생되는 속성이다. 유일한 값을 부여한다.
◦
파생속성 : 다른 속성에 의해서 만들어지는 속성이다.
도메인
도메인은 속성이 가질 수 있는 값의 범위이다.
관계
•
존재 관계 : 존재 관계는 엔티티 간의 상태를 의미한다.
•
행위 관계 : 엔티티 간에 어떤 행위가 있는 것.
식별 관계와 비식별 관계
•
식별 관계
◦
강한 개체는 다른 엔터티와 관계를 가질 때 기본키를 공유한다.
◦
강한 개체는 식별 관계로 표현된다.
•
비식별 관계
◦
강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 칼럼으로 관계를 가지는 것
식별자
•
주식별자 (= 기본키, PK)
◦
최소성, 대표성, 유일성, 불변성
◦
후보키 중에서 엔티티를 대표할 수 있는 키이다.
•
후보키 : 후보키는 유일성과 최소성을 만족하는 키이다.
•
슈퍼키 : 유일성만 만족한다.
•
대체키 : 여러 개의 후보키 중에서 기본키를 선정하고 남은 키이다.
•
외래키
◦
참조 무결성을 확인하기 위해서 사용하는 키
◦
허용된 데이터 값만 데이터베이스에 저장하기 위해 사용한다.
식별자의 종류
•
식별자의 대표성
◦
주식별자 : 엔티티를 대표하는 식별자. 참조관계로 연결 가능
◦
보조식별자 : 대표성 만족 못함
•
생성 여부에 따른 식별자
◦
내부 식별자 : 엔티티 내부에서 스스로 생성되는 식별자
◦
외부 식별자 : 다른 엔티티와의 관계로 인하여 만들어지는 식별자
•
속성의 수에 따른 식별자
◦
단일 식별자 : 하나의 속성으로 구성
◦
복합 식별자 : 두 개 이상의 속성으로 구성
•
대체 여부에 따른 식별자
◦
본질 식별자 : 비즈니스 프로세스에서 만들어지는 식별자
◦
인조 식별자 : 인위적으로 만들어지는 식별자