Home [데이터베이스 시스템] 2강 - 데이터베이스 모델링
Post
Cancel

[데이터베이스 시스템] 2강 - 데이터베이스 모델링

💡해당 게시글은 방송통신대학교 정재화 교수님의 '데이터베이스 시스템' 강의를 개인 공부 목적으로 메모하였습니다.



학습 개요


  • 데이터베이스를 구축하기 이전에 반드시 선행되어야 하는 작업은 데이터를 조직화하여 저장할 수 있는 명확한 체계를 설계하는 것이다.
  • 서로 복잡하게 연관되어 있는 실 세계의 데이터를 명확한 구조화 없이 곧바로 DBMS 입력하여 사용하는 경우 효율적인 데이터 처리가 불가능해진다.
  • 효과적인 데이터베이스 구조를 도출하기 위해 필요한 전반적인 데이터베이스 모델링 과정에 대하여 살펴보고 초기 단계인 사용자 요구 사항 분석과 개념적 데이터 모델링에서 사용하는 ER 모델의 요소 및 ER 모델링 방법에 대하여 학습한다.



주요 용어


  • 사용자 요구 사항 분석
    • 사용자가 원하는 애플리케이션 프로그램의 요구 사항을 만족하는 데이터베이스를 모델링 하기 위해 실제 업무에서 사용되는 데이터의 종류와 특징을 폭넓게 파악하는 과정
  • 개념적 데이터 모델링
    • 실 세계의 데이터를 개념적으로 일반화 시켜 데이터 구조, 데이터 타입, 속성, 관계, 제약 조건 등을 이끌어내는 과정
  • ER 모델
    • 실 세계의 속성들로 이루어진 개체(entity)와 개체 사이의 관계(relationship)를 정형화 시킨 모델
  • 개체 집합
    • 실 세계에 존재하는 다른 객체와 구별되는 유, 무형의 사물의 집합
  • 관계 집합
    • 개체 집합 간의 연결 관계



강의록


데이터베이스 모델링의 이해

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

  • 비즈니스적 관점
    • 어떤 데이터를 저장해야 하는가?
    • ex) 편의점
      • 최종목표
        • 상품들을 고객들에게 효율적으로 판매하기 위한 데이터베이스 시스템 구축
      • 필요한 정보
        • 고객들의 판매 성향, 고객들의 대략 수입(추정치) 등
      • 불필요한 정보
        • 고객의 혈액형, 정치 성향, 종교 등
  • IT적 관점
    • 어떻게 데이터를 저장해야 하는가?

데이터베이스 모델링의 정의

  • 데이터의 의미를 파악하고 데이터와 관여하는 업무 프로세스를 개념적으로 정의하고 분석하는 작업
  • 데이터베이스 모델링의 단계?

    image.png

    • 명확한 정의 필요
      • 저장하려는 데이터가 무엇인지?
      • 데이터는 어떤 의미로 활용되는지?
      • 어떻게 연산 되어 결과를 도출하는가?
  • 사용할 데이터를 선별하고 데이터베이스에 체계적으로 구조화하여 저장, 사용할 방법이 필요
    • 개념적 데이터 모델링 → 논리적 데이터 모델링 → 물리적 데이터 모델링
  • 데이터 모델
    • 데이터의 의미, 데이터 타입, 연산 등을 명시하기 위해 사용할 수 있는 개념(표기법)의 집합
  • 데이터 모델링
    • 데이터에 대한 요구 사항을 분석하여 추상화 하는 과정
    • 실 세계의 일부분을 DBMS가 지원하는 데이터 모델의 형태로 나타내는 과정
    • 비즈니스 모델에 필요한 실 세계의 다양한 형태의 데이터를 DBMS가 효율적으로 저장할 수 있는 구조로 전환하는 과정
      • 여러 사람이 공동으로 작업해야 하므로 동일한 표기법 사용해야함

데이터베이스 모델링의 단계

  • 개념적 데이터 모델링
    • 요구 사항을 바탕으로 추상화하고 해석 오류를 방지
    • 실 세계의 데이터를 개념적으로 일반화 시켜 데이터 타입, 속성, 관계, 제약 조건 등을 이끌어내는 과정
  • 논리적 데이터 모델링
    • DBMS의 구현 모델에 맞춰 데이터의 구조를 표현
    • 데이터 정의 언어로 기술된 스키마(schema) 생성
      • 스키마
        • 어떤 물건들을 적재하기 위한 효율적인 구조
        • 데이터를 저장하기 위한 구조체
  • 물리적 데이터 모델링
    • 데이터베이스 파일의 내부 저장 구조, 파일 구성, 인덱스, 접근 경로 등을 결정하는 과정

