본 문서는 SQLD 시험 대비를 위한 것으로, 1. 데이터 모델링의 이해 단원의 내용을 요약한 문서입니다.
데이터 모델링
현실 세계를 추상화하기 위해 일정한 표기법을 사용하여 표현하는 기법
데이터 모델링 단계
- 개념적 모델링
- 업무 측면에서 모델링
- 기술적인 용어 사용 X
- 엔터티, 속성 도출 / 개념적 ERD 작성
- 논리적 모델링
- 필요한 모든 관계를 정의
- 특정 데이터베이스 모델에 종속
- 식별자 도출 / 정규화 수행
- 물리적 모델링
- 데이터베이스 구축
데이터 모델링의 특징
- 추상화
- 단순화
- 명확성
데이터 모델링 관점
- 데이터
- 프로세스
- 데이터와 프로세스
ERD 작성 절차
- 엔터티 도출 및 그림
- 엔터티 배치
- 엔터티 관계 설정
- 관계명 서술
- 관계 참여도 표현
- 관계 필수 여부 표현
데이터 모델링 고려 사항
- 중복: 여러 장소에 같은 정보를 저장하지 않는다.
- 비유연성: 데이터 정의를 사용 프로세스와 분리한다.
- 비일관성: 데이터 간 상호 연관 관계에 대해 명확히 정의한다.
- 데이터 모델의 독립성
- 고객 요구사항의 표현
- 데이터 품질 확보
3단계 구조
사용자, 설계자, 개발자의 관점에 따라 데이터를 기술하고, 이들 간의 관계를 정의한 ANSI 표준
스키마구조 3단계
- 외부 스키마: 사용자 관점, 업무상 관련이 있는 데이터 접근
- 개념 스키마: 설계자 관점, 사용자 전체 집단의 데이터베이스 구조
- 내부 스키마: 개발자 관점, 데이터베이스의 물리적 저장 구조
데이터 독립성
- 논리적 독립성: 개념 스키마 변경, 외부 스키마에 영향 X
- 물리적 독립성: 내부 스키마 변경, 개념 스키마에 영향 X
엔터티
업무에서 관리해야 하는 데이터 집합, 명사(개념, 사건, 장소 등)
엔터티의 특징
- 유일한 식별자가 있어야 한다.
- 2개 이상의 인스턴스가 있어야 한다.
- 2개 이상의 속성을 가져야 한다.
- 다른 엔터티와 최소한 한 개 이상 관계가 있어야 한다.
- 업무에서 관리되어야 하는 집합이다.
엔터티의 종류
- 유형과 무형에 따른 종류
- 유형 엔터티: 물리적 형태
- 개념 엔터티: 개념적 정보
- 사건 엔터티: 업무 수행 시 발생
- 엔터티가 발생하는 시점에 따른 종류
- 기본 엔터티: 키 엔터티, 다른 엔터티로부터 영향을 받지 않음.
- 중심 엔터티: 기본 엔터티로부터 발생, 행위 엔터티를 생성
- 행위 엔터티: 2개 이상의 엔터티로부터 발생
속성(Attribute)
업무에서 필요한 정보인 엔터티가 가지는 항목, 더 이상 분리되지 않는 단위
속성의 특징
- 업무에서 관리되는 정보
- 하나의 값만 가진다.
- 주식별자에게 함수적으로 종속된다. → 기본키가 변경되면 속성의 값도 변경됨.
속성의 종류
- 분해 여부에 따른 속성의 종류
- 단일 속성: 하나의 의미로 구성
- 복합 속성: 여러 개의 의미가 있는 것 → 속성으로 분해
- 다중값 속성: 속성에 여러 개의 값을 가질 수 있는 것 → 엔터티로 분해
- 특성에 따른 속성의 종류
- 기본 속성: 본래의 속성
- 설계 속성: 모델링 과정에서 발생되는 속성, 유일한 값을 부여
- 파생 속성: 다른 속성에 의해 만들어지는 속성
도메인
속성이 가질 수 있는 값의 범위
관계
엔터티 간의 관련성
관계의 종류
- 존재 관계: 엔터티 간의 상태
- 행위 관계: 엔터티 간에 어떤 행위가 있는 것
관계 차수(Cardinality)
두 엔터티 간에 관계에 참여하는 수
- 1:1 관계, 1:N 관계, N:M 관계
- 필수적 관계: 반드시 하나 존재해야 하는 관계
- 선택적 관계: 없을 수도 있는 관계
식별 관계
강한 개체의 기본키를 다른 엔터티의 기본키로 관계를 가지는 것
- 실선으로 표현
- 강한 개체는 다른 엔터티에게 기본키를 공유
- 강한 개체의 기본키 값이 변경되면 약한 개체의 값도 변경된다.
비식별 관계
강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 칼럼으로 관계를 가지는 것
- 점선으로 표현
강한 개체와 약한 개체
- 강한 개체: 누구에게도 지배되지 않는 독립적인 개체
- 약한 개체: 개체의 존재가 다른 개체의 존재에 달려있는 개체
식별자
엔터티를 대표할 수 잇는 유일성을 만족하는 속성
키의 종류
- 기본키(Primary Key): 후보키 중에서 대표성을 만족하는 키
- 후보키(Candidate Key): 유일성과 최소성을 만족하는 키
- 슈퍼키(Super Key): 유일성은 만족하지만 최소성을 만족하지 않는 키
- 대체키(Alternate Key): 후보키 중에서 기본키를 선정하고 남은 키
- 외래키(Foreign Key): 다른 테이블의 기본 키 필드를 가리키는 것
💡 외래키는 참조 무결성을 확인하기 위해서 사용된다.
식별자의 종류
- 대표성에 따른 종류
- 주식별자: 엔터티를 대표할 수 있는 식별자
- 보조 식별자: 유일성과 최소성은 만족하지만 대표성을 만족하지 못하는 식별자
- 생성 여부에 따른 종류
- 내부 식별자: 엔터티 내부에서 스스로 생성되는 식별자
- 외부 식별자: 다른 엔터티와의 관계로 만들어지는 식별자
- 속성의 수에 따른 종류
- 단일 식별자: 하나의 속성으로 구성
- 복합 식별자: 두 개 이상의 속성으로 구성
- 대체 여부에 따른 종류
- 본질 식별자: 비즈니스 프로세스에서 만들어지는 식별자
- 인조 식별자: 인위적으로 만들어지는 식별자