Bazy Danych Model relacyjny bazy danych Przygotował: mgr inż. Maciej Lasota
Bazy Danych 1 1) Model relacyjny bazy danych Relacyjny model bazy danych pojawił się po raz pierwszy w artykule naukowym Edgara Codda w 1970 roku. W terminologii matematycznej baza danych jest zbiorem relacji. Stąd historyczne pochodzenie nazwy relacyjny model danych i relacyjna baza danych. W matematyce definiuję się relację jako: podzbiór iloczynu kartezjańskiego zbirów wartości Reprezentacją relacji jest dwuwymiarowa tabela złożona z kolumn (atrybutów) i wierszy (krotek). W modelu relacyjnym przyjmuje się następujące założenia o tabeli: Liczba kolumn (atrybutów) jest z góry ustalona. Z każdą kolumną (atrybutem) jest związana jej nazwa oraz dziedzina, określająca zbiór wartości, jakie mogą występować w danej kolumnie. Na przecięciu wiersza i kolumny znajduje się pojedyncza (atomowa) wartość należąca do dziedziny kolumny. Wiersz (krotka) reprezentuje jeden rekord informacji. W modelu relacyjnym kolejność wierszy (krotek) może się zmieniać. Przykład : Dwuwymiarowa Tabela Imię Nazwisko Miasto Kod pocztowy Ulica Nr_m Maciej Lasota Kielce 12-123 Paderewskiego 35 Zosia Kowalska Radom 34-333 Sienkiewicza 3 Katarzyna Lipińska Kielce 12-123 Żeromskiego 21 Michał Pisarski Warszawa 25-431 Jagiellońska 1 Michał Nowak Warszawa 25-431 Żelazna 123 Anna Kowalska Kraków 34-555 Kielecka 2 2) Klucz relacji (klucz główny, pomocniczy, obcy) Dla każdej tabeli w modelu relacyjnym musi być określony jednoznaczny identyfikator, nazywany kluczem głównym (podstawowym). Klucz główny składa się z jednej lub ze zbioru kolumn (atrybutów), w których wartości w jednoznaczny sposób identyfikują cały wiersz (krotkę). Oznacza to, że wartości znajdujące się w kolumnie będącej kluczem głównym nie mogą się powtarzać i muszą być unikatowe.
Bazy Danych 2 Klucz pomocniczy (alternatywny) ma tę samą własność co klucz główny, przy czym klucz główny jest tylko jeden, kluczy pomocniczych w tabeli może być więcej niż jeden. Klucz obcy jest to zbiór złożony z jednej kolumny lub więcej kolumn, w których wartości występują jako wartości ustalonego klucza głównego lub jednoznacznego w tej samej lub innej tabeli i są interpretowane jako wskaźniki do wierszy w tej drugiej tabeli. Przykład : Klucz główny Nr Imię Nazwisko Miasto Kod pocztowy Ulica Nr_m 10 Maciej Lasota Kielce 12-123 Paderewskiego 35 11 Zosia Kowalska Radom 34-333 Sienkiewicza 3 12 Katarzyna Lipińska Kielce 12-123 Żeromskiego 21 13 Michał Pisarski Warszawa 25-431 Jagiellońska 1 14 Michał Nowak Warszawa 25-431 Żelazna 123 15 Anna Kowalska Kraków 34-555 Kielecka 2 Przykład : Klucz obcy Tabela A (Dane osobowe) Nr Imię Nazwisko Adres 10 Maciej Lasota 100 11 Zosia Kowalska 101 12 Katarzyna Lipińska 102 13 Michał Pisarski 103 14 Michał Nowak 104 15 Anna Kowalska 105 Tabela B ( Adresy) Nr Miasto Kod pocztowy Ulica Nr_m 100 1 12-123 Paderewskiego 35 101 2 34-333 Sienkiewicza 3 102 1 12-123 Żeromskiego 21 103 3 25-431 Jagiellońska 1 104 3 25-431 Żelazna 123 105 4 34-555 Kielecka 2 Tabela C (Miasta) Nr Miasto Kod pocztowy 1 Kielce 12-123 2 Radom 34-333 3 Warszawa 25-431 4 Kraków 34-555
Bazy Danych 3 3) Relacje między tabelami i więzy integralności W relacyjnej bazie danych relacje między tabelami pozwalają zapobiec występowaniu powtarzających (nadmiarowych) danych. Wyróżnia się trzy typy relacji między tabelami. 1. Jedne do Wielu (1 ) 2. Wiele do Wielu ( ) 3. Jeden do Jednego (1 1) Jeden do wielu Najbardziej powszechny typ relacji. W przypadku tego typu relacji wierszowi (krotce) w tabeli A może odpowiadać wiele zgodnych wierszy (krotek) w tabeli B, ale wierszowi w tabeli B może odpowiadać tylko jeden zgodny wiersz w tabeli A. Przykład : Tabela wydawnictwa, tytuły książek. Wydawnictwa publikują wiele tytułów książek, ale każdy tytuł ksiązki pochodzi od jednego wydawcy. Tabela A (Wydawnictwa) ID Nazwa wydawnictwa Miasto 1 WNT Warszawa 2 Helion Gliwice 3 PWN Warszawa 4 Oreilly Cambridge 5 Mikom Warszawa Tabela B( Tytuły książek) ID Tytuł ksiązki IDWydaw 1 Oracle Essentials, Fourth Edition 4 2 Oracle PL/SQL Language Pocket Reference, Fourth Edition 4 3 Algorytmy genetyczne. Kompendium. T. 1 5 4 Linux. Biblia. Edycja 2007 2 5 Photoshop CS3 PL. Ilustrowany przewodnik 2
Bazy Danych 4 Wiele do wielu W przypadku relacji wiele-do-wielu, wierszowi (krotce) w tabeli A może odpowiadać wiele zgodnych wierszy (krotek) w tabeli B i na odwrót. Relację taką tworzy się definiując trzecią tabelę, zwaną tabelą skrzyżowań, której klucz podstawowy zawiera zarówno klucz obcy z tabeli A, jak i z tabeli B. Przykład : Tabele autorzy i tytuły książek są powiązane relacją wiele-do-wielu, zdefiniowaną przez relację jeden-do-wielu między każdą z tych tabel a tabelą autortytuł. Klucz podstawowy tabeli autortytuł stanowi kombinację kolumny klucza podstawowego tabeli autorzy i kolumny klucza podstawowego tabeli tytuły książek. Tabela A (Autorzy) IDA Imię Nazwisko 1 Rick Greenwald 2 Robert Stackowiak 3 Jonathan Stern 4 Steven Feuerstein 5 Bill Pribyl 6 Chip Dawes 7 Christopher Negus 8 Anna Owczarz-Dadan 9 Tomasz Gwiazda Tabela B (Tytuły książek) IDT Tytuł ksiązki 1 Oracle Essentials, Fourth Edition 2 Oracle PL/SQL Language Pocket Reference, Fourth Edition 3 Algorytmy genetyczne. Kompendium. T. 1 4 Linux. Biblia. Edycja 2007 5 Photoshop CS3 PL. Ilustrowany przewodnik Tabela C (AutorTytuł) IDA IDT 1 1 2 1 3 1 4 2 5 2 6 2 7 4 8 5 9 3
Bazy Danych 5 Jeden do Jednego W przypadku relacji jeden-do-jednego wierszowi (krotce) w tabeli A może odpowiadać nie więcej niż jeden zgodny wiersz (krotka) w tabeli B i na odwrót. Relacja jeden-do-jednego jest tworzona, jeśli obie powiązane kolumny są kluczami podstawowymi lub mają ograniczenia UNIQUE. Ten typ relacji spotyka się rzadko, ponieważ większość informacji powiązanych w ten sposób umieszczana jest w jednej tabeli. Relacji jeden-do-jednego można użyć, aby: Podzielić tabelę zawierającą wiele kolumn. Wydzielić część tabeli ze względów bezpieczeństwa. Przechowywać dane, które są używane przez krótki czas i powinny być łatwo usuwalne przez usunięcie tabeli. Przechowywać informacje, które mają zastosowanie tylko do podzbioru głównej tabeli. Więzy integralności to system reguł gwarantujących, że relacje między wierszami (krotkami) w pokrewnych tabelach pozostają poprawne, oraz że dane powiązane relacją nie zostaną przypadkowo usunięte lub zmienione. Więzy integralności narzucają następujące reguły postępowania: Nie można wprowadzić wartości w kolumnie klucza obcego tabeli powiązanej relacją, jeśli wartość ta nie istnieje w kluczu podstawowym tabeli pokrewnej. W kolumnie klucza obcego można jednak wprowadzić wartość NULL. Na przykład, nie można przypisać stanowiska pracownikowi, którego nie ma w tabeli pracownicy, ale można wskazać, że pracownik nie ma przypisanego stanowiska, wprowadzając wartość NULL. Nie można usunąć wiersza z tabeli klucza głównego, jeśli istnieją odpowiadające mu wiersze w tabeli pokrewnej. Na przykład, nie można usunąć wiersza z tabeli stanowiska, jeśli w tabeli pracownicy istnieją pracownicy przypisani do stanowiska reprezentowanego przez ten wiersz. Nie można zmienić wartości klucza podstawowego w tabeli klucza podstawowego, jeśli z danym wierszem są powiązane relacją inne wiersze. Na przykład, nie można usunąć pracownika z tabeli pracownicy, jeśli pracownik ten jest przypisany do stanowiska w tabeli stanowiska.
Bazy Danych 6 Więzy integralności wymagają spełnienia poniższych warunków: Zgodna kolumna z tabeli podstawowej musi być kluczem podstawowym lub mieć ograniczenie UNIQUE. Pokrewne kolumny muszą mieć ten sam typ danych i rozmiar. Obie tabele muszą należeć do tej samej bazy danych. Bibliografia: [1] Systemy baz danych ; Paul Beynon-Davies; Wydawnictwa Naukowo- Techniczne, Warszawa 1998. [2] Systemy Zarządzania Bazami Danych ; Lech Banachowski, Krzysztof Stencel; Wydawnictwo PJWSTK, Warszawa 2007 [3] Systemy baz danych pełny wykład ; Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom; Wydawnictwa Naukowo-Techniczne, Warszawa 2006. [4] SQL dl każdego ; Rafe Coburg; Wydawnictwa Helion, Gliwice 2000. [5] Dokumentacja Microsoft Access 2007; Microsoft Corp.