출처
1과목
데이터 모델링의 이해
데이터 모델과 SQL
- 정규화
- 관계와 조인의 이해
- 모델이 표현하는 트랜잭션의 이해
- Null 속성의 이해
- 본질식별자 vs 인조식별자
1과목 정리
용어 정리

→ 설계 방식에 따라 다름(물리적/논리적)
설계 도면에서는 엔터티, 속성, 인스턴스
물리적 단계에서는 테이블, 컬럼, 행으로 용어 매칭
- 엔터티(Entity)
- 실체, 객체라는 의미
- 변별할 수 있는 사물(Peter Chen)
- 데이터베이스 내에서 변별 가능한 객체(C.J Date)
- 정보가 저장될 수 있는 사람, 장도, 물건, 사건 그리고 개념 등(Thomas Bruce)
- 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합
- 학생이라는 엔터티는 학번, 이름, 학점, 전공 등의 속성으로 특징지을 수 있음
- 유무형/발생시점에 따라 분류
사람, 장소, 물건, 사건, 개념 등의 명사
업무상 관리가 필요한 관심사
저장이 되기 위한 어떤 것(thing)
-
속성(Attribute)
- 사물의 성질, 특징 또는 본질적인 성질
- 없다면 실체를 생각할 수 없는 어떤 것
- 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
- 엔티티를 설명하고 인스턴스의 구성요소가 됨
- 엔티티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 함
- 정규화 이론에 근간하여 정해진 주식별자에 함수적 종속성을 가져야 함
- 하나의 속성에는 한 개의 값만을 가짐
(하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔티티를 이용하여 분리)
-
인스턴스(Instance)
- 스키마에 대한 실제 데이터
- 시간에 따라 자주 변경
- 인스턴스의 집합 == 데이터베이스 상태(state)
- 주어진 시점에서 데이터베이스에 있는 데이터의 스냅샷(snapshot)

