Database

데이터베이스 시스템 개요

JunsuKim 2022. 3. 27.
728x90

DB 시스템(Database System: DBS)이란?

- 데이터를 DB에 저장하고, DBMS를 사용해서 필요한 정보를 관리하고 생성하는 컴퓨터 중심의 시스템이다.

DB 시스템의 구성 요소

No. 구성 요소 역할
1 데이터베이스(DB) 데이터를 저장한다.
2 데이터베이스 관리
시스템(DBMS)
DB를 생성, 관리, 조작함으로써 사용자와 DB를 연결해주는 소프트웨어이다.
3 데이터 언어
(Data Language)
DB 정의와 조작, 제어를 위한 DB 전용 언어이다.
4 DB 사용자 데이터 언어를 사용해서 DB에 접근하는 사람으로, 일반 사용자와 응용 프로그래머, DB 관리자로 구분할 수 있다.
5 DB 컴퓨터 효율적인 DB 관리를 위해서 DB에 대한 연산을 전담하는 DB 관리 전용 컴퓨터이다.

데이터 언어(Data Language)란?

DB를 정의하고, 조작, 제어하기 위해 사용하는 언어

 -> 사용자가 데이터에 접근하는 수단으로, 사용자와 DBMS 간의 통신 수단 제공한다.

데이터 언어의 종류

1. 데이터 정의어(DDL: Data Definition Language)

2. 데이터 조작어(DML: Data Manipulation Language)

3. 데이터 제어어(DCL: Data Control Language)

데이터 정의어(DDL)란?

- DB 구조를 정의하거나 변경하기 위해 사용하는 언어

 -> DB 설계자 또는 DB 관리자가 DB 스키마를 정의하기 위해 사용한다.

데이터 정의어 종류

1. DB를 ANSI/SPARC의 3단계로 엄격히 구분하는 시스템의 경우

 - 외부 스키마 정의어와 개념 스키마 정의어, 내부 스키마 정의어를 각각 제공해야 한다.

2. DB를 ANSI/SPARC의 3단계로 엄격히 구분하지 않는 시스템의 경우

 - DDL을 외부 스키마와 개념 스키마를 정의(개체와 속성, 관계, 제약조건 및 스키마 간의 사상 등 포함)할 때 모두 사용     한다.

데이터 조작어(DML)란?

사용자 또는 응용 프로그램과 DBMS 사이의 통신 수단으로써, DBMS가 원하는 데이터를 처리(검색, 삽입, 삭제, 갱신)할 수 있도록 기술하는 언어이다.

데이터 조작어의 종류

1. 절차적 DML

- 사용자가 무슨 데이터를 어떻게 접근해서 처리해야 하는지 기술해야 하는 저수준(low level) 데이터 언어이다.

- 한 번에 하나의 레코드만 검색해서 호스트 언어로 전달해서 처리한다.

  -> 독자적으로 사용하지 못하고, 응용 프로그램 속에 삽입해서 사용된다.

2. 비절차적 DML

- 사용자가 무슨 데이터를 원하는지만 기술하고, 어떻게 접근해서 처리해야 하는지는 기술하지 않고 DBMS에게 위임 하는 고수준(high level) 데이터 언어이다.

- 한 번에 여러 개의 레코드를 집합 단위로 처리한다.

 

* 절차적 처리가 필요한 경우(레코드 당 처리가 필요한 경우) 조건문 또는 반복문 로직 등이 필요한데, 오라클에서는

   PL/SQL로 구현한다.

※ 절차적 DML 사례:  오라클의 PL/SQL

DECLARE
    v emp counter NUMBER;
    v empno NUMBER(2);
    v loc VARCHAR2(20);
    v sal NUMBER(8);
