데이터베이스 시스템 구성 요소
23년 이전 글/데이터베이스

데이터베이스 시스템 구성 요소

데이터 베이스

  • 조직체의 여러 응용 시스템들이 공유해서 사용하기 위한, 구조적으로 통합된 운영 데이터들의 모임
  • 시스템 카탈로그( 또는 데이터 사전)와 저장된 데이터베이스로 구분 가능
  • 시스템 카탈로그는 저장된 데이터베이스의 스키마 정보를 유지

 

데이터베이스 관리시스템

  • 사용자 요구에 따라 데이터베이스에 대한 모든 연산을 수행

1. 사용자의 접근 요구를 접수/분석

2. 시스템이 이해할 수 있는 형태로 요청 변환

3. 외부/개념/내부/저장 구조 간의 스키마 역할

4. 저장 데이터베이스에 대한 연산을 실행

구성요소

  • DDL 컴파일러 : DDL을 내부 형태로 변환하여 카탈로그에 저장(메타 데이터베이스)
  • 질의어 처리기 : 질의문을 파싱, 분석, 컴파일하여 목적 코드 생성
  • 예비 컴파일러 : 응용 프로그램의 DML을 추출하고 그 자리에 Procedure Call로 대체
  • DML 컴파일러
  • 런타임 데이터베이스 처리기 : 런타임의 DB에 접근하여 데이터베이스 연산 수행
  • 트랜잭션 관리자 : 무결성과 권한 제어, 병행 제어와 회복 작업
  • 저장 데이터 관리자

DBMS의 위치

 

데이터 언어

 

데이터 정의어

  • 데이터베이스 스키마를 정의하거나 수정
  • 데이터 정의어로 명시된 문장이 입력되면 DBMS는 사용자가 정의한 스키마에 대한 명세를 시스템 카탈로그 또는 데이터 사전에 저장

 

데이터 정의어의 기본적인 기능

  • 데이터 모델에서 지원하는 데이터 구조를 생성  예) SQL에서 CREATE TABLE
  • 데이터 구조의 변경 예) SQL에서 ALTER TABLE
  • 데이터 구조의 삭제 예) SQL DROP TABLE
  • 데이터 접근을 위해 특정 애트리뷰트 위에 인덱스를 정의 예) CREATE INDEX

 

데이터 조작어

  • 사용자가 원하는 데이터를 DBMS가 처리할 수 있도록 명세하는 도구
  • 데이터베이스내의 데이터를 검색, 수정, 삽입, 삭제
  • 데이터 처리를 명세하는 방법에 따라 절차적, 비절차적 DML로 나눌 수 있음. 절차적 DML은 어떤 데이터가 필요하고 어떻게 데이터를 접근할지, 비절차적 DML은 어떤 데이터가 필요한지만 명세
  • 관계 DBMS에서 사용되는 SQL은 대표적인 비절차적 언어
  • 데이터 조작어는 단말기에서 대화식으로 입력되어 수행되거나, C, 자바 등의 고급 프로그래밍 언어로 작성된 프로그램에 내포되어 사용

 

데이터 조작어의 기본적인 기능

  • 데이터의 검색  예) SQL의 SELECT
  • 데이터 수정 예) SQL의 UPDATE
  • 데이터 삭제 예) SQL DELETE
  • 데이터 삽입 예) SQL INSERT

데이터 정의어와 데이터 조작어

 

데이터 제어어(DCL, Data Control Language)

  • 데이터 제어어는 내부적인 규정이나 기법을 정의하고 이를 이용하여 데이터를 제어하고 기술하는 언어
  • 데이터 제어어는 주로 데이터 관리목적으로 데이터베이스 관리자가 사용
  • data security, integrity, recovery, concurrency control 의 명령어를 포함

 

사용자

 

데이터베이스 관리자

  • 조직의 여러 요구를 만족하기 위해 일관성 있는 데이터베이스 스키마를 생성하고 유지하는 사람(팀)
  • 데이터 정의어(DDL)와 데이터 제어어(DCL)사용

 

데이터베이스 관리자 역할

  • 데이터베이스 스키마의 생성과 변경
  • 무결성 제약조건을 명시
  • 사용자의 권한을 허용하거나 취소하고, 사용자의 역할을 관리
  • 저장 구조와 접근 방법(물리적 스키마)정의
  • 백업과 회복
  • 표준화 시행
  • 행정관리 및 불평해결
  • 시스템 감시 및 성능 분석

 

앱 프로그래머

  • 데이터베이스 위에서 특정 앱이나 인터페이스를 구현
  • 프로그래밍 언어인 C, JAVA 등으로 응용 프로그래밍을 개발하면서 데이터베이스를 접근하는 부분은 내포된 데이터 조작어 사용
  • 이들이 작성한 프로그램은 최종 사용자들이 반복해서 수행하므로 기작성 트랜잭션이라 부름

 

최종 사용자

  • 질의하거나 갱신하거나 보고서를 생성하기 위해서 데이터베이스를 사용하는 사람
  • 최종 사용자는 다시 데이터베이스 질의어를 사용하여 매번 다른정보를 찾는 캐주얼 사용자와 기작성 트랜잭션을 주로 반복해서 수행하는 초보 사용자로 구분

 

