데이터 모델링

Goofi·2023년 7월 27일
0
post-custom-banner

데이터 모델링

데이터 모델링은 현실 세계를 데이터베이스로 표현하기 위해서 추상화한다.

데이터 모델링 단계

1) 개념적 모델링

  • 고객의 비즈니스 프로세를 분석하고 업무 전체에 대해서 데이터 모델링을 수행한다.
  • 복잡하게 표현하지 않고 중요한 부분을 위주로 모델링하는 단계이다.
  • 업무적 관점에서 모델링하며 기술적인 용어는 가급적 사용하지 않는다.
  • 엔티티(Entity)와 속성(Attribute)을 도출하고 개념적 ERD를 작성한다.

2) 논리적 모델링

  • 개념적 모델링을 논리적 모델링으로 변환하는 작업이다.
  • 식별자를 도출하고 필요한 모든 릴레이션을 정의한다.
  • 정규화를 수행해서 데이터 모델의 독립성을 확보한다.

3) 물리적 모델링

  • 데이터베이스를 실제 구축한다. 즉, 테이블, 인덱스, 함수 등을 생성한다.
  • 성능, 보안, 가용성을 고려해서 구축한다.

논리적 데이터베이스 설계란?

개념적 모델(ERD)로 표현하는 과정이다.

엔티티란?

업무의 관심 대상이 되는 정보를 갖고 있거나 그에 대한 정보를 관리할 필요가 있는 유형, 무형의 사물(개체)을 말한다.


홍길동, 김철수, 강만길 등을 회원 엔티티의 인스턴스라고 부른다.

속성이란?

엔티티에서 관리해야 할 최소 단위의 정보 항목을 말하며 엔티티는 하나 이상의 속성을 포함한다.

ex)
회원 엔티티는 회원의 ID, 이름, 주소, 전화번호 등을 관리하기 위한 것으로 ID, 이름, 주소, 전화번호 등을 회원 엔티티의 속성이라고 말한다. 현실세계에서 하나의 엔티티는 많은 정보를 포함할 수 있다. 그러나 모델링 과정에서 포함하고 있는 모든 정보 항목을 속성으로 표현하지는 않는다.

속성의 결정

엔티티의 속성은 테이블의 컬럼과 대응한다.

데이터 모델링에서 연습해야 할 것 중의 하나는 엔티티를 테이블과 연관지어 생각하는 것이다.

관계

두 엔티티 사이의 관련성을 나타내는 용어이다. 현실세계에서는 여러 사물들이 상호 관련성을 가지고 움직이기 때문에 이를 모델링하면 엔티티와 엔티티 사이의 관계로 표현된다.

중요❗️
두 엔티티가 관계가 있다는 의미는 상호 공유하는 속성이 있다는 의미이다.

카디낼러티(cardinality)

카디낼러티(cardinality)는 두 엔티티 간의 관계를 보다 구체적으로 표현하는 방법의 하나로 각 엔티티에 속해 있는 인스턴스들 간에 수적으로 어떤 관계에 있는지 나타내는 개념이다.

카디낼러티 종류

1대1 관계
1대1 관계는 완전 1대1 관계와 선택적 1대1 관계가 있다.

1대N 관계
1대N 관계는 엔티티에 행이 하나 있을 때 다른 엔티티의 값이 여러 개 있는 관계이다.

M대N 관계
M대N 관계는 두 개 엔티티가 서로 여러 개의 관계를 가지고 있는 것이다.

정규화

정규화는 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이다.

  • 정규화는 제 1정규화부터 제5정규화까지 있지만, 실질적으로는 제3정규화까지만 수행한다.

정규화 절차

제1정규화

  • 속성(Attribute)의 원자성을 확보한다.
  • 기본키(Primary)를 설정한다.
회원번호 회원이름 프로그램
101 강호동 스쿼시초급
102 손흥민 헬스
103 김민수 헬스, 골프초급
위 테이블의 문제점)
1. 성능이슈
2. 찾기 / 수정 / 삭제 작업 느려진다.

위 테이블 해결방법)

회원번호 회원이름 프로그램
101 강호동 스쿼시초급
102 손흥민 헬스
103 김민수 헬스
103 김민수 골프초급
  • 하나의 셀 안에서 하나의 데이터만 보관
  • 이 작업이 완료된 테이블을 제 1정규형(1st normal form) 이라고 한다.

제2정규화
기본키가 2개 이상의 속성으로 이루어진 경우, 부분 함수 종속성을 제거(분해)한다.

제3정규화

  • 기본키를 제외한 칼럼 간에 종속성을 제거한다.
  • 즉, 이행 함수 종속성을 제거한다.

BCNF
기본키를 제외하고 후보키가 있는 경우, 후보키가 기본키를 종속시키면 분해한다.

제4정규화
여러 칼럼들이 하나의 칼럼을 종속시키는 경우 분해하여 다중값 종속성을 제거한다.

제5정규화
조인에 의해서 종속성이 발생되는 경우 분해한다.

ERD 표기법

profile
오늘보단 내일이 강한 개발자입니다!🧑🏻‍💻
post-custom-banner

1개의 댓글

comment-user-thumbnail
2023년 7월 27일

좋은 글이네요. 공유해주셔서 감사합니다.

답글 달기