O SQL (przetwarzanie danych / bazy danych):
Kiedy mamy w tabeli dwa lub więcej pól, które razem jednoznacznie identyfikują jego rekordy, jaki jest właściwy sposób nazywania ich? Klucze kompozytowe czy złożone?
Widziałem w Internecie oba zastosowania, więc nie jestem do końca pewien.
database-design
terminology
igordcard
źródło
źródło
Odpowiedzi:
Zarówno klucz złożony, jak i klucz złożony opisują klucz kandydujący z więcej niż jednym atrybutem. Według Relational Database Dictionary (CJDate) oznaczają to samo.
W modelowaniu ER termin „klucz złożony” ma również bardziej szczegółowe znaczenie. Oznacza klucz, którego atrybutami składowymi są odniesienia do kluczy w innych jednostkach - tzn. Klucz złożony tworzy relację identyfikującą. Dla większości celów nie jest to szczególnie przydatna ani ważna koncepcja, więc terminy kompozyt / związek są często traktowane jako wymienne. Prawdopodobnie najlepiej trzymać się „klucza złożonego”, chyba że masz na myśli konkretnie koncepcję modelowania klucza złożonego.
źródło
Nadal nie jestem pewien, dlaczego http://en.wikipedia.org/wiki/Compound_key nie został skonsultowany. Bardzo wyraźnie stwierdza (i jest poprawny):
Klucz złożony składa się z elementów, które mogą, ale nie muszą być kluczami obcymi. Przykład: w tabeli szczegółów transakcji kluczem jest (TransactionId, ItemNumber). Szczegół transakcji jest subtelnością transakcji. TransactionId to klucz obcy, odwołujący się do tabeli Transakcje. ItemNumber nie jest sam w sobie kluczem. Tylko jednoznacznie identyfikuje pozycję w kontekście pojedynczej transakcji.
Klucz złożony to klucz, w którym dowolna część klucza jest kluczem obcym. Przykład: w systemie rezerwacji hotelowej rezerwacja ma złożony klucz (GuestId, HotelId, ArrivalDate). GuestId identyfikuje gościa i odwołuje się do tabeli gości. HotelId identyfikuje hotel i odwołuje się do tabeli hoteli. Data przyjazdu określa datę. Może być, ale nie musi, tabela Daty, do której się odwołuje, ale w obu przypadkach identyfikuje ona jednostkę (datę).
Warto również zauważyć, że ten faktoid: prosty klucz jest kluczem złożonym z jednej kolumny, podczas gdy klucz złożony składa się z dwóch lub więcej kolumn.
źródło
W języku angielskim są to „klucze złożone”. Na przykład spójrz na stronę MSDN (wystarczy każde wyszukiwanie zawierające „klucz złożony SQL”).
http://www.google.com/search?q=sql+composite+key+site:msdn.microsoft.com
Zakładając, że pytanie dotyczy relacyjnych baz danych, szukałem w Wikipedii „neutralnej” definicji :
źródło
Klucz złożony składa się z więcej niż jednego atrybutu w celu jednoznacznej identyfikacji wystąpienia encji. Różni się to od klucza złożonego tym, że jeden lub więcej atrybutów, które składają się na klucz, nie są prostymi kluczami same w sobie.
Na przykład masz bazę danych z kolekcją płyt CD. Jeden z elementów nazywa się ścieżkami, które zawierają szczegóły ścieżek na płycie CD. Ma złożony klucz z nazwą płyty CD, numerem ścieżki.
źródło
Wydaje mi się, że klucz złożony to nadzbiór zawierający klucze złożone. Jeśli zaakceptujemy, że klucz złożony składa się z więcej niż jednego atrybutu (dowolnego rodzaju), a klucz złożony składa się z więcej niż jednego klucza prostego. Klucz złożony jest rodzajem klucza złożonego o bardziej szczegółowym znaczeniu, ale termin „klucz złożony” jest zawsze odpowiedni do użycia.
źródło