Supplementary Materials

1. 데이터베이스 시스템

DBS (Database System; 데이터베이스 시스템)

  • 조직에 필요한 정보를 제공하는 전체 환경이다.

DBS의 구성

  • 하드웨어
  • DB
  • DBMS
  • 데이터 모델
  • 응용 프로그램/사용자

vs. 파일 시스템

초기의 파일 시스템 방식에는 다음과 같은 문제가 있다.

  • 응용 프로그램마다 별도의 파일을 관리하면 다음 문제가 발생한다.
  • 데이터 중복성: 같은 데이터가 여러 파일에 반복 저장
  • 데이터 불일치: 한 파일만 수정하면 파일마다 값이 달라짐
  • 데이터 종속성: 파일 구조를 변경하면 프로그램도 수정해야 함
  • 동시성 제어·보안·회복 기능 부족
  • 응용 프로그램 개발과 유지보수가 어려움

DB/DBMS의 장점

  • 데이터 중복성 해결
  • 데이터 일관성 및 무결성 유지
  • 데이터 독립성 확보
  • 동시성 제어, 보안, 백업 및 회복 지원
  • 데이터 표준화
  • 응용 프로그램 개발 비용 감소

DB/DBMS의 단점

  • 도입·교육·운영 비용이 큼
  • 백업과 회복 방법이 복잡함
  • 중앙 집중 관리로 인해 장애 발생 시 전체 업무가 중단될 수 있음

따라서 응용이 매우 단순하고 변경 가능성이 작으며, 여러 사용자가 동시에 접근할 필요가 없다면 DBMS를 사용하지 않는 편이 나을 수도 있다.

데이터 모델

0. 데이터 모델

2. 데이터

데이터와 정보

  • 데이터(data): 현실에서 관찰·측정하여 수집한 사실이나 값
  • 정보(information): 의사결정에 활용할 수 있도록 데이터를 처리한 의미 있는 결과
  • 즉, 데이터는 원재료이고, 정보는 데이터를 해석·가공한 결과이다.

데이터의 형식

정형 데이터 (Structured Data)

  • 고정된 구조를 가진다.
  • 예: 관계형 데이터베이스의 테이블

반정형 데이터 (Semi-structured Data)

  • 구조 정보가 데이터 안에 포함된다.
  • 예: XML, JSON, HTML

비정형 데이터 (Unstructured Data)

  • 정해진 구조가 없다.
  • 예: 텍스트, 이미지, 신호, 음성, 영상 등

데이터베이스

DB (Database; 데이터베이스)

  • 데이터의 집합
  • 특정 조직의 여러 사용자가 공유할 수 있도록, 서로 연관된 운영 데이터(operational data)를 구조적으로 통합하여 저장한 것이다.

DB의 네 가지 핵심 성격

  1. 공유 데이터: 여러 사용자가 함께 소유하고 이용
  2. 통합 데이터: 중복과 중복으로 인한 불일치를 최소화
  3. 저장 데이터: 컴퓨터가 접근할 수 있는 매체에 저장
  4. 운영 데이터: 조직의 주요 업무 수행에 지속적으로 필요

DB의 특징

  • 실시간 접근성(real time accessibility): 사용자의 요구에 즉시 응답
  • 계속적인 변화(continuous change): 삽입·삭제·수정을 통해 최신 상태 유지
  • 동시 공유(concurrent sharing): 여러 사용자와 프로그램이 동시에 접근
  • 내용 기반 참조(reference by content): 물리적 위치가 아니라 데이터 값으로 검색

메타데이터

데이터 사전 (Data Dictionary), 시스템 카탈로그 (System Catalog)

  • 데이터베이스의 스키마 정보를 저장한다.
  • 테이블, 속성, 기본키, 무결성 조건, 제약 조건, 접근 권한 등의 메타데이터를 저장한다.

3. 구조

스키마와 인스턴스

개념의미프로그래밍 비유
물리 스키마데이터가 실제로 저장되는 구조내부 저장 방식
논리 스키마데이터베이스의 전체 논리적 구조자료형
인스턴스특정 시점에 저장된 실제 데이터변수의 현재 값

