Zasady integralności danych i sposoby ich zapewnienia
Integralność danych to kluczowe pojęcie w bazach danych. Oznacza to, że dane w bazie powinny być poprawne, spójne i godne zaufania. Bez zachowania integralności dane mogą stać się błędne lub sprzeczne, co prowadzi do problemów w aplikacjach, które z nich korzystają. Aby utrzymać integralność danych, stosuje się różne zasady i mechanizmy kontrolne w systemie zarządzania bazą danych.
W tej sekcji omówimy, jakie są zasady integralności danych i jak można je zapewnić w bazach danych.
Typy Integralności Danych
Integralność danych można zapewnić na kilka sposobów, w tym przez trzy główne rodzaje integralności:
1. Integralność Encji (Entity Integrity)
Integralność encji oznacza, że każda tabela w bazie danych powinna mieć klucz główny (PRIMARY KEY
), który jednoznacznie identyfikuje każdy wiersz. Klucz główny nie może mieć wartości NULL
i musi być unikalny, co oznacza, że nie mogą istnieć dwa wiersze o tym samym kluczu głównym.
Przykład: W tabeli uczniowie
kolumna id
jest kluczem głównym. Każdy uczeń ma unikalne id
, co gwarantuje, że nie ma dwóch uczniów o tym samym identyfikatorze.
CREATE TABLE uczniowie (
id INT PRIMARY KEY AUTO_INCREMENT,
imie VARCHAR(50),
nazwisko VARCHAR(50)
);
2. Integralność Referencyjna (Referential Integrity)
Integralność referencyjna dotyczy powiązań między tabelami. Oznacza to, że jeśli tabela ma klucz obcy (FOREIGN KEY
), to wartość w tej kolumnie musi istnieć w tabeli, do której się odnosi. Dzięki temu relacje między tabelami są spójne i nie ma odwołań do nieistniejących wierszy.
Przykład: W tabeli oceny
kolumna uczen_id
jest kluczem obcym, który odnosi się do kolumny id
w tabeli uczniowie
. To oznacza, że nie możemy przypisać oceny uczniowi, który nie istnieje w tabeli uczniowie
.
CREATE TABLE oceny (
id INT PRIMARY KEY AUTO_INCREMENT,
ocena DECIMAL(3, 2),
uczen_id INT,
FOREIGN KEY (uczen_id) REFERENCES uczniowie(id)
);
3. Integralność Atrybutów (Domain Integrity)
Integralność atrybutów oznacza, że wartości w kolumnach muszą być zgodne z określonym typem danych i regułami. Na przykład kolumna może być ograniczona do przyjmowania tylko określonych wartości, takich jak liczby całkowite, tekst czy daty.
Przykład: Kolumna ocena
w tabeli oceny
może być ograniczona do przyjmowania wartości od 1 do 6, aby zapewnić, że wprowadzone dane są zgodne z zakresem ocen w szkole.
CREATE TABLE oceny (
id INT PRIMARY KEY AUTO_INCREMENT,
ocena DECIMAL(3, 2) CHECK (ocena >= 1 AND ocena <= 6),
uczen_id INT
);
Mechanizmy Zapewniające Integralność Danych
Aby zapewnić integralność danych, stosuje się kilka mechanizmów:
1. Klucze Główne i Obce
- Klucz główny (PRIMARY KEY): Gwarantuje, że każdy wiersz w tabeli jest unikalny.
- Klucz obcy (FOREIGN KEY): Zapewnia spójność danych między tabelami, tworząc powiązania między nimi.
2. Ograniczenia (Constraints)
- NOT NULL: Zapewnia, że kolumna nie może mieć wartości
NULL
, co jest ważne, gdy dana wartość musi być obecna. - UNIQUE: Gwarantuje, że wszystkie wartości w kolumnie są unikalne.
- CHECK: Pozwala określić warunki, jakie muszą być spełnione przez wartości w kolumnie (np. zakres ocen).
3. Transakcje
Transakcje są używane do zapewnienia spójności danych, gdy operacja składa się z kilku kroków. Transakcja zapewnia, że wszystkie operacje są wykonane pomyślnie albo wszystkie zostaną cofnięte, jeśli wystąpi błąd. Mechanizm ten jest znany jako ACID (Atomicity, Consistency, Isolation, Durability).
Testy przypięte do lekcji | |
---|---|
Aby uzyskać dostęp do testów i ćwiczeń interaktywnych - Zaloguj się |