데이터베이스 관리 시스템(데이터베이스)

심채운·2023년 6월 5일
0

학점은행제 컴공

목록 보기
3/40

데이터베이스 관리 시스템

데이터 모델

현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 모형이다

데이터 스키마와 데이터 인스턴스

데이터베이스에 대한 기술(메타데이터), 데이터베이스 설계 과정에서 명시하며 자주 변경되지 않는다. 어떤 특정 시점에 데이터베이스에 들어있는 데이터의 집합이다.

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

개념 스키마와 내부 스키마를 정의하는 언어이다. 데이터를 검색,삽입,삭제,수정하기 위한 조작 언어, 보통 질의어(Query language)라고 불린다.

데이터베이스 관리 시스템의 개념

데이터베이스 아키텍처 개요

  • 초기 DBMS 아키텍처는 밀접하게 통합된 거대한 시스템으로 구성
  • 현재는 클라이언트/서버 아키텍처
    • 클라이언트
      • 워크스테이션/개인용 컴퓨터에서 동작
      • 응용 프로그램 실행
      • 사용자 인터페이스 제공
    • 서버
      • 데이터 저장, 접근, 탐색 등을 수행

데이터 스키마와 인스턴스의 개념

데이터 모델

  • 현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 모형
  • 데이터 추상화는 데이터 저장구조와 세부사항을 감추고, 데이터를 잘 이해하는데 도움이 되는 필수적인 특징들을 강조하는 것
  • 추상화를 제공함으로써 여러 사용자들이 각자 선호하는 수준에서 데이터를 볼 수 있음
  • 데이터 모델에 표시할 요소
    • 데이터 구조, 연산, 제약 조건들을 표시
    • 객체지향적 개념이 적용되어 동작이 데이터 모델에 포함되는 추세에 의해 사용자 정의 연산이 포함되기도 함
  • 데이터 모델의 구성요소
    • 개체(Entity)
    • 속성(Attribute)
    • 관계(Relationship)

데이터 모델의 분류

  • 물리적 데이터 모델(저수준 데이터 모델)
    • 어떻게 데이터가 컴퓨터에 저장되는지의 세부 사항을 명시하는 개념을 제공
  • 개념적 데이터 모델(고수준 데이터 모델)
    • 사용자들이 데이터를 인식하는 방식에 대한 개념을 제공
  • 표현 데이터 모델(구현 데이터 모델)
    • 고수준 모델과 저수준 모델 사이에 존재
    • 일반 사용자들이 이해할 수 있는 개념을 제공
    • 데이터 저장 구조의 세부 사항을 은폐하지만 컴퓨터 상에서 직접 구현 가능
    • 상용 DBMS에서 주로 사용함
    • 과거에는 주로 네트워크 모델, 계층 모델을 사용했지만 현재는 관계 모델을 사용함(ER모델, Relation모델)

데이터 스키마

  • 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술
  • 데이터베이스 설계 과정에서 명시하며 자주 변경되지 않음
  • 사용자의 관점에 따라 내부, 개념, 외부 스키마로 나뉨
  • 스키마 다이어그램
    • 데이터베이스 스키마를 도식화한 것
    • 레코드 타입의 이름, 데이터 항목의 이름, 일부 제약 조건 유형들과 같은 스키마의 일부 관점만을 나타냄

데이터 인스턴스

  • 어떤 특정 시점에 데이터베이스에 들어 있는 데이터
  • 데이터베이스에 갱신 연산이 수행될 때마다 새로운 다른 데이터베이스 상태를 가짐
  • DBMS는 데이터베이스 상태가 스키마에 명시된 구조와 제약조건을 만족하는 유효한 상태임을 보장해야 함
  • 내포와 외연
    • 일반적으로 스키마는 내포(Intension)라 하고, 데이터베이스 상태는 외연(Extension)이라 함

3-단계 스키마 아키텍처와 데이터 독립성

3-단계 스키마 아키텍처

  • 외부 스키마(External Schema)
    • Sub schema, User View 라고도 함
    • 사용자나 응용 프로그램이 각자의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것
    • 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마를 여러 개의 응용 프로그램이나 사용자가 공용할 수도 있음
    • 같은 데이터베이스에 대해서도 다른 관점을 정의할 수 있도록 허용
  • 개념 스키마
    • 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 데이터베이스로 하나만 존재
    • 개체 간이 관계와 제약조건을 나타내고 접근 권한, 보안, 무결성 규칙에 관한 명세를 정의
    • 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것으로, 단순히 스키마라고 하면 개념 스키마를 의미함
    • 기관이나 조직체의 관점에서 데이터베이스를 정의한 것으로 DBA에 의해 구성됨
  • 내부 스키마
    • 물리적 저장장치의 입장에서 본 데이터베이스 구조
    • 실제로 데이터베이스에 저장되는 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법, 내부레코드의 순서 등을 나타냄
    • 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마
  • 사상
    • 외부 스키마를 참조하여 사용자가 데이터를 요구하면
    • 이를 데이터베이스 내에서 개념 스키마에 대한 요구로 변환하고
    • 다시 내부 스키마에 대한 요구로 변환 과정을 거쳐
    • 저장된 데이터베이스에 접근하여 데이터를 추출한 후 사용자의 뷰와 일치하도록 재구성하는 과정

