데이터베이스 모델링

OwlSuri·2023년 3월 12일
0
post-custom-banner

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

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

  • 비지니스적 관점
    - 어떤 데이터를 저장해야하는가
  • 컴퓨터 프로그래머의 관점
    - 어떻게 데이터를 저장해야 하는가

DB시스템 구현 과정

DB모델링의 개념

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

    -> 최종적으로 내부 스키마를 만듦

데이터 모델

  • 사용할 데이터를 선별하여 데이터베이스에 체계적으로 구조화하여 저장/사용할 방법이 필요
  • 데이터 모델 : 의미, 데이터타입, 연산 등을 명시하기 위해 사용할 수 있는 개념들의 집합
  • 데이터 모델링 : 실세계의 일부분을 DBMS가 지원하는 데이터 모델의 형태로 나타내는 과정

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

  1. 개념적 데이터 모델링
  • 요구사항의 해석 오류를 방지
  • 실세계의 데이터를 개념적으로 일반화시켜 데이터구조, 데이터타입, 속성, 관계, 제약조건 등을 이끌어내는 과정
    -> 실제 DBMS와 무관한 사람에게 필요한 과정
  1. 논리적 데이터 모델링
  • 특정 DBMS의 구현 모델에 맞춰 데이터를 표현하는 과정
  • 데이터 정의 언어로 기술된 개념 스키마 생성
    -> 어떻게 DBMS에 구현할 것인가
  1. 물리적 데이터 모델링
  • 데이터베이스 파일의 내부 저장구조, 파일 구성, 인덱스, 접근경로 등을 결정하는 과정
    -> 어떤 데이터는 어디로 가라 등 정함

사용자 요구사항분석

사용자 요구사항의 필요

  1. 데이터에 대한 충분한 사전 분석없이 적절한 설계가 불가능
  • 데이터베이스의 구조가 점차 복잡, 수명주기 단축 -> 신속성, 정확성 요구됨
  • 데이터베이스 활용 범위 확대 -> 데이터베이스의 효율적 운용에 초점
  1. 사용자의 요구를 명세하지 않고 데이터베이스를 설계 및 개발하는 경우
  • 결과물의 완성도 저하 및 신뢰도 추락
  • 개발 후, 유지보수 비용 지출

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

  1. 시스템의 대상이 되는 업무 분석
  • 정보시스템의 데이터베이스가 신속하고 효과적으로 업무 처리를 지원
  • 필요한 데이터를 저장 및 운영할 수 있는 구조 개발
  1. 도출, 분석, 기록의 단계로 수행
    => 국제 표준화 : IEEE_Std-830

사용자 요구사항 분석 과정

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

ER 모델

ER 모델의 개념

  1. 실세계의 속성으로 이루어진 객체(Entit)와 개체 사이의 관계(Relationship)를 정형화시킨 모델

  2. 개념적 모델링 단계예서 사용

  3. 데이터 구조와 단계를 ER 다이어그램(ERD)으로 표현

  4. 구성요소
    - 개체집합
    - 개체 : 실세계에 존재하는 다른 객체와 구별되는 유무형의 사물, 개체를 설명하는 여러 속성들로 구성
    - 개체집합 : 같은 속성을 공유하는 개체들의 모임

    - 관계집합 
    	- 관계 : 개체와 개체사이의 연관성
        - 관계집합 : 개체 집합간의 연결관계 -> 마름모로 표현



    - 속성
    1. 개체를 구체적으로 설명
    2. 속성에 포함될 수 있는 값의 특성에 따라 여러 종류로 구분
    3. 속성의 종류
    - 단순속성 : 더 작은 구성요소로 나룰 수 없는 속성(학생의 이름, 성별, 나이 등)
    - 복합속성 : 더 작은 구성요소로 나눌 수 있는 속성(생년월일 -> 년, 월, 일로 나눌 수 있음)
    - 단일값속성 : 한 개체에 대해 단 하나의 값만을 갖는 속성
    - 다중값속성 : 한 개체에 대해 여러개의 값을 갖는 속성, 집합 기호 넣음

    (전화번호는 여러개 가질 수 있음. 폰번호, 집번호 등)
    - 유도속성 : 다른 속성의 값으로 부터 값이 유추될 수 있는 속성(생년월일알면, 나이알 수 있음)
    - 저장속성 : 유도속성을 위해 사용될 수 있는 속성(저장해야만 하는 값)

제약조건

  1. 데이터 모델은 데이터, 의미, 구조, 연관성 및 데이터의 조건을 표현하기 위한 도구
  2. ER 모델은 개쳉돠 관계에 대해 표현의 정확성을 위해 데이터가 준수해야 하는 제약조건을 정의할 수 있는 표현 방법을 제공 -> 데이터 정확성 높임
  3. 제약조건의 종류
    - 사상수(mapping cardinality)
    - 관계집합에 참가한 개체 집합에 대해 한 개체가 다른 개체와 관계를 맺을 수 있는 수량을 명시
    - 화살표가 있으면 1, 없으면 N



참가제약조건

과목이 있으려면 그 과목을 강의하는 교수가 있어야함
강의 담당 하지않는 교수는 있을 수 있음
1. 전체적 참가 : 어떤 개채 집합의 모든 개체가 관계집합에 찹여하는 조건(이중선)
2. 부분적 참가 : 어떤 개체 집합의 일부 개체가 관계 집합에 참여하는 조건(단일선)

키(key) 속성

  1. 각 개체를 구별하는데 사용되는 유일한 값을 가지는 속성의 집합
  • 개체를 고유하게 구분(ex. 학생번호)
  • 관계집합의 특정 관계를 찾는 역할

특수속성과 특수 관계

  1. 관계집합의 속성 : 두 게체 집합의 관계에서 생성되는 값을 저장하는 속성. 예를들면 수강신청을 한 사람만 수강신청한 날짜 값 있음
  2. 재귀적 관계 : 한 개체 집합이 자기 자신과 관계 집합을 형성하는 관계

특수관계

  1. 약한 개체 집합
  • 개체의 유무가 관계를 맺고 있는 개체의 존재에 종속되는 개체 집합
    (ex. 학생이 없어지면, 학생 계좌 정보 개체 없어짐)
  • 이중선으로 표현 -> 이중선은 전체적 참가 -> 그림에서 이중선 그리면 안됨
  1. 강한 개체 집합
  • 약한 개체 집합과 연결되는 일반 개체 집합
  • 약한 개체 집합이 없어져도 없어지지 않음
    (ex. 학생 계좌정보 없어진다고 학생정보 없어지는 것 아님. 학생이 강한 개체 집합)
profile
기억이 안되면, 기록을 -
post-custom-banner

0개의 댓글