이론 목록
SQL 명령 분류와 테이블·데이터·권한 제어
SQL 명령은 정보처리기사 학습에서 주로 DDL·DML·DCL로 구분하며, 일부 자료는 트랜잭션 제어를 TCL로 따로 분리한다. DDL은 테이블과 제약조건 같은 데이터베이스 객체의 구조를 정의하고, DML은 행을 조회·삽입·수정·삭제한다. DCL은 GRANT·REVOKE로 권한을 제어하며, 3분류 체계에서는 COMMIT·ROLLBACK 같은 트랜잭션 제어도 DCL에 포함한다. SELECT를 DML에 포함할지 DQL로 따로 부를지도 자료에 따라 다르므로 문제에서 제시한 분류 기준을 먼저 확인해야 한다. DELETE와 DROP, REVOKE와 ROLLBACK처럼 대상이 다른 명령을 구분하는 것이 핵심이다.
트랜잭션과 저장 프로그램·커서·예외 처리
트랜잭션은 함께 성공하거나 함께 취소해야 하는 논리적 작업 단위이며 COMMIT과 ROLLBACK으로 확정·취소한다. 저장 프로시저·함수·트리거는 호출 방식과 반환 목적이 다르다. 커서는 조회 결과를 한 행씩 처리하며 선언·열기·인출·닫기 순서를 따른다. 예외 처리는 오류의 제어 흐름을 다루므로 전체 트랜잭션 롤백과 같은 기능으로 보면 안 된다.
동적 SQL·SQL 테스트·실행계획·DBMS 방언
동적 SQL은 실행 시점에 SQL 텍스트를 구성·전달하여 처리하는 방식이며 문장 구조가 매번 바뀌어야 하는 것은 아니다. 값 바인딩은 문장 구조와 입력값을 분리한다. SQL 테스트는 기대 결과와 실제 값을 비교하고, 실행계획 분석은 접근 경로와 비용을 점검한다. 제품별 방언은 공통 SQL 개념과 구분해 해석한다.
SELECT 처리 순서·조건·NULL·집계·정렬
SELECT의 작성 순서와 논리적인 처리 순서는 다르다. WHERE는 개별 행을, HAVING은 집계된 그룹을 거르며 NULL 비교에는 UNKNOWN이 포함된다. COUNT·SUM·AVG의 NULL 처리와 GROUP BY·ROLLUP·CUBE의 집계 수준을 구분해야 한다. DISTINCT는 출력 열 조합의 중복을 제거하며 ORDER BY만이 결과 정렬을 요구한다.
JOIN: INNER·OUTER·SELF·CROSS
JOIN은 조인 조건에 맞는 행의 쌍을 만드는 연산이다. INNER JOIN은 일치 행만, OUTER JOIN은 지정한 쪽의 불일치 행도 보존한다. SELF JOIN은 같은 테이블의 역할을 별칭으로 구분하며 CROSS JOIN은 모든 조합을 만든다. 중복 키에 따른 행 수 증가, NULL 키, ON과 WHERE의 차이가 결과 계산의 핵심이다.
서브쿼리와 EXISTS·IN·ANY·ALL
서브쿼리는 상위 SQL에 한 값, 값 집합, 존재 여부 또는 테이블 형태의 결과를 제공한다. 상관 여부와 반환 행 수는 서로 다른 분류 기준이다. EXISTS는 행의 존재를, IN은 값의 포함을, ANY와 ALL은 비교의 일부·전체 성립을 판단한다. NULL과 빈 집합이 포함되면 3값 논리에 따라 결과를 확인해야 한다.
집합 연산·뷰·윈도 함수
집합 연산은 동일한 열 구조의 조회 결과를 행 방향으로 결합한다. 일반 뷰는 조회 정의를 저장하며 갱신과 보안에는 별도의 조건이 따른다. 윈도 함수는 개별 행을 유지하면서 PARTITION BY·ORDER BY·프레임을 기준으로 계산한다. UNION과 UNION ALL, RANK와 DENSE_RANK의 차이를 작은 데이터로 계산할 수 있어야 한다.
데이터베이스 구조·스키마·데이터 모델
데이터베이스는 통합·저장·운영·공용 데이터이고 DBMS는 이를 정의·조작·제어하는 소프트웨어다. 스키마는 구조와 제약의 정의이며 인스턴스는 특정 시점의 데이터다. 외부·개념·내부 스키마와 매핑을 구분하면 논리적·물리적 데이터 독립성을 판별할 수 있다. 데이터 모델은 구조·연산·제약조건으로 이루어지며 개념·논리·물리 설계를 거쳐 구현된다.
ER 모델과 관계 모델 변환
ER 모델은 업무를 개체·속성·관계와 참여 제약으로 표현한다. 관계 차수와 카디널리티, 필수·선택 참여를 구분하고 이를 관계형 스키마의 키·외래키로 변환한다. 1:N은 N쪽에 외래키를 두고 N:M은 연결 릴레이션을 만든다. 변환 뒤에는 업무 요구 누락, 식별자·관계·도메인·정규화의 적합성을 검증한다.
키와 무결성 제약조건
슈퍼키는 유일성, 후보키는 유일성과 최소성을 만족하며 기본키는 선택된 후보키다. 외래키는 참조 역할을 하는 속성으로 자식 값의 유일성을 자동 요구하지 않는다. 도메인·개체·참조·사용자 정의 무결성을 SQL 제약조건과 연결해 이해해야 한다. UNIQUE·CHECK·DEFAULT는 NULL 처리와 보장 범위가 서로 다르다.