과제 : ERD 생성

호밀빵 굽는 쿼카·2022년 1월 26일
0

NHN Cloud 인턴

목록 보기
48/48

피드백 받은 내용을 실시간으로 정리한 것이기 때문에 정확하지 않은 내용이 있을 수도 있습니다 :)

과제

가족관계등록부를 ERD를 도출하시오

  • 테이블, 속성, 릴레이션만 도출
  • 한글명만 도출

0124 제출

0126 제출 (피드백 받고 수정)

  • 여러가지 테이블을 그려보며 시도
  • 왼쪽 상단의 구조를 최종 제출

0126 피드백

  • 개인이 등록된 테이블 한개(5천만명이 들어있는 테이블)-주민등록번호가 키
  • 관계(구분)은 주민등록번호로 구분지어질 수 없음 의존성이 전혀 없음
  • 부모,자녀,배우자 테이블 각각 만들려면 똑같은 테이블이 똑같이 관리되면서 너무 많은 테이블이 존재하게 될 것, 또 한 사람을 찾자니 필요이상의 테이블을 조인하게 됨-> 그러니까 비효율적

  • 가족주민등록번호는 한 가족 인원에 따른 모든 가족의 주민등록번호를 말함
  • 주민등록번호를 통해 가족주민등록번호를 확인하고 다시 주민 테이블에서 해당 사람을 확인 하는 형식

테이블을 무조건 줄여야 하나요? 테이블이 많은 것은 이점이 없는지?

  • 테이블이 많은 것은 쿼리는 7번인데 조인을 더 많이 하게 되는 경우가 생김
  • 저장공간 낭비
  • 이상 현상 생길 수 있음( 한테이블에서는 요소가 바꼈는데 참조하는 다른 테이블에서는 변경되지 않는 등의 이상 현상 )

정규화

Anomaly(이상) 현상을 해결하기 위해 데이터 베이스를 세분화 하는 과정
Anomaly의 종류 : 삽입 이상(Insertion Anomaly), 삭제 이상(Deletion Anomaly), 갱신 이상(Update Anomaly)

정규화의 과정

비정규형 : 아래 모든 경우를 만족하지 않는 경우
1NF : 모든 도메인이 원자값. 한 에트리뷰트에는 하나의 값만 들어가야 한다.
2NF : 부분적 함수 종속을 제거해야 한다. 즉, 완전 함수적 종속 관계를 만족한다.
3NF : 이행적 종속 관계를 제거 해야 한다.
정규화에 대한 블로그 링크

참고) 테이블은 엔티티(사물이나 구조, 상태 등을 모델화한 형태) 단위로 만들어져야 한다. 학생에 관한 테이블이면 학생에 관한 정보만 있고 수강에 관한 테이블이면 수강에 관한 테이블이 있어야 하는 것이다. 상식적으로 생각해도 학생에대한 정보와 수강에 대한 정보를 한 테이블에다 모아두면 문제가 생길 여지가 많다.

추가공부



참고 링크

profile
열심히 굽고 있어요🍞

0개의 댓글