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 동작 방식

503

  1. 사용자 → 어플리케이션 요청
  2. 어플리케이션 → 쿼리 생성
    • 쿼리: 데이터 조회·수정 요청(SQL)
  3. DBMS가 쿼리 해석(Parsing)
    • Metadata(테이블 구조 등) 참조
  4. 실행 계획 생성(Query Optimization)
    • Metadata 및 통계 정보 기반으로 최적화
    • 인덱스 선택, 조인 순서 결정
  5. 실제 데이터 접근
  6. 결과 반환

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 421
    • 데이터를 테이블 형태로 표현, 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 설계 시 결정되며 자주 변경되지 않음 472

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)로 존재한다.