방송대 컴퓨터과학과/데이터베이스시스템

방송대 데이터베이스시스템 - 2강. 데이터베이스 모델링

꼽파 2023. 5. 20. 18:36


  • 1. 데이터베이스 모델링의 이해

  • 2. 사용자 요구사항 분석

  • 3. ER 모델

  • 1. 데이터베이스 모델링의 이해

    데이터베이스 모델링의 필요

    • 데이터베이스 모델링 과정의 필요성

    - 프로그램에서 요구되는 현실 세계의 정보를 모두 반영하면서 데이터에 대한 오류 혹은 왜곡이 존재하지 않아야 함.
    - 응용 프로그래머, 데이터베이스 설계자, 의뢰인 등과 상호 의사소통을 위한 단계적 절차를 제공해야 함.

     

    두 가지 관점의 모델링
    - 비즈니스적 관점 : 어떤 데이터를 저장해야 하는가? (사용자 요구사항 분석, 개념적 데이터 모델링)
    - 컴퓨터 프로그래머 관점 : 어떻게 데이터를 저장해야 하는가? (물리적 데이터 모델링)


    데이터베이스 시스템 구현 과정

    출처 : 2강 강의록

     일반적인 애플리케이션 구현 과정

    - 데이터베이스를 사용하는 프로그램 설계 과정

    기능 분석 → 애플리케이션 프로그램 설계 →  [ 애플리케이션 아키텍처 ] → 애플리케이션 프로그램 구현 →  [ 애플리케이션 ]

     

     데이터베이스 시스템 구현 과정

    - 실제 데이터베이스 모델링 과정

    사용자 요구사항 분석 → 개념적 데이터 모델링 → [ ER 모델 ] → 논리적 데이터 모델링 → [ 개념 스키마 ] → 물리적 데이터 모델링 → [ 내부 스키마 ]

     

     DBMS 독립적/의존적 단계

    - DBMS 독립적 : 기능적 요구사항 분석, 사용자 요구사항 분석, 개념적 데이터 모델링, 논리적 데이터 모델링

    - DBMS 의존적 : 애플리케이션 프로그램 설계, 애플리케이션 프로그램 구현, 물리적 데이터 모델링


    데이터베이스 모델링의 개념 및 단계

    • 데이터 모델

    - 필요성 : 사용할 데이터를 선별하여 데이터베이스에 체계적으로 구조화하여 저장, 사용할 방법이 필요

    - 정의 : 의미, 데이터 타입, 연산 등을 명시하기 위해 사용할 수 있는 개념들의 집합

     

     데이터 모델링(data modeling)

    - 데이터에 대한 요구사항을 정의하고 분석하여 추상화하는 과정

    - 데이터의 의미를 파악하고 데이터와 관여하는 업무(기능) 프로세스를 개념적으로 정의하고 분석하는 작업

    - 실세계의 일부분을 DBMS가 지원하는 데이터 모델의 형태로 나타내는 과정

     

    • 데이터 모델링 단계

    출처 : 2강 강의록

     

    개념적 데이터 모델링 → 논리적 데이터 모델링 → 물리적 데이터 모델링

    개념적
    데이터
    모델링
    데이터에 초점을 맞추어 개별적 데이터의 특징을 분리
    요구사항의 해석 오류를 방지
    를 위해 추상화 기법을 사용

    추상화 기법 : 실세계의 데이터들을 개념적으로 일반화시켜 데이터 타입, 속성, 관계, 제약조건들을 이끌어 내는 과정
    개체와 개체 간의 관계를 통해 표현하는 ER 모델이 대표적임.
    논리적
    데이터
    모델링
    특정 DBMS의 구현 모델에 맞춰 데이터를 표현하는 과정
    일반적으로 관계형 모델을 사용함.
    → 데이터 정의 언어(DDL)로 기술된 개념 스키마 생성
    물리적
    데이터
    모델링
    논리적 데이터 모델을 특정 DBMS에 최적화된 물리적 구조로 변환하는 과정
    데이터베이스 파일의 내부 저장구조, 파일 구성, 인덱스, 접근 경로 등을 결정하는 과정
    내부 스키마 생성

    2. 사용자 요구사항 분석

    사용자 요구사항의 필요성

    사용자의 요구를 명세하지 않고 데이터베이스 설계 및 개발을 진행하는 경우 문제가 발생함.
    - 결과물의 완성도 저하 및 사용자 신뢰도 추락
    - 개발 후 발생하는 에러 수정에 많은 추가 비용 지출

    시스템의 대상이 되는 업무를 분석하기 위해 필요함.
    - 정보 시스템의 데이터베이스가 신속하고 효과적으로 업무 처리를 지원하기 위해
    - 필요한 데이터를 저장 및 운용할 수 있는 구조 개발하기 위해 

    데이터에 대한 충분한 사전분석 없이 적절한 설계가 불가능함.
    - 데이터베이스의 활용 범위가 확대됨에 따라 데이터베이스의 효율적 운용에 초점
    - 데이터베이스의 구조가 점차 복잡해지고 수명 주기가 단축되고 있기 때문에 신속, 정확성이 요구됨.


    사용자 요구사항 분석

    [ 제안요청서(RFP) ] → 요구사항 도출 → [ 요구사항 명세서 ] → 요구사항 분석 → [ 요구사항 정의서 ] → 요구사항 기록

    요구사항 도출 - 구축대상, 프로젝트 목표, 범위를 기준으로 조사범위를 결정
    - 업무 관계자 인터뷰
    - 외부자료 수집 및 분석
    요구사항 분석 - 도출된 요구사항의 명확성, 완전성, 모호성 검증
    - 불완전한 부분이 존재할 경우 요구사항 도출단계 재수행
    - 요구사항을 분류하여 통합 또는 분리
    요구사항 기록 - 요구사항 목록 정의 및 관리자 승인
    - 정리된 요구사항을 형식에 맞춰 문서화
    - 프로젝트 종료 때까지 반영 여부 지속적 관리

    3. ER 모델

    ER 모델의 개념

    - 1976년 카네기 멜론 대학의 P. Chen 박사 제안
    - 실세계의 속성들로 이루어진 개체(entity)와 개체 사이의 관계(relationship)을 정형화시킨 모델
    - 개념적 모델링 단계에서 사용되는 데이터 모델
    - 데이터 구조와 관계를 ER 다이어그램(ERD)으로 표현
    ·구성요소 : 개체 집합, 관계 집합, 속성

    - ER 모델에서 기본적인 요소는 개체 집합이며, 개체 집합은 속성의 집합으로 구성됨.


    개체 집합

     개체(entity) : 실세계에 존재하는 다른 객체와 구별되는 유무형의 사물로, 개체를 설명하는 여러 속성들로 구성됨.

     개체 집합(entity set) : 같은 속성을 공유하는 개체들의 모임

    출처 : 2강 강의록

    각 개체는 각 속성에 대한 값(value)을 가짐.

    - 개체 : 학생, 속성 : 학생번호, 학생이름, 성별, 나이

    - 학생 개체는 '학생번호' 으로 '201934-021216', '이름' 으로 '유관순', '나이' 으로 '17'을 가짐.

     

    MySQL 워크벤치에서는 ER 표기법보다는 UML(Unified Modeling Language, 통합 모델링 언어) 표기법을 사용함.

    - 키(key) : 개체를 고유하게 식별하기 위해 사용되는 속성
    - 속성(attribute) : 개체의 특징이나 특성을 나타내는 정보
    - 도메인(domain) : 속성이 가질 수 있는 범위 값으로 데이터 타입과 관련하여 속성에 적용됨(정수형, 실수형, 문자열, 날짜 등)


    관계 집합

     관계 : 개체와 개체 사이의 연관성

     관계 인스턴스(relationship instance) : 관계에 속하는 개체들의 실제 인스턴스(개체)
     관계 집합 :

    - 개체 집합 간의 전체적 연결 관계

    - 같은 유형의 관계 인스턴스들의 집합으로, 2개 이상의 개체 집합 간의 수학적 연결 관계

    출처 : 2강 강의록

    참가(participate) 한 개체 집합이 다른 개체 집합과 연관성을 가지는 것
    ex. '전공' 은 '학생' 개체 집합과 '학과' 개체 집합이 참가한 관계 집합임.
    차수(degree)  관계 집합에 참여하는 개체 집합의 수
    ex. '전공' 관계 집합의 차수는 2 (학생, 학과)
    역할(role) 관계에 참가하는 개체의 기능
    일반적으로 관계 집합에 참가하는 개체 집합들은 역할 구별이 쉽게 이루어지기 때문에 묵시적으로 정해짐.
    재귀적 관계 집합의 경우에는 역할을 명시해 주어야 함.

    속성(Attribute)

     속성의 개념

    - 개체 집합에 속한 개체를 구체적으로 설명하는 특성
    - 속성에 포함될 수 있는 값의 특성에 따라 여러 종류로 구분됨.

     

     속성의 종류

    - 단순 속성과 복합 속성

    - 단일값 속성과 다중값 속성

    - 유도 속성과 저장 속성

    - 널(null) 속성 : 해당 속성에 대한 값이 없음을 의미함.

    단순 속성(simple attribute) 
    - 더 이상 작은 구성요소로 나눌 수 없는 속성

    복합 속성(composite attribute) 
    - 더 작은 의미단위로 나누어질 수 있는 속성
    들여쓰기 형태로 표현됨.
    ex. 생년월일은 연, 월, 일로 나누어질 수 있음.
    단일값 속성(single valued attribute)
    - 하나의 개체에 대해 단 하나의 값만을 갖는 속성
    ex. 학생번호, 학생이름 등

    다중값 속성(multivalued attribute)
    - 하나의 개체에 대해 여러 개의 값을 갖는 속성
    - 집합기호 '{ }'를 사용하여 표현함.
    ex. 전화번호
    유도 속성(derived attribute)
    - 다른 속성의 값으로부터 값이 유추될 수 있는 속성
    - 괄호 '( )'를 사용하여 표현함.
    ex. 나이 - 생일에서 연산할 수 있는 정보

    저장 속성(stored attirubute)
    - 유도 속성을 위해 사용될 수 있는 속성

    제약조건

    - 데이터 모델은 데이터, 의미, 구조, 연관성 및 데이터의 조건을 표현하기 위한 도구
    - ER 모델은 개체와 관계에 대한 표현의 정확성을 위해 데이터가 항상 준수해야 하는 제약조건을 정의할 수 있는 방법을 제공함.

     

    · 제약조건(constraints)의 종류
    - 사상수 : 일대일, 일대다, 다대일, 다대다
    - 참가 제약조건 : 전체적 참가, 부분적 참가
    - 키 속성 : 각 개체를 구별하는데 사용되는 유일한 값을 가지는 속성의 집합

     

    • 사상수(mapping cardinality)

    관계 집합에 참가한 개체 집합들에 대해 각각의 개체가 얼마만큼의 관계를 맺을 수 있는지 명시한 수

    일대일 사상수 표현 일대다 사상수 표현
    학사 시스템에서 학생 중 계좌정보를 연동한 경우 
    한 학생마다 오직 하나의 계좌 정보를 보유하고, 그 한 계좌는 오직 학생에게만 '보유'됨.
    → 두 개체 집합 사이에는 일대일 관계가 성립함.
          = 보유 관계 집합은 일대일 관계
    학사 시스템에서 교수진이 강의하는 과목 정보 관리
    한 과목은 한 명의 교수만 '강의'할 수 있고,
    한 명의 교수는 여러 과목을 '강의'할 수 있다고 함.
    → 두 개체 집합 사이에는 일대다 관계가 성립함.
         = 강의 관계 집합은 일대다 관계
    집합 = 다이아몬드, 속성 = 직사각형
    두 객체집합을 각각 화살표가 있는 실선으로 연결함.
    일(1)쪽은 화살표가 있는 실선, 다(N)쪽은 화살표가 없는 실선
    다대일 사상수 표현 다대다 사상수 표현

    -
    - 한 학생이 여러 과목을 수강하고, 
    한 과목은 여러 학생에 의해 수강된다면
    → 학생과 과목 사이의 '수강' 관계집합은 다대다 관계
    -
    - 두 개체 집합을 모두 화살표가 없는 실선으로 관계집합과 연결

     

    • 참가 제약조건(participation constraints)

    관계에 참여하는 개체 집합의 범위

    - 전체적(total) 참가 : 어떤 개체 집합의 모든 개체가 관계 집합에 참여 하는 조건, 이중 실선

    - 부분적(partial) 참가 : 어떤 개체 집합의 일부 개체가 관계 집합에 참여 하는 조건, 실선

     

    • 키(key) 속성

    - 개체 집합의 각 개체마다 서로 다른 값을 가지는 속성의 집합

    - 각 개체를 구별하는데 사용되는 유일한 값을 가지는 속성 집합

    - 속성의 이름에 밑줄 표시

    학생 개체 집합에서 키의 예시 참가 제약조건 예시
    학생번호는 학생에 따라 유일한 값을 가지는 속성
    학생이름은 동명이인이 있을 수 있으므로 키가 될 수 없음.
    모든 '과목' 개체 집합은 특정 '교수'와 관계를 맺어야 하므로 전체참가여야 함.
    강의를 하지 않는 특정 '교수'는 '강의' 관계에서 부분 참가할 수 있음.

    특수 속성과 관계

     

    재귀적 관계집합(recursive relation set)

    - 한 개체 집합과 관계 집합 사이에 두 개의 실선으로 표현

    - 관계집합의 역할을 기술함.

    출처 : 2강 강의록


    약한 개체 집합

    - 개체의 존재 유무가 관계를 맺고 있는 개체의 존재에 종속되는 개체 집합 (상대적인 개념)

    - 일대다 관계 사상수를 가지며, 강한 개체 집합과 연결되어야 함.
    - 약한 개체 집합을 구별하는 키는 강한 개체 집합의 키와 결합하여 구성되어, 점선으로 밑줄을 삽입.
    - 약한 개체 집합과 연결된 관계 집합은 이중선으로 표기함.


    강한 개체 집합

    - 약한 개체 집합과 연결되는 일반 개체 집합

     

    출처 : 2강 강의록

    한 학생당 하나의 계좌를 부여할 경우, 학생이 없어지면 계좌 개체도 같이 없어지도록 함.

    학생강한 개체, 학생에 종속되는 계좌약한 개체

    728x90