3. Zagadnienia związane z Relacyjnym Modelem Danych
a) Relacja - struktura danych w Relacyjnym Modelu Danych gdzie:
- wiersze to krotki
- kolumny to atrybuty
b) Założenia Codda:
- Każda relacja ma jednoznaczną nazwę w Bazie Danych.
- Każda kolumna ma jednoznaczną nazwę w relacji.
- Wszystkie wartości w kolumnie muszą być tego samego typu.
- Porządek kolumn i wierszy nie jest istotny.
- Każdy wiersz w relacji musi być różny.
- Każde pole leżące na przecięciu kolumn i wierszy w relacji powinno zawierać wartość atomową, tzn. że zbiór wartości w jednym polu relacji nie jest dozwolony
c) Normalizacja - jest to proces przekształcania relacji do dogodnej dla systemu postaci, jest to proces zagnieżdżony to znaczy że relacja w wyższej postaci normalnej musi być w niższej postaci normalnej.
Pierwsza Postać Normalna - Relacja jest w 1 NF jeżeli każda wartość atrybutów w każdej krotce tej relacji jest wartością elementarną. 1 NF jest cechą każdej relacji gdyż wymagania tej postaci są zawarte w definicji relacji.
Druga Postać Normalna - Relacja jest w 2 NF jeżeli jest w 1 NF i każdy atrybut nie kluczowy jest w pełni funkcjonalnie zależny od klucza głównego.
Trzecia Postać Normalna - Relacja jest w 3 NF jeżeli jest w 2 NF i każdy jej atrybut nie kluczowy jest bezpośrednio, a nie przechodnio zależny od klucza głównego.
Zależność funkcjonalna - atrybut B relacji R jest funkcjonalnie zależny od atrybutu A tej relacji jeżeli każdej wartości a atrybutu A odpowiada dokładnie jedna wartość b atrybutu B ( mówimy że a identyfikuje b) np. nr albumu —* nazwisko studenta.
Pełna Zależność funkcjonalna - atrybut B relacji R jest w pełni funkcjonalnie zależny od Atrybutu A tej relacji (który może być atrybutem złożonym) jeżeli jest funkcjonalnie zależny od Atrybutu A i nie jest zależny od żadnego podzbioru atrybutu A.
Zależność przechodnia - niech ABC będą trzema rozłącznymi podzbiorami atrybutów w relacji R . Atrybut C jest przechodnio funkcjonalnie zależny od atrybutu A, jeżeli atrybut C jest funkcjonalnie zależny od atrybutu B , a atrybut B jest funkcjonalnie zależy od atrybutu A. Natomiast atrybut A nie jest funkcjonalnie zależny od B , atrybut B nie jest funkcjonalnie zależy od C.
Jeżeli:
A —► B B —► C
To nie prawda że B —» A lub że C —<► B więc A wyznacza w sposób przechodni C.