SQLD 자격검정 공부중..
한다, 3일 전사
데이터 모델링
- 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 현실세계의 데이터(what)에 대해 약속된 표기법에 의해 표현되는 과정
- 데이터베이스를 구축하기 위한 분석/설계 과정
특징
모델링 할 때 유의점
- 데이터가 중복되지 않도록 설계
- 비유연성: 데이터 모델이 업무 변경에 대해 유연하도록 설계. 데이터의 정의를 데이터의 사용 프로세스와 분리하여 유연성을 높인다.
- 비일관성: 데이터간의 상호 연관관계를 명확하게 정의하여 일관성 있게 데이터가 유지되도록 한다.
모델링 단계
- 개념적 모델링 - 높은 추상화, 전사적 데이터 모델링, 핵심 엔터티추출, ERD 작성
- 논리적 모델링 - 키, 속성, 관계 등 세부 정보 표현, 정규화, 재사용성
- 물리적 모델링 - 실제 컴퓨터에 데이터베이스를 이식할 수 있는지 영향을 고려
ERD 작성 순서
참고* ERD는 피터첸이 개발한 ER모델 표기법 다이어그램
1. 엔터티를 그린다
2. 엔터티를 배치한다
3. 관계 설정
4. 관계명->참여도->필수여부 기술
엔터티 분류
발생시점 기준
- 기본엔터티(키 엔터티): 독립적으로 생성됨, 상속받지 않음, 부모엔터티
- 중심엔터티(메인 엔터티): 기본엔터티로부터 발생, 부모 엔터티로부터 주식별자를 상속
- 행위엔터티: 2개 이상의 부모엔터티로부터 상속, 가변적인 값
엔터티 특징
- 해당 업무에 필요한 정보이며 프로세스에 사용되어야 함
- 식별자 존재
- 인스턴스의 집합, 즉 인스턴스는 2개 이상
- 엔터티는 다른 엔터티와 1개 이상의 관계가 있다. 단, 통계성 엔터티나 코드성 엔터티는 관계 생략이 가능
- 2개 이상의 속성을 가짐
- 1개의 속성은 1개의 속성값
두 엔터티의 관계를 체크할 사항
- 관심있는 연관규칙이 존재 하는지 --> 아마도 UML
- 정보의 조합이 발생되는지
- 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는지
- 업무기술서, 장표에 관계연결 규칙이 서술되어 있는지
속성 분류
특성에 따른 분류
- 기본속성: 업무에서 추출
- 설계속성: 업무를 효율적으로 다루기 위한 규칙에 맞춰 새로 설계됨. 예시) 상품코드
- 파생속성: 다른 속성에서 파생됨. 보통 다른 속성에서 합계, 평균 등의 계산값을 나타냄
도메인
각 속성의 가질 수 있는 값의 범위
데이터타입, 값 크기, 제약사항을 지정
식별자의 종류
- 주식별자/보조식별자: 엔터티 내에서 대표성을 가지는지 (=기본키/보조키)
- 내부식별자/외부식별자: 엔터티 내에서 스스로 생성됐는지 밖에서 받아왔는지(외래키)
- 단일식별자/복합식별자: 단일 속성인지
- 본질식별자/인조식별자: 인조적으로 만든 식별자인지 (예시 일련번호)
주식별자 특징
- 유일성: 인스턴스를 유일 구분
- 최소성: 유일성을 만족하는 최소한의 속성으로 구성
- 불변성: 자주 변하지 않는 것
- 존재성: NULL 불가, 항상 값이 존재
인조식별자 특징
꼭 필요하진 않은데 관리의 편의성 등으로 만들어짐
주로 각 행을 구분하기 위한 기본키로 사용 (주로 일련번호로 사용)
<단점>
- 중복 데이터 발생 가능 -> 데이터 품질 저하
- 불필요한 인덱스 생성 -> 저장공간 낭비 및 DML 성능 저하
식별자관계 vs 비식별자관계
엔티티 간의 관계의 강약을 표현
-
식별자관계
강한 연결관계일 때 표현, 실선표기
자식 주식별자의 구성에 포함
반드시 부모엔터티 종속
-
비식별자관계
약한 연결관계를 표현, 점선표기
자식 일반속성에 포함됨, 즉 자식 주식별자 구성은 독립적으로 구성
약한 종속 관계
독립적
복잡성을 증가시키는 것을 방지
부모엔터티와 자식엔터티 간에 상호작용이 의무가 아닌 선택사항
관계 페어링
인스턴스들 끼리의 연관성
관계의 분류
계층형 데이터 모델
셀프조인
자기 자신끼리 관계가 발생함
하나의 엔터티 내의 인스턴스끼리 조인
SELECT E1.NAME, E2.NAME
FROM EMP E1, EMP E2
WHERE E1.MGR = E2.EMPNO;
상호배타적 관계
두 테이블 중 하나만 선택 가능한 관계
예) 주문 엔터티에는 개인번호 또는 법인번호 둘 중 하나만 상속될 수 있음
엔터티 관계 필수여부
필수적 관계: 하나의 트랜잭션
선택적 관계: 독립적 수행

Barker 표기법은
선택적 관계를 원형이 아닌 실선으로 표현
트랜잭션
하나의 연속적인 업무 단위
필수적인 관계 형태
NULL
- 집계 함수는 NULL 포함하지 않음
- count(*) : 모든 컬럼이 null일 때 집계하지 않음 --> 현실적으로 없는 사례
IE 표기법 : X
Barker 표기법에서 속성 앞에 동그라미 = nullable
정규화
이상현상을 막기 막기 위함
1NF
하나의 속성에 값이 여러개인 문제
하나의 엔터티에 하나의 컬럼 유형이 반복되는 문제
모든 속성은 반드시 하나의 값
동일한 그룹의 속성은 하나만 존재
2NF
함수 종속성(FD) 문제
완전 함수적 종속 만족 시켜야함
부분 함수적 종속 제거
3NF
기본키가 아닌 속성 A에 따라 기본키가 아닌 속성 B가 결정되어버리는 문제
이행 종속 제거