데이터모델의 이해
-
모델링 개념
- 현실 세계의 비즈니스 프로세스와 데이터 요구 사항을 추상적으로 구조화된 형태로 표현하는 과정
- 데이터베이스의 구조와 관계를 정의하며, 이를 통해 데이터의 저장, 조작, 관리 방법을 명확하게 정의
-
모델링 특징
- 단순화(Simplification)
- 현실을 단순화하여 핵심 요소에 집중하고 불필요한 세부 사항 제거
- 단순화를 통해 복잡한 현실 세계를 이해하고 표현하기 쉬워짐
- 추상화(Abstraction)
- 현실세계를 일정한 양식에 맞추어 간략하게 대략적으로 표현하는 과정
- 다양한 현상을 일정한 양식인 표기법에 따라 표현
- 명확화(Clarity)
- 대상에 대한 애매모호함을 최대한 제거하고 정확하게 현상을 기술하는 과정
- 명확화를 통해 모델을 이해하는 이들의 의사소통을 원활히 함
-
데이터 모델링 3가지 관점
- 데이터 관점
- 데이터가 어떻게 저장되고, 접근되고, 관리되는지를 정의하는 단계
- 업무를 고려하지 않고 데이터만 보는 것
(우리 사이트에는 고객, 상품, 결제 데이터가 필요 → 각각 어떤 속성이 정의되어야 하는지)
- 프로세스 관점
- 시스템이 어떤 작업을 수행하며, 이러한 작업들이 어떻게 조직되고 조정되는지를 정의하는 단계
- 데이터가 시스템 내에서 어떻게 흐르고 변환되는지에 대한 확인
- 업무적(프로세스적)으로 바라보며 모델링
- 데이터와 프로세스 관점
- 데이터 관점과 프로세스 관점을 결합하여 시스템의 전반적인 동작을 이해하는 단계
- 특정 프로세스가 어떤 데이터를 사용하는지, 데이터가 어떻게 생성되고 변경되는지를 명확하게 정의
- 보다 각 프로세스가 정확히 어떤 데이터가 필요한지를 파악하는 단계
모델링을 할 때 어떤 관점으로 보느냐에 따라 정의되는 개념이 달라짐
-
데이터 모델링 유의점
- 중복(Duplication) → 최대한 발생하지 않게
- 한 테이블 또는 여러 테이블에 같은 정보를 저장하지 않도록 설계
- 저장 공간 낭비가 발생하지 않도록
- 비유연성(Inflexibility) → 유연한 설계일수록 좋음
- 사소한 업무 변화에 대해서도 잦은 모델 변경이 되지 않도록 주의
- 데이터 정의를 프로세스와 분리
- 비일관성(Inconsistency) → 일관성(예: 업무코드 일치 등)이 있어야 함
- 데이터베이스 내의 정보가 모순되거나 상반된 내용을 갖는 상태를 의미
- 데이터 간 상호연관 관계를 명확히 정의
- 데이터 품질 관리 필요
- 데이터의 중복이 없더라도 비일관성은 발생할 수 있음
-
데이터 모델링 3가지 요소
- 대상(Entity): 업무가 관리하고자 하는 대상(객체)
- 속성(Attribute): 대상들이 갖는 속성
- 단계(Relationship): 대상들 간 관계
-
데이터 모델링 3단계
- 개념적 모델링
- 업무 중심적이고 포괄적(전사적) 수준의 모델링
- 추상화 수준이 가장 높음
- 업무를 분석 뒤 업무의 핵심 엔터티(Entity)를 추출하는 단계
- 도출된 핵심 엔터티(Entity)들과의 관계를 표현하기 위해 ERD 작성
- 논리적 모델링
- 개념적 모델링의 결과를 토대로 세부 속성, 식별자, 관계 등을 표현하는 단계
- 데이터 구조를 정의하기 때문에 비슷한 업무나 프로젝트에서 동일한 형태의 데이터 사용 시 재사용 가능
- 동일한 논리적 모델을 사용하는 경우 쿼리도 재사용 가능
- 데이터 정규화 수행
- 재사용성이 높은 논리적 모델은 유지보수가 용이해짐
- 물리적 모델링
- 논리 모델링이 끝나면 이를 직접 물리적으로 생성하는 과정
- 데이터베이스 성능, 디스크 저장 구조, 하드웨어 보안성, 가용성 등을 고려
- 가장 구체적인 데이터 모델링
- 추상화 수준은 가장 낮음(가장 구체적인 모델링이므로)
-
스키마
- 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터(객체 정보)의 집합
- A 스키마 → A 소유의 여러 가지(테이블, 인덱스, 제약 조건, 기타 등등)의 객체에 대한 전체적인 개념을 스키마라고 표현
- 집합이라 생각하면 됨
-
모든 객체들에 대한 정보
-
3단계 구조: 외부, 개념, 내부 스키마로 분리
-
사용자의 관점과 실제 설계된 물리적인 방식을 분리하기 위해 고안됨
- 외부 스키마
- 사용자가 보는 관점에서 데이터베이스 스키마를 정의
- 사용자나 응용 프로그램이 필요한 데이터를 정의
(특히 사용자가 접근하는 대상을 view라고 부름)
- 개념 스키마
- 사용자 관점의 데이터베이스 스키마를 통합하여 데이터베이스의 전체 논리적 구조를 정의
- 전체 데이터베이스의 개체(엔터티), 속성, 관계, 데이터 타입 등을 정의
- 내부 스키마
- 데이터가 물리적으로 어떻게 저장되는지를 정의
- 데이터의 저장 구조, 컬럼, 인덱스 등을 정의
엔터티

- 예시


속성
관계
식별자
정규화
관계와 조인의 이해
모델이 표현하는 트랜잭션의 이해
Null 속성의 이해
본질식별자 vs. 인조식별자
2과목
SQL 기본
- 관계형 데이터베이스 개요
- SELECT 문
- 함수
- WHERE 절
- GROUP BY, HAVING 절
- ORDER BY 절
- 조인
- 표준 조인
SQL 활용
- 서브 쿼리
- 집합 연산자
- 그룹 함수
- 윈도우 함수
- Top N 쿼리
- 계층형 질의와 셀프 조인
- PIVOT 절과 UNPIVOT 절
- 정규 표현식
관리 구문
2과목 정리
관계형 데이터베이스 개요
SELECT문
함수
WHERE절
GROUP BY절과 HAVING절
ORDER BY절
조인
표준 조인
서브쿼리
NULL
정규식 표현