데이터베이스를 안정적으로 설계하고 운영하려면 사용자가 바라보는 데이터의 모습, 조직 전체의 논리적 구조, 저장 장치에 기록되는 물리적 구조를 구분하여 이해해야 합니다. 스키마는 이러한 데이터베이스의 구조를 정의하며, 데이터 모델은 현실 세계의 개체·속성·관계와 데이터 조작 규칙을 데이터베이스에 표현하는 설계 도구입니다.
이 장에서는 외부·개념·내부 스키마로 구성되는 3단계 스키마 구조와 데이터 독립성을 살펴봅니다. 이어서 DDL·DML·DCL을 중심으로 데이터베이스 언어를 구분하고, 데이터베이스 관리자·응용 프로그래머·일반 사용자의 역할, 데이터 모델의 구성 요소, E-R 모델과 관계형·계층형·네트워크형·객체지향형 데이터 모델을 정리합니다.
이 장의 핵심 내용
- 스키마는 데이터베이스의 개체·속성·관계·제약조건과 같은 구조를 정의한 설계 정보입니다.
- 외부 스키마는 사용자별 관점, 개념 스키마는 데이터베이스 전체의 논리적 구조, 내부 스키마는 물리적 저장 구조를 표현합니다.
- 일반적으로 외부 스키마는 여러 개 존재할 수 있지만 개념 스키마와 내부 스키마는 데이터베이스마다 하나씩 정의합니다.
- 논리적 데이터 독립성은 개념 스키마 변경이 외부 스키마와 응용 프로그램에 미치는 영향을 줄이는 성질입니다.
- 물리적 데이터 독립성은 내부 저장 구조를 변경해도 개념 스키마와 응용 프로그램을 유지할 수 있는 성질입니다.
- DDL은 데이터 구조를 정의하고, DML은 데이터를 검색·삽입·수정·삭제하며, DCL은 사용자 권한을 제어합니다.
- DBA는 데이터베이스의 설계·권한·성능·무결성·보안·백업·복구를 관리합니다.
- 데이터 모델은 데이터 구조·연산·제약조건으로 구성됩니다.
- 개념적 데이터 모델은 현실 세계의 개체·속성·관계를 사용자 관점에서 표현하며 대표적으로 E-R 모델이 있습니다.
- E-R 다이어그램에서 개체는 사각형, 관계는 마름모, 속성은 타원, 연결은 선으로 표현합니다.
- 관계형 모델은 테이블, 계층형 모델은 트리, 네트워크형 모델은 그래프 구조로 데이터를 표현합니다.
- 객체지향형 모델은 객체·클래스·상속과 같은 객체지향 개념을 이용해 복잡한 데이터를 표현합니다.
스키마는 무엇을 정의할까?
스키마(Schema)는 데이터베이스에 어떤 데이터가 존재하고, 각 데이터가 어떤 속성과 관계를 가지며, 어떤 제약조건을 따라야 하는지를 정의한 구조 정보입니다. 실제로 저장된 개별 데이터값이 아니라 테이블·필드·관계·키·제약조건처럼 데이터베이스의 설계와 구조를 설명합니다.
| 스키마 구성 요소 | 설명 | 예시 |
|---|---|---|
| 개체 | 데이터베이스에서 관리할 대상 | 고객·상품·주문 |
| 속성 | 개체가 가지는 특징이나 데이터 항목 | 고객번호·고객명·전화번호 |
| 관계 | 개체 사이의 논리적 연결 | 고객이 주문을 생성함 |
| 데이터 형식 | 속성에 저장할 수 있는 값의 종류 | 문자·숫자·날짜 |
| 키 | 레코드 식별과 테이블 연결에 사용하는 속성 | 기본키·외래키 |
| 제약조건 | 데이터가 만족해야 하는 규칙 | 중복 금지·필수 입력·참조 무결성 |
외부·개념·내부 스키마는 어떻게 구분할까?
3단계 스키마 구조는 데이터베이스를 사용자별 관점, 전체 논리 구조, 물리적 저장 구조로 분리합니다. 각 수준 사이에는 대응 관계인 매핑이 존재하며, 한 수준의 변경이 다른 수준과 응용 프로그램에 미치는 영향을 줄여 데이터 독립성을 지원합니다.
| 스키마 수준 | 관점 | 주요 내용 | 개수 |
|---|---|---|---|
| 외부 스키마 | 개별 사용자·응용 프로그램 관점 | 사용자에게 필요한 데이터와 표현 방식만 정의하며 외부 뷰 또는 서브 스키마라고도 함 | 여러 개 가능 |
| 개념 스키마 | 조직 전체의 논리적 관점 | 전체 개체·속성·관계·제약조건·접근 권한과 무결성 규칙을 통합적으로 정의 | 하나 |
| 내부 스키마 | 저장 장치의 물리적 관점 | 레코드 형식·파일 구성·인덱스·저장 위치·접근 경로 등 실제 저장 방법을 정의 | 하나 |
외부·개념 매핑
외부 스키마의 사용자별 데이터 표현이 개념 스키마의 어떤 개체와 속성에 대응하는지를 정의합니다.
개념·내부 매핑
개념 스키마의 논리적 데이터 구조가 내부 스키마의 파일·레코드·인덱스에 어떻게 저장되는지를 정의합니다.

