Klucz Obcy -teoria

Klucze obce łączą dane przechowywane w różnych tabelach. Klucz obcy jest kolumną lub grupą kolumn z jednej tabeli, która czerpie swoje wartości z tej samej dziedziny co klucz główny tabeli powiązanej z nią w bazie danych. W systemach relacyjnych wprowadzamy specjalną wartość, aby wskazać niepełną lub nieznaną informację – wartość „null”.
Ta wartość, różna od zera i spacji, jest szczególnie użyteczna przy powiązaniu kluczy głównego i obcego.

Z pojęciem klucza głównego i obcego wiąże się pojęcie integralności:

Integralność referencyjna dotyczy kluczy obcych. Reguła integralności referencyjnej mówi, że każda wartość klucza obcego może się znajdować tylko w jednym z dwóch stanów.
Normalnie wartość klucza obcego odwołuje się do wartości klucza głównego w tabeli w bazie danych. Czasami wartość klucza obcego może być null i fakt ten zależy od zasad związanych z przedsięwzięciem. W tym wypadku jawnie stwierdzamy, że nie ma związku z reprezentowanymi obiektami w bazie danych albo że ten związek jest nieznany [Beynon-Davies 2003].

Oczywiście oprócz integralności referencyjnej istnieje integralność encji ( która w sumie powinna być pierwsza opisana):

Integralność encji dotyczy kluczy głównych. Jest ona również regułą integralności, która mówi, że każda tabela musi mieć klucz główny oraz że kolumna lub kolumny wybrane jako klucz główny powinny być jednoznaczne i nie zawierać wartości null.

Dla każdego związku między tabelami w naszej bazie danych powinniśmy określić, jak mamy postępować z usuwaniem docelowych i powiązanych kartotek. Na przykład, jeżeli usuniemy wiersz z tabeli w bazie danych, to musimy zdecydować, co powinno się stać z powiązanymi wierszami w tabeli korzystającej z klucza obcego wskazującego na tabele, w której usuwamy wiersz.

Są trzy (a właściwie cztery) możliwości:

graniczone usuwanie (ang. restricted delete). Jest to ostrożne podejście. Oznacza to, że zabraniamy usunąć wiersz np. z danymi wykładowcy dopóty, dopóki nie będą usunięte wszystkie wiersze informacji o zajęciach prowadzonych przez tego wykładowcę.

Kaskadowe usuwanie (ang. cascades delete). Jest to ufne podejście. Jeżeli usuwamy wiersz np. nagłówka dokumentu, to są jednocześnie usuwane wszystkie powiązane z nim pozycje tego dokumentu.

Wstaw null przy usuwaniu (ang. nullifies delete). Jest to wyważone podejście. Jeżeli usuwamy wiersz wykładowcy, to numery pracowników w powiązanych wierszach przedmiotów ustawiamy na null.

Istnieje także możliwość wymuszenia braku akcji
(ang. no action). Jest to podejście wysoce nie rozważne, co uargumentowałem we wstępie do integralności referencyjnej. Jeżeli usuniemy wiersz klucza głównego (wykładowcy) to wartości klucza obcego (np. prowadzonych przez niego przedmiotów nie ulegną zmianie).

Klucz główny – teoria

Zgodnie z założeniami modelu relacyjnego tabele (encje) powinny mieć klucz główny. Niestety nie wszyscy producenci baz danych zaimplementowali swoje produkty w sposób jaki był zakładany przez autora modelu relacyjnego ( E. Codd’a)

Każda relacja musi(powinna) mieć klucz główny. Dzięki temu możemy zapewnić, niepowtarzalność wierszy w relacji. Klucz główny to jedna lub więcej kolumn tabeli, w której wartości jednoznacznie identyfikują każdy wiersz w encji.

Reasumując:
Klucz główny (primary key) oznacza wybrany minimalny zestaw atrybutów relacji,
jednoznacznie identyfikujący każdy wiersz encji.

Klucz główny można założyć w momencie zapewnienia unikalności danych
oraz niedopuszczenia do wartości nieokreślonej na kolumnie (kolumnach)
klucza głównego.

Czym jest baza danych – teoria

Czym właściwie jest baza danych? Poniżej przedstawiam moją definicję opracowaną na podstawie lektury książek (w szczególnośći: Systemy baz danych Beynon-Davies 2003).

Baza danych jest pewnym modelem wycinka rzeczywistości w danej organizacji
(np. firmie, uczelni). Tę rzeczywistość nazywamy obszarem analizy (ang. Uniwerse Of
Discourse, UOD).

Bazę danych możemy uważać za zbiór danych (faktów), których zadaniem jest
reprezentowanie określonego UOD. Jednostka danych, jest symbolem, którego używamy, aby
reprezentować jakąś rzecz. Chcąc by fakty były użyteczne, muszą być one zinterpretowane.
Dane zinterpretowane to informacje. Natomiast informacje to dane w otoczeniu (kontekście)
nadającym im znaczenie. Zbiór faktów lub pozytywnych asercji na temat obszaru analizy
tworzą bazę danych. Zazwyczaj fakty negatywne, np. które przedmioty nie są zaliczane przez
studenta, nie są przechowywane [Beynon-Davies 2003].