Bazy danych
Transkrypt
Bazy danych
2010-10-21 PLAN WYKŁADU Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna BAZY DANYCH Wykład 2 dr inż. Agnieszka Bołtuć MODEL DANYCH HISTORIA Model danych jest zbiorem ogólnych zasad posługiwania się danymi. Definiuje on: struktury danych, operacje na danych, ograniczenia integralnościowe. powstał dzięki jednej osobie – E.F.Coddowi, która w 1970 roku opublikowała pracę będącą fundamentem pod omawiany model danych, w latach 1968-1988 opublikował ponad 40 prac na temat relacyjnego modelu danych, prace nad relacyjnym modelem danych były prowadzone przez niego ze względu na: dane we wcześniejszych modelach były traktowane w niezdyscyplinowany sposób, słaby poziom niezależności danych od aplikacji, słaba wydajność tworzenia oprogramowania. model relacyjny 1 2 3 1 2010-10-21 POSTULATY CODDA (1985) POSTULATY CODDA postulat informacyjny – dane są reprezentowane jedynie za pomocą tabel wartości, postulat dostępu – każda wartość w bazie danych jest dostępna za pomocą nazwy tabeli, atrybutu oraz wartości klucza głównego, postulat wartości NULL – dostępna jest specjalna wartość NULL dla reprezentacji wartości nieokreślonej i nieznanej, inna od wszystkich pustych i podlegająca przetwarzaniu, POSTULATY CODDA postulat modyfikowania bazy danych przez perspektywy - system musi umożliwiać modyfikowanie perspektyw, o ile jest ono semantycznie realizowane, postulat modyfikowalności danych na wysokim poziomie abstrakcji – system musi umożliwiać operacje modyfikacji danych, których argumentami są tabele, postulat fizycznej niezależności danych – zmiany fizycznej reprezentacji danych i organizacji dostępu nie wpływają na aplikacje, postulat logicznej niezależności danych – zmiany wartości w tabelach nie wpływają na aplikacje, postulat słownika danych – informacje o obiektach bazy danych tworzących schemat bazy danych są na poziomie logicznym zgrupowane w tabele i dostępne w taki sam sposób jak każde inne dane, postulat pełnego języka danych – system musi dostarczać pełnego języka przetwarzania danych, który: charakteryzuje się liniową składnią, może być używany zarówno w trybie interaktywnym, jak i w obrębie programów aplikacyjnych, obsługuje operacje definiowania danych i perspektyw, operacje manipulowania danymi, ograniczenia związane z bezpieczeństwem i integralnością oraz operacje zarządzania transakcjami, POSTULATY CODDA postulat niezależności więzów spójności – więzy spójności są definiowane w języku bazy i nie zależą od aplikacji, postulat niezależności dystrybucyjnej – działanie aplikacji nie zależy od rozmieszczenia i rozproszenia bazy, postulat bezpieczeństwa względem operacji na niższych poziomach abstrakcji – operacje niskiego poziomu nie mogą naruszać modelu relacyjnego i więzów spójności. 2 2010-10-21 MODEL RELACYJNY STRUKTURY DANYCH struktura danych jest relacją, manipulacje na danych odbywają się poprzez: selekcję, projekcję, połączenie i operacje na zbiorach, integralność danych zachowana jest poprzez: klucz podstawowy, klucz obcy, zawężenie dziedziny, unikalność wartości, możliwość nadawania wartości pustych. jedyną strukturą danych w relacyjnej bazie danych jest relacja (R) - dwuwymiarowa tabela, kolumny tabeli – atrybuty (A), wiersze tabeli – krotki (t), liczba atrybutów w tabeli – stopień tabeli (n), liczba krotek w tabeli – liczebność tabeli (m), klucz główny – jednoznaczny identyfikator w tabeli, baza danych – zbiór relacji, dziedzina (D) – zbiór dopuszczalnych wartości, schemat relacji – R(A1, A2,…, An), schemat bazy danych – zbiór schematów relacji. STRUKTURY DANYCH rejestracja klucz główny kolor relacja samochody liczebność relacji marka dziedziny atrybuty RELACJA Relacja r o schemacie R(A1,A2, ...,An), oznaczona r(R), na zbiorze dziedzin {D1,D2, ...,Dn} jest zbiorem krotek r = {t1, t2, ..., tm} postaci t =< v1, v2, ..., vn >, będących uporządkowaną listą, gdzie vi , dla 0 < i ≤n należy do zbioru Di {NULL}, n jest stopniem relacji R, zaś m jej liczebnością. krotki stopień relacji 3 2010-10-21 W ŁASNOŚCI RELACJI INTEGRALNOŚĆ DANYCH każda relacja ma jednoznaczną nazwę w ramach bazy danych, w ramach jednej relacji atrybuty mają jednoznaczne nazwy, wszystkie wartości w kolumnie są tego samego typu (zdefiniowane w tej samej dziedzinie), kolejność kolumn w relacji nie ma znaczenia, w relacji nie istnieją powtarzające się krotki, kolejność krotek nie ma znaczenia, każde pole na przecięciu kolumna/wiersz ma wartość atomową. Każda relacja może posiadać zdefiniowane ograniczenia integralnościowe, które muszą spełniać zawarte w niej dane. KLUCZ KANDYDUJĄCY KLUCZ GŁÓWNY klucz kandydujący w relacji R jest podzbiorem K zbioru atrybutów relacji R, mającym własność jednoznaczności oraz nieredukowalności, klucz kandydujący to kolumna lub zbiór kolumn, które mogą stanowić jednoznaczny identyfikator wierszy w tabeli, w jednej relacji może być wiele kluczy kandydujących, Wyróżniamy ograniczenia: klucz podstawowy (PRIMARY KEY), klucz obcy (FOREIGN KEY), unikalność (UNIQUE), zawężenie domeny/dziedziny (CHECK), wartość pusta/niepusta (NULL/NOT NULL). klucz główny jest wybierany ze zbioru kluczy kandydujących, pozostałe nazywamy alternatywnymi, klucz główny zawierający jeden atrybut nazywamy prostym, zawierający wiele atrybutów złożonym, klucz główny jest jednoznaczny i nie może mieć wartości NULL. przykłady: PESEL, NIP, nr dowodu, nr paszportu. 4 2010-10-21 PRZYKŁAD KLUCZ OBCY relacja samochody klucz alternatywny? relacja wypadki Istnieje relacja podstawowa R2. Klucz obcy relacji R2 jest to podzbiór FK, zbioru atrybutów R2, taki że: istnieje relacja R1 (relacje R1 i R2 nie muszą być różne) z kluczem kandydującym CK, i w każdej chwili każda wartość FK w aktualnej wartości relacji R2 jest taka sama, jak wartość CK w pewnej krotce aktualnej wartości relacji R1, klucz główny klucz obcy Klucz obcy jest kolumną lub grupą kolumn w tabeli, która czerpie swoje wartości z tej samej dziedziny co klucz główny tabeli powiązanej z nią w bazie danych. klucz główny POZOSTAŁE OGRANICZENIA INTEGRALNOŚĆ DANYCH unikalność (UNIQUE) – niepowtarzalność wartości, zawężenie domeny/dziedziny (CHECK) - zbiór wartości domeny atrybutu może być zawężony przez wyrażenie logiczne do pewnego podzbioru: przedziału lub wyliczeniowej listy wartości, np. kolor oczu: szary, niebieski, zielony, piwny; cena: wartości dodatnie, wiek: od 0 do 120, integralność encji – każda tabela musi mieć klucz główny, a każda kolumna lub kolumny wybrane jako klucz powinny być jednoznaczne i nie zawierać wartości null, integralność referencyjna - baza nie zawiera żadnych niedopuszczalnych wartości klucza obcego i narzuca je poprzez tzw. więzy propagacji, dodatkowa – gdy nie możemy wyrazić wszystkich aspektów integralności należących do konkretnej aplikacji, definiujemy więzy. wartość pusta/niepusta (NULL/NOT NULL) – dopuszczanie/niedopuszczanie wartości pustej. 5 2010-10-21 ALGEBRA RELACYJNA SELEKCJA Algebra relacyjna jest zbiorem operatorów: restrykcja (selekcja) rzut (projekcja) złączenie suma przecięcie różnica iloczyn kartezjański iloraz Daje w wyniku relację składającą się ze wszystkich krotek ze wskazanej relacji, które spełniają określone warunki. Jako argument bierze jedną relację i w wyniku produkuje jedną relację. Może być uważana za „poziomą maszynę do cięcie”, gdyż wydobywa z relacji wejściowe wiersze spełniające warunek. selekcja SELEKCJA SELEKCJA - PRZYKŁADY Notacja: σ<warunki> (< nazwa relacji >) Warunek restrykcji ma postać < atrybut >< operator relacyjny >< literał > lub < atrybut >< operator relacyjny >< atrybut > SELECT * FROM samochody WHERE rocznik=1980; Warunki są łączone operatorami logicznymi AND lub OR σrocznik= 1980(samochody) σrocznik= 1980 AND kolor=‘biały’ AND marka=‘mercedes’ (samochody) SELECT * FROM samochody WHERE rocznik=1980 AND kolor=‘biały’ AND marka=‘mercedes’; Właściwości: operacja jest komutatywna. σ<war1>(σ<war2>(R)) = σ<war2>(σ<war1>(R)) 6 2010-10-21 RZUT RZUT Daje w wyniku relację składającą się ze wszystkich krotek, które pozostały jako krotki w danej relacji po usunięciu z niej wskazanych atrybutów. Jako argument bierze jedną relację i w wyniku produkuje jedną relację. Może być uważana za „pionową maszynę do cięcie”, gdyż tworzy na wyjściu relację będącą podzbiorem kolumn z relacji wejściowej. Notacja: π<atrybuty>(< nazwa relacji >) Właściwości: operacja nie jest komutatywna. Składanie operacji projekcji możliwe jest jedynie wtedy kiedy lista1 lista2: π <lista1>(π <lista2>(R)) = π <lista1>(R) rzut RZUT π rejestracja (samochody) SELECT rejestracja FROM samochody; π rejestracja, marka, kolor (samochody) SELECT rejestracja, marka, kolor FROM samochody; ZŁĄCZENIE Daje relację składającą się ze wszystkich możliwych krotek, będących kombinacjami dwóch krotek, po jednej z każdej wskazanej relacji, takich, że dwie krotki dające wkład do którejkolwiek kombinacji mają tę sama wartość wspólnego atrybutu (atrybutów) tych dwu relacji. Jako argument bierze dwie relacje i w wyniku produkuje jedną relację, Najpowszechniejsze złączenie to złączenie naturalne – będące rozszerzeniem równozłączenia. 7 2010-10-21 RÓWNOZŁĄCZENIE Jest iloczynem kartezjańskim, po którym jest wykonywana restrykcja, Łączone są dwie tabele, jednak tylko dla wierszy, w których wartości w kolumnach złączenia są takie same, Domyślne kolumny złączenia tworzą klucz główny i obcy tabel. R1 R2 R3 A1 A2 A3 A4 A X X I B X Y J C Y Z K równozłączenie ZŁĄCZENIE NATURALNE Jest iloczynem kartezjańskim, po którym jest wykonywana restrykcja oraz rzut, w którym nie bierze się pod uwagę powtórzeń kolumn złączenia. R1 R2 R3 A1 A2 A3 A4 A X X I A1 A2 A3 A4 B X Y J A X X I C Y Z K B X X I C Y Y J zł. naturalne A1 A2 A4 A X I B X I C Y J SELECT A1,A2 FROM R1 NATURAL JOIN R2; SELECT A1,A2 FROM R1 JOIN R2 ON R1.A2=R2.A3; ILOCZYN KARTEZJAŃSKI Daje relację składającą się ze wszystkich możliwych krotek, będących kombinacjami dwóch krotek, po jednej z każdej wskazanej relacji, Jako argument bierze dwie relacje i w wyniku produkuje jedną relację, Jeżeli relacja R ma N krotek, a relacja S ma M krotek, to relacja wynikowa Q będzie miała N*M krotek ILOCZYN KARTEZJAŃSKI Q A X R A A Y S B X C Y iloczyn B X B Y C X C Y iloczyn 8 2010-10-21 SUMA SUMA Daje w wyniku relację składającą się ze wszystkich krotek, które występują w jednej lub obu wskazanych relacjach. Jako argumenty bierze dwie zgodne (tabele mają taką samą strukturę – te same kolumny określone w tych samych dziedzinach) relacje R i S i w wyniku produkuje jedną relację R S. Suma jest operacją komutatywną R S = S R. Pracownicy_Polska Pracownicy_Francja nazwisko nazwisko Adam Kowalski Paweł Koc Jerzy Tamborski Matylda Modra Olga Zalewska Olga Zalewska Katarzyna Ferenc Artur Oniśko nazwisko Paweł Koc Matylda Modra Olga Zalewska Artur Oniśko Adam Kowalski Jerzy Tamborski Katarzyna Ferenc SELECT nazwisko FROM Pracownicy_Polska UNION SELECT nazwisko FROM Pracownicy_Francja; suma PRZECIĘCIE Daje w wyniku relację składającą się ze wszystkich krotek, występujących w obu wskazanych relacjach, Jako argumenty bierze dwie zgodne (tabele mają taką samą strukturę – te same kolumny określone w tych samych dziedzinach) relacje R i S i w wyniku produkuje jedną relację R S, Przecięcie jest operacją komutatywną. PRZECIĘCIE Pracownicy_Polska Pracownicy_Francja nazwisko nazwisko Adam Kowalski Paweł Koc Jerzy Tamborski Matylda Modra Olga Zalewska Olga Zalewska Katarzyna Ferenc Artur Oniśko nazwisko Olga Zalewska SELECT nazwisko FROM Pracownicy_Polska INTERSECT SELECT nazwisko FROM Pracownicy_Francja; przecięcie 9 2010-10-21 RÓŻNICA RÓŻNICA Daje w wyniku relację składającą się ze wszystkich krotek występujących w jednej ze wskazanych relacji, a nie występujących w drugiej, Jako argumenty bierze dwie zgodne relacje R i S i w wyniku produkuje jedną relację R - S, Różnica nie jest operacją komutatywną. Pracownicy_Polska Pracownicy_Francja nazwisko nazwisko Adam Kowalski Paweł Koc Jerzy Tamborski Matylda Modra Olga Zalewska Olga Zalewska Katarzyna Ferenc Artur Oniśko nazwisko Adam Kowalski Jerzy Tamborski Katarzyna Ferenc SELECT nazwisko FROM Pracownicy_Polska MINUS SELECT nazwisko FROM Pracownicy_Francja; różnica ILORAZ ILORAZ Bierze dwie relacje, jedną binarną, a drugą unarną i daje w wyniku relację składającą się ze wszystkich wartości jednego atrybutu relacji binarnej, które zgadzają się (pod względem wartości tego drugiego atrybutu) ze wszystkimi wartościami relacji unarnej. Jako argument bierze dwie relacje i w wyniku produkuje jedną relację. Pracownicy_Polska nazwisko staż_pracy Adam Kowalski 3 Jerzy Tamborski 4 Olga Zalewska 3 Katarzyna Ferenc 11 Anna Piwot 7 Pracownicy_staż nazwisko Adam Kowalski R1 3 Olga Zalewska iloraz 10 2010-10-21 W YKŁAD PRZYGOTOWANO NA PODSTAWIE C. J. Date, Wprowadzenie do systemów baz danych, WNT, Warszawa, 2000, http://wazniak.mimuw.edu.pl/index.php?title=Bazy_ danych P. Beynon-Davies, Systemy baz danych, WNT, 2003. 11