데이터베이스 시스템의 구성

WooBuntu·2020년 12월 30일
0

데이터베이스

목록 보기
4/16

데이터베이스 시스템 = 데이터베이스 + DBMS(데이터베이스 관리 시스템) + 데이터 모델

  • 데이터베이스 : 하드디스크에 저장된 데이터

  • DBMS : 주기억장치에 저장된 소프트웨어

  • 데이터 모델 : 데이터가 저장되는 기법(논리적 개념)

데이터베이스 언어(SQL)

  • 데이터 정의어

    CREATE, ALTER, DROP과 같이 DBMS에 저장된 테이블 구조를 정의

  • 데이터 조작어

    SELECT, INSERT, DELETE, UPDATE와 같이 데이터를 검색, 삽입, 삭제, 수정

  • 데이터 제어어

    GRANT, REVOKE와 같이 데이터의 사용 권한을 관리

이 중 가장 핵심은 query문, 즉 SELECT이다.

SELECT 뭐시기 FROM 테이블 이름 WHERE 조건;

데이터베이스 사용자

  • 일반 사용자

    프로그래머가 개발한 프로그램을 이용하여 데이터베이스에 접근

  • 응용 프로그래머

    일반 사용자가 사용할 수 있도록 프로그램을 개발하는 사람

  • SQL사용자

    응용 프로그램으로 구현되어 있지 않은 업무를 SQL을 사용하여 처리

  • 데이터베이스 관리자(DBA: Database Administrator)

    데이터 설계, 구현, 유지보수의 전 과정을 담당

DBMS

  • DML컴파일러 : SQL을 번역(SQL 사용자의 SQL질의에 대응)

  • DDL컴파일러 : SQL을 번역(DBA의 데이터베이스 스키마에 대응)

  • Embedded DML컴파일러 : 응용 프로그램에 삽입된(embedded) SQL을 번역

  • 질의처리기 : 번역된 SQL을 처리하는 알고리즘

  • 트랜잭션 관리자

    트랜잭션 : 데이터베이스를 처리하는 프로그램의 단위

  • 파일 관리자

  • 버퍼 관리자

데이터 모델

데이터베이스 시스템에서 데이터를 저장하는 이론적인 방법

데이터들 간의 관계를 표현하는 방법

  • 포인터 사용(계층, 네트워크 데이터 모델)

    • 데이터 a에 데이터 b가 저장된 포인터 값을 저장하는 방법

    • 데이터를 직접 찾아갈 수 있어서 프로그램 속도는 빠르다

    • 포인터를 다루는 프로그래밍을 해야 하기 때문에 응용 프로그램 개발 속도 면에서 느리다

  • 속성 값 사용(관계 데이터 모델)

    • 데이터 a에 데이터 b의 속성인 값(관계키)를 저장하는 방법
    • 포인터를 사용하는 방법보다 속도는 조금 느리다
    • 하지만 개념이 쉽고 프로그램 개발이 빠르기 때문에 가장 널리 쓰인다
  • 객체식별자 사용(객체 데이터 모델)

    • 데이터 a에 데이터 b의 고유 식별자인 오브젝트 아이디(oid)를 저장하는 방법

    • 객체지향 언어의 상속, 캡슐화의 개념을 도입

최근에는 관계 데이터 모델을 기본으로 하고 객체 데이터 모델의 장점을 일부 수용한 객체-관계 데이터 모델로 데이터베이스 시스템이 발전 중이다.

3단계 데이터베이스 구조

  1. 외부단계

    • 일반 사용자나 응용 프로그래머가 접근하는 계층

    • 전체 데이터베이스 중에서 하나의 논리적인 부분

    • 여러 개의 외부 스키마(서브 스키마/뷰)가 있을 수 있다

  2. 개념단계

    • 전체 데이터베이스의 정의

    • 통합 조직별로 하나만 존재하며 DBA가 관리한다

    • 하나의 데이터베이스에는 하나의 개념 스키마만 있다

    • 개념 스키마는 저장장치에 독립적으로 기술된다

    • 데이터와 관계, 제약사항, 무결성에 대한 내용이 포함된다.

  3. 내부단계

    • 물리적 저장장치(하드디스크)에 데이터베이스가 실제로 저장되는 방법(혹은 구조)

    • 역시 하나의 데이터베이스에는 하나의 내부 스키마만 있다

DBMS는 매핑을 통하여 각 단계 간 대응 관계를 정의한다.

  • 외부/개념 매핑

    외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당되는지 대응시킨다

  • 개념/내부 매핑

    개념 스키마의 데이터가 내부 스키마의 물리적 장치 어디에 어떤 방법으로 저장되는지 대응시킨다

데이터 독립성

하위 단계의 내용을 추상화하여 상위 단계에 그 세부 사항을 숨김으로써 한 단계 내의 변경에 대해서 다른 단계와 상호 간섭이 없도록 하는 것

  • 논리적 데이터 독립성(외부 단계와 개념 단계 사이의 독립성)

    개념 스키마가 변견되어도 외부 스키마에는 영향을 미치지 않도록 지원
    (=논리적 구조가 변경되어도 응용 프로그램에는 영향이 없도록 하는 개념)

    ex) 개념 스키마의 테이블을 생성하거나 변경하여도 외부 스키마가 직접 다루는 테이블이 아니면 영향이 없다

  • 물리적 데이터 독립성(개념 단계와 내부 단계 사이의 독립성)

    • 저장장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원

      ex) 성능 개선을 위해 물리적 저장장치를 재구성할 경우 개념 스키마나 응용 프로그램 같은 외부 스키마에 영향이 없다

    • 논리적 독립성보다 구현하기 쉽다

0개의 댓글

관련 채용 정보