사용자 요구 사항 분석

사용자 요구 사항 분석의 필요

  • 데이터에 대한 충분한 사전 분석 없이 적절한 설계가 불가능
    • 데이터베이스의 구조가 점차 복잡해지고 수명 주기가 단축되는 최근 경향에 신속, 정확성이 요구
    • 데이터베이스의 활용 범위가 확대됨에 따라 데이터베이스의 효율적인 운용에 초점
  • 사용자의 요구를 명세하지 않고 데이터베이스 설계 및 개발을 진행하는 경우
    • 결과물의 완성도 저하 및 신뢰도 추락
    • 개발 후, 발생하는 에러 수정에 대량의 추가 비용 지출

사용자 요구 사항 분석의 개념

  • 정보 시스템의 대상이 되는 업무를 분석
    • 정보 시스템의 데이터베이스가 신속하고 효과적으로 업무 처리를 지원
    • 필요한 데이터를 저장 및 운용할 수 있는 구조 개발
  • 도출 → 분석 → 기록 단계로 수행
    • 국제 표준화
      • IEEE-Std-830
    • ex) IEEE-Std-830 스타일의 Software Requirements Specification
      • 요구 사항 명세 양식
        • 소프트웨어 만들기 앞서 기능적 요구 사항과 비 기능적 요구 사항은 무엇?
      • 좋은 요구 사항 명세란?
        • 도출 → 분석 → 기록 단계를 수행하면서 추상적 → 구체적
        • 모호하지 않게

사용자 요구 사항 분석 과정

스크린샷 2025-03-19 103819.png

  • 요구 사항 도출
    • 개발 프로젝트 배경, 목표 및 범위를 파악
    • 업무 관계자 인터뷰 수행
    • 제안 요청서의 요구 사항을 기능 별 분류 및 상세화
    • 외부 자료 수집 및 분석
  • 요구 사항 분석
    • 도출 된 요구 사항의 명확성, 완전성, 모호성 검증
    • 기술 개요, 기능 및 비기능 요구 사항, 위험 요소, 용어와 데이터 정의, 사용자 인터페이스 명세화
    • 불완전한 부분이 존재할 경우, 요구 사항 도출 단계 재수행
  • 요구 사항 기록
    • 요구 사항 목록 정리 및 관리자의 승인
    • 정리된 요구 사항을 형식에 맞춰 문서화
    • 프로젝트 종료 때까지 반영 여부 지속적 관리
    • 요구 사항 정의서
      • 실질적인 개념적 데이터 모델링 진행

ER 모델

ER 모델의 개념

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

개체 집합

  • 개체(entity)
    • 실 세계에 존재하는 다른 객체와 구별되는 유, 무형의 사물
    • 개체를 설명하는 여러 속성들로 구성
  • 개체 집합(entity set)
    • 같은 속성을 공유하는 개체들의 모임

      image.png

      • 구체적인 내용 X
      • 추상적, 구조적인 성격

관계 집합

  • 관계
    • 개체와 개체 사이의 연관성
  • 관계 집합
    • 개체 집합 간의 연결 관계

      image.png

      image.png

속성

  • 개체를 구체적으로 설명하는 특성으로 개체 집합은 속성의 집합
  • 속성 값의 특성에 따라 여러 종류로 구분
  • 속성의 종류
    • 단순 속성과 복합 속성
    • 단일 값 속성과 다중 값 속성
    • 유도 속성과 저장 속성
  • 각각의 속성은 위 세 그룹 중 하나의 속성에 해당

속성의 종류

  • 단순 속성
    • 더 작은 요소로 나눌 수 없는 속성

      image.png

  • 복합 속성
    • 더 작은 구성 요소로 나눌 수 있는 속성

      image.png

      • ex) 1999년 12월 5일 → 연, 월, 일
  • 단일 값 속성
    • 한 개체에 대해 단 하나의 속성 값 만을 갖는 속성

      image.png

  • 다중 값 속성
    • 한 개체에 대해 여러 개의 속성 값을 갖는 속성
  • 유도 속성
    • 다른 속성의 값으로부터 값이 유추 될 수 있는 속성

      image.png

  • 저장 속성
    • 실제 값을 저장해야 하는 속성, 유도 속성을 위해 사용

