포스트

1. 데이터베이스 개요

1. 데이터베이스 개요

1. 데이터베이스 개요(23.10.12)

데이터와 정보

  • 데이터 : 현실 세계로부터 단순한 관찰이나 측정을 통해서 수집된 사실이나 값
  • 정보 : 적절한 의사결정을 위한 지식으로서 유효한 데이터의 해석 또는 데이터간의 관계
  • 정보는 데이터를 처리해서 얻어진 결과 $I = P(D)$
  • 데이터에서 정보를 추출하는 방법을 데이터처리, 넓은 의미로 정보처리라고 함

데이터베이스 관리 시스템

  • DBMS(Database Management System)
  • 데이터의 방대한 집합체를 유지 관리하고 이용하는데 도움을 주도록 설계된 소프트웨어
  • 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템

데이터베이스 관리 시스템의 기능

  • 데이터 정의(Data Definition) 기능
    • 데이터 모델과 데이터베이스를 물리적 저장 장치에 저장하는데 필요한 명세 포함
    • 논리적 구조와 물리적 구조의 매핑을 명세
  • 데이터 조작(Data Manipulation) 기능
    • 사용자와 데이터베이스 사이의 인터페이스를 위한 수단 제공
    • 사용하기 쉽고 자연스러워야 하며, 명확하고 완전해야 함
    • 공용이라는 이유로 접근이나 처리가 비효율적 이어서는 안됨
  • 데이터 제어(Data Control) 기능
    • 데이터의 갱신, 삽입, 삭제 작업이 정확히 실행되며, 무결성 제공
    • 보안과 권한 검사
    • 동시 사용자에 대한 병행성 제어

데이터 모델

  • 개념적 데이터 모델
  • 논리적 데이터 모델
  • 물리적 데이터 모델

데이터 독립성

  • 외부 스키마
    • 각각의 사용자 수준에서 데이터 접근을 개별화하기 위한 권한을 부여
    • 모든 데이터를 저장하는 테이블은 하나이기 때문에 개념 스키마와 물리적 스키마도 하나이지만, 같은 물리적 스키마를 기반으로 여러 개의 외부 스키마를 만들고 서로 다른 접근 권한을 설정하여 각 사용자 또는 업무 그룹별 업무 형태에 맞는 데이터만을 사용할 수 있도록 하는 스키마
  • 논리적 스키마
    • 개념 스키마(Conceptual Schema) 는 논리적 스키마(Logical Scheme) 라고도 부르며, 해당 데이터베이스 관리 시스템의 데이터 모델이 따라 저장될 데이터를 기술하는 스키마
  • 물리적 스키마
    • 물리적 스키마는 사용할 파일 조직과 검색을 위한 인덱스 등의 보조 데이터 구조등 상세한 저장 내역을 담고 있다.
    • 물리적 스키마는 개념 스키마에 명세되어 있는 테이블들이 디스크에 어떻게 실제로 저장될 지를 요약

  • 각 추상화 단계 별로 응용 프로그램의 데이터 구성 및 저장 방식으로부터 격리
  • 논리적 데이터 독립성(Logical Data Independency)
    • 데이터의 논리적인 구조, 저장 방식/공간의 변화로부터 보호
  • 물리적 데이터 독립성(Physical Data Independency)
    • 디스크 파일 내부에서 데이터가 실제로 어떻게 배치되어 있는지 등의 정보를 감춤

데이터 베이스 질의

  • 데이터베이스로부터 정보를 얻는 방식의 쉬움 정도에 따라 데이터베이스의 가치가 좌우됨
  • 데이터를 얻기 위한 일반적인 질문(Query)의 전산학적인 구현
  • DBMS는 일반적으로 질의(Query)를 만들 수 있는 질의어(Query Language)를 제공
    • 데이터 조작어(DML: Data Manipulation Language)
    • 데이터 정의어(DDL: Data Definition Language)
    • 데이터 제어어(DCL: Data Control Language)

데이터 베이스 병행성

  • 데이터베이스에는 수 많은 사용자가 동일한 데이터에 동시 접근함
    • 각 사용자의 요구사항을 상호 독립적으로 수행
    • DBMS는 다른 사용자가 동일한 데이터에 접근하고 있다는 것을 사용자 관점에서 무시해도 되도록 동작
  • 시스템의 장애 순간에도 일관성을 유지할 수 있도록 동작
    • 장애 발생 순간에 동작에 참여중이던 데이터에 대한 일관성 유지
    • 시스템이 재시동된 후 모든 데이터를 일관성 있는 상태로 유지해야 함

Transaction

  • 분해가 불가능한 프로그램의 실행단위
  • ACID
    • Atomicity (원자성)

      관련 작업이 전부 처리되거나 아예 처리되지 않아야 함

    • Consistency(일관성)

      트랜잭션 이전과 이후에 데이터베이스의 상태는 이전과 같이 유효해야 함

    • Isolation(격리성)

      모든 트랜잭션은 다른 트랜잭션들로부터 독립되어 동작해야 함

    • Durability(지속성)

      트랜잭션이 성공적으로 수행되었다면 완료의 효과는 지속되어야 함

  • 원자성과 지속성을 위해 데이터베이스 로그(Log)와 로그 우선 기록(Write Log Ahead)을 사용
  • 격리성을 위해 잠금 규약(Locking Protocol)을 사용
  • 일관성을 위해 제약 조건(Constraint)을 사용
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.