스키마 (schema), 내포 (intension)

  • 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한다.
  • 데이터베이스가 가질 수 있는 모든 가능한 상태의 틀이다.
  • 구조 자체이므로 자주 변경되지 않는다.

인스턴스 (instance), 외연 (extension)

  • 특정 시점에 실제로 저장되어 있는 데이터이다.
  • 삽입·삭제·수정에 따라 계속 변화한다.

  • EMPLOYEE(EMPNO, EMPNAME, SALARY)는 스키마이다.
  • 그 테이블에 현재 저장된 직원 행들은 인스턴스이다.

ANSI/SPARC 3단계 아키텍처

ANSI (American National Standards Institute; 미국 국립 표준 협회) SPARC (Standards Planning And Requirements Committee; 표준 기획 및 요구사항 위원회)

데이터베이스를 세 가지 관점으로 나누어 복잡성을 줄이고 데이터 독립성을 확보하는 구조다. 데이터 독립성은 상위 단계의 스키마나 응용 프로그램에 영향을 주지 않고 하위 단계의 구조를 변경할 수 있는 성질이다.

단계관점스키마 수내용
외부 단계개별 사용자여러 개사용자에게 필요한 데이터만 보여주는 뷰
개념 단계조직 전체1개전체 논리 구조, 관계, 제약조건, 보안 정책
내부 단계저장 장치1개레코드 구조, 필드 크기, 접근 경로 등 물리 구조

사용자 질의는 보통 다음 방향으로 변환된다.

외부 스키마 → 개념 스키마 → 내부 스키마 → 저장 데이터

외부 단계 (External Level), 뷰 단계

외부 스키마 (External Schema), 서브 스키마

  • 각 사용자가 어떻게 데이터베이스를 보는가를 기술한다. (개념 단계를 보는 관점)
  • 동일한 개념 단계로부터 다수의 서로 다른 뷰가 제공될 수 있다.

개념 단계 (Conceptual Level), 논리적 단계

외부/개념 사상 (External/Conceptual Mapping)

  • 외부 스키마와 개념 스키마 간의 대응 관계를 정의한다.
  • 논리적 데이터 독립성(Logical Data Independence)을 제공한다.
    • 개념 스키마가 수정되어도 외부 스키마에 영향을 주지 않음
    • 예: 전체 테이블에 새로운 속성을 추가해도 기존 사용자 화면은 그대로 사용
    • 개념 구조 변경으로부터 사용자 뷰 보호

개념 스키마 (Conceptual Schema), 논리 스키마

  • 데이터베이스의 논리적 구조(어떤 데이터가 저장되어 있으며, 어떤 관계가 존재하고, 어떤 무결성 제약조건이 명시되어 있는가)를 기술한다.
  • 데이터베이스마다 오직 한 개의 개념 단계/개념 스키마가 존재한다.

내부 단계 (Internal Level), 물리적 단계

개념/내부 사상 (Conceptual/Internal Mapping)

  • 개념 스키마와 내부 스키마 간의 대응 관계를 정의한다.
  • 물리적 데이터 독립성(Physical Data Independence)을 제공한다.
    • 내부 스키마가 수정되어도 개념·외부 스키마에 영향을 주지 않음
    • 예: 파일 저장 방식을 변경하거나 인덱스를 생성·삭제해도 응용 프로그램은 그대로 사용
    • 저장 구조 변경으로부터 논리 구조와 프로그램 보호

내부 스키마 (Internal Schema), 물리 스키마

  • 데이터베이스에 어떤 데이터가 어떻게 저장되어 있는가(인덱스, 해싱 등과 같은 접근 경로, 데이터 압축 등)를 기술한다.
  • 이 단계에서는 효율성을 가장 중요하게 고려하며, 효율적인 데이터베이스를 제공하기 위한 저장 구조가 선택된다.

4. DBMS

