Contents
1. 개념
2. DB 동작 방식
3. Data Models
4. Schema & State
5. Three-Schema Architecture
6. Database Language
1. 개념
1.1 Database(DB)
관련 데이터들을 구조적으로 저장하여 효율적으로 관리하기 위한 시스템
- 관련있는(같은 출처나 같은 목적·서비스에서 생성되는) 데이터들의 조직화된 집합
- 전자적으로 저장되어 관리됨
목적:
- 빠른 조회
- 데이터 중복 최소화
- 데이터 일관성 유지
1.2 Database Management System(DBMS)
DB를 정의, 생성, 관리하는 소프트웨어
예시:
- MySQL
- PostgreSQL
- Oracle Database
- Microsoft SQL Server
역할:
- 데이터 저장 및 조회
- 보안 및 권한 관리
- 무결성 유지
- 트랜잭션 처리
1.3 Metadata
데이터를 설명하는 데이터(data about data), catalog라고도 부름
- 데이터베이스를 정의하거나 기술하는 데이터
- 메타데이터 역시 DBMS로 관리된다.
예시:
- 테이블 구조
- 데이터 타입
- 제약 조건(PK, FK)
- 인덱스 정보
1.4 Database System
DB + DBMS + Application이 결합된 전체 데이터 처리 시스템
- Database라고 부르기도 한다.
구성 요소:
- Database
- 실제 데이터 저장
- DBMS
- 데이터 관리 및 제어
- Application
- 사용자 요청을 생성하고 결과를 활용
파일 시스템과의 차이점:
- 파일 시스템
- 데이터 중복 발생
- 데이터 불일치 가능
- 동시 접근 시 충돌 위험
- 권한 및 보안 관리 어려움
- 데이터베이스
- 데이터 중복 최소화
- 데이터 일관성 유지
- 동시성 제어 지원
- 권한 및 보안 관리 가능
- 트랜잭션을 통한 안정성 보장
2. DB 동작 방식

- 사용자 → 어플리케이션 요청
- 어플리케이션 → 쿼리 생성
- 쿼리: 데이터 조회·수정 요청(SQL)
- DBMS가 쿼리 해석(Parsing)
- Metadata(테이블 구조 등) 참조
- 실행 계획 생성(Query Optimization)
- Metadata 및 통계 정보 기반으로 최적화
- 인덱스 선택, 조인 순서 결정
- 실제 데이터 접근
- 결과 반환
3. Data Models
현실 세계의 정보를 데이터베이스에 저장하기 위해 단순화·추상화하여* 구조적으로 표현하는 개념적 도구
구성 요소:
- 데이터 구조
- 어떤 형태로 데이터를 표현할 것인지(Entity, Table 등)
- 관계
- 데이터 간 연결(Relationship)
- 제약 조건
- 데이터의 규칙(PK, FK, NOT NULL 등)
- 연산(CRUD)
- 데이터를 어떻게 다룰 것인지
3.1 종류
데이터 모델은 추상화 수준에 따라 다음과 같이 구분한다.
3.1.1 Conceptual(High-level) Data Models
현실 세계의 개념을 중심으로 데이터 구조를 표현하는 모델
- 추상화 수준이 가장 높음(일반 사용자들이 쉽게 이해 가능함)
- 비즈니스 요구사항을 이해하기 쉽게 표현
- DB 구현 세부사항은 고려하지 않음
구성 요소:
- Entity, Attribute, Relationship
예시:
- ER Diagram(Entity-Relationship Model)

