1. 데이터베이스

    2.1 데이터베이스 언어

  • 데이터베이스 언어
    • DBMS는 사용자가 데이터베이스를 쉽게 사용하고 다룰 수 있도록 언어 형태의 인터페이스를 제공
  • 역할
    • 데이터 정의 언어(Data Definition Language, DDL)
    • 데이터 조작 언어(Data Manipulation Language, DML)

         

  • 데이터 정의 언어(DDL)
    • 데이터베이스 스키마를 정의하기 위한 언어

         

    • DDL의 요구조건
      • 데이터 모델에 따라 애플리케이션 프로그램이 요구하는 데이터의 논리적 구성, 특징을 규정
      • 데이터가 기억장치에 저장되도록 데이터의 물리적 구성을 규정
      • 물리적 구성을 논리적 구성으로 변환이 가능하도록 데이터의 물리적 구성과 논리적 구성간의 사상을 규정
    • 제약사항 기술
      • 도메인 제약사항: 속성 값이 도메인 내의 값이어야 함
      • 참조 무결성: 한 릴레이션에 나타난 값이 다른 릴레이션의 값으로 정확하게 연결됨을 보장
      • 검증: 데이터베이스가 항상 만족해야하는 조건
      • 권한: 읽기 권한, 삽입 권한, 수정 권한, 삭제 권한 등

           

  • 데이터 조작 언어(DML)
    • 구조화된 데이터에 사용자가 접근 및 조작할 수 있도록 지원하는 언어(검색, 삽입, 삭제, 수정)
    • DML의 요구조건
      • 데이터 조작 기능이 쉬워야 함
      • 데이터 조작 기능이 정확하고 완전해야 함
      • 사용자의 요청이 시스템 내부에서 효과적으로 처리
    • 종류
      • 절차적 DML : 어떤 순서에 입각하여 처리, 효율성 높음
      • 선언적 DML(비절차적) : 필요한 데이터가 무엇인지만 기술, 내부의 처리과정은 사용자가 기술하지 않음, 효율성 낮음

        Ex) SQL

           

           

    2.2 DMBS의 구성요소

  • 질의 처리기

   

   

  • 저장 관리자와 디스크 저장소

       

       

       

       

    2.3 트랜잭션 관리

    • 트랜잭션은 하나의 논리적인 작업을 처리하기 위한 일련의 데이터베이스 명령의 집합
  • ACID 특성
    • 데이터베이스의 일관성을 위해 반드시 만족해야 하는 조건
      • 원자성(atomicity): 트랜잭션에 포함된 명령어가 일부분만 실행되지 않는다
      • 일관성(consistency): 트랜잭션 수행이 완료되면 데이터베이스는 일관적인 상태가 된다
      • 독립성(isolation): 한 트랜잭션의 실행은 다른 트랜잭션으로부터 방해 받지 않는다
      • 지속성(durability): 정상적으로 종료된 트랜잭션의 결과는 DBMS의 어떠한 오류에도 보존된다.

           

           

    2.4 데이터베이스 시스템 아키텍처

    • 중앙 집중식 방식
      • 단일 서버가 다수의 클라이언트 장치를 대신하여 작동
      • 중앙 컴퓨터의 과부하로 전체적인 성능 저하
    • 분산 시스템 방식
      • 클라이언트 장치의 성능 향상으로 자체적인 처리능력 보유
      • 클라이언트-서버 데이터베이스 시스템
        • 애플리케이션 프로그램의 부하를 분산
        • 소프트웨어의 유지보수 비용을 절감
        • 소프트웨어 이식성이 증가
      • 클라이언트-서버 구조

        => 3계층의 경우 애플리케이션 서버가 존재하므로 앱 프로그램의 유지보수가 간편하며, 가볍다.

       

       

    2.5 데이터베이스 사용자 및 관리자

    • 데이터베이스 사용자와 사용자 인터베이스
      • 일반 사용자: 애플리케이션 프로그램을 사용해 데이터베이스 시스템이 접근하는 비전문 사용자
      • 애플리케이션 프로그래머: 애플리케이션 프로그램을 작성하는 컴퓨터 전문가
      • 전문 사용자: 프로그램 없이 SQL, 데이터 분석 소프트웨어를 사용하여 DBMS를 조작하는 사용자
      • 특수 사용자: 전문 사용자 중 특수한 데이터베이스 애플리케이션을 작성하는 사용자

        => 각 사용자마다 봐야 할 부분이 다르며 이는 뷰가 필요한 이유임

           

    • 데이터베이스 관리자(Database Administrator; DBA)
      • 데이터베이스와 DBMS, 그리고 관련 소프트웨어를 관리, 감독하는 사용자
    • 역할
      • 여러 사용자(애플리케이션 프로그램)가 필요로 하는 정보에 대한 요건을 설정
      • 뷰 제공
      • 사용자와 시스템 분석가, 프로그래머 사이의 중재자 역할을 수행
      • 데이터 처리의 경제적 효율성을 극대화

           

      • 설계
        • 데이터의 논리-물리 사상과 개념-논리 사상을 명시하며 데이터 사전을 구성하고 유지
        • 보안, 예비조치, 회복 절차 등을 마련하여 데이터베이스의 무결성을 유지
      • 관리
        • 사용자 요구에 맞지 않는 부분들을 파악
        • 데이터베이스 관리를 위해 데이터 표현 방법과 시스템 문서화에 대한 기준을 결정
      • 운용 및 통제
        • 변화하는 사용자의 요구에 따른 효율적인 데이터 접근과 처리를 위해

          최적의 물리적 저장구조, 저장매체를 선택하고 성능을 측정

        • 데이터베이스에 대한 접근을 통제
      • 성능측정
        • 데이터베이스의 효율성과 경제적인 효용성을 높이기 위하여 시스템 내의 자원 사용도,

          병목현상, 장치의 성능 등을 파악하여 시스템 성능을 분석

        • 물리적 저장구조를 재구성하여 효율성을 극대화

'데이터베이스' 카테고리의 다른 글

06 정규화 I  (0) 2016.03.10
05 SQL  (0) 2016.03.09
04 관계형 모델  (0) 2016.03.09
03 데이터베이스 모델링  (0) 2016.03.08
01 데이터베이스 개요  (0) 2016.03.06
Posted by redcode.
,