제약 조건

  • 데이터 모델은 데이터, 의미, 구조, 연관성 및 데이터의 조건을 표현하기 위한 도구
  • ER 모델은 개체와 관계에 대한 표현의 정확성을 위해 데이터가 준수해 하는 제약 조건을 정의할 수 있는 표현 방법 제공
  • 제약 조건(contraints)의 종류
    • 사상수
    • 참가 제약 조건
    • 키 속성

사상수(mapping cardinality)

  • 관계 집합에 참가한 개체 집합에 대해 한 개체 집합의 개체가 다른 개체 집합의 개체와 관계를 맺을 수 있는 수량
  • 일대일(1:1)

    image.png

    • X 하나가 Y 하나에 연결
    • Y 하나가 X 하나에 연결
  • 다대일(N:1)

    image.png

    • Y 하나가 X 여러 개에 연결
  • 다대다(M:N)

    image.png

  • 사상 수에 따라 최종 생성되는 내부 스키마가 완전히 달라짐

일대일 사상수 표현

image.png

image.png

  • 1에 해당하는 쪽에 화살표
    • 1인이 1계좌를 보유하고 1계좌는 1인에게만 속함
    • 1:1의 관계

일대다 사상수 표현

image.png

image.png

  • 1 교수는 다 과목을 강의하고 1 과목은 1 교수가 강의함

다대다 사상수 표현

image.png

image.png

  • 서로 여러 개체에 대응
    • 다:다의 관계

참가 제약 조건(participatoin constraints)

  • 전체적 참가
    • 한 개체 집합의 모든 개체가 관계 집합에 참여하는 조건
    • 이중 선으로 나타냄
  • 부분적 참가
    • 한 개체 집합의 일부 개체만 관계 집합에 참여하는 조건
    • 단일 선으로 나타냄

image.png

  • 이 과목은 반드시 교수에 의해 꼭 강의 됨(의무)
  • 일부 교수는 과목을 강의가 아닌 다른 역할을 담당할 수도 있음

키(key) 속성

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

    image.png

    • 개체를 고유하게 구분하는 역할
    • 관계 집합의 특정 관계를 찾는 역할
  • 해당 키에 해당하는 자물쇠는 무엇인가를 밝히기 위한 방법을 제공하는 속성

특수 속성과 특수 관계

  • 관계 집합의 속성
    • 두 개체 집합의 관계에서 생성되는 값을 저장하는 속성
  • 재귀적 관계
    • 한 개체 집합이 자기 자신과 관계 집합을 형성하는 관계

image.png

  • 선수 과목
    • 과목 개체 집합
  • 후수 과목
    • 과목 개체 집합

특수 개체 집합

  • 약한 개체 집합
    • 개체의 존재 유무가 관계를 맺고 있는 개체의 존재에 종속되는 개체 집합
  • 강한 개체 집합
    • 약한 개체 집합과 연결되는 개체 집합

    image.png

    • 계좌는 학생이 없어지면 반드시 따라 없어져야함
    • 이중선 표기

개념적 데이터 모델링의 결과

image.png



연습 문제


  1. 사용할 데이터를 선별하고 데이터베이스에 체계적으로 구조화하여 저장 · 사용할 방법을 정의할 수 있도록 데이터의 의미, 데이터 타입, 연산 등을 명시하기 위한 개념들의 집합을 무엇이라고 하는가?

    a. 데이터 모델

    • 데이터의 의미, 데이터의 타입, 연산 등 현실 세계의 정보들을 데이터베이스에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현할 수 있는 모형을 데이터 모델이라고 함
  2. 사용자 요구 사항 분석 과정의 순서로 올바른 것은?

    a. 요구 사항 도출 → 요구 사항 분석 → 요구 사항 기록

    • 사용자 요구 사항 분석 과정을 통해 제안 요청서에서 요구 사항 정의서를 도출할 수 있으며 이를 위해 사용자 요구 사항 분석 과정은 요구 사항 도출, 요구 사항 분석, 요구 사항 기록 단계를 거침
  3. 관계 집합에 참가한 개체 집합에 대해 한 개체가 다른 개체와 관계를 맺을 수 있는 수량을 명시한 것은?

    a. 사상수(mapping cardinality)

    • 개체와 관계에 대한 표현의 정확성을 위해 명시할 수 있는 제약 조건에는 사상수, 참가 제약 조건, 키 속성이 있으며 이 중 사상수는 관계 집합에 참가한 개체 집합에 대해 한 개체가 다른 개체와 관계를 맺을 수 있는 수량을 명시함



