Computer Science/데이터베이스

데이터 베이스 Introduction

Jinhwan 2022. 3. 28. 13:46

목차

  1. DataBaseSystem이란?
  2. Database System은 필요성과 요구사항
  3. DBMS의 구성요소는?
  4. DBMS의 구조와 사용자 종류

Data Base System이란?

데이터 베이스 시스템 = 데이터 베이스 + 데이터 베이스 관리 소프트웨어

로 구성된다고 이야기할 수 있다.

전체적인 구조도는 다음과 같다.


DBMS는 왜 필요한가?(기존 파일 시스템의 문제)

1. 데이터 추상화의 어려움 & 종속성 문제

  • 기존의 파일 시스템은 OS로 인해 관리된다.
  • 이로 인해 특정 데이터를 찾기 위해서는 이러한 파일 시스템의 구조도를 바탕으로 데이터의 위치를 명시 해줘야했다.
  • 이는 사용자가 프로그램을 짤 때 자기가 사용하고자 하는 파일 시스템의 물리적 구조도를 명시해줘야한다는 단점을 내포하게 된다.
    • 이는 사용자가 만드는 프로그램이 데이터베이스의 물리적 구조와 결합도가 커지는 문제가 생기게 된다는 단점을 내포하게 된다.
    • 따라서 데이터 베이스의 물리적 구조의 변경이 사용자의 프로그램에 많은 영향을 미칠 수 밖에 없게 된다.
  • 또한 데이터 베이스 관리자는 자신의 데이터 베이스의 구조도를 사용자에게 숨기기 어렵다는 단점을 내포하게 된다.

→ 데이터 추상화가 가능해져야한다.

2. 데이터 중복성 및 무결성 문제

  • 파일에 같은 정보가 복수개 들어가는 것을 방지 할 수 없다.
  • 이는 데이터의 일관성을 해치게 만들고 공간을 낭비하게 된다.
  • 이와 비슷하게 데이터를 저장할 때 해당 데이터의 속성에 맞지 않는 데이터가 들어가는 것을 방지하지 못한다.
    • 자료형 문제, 범위 문제, 고유성 문제

→ 저장장치에 데이터 베이스를 생성하고 관리할 수 있어야한다.

3. 접근 관리 문제

  • 많은 사용자가 데이터 베이스에 접근하려고 할 때 이를 관리할 수 없다.
  • 이러한 동시성 제어 등이 빠지게 되면 데이터의 일관성을 해치게 된다.

→ 많은 사용자에게 데이터를 공유 시킬 수 있어야한다.

→ 트랜잭션 관리를 해야한다.(동시성 제어)

4. 데이터 복구 문제

  • 시스템 fail로 인해 데이터 베이스의 데이터의 일관성을 해치게 될 수 있다.
  • 기존의 OS로는 이러한 상황에 대한 완벽한 복구는 사실상 불가능 하기 때문에 문제가 발생한다.

→ System fail로 부터 복구를 할 수 있어야한다.

5. Query 처리 문제

  • 특정 데이터를 찾기 위한 query에 대해 OS가 최적화 되어있지 않다.
  • 이런 문제로 여러 데이터, 복잡한 데이터를 찾을 때 오랜 시간이 걸릴 수 밖에 없게 되는 문제가 존재하게 된다.

→ 데이터 베이스에서 검색이나 업데이트를 위한 query 언어가 필요하다.

→ 이러한 쿼리에 대한 최적화가 진행되어야한다.

6. 데이터 보안 문제

  • 사용자에 따라 데이터의 접근 권한을 관리해줘야한다.
  • 기존의 OS가 이러한 문제까지 관리하는 것은 현실적으로 불가능해진다.

→ 다양한 인터페이스를 사용자의 종류에 맞게 제공할 수 있어야한다.


데이터 베이스의 구성 요소

Database = Schema + Instance

  • Database Schema
    • 데이터 베이스의 구조와 제약을 설명한다.
    • 데이터 베이스의 설계 당시 상세화가 되어야한다.
    • 바뀌지 않는다.
  • Database Instance
    • 데이터 베이스의 내용
    • 동적으로 바뀔 수 있다.

Database Catalog

데이터 베이스의 설명을 담고 있는 곳으로 meta-data로도 불리게 된다.

이는 DBMS와 데이터 베이스의 구조도를 알고 싶은 사용자에게 제공된다.

Database Query Language의 종류

  • DDL(Data Definition Language)
    • Schema, table, view등을 결정한다.
    • CREATE, DROP, ALTER
  • DML(Data Manipulation Language)
    • Database Instance들을 검색하고 수정할 때 사용한다.
    • SELECT, INSERT, DELETE, UPDATE

ANSI : 3-Schema Architecture

  • 다중 사용자의 view를 만족하기 위해 application program과 physical database가 분리되어있다.
  • 따라서 각 계층 사이에는 이들을 연결시켜주는 mapping이 필요하다.

About

Physical schema(internal schema)

  • 데이터 베이스의 내부 구조를 묘사한다.
  • ex) Customer 테이블 데이터는 이진트리로 저장되어있다.

Conceptual schema

  • 사용자별 데이터 베이스의 개념적 구조도를 묘사한다.
  • ex) Customers : {cid, cname, age}

External schemas(=Views)

  • 특정 사용자의 요구에 맞게 데이터가 추출되서 묘사되는 것
  • ex) 성인 손님들

데이터 독립성

특정 계층의 변화가 상위 계층에 영향을 안 미치는 것을 데이터의 독립성이라고 한다.

  • Logical Independence
    • conceptual schema가 변경되어도 이를 활용하는 external schema는 달라지지 않는 것을 의미한다.
  • Physical Independence
    • physical schema가 변경되어도 이를 활용하는 conceptual schema가 변화되지 않는 것을 의미한다.

데이터 베이스 사용자 class

  • Database Administrator
  • Database Designer
  • Application Programmer
  • Casual end user
  • Naive end user

해당 내용은 성균관대학교 김응모 교수님 데이터 베이스 개론 수업을 듣고 정리한 것입니다.


긴 글 읽어주셔서 감사합니다.

 

틀린 부분이 있으면 댓글을 달아주시면 감사하겠습니다.

 

📧 : may3210@g.skku.edu

🔗 : https://github.com/RicardoKim