it-swarm-eu.dev

V SQL, jsou to složené nebo složené klíče?

O programu SQL (Computing/Databases):

Když máme v tabulce dvě nebo více polí, která společně jedinečně identifikují její záznamy, jaký je správný způsob jejich volání? Složené nebo složené klíče?

Viděl jsem na webu obě použití, takže si nejsem opravdu jistý.

32
igordcard

Kompozitní klíč i složený klíč popisují kandidátní klíč s více než jedním atributem. Podle slovníku relačních databází (C.J.Date) znamenají totéž.

V ER modelování má výraz „složený klíč“ také konkrétnější význam. To znamená klíč, jehož základní atributy jsou odkazy na klíče v jiných entitách - tj. Složený klíč tvoří identifikační vztah. Pro většinu účelů to není zvlášť užitečný nebo důležitý koncept, takže se pojmy složený/sloučenina často považují za zaměnitelné. Pravděpodobně je nejlepší držet se „složeného klíče“, pokud se nezmiňujete konkrétně o koncepci ER modelování složeného klíče.

32
nvogel

Stále si nejsem jistý, proč http://en.wikipedia.org/wiki/Compound_key nebylo konzultováno. Velmi jasně uvádí (a je správná):

V návrhu databáze je složený klíč klíč, který se skládá ze 2 nebo více atributů, které jednoznačně identifikují výskyt entity. Každý atribut, který tvoří složený klíč, je jednoduchý klíč sám o sobě.

To je často zaměňováno s složeným klíčem , přičemž i když je to také klíč, který se skládá ze 2 nebo více atributů, které jedinečně identifikují výskyt entity, alespoň jeden atribut, který tvoří složený klíč, není sám o sobě jednoduchým klíčem.

Kompozitní klíč se skládá z prvků, které mohou nebo nemusí být cizími klíči. Příklad: V tabulce podrobností o transakcích je klíčem (TransactionId, ItemNumber). Detail transakce je podřízenost transakce. TransactionId je cizí klíč odkazující na tabulku Transakce. ItemNumber není klíčem samo o sobě. Pouze jedinečně identifikuje položku v rámci jedné transakce.

Složený klíč je klíč, přičemž jakákoli část klíče je cizí klíč. Příklad: v hotelovém rezervačním systému má rezervace složený klíč, (GuestId, HotelId, ArrivalDate). GuestId identifikuje hosta a odkazuje na tabulku Hosté. HotelId identifikuje hotel a odkazuje na tabulku hotelů. Datum příjezdu identifikuje datum. Může existovat nebo nemusí existovat tabulka dat, na kterou odkazuje, ale identifikuje entitu (datum) v obou směrech.

Poznámka je také tato skutečnost: Jednoduchý klíč je klíč tvořený jedním sloupcem, zatímco složený klíč je tvořen dvěma nebo více sloupci.

20
jcolebrand

V angličtině se jedná o „složené klíče“. Podívejte se například na web MSDN (provede se každé vyhledávání obsahující „složený klíč sql“).

http://www.google.com/search?q=sql+composite+key+site:msdn.Microsoft.com

Za předpokladu, že otázka se týká relačních databází, hledal jsem „neutrální“ definici v Wikipedia :

Složený klíč je klíč složený ze dvou nebo více atributů v tabulce, které (společně) jedinečně identifikují záznam

3
Hemme

Kompozitní klíč sestává z více než jednoho atributu pro jednoznačnou identifikaci výskytu entity. To se liší od složeného klíče v tom, že jeden nebo více atributů, které tvoří klíč, nejsou samy o sobě jednoduché klíče.

Máte například databázi, ve které je uložena vaše kolekce CD. Jedna z entit se nazývá stopy, které obsahují podrobnosti o stopách na CD. Má složený klíč s názvem CD, číslem stopy.

3
dilbag koundal

Zní mi to jako složený klíč je nadmnožina, která obsahuje složené klíče. Pokud přijmeme, že složený klíč je vyroben z více než jednoho atributu (jakéhokoli druhu) a složený klíč je vyroben z více než jednoho jednoduchého klíče. Složený klíč je typ složeného klíče s konkrétnějším významem, ale termín „složený“ klíč je vždy vhodný pro použití.

2
Tom Gnade