데이터베이스

[SQLD/SQLP 핵심노트] 1과목 데이터 모델링의 이해

헝개 2025. 2. 25. 17:15

시험을 준비하면서 핵심적인 부분만 노트를 하여 공개한다.

 

SQLD / SQLP 공통 : 제1과목은 데이터 모델링의 이해 이다.

 

 

1과목. 데이터 모델링의 이해

- 데이터 모델링의 이해
- 데이터 모델과 SQL

 

 

 

 

 

엔터티
- 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적, 영속적으로 존재하는 단위
- 인스턴스의 집합

속성
- 엔터티에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
- 엔터티에 속하는 개체들의 특성
- 엔터티를 설명하고 인스턴스의 구성요소가 된다.
- 하나의 속성은 하나의 속성값을 가진다.

관계
- 엔터티와 엔터티의 관계
- 두개의 엔터티로부터 인스턴스를 연관짓는 행위
- 인스턴스 간에 논리적인 연관관계로 존재 또는 행위로서 연관성이 부여된 상태



도메인
- 속성이 가질 수 있는 값의 범위
- 엔터티 내에서 속성에 대한 데이터 타입, 크기, 제약사항을 지정하는 것.



엔터티 분류

유형무형에 따른 분류
- 유형 엔터티 : 물리적인 형태가 있고, 지속적으로 활용 : 사원, 상품
- 개념 엔터티 : 물리적인 형태가 없고, 겨념적 정보로 구분 : 조직, 보험
- 사건 엔터티 : 업무에서 발생되는 자료 : 주문, 수강

발생시점에 의한 분류
- 기본 엔터티 : 업무에 독립적으로 존재하는 정보 : 사원,부서,고객,상품 등
- 중심 엔터티 : 기본엔터티에서 발생하는, 업무의 중심이 되는 엔터티 : 계약,주문 등
- 행위 엔터티 : 2개이상의 부모엔터티로부터 발생 : 주문내역,계약변경이력 등



스키마
외부 스키마 : 데이터베이스의 사용자 관점
개념 스키마 : 통합 관점, 데이터베이스 관리자 관점
내부 스키마 : 물리적 관점, 시스템 설계자 관점


관계(Relationship) 표기법
- 관계명
- 관계차수 : 1:1, 1:N, N:N
- 관계선택사양 : 필수, 옵션

식별자
- 엔터티를 대표하는 속성으로, 인스턴스를 구분할 수 있다.

주식별자/보조식별자
- 주식별자 : 유일성, 최소성, 존재성, 불변성을 만적하는 대표 식별자
- 보조식별자 : 유일성은 만족하지만 대표성을 만족하지 못하는 식별자

내부식별자/외부식별자
- 내부식별자: 엔터티 내부에서 스스로 생성되는 식별자
- 외부식별자: 다른 엔터티와 관계로 생성되는 식별자

단일식별자/복합식별자
- 단일식별자 : 하나의 속성
- 복합식별자 : 2개 이상의 복합 속성

본질식별자/인조식별자
- 본질식별자 : 비지니스 프로세스에서 만들어지는 식별자
- 인조식별자 : 인위적으로 만들어지는 식별자




데이터베이스 모델링의 특징
- 추상화, 단순화, 명확화

모델링의 3단계
- 개념적 모델링 : 추상적, 업무 중심적, 포괄적인 수준의 모델링
- 논리적 모델링 : 세부속성,식별자,관계를 표현, 정규화
- 물리적 모델링 : 데이터베이스 성능을 고려한 설계


정규화
- 데이터의 일관성, 유연성, 중복을 제거하고 데이터를 분해를 하는 과정
- 이상현상을 제거하는 설계 기법이다.

제1정규화
- 속성의 원자성 확보 : 속성은 하나의 속성값을 가져야 한다.
- 기본키(PK) 설정

제2정규화
- 기본키 중에 특정컬럼에만 종속된 경우, 부분 함수 종속성 제거

제3정규화
- 이행함수 종속 제거


이상현상
- 삽입이상 : 데이터 삽입시, 의도치 않은 값들도 삽입 되는 현상
- 갱신이상 : 데이터 수정시, 일부 데이터만 갱신되어, 데이터의 일관성 유지가 안되는 현상
- 삭제이상 : 데이터 삭제시, 의도와 다른 값들이 삭제되는 현상


반정규화
- 데이터베이스의 성능 향상을 위해 데이터의 중복을 허용하거나, 조인을 줄이는 목적으로 하는 성능 향상 방법


 
분산데이터베이스
- 병렬처리로 빠른 응답이 가능, 용량확장이 쉬움
- 보안이나 무결성이 안좋다. 여러 네트워크에 분산되어 관리와 통제가 어렵다.




트랜잭션의 4가지 특징 (ACID)
- 원자성 (Atomicity) : 분해가 불가능한 업무의 최소단위로, 전부 처리되거나, 전부 처리되지 않아야 한다.
- 일관성 (Consistency) : 트랜잭션 결과로 데이터베이스 상태가 모순되지 않아야 한다.
- 격리성 (Isolation) : 트랜잭션의 중간 값에 다른 트랜잭션이 접근할 수 없다.
- 영속성 (Durability) : 트랜잭션의 결과가 데이터베이스에 영속적으로 저장된다.



NULL 값
- 아직 정해지지 않은 미지의 값

NULL 비교는 IS NULL / IS NOT NULL 을 사용한다.

where in (list) 에서 list 에 NULL 이 있으면, 실제 NULL 인 데이터는 제외 된다.
- where ID in (1, 2, NULL) : ID 가 NULL 인 데이터는 제외되고, 1이나 2인 데이터만 조회된다.


NULL 과의 연산은 NULL 이 된다.
NULL + 10 => NULL

집계함수에서 NUL 값이 있다면 제외된다.
- SUM, COUNT 등