정처기 DB 완전정복
2021–2026 기출 기반 · 10개 탭 · 25문제 퀴즈
DB 설계 순서
📋
DB 설계 순서
매회출제
단계핵심 내용산출물
요구 분석요구사항 수집·명세요구사항 명세서
개념적 설계E-R 다이어그램 / DBMS 독립E-R 다이어그램
논리적 설계관계형 스키마 변환 / 정규화릴레이션 스키마
물리적 설계저장구조·접근경로 결정테이블 정의서
구현DDL로 실제 DB 생성DB
암기법: 요→개→논→물→구 (요개논물구)
스키마 3계층
🏛️
스키마 3계층
자주출제
스키마관점설명독립성
외부 스키마사용자·응용개인별 뷰 (서브스키마)
개념 스키마DBA전체 DB 논리 구조 / 하나만 존재
내부 스키마시스템물리적 저장 구조
외부↔개념 = 논리적 독립성 / 개념↔내부 = 물리적 독립성
키(Key) 종류
🔑
키(Key) 종류
매회출제
유일성최소성NULL 허용설명
슈퍼키O유일성만 만족 (속성 조합 가능)
후보키O슈퍼키 중 최소성 만족
기본키 PK후보키 중 선택 / NOT NULL 자동
대체키O기본키 제외한 나머지 후보키
외래키 FKO다른 테이블 기본키 참조 (NULL 가능)
슈퍼키 ⊃ 후보키 ⊃ 기본키 (포함 관계)
무결성 제약
⚖️
무결성 제약
자주출제
종류설명관련 키
개체 무결성기본키: NULL 불가 / 중복 불가PK
참조 무결성외래키: 참조 테이블 PK 값이거나 NULLFK
도메인 무결성속성값: 정의된 도메인(타입·범위) 내CHECK
NULL 무결성NOT NULL 지정 속성에 NULL 불허NOT NULL
고유 무결성특정 속성값 중복 불허UNIQUE
ERD 구성요소
🔗
ERD 구성요소
자주출제
기호의미세부 사항
사각형 □개체(Entity)이중 사각형 = 약한 개체
마름모 ◇관계(Relationship)이중 마름모 = 식별 관계
타원 ○속성(Attribute)이중 타원 = 다중값 / 점선 타원 = 유도 속성
실선 밑줄기본키 속성
선 —개체-관계 연결1:1 / 1:N / N:M
일반 집합 연산
관계대수 — 일반 집합 연산
자주출제
기호이름조건설명
합집합 UNION합병 가능두 릴레이션 합 (중복 제거)
교집합 INTERSECTION합병 가능공통 튜플만
차집합 DIFFERENCE합병 가능R에만 있는 튜플
×카르테시안 곱 PRODUCT없음모든 순서쌍 (행수 = R1×R2)
합병 가능 조건: 차수(열 수)가 같고 대응 속성의 도메인이 같아야 함
순수 관계 연산
σ
관계대수 — 순수 관계 연산
매회출제
기호이름설명예시
σ (시그마)셀렉트 SELECT조건에 맞는 행(튜플) 선택σ나이>20(학생) → 나이>20인 행만
π (파이)프로젝트 PROJECT특정 열(속성) 추출π이름,학과(학생) → 이름·학과 열만
▷◁조인 JOIN공통 속성으로 두 릴레이션 합치기학생 ▷◁ 수강
÷디비전 DIVISIONS의 모든 값을 포함하는 R 튜플 추출R÷S
σ = SQL의 WHERE / π = SQL의 SELECT 절에 해당
관계해석
관계해석
배경지식
언어 특성비절차적 언어 — 결과(무엇)만 기술, 방법은 기술 안 함
튜플 해석식튜플을 변수로 사용하여 조건 기술
도메인 해석식도메인(열 값)을 변수로 사용하여 조건 기술
관계대수와 차이관계대수 = 절차적 / 관계해석 = 비절차적
이상(Anomaly)
⚠️
이상(Anomaly) 3종류
매회출제
종류발생 상황예시
삽입 이상원치 않는 데이터도 함께 삽입해야 함학과 정보 없이 신입생 등록 불가
삭제 이상삭제 시 의도치 않은 데이터도 사라짐유일한 수강생 삭제 시 강의 정보도 사라짐
갱신 이상일부만 수정→데이터 불일치교수 이름 일부 행만 수정
발생 원인: 데이터 중복 / 해결책: 정규화
카디널리티 & 디그리
📊
카디널리티 & 디그리
배경지식
카디널리티튜플(행)의 수
디그리 (차수)속성(열)의 수
함수적 종속
f()
함수적 종속 종류
매회출제
종류설명관련 정규형
완전 함수 종속기본키 전체에 종속 (부분 종속 없음)2NF 만족 조건
부분 함수 종속기본키 일부에만 종속 (복합키일 때)2NF 위반 원인
이행 함수 종속A→B, B→C이면 A→C (간접 종속)3NF 위반 원인
A→B 표기: A가 B를 함수적으로 결정 / A=결정자, B=종속자
정규화 단계별 비교
NF
정규화 단계별 비교
매회출제
NF조건제거 대상위반 예시
1NF모든 속성값이 원자값반복 그룹·다중값과목 열에 "수학,영어"
2NF1NF + 완전 함수 종속부분 함수 종속{학번,과목}→학년 (학년은 학번에만 종속)
3NF2NF + 비이행 종속이행 함수 종속학번→학과→학과장 (학과장 분리)
BCNF3NF + 모든 결정자=후보키결정자가 후보키 아닌 경우강사→과목 (강사가 후보키 아님)
4NFBCNF + 다치 종속 제거다치 종속 (MVD)
5NF4NF + 조인 종속 제거조인 종속최고 정규형
2NF는 복합키일 때만 문제 / 3NF는 단일키도 발생 가능
2NF 위반 예시
2️⃣
2NF 위반 예시 및 해결
매회출제

