ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Ch 02. 데이터베이스 시스템 개념과 아키텍처
    학교 수업/2-2 데이터베이스 기초 2021. 9. 12. 18:15
    반응형

    1. 데이터 모델

    1. 데이터 모델의 특징
      • 데이터베이스의 구조를 명시하기 위해 사용할 수 있는 개념들의 집합
      • 데이터 추상화를 제공
      • 대부분의 데이터 모델은 데이터베이스에서 검색과 갱신을 수행하는 기본 연산들의 집합을 포함
      • 시스템 카탈로그에 저장하는 데이터베이스 기술
    2. 데이터 모델의 3요소(S, O, C)
      • Structure, Operation, Constraint
    3. 데이터 모델의 분류
      • 저수준/물리적 데이터 모델
        • 어떻게 데이터가 컴퓨터의 저장 장치에 저장되는지에 대한 세부 사항을 명시하는 개념을 제공
        • 레코드 형식, 레코드 순서, 접근 경로등과 같은 정보를 나타냄
      • 고수준/개념적 데이터 모델
        • 많은 사용자들이 데이터를 인식하는 방법에 대한 개념을 제공
        • 엔티티(entity), 속성(attribute), 관계(relationship)과 같은 개념들을 사용함
      • 표현/구현 데이터 모델
        • 개념적 데이터를 물리적 데이터로 바꿔주는 중간 모델

     

    2. 스키마(schema)

    1. 스키마
      • 데이터베이스에서의 자료의 구조와 자료의 타입, 자료간의 관계를 정의한 것 = 데이터 베이스 구조를 설명함 = meta data
      • 잘 변하지 않는 정적 정보이므로 내포(intension)라고도 부름
    2. 스키마 다이어그램 : 데이터베이스 스키마 구조를 그림으로 표현한 것

     

     

    3. 데이터베이스 상태

    1. 스냅샷(snapshot), 스키마의 외연(extension)이라고도 부름
    2. 특정 시점에 데이터베이스에 들어 있는 데이터
    3. 데이터베이스 내의 어커런스(발생, occurence) 또는 인스턴스(instance)들의 현재 집합임

     

     

    4. 3단계 스키마 구조

    1. 데이터베이스 방식의 세가지 특징
      • 자기 기술성을 갖도록 데이터베이스 기술을 저장하는 카탈로그의 사용
      • 프로그램과 데이터 사이의 격리(프로그램-데이터 독립성과 프로그램-연산의 독립성)
      • 다양한 사용자 뷰 제공
    2. 3단계 스키마 구조
      • 사용자의 응용과 데이터베이스를 분리하기 위해 만들었음 
      • ANSI / SPARC Architecture
         
      • 내부 단계(internal level): 내부 스키마(internal schema)를 가지고, 데이터베이스의 물리적 저장 구조를 설명함
      •  개념 단계(conceptual level): 개념 스키마(conceptual schema)를 가지고, 모든 사용자를 위한 전체 데이터베이스 구조를 설명함(세부사항은 은폐하고, 엔티티/데이터 타입/관계/사용자 연산/제약 조건을 설명하는데 집중)
      • 외부 단계(external level) 또는 뷰 단계(view level): 여러 개의 외부 스키마와 사용자 뷰를 가지고 있음. 특정 사용자 그룹이 관심을 갖는 데이터베이스의 부분을 설명함
      • 실제 데이터는 물리적 단계(physical level)에만 저장되어 있고, 사상(mapping)이 여러 번 일어나서 융통성은 좋을지 몰라도 성능면에서는 단점이 될 수 있음(시간이 많이 소요됨)

     

     

     

    5. 데이터 독립성

    1. 데이터 독립성을 제공하기 위해 데이터베이스를 위와 같이 3단계로 만들었음
    2. 데이터 독립성의 종류
      • 논리적 데이터 독립성(LDI, Logical Data Independence)
        • 외부 스키마나 응용 프로그램을 변경하지 않으면서 개념 스키마를 변경하는 능력(= 개념 스키마가 변해도 외부 스키마나 응용 프로그램은 변화하지 않음)
      • 물리덕 데이터 독립성(PDI, Physical Data Independence)
        • 개념/외부 스키마를 변경하지 않으면서 내부 스키마를 변경하는 능력(= 내부 스키마가 변해도 개념/외부 스키마가 변화하지 않음)
    3. 특징
      • 두 레벨 사이에 있는 사상(mapping)이 스키마가 변하는 것을 차단하고 자신이 변화함

     

     

     

    6. 3단계 구조와 데이터 독립성의 관계

    데이터 독립성을 어떻게 구현하는가? -> 3단계 구조로 만들면 된다.

    왜 3단계 구조로 만드는 것인가? -> 데이터 독립성을 제공하기 위해서

     

     

     

     

    7. 데이터베이스 언어

    1. 데이터 정의어(DDL: Data Definition Language)
      • 데이터베이스 관리자(DBA)나 데이터베이스 설계자(DB Designer)가 사용하고 스키마를 정의함
      • 종류에 따라 저장 구조 정의어(SDL: Storage Definition Language)와 뷰 정의어(VDL: View Definition Language)가 있음
    2. 데이터 조작어(DML, Data Manipulation Language)
      • 데이터에 대한 검색, 삽입 삭제, 수정을 하는 언어
      • 비절차적 데이터 조작어(Nonprocedural DML, High level DML)
        • 사용자가 무슨 데이터를 원하는지만 적고, 어떻게 접근하여 데이터를 처리할지는 설명하지 않음
        • 한 데이터 조작어 명령어로 여러 개의 레코드들을 검색할 수 있어서 set-of-records-at-a-time DML(set-of-a-time DML), set-oriendted DML이라고도 부름
        • 어떤(which) 데이터를 추출할 것인가만 적기 때문에 선언적(declarative) 언어라고도 부름
      • 절차적 데이터 조작어(Procedural DML, Low level DML)
        • 무슨 데이터를 원하는지, 어떻게 접근하여 데이터를 처리할지 전부 사용자가 지정함
        • 한 데이터 조작어 명령어로 한 개의 레코드, 객체 단위로만 처리할 수 있어서 record-at-a-time DML이라고도 부름
    3. 범용 프로그래밍 언어 내에 데이터 조작어 명령어가 삽입된 경우에 범용 프로그래밍 언어는 호스트 언어(host language)라고 부르고, 데이터 조작어는 데이터 부속어(data sublanguage)라고 부름
    4. 질의어(query language): 독립적이고 대화식으로 사용할 수 있는 언어
    5. SQL: 포괄적인 통합형 언어(Comprehensive integrated language), 국제 표준

     

     

     

    8. DBMS 구성 모듈

    1. 저장 데이터 관리자(SDM: Stored Data Manager)
      • 디스크에 저장되어 있는 DBMS의 정보(데이터베이스 or 카탈로그)에 대한 접근을 제어
      • 디스크에 대한 접근은 디스크의 입출력을 스케줄하는 운영체제가 제어함
      • 하지만 성능에 큰 영향을 줄 수 있는 버퍼 관리(buffer management)는 별도로 관리함
    2. DDL 컴파일러
      • 스키마를 정의하므로 스키마들에 대한 정보(meta-data)를 DBMS 카탈로그 안에 저장
    3. 런타임 데이터베이스 처리기(Runtime Database Processor)
      • 데이터베이스 접근에 대한 모든 기능을 담당. 검색/갱신 연산을 받아서 DB에 적용이 되게함
    4. 질의(query) 컴파일러
      • 질의어(query language)를 번역해서 질의 최적화(query optimizer)에 보내 효율적인 방법을 선택하고, 런타임 데이터베이스 처리기로 보냄
    5. 프리컴파일러(precompiler)
      • 호스트 언어로 작성된 코드에서 DB쪽 코드를 분리하여 호스트 언어와 데이터 부속어를 각각 다른 컴파일러로 돌릴 수 있게 구분해줌

     

     

    9. 데이터베이스 시스템 유틸리티

    1. 적재(loading)
    2. 백업(backup)
    3. 파일 재조직(file reorganization)
    4. 성능 모니터링(performance monitoring)

     

     

    10. 도구, 응용 환경, 통신 장비

    1. CASE Tools, Data Dictionary(data repository) system, Information repository
    2. 응용 개발 환경(Application Development Environment)
    3. 통신 소프트웨어(communications software)

     

     

    11. 컴퓨터 시스템 환경

    1. 중앙집중식 DBMS 아키텍처(Centralized DBMS Architecture)
      • 하나의 컴퓨터에 모든 DBMS의 기능, 응용 프로그램 수행, 사용자 인터페이스 처리 등이 수행되었음
      • 유저들은 단말기나 컴퓨터를 통해 서버에 접속하고, 서버에서 모든 일을 함
    2. 클라이언트/서버 아키텍쳐(Client/Server Architecture)
      • 웬만한 일은 단말기에서 하고, 중요한 일만 서버에서 함
      • 서버는 서비스를 해주고, 클라이언트는 서비스를 요청함
      • 어떤 서비스냐에 따라 File / Printer / Web / DBMS 서버로 나뉨

     

     

    12. 2층 클라이언트/서버 아키텍쳐(Client/Server Two Tier Architecture)

    1. 특징
      • 서비스를 해주면서 동시에 서비스 요청도 함
      • SQL처리와 관련된 질의와 트랜잭션 기능이 서버에 남아있으면 SQL Server / Query Server / Transaction Server라고 부름
      • 클라이언트: 인터페이스 프로그램, 응용 프로그램
    2. ODBC(Open Database Connectivity)
      • 클라이언트에 제공되는 API(Application Programming Interface) 규칙에 따라서 작성하면 어느 DBMS든지 접근이 가능함
      • 대부분의 DBMS 업체는 ODBC 드라이버만 제공하면 끝
    3. JDBC(Java Database Connectivity)
      • 자바 언어를 위한 표준

     

     

    13. 3층/N층 클라이언트/서버 아키텍쳐(Client/Server Three/N Tier Architecture)

    1. 중간 계층(Intermediate Layer, Middle Tier)를 응용 서버나 웹 서버라고 부름
    2. 응용 프로그램들을 수행하고, 데이터베이스 서버에 저장된 데이터에 접근하는데 사용되는 비즈니스 규칙들을 저장함으로써 유저와 서버 사이의 연결점 역할을 수행함

     

     

    14. DMBS의 분류

    1. 데이터 모델에 따른 분류
      • 관계(relational) / 계층(hierarchical) / 네트워크(networks) / 객체(object) / 객체-관계(object-related) 데이터 모델, XML(eXtened Markup Language), DBMS등이 있음
      • 빅데이터 시스템은 NOSQL
    2. DBMS가 허용하는 사용자의 수
      • 단일 사용자 시스템(Single user system)
      • 다수 사용자 시스템(Multi user system)
    3. 데이터가 분산되어 있는 사이트의 수
      • 중앙집중식 DBMS(Centralized DBMS)
      • 분산 DBMS(DDBMS: Distribute DBMS)
        • 동질 분산 DBMS(homogeneous DDBMS): 모든 사이트에서 같은 DBMS를 사용
        • 이질 분산 DBMS(heterogeneous DDBMS): 각 사이트에서 다른 DBMS를 사용
        • 연합 DBMS(Federated DBMS): 여러 이질 DBMS가 저장하고 있는 데이터베이스에 접근하기 위한 중간 층 소프트웨어를 개발하여 사용하는 DBMS
    4. 비용
    5. 엑세스 경로 유형 옵션 - 역파일 구조(검색엔진)을 위한 전용 DBMS
    6. 목적(특수 목적이냐 범용 목적이냐)
    반응형

    댓글

Designed by Tistory.