SQLD - 데이터베이스 모델링
May 22, 2020
1. 데이터 모델링의 이해
-
데이터 모델링 특징
- 추상화 - 공통적인 특징으로 간략히
- 단순화 - 복잡하지않고 누구나 이해하게
- 명확성 - 모호하지 않고 명확하게
-
데이터 모델링 단계
- 개념적 모델링
- 비즈니스 프로세스 분석 후 업무 전체에 대해 모델링
- 복잡하지 않게 중요한 부분 위주
- 개념적 ERD 작성, 기술적인 용어 가급적 사용 X
- 논리적 모델링
- 모든 릴레이션 정의
- 정규화 수행 -> 재사용성, 독립성 향상
- 물리적 모델링
- 테이블, 인덱스, 함수 생성
-
데이터 모델링 관점
- 데이터 - 비즈니스 프로세스에서 사용되는 데이터
- 프로세스 - 수행하는 작업
- 데이터와 프로세스 - 프로세스와 데이터의 관계
-
ERD 그리는 순서
- 엔티티 도출 - 배치 - 관계설정 - 관계명 서술 - 관계참여도 표현 - 필수 여부 표시
-
데이터 모델링 고려사항
- 독립성 확보 - 중복된 데이터 제거, 정규화
- 고객 요구사항 표현
- 데이터 품질 확보 - 표준 정의 및 준수
2. 3층 스키마
- 3단계 계층으로 분리하여 독립성 확보. 각 계층을 ’뷰‘라고 한다.
- 논리적 독립성 - 개념 스키마가 변경되어도 외부 스키마가 영향 x
- 물리적 독립성 - 내부 스키마가 변경되어도 개념 스키마 영향 x
-
3층 스키마 구조
- 외부스키마 - 사용자 관점, 업무 관련, 응용프로그램이 접근하는 DB
- 개념스키마 - 설계자 관점, 사용자 전체 집단
- 내부스키마 - 개발자 관점, DB의 물리적 저장구조
3. 엔터티
-
엔터티의 특징
- 식별자 - 유일한 식별자 있어야 한다.
- 인스턴스 집합 - 2개 이상의 인스턴스(행)가 있어야 한다.
- 속성 - 반드시 속성을 가지고 있어야 한다.
- 관계 - 다른 엔터티와 최소 한개 이상의 관계가 있어야 한다.
- 업무 - 업무에서 관리되는 집합이어야 한다.
-
엔터티 종류
- 유형/무형
- 유형 엔터티 - 업무에서 도출되고 지속적으로 사용되는 엔터티
- 개념 엔터티 - 물리적인 형태가 없는 엔터티
- 사건 엔터티 - 비즈니스 프로세를 통해 생성되는 엔터티
- 발생시점
- 기본 엔터티 - 키 엔터티로 독립적으로 생성되는 엔터티 ex) 고객
- 중심 엔터티 - 기본 엔터티와 행위 엔터티의 중간에 있는 것 (기본 엔터티로부터 발생되고 행위 엔터티를 생성한다.) ex) 주문, 계좌
- 행위 엔터티 - 2개 이상의 엔터티로부터 발생된다. ex) 주문이력
4. 속성
-
속성의 특징
- 하나의 값만 가진다.
- 주식별자에게 함수적으로 종속된다.
- 즉, 기본키가 변경되면 속성 값도 변경된다.
-
속성의 종류
- 분해 여부
- 단일 속성 - 하나의 의미로 구성
- 복합 속성 - 여러개의 의미로 구성 ex)주소
- 다중값 속성 - 속성에 여러개의 값을 가질 수 있는것. 다중값 속성은 엔터티로 분해된다. ex) 상품리스트
- 특성에 따른 종류
- 기본 속성 - 본래의 속성
- 설계 속성 - 데이터 모델링하면서 발생되는 속성, 유일한 값 ex) 상품코드
- 파생 속성 - 다른 속성에 의해 만들어지는 속성 ex) 합계
5. 관계
-
관계의 종류
- 존재 관계 - 엔터티 간의 상태. ex) 소속
- 행위 관계 - 엔터티 간에 어떤 행위가 있는 것.
-
관계 차수
- 1대1 관계 - 완전/선택적 1대1 관계가 있다.
- 1대N 관계
- M대N 관계 - M대N 관계는 카테시안 곱이 발생해서 1대N, N대1로 해소해야한다.
-
식별 관계와 비식별 관계
- 식별 관계 - A 엔터티의 기본키를 B엔터키의 기본키의 하나로 공유할 경우, A의 기본키가 변경되면 B엔터티 값도 변경된다. 여기서 A는 강한 개체가 되고, B는 약한 개체가 된다. 실선으로 표시한다.
- 비식별 관계 - 강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 칼럼으로 관계가 있는 것이다. 점선으로 표시한다.
6. 엔티티 식별자
-
주 식별자(기본키, Primary key)
- 최소성 - 최소성을 만족
- 대표성 - 엔터티를 대표
- 유일성 - 엔터티의 인스턴스를 유일하게 식별
- 불변성 - 자주 변경x
-
키의 종류
- 기본키
- 후보키 - 유일성과 최소성 만족 (대표성x)
- 슈퍼키 - 유일성은 만족하나 최소성 만족x
- 대체키 - 여러 후보키에서 기본키를 선택하고 남은 키
- 외래키 - 다른 테이블에 참조 무결성을 위한 키
-
식별자의 종류
- 대표성 여부
- 주 식별자 - 유일성&최소성 + 대표성까지 만족
- 보조 식별자 - 유일성&최소성 But, 대표성x
- 생성 여부
- 내부 식별자 - 엔터티 내부에서 스스로 생성(부서코드)
- 외부 식별자 - 다른 엔티티와 관계로 만들어지는 식별자.
- 속성 수
- 단일 식별자 - 하나의 속성으로 구성
- 복합 식별자 - 두개 이상의 속성으로 구성
- 대체 여부
- 본질 식별자 - 비즈니스 프로세스에서 생성되는 식별자
- 인조 식별자 - 인위적으로 만들어지는 식별자