Łó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)
Poziom zewnętrzny
Poziom wewnętrzny (fizyczne)
Odwzorowanie zewnętrzno-pojęciowe
Odwzorowanie pojęciowe-fizyczne
Poziom pojęciowy
Łó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
LICZEBNOŚĆ
KROTKI
ATRYBUTY
RELACJA
ID_AUTORA IMIĘ NAZWISKO
DZIEDZINY
STOPIEŃ
S# ID_Autora Imię NazwiskoS1 1 Andrzej MarciniakS2 2 Grady BoochS3 4 Jan KowalskiS4 7 Adam Nowak
KLUCZ GŁÓWNY
Łódź 2008
Podstawy baz danych – model relacyjny
Formalny termin relacyjny Nieformalny równoważnikrelacja tabelakrotka wiersz lub rekordliczebność tabeli liczba wierszyatrybut kolumna lub polestopień tabeli liczba kolumnklucz główny jednoznaczny identyfikatordziedzina 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 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
ID Imię Nazwisko
1 Jan Kowalski
2 Anna Malinowska
3 Stefan
Kwiatkowski
ID Marka
Nr_rej Właściciel
1 Ford EL12345
1
2 Fiat EL23456
2
3 Seat WE33333
1
Łó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
Jeden – do – jeden (1:1)
Jeden – do – wiele (1:n)
Wiele – do - wiele (m:n)
Rodzaje powiązań
ab
c
de
f
ab
c
de
f
ab
c
de
f
Łó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
Imię Nazwisko WiekAnna Nowak 21Piotr Kwiatkowski 20Maria Kowal 19Olga Pastusiak 22Marcin Proca 21Stefan Żbik 23Janusz Milke 22Bożena Śledź 19Barbara Broda 18
STUDENT
SELECT imię, nazwisko, wiek
FROM student
WHERE wiek >20;
Imię Nazwisko WiekAnna Nowak 21Olga Pastusiak 22Marcin Proca 21Stefan Żbik 23Janusz Milke 22
Łódź 2008
Podstawy baz danych – model relacyjny
Operacje na danych - algebra relacyjna - rzut
Imię Nazwisko WiekAnna Nowak 21Piotr Kwiatkowski 20Maria Kowal 19Olga Pastusiak 22Marcin Proca 21Stefan Żbik 23Janusz Milke 22Bożena Śledź 19Barbara Broda 18
STUDENT
SELECT imię, nazwisko
FROM student;
Imię NazwiskoAnna NowakPiotr KwiatkowskiMaria KowalOlga PastusiakMarcin ProcaStefan ŻbikJanusz MilkeBożena ŚledźBarbara Broda
Łódź 2008
Podstawy baz danych – model relacyjny
Operacje na danych - algebra relacyjna - iloczyn
SELECT imię, nazwisko, nazwa
FROM student, przedmiot;
Imię Nazwisko WiekAnna Nowak 21Piotr Kwiatkowski 20
STUDENT
NazwaImięprowadzącego
Nazwiskoprowadzącego
Ekonomia Stefan KrajewskiEkonometria Jan GajdaAlgebra Anna ŻółtowskaPrawo Anna Barańska
PRZEDMIOT
Imię Nazwisko NazwaAnna Nowak EkonomiaAnna Nowak EkonometriaAnna Nowak AlgebraAnna Nowak PrawoPiotr Kwiatkowski EkonomiaPiotr Kwiatkowski EkonometriaPiotr Kwiatkowski AlgebraPiotr Kwiatkowski Prawo
Łó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;
Imię Nazwisko WiekAnna Nowak 21Piotr Kwiatkowski 20
STUDENT
NazwaImięprowadzącego
Nazwiskoprowadzącego
Ekonomia Stefan KrajewskiEkonometria Jan GajdaAlgebra Anna ŻółtowskaPrawo Anna Barańska
PRZEDMIOT
Imię NazwiskoAnna NowakPiotr KwiatkowskiStefan KrajewskiJan GajdaAnna ŻółtowskaAnna Barańska
Łó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;
Imię Nazwisko WiekAnna Nowak 21Piotr Kwiatkowski 20
STUDENT
NazwaImięprowadzącego
Nazwiskoprowadzącego
Ekonomia Stefan KrajewskiEkonometria Jan GajdaAlgebra Anna ŻółtowskaPrawo Anna Barańska
PRZEDMIOT ImięAnna
Łó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;
Imię Nazwisko WiekAnna Nowak 21Piotr Kwiatkowski 20
STUDENT
NazwaImięprowadzącego
Nazwiskoprowadzącego
Ekonomia Stefan KrajewskiEkonometria Jan GajdaAlgebra Anna ŻółtowskaPrawo Anna Barańska
PRZEDMIOT ImięPiotr
Łódź 2008
Podstawy baz danych – model relacyjny
Operacje na danych - algebra relacyjna - iloraz
a xa ya zb yb xc y
a
xy