문제 테이블: 기본키 = (학번, 과목코드)

학번(PK)과목코드(PK)성적학년 ← 부분종속!
S001C101A2
S001C102B2 ← 학번에만 종속
S002C101A3
학년은 학번에만 종속 → 부분 함수 종속 → 2NF 위반
해결: 학생(학번, 학년) + 수강(학번, 과목코드, 성적)으로 분리
3NF 위반 예시
3️⃣
3NF 위반 예시 및 해결
매회출제

이행 함수 종속: 학번 → 학과코드 → 학과장

학번(PK)학과코드학과장 ← 이행종속!
S001CS김교수
S002EE박교수
학번→학과코드→학과장 (간접 종속) → 3NF 위반
해결: 학생(학번, 학과코드) + 학과(학과코드, 학과장)으로 분리
반정규화
↩️
반정규화 (Denormalization)
자주출제

정규화된 모델을 의도적으로 통합·중복하여 성능 향상

목적조회 속도 향상 / 조인 횟수 감소 / 운영 편의성
부작용이상 현상 가능성↑ / 저장 공간 증가 / 무결성 저하
ACID 특성
ACID 특성
매회출제
특성영문핵심 키워드설명
원자성AtomicityAll or Nothing모두 반영되거나 전혀 반영 안됨
일관성Consistency일관된 상태수행 전후 DB가 일관성 유지
독립성Isolation격리동시 실행 트랜잭션이 서로 간섭 안됨
지속성Durability영구 반영완료 후 결과는 장애가 발생해도 유지
암기: A.C.I.D = 원.일.독.지
REDO / UNDO
↩️
REDO / UNDO
매회출제
구분조건동작 방향목적
REDO (재실행)start O + commit O이전값→이후값 재적용완료된 트랜잭션 재반영
UNDO (취소)start O + commit X이후값→이전값 복원미완료 트랜잭션 취소

로그 예시:

