[IT국비지원] 개발자 교육 29일 차 : DB(2023.09.05)fit.구디아카데미,김지훈 강사님

Nicole Gold·2023년 9월 5일
0

K-digital training

목록 보기
30/60

이하 구디아카데미 김지훈 강사님의 수업자료와 강의 내용 정리, 실습한 내용을 정리함

ERD 만들기 재밌다😊



정규화(normalization) 와 역정규화(denormalization)

  • RDBMS 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스.

  • 자료 중복으로 인해 이상 현상이 발생할 수 있어 이를 최소화하는 것이 정규화의 목적.

  • 이런 정규화 (normalization) 과정은 총 여섯 과정이 있다.

  • 그중 실제로는 3NF 까지만 사용한다 .(3NF가 되면 정규화가 된 것으로 간주한다)

  • 각 정규형은 이전 단계들을 기본적으로 모두 만족해야만 한다.



1NF(Normal Form)

  • 모든 항목에 값이 있어야 한다.(NOT NULL)
  • 중복되는 데이터가 없어야 한다.



2NF(Normal Form)

  • 개체의 속성이 한 식별자에 종속되어야 한다.
  • 하나의 식별자로 하나의 데이터가 가져와지는가.



3NF(Normal Form)

  • 연도로 인해 우승국이 결정되고, 우승국으로 인해 감독이 결정되는 경우.
  • 이 경우 이행 함수 종속성이라고 한다.
  • 우승국이 변경되면 불필요하게 감독까지 변경되어야 한다.



역정규화

  • 정규화(normalization)는 이상 현상을 최소화하기 위해 테이블을 쪼개는 작업이다.
  • 하지만 지나친 정규화는 쿼리를 복잡하게 만들고 성능을 저하시킨다.(6개의 테이블을 join 한다면?)
  • 그래서 테이블을 합하는 작업을 역정규화 (denormalization)라고 한다.

설계

  • 테이블에 들어갈 값과 제약조건 연간관계를 정의하는 것을 우리는 모델링이라고 한다.
  • 모델링한 설계 도면을 우리는 ERD 라고 부른다.
  • SNS 서비스를 각자 설계해 보자.
  • 설계한 내용에 대한 테스트 및 검증이 필요하다.
  • 우리가 만든 SNS 서비스의 데이터베이스에 대해서는 검증 테스트가 필요할 것이다.

설계1

설계2

  1. 회원은 일반회원과 판매자 회원이 있다.
  2. 일반 회원은 아이디, 비밀번호, 배송지 주소, 연락처 필드가 있다.
  3. 판매자 회원은 아이디, 비밀번호, 계좌번호 필드가 있다
  4. 판매 물품에는 품목 아이디, 품목 이름, 가격, 판매자 아이디, 소속 카테고리가 존재한다.
  5. 판매 품목에는 대분류, 중분류, 소분류를 가지고 있다
  6. 카테고리는 대분류, 중분류, 소분류를 고를 때 마다 해당 분류의 물품이 바로 나타나야 한다.
  7. 판매 품목은 판매자 회원이 올릴 수 있다
  8. 구매 테이블에는 사용자아이디, 물품아이디, 물품이름, 가격, 구매 날짜, 수량 등이 저장된다.
  9. 판매자는 본인이 판매한 물품들과 매출을 계산할 수 있어야 한다.
  10. 판매 품목에는 구매후기가 달린다.

profile
JAVA 개발자로 가는 길

0개의 댓글

관련 채용 정보