Study Fundamental/DataBase

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

Tuan0324 2021. 10. 6. 21:52

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

DBMS(DataBase Management System) : 데이터를 관리하는 소프트웨어 시스템

데이터베이스 : 데이터를 모아둔 토대(base)

데이터 모델 : 데이터가 저장되는 기법 어떤 방식으로 데이터를 저장, 처리할 것인가?

 

데이터베이스 언어

   SQL

    - 데이터 정의어 DDL(Data Definition Language)                             테이블 구조 정의

    - 데이터 조작어 DML(Data Manipulation Language)                       데이터 검색, 삽입, 삭제, 수정

    - 데이터 제어어 DCL(Data Control Language)                                 데이터 사용권한 관리

 

데이터베이스 사용자

   일반 사용자

    - 데이터를 다루는 업무를 하는 사람

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

 

   응용 프로그래머

    - 일반 사용자가 사용할 있도록 프로그램을 만드는 사람

    - 프로그램 언어와 SQL 사용하여 일반 사용자를 위한 UI 데이터를 관리하는 로직 개발

 

   SQL 사용자

    - SQL 사용하여 업무를 처리하는 IT부서의 담당자

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

 

   데이터베이스 관리자(DataBase Administrator, DBA)

    - 데이터베이스 운영 조직의 데이터베이스 시스템을 총괄하는 사람

    - 에티어 설계, 구현, 유지보수의 과정을 담당

    - 사용자 통제, 보안, 모니터링, 데이터 파악, 관리, 이동 복사 제반 업무 수행

 

DBMS 기능

   데이터 정의 : 데이터의 구조를 정의하고 데이터 구조에 대한 삭제 변경 기능을 수행

   데이터 조작 : 데이터를 조작하는 소프트웨어가 요청하는 데이터의 삽입, 수정, 삭제 지원

   데이터 추출 : 사용자가 조ㅚ하는 데이터 혹은 응용 프로그램의 데이터 추출

   데이터 제어 : 사용자를 생성하고 모니터링하며 접근을 제어, 백업, 회보그 동시성 제어 지원

 

데이터 모델

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

데이터 모델의 종류

   계층 데이터 모델(hierarchical data model)

   네트워크 데이터 모델(network data model)

   객체 데이터 모델(object data model)

   관계 데이터 모델(relational data modal) -> 가장 많이 쓰이는 모델

   객체-관계 데이터 모델(object-relational data model) -> 관계 데이터 모델과 객체 데이터 모델의 장점을 결합한 모델

 

데이터 모델을 구분하는 기준 게이터들 간에 관계를 표현하는 방법

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

- 데이터에 포인터 값을 넣는 방법

- 프로그램 속도는 빠르나 응용 프로그램 개발 속도는 느림

 

속성값 사용 : 관계 데이터 모델

- 키값을 데이터에 직접 저장하는 방법

- 개념이 쉽고 프로그램 개발이 빠름

 

객체식별자 사용 : 객체 데이터 모델

  - 객체의 고유 식별자인 oid 저장하는 방법

 

 

 

 

데이터베이스의 개념적 구조

 

   외부 스키마

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

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

    - 서브 스키마라고도 하며, (view) 개념

 

   개념 스키마

    - 전체 데이터베이스의 정의를 의미

    - 통합 조직별로 하나만 존재하며 DBA 관리함

    - 하나의 데이터베이스에는 하나의 개념 스키마가 존재함

 

   내부 스키마

    - 물리적 저장 장치에 데이터베이스가 실제로 저장되는 방법의 표현

    - 내부 스키마는 하나

    - 인덱스, 데이터레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함

    - 외부(내부)스키마가 변경되더라도 내부(외부)스키마는 바뀌지 않도록 해줌

 

외부/개념 매핑

  - 사용자의 외부 스키마와 개념 스키마 간의 매핑

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

 

개념/내부 매핑

  - 개념스키마의 데이터 내부 스키마의 물리적 장치 => 위치와 방법을 대응

 

데이터 독립성

: 하위 단계의 내용을 추상화 상위 단계에 해당 세부 사항을 숨김

단계 내의 변경에 대해서 다른 단계와 상호 간섭이 없도록 하는

 

논리적 데이터 독립성

  - 외부 단계(외부 스키마) 개념 단계(개념 스키마) 사이의 독립성

  - 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원

  - 논리적 구조가 변경되어도 응용프로그램에는 영향이 없도록하는 개념

  - 개념스키마의 테이블을 생성, 변경하여도 외부 스키마가 다루는 테이블이 아니면 영향 X

 

물리적 데이터 독립성

  - 개뇨념 단계(개념 스키마) 내부 단계(내부 스키마) 사이의 독립성

  - 내부 스키마가 변경(저장장치 구조 변경)되어도 개념 스키마에 영향을 미치지 않도록 지원

  - 성능 개선을 위하여 저장 장치를 재구성할 경우 개념 스키마나 외부 스키마에 영향X

  - 물리적 돋립성은 노리적 독립성보다 구현하기 쉬움