Database

Database system

Choi G.H 2021. 3. 16. 23:04
반응형

Database system

: 데이터를 데이터베이스로 저장 관리하여 정보를 생성하는 컴퓨터 중심 시스템

 

3 level db

data languages

users

dbms

database administrator

database computer

 

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

 

DB의 3단계 표현

DB에 대한 3단계 관점(View)

- 개인, 기관전체, 저장장치

외부 단계

개념 단계

내부 단계

 

스키마: DB의 구조(개체, 관계)와 제약조건(constraints)에 관한 명세

  • 3-level DB 구조에 기반
  • 외부 스키마(external schema)
  • 개념 스키마(conceptual schema)
  • 내부 스키마(external schema)

 

외부 스키마(external schema)

  • 개개 사용자 관점에서 정의한 DB스키마
  • 전체 DB의 한 논리적인 부분
  • subschema

개념 스키마(conceptual schema)

  • 범 기관적인 관점에서 정의한 DB스키마
  • 모든 응용에 대한 전체적인 통합된 데이터 구조
  • schema

 

내부 스키마(internal schema)

  • 저장장치 관점에서 정의한 DB스키마
  • 개념 스키마에 대한 저장구조(storage structure)를 정의

각각의 스키마는 매핑에 의해 독립성을 갖게 된다.

 

카탈로그(Catalog)

  • 시스템 내의 모든 객체들에 대한 정의나 명세에 대한 정보를 수록
  • 시스템DB, 메타 데이터베이스
  • DB관리자(DBA)가 사용하는 도구
  • 사용자와 시스템 모두 사용
  • 데이터 사전(data dictionary)이라고도 함

 

데이터 디렉토리(data directory)

  • DB에 저장된 데이터를 참조(reference)하는데 필요한 정보를 수록
  • 시스템만 사용

 

 

데이터 언어(data language)

데이터베이스를 정의, 조작, 제어하기 위한 시스템과의 통신수단

 

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

데이터베이스 구조를 정의하고 변경하는데 사용

ex) CREATE TABLE(StudentNumber INT, LastName CHAR(25), FirstName CHAR(25), EmailAddress CHAR(100));

 

데이터 정의의 내용

논리적 데이터 구조의 정의

    -스키마, 외부 스키마 명세

물리적 데이터 구조의 정의

    -내부 스키마 명세

    -데이터 저장 정의어(data storage definition language)

논리적 데이터 구조와 물리적 데이터 구조 간의 사상을 정의

 

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

  • 사용자(응용프로그램)와 DBMS 사이의 통신수단
  • 데이터 처리 연산(operations)의 집합(데이터의 검색, 삽입, 삭제, 변경 연산)

절차적(procedural) DML

  • 저급 데이터언어(low-level data language)
  • what과 how를 명세
  • 한번에 하나의 레코드만 처리
  • 응용 프로그램 속에 삽입(embedded)되어 사용
  • DML예비 컴파일러(precompiler)에 의해 처리

비절차적(non-procedural) DML

  • 고급 데이터 언어(high-level data language)
  • what만 명세하고 how는 시스템에 위임
  • 한번에 여러 개의 레코드를 처리
  • 질의어(Query Language)
  • 독자적이고 대화식 : command 타입
  • 프로그램의 추상적 표현

NOTE

데이터 부속어(DSL, Data SubLanguage)

  • host program 속에 삽입되어 사용되는 DML
  • 비절차적 또는 절차적 DML

데이터 언어의 완전성(completeness of data language)

  • 사용자가 원하면 어떤 객체도 추출할 수 있고, 관계도 표현할 수 있는 능력

 

 

※비절차적 DML 예제(SQL)

 

질의: Sam의 EmailAddress를 검색하라

SELECT EmailAddress
FROM STUDENT
WHERE FirstName = 'Sam';
▶Sam.Cooke@OutU.edu

 

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

공용 데이터베이스 관리를 위해 데이터 제어(Data Control)를 정의하고 기술

 

데이터 제어 내용

  • 데이터 보안
  • 데이터 무결성
  • 데이터 회복
  • 병행수행

 

DB관리 목적으로 DBA가 사용한다.

 

※DCL예제(SQL)

 

(DBA가) user1에게 STUDENT테이블에 대한 검색(select)권한을 부여하라

GRANT SELECT ON STUDENT TO user1;

 

데이터 언어(SQL)

DDL

  • CREATE 생성
  • ALTER 수정
  • DROP 제거

DML

  • SELECT 검색
  • INSERT 삽입
  • UPDATE 갱신
  • DELETE 삭제

DCL

  • 권한부여 GRANT, REVOKE
  • 무결성 CHECK
  • 회복 COMMIT, ROLLBACK
  • 병행제어 LOCK, UNLOCK

 

사용자(Users)

: 데이터베이스를 이용하기 위해 접근하는 사람

 

일반 사용자(end user)

  • 비절차적 DML(query language)을 통해서 데이터베이스를 접근
  • menu, form, graphics
  • 데이터의 insertion, deletion, update, retrieval

응용 프로그래머(application programmer) 

  • 응용 프로그램(host언어 + DML(DSL))을 통해서 DB를 접근
  • host 언어 : PL/I, COBOL, PASCAL, C, Java

DB관리자(DBA)

  • DDL와 DCL을 통해 DB를 정의하고 제어하는 사람

 

 

 

반응형