정리 하기


  • 데이터베이스 모델링 과정은 사용자 요구 사항을 분석하여 개념적 데이터 모델링, 논리적 데이터 모델링, 물리적 데이터 모델링의 단계로 진행됨
  • 사용자 요구 사항 분석 단계에서는 요구 사항을 도출하고 분석하고 기록하는 단계로 진행되며, 요구 사항이 모호하거나 정확하지 않을 때는 이전 단계로 회귀하여 요구 사항을 교정함
  • 데이터 모델링이란 데이터에 대한 요구 사항을 정의하고 분석하는 방법으로, 데이터 모델링을 통하여 데이터베이스가 구축되기까지는 개념적 데이터 모델링, 논리적 데이터 모델링, 물리적 데이터 모델링 과정으로 나뉨
  • ER 모델은 전체적인 데이터베이스의 논리적인 구조를 표현하는 전체 스키마의 명세서를 작성하는데 사용되는 개념적 데이터 모델링 도구로, 실 세계의 조직 업무의 의미와 상호 작용을 개념적으로 나타내는 데 매우 유용함
  • ER 모델의 기본 요소인 개체는 공통된 속성을 가지며 구별 가능한 실 세계의 개체들로 구성 됨
    • 이러한 개체들은 각 개체 집합의 구성원들이 가지는 기술적 특성인 속성들의 집합으로 표현되며, 속성의 유형은 단순 속성, 복합 속성, 단일 값 속성, 다중 값 속성, 유도 속성, 저장 속성, 널 속성 등으로 구분할 수 있음
  • ER 모델의 중요한 제약 조건은 사상 수, 참가 제약 조건, 키 속성으로 나뉘며, 이진 관계에서 사상 수 비율은 1:1(일대일), 1:N(일대다), N:1(다대일), M:N(다대다)의 형태가 있음
  • 참가 제약 조건에서는 특정 개체 집합이 관계 집합에 참여할 때 모든 개체가 관계에 참여한다면 전체적 참여, 일부만 참가하면 부분적 참여라고 함
    • 또한 구조적 제약 조건을 통해 개체가 최소 몇 번, 최대 몇 번 관계에 참여할 수 있는지 정의할 수 있음
  • 키 속성의 경우 어떤 개체 집합 안의 각각의 개체들을 구별해 주기 위해 선택되는 것으로, 최소한의 속성의 조합으로 만들어지며, 대표적으로 사용될 수 있는 속성 조합을 키라고 함
  • 동일한 개체 집합이 서로 다른 역할로 참가하여 생성되는 관계 집합을 재귀적 관계 집합이라고 함
    • 이 때 관계에 참가하는 개체가 행하는 기능을 개체의 역할(role)이라고 함
  • 약한 개체 집합은 1:N 관계 집합을 통해 강한 개체 집합에 연결해야 하며, 약한 개체 집합의 구별자(또는 부분 키)는 약한 개체 집합 내의 개체들을 구분하는 속성의 집합임
    • 약한 개체 집합의 키 설정은 반드시 지배 개체 집합의 키와 약한 개체 집합의 부분 키로 구성되어야 함



체크 포인트


  1. 데이터베이스 모델링에 대한 단계 중 아래에서 설명하는 단계는?

    1
    2
    
     추상화 수준이 높고 업무 중심적이고 포괄적인 수준의 모델링 진행
     전사적 데이터 모델링으로 EA 수립 시 많이 이용됨
    

    a. 개념적 데이터 모델링

  2. ER 모델에서 다중 값 속성의 표기법은?

    image.png

    a. 2

    • ER 표기법

      image.png

      image.png

[파이썬 프로그래밍 기초] 2강 - 컴퓨터의 구성

[파이썬 프로그래밍 기초] 3강 - 파이썬의 이해