트랜잭션startcommit처리
T1REDO (재작업)
T2UNDO (취소)
T3✅ (장애 후)미처리
병행 제어 기법
🔄
병행 제어 기법
자주출제
기법키워드특징
로킹(Locking)락 기반가장 일반적 / 교착상태 가능
타임스탬프시간 기반트랜잭션 시작 시간으로 직렬화 순서 결정
낙관적 검증검증 후 확정일단 수행 후 완료 시점에 검증
MVCC다중 버전읽기와 쓰기 충돌 없이 동시성 향상
로킹 상세
🔒
로킹 — 공유락 vs 배타락
자주출제
구분공유락(S-Lock)배타락(X-Lock)
허용 연산읽기(SELECT)만읽기 + 쓰기(SELECT, UPDATE 등)
다른 S-Lock과호환 ✅호환 ❌
다른 X-Lock과호환 ❌호환 ❌
로킹 단위 작을수록: 병행성↑ / 오버헤드↑ / 교착상태 가능성↑
교착상태 (Deadlock)
🔗
교착상태 (Deadlock)
자주출제

둘 이상의 트랜잭션이 서로 상대방의 락 해제를 무한 대기하는 상태

해결 방법설명
예방(Prevention)교착상태 발생 조건(4가지) 중 하나 제거
회피(Avoidance)은행원 알고리즘으로 안전 상태 유지
발견(Detection)주기적으로 교착상태 탐지
회복(Recovery)교착상태 트랜잭션 종료 또는 자원 선점
회복 기법
🛡️
회복 기법
자주출제
기법특징사용 연산
즉각 갱신변경 즉시 DB에 반영REDO + UNDO 모두 사용
지연 갱신완료 전까지 로그에만 기록REDO만 사용 (UNDO 불필요)
체크포인트저장 시점 설정 / 이후 트랜잭션만 복구REDO + UNDO
그림자 페이지갱신 전 복사본 유지 / 장애 시 복사본 복원없음
SQL 분류
📊
SQL 4분류
매회출제
분류명령어특징
DDLCREATE, ALTER, DROP, TRUNCATE, RENAME자동 COMMIT → ROLLBACK 불가
DMLSELECT, INSERT, UPDATE, DELETECOMMIT/ROLLBACK 제어 가능
DCLGRANT, REVOKE권한 부여·취소
TCLCOMMIT, ROLLBACK, SAVEPOINT트랜잭션 제어
CREATE TABLE
🏗️
CREATE TABLE 전체 문법
매회출제
CREATE TABLE 학생 ( 학번 VARCHAR(10) PRIMARY KEY, 이름 VARCHAR(20) NOT NULL, 이메일 VARCHAR(50) UNIQUE, 나이 INT CHECK (나이 >= 0 AND 나이 <= 150), 학과번호 INT REFERENCES 학과(학과번호) ON DELETE CASCADE ON UPDATE CASCADE, 입학년도 INT DEFAULT 2024, CONSTRAINT pk_학생 PRIMARY KEY (학번) );
제약조건설명
PRIMARY KEY기본키 (NOT NULL + UNIQUE 자동 적용)
NOT NULLNULL 입력 불가
UNIQUE중복 불가 (NULL은 허용)
CHECK (조건)도메인 제약 (입력값 범위/조건)
REFERENCES 테이블(열)외래키 참조 무결성
DEFAULT 값미입력 시 기본값
ON DELETE CASCADE참조 행 삭제 시 함께 삭제
ON DELETE SET NULL참조 행 삭제 시 NULL로
ALTER TABLE
✏️
ALTER TABLE
자주출제
-- 열 추가 ALTER TABLE 학생 ADD 전화번호 VARCHAR(15); -- 열 수정 (Oracle: MODIFY, SQL Server: ALTER COLUMN) ALTER TABLE 학생 MODIFY 이름 VARCHAR(30) NOT NULL; -- 열 삭제 ALTER TABLE 학생 DROP COLUMN 전화번호; -- 제약조건 추가 ALTER TABLE 학생 ADD CONSTRAINT fk_학과 FOREIGN KEY (학과번호) REFERENCES 학과(학과번호); -- 제약조건 삭제 ALTER TABLE 학생 DROP CONSTRAINT fk_학과;
DELETE vs TRUNCATE vs DROP
🗑️
DELETE vs TRUNCATE vs DROP
매회출제
구분DELETETRUNCATEDROP
분류DMLDDLDDL
삭제 대상행(데이터)전체 행(데이터)테이블 전체
WHERE 조건✅ 가능❌ 불가❌ 불가
ROLLBACK✅ 가능❌ 불가❌ 불가
테이블 구조유지유지삭제
로그 기록행별 기록최소 기록
속도느림빠름
인덱스 DDL
📑
CREATE / DROP INDEX
자주출제
-- 인덱스 생성 CREATE [UNIQUE] INDEX idx_이름 ON 학생 (이름); -- 복합 인덱스 CREATE INDEX idx_복합 ON 학생 (학과번호, 이름); -- 인덱스 삭제 DROP INDEX idx_이름;
인덱스 특징내용
장점SELECT 속도 향상 (검색 성능↑)
단점INSERT·UPDATE·DELETE 성능 저하 / 추가 저장공간 필요
UNIQUE 인덱스중복값 입력 시 오류 발생
SELECT 전체 구조 + 실행 순서
🔍
SELECT 전체 구조 + 실행 순서
매회출제
SELECT [DISTINCT] 컬럼1, 컬럼2, 집계함수 AS 별칭 FROM 테이블명 [AS 별칭] [WHERE 행 조건] [GROUP BY 그룹 기준 열] [HAVING 그룹 조건] [ORDER BY 정렬 기준 [ASC|DESC]] [LIMIT 행 수];
실행 순서: ① FROM → ② WHERE → ③ GROUP BY → ④ HAVING → ⑤ SELECT → ⑥ ORDER BY
HAVING은 집계 후 그룹 조건 / WHERE는 집계 전 개별 행 조건
WHERE 조건 상세
🔤
WHERE 조건 상세
자주출제
-- LIKE 패턴 매칭 WHERE 이름 LIKE '김%' -- 김으로 시작 WHERE 이름 LIKE '%철%' -- 철 포함 WHERE 이름 LIKE '김_수' -- 김?수 (? = 한 글자) -- NULL 체크 (= NULL은 오류!) WHERE 점수 IS NULL WHERE 점수 IS NOT NULL -- 범위 (경계값 포함) WHERE 나이 BETWEEN 20 AND 30 -- 목록 WHERE 학과 IN ('컴퓨터', '전자', '기계') WHERE 학과 NOT IN ('국어', '수학') -- 복합 조건 WHERE 나이 >= 20 AND 학과 = '컴퓨터' WHERE 나이 < 20 OR 성적 = 'A'
집계함수 + NULL 처리
집계함수 + NULL 처리
매회출제
함수설명NULL 처리
COUNT(*)전체 행 수NULL 포함
COUNT(열)해당 열 값 있는 행 수NULL 제외
SUM(열)합계NULL 무시
AVG(열)평균NULL 제외 후 계산 (≠ 전체 합/전체 행)
MAX(열)최대값NULL 무시
MIN(열)최소값NULL 무시
AVG(점수) = SUM(점수) / COUNT(점수) — NULL 행은 분모에서 제외됨!
-- 학과별 인원 수, 평균 성적 (2학년 이상, 3명 이상인 학과만) SELECT 학과, COUNT(*) AS 인원, AVG(성적) AS 평균 FROM 학생 WHERE 학년 >= 2 GROUP BY 학과 HAVING COUNT(*) >= 3 ORDER BY 평균 DESC;
DISTINCT와 ORDER BY
🔢
DISTINCT와 ORDER BY
자주출제
-- 중복 제거 SELECT DISTINCT 학과 FROM 학생; -- 정렬 (기본: ASC 오름차순) SELECT * FROM 학생 ORDER BY 성적 DESC, 이름 ASC; -- NULL 값은 ORDER BY에서 보통 맨 마지막 (Oracle은 맨 앞)
JOIN 종류
🔗
JOIN 종류
매회출제
종류결과특징
INNER JOIN양쪽 조건 일치하는 행만가장 일반적인 조인
LEFT OUTER JOIN왼쪽 전체 + 오른쪽 일치 (없으면 NULL)왼쪽 기준
RIGHT OUTER JOIN오른쪽 전체 + 왼쪽 일치 (없으면 NULL)오른쪽 기준
FULL OUTER JOIN양쪽 모두 전체양쪽 NULL 포함
CROSS JOIN모든 조합 (카르테시안 곱)행수 = R1 × R2
NATURAL JOIN동일 속성명으로 자동 동등 조인중복 열 제거
-- INNER JOIN SELECT A.이름, B.과목명, B.성적 FROM 학생 A INNER JOIN 수강 B ON A.학번 = B.학번; -- LEFT OUTER JOIN (수강 안 한 학생도 포함) SELECT A.이름, B.과목명 FROM 학생 A LEFT OUTER JOIN 수강 B ON A.학번 = B.학번; -- CROSS JOIN (3명 학생 × 4개 과목 = 12행) SELECT * FROM 학생 CROSS JOIN 과목;
서브쿼리
📦
서브쿼리
자주출제
위치이름설명
WHERE절중첩 서브쿼리IN, EXISTS, 비교 연산자와 함께 사용
FROM절인라인 뷰서브쿼리 결과를 테이블처럼 사용
SELECT절스칼라 서브쿼리단일 값 반환
-- IN 서브쿼리 (수강 학생만) SELECT 이름 FROM 학생 WHERE 학번 IN (SELECT 학번 FROM 수강); -- EXISTS (수강 기록 있는 학생) SELECT 이름 FROM 학생 A WHERE EXISTS (SELECT 1 FROM 수강 B WHERE A.학번 = B.학번); -- 스칼라 서브쿼리 (단일값) SELECT 이름, (SELECT MAX(성적) FROM 수강) AS 최고점 FROM 학생; -- 인라인 뷰 (FROM절 서브쿼리) SELECT * FROM ( SELECT 학번, AVG(성적) AS 평균 FROM 수강 GROUP BY 학번 ) AS 평균테이블 WHERE 평균 >= 80;
집합 연산자
집합 연산자
자주출제
연산자설명중복 처리
UNION합집합중복 제거
UNION ALL합집합중복 포함
INTERSECT교집합중복 제거
MINUS / EXCEPT차집합 (첫 번째만)중복 제거
-- 2학년 OR 컴퓨터과 학생 (합집합) SELECT 학번 FROM 학생 WHERE 학년=2 UNION SELECT 학번 FROM 학생 WHERE 학과='컴퓨터'; -- 2학년 AND 컴퓨터과 (교집합) SELECT 학번 FROM 학생 WHERE 학년=2 INTERSECT SELECT 학번 FROM 학생 WHERE 학과='컴퓨터';
DML — INSERT · UPDATE · DELETE
✍️
DML — INSERT · UPDATE · DELETE
자주출제
-- INSERT: 모든 열 INSERT INTO 학생 VALUES ('S001', '홍길동', '컴퓨터', 2024); -- INSERT: 특정 열 INSERT INTO 학생(학번, 이름) VALUES ('S002', '김철수'); -- INSERT: 다른 테이블에서 INSERT INTO 졸업생 SELECT * FROM 학생 WHERE 학년=4; -- UPDATE UPDATE 학생 SET 학년=학년+1, 학과='전자' WHERE 학번='S001'; -- DELETE (WHERE 없으면 전체 삭제!) DELETE FROM 학생 WHERE 학번='S001';
DCL — GRANT / REVOKE
🔑
DCL — GRANT / REVOKE
매회출제
-- 권한 부여 GRANT SELECT, INSERT, UPDATE ON 학생 TO 홍길동; -- 재부여 권한 포함 GRANT SELECT ON 학생 TO 홍길동 WITH GRANT OPTION; -- 권한 취소 REVOKE SELECT ON 학생 FROM 홍길동; -- CASCADE: 홍길동이 재부여한 권한까지 연쇄 취소 REVOKE SELECT ON 학생 FROM 홍길동 CASCADE;
옵션설명
WITH GRANT OPTION받은 권한을 타인에게 재부여 가능
CASCADEREVOKE 시 연쇄 취소 (재부여받은 사람 권한도 취소)
TCL — 트랜잭션 제어
💾
TCL — 트랜잭션 제어
자주출제
-- 트랜잭션 확정 (영구 반영) COMMIT; -- 트랜잭션 전체 취소 ROLLBACK; -- 중간 저장점 설정 SAVEPOINT sp1; -- 특정 저장점으로 부분 롤백 ROLLBACK TO sp1;
DDL (CREATE, DROP, ALTER)은 자동 COMMIT → ROLLBACK 불가!
뷰 (VIEW)
👁️
뷰(VIEW)
매회출제

