Banki danych WYKŁAD 2 dr Łukasz Murowaniecki [email protected] T-109 Łódź 2008 PRZYPOMNIENIE Baza danych opisuje w sposób uproszczony pewien fragment rzeczywistości. Opisuje go przy pomocy modelu danych. Model danych - zbiór ogólnych zasad posługiwania się danymi. Zbiór ten obejmuje trzy główne części: Definicja danych: zbiór reguł określających strukturę danych; Operowanie danymi: zbiór reguł dotyczących procesu dostępu do danych i ich modyfikacji; Integralność danych: zbiór reguł określających, które stany bazy danych są poprawne (a więc zarazem jakie operacje prowadzące do modyfikacji danych są dozwolone) Łódź 2008 System zarządzania bazą danych Architektura ANSI/SPARC Trzy poziomy architektury DBMS (poziomy abstrakcji) Poziom zewnętrzny poziom zewnętrzny - odnosi się do sposobu w jaki dane są widziane przez poszczególnych użytkowników poziom pojęciowy - jest abstrakcyjnym, lecz wiernym opisem pewnego wycinka rzeczywistości; sposób widzenia danych przez grupę użytkowników poziom wewnętrzny (fizyczny) - określa sposoby organizacji danych w pamięci zewnętrznej. Odwzorowanie zewnętrzno-pojęciowe Poziom pojęciowy Odwzorowanie pojęciowe-fizyczne Poziom wewnętrzny (fizyczne) Łódź 2008 Podstawy baz danych – modele danych Rozróżnia się trzy główne typy (lub generacje) modeli danych: Proste modele danych - dane zorganizowane są w strukturę rekordów zgrupowanych w plikach. Głównymi dostępnymi operacjami są operacje na rekordach (ewentualnie na ich poszczególnych polach). Klasyczne modele danych - należą do nich modele hierarchiczne, sieciowe i relacyjne. Modele relacyjne stanowią obecnie najbardziej popularną podstawę architektury systemów baz danych. Semantyczne modele danych - semantyka to inaczej znaczenie. Klasyczne modele danych nie dostarczają łatwego sposobu odczytania informacji o semantyce danych, stąd podejmuje się próby stworzenia innych modeli, uzupełniających ten brak. Przykładem częściowej realizacji tego programu są obiektowe modele danych. Łódź 2008 Podstawy baz danych – model relacyjny dane przechowywane są w dwuwymiarowych tabelach (relacjach) w nagłówku relacji są podane atrybuty schemat relacji = nazwa relacji + atrybuty; zbiór schematów relacji to schemat relacyjny bazy danych Wiersze relacji to krotki odpowiednik atrybutów relacji w krotce to składowe krotki dziedzina (domain) atrybutu – typ elementarny określający zbiór możliwych wartości atrybutu liczebność relacji (cardinality) – liczba krotek stopień relacji (degree) – liczba atrybutów każda krotka jest jednoznacznie identyfikowana przez klucz główny (primary key) Łódź 2008 Podstawy baz danych – model relacyjny IMIĘ ID_AUTORA NAZWISKO DZIEDZINY KLUCZ GŁÓWNY RELACJA S# S1 S2 S3 S4 ID_Autora 1 2 4 7 Imię Andrzej Grady Jan Adam ATRYBUTY STOPIEŃ Łódź 2008 Nazwisko Marciniak Booch Kowalski Nowak KROTKI L I C Z E B N O Ś Ć Podstawy baz danych – model relacyjny Formalny termin relacyjny Nieformalny równoważnik relacja krotka liczebność tabeli atrybut stopień tabeli klucz główny dziedzina tabela wiersz lub rekord liczba wierszy kolumna lub pole liczba kolumn jednoznaczny identyfikator zbiór wartości dopuszczalnych Łódź 2008 Podstawy baz danych – model relacyjny Własności relacji: Nie ma podwójnych krotek Krotki nie są uporządkowane z góry na dół Atrybuty nie są uporządkowane z lewa do prawa Wszystkie wartości atrybutów są atomowe Łódź 2008 Integralność danych relacyjnych Integralność baz danych: formalna poprawność bazy danych, ich fizycznej organizacji, zgodności ze schematem bazy danych i regułami dostępu. Integralność encji Integralność referencyjna Łódź 2008 Integralność danych relacyjnych Integralność encji Klucz kandydujący w relacji R jest podzbiorem K zbioru atrybutów relacji R, mających własności: Jednoznaczności – żadne dwie krotki R nie mają tej samej wartości dla K Nieredukowalności – żaden właściwy podzbiór K nie ma własności jednoznaczności Cechy kluczy kandydujących: W jednej relacji może wystąpić kilka różnych kluczy kandydujących Klucz kandydujący zawierający więcej niż jeden atrybut nazywa się kluczem złożonym, zaś klucz kandydujący zawierający dokładnie jeden atrybut – kluczem prostym Klucze kandydujące nie zawierają żadnych atrybutów, które są zbędne do jednoznacznej identyfikacji Klucze kandydujące zapewniają podstawowy mechanizm adresowania na poziomie krotek w systemie relacyjnym. Łódź 2008 Integralność danych relacyjnych Integralność referencyjna Klucz główny (primary key) – wybrany klucz kandydujący Klucze alternatywne (alternate keys) – pozostałe klucze kandydujące Klucze obce (foreign keys) - klucz obcy relacji pochodnej R2 jest to podzbiór FK, zbioru atrybutów R2 takich, że: Istnieje relacja podstawowa R1 (relacje R1 i R2 niekoniecznie są różne) z kluczem kandydującym CK oraz 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 R1 ID Imię Nazwisko ID Marka Nr_rej Właściciel 1 Jan Kowalski 1 Ford EL12345 1 2 Anna Malinowska 2 Fiat EL23456 2 3 Stefan Kwiatkowski 3 Seat WE33333 1 Łódź 2008 Integralność danych relacyjnych Integralność referencyjna Cechy kluczy obcych: Każda wartość danego klucza obcego musi pojawić się jako wartość odpowiedniego klucza kandydującego. Klucz kandydujący, odpowiadający danemu kluczowi obcemu może zawierać wartość, która nie występuje aktualnie jako wartość klucza obcego Klucz obcy jest złożony – składa się z więcej niż jednego atrybutu – tylko i tylko wtedy, gdy klucz kandydujący, któremu on odpowiada jest złożony Klucz obcy jest prosty wtedy i tylko wtedy, gdy odpowiadający mu klucz kandydujący jest prosty Każdy składowy atrybut danego klucza obcego musi być zdefiniowany na tej samej dziedzinie, co odpowiadający mu składnik właściwego klucza kandydującego Integralność referencyjna – w bazie danych nie mogą występować żadne niedopasowane wartości kluczy obcych Łódź 2008 Integralność danych relacyjnych Integralność referencyjna Reguły kluczy obcych: Usuwanie: Aktualizacja: RESTRICTED – usuwanie jest ograniczone do przypadków, gdy nie ma krotek powiązanych CASCADE – usuwane są również krotki powiązane RESTRICTED – aktualizacja jest ograniczana do przypadków, gdy nie ma krotek powiązanych CASCADE – aktualizacja jest propagowana na krotki powiązane NULL (brak informacji) Usuwanie: NULLIFIES – klucz obcy zostaje ustawiony na null i potem krotka powiązana jest usuwana Aktualizacja: NULLIFIES – klucz obcy zostaje ustawiony na null i potem krotka powiązana jest aktualizowana Łódź 2008 Rodzaje powiązań Jeden – do – jeden (1:1) a d b Jeden – do – wiele (1:n) c f a d b Wiele – do - wiele (m:n) e c f a d b c Łódź 2008 e e f Podstawy baz danych – model relacyjny Operacje na danych - algebra relacyjna Operatory algebry relacyjnej: Restrykcja (restrict) Rzut (project) Iloczyn (product) Suma (union) Przecięcie (intersect) Różnica (difference) Iloraz (divide) Złączenie (join) Łódź 2008 Podstawy baz danych – model relacyjny Operacje na danych - algebra relacyjna - restrykcja Imię Anna Piotr Maria Olga Marcin Stefan Janusz Bożena Barbara STUDENT Nazwisko Wiek Nowak Kwiatkowski Kowal Pastusiak Proca Żbik Milke Śledź Broda 21 20 19 22 21 23 22 19 18 Łódź 2008 Imię Anna Olga Marcin Stefan Janusz Nazwisko Wiek Nowak Pastusiak Proca Żbik Milke 21 22 21 23 22 SELECT imię, nazwisko, wiek FROM student WHERE wiek >20; Podstawy baz danych – model relacyjny Operacje na danych - algebra relacyjna - rzut Imię Anna Piotr Maria Olga Marcin Stefan Janusz Bożena Barbara STUDENT Nazwisko Wiek Nowak Kwiatkowski Kowal Pastusiak Proca Żbik Milke Śledź Broda 21 20 19 22 21 23 22 19 18 Imię Anna Piotr Maria Olga Marcin Stefan Janusz Bożena Barbara Nazwisko Nowak Kwiatkowski Kowal Pastusiak Proca Żbik Milke Śledź Broda SELECT imię, nazwisko FROM student; Łódź 2008 Podstawy baz danych – model relacyjny Operacje na danych - algebra relacyjna - iloczyn Imię Anna Piotr STUDENT Nazwisko Nowak Kwiatkowski Wiek 21 20 PRZEDMIOT Nazwa Ekonomia Ekonometria Algebra Prawo Imię prowadzącego Stefan Jan Anna Anna Nazwisko prowadzącego Krajewski Gajda Żółtowska Barańska Imię Anna Anna Anna Anna Piotr Piotr Piotr Piotr Nazwisko Nowak Nowak Nowak Nowak Kwiatkowski Kwiatkowski Kwiatkowski Kwiatkowski Nazwa Ekonomia Ekonometria Algebra Prawo Ekonomia Ekonometria Algebra Prawo SELECT imię, nazwisko, nazwa FROM student, przedmiot; Łódź 2008 Podstawy baz danych – model relacyjny Operacje na danych - algebra relacyjna - suma Imię Anna Piotr STUDENT Nazwisko Nowak Kwiatkowski Wiek 21 20 PRZEDMIOT Nazwa Ekonomia Ekonometria Algebra Prawo Imię prowadzącego Stefan Jan Anna Anna Nazwisko prowadzącego Krajewski Gajda Żółtowska Barańska Imię Anna Piotr Stefan Jan Anna Anna Nazwisko Nowak Kwiatkowski Krajewski Gajda Żółtowska Barańska SELECT imię, nazwisko FROM student UNION SELECT Imię_prowadzącego, nazwisko_prowadzącego FROM przedmiot; Łódź 2008 Podstawy baz danych – model relacyjny Operacje na danych - algebra relacyjna - przecięcie Imię Anna Piotr STUDENT Nazwisko Nowak Kwiatkowski Wiek 21 20 PRZEDMIOT Nazwa Ekonomia Ekonometria Algebra Prawo Imię prowadzącego Stefan Jan Anna Anna Nazwisko prowadzącego Krajewski Gajda Żółtowska Barańska Imię Anna SELECT imię FROM student INTERSECTION SELECT Imię_prowadzącego FROM przedmiot; Łódź 2008 Podstawy baz danych – model relacyjny Operacje na danych - algebra relacyjna - różnica Imię Anna Piotr STUDENT Nazwisko Nowak Kwiatkowski Wiek 21 20 PRZEDMIOT Nazwa Ekonomia Ekonometria Algebra Prawo Imię prowadzącego Stefan Jan Anna Anna Nazwisko prowadzącego Krajewski Gajda Żółtowska Barańska Imię Piotr SELECT imię FROM student DIFFERENCE SELECT Imię_prowadzącego FROM przedmiot; Łódź 2008 Podstawy baz danych – model relacyjny Operacje na danych - algebra relacyjna - iloraz a a a b b c x y z y x y a x y Łódź 2008