[데이터베이스 - 데이터 모델링]

yedy·2023년 5월 16일
0

[mySQL]

목록 보기
15/16
post-thumbnail
post-custom-banner

✔️ 데이터 모델링의 개념

  • 데이터베이스 생명주기

    생명주기 ?
    1. 초기 사용자의 요구사항에 따른 필요한 데이터를 추출!
    2. 데이터 생성 및 업데이트 하고
    3. 데이터에 수정 삽입 삭제
    1,2,3번이 계속 반복적으로 실행된다.

✔️ 데이터 모델링의 중요성

건물 지을때 기둥 하나 잘못지으면 건물이 무너진다.
마찬가지로 데이터 모델링을 잘못하면 프로젝트 전체가 무너질 수도 있다 ㅠ
그만큼 중요!! 신뢰도랑 연관 짱 많어!

현실 세계의 볼잡한 개념을 단순화하고 추상화 시켜 데이터베이스화 하는 과정!
최종적으로 구축된 데이터베이스는 현실 세계의 개념과 일치

✔️ 데이터베이스 생명주기

데이터 베이스의 생성과 운영에 관련된 특징

  • 요구사항 수집 및 분석
    사용자들의 요구사항을 듣고 분석하여 데이터베이스의 구축의 범위를 정하는 단계
  • 설계
    분석된 요구사항을 기초로 주요 개념과 업무 프로세스 등을 식별하고(개념적 설계), 사용하는 DBMS의 종류에 맞게 변환(논리적 설계) 한 후, 데이터베이스 스키마를 도출(물리적 설계)함.
  • 구현
    설계 단계에서 생성한 스키마를 실제 DBMS에 적용하여 테이블 및 관련 객체를 만듦
  • 운영
    구현된 데이터베이스를 기반으로 소프트웨어를 구축하여 서비스를 제공함
  • 감시 및 개선
    데이터베이스 운영에 따른 시스템의 문제를 관찰하고 데이터베이스 자체의 문제점을 파악하여 개선함.

✔️ 데이터 모델링 과정


구축 -> 사용 -> 개선 -> 재구축

✔️ 요구사항 수집 및 분석

  1. 실제 문서를 수집하고 분석
  2. 담당자와의 인터뷰나 설문조사를 통해 요구사항을 직접 수렴함.
  3. 비슷한 업무를 처리하는 기존의 데이터베이스를 분석함.
  4. 각 업무와 연관된 모든 부분을 살펴봄

사용자의 요구사항은 대부분 모호하며 사용자마다 쓰는 용어도 달라 개념을 명확하게 파악하기 어렵다. 수집된 자료는 이러한 모호성을 제거하고 최대한 구체적이고 명확하게 정리해야 한다. (가장 기초적인 내용에 중점두고 진행)

✔️ 개념적 모델링

  • 요구사항을 수집하고 분석한 결과를 토대로 업무의 핵심적인 개념을 구분하고 전체적인 뼈대를 만드는 과정
  • 개체를 추출하고각 개체들 간의 관계를 정의하여 ER 다이어그램을 만드는 과정까지를 말함!!

개체 : 구체적으로 표현할 수 있는 실체(object)
ER 다이어그램 : 개체 사이의 관계를 표현한 도표

✔️ 논리적 모델링

  • 개념적 모델링에서 만든 ER 다이어그램을 사용하려는 DBMS에 맞게 사상하여 실제 데이터베이스로 구현하기 위한 모델을 만드는 과정

  • 논리적 모델링 과정

  1. 개념적 모델링에서 추출하지 않았던 상세 속성들을 모두 추출함.
  2. 정규화 수행 (데이터베이스 설계과정에서 중복을 줄이고 데이터 일관성을 유지하기 위해 수행하는 것!)
  3. 데이터 표준화 수행

✔️ 물리적 모델링

  • 작성된 논리적 모델을 실제 컴퓨터의 저장 장치에 저장하기 위한 물리적 구조를 정의하고 구현하는 과정
  • DBMS의 특성에 맞게 저장 구조를 정의해야 데이터베이스가 최적의 성능을 낼 수 있음.
  • 트랜잭션
    DB에서 일어나는 논리적인 작업단위
    쿼리나 명령어가 하나의 작업으로 묶여있는 경우 이 전체가 트랜잭션
    -> 데이터 일관성과 무결성 유지하기 위해(신뢰도를 높이기 위한 작업)
  • 트랜잭션이 시작되면 해당 작업이 모두 완료되어야만 DB에 반영!
    만약 작업중 하나라도 실패하면 이전 상태로 되돌림(rollback)
    모든 변경 사항이 취소 ㅠ
  • 물리적 모델링 시 트랜잭션, 저장 공간 설계 측면에서 고려할 사항
  1. 응답시간을 최소화해야 한다.
  2. 얼마나 많은 트랜잭션을 동시에 발생시킬 수 있는지 검토해야 한다.
  3. 데이터가 저장될 공간을 효율적으로 배치해야 한다.

