본문 바로가기
Database

데이터베이스 시스템

by creatingeveryday 2023. 4. 15.

데이터베이스 시스템(DBMS)

데이터베이스 시스템의 목적

  • 데이터베이스에 정보를 저장하고 이를 검색하기 위한 편리하고도 효율적인 환경을 제공
  • 데이터의 중복과 비일관성 해소
  • 데이터 접근의 어려움 해소
  • 데이터 고립 문제 해결
  • 무결성 문제 해결
  • 원자성 보장
  • 동시접근의 문제 해결
  • 보안 문제 해결

데이터 추상화

  • 데이터베이스 시스템은 여러 단계의 데이터 추상화를 통해 데이터를 효율적으로 처리하기 위한 복잡한 구조를 감추어 사용자의 이해와 편의를 돕는다.
  • 물리적 단계
    • 데이터가 실제로 어떻게 저장되는지 기술한다.
    • 복잡한 하위 단계의 데이터 구조가 상세히 기술된다.
  • 논리적 단계
    • 어떤 데이터가 저장되었는지 그리고 데이터들 사이에는 어떤 관계가 있는지를 기술한다.
    • 논리적 단계의 사용자는 복잡한 물리적 구조의 단계에 대해 알 필요가 없다.(물리적 데이터 독립성)
  • 뷰 단계
    • 추상화의 최상위 단계
    • 사용자는 데이터베이스에 저장된 모든 데이터에 관심이 있는 것이 아니라 극히 일부분에만 관심이 있다.

인스턴스와 스키마

  • 인스턴스
    • 어느 특정한 순간의 데이터베이스에 저장되어 있는 정보의 모임
  • 스키마
    • 데이터베이스의 전체적인 설계의 관점에서 이야기할때 사용
    • 응용프로그램은 논리적 스키마에 기반하여 작성되기 때문에 논리적 스키마 아래에 감춰져 있는 물리적 스키마를 쉽게 변경할 수 있다.(물리적 데이터 독립성)

데이터베이스 언어

  • DDL
    • 데이터 정의 언어
    • 데이터베이스 스키마를 기술한다.
    • 일관성을 위해 무결성 제약 조건을 기술할 수 있다.
      • 도메인 제약 조건
      • 참조 무결성
      • 권한
  • DML
    • 사용자가 적절한 데이터 모델로 구성된 데이터게 접근하거나 이것을 조작할 수 있도록하는 언어
    • 검색, 삽입, 삭제, 수정
    • 절차적 DML
      • 어떤 데이터가 필요하며 그 데이터를 어떻게 구할지 지정할 것을 요구한다.
    • 선언적 DML
      • 어떠한 데이터가 필요한지만 지정할 것을 요구한다. 구하는 방법은 데이터베이스 시스템이 스스로 추론해야 한다.
      • SQL DML

데이터베이스 엔진

  • 데이터베이스 시스템은 여러 모듈로 구성되며, 각 모듈은 데이터베이스의 여러 책무를 나누어 맡는다.
  • 저장장치 관리자(storage manager)
    • 데이터베이스 시스템은 디스크와 메인 메모리 사이의 데이터 이동이 최소화되도록 데이터를 구조화한다.
    • 구성요소
      • 권한과 무결성 관리자
        • 무결성 제약 조건을 만족하는지 검사
        • 데이터에 접근하는 사용자의 권한을 확인
      • 트랜잭션 관리자
        • 동시에 실행되는 트랜잭션들이 충돌 없이 잘 수행되도록 보장
        • 시스템에 고장이 발생해도 데이터베이스가 일관성 있는 정확한 상태를 유지하도록 보장
      • 파일 관리자
        • 디스크 공간의 할당과 디스크상에 저장된 정보 표현을 위해 자료 구조를 관리한다.
      • 버퍼 관리자
        • 디스크로부터 메인메모리로 데이터를 인출하는 과정과 메인 메모리에서 캐시로 보낼 데이터를 결정
        • 메인 메모리보다 훨씬 큰 데이터베이스 내의 데이터를 메인 메모리에서 처리 가능하게 하는 역할
    • 저장 장치 관리자가 구현하는 데이터 구조
      • 데이터 파일
        • 데이터 베이스 자체를 저장
      • 데이터 사전
        • 데이터베이스의 구조에 관한 메타데이터를 저장
        • 데이터베이스의 스키마를 저장
      • 인덱스
        • 데이터베이스 인덱스는 특정한 값을 가지는 데이터 항목을 지정하는 포인터를 제공한다.
  • 질의 처리기(query processor)
    • 데이터베이스가 데이터에 접근하는 과정을 단순화하고 효율적으로 만드는 역할
    • 우리가 논리적 단계에서 비절차적인 SQL 언어로 작성된 갱신 요구와 질의를 물리적 단계의 효율적인 일련의 연산으로 변환한다.
    • 구성요소
      • DDL 인터프리터
        • DDL 문을 해독하여 데이터 사전 내에 기록한다.
      • DML 컴파일러
        • 질의어 내의 DML문을 질의 평가 엔진이 이해할 수 있는 하위 단계 명령어로 구성된 질의 평가 계획으로 바꾼다.
        • 질의 최적화(query optimization)
          • 여러 질의 평가 계획 중 가장 낮은 비용의 계획을 선택하는 것
      • 질의 평가 엔진
        • DML 컴파일러가 생성한 하위 단계 명령을 실행한다.

