MariaDB 공부 3일차

Posted by : at

Category : Data_Engineering


MariaDB

 

3일차

 

ERD

 

  • ERD(Entity Relationship Diagram)
    • 엔티티와 이들 간의 관계를 알기 쉽게 약속된 도형을 사용하여 일목요연하게 그림으로 표현
  • 관계(Relationship)
    • 엔티티 간에 존재하는 업무의 상호 연관성으로 해당 엔티티와 관련된 업무가 수행되는 규칙을 의미
  • 속성(Attribute)
    • 엔터티와 관계의 성질을 나타내는 쪼갤 수 없는 정보의 단위로 엔티티에 저장되는 개체 집합의 특성을 설명하는 항목

 

정규화

 

  • 제1정규형(1NF 또는 최소형)은 데이터베이스 정규화에서 사용하는 정규형중 하나이다.

    관계형 데이터베이스의 테이블이 1NF이면 최소한 테이블은 관계이며, 중복되는 항목이 없어야 한다.

    Customer ID First Name Surname Telephone Number
    123 Robert Ingram 555-861-2025
    456 Jane Wright 555-403-1659 555-776-4100
    789 Maria Fernandez 555-808-9633

     

    • 데이터가 중복으로 들어갔다. 이를 해결하겠다고 다음과 같이 무작정 항목을 늘리면 어떻게 될까?
    Customer ID First Name Surname Tel. No. 1 Tel. No. 2 Tel.No.3
    456 Jane Wright 555-403-1659 555-776-4100 555-403-1659

     

    • 당장은 해결된 것처럼 보이지만 전화번호가 4개, 5개인 사람은 다시 문제가 될 것이다. 이를 근본적으로 해결해보자.

     

    Customer Name

    Customer ID First Name Surname
    123 Robert Ingram
    456 Jane Wright
    789 Maria Ferna

 

Customer Telephone Number

Customer ID Telephone Number
123 555-861-2025
456 555-403-1659
456 555-776-4100
789 555-808-9633

  • 이처럼 중복되는 데이터를 제거하는 작업이 제 1정규화이다.

 

  • 제2 정규형(2NF)는 데이터베이스 정규화에서 사용하는 정규형중 하나로, 에드거 F. 커드가 1971년에 정의하였다.

    제 1 정규형(1NF)인 테이블이 제2 정규형을 충족시키는 필요충분조건은 다음과 같다:

    • 후보 키 K와 K에 속하지 않는 속성 A가 있을 때, A를 결정하기 위해 K의 일부가 아닌 K 전체를 참조해야만 하는 경우 1NF 테이블은 2NF이다.
    종업원 기술 근무지
    Jones Typing 114 Main Street
    Jones Shorthand 114 Main Street
    Jones Whittling 114 Main Street
    Bravo Light Cleaning 73 Industrial Way
    Ellis Alchemy 73 Industrial Way
    Ellis Flying 73 Industrial Way
    Harrison Light Cleaning 73 Industrial Way

     

    • 이 테이블을 보았을 때 불필요한 정보가 한 눈에 들어오는가? 동명이인이 없다는 가정하에 종업원 이름이 Jones이면 그 사람의 근무지는 무조건 114 Main Street이다.

      따라서 근무지라는 Column이 존재하는 것은 굉장히 비효율적이라 할 수 있다. 다음과 같이 고쳐보자!

     

종업원

종업원 근무지
Jones 114 Main Street
Bravo 73 Industrial Way
Ellis 73 Industrial Way
Harrison 73 Industrial Way

 

종업원의 기술

