[데이터베이스] 2. 데이터베이스 관리 시스템(DBMS) 이란?

파일을 이용한 데이터 처리


  • 데이터의 중복
  • 응용 프로그램이 기대하는 물리적 구조

 

파일을 이용한 데이터 처리의 문제

  • 파일을 여러 군데 사용하는 경우 파일의 포맷이 다르므로 특정 프로그램만 읽을 수 있음
  • 동일한 데이터를 나타내는 필드, 타입, 길이 등이 다를 수 있음

 

1. 데이터 종속성(Data Dependency)

  • 파일의 내부 구조에 응용 프로그램이 영향을 받게 됨
  • 데이터의 구조나 접근방법이 변경된다면, 관련 응용프로그램의 구조도 변경되어야 함

2. 데이터 중복성(Data Redundancy)

  • 동일한 내용의 데이터가 중복해서 관리됨
  • 데이터 중복으로 인한 문제점
    • 데이터 일관성(data consistency) 상실 → 똑같은 데이터인데 서로 맞지 않음 ex) 이름은 같은데 전화번호가 다른 경우
    • 보안성(data security) 취약 → 암호가 있는 파일도 있고 없는 파일도 존재
    • 경제성 취약
    • 데이터 무결성(data integrity=결함이 없다) 취약 → ex) 나이가 -1인 경우 ⇒ 실수로 잘못 표기했는데 코드를 잘못짜서 그대로 남은 경우, 컴퓨터가 갑자기 동작을 멈춘 경우

 

DBMS의 적용


→ 파일시스템과는 달리 데이터베이스를 통해 동시에 쓰일 때 데이터베이스 관리 시스템을 통해서 관리해줌

  • DBMS의 필수 기능
    1. 데이터 정의(Data Definition) 기능 : 사용할 데이터의 구조를 정의할 수 있어야 함
    2. 데이터 조작(Data Manipulation) 기능 : 데이터의 검색, 삽입, 삭제, 갱신 (언어도 가능)
    3. 데이터 제어(Data Control) 기능 : 데이터 무결성 (Data Integrity) 유지 기능→ 데이터는 무조건 양수여야 함, 음수 들어오면 자동으로 막아줌, 권한(Authority)과 보안(Security) 기능, 동시사용에 따른 병행 제어 가능
  • DBMS의 장점
    1. 데이터 중복 최소화
    2. 데이터의 공유 사용 → 동시에 쓰게 해줌
    3. 데이터 무결성 유지
    4. 데이터의 보안 보장
    5. 조직 내 데이터의 표준화
    6. 데이터 요구의 조정
  • DBMS의 단점
    1. 운영비 증대
    2. 특정 응용 프로그램의 복잡화 → 알고리즘은 간단한데 자료구조가 복잡해지는 경우
    3. 복잡한 백업과 회복
    4. 시스템 취약성 → DBMS 장애가 발생하면 업무를 중단해야 함

 

데이터 독립성(Data Independency)


  • 데이터베이스의 논리적 또는 물리적 구조가 변경되더라도 응용프로그램이 영향을 받지 않게 함
    • 논리적 데이터 독립성 (Logical DI) ⇒ 학번, 이름을 바꿔도 상관 없음
    • 물리적 데이터 독립성 (Physical DI) ⇒ 디스크의 위치 바꿔도, 즉 list에서 array로 변경해도 영향을 받지 않으므로 수정하지 않아도 됨
  • 각 데이터 구조 간에 사상(Mapping) 기능이 필요

 

데이터 구조 간의 사상과 데이터 독립성


사상이란?

어느 한 응용 프로그램에 DBMS를 통해서 데이터베이스에 접근할려고 할 때 DBMS는 이 3단계 스키마에 있는 모든 개체와 속성 간의 대응 관계를 알아야만 지원할 수 있는데, 이러한 대응 관계에 대한 정의를 사상이라고 함

DBMS가 궁극적으로 추구하는 데이터 독립성을 구현하는 방법

예) 개념 스키마에 변화가 생기면 그 변화에 따라 이 사상만 올바르게 변경시켜주면, 외부 스키마에는 아무런 영향을 미치지 않게 되므로 논리적 데이터 독립성을 제공해 주는 것임

 

DBMS의 발전사


  • 초창기 DBMS 없이 파일만을 사용하여 데이터 처리

