[DB] 데이터베이스 시스템

Yujeong·2024년 4월 14일
0

데이터베이스

목록 보기
2/14
post-thumbnail

1. 데이터베이스 시스템

  • 목적: 사용자에게 데이터에 관한 추상적인 관점을 제공하는 것
  • 독립성: 사용자는 데이터가 어떻게 저장되고 유지되는지에 대한 세부 사항을 알 수 없다.
  • DBS = DB + DBMS + DL + DBA + 사용자 + DB 컴퓨터

2. 데이터의 관점

1) 데이터의 추상화

  • 물리적 단계 - 장치
    • 추상화의 최하위 단계
    • 데이터가 실제로 어떻게 저장되는지 기술
  • 논리적 단계
    • 다음 상위 단계
    • 어떤 데이터가 저장되었는지, 데이터들 사이에는 어떤 관계가 있는지를 기술
  • 뷰 단계 - 사용자
    • 추상화의 최상위 단계
    • 전체 데이터베이스의 일부분만 기술(원하는 데이터만)

2) 인스턴스와 스키마

  • 인스턴스(instance) - 내용
    • 정적
    • 어느 특정한 순간에 데이터베이스에 저장되어 있는 정보의 모임
  • 스키마(schema) - 구조
    • 동적
    • 데이터베이스의 전체적인 설계

3. 3단계 스키마

스키마는 데이터베이스의 구조(개체, 속성, 관계)에 대한 정의와 이에 대한 제약 조건 등을 기술한 것으로 컴파일 되어 데이터 사전에 저장한다.

1) ANSI/SPARC 3 Level Architecture

관계형 DBMS는 모두 2,3단계 스키마 아키텍처를 제공한다.

  • 외부 스키마
    • 사용자 논리 단계(user logical level)
    • 여러 개 존재, 서브 스키마
  • 개념 스키마
    • 조직 논리 단계(community logical level)
    • 모든 데이터 개체, 관계, 제약조건, 접근권한, 무결성 규칙, 보안 정책 등을 명세
    • 한 개만 존재
  • 내부 스키마
    • 물리적 저장장치 관점에서 전체 데이터베이스가 저장되는 방법을 명세
      예) 내부 레코드 형식, 인덱스 유무, 저장 데이터 표현 방법, 내부 레코드 물리적 순서 등
    • 한 개만 존재

2) 3단계 간의 사상

  • 사상(mapping)

4. 사용자

1) 일반 사용자(user)

  • 비절차적 DML(질의어)을 통해 데이터베이스 접근 가능

2) 응용 프로그래머(application programmer)

  • host 프로그래밍 언어에 DML을 삽입시켜 데이터베이스에 접근

3) 데이터베이스 관리자(DBA)

  • DDL과 DCL을 통해 데이터베이스를 정의하고 제어하는 사람/그룹
  • 역할
    • 스키마 정의
    • 저장 구조와 액세스 방법의 정의
    • 스키마 및 물리 구조의 수정
    • 데이터 액세스 권한의 인정
    • 루틴 유지 및 관리

5. 데이터 언어

데이터 언어에는 DDL, DML, DCL이 있다.

1) DDL

정의

  • 데이터 정의 언어(DDL: Data Definition Language)
  • DBA가 사용
  • 사용자에게는 보이지 않는 데이터베이스 스키마 구현 상의 세부 사항을 정의
  • 스키마에 사용되는 개체 정의, 속성, 개체 간의 관계, 스키마 간에 존재하는 사상 명세 등을 표현
  • DDL 결과는 메타 데이터(meta data)를 저장하는 데이터 사전(Data Dictionary)에 위치

제약 조건

  • 도메인 제약조건
    • Domain Constraints
    • 가능한 값들의 도메인은 모든 속성들(정수형, 문자형 날짜 등)과 연관되어 있어야 한다.
  • 참조 무결성 제약조건
    • Refential Integrity Constraints
    • 주어진 속성들의 집합에 대한 릴레이션의 한 값이 다른 릴레이션에 대한 속성 집합의 값으로 반드시 나타나야 할 경우가 있다. 참조 무결성이 위반되었을 때의 기본적인 절차는 위반을 유발시킨 동작을 거부하는 것이다.
  • 엔티티 무결성 제약조건
    • Entity Integrity Constraints
    • 각 튜플을 구분하는 필드가 존재해야 한다. 보통 기본키로, 기본키 필드는 2개 이상의 튜플이 동일한 값을 가질 수 없고, null값을 가질 수 없다.
  • 주장
    • Assertions
    • 데이터베이스가 항상 만족시켜주어야 하는 조건. 도메인 제약조건과 참조 무결성 제약조건은 주장의 특수한 형태이다.
  • 권한
    • Authorization
    • 데이터베이스의 많은 데이터들에 대해 사용자들마다 접근을 다르게 하고 싶을 때의 차별

