1. 데이터 모델링의 이해
안녕하세요, 브래드입니다.
오늘은 SQL 개발자 시험인, SQLD 시험 내용에 관한 요약 정리를 함께 진행하고자 합니다.
SQLD 과목은 크게 데이터 모델링의 이해와 SQL 기본 및 활용 파트로 나뉩니다. 세부적으로는 다섯 가지의 소분류로 나뉘며 오늘부터 한 챕터씩 함께 공부해보아요.
- 복잡한 현실세계를 단순화시켜 표현하는 것을 말한다.
- 모델링은 추상화, 단순화, 명확화의 특징이 존재한다.
- 파급효과
- 간결한 표현
- 데이터 품질
1. 개념적 데이터 모델링
: 추상화 수준이 높다, 포괄적인 수준의 모델링
2. 논리적 데이터 모델링
: Key, 속성, 관계 등을 정확하게 표현, 재사용성이 높다
3. 물리적 데이터 모델링
: 물리적인 성격을 고려하여 설계한다
1. 외부스키마: 사용자 관점
2. 개념스키마: 통합 관점
3. 내부스키마: 물리적 관점
*외부스키마와 개념스키마 사이에 논리적 데이터 독립성 필요
*개념스키마와 내부스키마 사이에 물리적 데이터 독립성 필요
1. 어떤 것(Thing)
2. 성격(Attributes)
3. 관계(Relationships)
1) 엔터티를 그린다.
2) 엔터티를 적절하게 배치한다.
3) 엔터티간 관계를 설정한다.
4) 관계명을 기술한다.
5) 관계의 참여도를 기술한다.
6) 관계의 필수 여부를 기술한다.
7-1. 엔터티 개념
- 엔터티는 사람, 장소, 물건, 개념 등의 명사에 해당한다.
- 엔터티는 업무상 관리가 필요한 관심사에 해당한다.
- 엔터티는 저장이 되기 위한 어떤 것이다.
7-2. 엔터티 특징
- 업무에서 필요하고 관리하고자 하는 정보여야 한다.
- 유일한 식별자에 의해 식별이 가능해야 한다.
- 반드시 속성이 있어야 한다.
- 인스턴스의 집합이어야 한다. (따라서 하나의 엔터니는 두 개 이상의 인스턴스로 구성된다)
- 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.
- 현업업무에서 사용하는 용어를 이용한다.
- 가능하면 약어를 사용하지 않는다.
- 유일하게 이름이 부여되어야 한다.
- 단수 명사를 사용해야 한다.
8-1. 속성 개념
- 업무에서 필요로 한다.
- 의미상 더이상 분리되지 않는다.
- 엔터티를 설명, 그리고 인스턴스의 구성요소이다.
엔터티 - 인스턴스 - 속성 - 속성값
*한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다.
*한 개의 엔터티는 두 개 이상의 속성을 갖는다.
*한 개의 속성은 한 개의 속성값을 갖는다.
8-2. 속성 분류
1) 특성에 따른 분류
1. 기본속성: 업무분석을 통해 바로 정의한 속성
2. 설계속성: 원래 업무상 존재하지는 않지만 설계를 하면서 도출해내는 속성
ex) 코드성 속성이 설계 속성의 대표저인 예시이다.
3. 파생속성: 다른 속성으로부터 계산이나 변형이 되어 생성되는 속성
ex) 계산된 속성이 파생속성의 대표적인 예시이다.
2) 엔터티 구성방식에 따른 분류
1. PK속성
2. FK속성
3. 일반속성
*도메인
- 각 속성이 가질 수 있는 값의 범위를 속성의 도메인이라고 한다.
- 각 속성은 오직 도메인 내에 있는 값만 가질 수 있다.
*속성의 명명
- 해당 업무에서 사용하는 이름을 부여
- 서술식 속성 명은 사용하지 않는다
- 약어 사용은 가급적 제한한다
9-1. 관계의 분류
1) 존재의 의한 관계
ex) 부서와 사원 간의 관계
2) 행위의 의한 관계
ex) 고객과 주문의 의한 관계
9-2. 관계의 표기법
1. 관계명
2. 관계차수
3. 관계선택사양
- 관계의 명명은 애매한 동사를 피한다.
- 관계의 명명은 현재형으로 표현한다.
9-3. 관계 정의 시 고려 사항
- 두 개의 엔터티 사이에 관심있는 연관 규칙이 존재하는가?
- 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
- 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는가?
10-1. 식별자의 특징: 유일성, 최소성, 불변성, 존재성
- 주식별자에 의해 엔터티 내에 모든 인스턴스들이 유일하게 구분되어야 한다.
- 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
- 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.
- 주식별자가 지정이 되면 반드시 값이 들어와야 한다.
10-2. 식별자 도출 기준
- 해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다.
- 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않는다.
- 주식별자가 복합으로 구성되는 경우, 너무 많은 속성이 포함되지 않도록 한다.
10-3. 식별자 관계와 비식별자 관계
1) 식별자 관계
- 부모의 주식별자가 자식 엔터티의 주식별자로 상속되는 경우
2) 비식별자 관계
- 부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우
식별자 관계만으로만 지속적으로 연결된다면 개발의 복잡성과 오류가능성을 유발시킬 수 있다.
SQLD 요약 정리 첫 시간으로 데이터 모델링의 이해 파트의 핵심 부분을 함께 알아보았습니다.
오늘 다룬 내용은 핵심적인 요약만 추린 것으로, 개념적인 부분을 세부적으로 공부하고 싶다면, 관련 책을 구매하길 추천드립니다.
다음 시간에는 SQLD 요약 정리 두 번째 시간으로 데이터 모델과 성능에 관해 함께 알아보아요.
브래드였습니다. 감사합니다.