데이터베이스 설계자

  • ERWin 등의 CASE(Computer-Aided Software Engineering)
  • 데이터베이스의 일관성을 유지하기 위해서 정규화를 수행
  • 데이터베이스를 효율적으로 접근할 수 있도록 인덱스 등을 정의

 

데이터베이스 컴퓨터

 

데이터베이스 기능을 수행하기 위한 전용 목적의 하드웨어

  • Backend Processor
  • 지능형 저장 장치
  • associative 메모리
  • 병렬 처리(Parallel Processing)

 

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

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

 

 

데이터베이스를 보는 관점에 따라 3단계로 표현

  • 외부단계(External Level) : 각 사용자의 뷰
  • 개념단계(Conceptual Level) : 사용자의 뷰가 통합된 기관 전체의 뷰
  • 내부단계(Internal Level) : 물리적 저장장치의 입장에서 뷰

 

외부단계

  • 데이터베이스의 각 사용자가 갖는 뷰
  • 여러 부류의 사용자를 위해 동일한 개념 단계로부터 다수의 서로 다른 뷰가 제공될 수 있음
  • 일반적으로, 최종 사용자와 응용 프로그래머들은 데이터베이스의 일부분에만 관심을 가짐

 

개념단계

  • 전체 데이터베이스의 논리적인 구조를 기술
  • 물리적인 구현은 고려하지 않으면서 조직체 전체에 대한 스키마를 표현
  • 데이터베이스에 저장된 데이터의 형태, 데이터 간의 관계, 그리고 무결성 제약조건들을 기술
  • 데이터베이스마다 오직 한 개의 개념 스키마가 존재
  • 저장 구조와 독립적

 

내부단계

  • 실제 데이터의 물리적인 구조에 대한 스키마
  • 데이터베이스에 어떤 데이터가 어떻게 저장되어 있는가를 기술
  • 인덱스, 해싱 등과 같은 접근 경로, 데이터 압축등을 기술
  • 물리적인 저장 장치를 직접적으로 다루지는 않음
  • 내부 단계 아래는 물리적 단계
  • 물리적 단계는 DBMS의 지시에 따라 운영체제가 관리함

 

스키마(Schema)

  • 데이터베이스의 논리적인 구조 : 데이터 구조(데이터 객체, 관계)와 제약조건에 대한 명세를 기술
  • 3단계 스키마 구조
스키마 설명
외부스키마(external schema) - 개별 사용자 입장에서 데이터베이스 구조를 기술한 것
- 개별 사용자를 위한 여러 형태의 외부 스키마가 존재
- 서브 스키마(sub schema)라고도 부름
개념스키마(conceptual schema) - 조직 전체 입장에서 통합한 데이터베이스를 기술한 것
- 하나의 개념스키마만 존재
- 스키마(schema)라고도 부름
내부스키마(internal schema) - 저장된 입장에서 전체 데이터베이스가 저장되는 방법을 명세한 것
- 하나의 내부 스키마만 존재

 

3단계 스키마 예

데이터 독립성(Data Independency)의 구현

구분 설명
외부/개념 스키마(앱 인터페이스) 외부 스키마와 개념 스키마 간의 대응 관계를 정의한 것으로 논리적 구조(개념 스키마)를 변경하더라도 앱 프로그램에 영향을 주지 않아서 논리적 데이터 독립성을 제공해주는 것
개념/내부 스키마(저장 인터페이스) 개념 스키마와 내부 스키마 간의 대응 관계를 정의한 것으로 물리적 구조(내부 스키마)를 변경하더라도 응용 프로그램과 논리적 구조(개념 스키마)에 영향을 주지 않아 물리적 데이터 독립성을 제공해주는 것
내부/장치 스키마(장치 인터페이스) 내부 스키마와 물리적인 장치 간의 대응 관계를 정의한 것

 

3단계 간의 사상(Mapping)

논리적 데이터 독립성

  • 개념 스키마의 변화로부터 외부 스키마가 영향을 받지 않음을 의미
  • 기존의 외부 스키마에 영향을 미치지 않고 응용 프로그램을 다시 작성할 필요 없이 개념 스키마에 대한 변화가 가능해야함

물리적 데이터 독립성

  • 내부 스키마의 변화가 개념적 스키마에 영향을 미치지 않으며 따라서 외부 스키마(또는 응용 프로그램)에도 영향을 미치지 않음을 의미
  • 내부 스키마의 변화의 예: 파일의 저장 구조를 바꾸거나 인덱스를 생성하거나 삭제

논리적데이터독립성과물리적데이터독립성이적용되는 위치

 

데이터베이스 구조 정리

 

 

 

 

반응형

'23년 이전 글 > 데이터베이스' 카테고리의 다른 글

Relation과 무결성 제약  (0) 2022.07.26
데이터베이스 시스템, 데이터 모델  (0) 2022.07.23
데이터베이스 관리 시스템  (0) 2022.07.06
정보의 환경  (0) 2022.07.06
SQL 쿼리, SELECT 사용 방법  (0) 2022.07.01