종업원 기술
Jones Typing
Jones Shorthand
Jones Whittling
Bravo Light Cleaning
Ellis Alchemy
Ellis Flying
Harrison Light Cleaning

 

  • 제3 정규형이란 데이터베이스 정규화의 세 번째 단계로, 다음 조건을 만족해야 한다:

    • 테이블이 제2 정규형을 만족하고,

    • 테이블 내의 모든 속성이 기본 키에만 의존하며, 다른 후보 키에 의존하지 않는다.

      즉 제3 정규형은 추이 종속이 존재하지 않음을 요구한다.

    대회 연도 우승자 우승자 생년 월일
    Des Moines Masters 1998 Chip Masterson 14 March 1977
    Indiana Invitational 1998 Al Fredrickson 21 July 1975
    Cleveland Open 1999 Bob Albertson 28 September 1968
    Des Moines Masters 1999 Al Fredrickson 21 July 1975
    Indiana Invitational 1999 Chip Masterson 14 March 1977

     

    • 제 2정규형과 뭔가 비슷하다. 방금 한 것처럼 테이블을 분리시켜보자.

    대회 우승자

    대회 연도 우승자
    Des Moines Masters 1998 Chip Masterson
    Indiana Invitational 1998 Al Fredrickson
    Cleveland Open 1999 Bob Albertson
    Des Moines Masters 1999 Al Fredrickson
    Indiana Invitational 1999 Chip Masterson

     

    우승자 생년 월일

    우승자 우승자 생년 월일
    Chip Masterson 14 March 1977
    Al Fredrickson 21 July 1975
    Bob Albertson 28 September 1968

     

    • 제2 정규화와 대체 무슨 차이가 있냐고 반문 할 수 있다. 제 2정규화를 회상해보자. 종업원 테이블의 경우 (종업원, 기술)이 Primary Key였다.

    다시 제 3정규형을 보면 조금 다르다. 대회 우승자의 경우 (대회,연도)가 Primary Key이다. 따라서 파생된 테이블이 어떤 Key를 자신의 Primary Key

    삼느냐에 따라 제 2정규형과 제 3정규형을 나눌 수 있다.

 


 

실습

  • 새로운 프로젝트를 시작하기 전 ERD를 하나 설계하고자 한다.
  • 웹 커피숍을 만드는 프로젝트로 커피숍 사이트를 참고하여 만들어보고자 한다.

 

SHOP

  • SINGLE ORIGINS
  • BLEND
  • EASY COFFEE

 

 커피의 종류는 위와 같이 4종류가 존재한다. 이제 커피테이블을 구상해보자

커피

커피 이름 가격 적립금 커피 이미지 경로 커피 종류 코드
코체레 하마 G1, 에티오피아 16000 800 md_images/코체레_하마 0
시다마 디카페인, 에티오피아 16000 800 md_images/시다마_디카페인 0
정글에스프레소(JUNGLE ESPRESSO) 16000 800 md_images/정글에스프레소 1
메리제인(MARY JANE) 18000 900 md_images/메리제인 1
메리제인 드립백(6개입) 11500 500 md_images/메리제인_드립백 2
메리제인 콜드브루(500ml 원액) 14000 700 md_images/메리제인_콜드브루 2
ACR 월넛 우드 트레이 & 미니 18000 900 md_images/우드_트레이 2

 

커피 종류

커피 종류 코드 커피 종류 명
0 SINGLE ORIGINS
1 BLEND
2 EASY COFFEE

 

사용자

사용자ID 이름 휴대폰번호 이메일
1 son 010-1234-5678 sohn@gmail.com
2 kim 010-2345-5678 kim@gmail.com
3 park 010-3456-5678 park@naver.com

 

구매

구매ID 사용자ID 주소 결제수단
1 1 seoul 카드
2 2 busan 카드
3 3 daegu 카드
4 1 incheon 현금

 

구매상세

구매ID 커피 이름 주문수량
1 정글에스프레소(JUNGLE ESPRESSO) 1
1 메리제인(MARY JANE) 1
2 메리제인 드립백(6개입) 5
3 시다마 디카페인, 에티오피아 1
2 ACR 월넛 우드 트레이 & 미니 1
4 메리제인(MARY JANE) 10

 


About GJ

안녕하세요 방문해주셔서 감사합니다. 혹시 보시면서 궁금하신것 있으시면 https://open.kakao.com/o/sivaz71c로 연락주세용~

Star
Useful Links