데이터베이스 1장

고민경·2023년 3월 26일

데이터베이스

응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임

데이터베이스 시스템(DBS)의 구성 요소

  • 응용 프로그램
  • DBMS
  • 데이터베이스
  • 시스템 카탈로그

데이터베이스 시스템의 요구사항

  • 데이터 독립성
  • 효율적인 데이터 접근
  • 데이터에 대한 동시 접근
  • 백업과 회복
  • 중복을 줄이거나 제어하며 일관성 유지
  • 데이터 무결성
  • 데이터 보안
  • 쉬운 질의어
  • 다양한 사용자 인터페이스

DBMS

  • 데이터베이스를 정의하고, 질의어를 지원하며, 리포트를 생성
  • 데이터베이스 보호
  • 데이터 간의 복잡한 관계 표현, 무결성 제약조건 유지
  • 프로그램 데이터 독립성: 프로그램에 영향 주지 않으면서 데이터베이스 구조 변경할 수 있음

DBMS 장점

  • 중복성, 불일치 감소
  • 개발, 유지 비용 감소
  • 표준화 시행 용이
  • 보안 향상
  • 무결성 향상
  • 고장으로부터 데이터베이스 회복
  • 데이터베이스의 공유와 동시 접근 가능

데이터 모델

  • 데이터베이스의 구조를 기술하는데 사용되는 개념들의 집합인 구조, 이 구조 위에서 동작하는 연산자들, 무결성 제약조건들
  • 사용자에게 내부 저장 방식의 세세한 사항은 숨기면서 데이터에 대한 직관적인 뷰를 제공하는 동시에 이들 간의 사상을 제공

데이터 모델의 분류

1. 고수준 또는 개념적 데이터 모델

: 사람이 인식하는 것과 유사하게 데이터베이스의 전체적인 논리적 구조 명시
ex) 엔티티 관계: 데이터 모델과 객체 지향 데이터 모델

2. 표현(구현) 데이터 모델

: 최종 사용자가 이해하는 개념이면서 컴퓨터 내에서 데이터가 조직되는 방식과 멀리 떨어져 있지는 않음
ex) 계층 데이터, 네트워크 데이터, 관계 데이터 모델

3. 저수준 또는 물리적인 데이터 모델

: 데이터베이스에 데이터가 어떻게 저장되는가 기술

DBMS 발전 과정

1. 계층 DBMS(1960년대 후반)

  • 최초, 트리 구조 기반
  • 장점: 빠른 속도와 높은 효율성
  • 단점: 데이터 접근 구조 같은 것들을 응용 프로그램에 정의해야 함
    각각의 관계 명시적으로 정의해야 함
    레코드 구조 변경 어려움
    many-to-many 처리 어려움

2. 네트워크 DBMS(1960년대 초)

  • 레코드들이 노드로, 레코드들 사이의 관계가 간선으로 표현되는 그래프를 기반으로 하는 네트워크 데이터 모델 사용
  • 레코드들이 링크로 연결되어 있어서 레코드 구조 변경 어려움

3. 관계 DBMS(1970년)

  • 장점: 사용자는 자신이 원하는 것만 명시
    데이터가 어디 있는지, 어떻게 접근하는지는 DBMS가 결정
    ex) 오라클, MS SQL Server, Sybase, DB2, Informix

4. 객체 지향 DBMS(1980년대 후반)

  • 객체 지향 프로그래밍 패러다임을 기반으로 하는 데이터 모델
  • 장점: 데이터와 프로그램을 그룹화하고, 복잡한 객체들을 이해하기 쉬우며, 유지와 변경이 용이함
    ex) ONTOS, OpenODB, GemStone, ObjectStore, Versant, O2

5. 객체 관계 DBMS(1990년대 후반)

  • 관계 DBMS에 객체 지향 개념을 통합한 객체 관계 데이터 모델이 제안됨
    ex) 오라클, Informix Universal Server

6. 현대의 관계 DBMS

  • 고급 사용자 인터페이스 지원: SQL, 자연어, 폼 기반
  • 다수의 트랜잭션 동시에 실행, 백업과 회복 수행
  • 긴 필드, 이미지, HTML 링크, 공간 정보 지원
  • 객체 지향 개념, 웹 인터페이스와 XML, 데이터 마이닝, OLAP와 데이터 웨어하우스, 효율적인 질의 처리 지원

DBMS들의 분류

1. 데이터 모델: 계층 DBMS, 네트워크 DBMS, 관계 DBMS, 객체 지향 DBMS, 객체 관계 DBMS

2. 사용자의 수: 단일 사용자 DBMS, 다수 사용자 DBMS

3. 사이트의 수: 중앙 집중식 DBMS, 분산 DBMS