DBMS (Database Management System; 데이터베이스 관리 시스템)

  • 데이터베이스를 관리하는 시스템
  • 데이터베이스를 정의·생성하고, 사용자의 질의를 처리하며, 데이터 접근과 공유를 관리하는 소프트웨어 패키지다.
  • 데이터의 저장 방식과 접근 패턴에 따라 다양한 DBMS가 존재한다.

DBMS의 기본 기능

  1. 정의 기능: 데이터베이스의 스키마(구조) 정의
  2. 조작 기능: 데이터의 연산 (삽입·검색·수정·삭제)
    • CRUD (Create, Read, Update, Delete)
  3. 제어 기능: 데이터의 일관성, 독립성, 무결성과 동시성 제어, 보안, 회복 관리

데이터베이스 언어

1.1. 질의 언어의 종류

(1) DDL

DDL (Data Definition Language; 데이터 정의어)

  • 스키마와 데이터 구조를 생성·변경·삭제한다.

    • CREATE TABLE: 테이블 생성
    • ALTER TABLE: 테이블 구조 변경
    • DROP TABLE: 테이블 삭제
    • CREATE INDEX: 인덱스 생성
    • TRUNCATE
  • DDL로 정의된 구조는 시스템 카탈로그에 기록된다.

(2) DML

DML (Data Manipulation Language; 데이터 조작어)

  • 실제 데이터를 삽입·검색·수정·삭제한다.
  • INSERT ... INTO: 삽입
  • SELECT ... FROM: 검색 - 데이터 질의어(DQL)
  • UPDATE ... SET: 수정
  • DELETE ... FROM: 삭제

(3) DCL

DCL (Data Control Language; 데이터 제어어)

  • 무결성·보안·회복·동시성 제어를 위한 명령이다.
  • GRANT ... TO, REVOKE ... FROM: 사용자 권한 부여 및 취소
  • COMMIT
  • ROLLBACK
  • SET TRANSACTION

TCL (Transaction Control Language; 트랜잭션 제어어)

  • 예: COMMIT, ROLLBACK

인터페이스

DB와 응용 프로그램을 연결하는 표준 인터페이스이다.

ODBC (Open Database Connectivity)

  • 여러 종류의 DBMS에 접근하기 위한 범용 API

JDBC (Java Database Connectivity)

  • Java 프로그램에서 데이터베이스에 접근하기 위한 API

구성요소

DDL 컴파일러

  • DDL 명령을 처리
  • 테이블을 생성
  • 테이블 명세를 시스템 카탈로그에 저장

질의 처리기

  • DML 질의를 분석
  • 가장 효율적인 실행 방법을 선택
  • 실행 가능한 내부 코드로 변환

런타임 DB 관리기

  • 디스크에 저장된 실제 데이터베이스에 접근
  • 질의 처리기의 실행 요청을 수행

트랜잭션 관리기

  • 동시성 제어: 여러 사용자의 동시 접근을 안전하게 처리
  • 회복: 장애가 발생해도 데이터 일관성을 유지

5. 데이터베이스 사용자

오퍼레이터 (Operator)

  • DBMS가 실행되는 컴퓨터 시스템과 전산실을 관리한다.

데이터베이스 설계자 (Database Designer)

  • CASE(Computer-aided Software Engineering) 도구 등을 이용해 데이터베이스를 설계하고, 일관성을 높이기 위해 정규화를 수행한다.

데이터베이스 관리자 (DBA; Database Administrator)

  • 데이터베이스 시스템의 설계·구현·운영·유지보수를 총괄한다.
    • 스키마 생성과 변경
    • 무결성 제약조건 정의
    • 사용자 권한과 역할 관리
    • 저장 구조와 접근 방법 정의
    • 성능 감시와 분석
    • 백업과 회복
    • 표준화 시행

응용 프로그래머 (Application Programmer)

  • 프로그래밍 언어와 SQL을 사용하여 사용자 인터페이스와 데이터 처리 로직을 개발한다.

최종 사용자 (End User)

  • 데이터를 검색·삽입·삭제·수정하거나 보고서를 생성한다.