본문 바로가기
Computer Science/DataBase

[데이터베이스] 1장 데이터베이스 시스템 (1)

by na1-4an 2023. 9. 23.

1-0 서론

1. 데이터 베이스란?

: 조직체의 응용 시스템들이 공유하는 운영 데이터들이 구조적으로 통합된 모임.

2. 데이터 베이스의 특징(5)

  • 여러 사용자가 동시에 사용
  • 증복을 최소화하며 통합됨
  • 데이터에 관한 설명까지 포함.(데이터베이서 스키마 or 메타데이터)
  • 프로그램과 데이터 간의 독립성 제공
  • 효율적 접근과 질의가 가능

3. 데이터 베이스 시스템이란?

(Database System): db 정의, 질의어 지원, 리포트 생성 등을 수행하는 소프트웨어

 

1-1 데이터베이스 시스템 개요

1. 데이터 베이스 스키마와 상태

  데이터베이스 스키마 데이터베이스 상태
의미 데이터베이스의 전체적인 구조.
데이터베이스의 모든 가능한 상태를 미리 정의.
특정 시점의 데이터베이스 내용.
변경 자주 변경 X 시간이 지남에 따라 계속 바뀜.
별칭 내포(intension)라고 부름 외연(extension)이라고 부름

외래키: 서로 다른 테이블을 연결하는데에 사용

2. 데이터베이스 시스템(DBS) 구성요소(4)

    (1) 데이터베이스

        - 데이터베이스 구성요소(2): 이터베이스(데이터 자체),  시스템 카탈로그(= 데이터 베이스 스키마)

    (2) 사용자(응용 프로그램)

    (3) DBMS

        - 정의: 여러 작업을 제공하는 소프트웨어 패키지.(db 생성, 구조 명시, 동시접근제어/ 데이터 질의, 수정, 보호)

        - 데이터베이스 언어를 한 개 이상 제공(SQL은 DBMS에서 제공되는 사실상의 표준 데이터 베이스 언어)

운영체제와 DBMS는 매우 밀접!

    (4) 하드웨어

        - 데이터베이스는 보조기억장치(디스크)에 저장됨

        - DBMS에서 원하는 정보를 찾기위해 주기억장치(RAM)로 읽어야함. DBMS 자체도 주기억장치에 있어야함.

        - 계산이나 비교 연산을 수행하기 위해 중앙처리장치(CPU)가 사용됨.

3. 데이터베이스 시스템의 요구사항(9)

  • 데이터 독립성
  • 효율적인 데이터 접근
  • 데이터 동시 접근
  • 백업과 회복
  • 중복 최소화 및 일관성 유지
  • 데이터 무결성
  • 데이터 보안
  • 쉬운 질의어
  • 다양한 사용자 인터페이스

 

1-2 화일 시스템 vs. DBMS

1. 화일 시스템의 데이터 관리

  - 역사: DBMS 등장 전인 1960년대 부터 사용됨.  

  - 기본 구성요소: 순차적인 레코드(레코드: 연관된필드들의 모임)

  - 특징: 응용 프로그램으로부터의 독립성이 약함.(화일 접근 방식이 응용 프로그램 내에 상세히 표현됨)

Employee화일에 필드를 주가하려면 레코드들을 하나씩읽어 화일에 기록하는 프로그램을 작성해야함. 그 뒤 Employee 화일을 사용하는 모든 응용프로그램을 찾아 필드를 추가하고 다시 컴파일해야함.

2. 화일 시스템의 단점(8)

  • 데이터가 많은 화일에 중복 저장됨.
  • 동시성 제어 제공 X
  • 보안 미흡
  • 회복 기능 X
  • 프로그램-데이터 독립성X → 유지보수 비용↑
  • 프로그래머의 생산성이 낮음.(화일 검색, 갱신 절차 복잡)
  • 데이터 공유와 융통성 부족

하나를 수정하면 데이터 불일치가 발생하니 두 화일에서 모두 수정해야함.

3. DBMS의 데이터 관리(7)

  • 다수 사용자가 데이터베이스 공유
  • DBMS가 인덱스 등의 접근 경로를 자동적으로 선택.(사용자의 질의 속도↑)
  • 데이터베이스 보호(권한 없는 사용자로부터)
  • 다양한 인터페이스 제공
  • 데이터 간의 복잡한 관계 표현, 무결성 제약조건을 자동적으로 유지
  • 시스템이 고장나면 고장 전의 상태로 회복시킴
  • 프로그램-데이터 독립성 O

4. DBMS의 장점(8)

  • 중복성과 불일치 감소
  • 개발 유지 비용 감소
  • 표준화 시행에 용이
  • 보안 향상
  • 무결성 향상
  • 조직체의 요구사항 식별 가능
  • 고장으로부터 회복 가능
  • 동시 접근 및 공유가 가능

