작성
·
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점은 제게 큰 힘이 됩니다.
감사합니다.