4. 접근 방법: 범용 DBMS, 특별한 DBMS(ex 공간 DBMS)

DBMS 언어

1. 데이터 정의어(DDL)

  • 사용자는 데이터 정의어를 사용하여 데이터베이스 스키마 정의
  • DBMS는 사용자가 정의한 스키마에 대한 명세를 시스템 카탈로그 또는 데이터 사전에 저장

2. 데이터 조작어(DML)

  • 사용자는 데이터 조작어를 사용하여 데이터베이스 내의 데이터를 검색, 수정, 삽입, 삭제
  • 절차적 언어, 비절차적 언어

3. 데이터 제어어(DCL)

  • 사용자는 데이터 제어어를 사용하여 데이터베이스 트랜잭션을 명시하고 권한을 부여하거나 취소

DBMS 사용자

1. 데이터베이스 관리자(DBA)

  • 일관성 있는 데이터베이스 스키마를 생성하고 유지하는 사람

2. 응용 프로그래머

  • 고객 관리, 인사 관리, 재고 관리 등이나 인터페이스 구현
  • 데이터베이스 접근 부분은 내포된 데이터 조작어 사용
  • 이들이 작성한 프로그램은 최종 사용자들이 반복해서 수행하므로 기작성 트랜잭션이라 부름

3. 최종 사용자

  • 데이터베이스를 사용하는 사람

4. 데이터베이스 설계자

  • 데이터베이스의 일관성을 유지하기 위해서 정규화 수행

5. 오퍼레이터

  • 전산실을 관리하는 사람

ANSI/SPARC 아키텍처

현재의 일반적인 아키텍처는 1987년에 제안된 ANSI/SPARC 아키텍처임

외부 단계

  • 데이터베이스의 각 사용자가 갖는 뷰
  • 동일한 개념 단계로부터 다수의 서로 다른 뷰가 제공될 수 있음
  • 일부분에만 관심을 가짐

개념 단계

  • 조직체의 정보 모델로서, 물리적 구현은 고려하지 않으면서 조직체 전체에 관한 스키마를 포함
  • 데이터베잇에 어떤 데이터가 저장되어 있으며, 데이터 간에는 어떤 관계가 존재하고, 어떤 무결성 제약조건들이 명시되어 있는가를 기술함
  • 데이터베이스에 대한 사용자 공동체의 뷰를 나타냄
  • 데이터베이스마다 오직 한 개의 개념 스키마가 존재

내부 단계

  • 실제의 물리적인 데이터 구조에 관한 스키마
  • 데이터베이스에 어떤 데이터가 어떻게 저장되어 있는가를 기술
  • 인덱스, 해싱 등과 같은 접근 경로, 데이터 압축 등을 기술함
  • 개념 스키마에는 영향을 미치지 않으면서 성능을 향상시키기 위해 내부 스키마를 변경하는 것이 바람직
  • 내부 단계 아래는 물리적 단계
  • 물리적 단계는 DBMS의 지시에 따라 운영 체제가 관리함

스키마 간의 사상

  • DBMS는 세 가지 유형의 스키마 간의 사상을 책임짐

외부/개념 사상

  • 외부 단계의 뷰를 사용해서 입력된 사용자들의 질의를 개념 단계의 스키마를 사용한 질의로 변환

개념/내부 사상

  • 이를 다시 내부 단계의 스키마로 변환하여 디스크의 데이터베이스를 접근

데이터 독립성

  • 상위 단계의 스키마 정의에 영향을 주지 않으면서 어떤 단계의 스키마 정의를 변경할 수 있음을 의미
  1. 논리적인 데이터 독립성
    : 개념 스키마의 변화로부터 외부 스키마가 영향을 받지 않음을 의미
    기존의 외부 스키마에 영향을 미치지 않고, 응용 프로그램을 다시 작성할 필요 없이 개념 스키마에 대한 변화가 가능해야 함
    1. 물리적인 데이터 독립성
      : 내부 스키마의 변화가 개념적 스키마에 영향을 미치지 않으며, 따라서 외부 스키마(또는 응용 프로그램)에도 영향을 미치지 않음을 의미
      화일의 저장 구조를 바꾸거나 인덱스 생성 및 삭제(내부 스키마 변화)해도 개념적 스키마, 외부 스키마 영향X

데이터베이스 시스템 아키텍처

  • 데이터 정의어 컴파일러 모듈
  • 질의 처리기 모듈
  • 런타임 데이터베이스 관리기 모듈
  • 트랜잭션 관리 모듈
  • 데이터베이스 API
  • 중앙 집중식 데이터베이스 시스템
  • 분산 데이터베이스 시스템
  • 클라이언트-서버 데이터베이스 시스템

0개의 댓글