데이터 독립성은 무엇일까?
데이터 독립성은 한 수준의 스키마를 변경하더라도 상위 수준의 스키마와 응용 프로그램을 가능한 한 수정하지 않고 사용할 수 있는 성질입니다. 저장 기술이나 논리 구조가 바뀔 때 기존 프로그램에 미치는 영향을 줄이는 것이 목적입니다.
| 구분 | 변경 대상 | 보호할 대상 | 예시 |
|---|---|---|---|
| 논리적 데이터 독립성 | 개념 스키마 | 외부 스키마와 응용 프로그램 | 필드나 관계를 추가해도 기존 사용자 화면 유지 |
| 물리적 데이터 독립성 | 내부 스키마 | 개념·외부 스키마와 응용 프로그램 | 인덱스·파일 구성·저장 장치를 변경해도 논리 구조 유지 |
시험 포인트: 내부 스키마의 저장 방법을 변경해도 개념 스키마와 응용 프로그램에 영향을 주지 않는 성질은 물리적 데이터 독립성입니다.
데이터베이스 언어는 어떻게 구분할까?
데이터베이스 언어는 데이터베이스의 구조를 정의하고, 저장된 데이터를 검색·변경하며, 사용자의 접근 권한과 트랜잭션을 제어하는 명령 체계입니다. 자격시험에서는 주로 DDL·DML·DCL로 구분합니다.
| 언어 | 주요 목적 | 대표 명령 |
|---|---|---|
| DDL Data Definition Language | 테이블·뷰·인덱스 등 데이터베이스 개체의 구조를 생성·변경·삭제 | CREATE·ALTER·DROP·TRUNCATE |
| DML Data Manipulation Language | 저장된 데이터를 조회·삽입·수정·삭제 | SELECT·INSERT·UPDATE·DELETE |
| DCL Data Control Language | 사용자나 역할에 데이터베이스 개체 접근 권한을 부여하거나 회수 | GRANT·REVOKE |
| TCL Transaction Control Language | DML 작업으로 발생한 트랜잭션의 확정·취소·저장점을 관리 | COMMIT·ROLLBACK·SAVEPOINT |
DDL은 어떤 구조를 정의할까?
CREATE TABLE 고객 (
고객번호 INTEGER PRIMARY KEY,
고객명 VARCHAR(50) NOT NULL
);
DDL은 테이블과 필드, 데이터 형식, 키와 제약조건처럼 데이터베이스의 구조를 정의합니다. 정의 결과는 DBMS의 데이터 사전에 메타데이터로 기록됩니다.
DML은 데이터를 어떻게 조작할까?
SELECT 고객번호, 고객명
FROM 고객
WHERE 고객명 LIKE '김%';
DML은 이미 정의된 테이블의 데이터를 조회·삽입·수정·삭제합니다. 데이터 변경 작업은 트랜잭션으로 처리되며 COMMIT으로 확정하거나 ROLLBACK으로 취소할 수 있습니다.
분류 주의: 일부 DBMS 공식 문서에서는 GRANT·REVOKE를 DDL 범주에 포함하고 SELECT를 질의문으로 별도 구분하기도 합니다. 시험에서는 DDL·DML·DCL 분류를 우선 적용하되 각 명령의 실제 기능을 정확히 이해해야 합니다.
데이터베이스 사용자는 어떻게 구분할까?
데이터베이스 시스템의 사용자는 담당 역할과 데이터베이스를 다루는 방식에 따라 데이터베이스 관리자, 응용 프로그래머, 일반 사용자로 구분할 수 있습니다. 같은 조직에서도 한 사람이 여러 역할을 함께 수행할 수 있습니다.
| 사용자 | 주요 역할 | 대표 업무 |
|---|---|---|
| 데이터베이스 관리자 DBA | 데이터베이스 시스템을 구축·운영하고 전체 환경을 관리 | 스키마 정의, 권한 관리, 성능 감시, 무결성·보안, 백업·복구 |
| 응용 프로그래머 | DBMS와 연동하여 업무 기능을 제공하는 응용 프로그램을 작성 | 입력 화면·검색 기능·보고서·API와 데이터 처리 로직 개발 |
| 일반 사용자 | 응용 프로그램이나 질의 도구로 필요한 데이터를 입력·검색·활용 | 주문 입력, 고객 조회, 통계 보고서 확인 |
DBA는 어떤 업무를 담당할까?
- 조직의 데이터 요구사항을 분석하고 데이터베이스의 개념·논리·물리 구조를 결정합니다.
- 테이블·키·관계·제약조건과 데이터 표준을 정의합니다.
- 사용자 계정과 역할을 관리하고 데이터 접근 권한을 부여·회수합니다.
- 데이터 무결성과 보안을 유지하고 시스템 활동을 감시합니다.
- 인덱스·질의·메모리·저장 공간을 분석하여 성능을 조정합니다.
- 백업 정책과 장애 복구 절차를 수립하고 복원 가능성을 정기적으로 점검합니다.
- DBMS 업그레이드·패치·용량 계획과 운영 문서를 관리합니다.
데이터 모델은 무엇을 표현할까?
데이터 모델(Data Model)은 현실 세계의 대상과 규칙을 데이터베이스 구조로 표현하기 위한 개념과 도구의 집합입니다. 어떤 데이터를 저장할지뿐 아니라 데이터 사이의 관계, 허용되는 연산, 반드시 지켜야 하는 제약조건을 함께 표현합니다.
| 구성 요소 | 설명 | 예시 |
|---|---|---|
| 데이터 구조 | 개체·속성·관계 또는 테이블·레코드처럼 데이터를 조직하는 방식 | 고객과 주문의 관계 |
| 연산 | 데이터 인스턴스에 적용할 수 있는 검색·삽입·수정·삭제 등의 조작 | 조건 검색, 주문 추가 |
| 제약조건 | 데이터가 만족해야 하는 논리적 제한과 조작 규칙 | 고객번호 중복 금지, 존재하는 고객만 주문 가능 |
시험 포인트: 데이터 모델의 기본 구성 요소는 구조·연산·제약조건입니다. 출력 구조는 데이터 모델의 기본 구성 요소가 아닙니다.
데이터 모델은 어떤 종류로 구분할까?
시험 범위에서는 현실 세계를 사용자 관점에서 추상화하는 개념적 데이터 모델과, DBMS가 이해할 수 있는 구조로 표현하는 논리적 데이터 모델을 중심으로 구분합니다. 실제 설계 과정에서는 개념적 모델을 논리적 모델로 구체화한 뒤 저장 구조와 성능을 고려한 물리적 설계로 발전시킵니다.
| 구분 | 표현 관점 | 대표 모델 |
|---|---|---|
| 개념적 데이터 모델 | 현실 세계의 업무 개념과 개체·속성·관계를 DBMS와 독립적으로 표현 | E-R 모델 |
| 논리적 데이터 모델 | 데이터 구조와 관계를 특정 데이터 모델의 논리 규칙으로 표현 | 관계형·계층형·네트워크형·객체지향형 모델 |
| 물리적 데이터 모델 | 선택한 DBMS에서 구현할 테이블·열·데이터 형식·인덱스·저장 구조를 표현 | DBMS별 물리 스키마 |
개념적 모델
업무 담당자와 설계자가 데이터의 의미와 관계를 이해하도록 현실 세계를 높은 수준에서 표현합니다.
논리적 모델
개념적 구조를 테이블·트리·그래프·객체처럼 DBMS에서 구현 가능한 논리적 구조로 구체화합니다.
E-R 모델은 현실 세계를 어떻게 표현할까?
E-R 모델(Entity-Relationship Model)은 현실 세계를 개체·속성·관계로 표현하는 대표적인 개념적 데이터 모델입니다. 개체 타입과 개체 사이의 관계를 E-R 다이어그램으로 시각화하면 업무 규칙과 데이터 구조를 데이터베이스 구현 전에 검토할 수 있습니다.
| 구성 요소 | 설명 | 예시 |
|---|---|---|
| 개체 Entity | 독립적으로 식별하고 데이터를 관리할 수 있는 현실 세계의 대상 | 학생·과목·주문 |
| 속성 Attribute | 개체나 관계가 가지는 특성 | 학생의 학번·이름, 과목의 과목코드·과목명·학점 |
| 관계 Relationship | 둘 이상의 개체 사이에 존재하는 연관성 | 학생이 과목을 수강함 |
| 식별자 | 개체 인스턴스를 다른 인스턴스와 구분하는 속성 | 학생번호 |
E-R 다이어그램 기호는 어떻게 구분할까?
| 기호 | 의미 | 표현 대상 |
|---|---|---|
| 사각형 | 개체 타입 | 학생·과목 |
| 마름모 | 관계 타입 | 수강·주문 |
| 타원 | 속성 | 이름·주소·학점 |
| 밑줄이 있는 속성 | 키 속성 | 학생번호 |
| 이중 타원 | 다중값 속성 | 여러 개의 전화번호 |
| 이중 사각형 | 약한 개체 | 소유 개체 없이는 완전히 식별되지 않는 개체 |
| 실선 | 개체·관계·속성의 연결 | 학생과 수강 관계 연결 |

