데이터 모델링

Dawon Ruby Choi·2023년 11월 3일

UML : 프로세스 모델링
논리 DB 설계 : 정규화 작업

테이블 구성을 잘 해야 컬럼을 잘 뽑을 수 있음
엔티티 : 테이블 개념
속성 : 컬럼 개념 (설계 속성 - 글번호(필수적인 것))
인스턴스 : 하나의 행

DB 모델링 개념

DB 모델링 주요 개념


M:N은 구현할 수 없기 때문에 다른 방향으로 설정해야함

주식별자 (Primary key)

외래식별자 (foreign key)

엔티티 정의

ERD 표기법

⭐시험

유일성(중복X) 존재성(NOT NULL)
주식별자 (설계속성에 들어갈 수 있음)
최소성 : 유일성을 만족하는 최소의 수

외래 식별자 : 한 엔티티는 부모역할, 다른 엔티티 자식 역할 구분을 잘 해야함

ERD 표기법 (관계)

부모의 정보가 반드시 먼저 있어야 함
한 명이라는 하나의 키워드를 가지고 있는 것이 주로 부모키가 됨
EX)
1. 한 명의 학생은 여러개의 취미를 가지고 있다
2. 한 부서는 여러 사원을 가지고 있을 수 있다. (부서가 부모키)

참여도 : 필수 1개 이상, 선택 0개 일 수도 있고 여러 개 일 수도 있는 것
ex) 회원과 게시글은 선택 관계 , 게시글과 댓글 선택 관계

관계도

| 필수 O 선택

식별/비식별 관계

⭐시험

식별관계 : 외래식별자가 자식 엔티티의 주식별자 일부가 되는 관계
비식별관계 : 일반속성으로 넘기는 관계

구분법 : 자식 엔티티 기준 가데이터 넣기 (외래 식별자가 일반 속성으로 넘어왔다는 전제하에)

등산/학번등이 겹치기 때문에 학번에PFK 설정

부서번호는 PKF가 될수없음 최소성 위배

ERD 표기법 관계


1:1 관계는 합칠 수 있음
M:N 관계는 미완성 관계이기 때문에 해소 해주어야함
=> 릴레이션 엔터티(중간에 끼어있는 엔터티)로 해소

논리적 모델링 (정규화)

정규화

제 1 정규화

하나의 속성이 복수 값을 갖도록 설계 되었을 때

제 2 정규화

일반속성 중 일부(최소 2개 이상) 속성에 종속된 속성을 찾아 제거
💡주식별자가 연관이 있는지, 주식별자가 여러 개 일 경우

ex) 품목단가 경우 주문번호와 무관하기 때문에 속성을 찾아 따로 만들기

제 3 정규화

일반속성 중 종속 관계에 있는 속성 제거

보통 따로 빼놓은 테이블이 부모 테이블이 됨

profile
나의 코딩 다이어리🖥️👾✨

0개의 댓글