BEGIN
    SELECT COUNT(*) INTO v emp counter
    FROM emp;
    FOR v counter IN 1 .. v emp counter
      LOOP
         SELECT empno, loc, sal
         INTO v empno, v loc, v sal
         FROM emp;
         IF v loc = '제주' THEN
            v sal := v sal * 1.15;
         ELSE
            v sal := v sal * 1.05;
         END IF;
         dbms output.put line(v empno, v loc, v sal);
      END LOOP;
END;

※ 비절차적 DML(SQL문) 사례

데이터 제어어(DCL)란?

- 사용자 공용 DB의 관리를 위해 데이터 제어를 정의하고 기술하는 언어

  -> DB 관리를 목적으로 주로 DB 관리자가 사용한다.

데이터 제어어의 기능

1. 데이터 보안(security)

2. 데이터 무결성(Integrity)

3. 데이터 복구(Recovery)

4. 동시성 제어(Concurrency Control)

DB 사용자(user)란?

- DB를 이용하기 위해 접근하는 모든 사람들

DB 사용자 구분

1. 일반 사용자

 - 주로 질의어를 사용해 검색/삽입/삭제/변경을 위해 DB에 접근하는 사람

2. 응용 프로그래머

 - 응용 프로그램(호스트 언어 + DML)을 통해 DB에 접근하는 사람

3. DB 관리자(DB Administrator: DBA)

 - DB 시스템의 관리 및 운영에 대한 모든 책임을 지는 사람(DDL과 DCL 사용)

DB 관리자의 주요 역할

1. DB 시스템 감시 및 성능 분석

2. DB의 구성 요소 결정 및 스키마 정의

3. DB의 저장 구조와 접근 방법 결정

4. 보안 및 권한 부여 정책, 데이터의 유효성 검사 방법 수립

5. 백업 및 복구 절차 수립

6. DB의 무결성 유지를 위한 대책 수립

7. DB 시스템의 성능 향상 및 새로운 요구에 대응한 DB 재구성

8. 시스템 카탈로그의 관리

9. 데이터 표현 및 시스템 문서화에 대한 표준 설정

10. 행정 관리 및 불만 해결

DB 컴퓨터란?

- 대규모 DB를 보다 효율적으로 관리하기 위한 DB 관리 전용 컴퓨터로써, DB 머신이라고도 칭한다.

- 호스트 컴퓨터 후위에서 DB 관리 및 연산 수행 기능을 전담하는 특수 목적의 컴퓨터로써, 일종의 후위 컴퓨터이다.

사용자 요구를 처리하기 위한 DBMS의 연산 수행 절차

1. 데이터 언어로 작성된 사용자의 접근 요구를 접수하여 분석한다.

2. 분석한 사용자 요구를 시스템이 이해할 수 있는 형태로 변환한다.

3. 변환된 사용자 요구를 실행하기 위해 외부 스키마, 외부/개념 사상, 개념 스키마, 개념/내부 사상, 내부 스키마, 저장       구조의 순으로 거치면서 저장된 데이터에 접근

4. 저장된 목표 데이터에 대해 필요한 연산 실행

데이터베이스 관리 시스템의 구성 요소

NO. 구성 요소 역할
1 DDL 컴파일러 DDL로 정의된 스키마를 내부 형태로 변환해서 시스템 카탈로그에 저장
2 질의어 처리기 터미널에서 일반 사용자가 입력한 질의문을 컴파일해서 DB에 접근하기 위한 오브젝트 코드를 생성
3 DML 예비 컴파일러 호스트 언어로 작서오딘 응용 프로그램에 삽입된 DML을 추출한 다음, 그 자리에 함수 호출문을 삽입
4 DML 컴파일러 DML 명령어를 컴파일해서 오브젝트 코드로 변환
5 런타임 DB 처리기 실행 시간에 DB에 대한 접근을 관리
6 트랜잭션 관리자 하나 이상의 DML 문장으로 구성된 트랜잭션 단위의 작업을 수행
7 저장 데이터 관리자 디스크에 저장되어 있는 사용자 DB나 시스템 카탈로그에 대한 접근을 담당

 

728x90

댓글