표기법 주의: E-R 다이어그램에는 Chen 표기법, Crow’s Foot 표기법 등 여러 방식이 있습니다. 사각형·마름모·타원을 사용하는 설명은 전통적인 Chen 표기법을 기준으로 합니다.
논리적 데이터 모델은 어떻게 구분할까?
논리적 데이터 모델은 데이터를 어떤 구조로 조직하고 관계를 어떻게 표현하는지에 따라 구분합니다. 계층형과 네트워크형은 초기 데이터베이스 시스템에서 사용된 대표 모델이고, 관계형은 현재 가장 널리 사용되는 모델입니다. 객체지향형 모델은 복잡한 객체와 사용자 정의 형식을 표현하는 데 초점을 둡니다.
| 데이터 모델 | 구조 | 관계 표현 | 주요 특징 |
|---|---|---|---|
| 관계형 모델 | 행과 열로 구성된 테이블 | 기본키와 외래키, 조인 | 구조가 단순하고 SQL을 이용한 검색·조작에 적합 |
| 계층형 모델 | 부모·자식으로 구성된 트리 | 상위 레코드와 하위 레코드의 1:N 관계 | 경로가 명확하지만 다대다 관계 표현과 구조 변경이 어려움 |
| 네트워크형 모델 | 레코드와 연결로 구성된 그래프 | 여러 부모를 허용하는 연결·집합 관계 | 다대다 관계를 직접 표현할 수 있지만 구조와 탐색 절차가 복잡 |
| 객체지향형 모델 | 속성과 동작을 포함한 객체와 클래스 | 객체 참조·상속·포함 관계 | 멀티미디어·공학 데이터처럼 복잡한 데이터 표현에 적합 |
관계형·계층형·네트워크형 모델을 비교하면?
관계형 모델
- 테이블 중심의 단순한 논리 구조
- 키와 조인으로 관계 표현
- SQL 기반의 선언적 검색·조작
- 구조 변경과 질의 작성이 비교적 유연
계층형·네트워크형 모델
- 레코드 사이의 연결 경로 중심
- 계층형은 트리, 네트워크형은 그래프 구조
- 정해진 경로의 탐색은 효율적
- 응용 프로그램이 구조와 탐색 경로에 의존하기 쉬움
시험 포인트: 데이터베이스를 테이블로 표현하는 모델은 관계형, 트리 구조로 표현하는 모델은 계층형, 그래프 구조와 오너·멤버 관계로 표현하는 모델은 네트워크형입니다.
시험에서 자주 혼동되는 개념
스키마와 인스턴스
스키마는 데이터베이스의 구조와 규칙이고, 인스턴스는 특정 시점에 실제로 저장된 데이터의 상태입니다.
외부·개념·내부 스키마
외부는 사용자별 관점, 개념은 전체 논리 구조, 내부는 파일과 저장 장치의 물리 구조를 표현합니다.
논리적·물리적 데이터 독립성
논리적 독립성은 개념 스키마 변경으로부터 외부 스키마를 보호하고, 물리적 독립성은 내부 스키마 변경으로부터 개념 스키마를 보호합니다.
DDL·DML·DCL
DDL은 구조 정의, DML은 데이터 검색·변경, DCL은 사용자 권한 부여와 회수를 담당합니다.
DBA와 응용 프로그래머
DBA는 데이터베이스 환경 전체를 운영하고, 응용 프로그래머는 DBMS를 이용하는 업무 프로그램을 작성합니다.
스키마와 데이터 모델
스키마는 특정 데이터베이스의 실제 구조 정의이고, 데이터 모델은 여러 데이터베이스를 설계할 때 사용하는 표현 개념과 규칙입니다.
개체·속성·관계
개체는 관리 대상, 속성은 개체의 특징, 관계는 개체 사이의 연관성을 의미합니다.
개념적·논리적 데이터 모델
개념적 모델은 업무 개념을 높은 수준에서 표현하고, 논리적 모델은 이를 테이블·트리·그래프·객체 구조로 구체화합니다.
계층형과 네트워크형
계층형은 각 자식이 하나의 부모를 가지는 트리 구조이고, 네트워크형은 한 레코드가 여러 상위 레코드와 연결될 수 있는 그래프 구조입니다.
관계형과 E-R 모델
E-R 모델은 개념 설계에서 개체와 관계를 표현하고, 관계형 모델은 논리 설계와 구현에서 데이터를 테이블로 표현합니다.
이번 장 핵심 요약
- 스키마는 데이터베이스의 개체·속성·관계·키·제약조건과 같은 구조를 정의합니다.
- 외부 스키마는 사용자별 데이터 표현이며 하나의 데이터베이스에 여러 개 존재할 수 있습니다.
- 개념 스키마는 데이터베이스 전체의 논리 구조를 통합적으로 정의합니다.
- 내부 스키마는 파일·레코드·인덱스·저장 위치와 같은 물리적 저장 구조를 정의합니다.
- 논리적 데이터 독립성은 개념 스키마 변경이 외부 스키마와 응용 프로그램에 미치는 영향을 줄입니다.
- 물리적 데이터 독립성은 내부 저장 구조를 변경해도 개념 스키마를 유지할 수 있게 합니다.
- DDL은 데이터베이스 개체의 구조를 생성·변경·삭제합니다.
- DML은 저장된 데이터를 검색·삽입·수정·삭제합니다.
- DCL은 사용자와 역할의 접근 권한을 부여하거나 회수합니다.
- DBA는 데이터베이스의 설계·권한·성능·무결성·보안·백업·복구를 관리합니다.
- 응용 프로그래머는 DBMS와 연동하여 사용자의 업무를 처리하는 프로그램을 작성합니다.
- 데이터 모델의 기본 구성 요소는 데이터 구조·연산·제약조건입니다.
- E-R 모델은 현실 세계를 개체·속성·관계로 표현하는 개념적 데이터 모델입니다.
- 전통적인 E-R 표기에서 개체는 사각형, 관계는 마름모, 속성은 타원으로 표현합니다.
- 관계형 데이터 모델은 데이터를 행과 열로 이루어진 테이블로 표현합니다.
- 계층형 모델은 트리 구조, 네트워크형 모델은 그래프 구조로 데이터를 표현합니다.
- 객체지향형 모델은 객체·클래스·상속을 이용해 복잡한 데이터를 표현합니다.
복습 문제
데이터베이스의 구조와 제약조건을 정의한 것은?
스키마입니다.
특정 시점에 데이터베이스에 실제로 저장된 데이터의 상태는?
인스턴스입니다.
사용자나 응용 프로그램이 접근하는 데이터의 관점을 정의하는 스키마는?
외부 스키마입니다.
데이터베이스 전체의 논리적 구조를 정의하는 스키마는?
개념 스키마입니다.
레코드 형식·파일 구성·인덱스와 저장 위치를 정의하는 스키마는?
내부 스키마입니다.
내부 저장 구조를 변경해도 개념 스키마를 유지할 수 있는 성질은?
물리적 데이터 독립성입니다.
테이블·뷰·인덱스의 구조를 생성·변경·삭제하는 언어는?
DDL입니다.
저장된 데이터를 검색·삽입·수정·삭제하는 언어는?
DML입니다.
사용자의 데이터 접근 권한을 부여하거나 회수하는 언어는?
DCL입니다.
데이터베이스의 설계·권한·성능·보안·백업·복구를 관리하는 사용자는?
데이터베이스 관리자(DBA)입니다.
데이터 모델의 기본 구성 요소 세 가지는?
데이터 구조·연산·제약조건입니다.
개체·속성·관계를 이용해 현실 세계를 표현하는 개념적 데이터 모델은?
E-R 모델입니다.
전통적인 E-R 다이어그램에서 개체·관계·속성을 각각 나타내는 기호는?
개체는 사각형, 관계는 마름모, 속성은 타원입니다.
데이터를 행과 열로 이루어진 테이블로 표현하는 모델은?
관계형 데이터 모델입니다.
데이터베이스를 부모·자식 관계의 트리 구조로 표현하는 모델은?
계층형 데이터 모델입니다.
데이터베이스를 그래프 구조와 오너·멤버 관계로 표현하는 모델은?
네트워크형 데이터 모델입니다.
객체·클래스·상속을 이용하여 복잡한 데이터를 표현하는 모델은?
객체지향형 데이터 모델입니다.
참고자료
- 학습 범위 — 사무자동화산업기사 제1과목 사무자동화 시스템, 데이터베이스의 구성과 데이터 모델
- Q-Net — 사무자동화산업기사 종목별 상세정보 및 출제기준
- IBM — 데이터베이스 스키마의 개념과 수준
- IBM — 개념적·논리적·물리적 데이터 모델링
- IBM — E-R 다이어그램의 개체·속성·관계와 기호
- Oracle Database SQL Language Reference — SQL 문장의 유형
- Oracle Database Concepts — DDL과 DML
- PostgreSQL Documentation — 데이터베이스 개체 권한
- PostgreSQL Documentation — GRANT 명령
- Oracle Database Concepts — 데이터베이스와 데이터베이스 사용자
이 글은 사무자동화산업기사 시험 범위에 포함된 스키마, 데이터 독립성, 데이터베이스 언어, 데이터베이스 사용자와 데이터 모델을 이해하고 복습할 수 있도록 재구성한 정리입니다. 외부·개념·내부 스키마는 전통적인 3단계 스키마 구조를 기준으로 설명했으며, SQL 문장의 DDL·DML·DCL·TCL 분류와 E-R 다이어그램의 기호는 교재·DBMS 제품·표기법에 따라 일부 다르게 분류되거나 표현될 수 있습니다. 실제 데이터베이스 설계와 운영에서는 사용하는 DBMS의 최신 공식 문서를 함께 확인해야 합니다.