220 likes | 342 Views
Banki danych WYKŁAD 2. dr Łukasz Murowaniecki lukaszm@uni.lodz.pl T-109. PRZYPOMNIENIE. Baza danych opisuje w sposób uproszczony pewien fragment rzeczywistości. Opisuje go przy pomocy modelu danych.
E N D
Banki danychWYKŁAD 2 dr Łukasz Murowaniecki lukaszm@uni.lodz.pl 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ą danychArchitektura ANSI/SPARC • 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. • Trzy poziomy architektury DBMS (poziomy abstrakcji) Łó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
ID_AUTORA IMIĘ NAZWISKO DZIEDZINY KLUCZ GŁÓWNY L I C Z E B N O Ś Ć RELACJA KROTKI ATRYBUTY STOPIEŃ Podstawy baz danych – model relacyjny Łódź 2008
Podstawy baz danych – model relacyjny Łó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 relacyjnychIntegralność 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 relacyjnychIntegralność 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 Łódź 2008
Integralność danych relacyjnychIntegralność 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 relacyjnychIntegralność referencyjna • Reguły kluczy obcych: • Usuwanie: • RESTRICTED – usuwanie jest ograniczone do przypadków, gdy nie ma krotek powiązanych • CASCADE – usuwane są również krotki powiązane • Aktualizacja: • 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
a d b e c f a d b e c f a d b e c f Rodzaje powiązań • Jeden – do – jeden (1:1) • Jeden – do – wiele (1:n) • Wiele – do - wiele (m:n) Łódź 2008
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 SELECT imię, nazwisko, wiek FROM student WHERE wiek >20; Łódź 2008
Podstawy baz danych – model relacyjny • Operacje na danych - algebra relacyjna - rzut SELECT imię, nazwisko FROM student; Łódź 2008
Podstawy baz danych – model relacyjny • Operacje na danych - algebra relacyjna - iloczyn SELECT imię, nazwisko, nazwa FROM student, przedmiot; Łódź 2008
Podstawy baz danych – model relacyjny • Operacje na danych - algebra relacyjna - suma 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 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 SELECT imię FROM student DIFFERENCE SELECT Imię_prowadzącego FROM przedmiot; Łódź 2008
Podstawy baz danych – model relacyjny • Operacje na danych - algebra relacyjna - iloraz Łódź 2008