DBMS의 필수기능은 정의, 조작, 제어 세 가지다. 정의 기능은 데이터베이스 구조를 정의하고, 조작 기능은 데이터를 검색·삽입·수정·삭제하며, 제어 기능은 데이터 무결성·보안·동시성을 관리한다. 사전 기능(data dictionary facility)은 메타데이터를 저장·관리하는 지원 기능으로, 필수기능이 아닌 선택적 보조 기능에 해당한다.

제시문은 데이터베이스의 구조와 제약조건을 기술하는 메타데이터에 대한 설명으로, 데이터 개체·속성·관계 및 데이터 조작에 대한 제약 조건을 정의하는 것은 스키마(Schema)이다. Bubble Sort는 정렬 알고리즘, Key는 튜플 식별자, Data Warehouse는 의사결정 지원을 위한 통합 데이터 저장소로 설명과 무관하다.
로킹 단위가 크면 병행성 수준이 높아진다는 설명은 잘못되었으며, 인과관계가 반대다. 로킹 단위가 크면(예: 테이블 전체) 한 번에 많은 데이터를 잠금하므로 다른 트랜잭션의 접근이 제한되어 병행성 수준이 낮아지고, 로킹 단위가 작으면(예: 행 단위) 더 많은 트랜잭션이 동시에 접근할 수 있어 병행성이 높아진다.
로킹은 공유 자원에 대한 동시 접근을 제어하기 위한 동기화 메커니즘이다.
- 로킹 대상 객체의 크기를 로킹 단위라고 한다: 로킹 단위(row, page, table 등)의 정의로 올바르다.
- 주요 데이터의 접근을 상호배타적으로 한다: 로킹이 상호배타성(mutual exclusion)을 보장하는 목적으로 올바르다.
- 로킹 단위가 작아지면 로킹 오버헤드가 증가한다: 로킹 단위가 작아지면(예: 행 단위) 잠금·해제 횟수가 증가하여 오버헤드가 증가하는 것이 맞다.
릴레이션의 특징에서 속성 값은 반드시 원자값(atomic value)이어야 한다는 것이 1정규형(1NF)의 핵심 조건이다. 보기 2는 "원자값이어서는 안 된다"고 잘못 서술하여 정반대의 내용을 담고 있다. 보기 1은 릴레이션의 모든 튜플이 유일해야 한다는 특징(후보키 존재), 보기 3은 튜플 간 순서 무관성, 보기 4는 속성 간 순서 무관성으로 모두 올바른 릴레이션의 특징이다.
스택은 후입선출(LIFO) 구조이므로, 입력 순서 A, B, C, D에서 나올 수 있는 출력 순서를 판단하려면 각 보기가 스택 연산으로 가능한지 확인해야 한다. 스택에 원소가 들어온 순서대로 아래에서부터 쌓이며, 출력은 맨 위에서만 가능하다.
1번 C, B, A, D: A 입력 → B 입력 → C 입력 → C 출력 → B 출력 → A 출력 → D 입력 → D 출력 (가능)
2번 C, D, A, B: A, B, C를 입력해서 C를 출력했으면 스택에는 [A, B]가 남아있다. 다음 D를 출력하려면 D가 스택 맨 위에 있어야 하는데, 입력 순서상 D는 아직 들어오지 않았다. D를 입력하면 스택은 [A, B, D]가 되므로 D를 꺼낼 수 있지만, 그 다음 A를 출력하려면 B를 먼저 제거해야 하므로 불가능
3번 B, A, D, C: A 입력 → B 입력 → B 출력 → A 출력 → C 입력 → D 입력 → D 출력 → C 출력 (가능)
4번 B, C, D, A: A 입력 → B 입력 → B 출력 → C 입력 → C 출력 → D 입력 → D 출력 → A 출력 (가능)

