| Termin | Definicja |
|---|---|
| Klucz podstawowy | Klucz podstawowy to kolumna lub zestaw kolumn jednoznacznie identyfikujących każdy wiersz tabeli. Klucz podstawowy w modelu relacyjnej bazy danychKlucz podstawowy jest jednym z najważniejszych elementów projektu tabeli. Służy do rozróżniania rekordów, czyli pojedynczych wierszy opisujących osoby, produkty, zamówienia, dokumenty albo inne obiekty. Każdy wiersz powinien mieć wartość, która pozwala wskazać go bez pomyłki, niezależnie od tego, czy pozostałe dane zmienią się w przyszłości. Dzięki temu można odwoływać się do konkretnego rekordu podczas wyszukiwania, aktualizacji, usuwania oraz łączenia danych z innych tabel. W najprostszym przypadku klucz podstawowy znajduje się w jednej kolumnie, na przykład Właściwość ta jest istotna także wtedy, gdy tabela zawiera wiele podobnych wierszy. Dwóch klientów może mieć takie samo nazwisko, kilka produktów może nosić tę samą nazwę, a wiele zamówień może zostać złożonych tego samego dnia. Klucz podstawowy pozwala odróżnić takie rekordy bez opierania się na danych, które nie muszą być unikalne. Z tego powodu do roli klucza często wybiera się sztuczny identyfikator liczbowy albo identyfikator tekstowy generowany według ustalonej reguły. Klucz podstawowy i jego miejsce w porównaniu z innymi kluczamiKlucz podstawowy należy odróżnić od klucza obcego. Klucz podstawowy identyfikuje rekord we własnej tabeli, natomiast klucz obcy przechowuje odwołanie do rekordu w innej tabeli. Przykładowo tabela W praktyce spotyka się również klucze kandydujące. Są to kolumny albo zestawy kolumn, które mogłyby jednoznacznie identyfikować wiersze. Jeżeli w tabeli pracowników zarówno numer ewidencyjny, jak i służbowy identyfikator są unikalne, oba mogą być kandydatami. Jeden z nich zostaje wybrany jako klucz podstawowy, a pozostałe mogą otrzymać ograniczenie unikalności. Dzięki temu zachowuje się dodatkową kontrolę jakości bez nadawania wielu kolumnom tej samej roli. Nie każda wartość unikalna musi być kluczem podstawowym. Unikalność numeru telefonu, adresu poczty elektronicznej lub kodu produktu może być przydatna, lecz takie dane mogą ulec zmianie albo nie zawsze są dostępne. Identyfikator techniczny jest zwykle stabilniejszy. Wybór zależy od charakteru systemu, sposobu zarządzania danymi oraz wymagań dotyczących historii zmian. W niektórych przypadkach stosuje się klucz złożony, czyli oparty na dwóch lub większej liczbie kolumn. Może być potrzebny w tabeli pośredniej opisującej przynależność produktów do zamówień. Para Klucz podstawowy, integralność i relacje między tabelamiW bazie danych klucz podstawowy wspiera integralność encji. Oznacza to, że każdy rekord powinien być rozpoznawalny, a jego identyfikator nie powinien być pusty. Zwykle obowiązują więc dwa podstawowe warunki: wartości nie mogą się powtarzać, a brak wartości nie jest dozwolony. System zarządzania bazą danych może pilnować tych zasad za pomocą odpowiedniego ograniczenia. Próba dodania drugiego wiersza z tym samym identyfikatorem powinna zakończyć się odrzuceniem operacji. Znaczenie klucza ujawnia się szczególnie podczas tworzenia relacji. Jeżeli wiele faktur należy do jednego kontrahenta, tabela faktur może przechowywać identyfikator kontrahenta zamiast kopiować jego pełną nazwę i adres w każdym wierszu. Zapytanie łączy wtedy tabelę faktur z tabelą kontrahentów na podstawie klucza. Takie rozwiązanie ogranicza powielanie informacji i ułatwia utrzymanie spójności. Zmiana adresu w jednym miejscu może być widoczna w wielu zestawieniach, o ile system został prawidłowo zaprojektowany. Klucz podstawowy ma również znaczenie przy zmianach i usuwaniu danych. Aktualizacja wskazana po identyfikatorze dotyczy dokładnie wybranego rekordu, nawet jeśli inne kolumny mają takie same wartości. Przy usuwaniu można dodatkowo określić, co ma się stać z rekordami zależnymi. W zależności od reguł relacji usunięcie klienta może być zablokowane, może wymagać wcześniejszego usunięcia powiązanych zamówień albo może spowodować odłączenie tych zamówień. Sama obecność klucza nie rozstrzyga jeszcze całej polityki, ale zapewnia punkt odniesienia dla takich reguł. Warto zwrócić uwagę na indeks tworzony dla klucza podstawowego. Indeks pomaga szybko odnaleźć rekord po jego identyfikatorze i może poprawiać działanie operacji łączenia tabel. Nie należy jednak utożsamiać klucza z samym indeksem. Klucz wyraża zasadę modelu danych, a indeks jest mechanizmem przyspieszającym dostęp. W wielu systemach indeks powstaje automatycznie, lecz jego szczegóły zależą od użytej technologii i konfiguracji. Klucz podstawowy w typowych problemach projektowychJednym z częstych problemów jest używanie jako identyfikatora danych, które pozornie wydają się niezmienne. Numer telefonu, adres poczty elektronicznej albo symbol nadany przez zewnętrzny system może z czasem zostać zmieniony, ponownie wykorzystany lub zapisany w innym formacie. Jeżeli inne tabele odwołują się bezpośrednio do takiej wartości, zmiana wymaga modyfikowania wielu rekordów. Stabilny identyfikator techniczny ogranicza zasięg takich zmian. Innym błędem jest dopuszczenie do sytuacji, w której identyfikator może być pusty. Rekord bez rozpoznawalnego klucza trudno jednoznacznie aktualizować, usuwać i łączyć z innymi danymi. Problem może nie być widoczny przy kilku testowych wierszach, lecz później prowadzi do niejasnych wyników zapytań i trudnych do odtworzenia błędów. Ograniczenie wymagające wartości klucza powinno być częścią definicji tabeli, a nie wyłącznie zaleceniem dla osób wprowadzających dane. Ryzyko stwarza także ręczne nadawanie identyfikatorów bez sprawdzenia, czy dana wartość nie została już użyta. Przy pracy wielu użytkowników może dojść do kolizji. Bezpieczniejszym rozwiązaniem jest mechanizm automatycznego generowania identyfikatorów, sekwencja albo generator wartości gwarantujący ich niepowtarzalność. Przy identyfikatorach tekstowych należy dodatkowo ustalić dozwolone znaki, wielkość liter, sposób zapisu oraz reguły porównywania. Trudności mogą wystąpić również przy scalaniu danych z kilku źródeł. Ten sam numer może oznaczać różne rekordy w dwóch niezależnych tabelach, ponieważ każdy system nadawał identyfikatory według własnej numeracji. Podczas importu potrzebne jest mapowanie wartości i sprawdzenie duplikatów. Sam fakt, że kolumna nazywa się Klucz podstawowy i praktyczne wskazówki wdrożeniowePrzed wyborem klucza warto opisać obiekty występujące w systemie oraz ich relacje. Należy sprawdzić, czy rekordy mają naturalną cechę, która jest trwała i jednoznaczna, czy lepiej wykorzystać osobny identyfikator. Warto też określić przewidywaną liczbę wierszy, ponieważ zbyt mały typ liczbowy może po pewnym czasie przestać wystarczać. Dla identyfikatorów tekstowych trzeba uwzględnić długość, sposób sortowania i wpływ wielkości danych na indeksy. Dobrym zwyczajem jest konsekwentne nazewnictwo. Nazwy takie jak Warto testować nie tylko poprawne dodawanie danych, lecz również przypadki graniczne. Należy sprawdzić próbę dodania powtarzającego się identyfikatora, brak wartości, aktualizację rekordu wskazanego kluczem oraz usunięcie rekordu, do którego istnieją odwołania. Przydatne jest także testowanie importu większej paczki danych i równoczesnych operacji kilku użytkowników. Takie testy pokazują, czy reguły są egzekwowane przez bazę, a nie tylko przez pojedynczy formularz. Jeżeli problem z danymi wynika z awarii komputera, uszkodzenia nośnika lub nieprawidłowego działania aplikacji, można zgłosić sprzęt do Warszawskiego Pogotowia Komputerowego 24/7. W takiej sytuacji warto przekazać opis objawów, używanej aplikacji oraz momentu, od którego występuje problem. Ułatwia to ocenę, czy trudność dotyczy samego modelu bazy, programu, systemu operacyjnego czy fizycznego urządzenia. Klucz podstawowy a moment zgłoszenia problemu do serwisuDo serwisu warto zgłosić się wtedy, gdy nie da się uruchomić programu obsługującego bazę, system przestaje odpowiadać podczas odczytu danych albo pojawiają się objawy problemu z nośnikiem. Szczególnej ostrożności wymaga sytuacja, w której aplikacja zgłasza błędy odczytu, pliki z bazą znikają, komputer samoczynnie się wyłącza lub urządzenie wydaje nietypowe dźwięki. Dalsze próby zapisu mogą w takim przypadku pogorszyć stan danych. Przed przekazaniem sprzętu dobrze przygotować kopię plików, jeśli komputer nadal działa stabilnie. Należy zachować kopię bazy, konfiguracji połączeń, skryptów oraz informacji potrzebnych do odtworzenia środowiska. Nie powinno się jednak wielokrotnie kopiować uszkodzonego nośnika bez planu, ponieważ może to zwiększać jego obciążenie. Przydatne jest również zapisanie dokładnych komunikatów błędów i wskazanie, jakie działania poprzedziły awarię. W przypadku problemu z kluczem podstawowym objawem może być odmowa dodania rekordu, komunikat o naruszeniu unikalności, brak powiązanych danych albo nieprawidłowe wyniki połączenia tabel. Takie symptomy nie zawsze oznaczają uszkodzenie samej bazy. Przyczyną może być błędna migracja, pominięcie ograniczenia, niezgodny typ kolumny, niewłaściwa kolejność importu lub usunięcie rekordu nadrzędnego. Diagnoza powinna objąć zarówno dane, jak i działanie komputera, na którym baza jest używana. Najbezpieczniejsze podejście polega na zachowaniu oryginalnych plików, ograniczeniu niekontrolowanych zmian i dokładnym opisaniu problemu. Klucz podstawowy jest niewielkim elementem definicji tabeli, ale wpływa na wyszukiwanie, spójność, relacje oraz bezpieczeństwo wielu operacji. Prawidłowy wybór identyfikatora i konsekwentne pilnowanie jego reguł ułatwiają dalszy rozwój systemu oraz ograniczają ryzyko utraty kontroli nad rekordami. |