3.1.2 Logical(Representational) Data Models
DB에 저장될 구조를 논리적으로 표현하는 모델
- Conceptual 모델을 구체화한 단계
- 테이블, 컬럼, 관계 등으로 표현
- 특정 DBMS, Storage에 종속되지 않음
예시:
- Relation Model
- 데이터를 테이블 형태로 표현, SQL 사용
- 표준화가 잘 되어 있고 성능이 안정적
- MySQL, Oracle Database, Microsoft SQL Server
- Object Model
- 데이터를 객체 단위(속성 + 메서드)로 표현
- 객체지향 구조에 적합하지만 표준/성능 문제 존재
- Object-Relation Model
- 관계형 모델에 객체 개념 일부 추가(JSON, 배열 등)
- 복잡한 데이터 구조 표현 가능
- PostgreSQL
3.1.3 Physical(Low-level) Data Models
실제 데이터가 어떻게 저장되는지를 표현하는 모델
- 컴퓨터에 데이터가 어떻게 파일 형태로 저장되는지 기술할 수 있는 수단 제공
포함 내용:
- 파일 구조
- 데이터 저장 방식
- 인덱스(access path)
- 데이터 정렬 방식
4. Schema & State
데이터베이스는 구조(schema)와 데이터(state)로 구성된다.
4.1 Database Schema
데이터베이스의 구조(설계)를 정의한 것
- 데이터 모델을 바탕으로 정의됨
- 테이블, 칼럼, 데이터 타입, 제약 조걷 등을 포함
- DB 설계 시 결정되며 자주 변경되지 않음

4.2 Database State
특정 시점에 데이터베이스에 저장된 실제 데이터
- 시간에 따라 계속 변경 됨
- snapshot이라고도 부름
5. Three-Schema Architecture
사용자(Application)와 물리적 데이터 저장 구조를 분리하기 위한 데이터베이스 Architeucture 중 하나

- 데이터베이스를 3개의 레벨로 나누어 관리
- 대부분의 DBMS가 3 level을 완벽하게 혹은 명시적으로 나누지는 않음
- 실제 데이터는 internal level에 존재
- 각 레벨마다 Schema가 존재
- 레벨 간 독립성(Data Independence) 확보 목적
- 레벨 간 연결은 mapping을 통해 이뤄짐
- 특정 레벨이 변경되었을 때 mapping만 변경하면 됨
구조:
- External Schema(View Level)
- Conceptual Schema(Logical Level)
- 초기에는 External + Internal만 존재
- 사용자별 요구가 달라 중복 구조 발생
- 이를 통합하기 위해 conceptual schema 등장
- Internal Schema(Physical Level)
5.1 External Schema(View Level)
사용자 관점에서 바라보는 데이터 구조
- user view, external view라고도 한다.
- 사용자마다 필요한 데이터만 제공
- 불필요한 데이터는 숨김(보안 + 단순화)
- Logical Data Model 기반
5.2 Conceptual Schema(Logical Level)
전체 데이터베이스의 논리적 구조 Internal Schema를 추상화한 Schema
- 모든 사용자 관점을 통합한 전체 구조
- 테이블, 관계, 제약 조건 정의
- 물리적 저장 방식은 숨김
- Logical Data Model 기반
5.3 Internal Schema(Physical Level)
실제 데이터가 저장되는 물리적 구조
- 디스크에 어떻게 저장되는지 정의
- 파일 구조, 인덱스, 접근 경로 포함
- Physical Data Model 기반
6. Database Language
데이터베이스의 구조 정의와 데이터 처리를 위한 언어
6.1 DDL(Data Definition Language)
데이터베이스 구조를 정의하는 언어
- 스키마 정의(테이블, 칼럼, 제약 조건 등)
- Conceptual Schema 중심
- 일부 DBMS에서는 Internal Schema까지 포함
CREATE,ALTER,DROP
6.2 DML(Data Manipulation Language)
데이터를 조회하고 조작하는 언어
- 데이터 추가, 삭제, 수정, 조회
SELECT,INSERT,UPDATE,DELETE
6.3 VDL(View Definition Language)
사용자 관점(View)를 정의하는 언어
- External Schema 정의
- 실제로는 DDL에 포함됨
CREATE VIEW
6.4 SDL(Storage Definition Language)
물리적 저장 구조를 정의하는 언어
- internal schema를 정의
- 현대 RDBMS에서는 거의 사용되지 않음
- 대신 DB 설정(파라미터, 인덱스 등)으로 대체
오늘날의 DBMS는 DML, VDL, DDL이 따로 존재하기 보다는 통합된 언어(SQL)로 존재한다.