CODASYL DBTG(Conference on Data Systems Languages Database Task Group) 모델은 네트워크 데이터 모델을 정의한 표준이며, 이 모델의 핵심 특징이 오너-멤버(Owner-Member) 관계다.
오너-멤버 관계는 한 레코드(오너)가 여러 레코드(멤버)를 소유할 수 있는 1:N 관계 구조로, 네트워크 모델에서 레코드들 간의 연결을 정의하는 기본 메커니즘이다. 계층 모델도 1:N 관계를 지원하지만 트리 구조로 제한되는 반면, 네트워크 모델은 다중 부모 관계를 허용하여 더 복잡한 구조를 표현할 수 있다.

트리의 차수는 노드가 가진 자식 수의 최댓값이다. 그림에서 A는 자식 2개(B, C), B는 자식 3개(D, E, F), E는 자식 2개(I, J), C는 자식 2개(G, H)를 가지므로 가장 많은 자식을 가진 노드는 B로 3개이다. 따라서 이 트리의 차수는 3이다.

단말 노드(Terminal Node)는 자식이 없는 노드를 의미한다. 트리 구조를 보면 A-B-C가 상위 노드이고, B는 D, E, F를 자식으로 가지며 E는 I, J를 자식으로 가진다. C는 G, H를 자식으로 가진다. 이때 자식이 없는 노드는 D, F, I, J, G, H로 총 6개이다.

버블 정렬은 인접한 두 원소를 비교하며 앞이 크면 서로 교환하는 과정을 끝까지 반복한다. 초기 자료 9, 4, 5, 1, 3에서 순서대로 비교하면: (9,4)→교환 4,9,5,1,3 / (9,5)→교환 4,5,9,1,3 / (9,1)→교환 4,5,1,9,3 / (9,3)→교환 4,5,1,3,9. 따라서 1회전 결과는 4, 5, 1, 3, 9이다.
물리적 설계에서는 저장 레코드 양식, 레코드 집중(클러스터링), 접근 경로 등 실제 저장 구조를 설계한다. 트랜잭션 모델링은 개념적 설계 단계에서 하는 작업이고, 물리적 설계에서는 트랜잭션을 세부적으로 설계한다.
해싱에서 한 개의 레코드를 저장할 수 있는 물리적 공간 단위를 Slot이라 한다. Bucket은 여러 개의 Slot을 묶은 집합이고, Synonym은 같은 해시 값을 갖는 서로 다른 레코드들, Collision은 서로 다른 키가 같은 해시 값으로 매핑되는 현상을 의미하므로 한 개 레코드 저장 공간의 개념과는 다르다.
테이블 생성에 사용되는 SQL 문은 CREATE이다. CREATE TABLE 문은 새로운 테이블의 구조와 열(column)을 정의하여 데이터베이스에 테이블을 생성하는 DDL(Data Definition Language) 명령어다. DROP은 테이블 삭제, INSERT는 데이터 삽입, SELECT는 데이터 조회에 사용되므로 테이블 생성과는 무관하다.
E-R 모델의 다이어그램 표기법에서 개체타입은 직사각형, 관계타입은 마름모(다이아몬드), 속성은 타원으로 표현된다. 따라서 보기 1은 개체타입과 속성의 기호를 역으로 기술했으므로 틀렸다. 보기 2, 3, 4는 모두 E-R 모델의 정의와 특징을 올바르게 설명하고 있다.
비선형구조는 하나의 원소가 여러 개의 원소와 연결될 수 있는 구조를 의미한다. 그래프는 정점(노드)과 간선으로 이루어져 각 정점이 다른 여러 정점과 연결될 수 있으므로 비선형구조에 해당한다. 데크, 스택, 큐는 모두 선형구조로서, 원소들이 일렬로 연결되어 있고 순서 관계(앞뒤 또는 양쪽 끝)만 존재한다.

중위식 A*B+C-D/E를 트리로 구성하면 최상위 연산은 -이며, 좌측 서브트리는 A*B+C, 우측 서브트리는 D/E이다. 좌측 서브트리에서 최상위는 +이고 그 좌측이 A*B(전위: *AB), 우측이 C이므로 좌측 서브트리의 전위식은 +*ABC이다. 우측 서브트리 D/E의 전위식은 /DE이다. 이를 결합하면 전체 전위식은 -+*ABC/DE가 되어 3번과 일치한다.










