1. 데이터 모델링 및 키(Key)
데이터베이스의 기초 뼈대입니다. 키의 종류와 무결성 제약조건은 매회 출제됩니다.
1) 키(Key)의 종류
슈퍼키 (Super Key): 유일성 O, 최소성 X (나를 구분할 수만 있으면 됨, 예: 학번+이름)후보키 (Candidate Key): 유일성 O, 최소성 O (군더더기 없이 나를 구분, 예: 주민번호, 학번)기본키 (Primary Key): 후보키 중 선택된 메인 키 (Null 불가, 중복 불가)대체키 (Alternate Key): 후보키 중 기본키를 제외한 나머지외래키 (Foreign Key): 다른 테이블의 기본키를 참조하는 키2) 무결성(Integrity) 제약조건
개체 무결성: 기본키는 Null일 수 없고, 중복될 수 없다.참조 무결성: 외래키는 참조할 수 없는 값을 가질 수 없다. (부모에게 없는 자식은 없다)도메인 무결성: 특정 속성값은 정의된 범위(Domain) 내에 있어야 한다. (예: 성별에 '남', '여' 외의 값 불가)
2. 정규화 (Normalization) [출제 빈도 1위]
데이터 중복을 제거하여 이상 현상(Anomaly)을 막는 과정입니다. 단계별 키워드를 순서대로 외우는 것이 국룰입니다.
1) 정규화 단계 두음암기: [도.부.이.결.다.조]
1NF (제1정규형): [도]메인이 원자값(Atomic)이어야 함 (반복 그룹 제거)2NF (제2정규형): [부]분 함수 종속 제거 (완전 함수 종속 만족)3NF (제3정규형): [이]행 함수 종속 제거 (A->B, B->C 일 때 A->C가 되는 관계 제거)BCNF: [결]정자가 모두 후보키여야 함4NF: [다]치 종속(Multi-valued Dependency) 제거5NF: [조]인 종속(Join Dependency) 제거2) 반정규화 (De-normalization)
정규화된 엔티티, 속성을 성능 향상을 위해 의도적으로 통합/중복시키는 작업입니다. (정규화 원칙 위배)
목적: 성능 향상, 관리 효율성
3. SQL (Structured Query Language)
명령어를 3가지로 분류하는 문제와 SELECT문의 실행 순서가 나옵니다.
1) SQL 분류
DDL (정의어): 구조를 생성/변경. [CREATE, ALTER, DROP, TRUNCATE]DML (조작어): 실제 데이터 처리. [SELECT, INSERT, UPDATE, DELETE]DCL (제어어): 권한 및 트랜잭션. [GRANT, REVOKE, COMMIT, ROLLBACK]2) SELECT문 실행 순서 (매우 중요)
문법 순서가 아니라 내부 해석 순서를 묻습니다.
순서: FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY팁: 누구로부터(FROM) 조건에 맞는 놈을 추려서(WHERE) 그룹을 짓고(GROUP) 그룹 조건을 보고(HAVING) 뽑아낸 뒤(SELECT) 정렬한다(ORDER).3) 주요 키워드
DISTINCT: 중복 제거LIKE: 패턴 매칭 (%는 모든 문자, _는 한 문자)CASCADE: 부모 데이터 삭제 시 자식 데이터도 연쇄 삭제RESTRICT: 자식 데이터가 있으면 부모 삭제 거부
4. 트랜잭션과 동시성 제어
1) 트랜잭션의 특성 (ACID)
Atomicity (원자성): 모두 실행되거나, 아예 실행되지 않아야 함 (All or Nothing). [Commit/Rollback]Consistency (일관성): 실행 전후 데이터베이스 상태가 모순이 없어야 함.Isolation (격리성/고립성): 실행 도중 다른 트랜잭션이 끼어들 수 없음.Durability (영속성): 성공적으로 완료되면 결과는 영구 저장됨.2) 로킹(Locking) 단위
동시성 제어를 위해 데이터에 잠금을 거는 단위입니다.
단위가 큼 (테이블 전체 락): 관리 쉬움, 병행성(동시작업) 수준 낮아짐.단위가 작음 (행 하나 락): 관리 어려움(오버헤드 증가), 병행성 수준 높아짐.
5. 관계 대수 vs 관계 해석
이론적인 비교 문제가 나옵니다. 절차적인지 비절차적인지 구분하세요.
1) 관계 대수 (Relational Algebra)
특징: [절차적] 언어. 원하는 정보를 '어떻게(How)' 유도하는지 기술.연산자 기호 (그림 문제 대비):Select (시그마 σ): 수평적 부분집합 (행 선택)Project (파이 π): 수직적 부분집합 (열 선택)Join (리본 넥타이 ⋈): 두 테이블 결합Division (나누기 ÷): 포함된 튜플 검색 2) 관계 해석 (Relational Calculus)
특징: [비절차적] 언어. 원하는 정보가 '무엇(What)'인지만 정의.튜플 관계 해석과 도메인 관계 해석이 있음.
6. 기타 필수 용어
뷰 (View): 물리적으로 존재하지 않는 가상의 테이블. (보안성, 논리적 독립성 제공)인덱스 (Index): 검색 속도를 높이기 위한 자료구조. (주로 B-Tree 사용)파티셔닝 (Partitioning): 대용량 테이블을 물리적으로 분할. (범위, 해시, 리스트 등)시스템 카탈로그: 데이터베이스에 저장된 모든 데이터 개체들에 대한 정의나 명세에 대한 정보가 수록된 시스템 테이블. (데이터 사전이라고도 함)
[3과목 합격 전략]
3과목은 실기 시험과 가장 연계가 깊은 과목입니다.
[도부이결다조] 정규화 순서는 무조건 암기하세요.SQL 문제 중 [JOIN] 결과나 [COUNT] 개수 세는 문제는 직접 표를 그려서 풀어봐야 합니다.관계 대수 연산자 기호(σ, π, ⋈)를 눈에 익혀두세요.