Computer Science

[데이터베이스] #2 데이터베이스 시스템

jjjaeunn 2023. 9. 9. 16:01

데이터베이스 시스템

데이터베이스에 데이터를 저장하고, 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템

-> 정보 : 데이터를 토대로 의미있는 내용을 도출한 것

데이터베이스 시스템

스키마와 인스턴스

  • 스키마
    • 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것
    • class, definition의 개념
  • 인스턴스
    • 스키마에 따라 데이터베이스에 실제로 저장된 값
    • object, 실체화된 내용임

3단계 데이터베이스 구조

ANSI/SPARC에서 데이터베이스를 쉽게 이해하고 이용할 수 있도록 하나의 데이터베이스를 관점에 따라 세 단계로 나눔.

  • 외부 단계 : 개별 사용자 관점
    • 데이터베이스 하나에 대해 여러 개의 외부 스키마가 존재할 수 있음
    • 개별 사용자마다 필요한 데이터가 다르므로 -> 사용자마다 정의하는 외부 스키마가 다름
    • 실제로는 20개의 정보가 존재하더라도 내게 보이는 것은 10개일 수 있음 (정의하는 외부 스키마가 다르기 때문!)
  • 개념 단계 : 조직 전체의 관점
    • 데이터베이스 하나에 개념 스키마가 하나만 존재함
    • 개념 단계에서 데이터베이스 전체의 논리적 구조를 정의한 것
  • 내부 단계 : 물리적인 저장 장치의 관점
    • 데이터베이스 하나에 내부 스키마가 하나만 존재함
    • 데이터베이스를 저장 장치의 관점에서 이해함
     

스키마 사이의 대응 관계

  • 외부 / 개념 매핑 : 외부 스키마와 개념 스키마 사이의 매핑 관계
  • 개념 / 내부 매핑 : 개념 스키마와 내부 스키마 사이의 매핑 관계
  • DB를 3단계 구조로 나누고 단계별로 스키마 유지하며 스키마 사이의 대응 관계를 정의 -> 데이터 독립성의 실현

데이터 독립성 (Data Independency)

=> 하위 스키마를 변경하더라도 상위 스키마는 영향을 받지 않는 특성이다. 

 

1. 논리적 데이터 독립성

  • 개념 스키마가 변경되어도 외부 스키마는 영향을 받지 않음
  • 개념 스키마가 변경되면 관련된 외부 / 개념 매핑 내용만 수정해주면 됨

2. 물리적 데이터 독립성

  • 내부 스키마가 변경되어도 개념 스키마는 영향을 받지 않음
  • 내부 스키마가 변경되면 관련된 개념 / 내부 매핑만 수정해주면 됨

데이터 언어

  • 데이터 정의어 (DDL) -> definition
    • 스키마를 정의하거나, 수정 또는 삭제하기 위해서 사용됨
  • 데이터 조작어 (DML) -> modification
    • 데이터의 삽입 / 삭제 / 수정 / 검색 등의 처리를 요구하기 위해 사용됨
  • 데이터 제어어 (DCL) -> control
    • 내부적으로 필요한 규칙, 기법을 정의하기 위해서 사용됨

DBMS의 구성

  • 질의 처리기 (query processor)
    • 사용자의 데이터 처리 요구 해석하여 처리함
    • DDL 컴파일러, DML 컴파일러, DML 프리 컴파일러 (주황색 - DBMS request 요소), 런타임 DB 처리기, 트랜잭션 관리자 등이 포함됨.
  • 저장 데이터 관리자
    • 디스크에 저장된 DB, Dict(데이터 사전) 관리하고 접근함

예시 ) 파이썬 프로그램 -> DML 컴파일러는 이해하지 못하므로, 해당 py 파일에서 DML 프리 컴파일러가 SQL 추출을 진행함.

 


- 김연희. 『데이터베이스개론』. 한빛아카데미.