1. 데이터베이스 모델링

    3.1 데이터베이스 모델링 과정

  • 데이터베이스 모델링 과정

   

  • 사용자 요구사항 분석 단계
    • 요구사항 분석
      • 도출된 요구사항의 명확성, 완전성, 모호성 검증
      • 요구사항을 분류하여 통합 또는 분리
      • 불완전한 부분이 존재할 경우 요구사항 도출단계 재수행

    • 요구사항 기록
      • 요구사항 목록 정리 및 관리자의 승인
      • 정리된 요구사항을 형식에 맞춰 문서화
      • 프로젝트 종료 때까지 반영 여부 지속적 관리

   

  • 데이터 모델링

    시스템 대상이 되는 업무를 분석하여 정보 시스템을 구축하는 설계 과정에서

    업무의 내용을 적절한 표기법으로 표현하는 것

       

    • 모델링의 관점
      • 데이터 관점: 업무과 관련된 데이터는 무엇인지, 데이터 간의 관계는 무엇인지 모델링
      • 프로세스 관점: 업무를 통해 어떤 일을 처리하는지 모델링
      • 데이터와 프로세스 상관 관점: 업무 처리를 통해 데이터가 어떻게 영향을 받는지 모델링
    • 개념적 데이터 모델링
      • 요구사항이 잘못 해석되는 오류를 피하기 위해 추상화 기법 사용
      • 현실세계의 데이터들을 개념적으로 일반화시킨 데이터 타입, 속성, 관계, 제약조건을 이끌어내는 과정
    • 논리적 데이터 모델링
      • 특정 DBMS에 맞추어 데이터를 표현하는 과정
      • 데이터 정의 언어로 기술된 논리 스키마 생성
    • 리적 데이터 모델링
      • 데이터베이스 파일의 내부 저장구조, 파일 구성, 인덱스, 접근 경로 등을 결정

           

           

    3.2 ER 모델

    1976년 카네기 멜론 대학의 Perter Chen에 의하여 제안

    개념적 데이터 모델링의 대표적인 기법으로 현실세계의 속성들로 이루어진 개체(Entity)와

    개체 사이의 관계(Relation)를 정형화 시킨 모델

       

    • 구성요소
      • 개체집합
      • 관계집합
      • 속성
      • 제약조건

           

  • 개체 집합
    • 개체(entity)
      • 현실세계에 존재하는 다른 모든 객체와 구별되는 유,무형의 사물로 여러 속성들로 구성
      • 조직 내부의 업무 처리 대상이 되는 데이터
    • 개체 집합(entity set)
      • 같은 속성을 공유하는 개체들의 모임

           

  • 관계 집합
    • 관계
      • 개체와 개체 사이의 연관성을 표현
      • 업무 프로세스와 관련된 개체를 명시
    • 관계 집합
      • 개체 집합 간의 연결 관계

           

  • 속성

    개체를 구체적으로 설명하는 특성

    속성에 포함될 수 있는 값의 특성에 따라 여러 종류로 구분

       

    • 속성의 종류
      • 단순 속성과 복합 속성
      • 단일값 속성과 다중값 속성
      • 유도 속성과 저장 속성
      • 널(null) 속성

           

    • 단순 속성과 복합 속성
      • 단순 속성: 더 이상 작은 구성요소로 나눌 수 없는 속성
      • 복합 속성: 더 작은 구성요소로 나눌 수 있는 속성
    • 단일값 속성과 다중값 속성
      • 단일값 속성: 하나의 개체에 대해 단 하나의 값만을 갖는 속성
      • 다중값 속성: 하나의 개체에 대해 여러 개의 값을 갖는 속성
    • 유도 속성과 저장 속성
      • 유도 속성: 다른 속성의 값으로부터 값이 유추될 수 있는 속성
      • 저장 속성: 유도 속성을 위해 사용되는 속성
    • 널 속성
      • 특정 개체가 일부 속성값을 가지지 못하여 널(null) 값을 갖는 속성
        • 특정 개체가 가지는 속성값을 모르는 경우
        • 특정 개체에 일부 속성이 적용될 수 없는 경우

             

  • 제약 조건

    ER 모델은 관계에 대한 표현을 명확하게 하기 위해 데이터베이스가 항상 준수해야 하는

    제약조건(constraints)을 정의할 수 있는 방법을 제공

    • 제약조건의 종류
      • 사상수
      • 참가 제약조건
      • 키 속성
    • 사상수(mapping cardinality)
      • 관계 집합에 참가한 개체 집합들에 대해 각각의 개체가 얼마만큼의 관계를 맺을 수 있는지 명시한 수
      • 일대일, 일대다, 다대다 사상수 표현
    • 참가 제약조건(participation constraints)
      • 전체적 참가: 어떤 개체 집합의 모든 개체가 특정 관계 집합에 참여 하는 조건
      • 부분적 참가: 어떤 개체 집합의 일부 개체가 특정 관계 집합에 참여 하는 조건
    • 키 속성
      • 각 개체를 구별하는데 사용되는 유일한 값을 가지는 속성의 집합
    • 특수 관계
      • 관계 집합의 속성: 두 개체 집합의 관계에서 생성되는 값을 저장
      • 재귀적 관계: 한 개체 집합 자기 자신과 관계 집합을 형성하는 관계
      • 약한 개체 집합
        • 개체의 존재 유무가 관계를 맺고 있는 개체의 존재에 종속되는 개체 집합
      • 강한 개체 집합
        • 약한 개체 집합과 연결되는 일반 개체 집합

           

    3.3 ER 모델의 예

       

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

