Pojęcia
Schemat
Szczegółowy schemat bazy danych jest traktowany przez wielu specjalistów jak ontologia (reprezentacja pewnej dziedziny wiedzy, na którą składa się zapis zbiorów pojęć) opisująca pojęcia (encje i atrybuty) oraz związki mini-świata będącego wybranym fragmentem rzeczywistości.
Relacja
W relacyjnym modelu bazy danych jest to zbiór krotek
Krotka
Zbiór związanych ze sobą krótkich informacji (np. Imię, nazwisko, adres pracownika). W bazie danych jest to wiersz tabeli/rekord zawierający uporządkowane atrybuty.
Atrybut
Zawartość encji, która opisuje jej szczegółowe właściwości. Jest to część krotki (np. imię pracownika w encji pracownicy). W konkretnej encji każdy atrybut będzie przechowywał jedną wartość.
Encja
Byt ze świata rzeczywistego, którego istnienie nie jest zależne od innych elementów (np. fizycznie istniejący obiekt - samochód, konkretna osoba lub obiekt, którego istnienie ma charakter koncepcyjny - firma, praca czy przedmiot wykładany na uniwersytecie).
Tabela
Wydzielony logicznie zbiór danych, zorganizowanych w formie tabeli składających się z wierszy podzielonych na kolumny.
Wiersz
Pozioma część tabeli, inaczej krotka
Kolumna
Pionowa część tabeli. Zwykle stanowią atrybuty jakiegoś obiektu. Dane zawarte w kolumnach najczęściej mają jeden określony typ.
Baza danych
Zbiór danych oraz narzędzi SZBD przeznaczonych do zarządzania bazą danych oraz gromadzenia, przekształcania i wyszukiwania danych.
Jest to zbiór danych, który dotyczy rzeczywistości - a konkretnie określonego jej fragmentu, który reprezentuje.
Iloczyn kartezjański
Zbiór zawierający pary elementów należących od wszystkich branych pod uwagę zbiorów.
Schemat relacji
Informacja o strukturze i atrybutach, które opisują daną relację.
Zbiór
W informatyce jest to abstrakcyjny typ danych, który może przechowywać unikalne wartości bez określonej kolejności.
Podzbiór
Pewna "część" danego zbioru, składająca się z pewnej ilości jego elementów (np. wszystkich - podzbiór niewłaściwy, żadnego - podzbiór pusty, jednego - singleton/podzbiór jednoelementowy)
Klucz
Podstawowa koncepcja w teorii relacyjnych baz danych. Zapewnia tabelom możliwość skorelowania ze sobą dwóch lub więcej tabel. Może też pozwalać na identyfikację danego rekordu
Klucz główny (Primary key)
Wybrany minimalny zestaw atrybutów relacji, jednoznacznie identyfikujący każdy rekord tej relacji. Musi przyjmować wyłącznie wartości niepowtarzalne i nie może być wartością pustą (null). Każda relacja może mieć najwyżej jeden klucz główny. Klucz główny może być także kluczem kandydującym
Cechy klucza głównego
- Trwałość - pole kluczowe nie może być puste i nie może zawierać wartości NULL
- Unikatowość - dane w polu kluczowym nie mogą się powtarzać
- Stabilność - dane w polu kluczowym nie mogą się zmienić; dla kolumn kluczowych nie powinno się przypisywać danych nietrwałych, tj. np. nr telefonu
- Nieredukowalność - nie może mieć żadnych kolumn usuniętych z niego bez utraty unikalnej właściwości identyfikacyjnej
Klucz obcy (Foreign key)
Kombinacja jednego lub wielu atrybutów tabeli, które wyrażają się w dwóch lub większej liczbie relacji (tabel). Wykorzystywany do tworzenia powiązania pomiędzy tabelami, gdzie w jednej tabeli zbiór atrybutów jest kluczem obcym, a w drugiej kluczem głównym.
Przykład klucza obcego przedstawionego w języku SQL:
FOREIGN KEY (WYDZP) REFERENCES WYDZIALY(NAZWAW)
Klucz kandydujący
Minimalny zestaw atrybutów relacji, jednoznacznie identyfikujący każdą krotkę w tej relacji.
W relacji może znajdować się wiele kluczy potencjalnych (zwanych czasem kandydującymi). Spośród kluczy potencjalnych wybiera się zazwyczaj jeden klucz, zwany kluczem głównym.
Klucz prosty
Klucz jednoelementowy - oparty na jednej kolumnie
Klucz złożony
Klucz wieloelementowy - oparty na wielu kolumnach
Superklucz (Superkey)
Kolumna lub zestaw kolumn jednoznacznie identyfikujących każdą krotkę w tabeli
Atrybut kluczowy
Tabela może zawierać więcej niż jeden klucz, ale tylko jeden klucz główny. Atrybutami kluczowymi nazywa się te, które należą do któregoś z kluczy.
Atrybut niekluczowy
Atrybuty, które nie należą do żadnego z kluczy.
Normalizacja bazy danych
Metoda projektowania dobrych relacyjnych baz danych, wprowadzona przez Edgarda F. Codda w latach 70-tych. Jeśli baza spełnia daną postać normalną, nie jest podatna na pewne modyfikacje, które wpłyną na integralność danych. Wadą spełniania takiego zestawu kryteriów jest zwykle to, że tworzenie zapytań do niektórych danych może być utrudnione.
Postać normalna
Zestaw kryteriów umożliwiający ustandaryzowanie bazy danych w celu eliminacji podatności na pewne modyfikacje, które mogą wpłynąć na integralność danych.
Pierwsza postać normalna
Relacja jest w pierwszej postaci normalnej, gdy:
- opisuje jeden obiekt, wartości atrybutów są niepodzielne (atomowe/elementarne/skalarne) - każda kolumna jest wartością niepodzielną, a nie macierzą, listą lub czymś podobnym posiadającym własną strukturę
- nie zawiera powtarzających się grup informacji (tzw. kolekcji)
- kolejność wierszy może być dowolna (znaczenie danych nie zależy od kolejności wierszy)
Potocznie:
Wszystkie elementy są atomowe i żadne wiersze się nie powtarzają
Przed normalizacją do I postaci normalnej:
| Płeć | Imię |
|---|---|
| K | Anna, Maria |
| M | Jan, Piotr, Zenon |
Po:
| Płeć | Imię |
|---|---|
| K | Anna |
| M | Jan |
| K | Maria |
| M | Piotr |
| M | Zenon |
Druga postać normalna
Relacja musi spełniać pierwszą postać normalną oraz wszystkie jej atrybuty niekluczowe muszą być w pełni zależne od każdego z kluczy kandydujących (jeśli w tabeli występują klucze złożone, to atrybuty niekluczowe muszą być zależne od całych kluczy, a nie tylko ich części)
Inaczej:
- Każdy atrybut musi być w pełni zależny od klucza głównego/potencjalnego każdego wiersza
- Kolumny, które nie sią powiązane z każdą inną kolumną i kluczem głównym są usuwane lub przenoszone do nowych tabel
Przed normalizacją do II postaci normalnej:
| Płeć | Imię | Nazwisko | Stanowisko | Stawka za godzinę |
|---|---|---|---|---|
| K | Anna | Anonim | Sekretarka | 20 zł |
| M | Jan | Niezbędny | Informatyk | 22 zł |
| K | Maria | Enigma | Sprzątaczka | 15 zł |
| M | Piotr | Niewiadomy | Informatyk | 22 zł |
Kolumny "Imię" i "Nazwisko" stanowią klucze potencjalne, a płeć jest zależna tylko od jednego z nich - kolumny "Imię"
Po:
| Imię | Nazwisko | Stanowisko | Stawka za godzinę |
|---|---|---|---|
| Anna | Anonim | Sekretarka | 20 zł |
| Jan | Niezbędny | Informatyk | 22 zł |
| Maria | Enigma | Sprzątaczka | 15 zł |
| Piotr | Niewiadomy | Informatyk | 22 zł |
Oraz nowa tabela
| Płeć | Imię |
|---|---|
| K | Anna |
| M | Jan |
| K | Maria |
| M | Piotr |
Stanowisko oraz stawka za godzinę (atrybuty powtarzalne, niekluczowe) są w pełni zależne od imienia i nazwiska pracownika (atrybuty kluczowe).
Trzecia postać normalna
Relacja spełnia drugą postać normalną oraz wszystkie atrybuty niekluczowe zależą od klucza wyłącznie bezpośrednio (nie przechodnio)
Przed normalizacją:
| Imię | Nazwisko | Stanowisko | Stawka za godzinę |
|---|---|---|---|
| Anna | Anonim | Sekretarka | 20 zł |
| Jan | Niezbędny | Informatyk | 22 zł |
| Maria | Enigma | Sprzątaczka | 15 zł |
| Piotr | Niewiadomy | Informatyk | 22 zł |
Stawki godzinowe są zależne od stanowisk, niekoniecznie od imienia i nazwiska pracownika.
Po:
| Imię | Nazwisko | Stanowisko |
|---|---|---|
| Anna | Anonim | Sekretarka |
| Jan | Niezbędny | Informatyk |
| Maria | Enigma | Sprzątaczka |
| Piotr | Niewiadomy | Informatyk |
Oraz nowa tabela:
| Stanowisko | Stawka za godzinę |
|---|---|
| Sekretarka | 20 zł |
| Informatyk | 22 zł |
| Sprzątaczka | 15 zł |