DSDL

  • 데이터 저장 정의어(DSDL: Data Storage Definition Language)
  • 내부 스키마(저장 구조와 액세스 방법) 명세

2) DML

정의

  • 데이터 조작 언어(DML: Data Manipulation Language)
  • 사용자가 적절한 데이터 모델로 구성된 데이터를 접근하거나 조작할 수 있도록 하는 언어

구분

  • 절차적 데이터 조작어
    • procedural
    • 무슨(what) 데이터와 그 데이터를 어떻게(how) 접근하는지를 명세해야 되는 초급 데이터 언어
      → 한 번에 하나의 레코드 검색
    • host 언어
    • 내장 SQL, 저장 프로시저, 사용자 정의 함수
  • 비절차적 데이터 조작어
    - non-procedural
    - 무슨(what) 데이터를 원하는지만 명세하는 고급 데이터 언어(선언적 언어)
    → 한번에 여러 개의 레코드 검색
    - 임피던스 불일치: 분해 후 반복 방식으로 해결. 커서(cursor) 이용하여 데이터를 한 단위씩 읽기/쓰기

    "임피던스 불일치"는 데이터베이스 시스템에서 데이터를 처리하는 방식이나 구조가 서로 다른 경우를 가리킨다. 예를 들어, 데이터를 처리하는 애플리케이션의 요구사항과 데이터베이스 시스템의 구조가 서로 일치하지 않는 경우 발생할 수 있다.

3) DCL

  • 데이터 제어 언어(DCL: Data Control Language)
  • 데이터를 보호하고 관리하는 목적으로 사용되는 언어
구분SQL 명령어
DDLCREATE, ALTER, DROP, RENAME, TRUNCATE
DMLSELECT, INSERT, UPDATE, DELETE
DCLGRANT, REVOKE, DENY

6. DBMS

구분설명
질의어 처리기질의문을 파싱, 분석, 컴파일하여 코드 생성 후 런타임 데이터베이스 처리기를 호출하면서 이것을 실행할 수 있도록 만든다.
DDL 컴파일러DDL문을 해독하여 데이터 사전 내에 저장한다.
DML 예비 컴파일러응용 프로그램에 삽입된 DML을 추출한다.
DML 컴파일러DML 명령어를 목적 코드로 변환한다.
런타임 DB 처리기데이터베이스 연산을 저장 데이터 관리자를 통해 디스크에 저장된 데이터베이스에 실행한다.
저장 데이터 관리자디스크에 있는 데이터베이스 접근을 제어한다.
트랜잭션 관리자시스템에 고장이 나더라도 데이터베이스가 일관성있는 상태를 유지하도록 보장한다.

동시에 실행되는 트랜잭션들이 충돌없이 실행됨을 보장한다.
파일 관리자디스크 공간의 할당과 디스크 상에 저장된 정보 표현을 위해 자료 구조를 관리한다.
버퍼 관리자버퍼 공간의 할당을 책임진다.

7. 데이터 사전

  • 데이터 사전(DD: Data Dictionary)
  • 일반 질의어로 검색 가능, 갱신 불가능

저장 정보

  • 릴레이션 이름
  • 속성 이름, 속성의 도메인과 길이
  • 속성 이름의 무결성 제약조건
  • 뷰의 이름과 뷰에 대한 정의들
  • 사용자 정보 유지
  • 릴레이션에 대한 정적이고 설명적 정보 저장
    • 릴레이션 튜플 수
    • 릴레이션 저장 메서드
    • 릴레이션 저장 구조, 위치
  • 인덱스에 대한 정보
    • 이름
    • 인덱스된 릴레이션 이름
    • 인덱스가 정의된 속성
    • 인덱스 형태, 높이
  • 트리거

데이터 디렉터리(Data Directory)

  • 데이터 사전에 저장된 데이터를 실제로 접근하는데 필요한 정보를 관리•유지하는 시스템

데이터 사전은 사용자와 시스템이 공동으로 접근할 수 있지만, 디렉터리는 시스템만 접근할 수 있다.


참고
데이타베이스 시스템

profile
공부 기록

0개의 댓글