1. 1960년대

  • 계층형 및 네트웤 DBMS 등장
    • 계층 또는 네트워크 데이터 모델
      • 데이터를 더 쉽게 찾고 처리하기 위해서 사용함
      • 60년대 말 ~
      • Bachman, 1972 Turing Award
    • 원동력
      • Random Access Disk 기술
      • 온라인 처리 방식
    • CODASYL / DBTS 그룹 활동
      • DOBOL + DB
    • DBMS 예
      • IDS, IDMS, IMS 등

2. 1970년대

  • 관계 DBMS 등장 → 현재까지 쓰고 있음
    • 데이터들을 테이블 형태로 구조화하고, 그 관계를 외래키를 사용해서 정의함
  • SQL (Structured Query Language)
    • 선언적 데이터 조작 (Declarative) ↔ 절차적 (Procedural)
    • DBMS에 접근하는 것을 명시함
  • 데이터 독립성
  • → 물리적, 논리적 독립성
  • 단순하지만 우아함!
  • 초기 관계형 데이터베이스 시스템들
    • System/R(IBM)
    • INGRES(U.C Berkeley)
  • 주요 RDBMS 회사들
  • IBM, DEC, Oracle, Gupta, etc.

3. 1980년대 말 - 90년대 등장 : 객체지향 DBMS

 

4. 1990년대 말 - : 객체관계 DBMS → 오라클 DB2 상용 DBMS (클래스 기능도 제공)

 

5. 2000년대 이후 : XML DBMS, No-SQL DBMS

 

  • 컴퓨터공학 & 여성 인력
    • 컴퓨터공학 → 컴퓨터가 나오기 전까지는 직접 계산하였음
    • 여자를 인간 컴퓨터라고 부르며, 컴퓨터 산업의 개척자 중 상당수가 여성임 → 컴퓨터를 실제로 작동시키는 여성을 여성 컴퓨터로 부름
  • 파일 시스템을 이용한 데이터 처리의 경우
    • 1960년대 등장 ~ 현재까지 → 테이프를 이용한 자료 처리를 했고, 일괄처리 방식이였음
  • 질의문 예
    • 절차적 조작어 ⇒ 데이터를 찾는 모든 과정을 조작한다.

 

객체지향 DBMS


  • 1980년대 등장
  • 객체 모델에 기반하여 정보의 저장 및 검색을 지원해주는 데이터베이스 → 데이터를 객체 단위로 구조화함
  • 데이터들 간의 관계가 복잡할 때 공통된 데이터를 객체로 묶어서 표현하고 이들 간의 관계를 데이터베이스에 반영
  • 컴퓨터의 응용분야 확대(80년대 이후)
    • CAD, CAM, SE, AI
    • 응용 프로그램에서 사용하는 데이터 구조 복잡, 다양
    • 메모리 상의 데이터가 데이터베이스에 그대로 저장되었으면…
  • 객체지향 데이터모델 지원
  • OO Languages + DB capabilities
    • ODMG93(ODMG)
    • 순수 객체지향 DBMS
    • O2(Ardent), Objectivity, ObjectStore, GemStone, Itasca, POET(XML), SOP
  • 개념

→ 301 빌딩에서 일하고 있는 모든 학생들을 찾을려고 할 때

select s from s in Student
where s.dept.location.BNo=301
  • 쉽게 생각하면, 공통된 객체 데이터들이 꼬리물기로 연관되어 있다는 것
  • 반면에 관계형데이터베이스는 릴레이션에 관련된 데이터들을 테이블에 정형화하고 관계를 표현할 때는 참조 키를 사용함

 

객체-관계형 DBMS


  • 1990년대 : 객체-관계형 데이터모델
  • 원동력 : 관계형 DBMS의 시장 장악력, 안전성
  • RDB + Object Orientated Concepts → ORDB
  • SQL3(ISO-ANSI standard, X3H2)
  • 객체/관계형 DBMS : DB2, Oracle11g
  • Object Mapping Over RDB(Persistency, Sybase, IBM SMRC)
  • O-R (Object - Relational) Mapping

  • 객체-관계 매핑
    • 객체 지향 프로그램에서 사용되는 객체라는 개념을 구현한 클래스와 관계형 데이터베이스에서 사용되는 테이블을 자동으로 연결하는 것