톨머프
387
2021-03-14 13:00:45
3
174

데이터 베이스 후보키 질문있습니다


안녕하세요. 데이터베이스 공부하다 궁금한 점이 있어서 질문 남깁니다.

구글링을 해보니 후보키가 null을 허용한다, 허용하지 않는다에 대해서 명확히 나와있지 않더군요...

후보키 중의 하나가 기본키가 되는데, 그러면 후보키는 null을 허용하지 않아야하는게 맞지 않나요??

고유키는 null을 허용하는데, 후보키도 null을 허용해버리면 고유키 = 후보키 가 될 수 있으니까 후보키는 null을 허용하지 않는다고 보는 것이 맞을까요?

0
  • 답변 3

  • 캐티
    5k
    2021-03-14 13:27:58

    한개 칼럼에서 기본이나 고유키에 null 을 주면 안될꺼빈다. 머 딱히 되더라도 쓸데가 없으는쩌여.

    두개 칼럼에서 인덱스, 보조 이런 계념으로 나눈 경우에 null 을 활용 할 수 있스빈다. 머 근데 어지간해서는 가독성 문제도 있을꺼고 여차해서 null 을 빼는쪽으로 설계하빈다.

    후보키는 키로 사용될 만한 키들이빈다. 수퍼키 라는게 나오는데 프로그래밍에서 수퍼 라고 하면 상속에서 나오빈다. 그냥 여러 클래스를 가진 부모 클래스이빈다. 수퍼키도 이런 이유로 그렇게 굳어졌는가 보는쩌여.

    null 은 빈 칼럼이라는걸 어필하기 위한 데이터일뿐 자주 쓰는 자바스크립트에서도 null, undefined, NaN 같은 경우에도 엄밀히 따지면 빈 형태로 저장 가능한 리소스를 소비하빈다. 논리적인 제어에서 사용할 뿐 결론적으로 사람이 보기에 작업과정만 복잡하게 만드므로 null 을 안하는게 좋스빈다.

    머 실제 사용을 해보면 null 이 들어간 칼럼을 판별하기 위하여 쿼리에 앤드 이상을 더 써야하는데 단순화 하여 숫자필드만 한 경우엔 0~10까지가 빈 칼럼이라고 설계에 정의 하였다면 칼럼1>10 이라고 쿼리하면 됬을꺼빈다.

    좋은 프로그램을 만들려면 결국에는 사람이 편해야 하빈다.

    주관을 좀 섞었어도 산전수전 다 겪었는걸 고려하면 null 타입은 별로 권하고 싶지 않스빈다.

  • 장독깨기
    3k
    2021-03-14 13:52:05

    후보 키가 뭐지 하고 좀 찾아봤습니다. ㅎ

    기본키가 될 수 있는 후보라고 해서 후보키라고 하는거 같은데요.. 맞나요?ㅋ

    어쨌든...

    테이블을 만들면 그 테이블의 레코드를 유일하게 식별할 수 있는 값의 컬럼을 PK로 지정합니다.

    여기서 PK 가 기본 키가 되고 NULL 이 있으면 안되니,

    NULL 값이 들어갈 수 있는 컬럼은 후보 키가 될 수가 없는 게 맞지 싶습니다.


  • 무도123
    451
    2021-03-14 14:03:04

    저도 후보키가 뭔가하고 찾아봤는데 Unique Key 말씀하시는것 같아 그걸로 설명드릴께요

    Unique Key 는 1개 컬럼에만 지정이되며 그 값은 유일해야하는 ID입니다.

    null을 입력하면 안된다< 라는 제약은 없기때문에 쓰지 말라고 강제 할 수는 없지만 설계 할 때 해당 값을 null로 설계 하지는 않습니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.