수퍼키 편집하기
최신판 | 당신의 편집 | ||
9번째 줄: | 9번째 줄: | ||
수퍼키(Super Key)는 한 [[릴레이션]] 내에 있는 속성들의 집합으로 구성된 [[키 (데이터베이스)|키]](Key)를 의미한다. 수퍼키는 몇가지의 주요 특징이 있는데, 첫번째, [[기본키]](PK)로 사용된다. 한 릴레이션 내에 있는 속성들 중에 2개 이상의 속성을 1개의 [[후보키]]로 만들어서 기본키로 활용한다. 두번째, 릴레이션을 구성하는 모든 튜플 중 수퍼키로 구성된 속성의 집합과 동일한 값을 나타내지 않는다. 세번째, 수퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못한다. 유일성(Unique)은 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있는 성질을 의미하고, 최소성(Minimality)은 모든 튜플들을 유일하게 식별하는데 꼭 필요한 속성으로만 구성되는 성질을 의미한다. 수퍼키는 2개 이상의 속성들을 묶어 새로운 속성을 만들어내기 때문에 유일성을 만족하여, 기본키로 사용될 수 있다. 하지만, 1개의 속성으로도 유일성을 나타낼 수 있는 속성들도 2개 이상으로 묶어 만들어내기 때문에 최소성은 만족하지 못한다. <ref name="개발자를 꿈꾸는 프로그래머"> 〈[https://jwprogramming.tistory.com/75 키(Key)의 개념과 종류]〉, 《개인사이트》, 2016-04-24</ref> | 수퍼키(Super Key)는 한 [[릴레이션]] 내에 있는 속성들의 집합으로 구성된 [[키 (데이터베이스)|키]](Key)를 의미한다. 수퍼키는 몇가지의 주요 특징이 있는데, 첫번째, [[기본키]](PK)로 사용된다. 한 릴레이션 내에 있는 속성들 중에 2개 이상의 속성을 1개의 [[후보키]]로 만들어서 기본키로 활용한다. 두번째, 릴레이션을 구성하는 모든 튜플 중 수퍼키로 구성된 속성의 집합과 동일한 값을 나타내지 않는다. 세번째, 수퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못한다. 유일성(Unique)은 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있는 성질을 의미하고, 최소성(Minimality)은 모든 튜플들을 유일하게 식별하는데 꼭 필요한 속성으로만 구성되는 성질을 의미한다. 수퍼키는 2개 이상의 속성들을 묶어 새로운 속성을 만들어내기 때문에 유일성을 만족하여, 기본키로 사용될 수 있다. 하지만, 1개의 속성으로도 유일성을 나타낼 수 있는 속성들도 2개 이상으로 묶어 만들어내기 때문에 최소성은 만족하지 못한다. <ref name="개발자를 꿈꾸는 프로그래머"> 〈[https://jwprogramming.tistory.com/75 키(Key)의 개념과 종류]〉, 《개인사이트》, 2016-04-24</ref> | ||
− | === | + | === 예시 === |
1) 속성 중 '이름'을 기본키로 사용했을때 동명이인이 있을수 있기 때문에 유일성을 만족할 수 없다. 그래서 이름과 다른 속성들을 묶어서 수퍼키를 만들고, 이를 기본키로 사용할 수 있다. 그림과 같이 주민번호와 묶었을 경우, 주민번호는 각 사람마다 다르게 부여되는 숫자이기 때문에 1개로도 유일성을 만족하기에 기본키로 사용할 수 있지만, 이름 속성과 같이 사용되었을때 최소성은 만족하지 못한다. | 1) 속성 중 '이름'을 기본키로 사용했을때 동명이인이 있을수 있기 때문에 유일성을 만족할 수 없다. 그래서 이름과 다른 속성들을 묶어서 수퍼키를 만들고, 이를 기본키로 사용할 수 있다. 그림과 같이 주민번호와 묶었을 경우, 주민번호는 각 사람마다 다르게 부여되는 숫자이기 때문에 1개로도 유일성을 만족하기에 기본키로 사용할 수 있지만, 이름 속성과 같이 사용되었을때 최소성은 만족하지 못한다. | ||
− | [[파일:수퍼키 예시1.PNG|600픽셀|섬네일|가운데|수퍼키 | + | [[파일:수퍼키 예시1.PNG|600픽셀|섬네일|가운데|수퍼키 적용 릴레이션 예시1]] |
2) 속성 중 '학과'를 기본키로 사용했을때 같은 학과가 있을수 있기 때문에 유일성을 만족할 수 없다. 그래서 학과와 다른 속성들을 묶어서 수퍼키를 만들고, 이를 기본키로 사용할 수 있다. 그림과 같이 학번은 각 학생마다 다르게 부여되는 숫자이기 때문에 1개로도 유일성을 만족하기에 기본키로 사용할 수 있지만, 학과 속성과 같이 사용되었을때 최소성은 만족하지 못한다. | 2) 속성 중 '학과'를 기본키로 사용했을때 같은 학과가 있을수 있기 때문에 유일성을 만족할 수 없다. 그래서 학과와 다른 속성들을 묶어서 수퍼키를 만들고, 이를 기본키로 사용할 수 있다. 그림과 같이 학번은 각 학생마다 다르게 부여되는 숫자이기 때문에 1개로도 유일성을 만족하기에 기본키로 사용할 수 있지만, 학과 속성과 같이 사용되었을때 최소성은 만족하지 못한다. | ||
− | [[파일:수퍼키_예시2.PNG|600픽셀|섬네일|가운데|수퍼키 | + | [[파일:수퍼키_예시2.PNG|600픽셀|섬네일|가운데|수퍼키 적용 릴레이션 예시2]] |
{{각주}} | {{각주}} |