inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조

데이터베이스의 기본 #2-4. ENUM과 SET ★★★

'SET' 데이터 타입과 정규화에 대해 궁금한 점이 있습니다.

해결된 질문

141

이상민

작성한 질문수 27

0

안녕하세요 좋은 강의 감사합니다.

테이블의 타입에 값이 두 개 이상이 들어갈 경우 DB의 정규화를 만족하지 못하는 것으로 알고 있습니다.

이러한 관점에서 바라보았을때 MySQL의 SET 타입을 사용할 경우 정규화를 달성할 수 없는 것을 이해하면 될까요?

면접 운영체제 기술면접

답변 1

1

큰돌

안녕하세요 상민님 ㅎㅎ

이러한 관점에서 바라보았을때 MySQL의 SET 타입을 사용할 경우 정규화를 달성할 수 없는 것을 이해하면 될까요?

>> 네 맞습니다. 정확히는 제 1정규형을 지키지 못합니다.

 

참고 : 제 1정규형

릴레이션의 모든 도메인이 더 이상 분해될 수 없는 원자 값(atomic value)만으로 구성되어야 합니다.

 

CREATE TABLE colors (
    id INT PRIMARY KEY,
    colors SET('red', 'green', 'blue', 'yellow')
);

SET의 경우 red, green과 같은 값을 가질 수 있는 것 -> 원자성을 위배함.

 

이를 해결하기 위해서 다음과 같이 colors로 빼고 테이블을 나눠서 구축하기도 합니다.

CREATE TABLE items (
    id INT PRIMARY KEY,
    name VARCHAR(255)
);

CREATE TABLE colors (
    id INT PRIMARY KEY,
    color_name VARCHAR(50)
);

CREATE TABLE item_colors (
    item_id INT,
    color_id INT,
    FOREIGN KEY (item_id) REFERENCES items(id),
    FOREIGN KEY (color_id) REFERENCES colors(id)
);


또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


REST API (Self-descriptive messages)

0

25

1

시스템 엔지니어 관련 질문입니다.

0

52

2

오버라이딩 관련하여 질문드립니다.

0

62

2

교착상태의 4가지 필요조건이 필요충분조건이 아닌 이유

0

89

1

렌더 트리, 렌더 레이어와 그래픽 레이어

0

57

2

로컬스토리지, 세션스토리지, 쿠키의 공통점

0

68

1

IPv4가 IPv6보다 빠른 경우

0

98

2

UDP가 전송계층의 역할을 못하는 건 아닌지

0

59

1

Path MTU 발견하였음에도 패킷 분할이 필요한 이유?

0

65

2

교재의 LFU 알고리즘에서 6번이 왜 히트인가요?

0

64

2

페이지 교체 알고리즘? 프레임 교체 알고리즘?

0

81

2

Static 키워드가 메모리에 올라가는 시점

0

77

2

헤더 압축부분 질문드립니다

0

72

2

공유 캐시 관련 질문 드립니다.

0

56

2

컨텍스트는 context와 contextual information으로 나눠진다는게 무슨뜻인가요?

0

199

1

회선과 대역폭의 관계

0

61

2

44강 질문

0

93

2

버스 토폴로지 질문 있씁니다

0

55

1

자바스크립트, xml 문법 관련

0

66

2

전략패턴과 의존성주입 질문

0

69

2

Model이 비즈니스 로직을 담당하나요?

0

106

2

CS 공부 하는 법

0

181

2

큰돌님 블로그에 개념정리해서 올려도될까요!

0

137

2

FIN 세그먼트 질문

0

70

2