하나 이상의 테이블로 유도된 가상 테이블 / 물리적 저장 안됨

항목내용
장점보안성 향상 / 논리적 독립성 / 단순화
단점/제약ALTER 명령으로 구조 변경 불가 / 삽입·수정·삭제 제한적
DML단순 뷰는 가능, 복합 뷰(GROUP BY, JOIN 포함)는 제한
-- 뷰 생성 CREATE VIEW 컴퓨터학생 AS SELECT 학번, 이름 FROM 학생 WHERE 학과='컴퓨터'; -- 뷰 교체 (없으면 생성, 있으면 수정) CREATE OR REPLACE VIEW 컴퓨터학생 AS ...; -- 뷰 삭제 DROP VIEW 컴퓨터학생; DROP VIEW 컴퓨터학생 CASCADE; -- 의존 뷰도 함께 삭제
뷰는 ALTER로 수정 불가CREATE OR REPLACE VIEW 사용
트리거 (TRIGGER)
트리거(TRIGGER)
자주출제

테이블 이벤트(INSERT·UPDATE·DELETE) 발생 시 자동 실행되는 저장 프로시저

CREATE TRIGGER 급여이력관리 AFTER UPDATE ON 직원 FOR EACH ROW BEGIN -- NEW: 변경 후 값 / OLD: 변경 전 값 IF NEW.급여 <> OLD.급여 THEN INSERT INTO 급여이력(직원번호, 이전급여, 신급여, 변경일) VALUES(NEW.직원번호, OLD.급여, NEW.급여, NOW()); END IF; END;
옵션설명
BEFORE이벤트 실행 전 트리거 수행
AFTER이벤트 실행 후 트리거 수행
NEW변경 후 (새로운) 행 데이터 참조
OLD변경 전 (이전) 행 데이터 참조
FOR EACH ROW행 단위로 트리거 실행
저장 프로시저 · 함수 비교
📦
저장 프로시저·함수·트리거 비교
자주출제
구분저장 프로시저함수(Function)트리거
반환값없거나 여러 개반드시 1개 반환없음
호출CALL 또는 EXECSELECT/표현식 안에서이벤트 발생 시 자동
사용복잡한 비즈니스 로직값 계산·변환자동화 작업
CREATE PROCEDURE 학과별조회(IN 학과명 VARCHAR(20)) BEGIN SELECT * FROM 학생 WHERE 학과 = 학과명; END; -- 호출 CALL 학과별조회('컴퓨터');
접근 제어
🔐
접근 제어 3종류
매회출제
종류결정 주체특징
DAC (임의적)데이터 소유자소유자가 직접 권한 부여·취소 / 타인에게 위임 가능 / 유연하지만 일관성↓
MAC (강제적)중앙 관리자(시스템)보안 등급 기반 / 군사·정부 시스템에 활용 / 엄격하고 일관성↑
RBAC (역할 기반)역할(Role)역할에 권한 부여 → 사용자를 역할에 배정 / 관리 편리
시험 자주 나오는 함정: DAC은 소유자가 결정, MAC은 관리자가 결정
보안 3요소 CIA
🛡️
보안 3요소 CIA
자주출제
요소키워드설명
기밀성 Confidentiality인가된 자만 접근암호화, 접근 제어
무결성 Integrity정확성·일관성 유지데이터 변조 방지
가용성 Availability언제든 사용 가능서비스 중단 방지
분산 데이터베이스 투명성
🌐
분산 데이터베이스 투명성
자주출제
투명성 종류설명
위치 투명성데이터 실제 위치 몰라도 접근 가능
중복 투명성여러 곳에 복사돼도 하나처럼 사용
병행 투명성동시 접근해도 결과 일관성 유지
장애 투명성일부 장애 발생해도 정상 동작
데이터 모델 3종류
🗂️
데이터 모델 3종류
배경지식
모델구조특징
관계형테이블(릴레이션)현재 가장 많이 사용 / SQL 사용
계층형트리 구조부모-자식 1:N / 루트 노드 존재
네트워크형그래프 구조N:M 관계 표현 가능
데이터 사전
📖
데이터 사전 (Data Dictionary)
배경지식
정의DB 내 모든 객체(테이블, 뷰, 인덱스 등) 정보를 저장한 메타데이터 저장소
특징시스템 카탈로그라고도 함 / SQL로 조회 가능 / 직접 수정 불가
용도DBMS가 내부적으로 활용 / DBA가 DB 구조 파악에 사용
0/0
맞힌 문제 / 푼 문제
Q1
DB 설계 순서에서 E-R 다이어그램을 산출물로 만드는 단계는?
Q2
스키마 3계층에서 개념 스키마와 내부 스키마 사이의 독립성은?
Q3
유일성과 최소성을 모두 만족하는 키는?
Q4
외래키(FK)에 NULL 값을 입력할 수 있는가?
Q5
관계대수에서 σ(시그마) 연산이 하는 것은?
Q6
관계대수에서 π(파이) 연산이 하는 것은?
Q7
부분 함수 종속을 제거하는 정규형은?
Q8
A→B, B→C 이행 함수 종속을 제거하는 정규형은?
Q9
결정자가 후보키가 아닌 경우를 제거하는 정규형은?
Q10
DB 회복에서 REDO를 수행하는 조건은?
Q11
DB 회복에서 UNDO를 수행하는 조건은?
Q12
공유락(S-Lock)과 배타락(X-Lock)이 서로 호환되는가?
Q13
즉각 갱신 기법에서 사용하는 회복 연산은?
Q14
지연 갱신 기법에서 사용하는 회복 연산은?
Q15
TRUNCATE와 DELETE의 가장 중요한 차이는?
Q16
SELECT 실행 순서에서 HAVING 바로 앞에 오는 절은?
Q17
COUNT(열)에서 NULL 값은 어떻게 처리되는가?
Q18
GRANT에서 받은 권한을 타인에게 재부여할 수 있게 하는 옵션은?
Q19
REVOKE ... CASCADE의 의미는?
Q20
뷰(VIEW)를 ALTER 명령으로 수정할 수 있는가?
Q21
삭제 이상(Delete Anomaly)이란?
Q22
DAC(임의적 접근 제어)에서 접근 권한을 결정하는 주체는?
Q23
BEFORE 트리거와 AFTER 트리거의 차이는?
Q24
UNION과 UNION ALL의 차이는?
Q25
분산 DB에서 데이터의 실제 위치를 몰라도 접근 가능한 투명성은?