✔️ ER 모델

(개념적 모델링에 속함)
세상의 사물을 개체(entity)와 개체간의 관계(relationship)으로 표현함

  • 개체
    독립적인 의미를 지니고 있는 유무형의 사람 또는 사물, 개체의 특성을 나타내는 속성(attibute)에 의해 식별
    개체끼리 서로 관계를 가짐

  • ER 다이어그램 : ER 모델은 개체와 개체 간의 관계를 표준화된 그림으로 나타냄
    (DBMS와 관계없이 작성 가능!)

🔺 개체

  • 개체와 개체 타입

  • 개체 타입의 ER 다이어그램 표현

🔺 속성
개체가 가진 성질

  • 속성의 ER 다이어그램 표현
    속성은 기본적으로 타원으로 표현, 개체 타입을 나타내는 직사각형과 실선으로 연결됨.
    속성의 이름은 타원의 중앙에 표기함.
    속성이 개체를 유일하게 식별할 수 있는 키일 경우 속성 이름에 밑줄을 그음.
  • 속성의 유형

단순 속성 : 더이상 분해 불가능
복합 속성 : 독립적인 의미를 가진 속성으로 분해 가능
단순 속성이 여러개 => 복합 속성


저장 속성 : 다른 속성에 영향 없이 단독으로 저장되는 속성
유도 속성 : 다른 저장 속성으로부터 계산되어진 속성(타원형 점선 표현)


단일값 속성 :
다중값 속성 : (타원형 두개)

✔️ 차수에 따른 관계 타입의 유형

관계 집합에 참가하는 개체 타입의 수를 관계 타입의 차수(degree)라고함.

  • 관계 대응수 : 두 개체 타입의 관계에 실제로 참여하는 개별 개체 수


  • 관계 대응수의 최솟값과 최댓값
    - 관계 대응수 1:1, 1:N, M:N에서 1,N,M은 각 개체가 관계에 참여하는 최댓값을 의미
    - 관계에 참여하는 개체의 최솟값을 표시하지 않는다는 단점을 보완하기 위해 다이어그램에서는 대응수외에 최솟값과 최댓값을 관계실선 위에 (최솟값, 최댓값)으로 표기함.

✔️ ISA 관계

상위 개체 타입의 특성에 따라 하위 개체 타입이 결정되는 형태
(속성 상속 발생)

✔️ 참여 제약 조건

개체 집합 내 모든 개체가 관계에 참여하는지 유무에 따라 전체 참여, 부분 참여로 구분
- 전체 참여는 개체 집합의 모든 개체가, 부분 참여는 일부만 참여함.

전체 참여는 사실 쓰지 않는다! !!

✔️ 역할

개체 타입 간의 관계를 표현할 때 각 개체들을 고유한 역할(role)을 담당함.
열할은 관계선 위에 명시 해주면 되는데!
일반적으로 관계만으로 알 수 있는 정보라면 생략 가능!!

✔️ 순환적 관계

하나의 개체 타입이 동일한 개체 타입(자기 자신)과 순환적으로 관계를 가지는 형태

✔️ 약한 개체 타입과 식별자

  • 약한 개체 타입
    - 상위 개체 타입이 결정되지 않으면 개별 개체를 식별할 수 없는 종속된 개체타입
    - 약한 개체 타입은 독립적인 키로는 존재할 수 없지만 상위 개체 타입의 키와 결합하여 약한 개체 타입의 개별 개체를 고유하게 식별하는 속성을 식별자 혹은 부분키라고 함.

✔️ IE 표기법(Information Engineering 표기법)

  • ER 다이어그램을 더 축약하여 쉽게 표현하며 Erwin 등 소프트웨어에서 사용함.
  • IE 표기법에서 개체 타입과 속성은 직사각형으로 표현함.

IE 표기법에서 관계는 실선 혹은 점선으로 표기함

✔️ ER 모델을 관계 데이터 모델로 사상

완성된 ER 모델은 실제 데이터베이스로 구축하기 위해 논리적 모델링 단계를 거치는데, 이 단계에서 사상(mapping)이 이루어짐.

  • 개체 타입의 사상

  • 관계 타입의 사상




ER 다이어그램을 IE 표기법으로 변환

ER 다이어그램을 테이블로 변환

profile
공주 개발자
post-custom-banner

0개의 댓글