06 정규화 I  (0) 2016.03.10
05 SQL  (0) 2016.03.09
04 관계형 모델  (0) 2016.03.09
02 데이터베이스  (0) 2016.03.07
01 데이터베이스 개요  (0) 2016.03.06
Posted by redcode.
,
  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.
,

1.1 데이터베이스 시스템 개요

방대한 양의 데이터를 효과적으로 처리하기 위해 등장

   

1.2 DBMS의 목적

  • 기존 파일 처리 시스템의 문제
    • 데이터 독립성의 문제
      • 논리적 데이터 독립성
      • 물리적 데이터 독립성
    • 데이터 중복성의 문제
      • 일관성: 하나의 데이터는 하나의 값
      • 보안성: 같은 데이터는 같은 수준의 보안 유지
      • 경제성: 중복 저장은 추가적 공간 비용 발생
    • 무결성 보장 문제
      • 데이터의 정확성(규약) 보장
      • 검증 프로그램에 의한 통제 => 많은 기능으로 앱이 비대해짐
    • 동시 액세스 문제
      • 동일 데이터의 다수 사용자 접근 허용

           

  • 데이터베이스 관리 시스템(DBMS)의 사용

       

    => 데이터의 사용과 관리를 완전히 분리시킴

       

    • 용어 정의
      • 데이터(data): 어떠한 사실에 대한 정량적, 정성적 특징을 나타낼 수 있는 값과 설명

        => 값 + 메타데이터(값에 대한 수식항목)

      • 데이터베이스(database): 특정 기관의 애플리케이션 시스템에서 사용되는 데이터의 집합
      • 데이터베이스 관리 시스템(DBMS):

        데이터베이스에 저장된 데이터의 구성, 저장, 관리, 사용을 위한 소프트웨어 패키지

      • 데이터베이스 시스템:

        정보를 데이터베이스에 저장,관리하여 사용자에게 요구된 형태의 정보로 제공하는 컴퓨터 기반 시스템

           

         

         

    1.3 DBMS의 특징

  • 데이터베이스의 특징
    • 데이터베이스 시스템의 자기 기술성(self-describing)
      • 데이터베이스에 포함된 데이터와 더불어 데이터베이스의 정의(스키마)나 설명(메타데이터)를 포함
    • 프로그램과 데이터의 격리 및 추상화
      • 사용자에게 데이터에 대한 개념적인 표현을 제공
      • 데이터베이스에 대한 접근성을 향상
    • 다중 뷰 제공
      • 사용자들의 필요에 따라 서로 다른 관점의 데이터가 필요
      • 각 사용자에게 자신이 관심을 가지는 데이터베이스의 일부만을 표현하는 뷰(view)를 제공
    • 데이터 공유와 다수 사용자 트랜잭션 처리
      • 다수의 데이터 조작 요청에도 트랜잭션을 이용한 동시성제어(concurrency control) 기능을 통해

        데이터의 일관성 보장

           

  • DBMS의 구조

    => 데이터 추상화와 데이터 독립성을 확보하기 위한 구조

       

    • 인스턴스
      • 특정 시점에서 데이터베이스에 저장된 정보 집합을 의미(상태 개념)
      • 시간이 지남에 따라 데이터베이스 인스턴스는 지속적으로 변화
    • 스키마
      • 데이터가 가지는 형식을 결정하는 전반적인 구조를 의미
      • 인스턴스와는 달리 데이터베이스 스키마는 드물게 변경됨

           

    • 개념-논리 사상
      • 논리적 데이터의 독립성을 확보
    • 논리-물리 사상
      • 물리적 데이터의 독립성을 확보

         

    1.4 데이터 모델

    • 사용 가능한 데이터만을 선별하여 구조화된 데이터베이스에 저장,사용할 방법 필요
    • 데이터 모델
      • 의미, 데이터 타입, 연산 및 제약조건을 명시하기 위해 사용할 수 있는 개념들의 집합
      • 관계형 모델, ER 모델, 객체지향적 모델 등
    • 데이터 모델링
      • 현실세계의 일부분을 DBMS가 지원하는 데이터 모델의 형태로 나타내는 과정

           

  • ER모델
    • 현실세계 인식에 기초하여 개체(object)를 나타내는 개체(entity)들과 개체들 간의 관계(relationship)로 구성

         

  • 관계형 모델
    • 릴레이션이라고 하는 표 형태의 데이터 구조를 사용하여 데이터를 저장

         

  • 객체지향적 모델
    • 객체들을 기반으로 데이터베이스를 구성
      • 캡슐화를 유지, 프로그램과 데이터 간의 불일치 감소
      • 자유로운 사용자 정의 데이터 타입
    • 빠른 DBMS 접근속도
      • 객체는 유일한 OID로 구별
      • DBMS는 OID를 이용 객체에 직접 접근
    • 다중 상속을 통한 정보 최적화
      • 다른 클래스들로부터 필요한 특징을 다중상속(기존에 제작된 데이터 구조를 재활용 가능)

           

  • 데이터 베이스 모델링

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

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