1. 관계형 언어

1-1. 관계형 모델

관계형 데이터베이스의 구조

  • 관계형 데이터베이스는 테이블의 모임으로 구성된다.
  • 테이블
    • 테이블의 각 행은 일련의 값 사이의 관계를 표현
    • 테이블은 릴레이션(relation)을 의미
    • 튜플은 테이블의 행을 의미
    • 속성은 테이블의 열을 의미
  • 릴레이션은 튜플의 집합이기 떄문에 릴레이션에서 튜플이 어떤 순서로 나타나는지는 상관없다.
  • 릴레이션의 각 속성은 도메인이라고 하는 허가된 값의 집합을 가지고 있다.
  • 모든 릴레이션 r에 대해서 r의 모든 속성의 도메인은 원자적이어야 한다. 도메인의 요소가 더 이상 나뉠 수 없는 단위라는 것을 의미한다.
  • null 값은 알려지지 않거나 존재하지 않는 값을 의미하는 특별한 값이다.

데이터베이스 스키마(schema)

  • 스키마
    • 데이터베이스의 논리적 설계
  • 인스턴스
    • 어떤 한순간에 데이터베이스에 저장되어있는 데이터의 스냅샷

  • 슈퍼키(super key )
    • 한 릴레이션에서 그 튜플을 유일하게 식별할 수 있도록 해주는 하나 혹은 그 이상의 속성들의 집합
  • 후보키
    • 수퍼 키의 부분 집합이 수퍼 키가 아닌 경우에 최소한의 수퍼 키를 후보키라고 한다.
  • 주 키(primary key)
    • 릴레이션 안에서 튜플을 구별하기 위한 수단으로 데이터베이스 설계자에 의해 선택된 후보키
    • 데이터 모델링시 제약 조건을 나타내기 위해 주 키 제약조건을 갖는다.
      • 릴레이션의 어떠한 튜플도 동시에 키 속성에 대해 같은 값을 가질 수 없다
      • 키로 지정된 하나 이상의 속성 값이 모든 튜플에서 고유하게 식별되어야 하기 때문에 어떠한 튜플도 동일한 키 속성을 가지지 않도록 해야 한다.
      • 데이터베이스의 일관성과 무결성을 유지하고 중복데이터를 방지할 수 있다.
    • 주 키는 그 속성이 절대로 변하지 않거나 매우 드물게 변하도록 신중하게 선택해야 한다.
  • 외래키(foreign key)
    • 데이터베이스에서 한 테이블의 속성이 다른 테이블의 기본키나 유니크 키를 참조하는 열이다.
    • 다른 테이블의 키를 참조하기 위한 열
    • 외래키 제약 조건
      • 한 테이블의 데이터를 다른 테이블의 데이터와 연결시켜 주는 데 사용
      • 두 테이블 간의 관계를 정의하고 데이터의 일관성과 무결성을 유지할 수 있게 한다.
      • 외래키 제약 조건은 참조되는 속성이 참조된 릴레이션의 주 키를 구성하기 때문에 참조 무결성 제약조건의 특별한 경우라고 볼 수 있다.
      • 참조 무결성 제약 조건은 참조되는 테이블의 데이터를 변경하거나 삭제할 때, 참조되는 테이블의 데이터 일관성이 유지되도록 보장

'Database' 카테고리의 다른 글

DBMS 버퍼 관리  (0) 2023.05.27
디스크 공간 관리 모듈  (0) 2023.05.08
DBMS 아키텍처  (0) 2023.05.06
SQL  (0) 2023.04.22

댓글