"수퍼키"의 두 판 사이의 차이
잔글 (→같이 보기) |
|||
(사용자 3명의 중간 판 13개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | '''수퍼키'''(Super Key)이란 | + | '''수퍼키'''(Super Key)이란 [[데이터베이스]]에서 [[레코드]]를 유일하게 식별할 수 있는 [[속성]]의 집합으로 구성된 [[키 (데이터베이스)|키]](Key)를 말한다. 슈퍼키는 대상관계의 모든 속성이 함수 종속하는 속성의 집합으로 정의할 수 있다.<ref name="위키백과"> 〈[https://ko.wikipedia.org/wiki/%EC%8A%88%ED%8D%BC_%ED%82%A4 슈퍼키]〉, 《위키백과》, 2019-01-17</ref> |
− | |||
− | |||
==개요== | ==개요== | ||
+ | [[파일:키(key)_구조.PNG|썸네일|400픽셀|키(key)의 구조]] | ||
+ | 수퍼키(Super key)는 [[릴레이션]]에 존재하는 [[필드]]들의 부분집합으로서, 유일성을 만족해야 한다. 수퍼키는 2개 이상의 [[속성]]을 묶어서 1개의 [[후보키]]로 만들어 [[기본키]]로 활용된다. 수퍼키와 많이 언급되는 단어는 [[후보키]]와 유일성, 최소성이다. 후보키와의 차이점으로 유일성과 최소성이 있는데, 수퍼키는 유일성은 만족하지만, 최소성을 만족하지 못한다. 하지만 후보키는 유일성과 최소성 둘 다 만족한다. <ref name="Untitled">〈[https://untitledtblog.tistory.com/123 (관계형 데이터베이스)-무결성(Integrity)]〉, 《개인사이트》, 2016-11-13</ref> | ||
==특징== | ==특징== | ||
− | 수퍼키(Super Key)는 한 [[릴레이션]] 내에 있는 속성들의 집합으로 구성된 키(Key)를 의미한다. 수퍼키는 몇가지의 주요 특징이 있는데, 첫번째, [[기본키]](PK)로 사용된다. 한 릴레이션 내에 있는 속성들 중에 2개 이상의 속성을 1개의 [[후보키]]로 만들어서 기본키로 활용한다. 두번째, 릴레이션을 구성하는 모든 튜플 중 수퍼키로 구성된 속성의 집합과 동일한 값을 나타내지 않는다. 세번째, 수퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못한다. 유일성(Unique)은 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있는 성질을 의미하고, 최소성(Minimality)은 모든 튜플들을 유일하게 식별하는데 꼭 필요한 속성으로만 구성되는 성질을 의미한다. 수퍼키는 2개 이상의 속성들을 묶어 새로운 속성을 만들어내기 때문에 유일성을 만족하여, 기본키로 사용될 수 있다. 하지만, 1개의 속성으로도 유일성을 나타낼 수 있는 속성들도 2개 이상으로 묶어 만들어내기 때문에 최소성은 만족하지 못한다. <ref name="개발자를 꿈꾸는 프로그래머"></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) 속성 중 '학과'를 기본키로 사용했을때 같은 학과가 있을수 있기 때문에 유일성을 만족할 수 없다. 그래서 학과와 다른 속성들을 묶어서 수퍼키를 만들고, 이를 기본키로 사용할 수 있다. | + | 2) 속성 중 '학과'를 기본키로 사용했을때 같은 학과가 있을수 있기 때문에 유일성을 만족할 수 없다. 그래서 학과와 다른 속성들을 묶어서 수퍼키를 만들고, 이를 기본키로 사용할 수 있다. 그림과 같이 학번은 각 학생마다 다르게 부여되는 숫자이기 때문에 1개로도 유일성을 만족하기에 기본키로 사용할 수 있지만, 학과 속성과 같이 사용되었을때 최소성은 만족하지 못한다. |
− | [[파일:수퍼키_예시2.PNG|600픽셀|섬네일|가운데|수퍼키 | + | [[파일:수퍼키_예시2.PNG|600픽셀|섬네일|가운데|수퍼키 예제2]] |
{{각주}} | {{각주}} | ||
26번째 줄: | 26번째 줄: | ||
==같이 보기== | ==같이 보기== | ||
* [[데이터베이스]] | * [[데이터베이스]] | ||
+ | * [[릴레이션]] | ||
* [[테이블]] | * [[테이블]] | ||
* [[후보키]] | * [[후보키]] | ||
* [[기본키]] | * [[기본키]] | ||
* [[외래키]] | * [[외래키]] | ||
+ | * [[대체키]] | ||
* [[대리키]] | * [[대리키]] | ||
− | {{ | + | {{데이터|검토 필요}} |
2021년 8월 7일 (토) 03:14 기준 최신판
수퍼키(Super Key)이란 데이터베이스에서 레코드를 유일하게 식별할 수 있는 속성의 집합으로 구성된 키(Key)를 말한다. 슈퍼키는 대상관계의 모든 속성이 함수 종속하는 속성의 집합으로 정의할 수 있다.[1]
개요[편집]
수퍼키(Super key)는 릴레이션에 존재하는 필드들의 부분집합으로서, 유일성을 만족해야 한다. 수퍼키는 2개 이상의 속성을 묶어서 1개의 후보키로 만들어 기본키로 활용된다. 수퍼키와 많이 언급되는 단어는 후보키와 유일성, 최소성이다. 후보키와의 차이점으로 유일성과 최소성이 있는데, 수퍼키는 유일성은 만족하지만, 최소성을 만족하지 못한다. 하지만 후보키는 유일성과 최소성 둘 다 만족한다. [2]
특징[편집]
수퍼키(Super Key)는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키(Key)를 의미한다. 수퍼키는 몇가지의 주요 특징이 있는데, 첫번째, 기본키(PK)로 사용된다. 한 릴레이션 내에 있는 속성들 중에 2개 이상의 속성을 1개의 후보키로 만들어서 기본키로 활용한다. 두번째, 릴레이션을 구성하는 모든 튜플 중 수퍼키로 구성된 속성의 집합과 동일한 값을 나타내지 않는다. 세번째, 수퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못한다. 유일성(Unique)은 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있는 성질을 의미하고, 최소성(Minimality)은 모든 튜플들을 유일하게 식별하는데 꼭 필요한 속성으로만 구성되는 성질을 의미한다. 수퍼키는 2개 이상의 속성들을 묶어 새로운 속성을 만들어내기 때문에 유일성을 만족하여, 기본키로 사용될 수 있다. 하지만, 1개의 속성으로도 유일성을 나타낼 수 있는 속성들도 2개 이상으로 묶어 만들어내기 때문에 최소성은 만족하지 못한다. [3]
예제[편집]
1) 속성 중 '이름'을 기본키로 사용했을때 동명이인이 있을수 있기 때문에 유일성을 만족할 수 없다. 그래서 이름과 다른 속성들을 묶어서 수퍼키를 만들고, 이를 기본키로 사용할 수 있다. 그림과 같이 주민번호와 묶었을 경우, 주민번호는 각 사람마다 다르게 부여되는 숫자이기 때문에 1개로도 유일성을 만족하기에 기본키로 사용할 수 있지만, 이름 속성과 같이 사용되었을때 최소성은 만족하지 못한다.
2) 속성 중 '학과'를 기본키로 사용했을때 같은 학과가 있을수 있기 때문에 유일성을 만족할 수 없다. 그래서 학과와 다른 속성들을 묶어서 수퍼키를 만들고, 이를 기본키로 사용할 수 있다. 그림과 같이 학번은 각 학생마다 다르게 부여되는 숫자이기 때문에 1개로도 유일성을 만족하기에 기본키로 사용할 수 있지만, 학과 속성과 같이 사용되었을때 최소성은 만족하지 못한다.
각주[편집]
- ↑ 〈슈퍼키〉, 《위키백과》, 2019-01-17
- ↑ 〈(관계형 데이터베이스)-무결성(Integrity)〉, 《개인사이트》, 2016-11-13
- ↑ 〈키(Key)의 개념과 종류〉, 《개인사이트》, 2016-04-24
참고자료[편집]
- 쩨리쩨리, 〈키(슈퍼키,대체키,후보키,기본키,외래키)〉, 《신입개발자 쩨리》, 2018-04-24
- 소이, 〈키(key)의 정의 및 특성〉, 《디지털 장인》, 2012-04-04
같이 보기[편집]