[[키,key]] =키,key =,key . { '''키,key'''가 [[값,value]]과 pair(쌍, 짝, 2-tuple)을 이루고 그 사이에 함수관계(associated_array , hash_function , dictionary , mapping , ....)를 이루는 경우가 많이 등장 => [[키-값,key-value]] [[키-값,key-value]] =,key-value . { [[키,key]]가 [[값,value]]과 pair(쌍, 짝, 2-tuple)을 이루고 그 사이에 함수관계(associated_array , hash_function , dictionary , mapping , ....)를 이루는 경우가 많이 등장 https://en.wiktionary.org/wiki/key-value key-value_pair key-value pair = name-value pair https://en.wikipedia.org/wiki/Name–value_pair [[key-value_database]] key-value database = key-value store https://ko.wikipedia.org/wiki/키-값_데이터베이스 https://en.wikipedia.org/wiki/Key–value_database MKL [[NoSQL]] ... [[노SQL,NoSQL]] ??? } // key-value [[공개키,public_key]] vs [[private_key]] [[대칭키,symmetric_key]] [[public-key_cryptography]] =,public-key_cryptography . public-key_cryptography { public key cryptography "public key cryptography" Ggl:"public key cryptography" Naver:"public key cryptography" } // public key cryptography rel [[인수분해,factorization]] esp [[소인수분해,prime_factorization]] } // 키,key 이하 예전의 DB-specific 내용 ---- [[릴레이션relation]]에서 [[튜플tuple]]들을 구별하는 역할을 하는 속성 또는 속성들의 집합. tuple을 유일하게 구별하기 위해서는, 모든 [[속성attribute]]을 이용하는 것 보다는, 일부 속성만 이용하는 것이 효율적. tuple을 유일하게 구별해주는 역할은 속성 또는 속성들의 집합인 '''키key'''가 담당. 각 [[튜플tuple]]을 유일하게 식별할 수 있는 하나 이상의 [[속성attribute]] 집합. 모든 [[릴레이션relation]]은 '''키'''를 가짐. '''키'''는 릴레이션이 단순한 [[테이블table]]이 아님을 보여주는 대표적 개념. ''QQQ 다른건?'' 여러 [[무결성제약조건integrity_constraint]]과 관련하여 중요한 역할을 함.[* http://www.kocw.net/home/cview.do?cid=fc3d162212c224f5 변시우 5-1 마지막] 먼저 키와 관련된 속성 두가지.[* https://terms.naver.com/entry.naver?docId=3431156&cid=58430&categoryId=58430&expCategoryId=58430 4.] [[유일성uniqueness]] : 한 [[릴레이션relation]]에서 모든 [[튜플tuple]]은 서로 다른 '''키key''' 값을 가져야 함. [[최소성minimality]] : 꼭 필요한 최소한의 속성들로만 키를 구성 다섯 가지 '''키key'''의 종류 [[수퍼키super_key]] : (relation에서 모든 tuple에 대해) [[유일성uniqueness]]을 만족하는 속성들의 집합 [[후보키candidate_key]] : (relation에서 모든 tuple에 대해) [[유일성uniqueness]]과 [[최소성minimality]]을 (둘 다) 만족하는 속성 또는 속성들의 집합 [[기본키primary_key]] : 후보키 중에서 기본적으로 사용하기 위해 선택한 키 [[대체키alternate_key]] (후보키 중에서) 기본키로 선택되지 않은 후보키 [[외래키foreign_key]] 다른 [[릴레이션relation]]의 기본키를 참조하는 속성 또는 속성들의 집합 슈퍼키 - 유일성 후보키 - 유일성 + 최소성 기본키 - 후보키 중에서 선택한 것, null값을 가질 수 없음 대체키 - 후보키 중에서 선택하지 않은 것 외래키 - 관계를 맺는 두 relation에서, 참조하는 relation에 attribute로 지정되는 키 값[* http://kocw.net/home/search/kemView.do?kemId=1335378 김정준 4. 10m] <> = 수퍼키 super key = [[수퍼키super_key]] 유일성(uniqueness)의 특성을 만족하는 속성 또는 속성들의 집합. ex. 고객 relation에서, 나이/직업/적립금/이름 등은 값이 같은 고객이 있을 수 있으므로 유일성을 만족 못해서 super key가 될 수 없음.[* https://terms.naver.com/entry.naver?docId=3431148&cid=58430&categoryId=58430&expCategoryId=58430] 모든 tuple에 대해 유일성은 만족시키지만, 최소성은 만족시키지 못함.[* https://m.blog.naver.com/wook2124/222108768146] = 후보키 candidate key = [[후보키candidate_key]] [[튜플tuple]]을 구분할 수 있는 최소한의 [[속성attribute]]만으로 구성된 [[키key]] 유일성(uniqueness)과 최소성(minimality)을 만족하는 속성 또는 속성들의 집합. (최소성이란: 꼭 필요한 최소한의 [[속성attribute]]들로만 [[키key]]를 구성하는 특성. 키를 구성하는 속성들 중 하나만 없으면 유일하게 [[튜플tuple]]을 구별할 수 없음.) [[수퍼키super_key]] 중에서 최소성을 만족하는 것이 '''후보키'''가 된다. [* https://terms.naver.com/entry.naver?docId=3431149&cid=58430&categoryId=58430&expCategoryId=58430] [[릴레이션relation]]의 모든 tuple에 대해 '''유일성'''과 '''최소성'''을 만족시켜야 함. [[유일성uniqueness]] : 하나의 [[키key]] 값으로 하나의 tuple만을 유일하게 식별할 수 있어야 함. [[최소성minimality]] : 모든 [[레코드record]]들을''(tuple들을)'' 유일하게 식별하는 데 꼭 필요한 [[속성attribute]]으로만 구성되어야 함.[* https://m.blog.naver.com/wook2124/222108768146] = 기본키 primary key = [[기본키primary_key]] [[후보키candidate_key]]가 두 개 이상인 경우에 그 중 하나로 선택된 [[키key]] [[relation]]에서, [[튜플tuple]]을 구별하기 위해 여러 [[후보키candidate_key]]를 모두 쓸 필요는 없다. 여러 후보키 중에서 기본적으로 쓸 키를 반드시 선택해야 하는데, 이것이 '''기본키'''. '''기본키'''는 relation table에서 [[속성attribute]] 이름에 밑줄을 그어 표기. 기본키 선택 기준 * 널 값을 가질 수 있는 속성이 포함된 [[후보키candidate_key]]는 '''기본키'''로 부적절. * 값이 자주 변경될 수 있는 속성이 포함된 후보키는 '''기본키'''로 부적절. 속성 값이 바뀔 때마다 '''기본키''' 값으로 적합한지 여부를 판단하는 것은 번거로움. * 단순한 후보키가 좋음. 정수나 단순 문자열 등 [* https://terms.naver.com/entry.naver?docId=3431150&cid=58430&categoryId=58430&expCategoryId=58430] 후보키 중에서 특별히 선정된 주키(main key). 중복된 값과 null 값을 가질 수 없음. 후보키의 성질인 [[유일성uniqueness]]과 [[최소성minimality]]을 가짐. 튜플을 식별하기 위해 반드시 필요한 키임.[* https://m.blog.naver.com/wook2124/222108768146] = 대체키 alternate key = [[대체키alternate_key]] [[기본키primary_key]]로 선택되지 못한 [[후보키candidate_key]]. ''키의 관계 그림은 링크 참조.'' [* https://terms.naver.com/entry.naver?docId=3431151&cid=58430&categoryId=58430&expCategoryId=58430] '''대체키'''란, 후보키가 둘 이상일 때, 기본키를 제외한 나머지 후보키를 뜻함.[* https://m.blog.naver.com/wook2124/222108768146] = 외래키 foreign key = [[외래키foreign_key]] 어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 [[기본키primary_key]]가 되는 키. i.e. 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합. 릴레이션들 사이의 관계를 올바르게 표현하기 위해 필요. [* https://terms.naver.com/entry.naver?docId=3431152&cid=58430&categoryId=58430&expCategoryId=58430] 다른 [[릴레이션relation]]의 [[기본키primary_key]]를 참조하는 속성 또는 속성들의 집합. 참조되는 relation의 기본키와 대응되어, relation간의 참조 관계를 표현.[* https://m.blog.naver.com/wook2124/222108768146 5)] = 관계 데이터 모델에서, 무결성 제약조건 = 키와 관련한 무결성 제약조건(integrity constraint)[* https://terms.naver.com/entry.naver?docId=3431153&cid=58430&categoryId=58430&expCategoryId=58430] * 개체 무결성 제약조건 (entity integrity constraint) - 기본키에 대한 규칙 : [[기본키primary_key]]를 구성하는 모든 [[속성attribute]]은 null 값을 가질 수 없다. 가지면 안된다. 가지면 [[튜플tuple]]의 유일성을 판단할 수 없어, 기본키의 목적을 상실한다.[* https://terms.naver.com/entry.naver?docId=3431154&cid=58430&categoryId=58430&expCategoryId=58430] * 참조 무결성 제약조건 (referential integrity constraint) - 외래키에 대한 규칙 : [[외래키foreign_key]]는 참조할 수 없는 값을 가질 수 없다. 외래키는 자신이 참조하는 릴레이션에 기본키 값으로 존재하는 값, 즉 참조 가능한 값만 가져야 한다. 외래키가 자신이 참조하는 릴레이션의 기본키와 상관이 없는 값을 가지면, 두 릴레이션을 연관시킬 수 없으므로, 외래키라는 의미가 없어진다.[* https://terms.naver.com/entry.naver?docId=3431155&cid=58430&categoryId=58430&expCategoryId=58430] = 다섯가지 중요 키를 제외하고, 그 외의 다른 키? 돌아다니다 우연히 발견한것. = == 부분키? partial_key == Srch:partial_key http://foldoc.org/partial+key == surrogate_key == Srch:surrogate_key { '''surrogate key 대리키''' '''artificial key 인공키''' surrogate_key artificial_key ---- HashKr:대리키 http://databaser.net/moniwiki/wiki.php/SurrogateKey } = key violation = [[key_violation]] https://everything2.com/title/Key+Violation = 키의 포함 관계 = [[릴레이션relation]]에서 키의 포함 관계 https://i.imgur.com/9rtnOrQl.png // from 변시우 5-2 19:10 = 기타 = key와 비슷한데 key 역할을 할 수 없는 (조금 약한 조건?) discriminator 가 있다. - 수업에서 자세히 설명되지 않음. 나중에. Google:discriminator+in+database ---- Twins: [[https://terms.naver.com/entry.naver?docId=3478450&cid=58439&categoryId=58439 지형 공간정보체계 용어사전: 키 key]] Up: [[database]]