데이터 독립성

  • 논리적 데이터 독립성
    • 외부 스키마나 응용 프로그램을 변경하지 않으면서 개념 스키마를 병경할 수 있는 성질
  • 물리적 데이터 독립성
    • 개념 스키마를 변경하지 않으면서 내부 스키마를 변경할 수 있는 성질

데이터베이스 언어와 인터페이스

데이터베이스 언어

데이터베이스 언어는 보통 SQL(Structured Query Language)이라 함.내부에 3가지 종류가 있음

  • 데이터 정의 언어(DDL:Data Definition Language) 스키마에 관련된 명령들
    • 데이터베이스 구조를 구축하거나 수정할 목적으로 사용하는 언어
    • 외부 스키마를 정의
    • 데이터베이스의 논리적, 물리적 구조 및 구조 간의 사상을 정의
    • 스키마에 사용되는 제약조건을 정의
    • 데이터의 물리적 순서를 규정
  • 데이터 조작 언어(DML:Data Manipulation Language) 인스턴스에 관련된 명령들
    • 사용자로 하여금 데이터를 검색, 삽입, 삭제, 수정할 수 있게 하는 조작 언어
    • 일반적으로 질의 언어(Query language)라고 불림
    • DML 명령어는 범용 프로그래밍 언어에 삽입되어 사용될 수 있고, 이때 범용 프로그래밍 언어를 호스트 언어라 하고, 삽입된 DML 명령어를 데이터 부속언어(Data sublanguage)라 함
  • 데이터 제어 언어(DCL:Data Control Language) 보통 보안, 제약조건 등
    • 보안 및 권한 제어, 회복 등을 하기 위한 언어
    • 불법적인 사용자로 부터 데이터를 보호하기 위한 데이터 보안 설정
    • 데이터 정확성을 위한 무결성 제약조건 설정
    • 시스템 장애에 대비한 데이터 회복과 병행수행 제어

DBMS 인터페이스

  • 메뉴 기반 인터페이스
    • 사용자에게 선택 사항들의 리스트를 보여줌
    • 메뉴는 사용자가 자신의 요구사항을 표현할 수 있도록 안내
    • 질의어의 특정 명령들이나 문법을 기억하지 않아도 되며, 선택 사항들을 단계적으로 하나씩 고르면 질의가 만들어짐
  • 폼 기반 인터페이스
    • 양식/형식 기반 인터페이스는 사용자에게 폼을 보여줌
    • 사용자는 새로운 데이터를 입력하기 위해 양식의 모든 항목들을 입력하거나 사용자가 일부 항목들을 채우면 DBMS가 부합되는 데이터를 검색
    • 대게 초보사용자들이 사용하도록 설계됨
  • 그래픽 사용자 인터페이스(GUI : Graphic User Interface)
    • 사용자들에게 데이터베이스의 스키마를 그림을 보여주는 방식
    • 사용자는 그림을 조작해서 질의를 작성할 수 있음
    • 많은 경우에 GUI는 메뉴와 폼을 함께 이용함
  • 자연어 인터페이스
    • 영어 또는 다른 언어로 표현된 요구들을 받아서 인식
    • 요구를 인식하면 사용자가 입력한 자연어 형태의 요구된 동등한 질의를 생성 후 DBMS에 넘겨 수행함
    • 요구를 제대로 해석하지 못하면 요구를 좀 더 분명하게 표현하도록 하는 대화 과정이 시작됨
    • 일반적으로 자연어 질의 인터페이스는 잘 사용되고 있지 않음
    • 음성 입력이나 출력 인터페이스는 한정된 어휘들을 사용하는 응용에서 일반인들이 정보를 쉽게 이용할 수 있도록 할 때 사용됨
  • 초보자를 위한 인터페이스
    • 초보 사용자는 몇 가지 작업을 반복적으로 수행, 예를 들어 은행원은 입출금 처리, 잔고 조회, 이체 등 단순하고 반복적으로 수행되는 업무 수행
    • 간결한 키보드의 기능 키 입력을 통해서 데이터베이스에 접근할 수 있도록 함
  • 데이터베이스 관리자(DBA)를 위한 인터페이스
    • DBA가 사용할 수 있는 특권 명령을 제공
    • 계정 생성, 계정 권한 설정, 시스템 매개변수 값의 설정, 스키마의 변경, 데이터베이스 저장구조의 재조직 등의 명령을 수행할 수 있도록 함
profile
불가능, 그것은 사실이 아니라 하나의 의견일 뿐이다. - 무하마드 알리

0개의 댓글