인프런 커뮤니티 질문&답변

poqw741님의 프로필 이미지

작성한 질문수

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

데이터베이스 정규화과정 #3. 제 1정규형 ★★★

1정규형과 기본키

작성

·

250

·

수정됨

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

안녕하세요.

데이터베이스 정규화 과정 중에서 제1정규형에 대해서 질문이 있습니다.

 

정규화과정 #3. 제 1정규형에서 나온것처럼

릴레이션의 속성 값 중에서 한개의 기본키에 대해 두 개 이상의 값을 가지는 반복 집합이 있다고 했을때, 이번트 번호가 기본키 역할을 할 것이라고 생각하는 것이고, 당첨여부가 반복집합이라고 생각하면 될까요?

그리고 이 때 이벤트 번호 221006-1로는 당첨여부 Y,N,Y 중 어떤 것을 선택해야 할지 모르니 1정규화를 진행해야 하는 것일까요?

 

그리고 프로그래머스에서 문제를 풀다가 ,로 구분된 options라는 것에 대해서도 질문을 드리고자 합니다.

car_id, options 컬럼이 있고 이 때 car_id는 1부터 증가하는 숫자로 options는 콤마로 구분되어 선루프, 하이패스 기능, 베이비시트 이런식으로 값이 있다고 한다면

이것도 car_id라는 기본키에 반복집합이 있으니 정규화를 진행해야 할까요??

그런데 만약 그렇게 한다면

car_id, options

1, 선루프

1, 하이패스 기능

1, 베이비시트

이런 형식으로 다시 1이라는 기본키가 중복되어서 기본키 역할을 못하는 것 같습니다.
그래서 이 부분에서 다시 의아함을 가지고 있습니다.

혹시 제가 어떤 부분을 놓친걸까요?;;

 

 

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 741님 ㅎㅎ

car_id, options 컬럼이 있고 이 때 car_id는 1부터 증가하는 숫자로 options는 콤마로 구분되어 선루프, 하이패스 기능, 베이비시트 이런식으로 값이 있다고 한다면

>> 근데 1부터 증가하는 거라면 car_id는 1, 2, 3.. 이렇게 되지 않나요?

그럴 경우에

1, 선루프

2, 하이패스 기능

3, 베이비시트

이렇게 되서 사실 기본키를 수행하긴 해요..

이것도 car_id라는 기본키에 반복집합이 있으니 정규화를 진행해야 할까요??

그런데 만약 그렇게 한다면

car_id, options

1, 선루프

1, 하이패스 기능

1, 베이비시트

>> 하지만 만약 이경우에는 기본키를 car_id + options로 하면 됩니다. 기본키는 유니크하게 가져가야 한다고 생각하시면 되고 칼럼을 합쳐서 compound 키로 만들 수도 있다는 것을 생각하시면 될 거 같아요.

즉, 1- 선루프 / 1 - 하이패스 이렇게 놓게 되는데.. 다만 전체 테이블을 봐야 좀 더 정확할 거 같습니다.

또 질문 있으시면 질문 부탁드립니다.

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

감사합니다.

poqw741님의 프로필 이미지

작성한 질문수

질문하기