5. DBMS의 단점(4)

  • 추가적인 하드웨어 구입 비용과, DBMS 자체 구입 비용이 듦.
  • 직원들 교육비용이 듦
  • 프라이버시 노출이 존재할 수도 있음
  • DBMS 추천 안하는 경우(5): 초기 투자비용 클 때, 오버헤드가 클 때, 응용이 단순하고 변경되지 않을 때, 엄격한 실시간 처리 요구사항이 있을 때, 다수 사용자 접근이 필요 없을 때

 

1-3 DBMS 발전과정

1. 데이터 모델 구성 요소(3)

: 데이터베이스 구조 개념들의 집합/ 이 구조 위의 연산자들/ 무결성 제약 조건들

2. 데이터 모델의 분류(3)

  • 고수준 또는 개념적 데이터 모델: 사람이 인식하는 것과 유사하게. ex. 엔티티 관계 데이터 모델, 객체지향 데이터 모델
  • 표현(구현) 데이터 모델: 최종 사용자가 이해하는 개념. ex. 계층 데이터 모델, 네트워크 데이터 모델, 관계 데이터 모델
  • 저수준 또는 물리적인 데이터 모델: db에 데이터가 어떻게 저장되는가를 기술. ex. Unifying, ISAM, VSAM4

3. DBMS의 발전 과정(5)

  ① 계층 DBMS

      - 등장: 1960년대 후반 등장.(IBM사의 IMS)

      - 특징(3): 트리 구조 기반/ 네트워크 데이터 모델의 특별한 사례로 볼 수 있음./ 계층 데이터 모델 사용.

      - 장점(1): 어떤 유형의 응용에 대해서는 빠른 속도와 높은 효율성을 제공

      - 단점(3): 데이터 접근 방법을 미리 응용 프로그램에 정의해야함/

                     데이터베이스가 생성될 때 각각의 관계를 명시적으로 정의해야함/ 레코드 구조 변경 어려움.

  ② 네트워크 DBMS

      - 등장: 1960년대 초 등장(Charles Bachman이 하니웰 사에서 IDS 개발)

      - 특징(2): 그래프 기반(각 노드들은 부모를 하나 이상 가짐)/ 레네트워크 데이터 모델 사용

      - 단점(1): 레코드들이링크로 연결되어있어 레코드 구조 변경이 어려움.

  ③ 관계 DBMS

      - 등장: 1970년 등장(E.F.Codd가 IBM연구소에서 관계 데이터 모델 제안: System R)(버클리대: Ingres 프로젝트)

      - 장점(2): 모델이 간단함/ 사용자는 원하는 것만 명시하고, 데이터가 어디 있는지, 어떻게 접근하는 지는 DBMS가 결정.

      - 예(5): My SQL Server, Oracle, Sybase, DB2, MySQL

관계 데이터 모델 테이블

  ④ 객체 지향 DBMS

      - 등장: 1980년대 객체 지향 데이터 모델 등장

      - 장점(2): 데이터와 프로그램을 그룹화하기 쉬움/ 복잡한 객체들 이해하기 쉬움/ 유지와 변경이 용이함.

      - 예(6): ONTOS, OpenODB, GemStone, ObjectStore, Versant, O2

  ⑤ 객체 관계 DBMS

      - 등장: 1990년대 객체 관계 데이터 모델이 제안됨.

      - 예(3): 오라클, Infomic, Universal Server

  ⑥ 새로운 데이터 베이스 응용

     : CAD db, 소프트웨어 공학 db, 게놈 db, 데이터 웨어하우스, 데이터 마이닝, OLAP, 멀티미디어 db, 웹 db등

  Simple data Complex data
Query 관계 DBMS 객체 관계 DBMS
No Query(질의어 x: 큰약점) 화일 시스템 객체 지향 DBMS

4. 현대 관계 DBMS 기능(7)

  - OLAP과 데이터 웨어하우스 지원

  - 데이터 마이닝 연산들 지원

  - 효율적인 질의 처리 지원: 질의 최적화, 인덱싱

  - 고급 사용자 인터페이스 지원: SQL, 자연어, 폼 기반 등

  - 트랜잭션 개념 지원: 여러 트랜잭션 동시실행, 백업과 회복을 수행

  - 특별한 데이터 타입 지원: 긴 필드, 이미지, HTML 링크, 공간 정보 등

 - 객체 지향 개념 지원

5. DBMS 분류(4)

기준 종류
데이터 모델에 따른 분류(5) • 계층 DBMS
• 네트워크 DBMS
• 관계 DBMS
• 객체 지향 DBMS
• 객체 관계 DBMS
사용자 수에 따른 분류(2) • 단일 사용자 DBMS (주로 PC용)
• 다수 사용자 DBMS
사이트 수에 따른 분류(2) • 중앙 집중식 DBMS
• 분산 DBMS
접근 방법에 따른 분류(2) • 범용 DBMS
• 특별한 DBMS (예: 공간 DBMS)