ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3. 데이터베이스 시스템 요약정리
    CS - Database 2021. 10. 15. 23:50

     

     

    데이터베이스 시스템 DBS : DataBase System

    : DB에 데이터를 저장하고 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해주는 시스템.

    다양한 목적의 정보처리 시스템 구축에 필요한 핵심요소.

     

     

    DB vs DBMS vs DBS

    • DB
    데이터를 저장해두는 곳, 데이터의 집합.
    • DBMS
    DB에 저장된 데이터가 일관되고 무결한 상태로 유지되도록 관리하는 역할을 한다.
    • DBS
    DB와 DBMS를 이용해 조직에 필요한 정보를 제공해주는 전체 시스템
    컴퓨터(DB + DBMS) + 데이터 언어 + 사용자

     

     

    스키마 schema

    DB에 저장되는 데이터 구조와 제약조건을 정의한 것.

     

    인스턴스 instance

    스키마에 따라 DB에 실제로 저장된 값

    계속 변하는 특성이 있음.

     

    3단계 Database 구조 3- level database architecture

    : 미국 표준화 기관인 ANSI/SPARC 에서 데이터베이스의 복잡한 내부 구조를 감추고 일반 사용자가 데이터베이스를 쉽게 이해하고 이용할 수 있도록 제안함.

    외부 단계(개별 사용자 관점) + 개념 단계(조직 전체의 관점) + 내부 단계(물리적인 저장장치의 관점)

    각 단계별로 다른 추상화 제공

    내부 → 외부로 갈수록 추상화 레벨 높아짐.

    필요한 내용 숨기고 필요한 데이터만 단순화 → 외부 단계의 관점을 일반 사용자들에게 제공 가능

     

    1. 외부 단계

    개별 사용자 관점에서 DB이해하고 표현
    사용목적, DB보는 시선이 다름.
    - 외부 스키마 : 외부 단계에서 사용자에게 필요한 데이터베이스를 정의한 것. 각 사용자가 생각하는 DB모습을 표현한 논리적 구조.
    DB하나에는 외부스키마 여러개 존재 가능.
    외부 스키마 하나를 사용목적이 같은 사용자들이 공유 가능.
    데이터베이스 중 사용자가 관심을 가지는 일부분이라고 볼 수 있음 → (외부스키마 = 서브 스키마)
     보안 측면에서도 효과적임

    2. 개념단계

    사용자들의 관점을 통합하여 조직 전체의 관점에서 이해하고 표현.
    일부분이 아닌전체 데이터베이스에 관심
    개념스키마(스키마라고 하면 일반적으로 개념 스키마 의미.) : DBMS나 관리자의 관점에서 모든 사용자에게 필요한 데이터 통합하여 전체 DB의 논리적 구조 정의한 것.
    어떤데이터가 저장되는지 + 데이터들간 관계 + 제약조건 + 보안정책 + 접근권한 정의 포함.
    물리적저장 방법, 저장장치와는 독립적.
    1DB 1개념스키마.
    외부스키마는 개념 스키마를 기초로 하요 사용자 이용 목적에 맞게 만들어짐.

    3. 내부 단계

    데이터베이스를 저장 장치의 관점에서 이해, 표현.
    내부 스키마 : 전체 데이터베이스가 저장장치에 실제로 저장되는 방법 정의.
    레코드 구조, 레코드 구성하는 필드 코기, 인덱스 이용한 레코드 접근 경로 등 정의
    1DB 1내부스키마 (개념 스키마에 대한 물리적인 저장 구조 표현하므로)

     

    데이터 독립성

    세가지 스키마 사이에는 유기적인 대응 관계가 성립해야 한다.

    • 매핑 : 스키마 사이의 대응 관계

    외부스키마 - 개념 스키마 : 외부/개념 사상에 대응

    개념 스키마 - 내부스키마 : 개념/내부 사상에 대응

    DB를 3단계 구조로 나누고 단계별로 스키마 유지하며 스키마 사이 대응 관계 정의하는 궁극적인 목적은 데이터 독립성 data independency를 실현하기 위해서이다.

    데이터 독립성 : 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성.

    3단계 데이터베이스 구조에는 논리적 데이터 독립성물리적 데이터 독립성이 존재한다.

     

    1. 논리적 데이터 독립성

    개념 스키마가 변경되도라도 외부 스키마가 영향을 받지 않는 것.
    DB의 논리적 구조가 변경되어도 관련된 외부/개념 사상정보만 적절히 수정해주면 외부 스키마는 변경할 필요가 없음.
    (외부/개념 사상 = 응용 인터페이스)

    2. 물리적 데이터 독립성

    내부 스키마가 변경되도라도 개념 스키마가 영향을 받지 않는것. → 외부 스키마도 영향x
    DB 저장 구조 변경되어도 관련 개념/내부 사상 정보만 적절히 수정해주면 직접적 관련 없는 DB의 논리적 구조는 영향 받지 않음.
    (개념/내부 사상 = 저장 인터페이스)

     

    데이터 사전

    스키마 사상 정보 : 실제 저장된 데이터를 올바르게 관리하고 이용하기 위해 필요한 부가 정보

    • 데이터 사전(data dictionary) = 시스템 카탈로그(system catalog) : DB에 저장되는 데이터에 관한 정보를 저장하는 곳. DB의 데이터를 정확하고 효율적으로 이용하기 위해 참고해야하는 스키마, 사상정보, 제약조건 등 저장.(메타 데이터 : 데이터에 대한 데이터)
    • 데이터 사전도 데이터 저장하는 DB일종이기 때문에 시스템 데이터베이스 system database라고 한다. (이와 구별하기 위해 사용자가 실제로 이용하는 일반 DB를 사용자 데이터베이스 user database라고 함.)
    • 데이터사전은 DBMS가 생성하고 유지함. DBMS가 주로 접근하지만 일반 사용자도 접근 가능함.대신 사용자는 검색만 가능(DBMS는 추가, 수정 가능)
    • 데이터 사전에 있는 데이터에 실제로 접근하는 데 필요한 위치정보는 데이터 디렉터리 data directory에서 관리함.
    • 데이터사전, 데이터 디렉터리 둘다 시스템 위한 데이터베이스라는 공통점이 있지만, 데이터 사전은 사용자가 접근할 수 있고 데이터 디렉터리는 시스템만 접근할 수 있음.

     

    사용자 user

    데이터베이스 시스템 구성하는 하나의 중요요소.

    DB 이용하기 위해 접근하는 모든 사람.

    이용 목적에 따라 데이터베이스 관리자 + 최종 사용자 + 응용 프로그래머

     

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

    DBS 운영 관리.
    DB활용보다는 조직 내 사용자 위해 DB 설계 및 구축, 제어
    주로 데이터 정의어, 데이터 제어어 사용.
    컴퓨터시스템이나 데이터베이스 관련해 지식과 경험을 많이 갖추고 있어야 함.

    [업무]
    - 데이터베이스 구성 요소 선정
    : 사용자 요구사항 분석 → DB구성 할 데이터 결정

    - 데이터베이스 스키마 정의
    : DB 구성 요소를 토대로 데이터베이스 스키마 설계, 데이터 정의어 이용해 스키마를 DBMS에 설명

    - 물리적 저장 구조와 접근 방법 결정
    : 물리적 저장을 위한 레코드 구조 설계. 레코드들 간 저장 순서, 레코드 빠르게 접근 위해 인덱스 만들 기준 필드 결정

    - 무결성 유지 위한 제약조건 정의
    : 규칙 정의 → 제어 → 정확성, 유효성 유지

    - 보안 및 접근 권한 정책

    - 결정 백업 및 회복 기법 정의
    : 시스템 장애 대비하여 DB백업하거나 손상된 DB일관된 상태로 복구하는 방법 정의

    - 시스템 데이터베이스 관리

    - 시스템 성능 감시 및 성능분석
    : 시스템 성능 저해하는 병목현상 등이 발생하지 않는지 확인하고 시스템 자원의 활용도 분석 등을 통해 시스템의 성능을 감시한다.

    - 데이터베이스 재구성
    : 사용자 요구사항이나 사용형태 달라지거나 시스템 장비가 교체되거나 시스템 전체 성능을 향상시켜야 하는 경우 DB재구성해야함.

     

    2. 최종 사용자 end user

    데이터를 조작(삽입, 삭제, 수정, 검색)하기 위해 DB에 접근하는 사람들.
    컴퓨터시스템이나 DB에 관한 전문지식을 꼭 갖출 필요는 없음.
    주로 데이터 조작어 사용.
    캐주얼 사용자와 초보 사용자로 구분할 수 있다.

    3. 응용 프로그래머 application programmer

    프로그래밍 언어로 응용 프로그램 작성할 때 DB에 접근하는 데이터 조작어 삽입하는 사용자.

     

    데이터 언어

    사용자가 DB를 구축하고 접근하기 위해 DBMS와 통신하는 수단.

    사용목적에 따라 데이터 정의어 + 데이터 조작어 + 데이터 제어어로 나눔

    1. 데이터 정의어 DDL data definition language

    새로운 DB구축하기 위해 스키마 정의하거나 기존 스킴 정의 삭제, 수정하기 위해 사용하는 데이터 언어이다. →데이터 사전에 저장됨

    2. 데이터 조작어 DML data manipulation language

    사용자가 데이터 삽입, 삭제, 수정, 검색 등의 처리를 DBMS에게 요구하기 위해 사용하는 데이터 언어.
    설명방식에 따라 절차적 조작어 + 비절차적 조작어로 나뉨.

    - 절차적 조작어 procedural DML : 어떤 데이터(what)을 원하고 해당 데이터 얻기 위해 어떻게(how)처리해야하는지 설명
    - 비절차적 데이터 조작어 nonprocedural DML : 사용자가 어떤 데이터(what)를 원하는 지만 설명. 나머지는 DBMS에게 맡김. = 선언적 언어 declarative language

    3. 데이터 제어어 DCL data control language

    : DB에 저장된 데이터를 여러 사용자가 무결성과 일관성을 유지하며 공유할 수 있도록 내부적으로 필요한 규칙이나 기법을 정의하는 데 사용하는 데이터 언어이다.
    → DCL통해 무결성, 보안, 회복, 동시성 보장.

     

    c.f]
    - 무결성 integrity : 데이터베이스에 정확하고 유효한 데이터만 유지한다.

    - 보안 security : 허가 받지 않는 사용자가 데이터에 접근하는 것을 차단하거나 허가된 사용자가 접근 권한이 있는데이터에만 접근할 수 있게 한다.

    - 회복 recovery : 장애가 발생해도 데이터의 일관성을 유지한다.

    - 동시성 concurrency : 여러 사용자가 같은 데이터에 동시에 접근하여 처리할 수 있게 한다.

     

     

    DBMS의 구성

    : DB관리 + 사용자 데이터 처리 요구 수행

    사용자와 DB사이에 위치.

    기능에 따라 질의 처리기 + 저장데이터 관리자로 구분 가능

     

    1. 질의 처리기 query processor

    사용자의 데이터 처리 요구 해석하여 처리하는 담당.
    다음과 같은 구성요소들 포함함.

    - DDL 컴파일러 : DDL로 작성된 스키마 정의 해석 → 저장데이터 관리자 도움 받아 새로운 DB 구축 + 스키마 정의를 데이터 사전에 저장.(수정, 삭제도 적용)
    - DML 프리 컴파일러 : 응용프로그램에 삽입된 DML추출하여 DML 컴파일러에 전달. 관련없는 나머지 코드들은 해당언어 컴파일러에 보내짐.
    - DML 컴파일러 : DML로 작성된 데이터 처리요구 분석 → 런타임데이터베이스 처리기가 이해할 수 있도록 해석
    - 런타임 데이터베이스 처리기 : 저장데이터 관리자 통해 DB에 접근하여 DML 컴파일러부터 받은 데이터 처리 요구를 DB에서 실제로 실행한다.
    - 트랜잭션 관리자 : DB에 접근하는 과정에서 사용자 접근권한 유요한지 검사 + DB무결성 유지 위한 제약조건 위반 여부 확인 + 회복과 병행수행 관련 작업 담당.

    2. 저장 데이터 관리자 stored data manager.

    디스크에 저장된 DB와 데이터 사전을 관리하고 실제로 접근하는 역할.
    원래 디스크에 저장된 데이터 접근하는 것은 운영체제의 기본 기능이므로 저장 데이터 관리자는 OS의 도움을 받아 DB접근 수행.

    'CS - Database' 카테고리의 다른 글

    2. 데이터베이스 관리 시스템 DBMS 요약정리  (0) 2021.10.15
    1. 데이터베이스 요약정리  (0) 2021.10.15
Designed by Tistory.