Dr inż. Tadeusz Jeleniewski
e-mail: tadeusz.jeleniewski@pwr.edu.pl lub: t.jeleniewski@ujw.pl http://tjeleniewski.ujw.edu.pl
Treści kształcenia
Systemy baz danych. Modelowanie danych. Relacyjne bazy danych. Języki zapytań do baz danych. Projektowanie relacyjnych baz danych.
Efekty kształcenia – wiedza, umiejętności i kompetencje
Podstawowe pojęcia dotyczące baz danych, systemów baz danych i systemów zarządzania bazami danych, współbieżnego przetwarzania transakcji,
bezpieczeństwa w systemach baz danych.
Umiejętność przygotowania schematu relacyjnej bazy danych na podstawie modelu encja-związek.
Formułowanie zapytań w języku SQL (Structured Query Language), tworzenie i użycie funkcji, procedur pamiętanych, widoków, wyzwalaczy.
2017-09-25 Bazy danych-1 W1 2
Zaliczenie wykładu na stopień na podstawie kolokwium.
Końcowa ocena przedmiotu będzie średnią arytmetyczną oceny z kolokwium i oceny z laboratorium pod warunkiem, że obydwie te oceny będą pozytywne.
Kolokwium odbędzie się na ostatnim wykładzie w semestrze.
Literatura
C.Delobel, M.Adiba - Relacyjne bazy danych. Wydawnictwa Naukowo-Techniczne, Warszawa, 1989 P. Beynon – Davies - Systemy baz danych. WN – T, Warszawa 2011
J.D.Ullman, J.Widom – Podstawowy wykład z systemów baz danych. WN-T, Warszawa, 2000 Mendrala D., Szeliga M., SQL. Praktyczny kurs, Wydanie II, Helion, Gliwice, 2011.
T.Connolly, C. Begg – Systemy baz danych. Praktyczne metody projektowania, implementacji i zarządzania. Wyd. RM, Warszawa, 2004
MySQL – 0pis języka. Wyd. Helion, 2005
Wrycza W., Marcinkowski B., Maślankowski J., UML 2.x. Ćwiczenia zaawansowane, Helion, Gliwice, 2012
Wykład 1
Wprowadzenie
Podstawowe pojęcia
Projektowanie systemów baz danych
Przykładowy model pojęciowy bazy danych
2017-09-25 Bazy danych-1 W1 4
Wg C.Delobel’a i M.Adib’y
Bazą danych nazywamy zbiór danych o określonej strukturze, zapisany na zewnętrznym nośniku pamięciowym komputera,
mogący zaspokoić potrzeby wielu użytkowników korzystających z niego w sposób selektywny w dogodnym dla siebie czasie.
Wykład 1
W bazie danych są zapisywane informacje o faktach i zdarzeniach dotyczących pewnego wycinka rzeczywistości, po to aby możliwe było ich odtworzenie i analiza w dowolnej chwili.
Poprawne i efektywne działanie na bazie danych zależy od właściwej interpretacji zawartych w niej informacji.
Wymaga to wiernego i pełnego opisu semantyki (semantyka - znaczenie) modelowanego wycinka świata rzeczywistego.
W systemach baz danych narzędziem opisu semantyki odwzorowywanego fragmentu świata rzeczywistego jest model danych.
2017-09-25 Bazy danych-1 W1 6
Modele konceptualne - najbardziej zbliżone do naturalnego sposobu analizy modelowanej rzeczywistości, jej obiektów
i zależności między nimi, wykonywanej przez projektanta bazy danych.
Najczęściej stosowanym modelem konceptualnym jest model związków i encji (encja, z ang. entity - jednostka, element).
W modelu tym podstawowymi pojęciami są:
encje, atrybuty i związki.
Modele implementacyjne - służą do reprezentacji określonych na poziomie modelowania konceptualnego encji, atrybutów i związków w konkretnym systemie bazy danych.
Najczęściej obecnie stosowanym modelem implementacyjnym w komercyjnych (i nie tylko) systemach baz danych (Oracle, MSSQL, Ingres, Sybase, Progress, Isis, Informix, dBase4, MySQL, PostgreSQL i in.) jest model relacyjny.
Ewolucja modeli danych:
1. Model hierarchiczny 2. Model sieciowy 3. Model relacyjny
4. Model relacyjno – obiektowy 5. Model obiektowy
6. Model dedukcyjny
1 2 3 4 5 6
2017-09-25 Bazy danych-1 W1 8
Podstawowe funkcje jakie musi spełniać SZBD to:
optymalizacja zapytań – takie przekształcanie zapytań kierowanych do bazy przez jej użytkowników aby czas oczekiwania na odpowiedź był możliwie najkrótszy,
• zapewnienie integralności danych - uniemożliwienie przejścia bazy do stanu, który nie istnieje w modelowanej rzeczywistości,
• zarządzanie współbieżnym dostępem wielu użytkowników w taki sposób aby każdy z nich był niewidoczny (“przeźroczysty”) dla innych; każdy z użytkowników musi być przekonany o tym, że jest wyłącznym właścicielem danych,
• odporność na awarie (niezawodność bazy danych) - możliwość odtworzenia poprawnego stanu bazy danych sprzed awarii,
• ochrona danych - uniemożliwienie dostępu nieuprawnionych użytkowników do poufnych danych innych użytkowników.
2017-09-25 Bazy danych-1 W1 10
Moduł zarządzania transakcjami pozwala wielu użytkownikom korzystać jednocześnie z bazy danych.
Powinien on działać tak, aby każdy z nich miał wrażenie, że on i tylko on jest wyłącznym właścicielem i użytkownikiem danych.
Moduł zarządzania dostępem do danych umożliwia właściwą interpretację danych przechowywanych w pamięciach
zewnętrznych, wprowadzanie nowych danych oraz modyfikację i
aktualizację istniejących danych.
Cechami charakterystycznymi baz danych są:
Niezależność aplikacji i danych - dane mogą być wprowadzane do bazy bez konieczności modyfikacji korzystających z nich programów czy systemów użytkowych, a z drugiej strony aplikacje mogą być modyfikowane niezależnie od stanu baz danych.
Abstrakcyjna reprezentacja danych. Programy i systemy użytkowe (aplikacje) są tworzone przy użyciu tzw. deklaratywnych języków programowania (w odróżnieniu od języków imperatywnych).
Twórca aplikacji nie musi np. interesować się kolejnością danych w bazie, ani sposobem ich reprezentacji i wyszukiwania. Precyzuje jedynie warunki selekcji informacji. Twórca aplikacji decyduje zatem “co zrobić”, a nie “jak zrobić”.
Różnorodność sposobów widzenia danych. Te same dane zawarte w bazie mogą być “widziane” w różny sposób przez różnych użytkowników. Efekt ten uzyskuje się przez stosowanie różnych
“filtrów” (perspektyw/widoków)nakładanych na te same dane.
Fizyczna i logiczna niezależność danych. Fizyczna niezależność danych polega na tym, że
rozszerzenie systemu komputerowego, na którym pracuje SZBD o nowy sprzęt nie narusza danych w bazie. Logiczna niezależność danych polega na tym, że - po pierwsze wprowadzanie nowych
danych do bazy nie deaktualizuje starych, po drugie - dane, które nie są wzajemnie powiązane tzw.
związkami integralnościowymi mogą być usuwane z bazy niezależnie od siebie.
2017-09-25 Bazy danych-1 W1 12
Projektowanie systemów baz danych
Modelowany fragm ent rzeczywistości
Diagramy EER
Relacje
Relacje znormalizowane
Fizyczne struktury danych
Strojenie system u W ybór struktur fizycznych i określenie
ścieżek dostępu Normalizacja m odelu relacyjnego Transformacja m odelu
konceptualnego do modelu relacyjnego
Kostrukcja m odelu konceptualnego
fragm entu rzeczywistości
Procedura konstrukcji modelu konceptualnego fragmentu rzeczywistości składa się zwykle z trzech kroków:
• Określenie wymagań dla systemu informatycznego z punktu widzenia zamawiającego.
• Zdefiniowanie informacji o obiektach i ich wzajemnych związkach.
Rezultatem jest kompletny diagram związków i encji.
• Określenie hierarchii funkcji realizowanych w systemie informatycznym
2017-09-25 Bazy danych-1 W1 14
Celem normalizacji jest zapewnienie spójności bazy i usunięcie z niej informacji nadmiarowych.
Normalizacja polega na dekompozycji relacji na “mniejsze” schematy relacji.
Proces normalizacji musi posiadać następujące własności:
• żaden atrybut nie zostanie zgubiony w trakcie procesu normalizacji,
• dekompozycja relacji nie prowadzi do utraty informacji,
• wszystkie zależności funkcyjne są reprezentowane w pojedynczych schematach relacji.
Podstawowym dla systemów baz danych pojęciem jest transakcja.
Jej charakterystyczne cechy określa się często skrótem ACID
A – Atomicity niepodzielność – transakcja musi być wykonana w całości, od początku do końca, albo wcale
C – Consistency spójność - transakcja nie może naruszać więzów spójności bazy danych
I - Isolation izolacja - każda transakcja musi przebiegać tak, jakby system w tym samym czasie nie realizował żadnej innej transakcji
D – Durability trwałość - wyniku przetwarzania kompletnie zakończonej transakcji system nie może utracić żadnego elementu danych
2017-09-25 Bazy danych-1 W1 16
Każdy z obiektów odwzorowanych w bazie danych nazywa się encją (z ang. entity - jednostka).
Rozróżnianie encji jest możliwe dzięki temu, że ich odpowiedniki - rzeczywiste obiekty mają tożsamość.
Każda z encji jest jednoznacznie określona za pomocą nazwy.
Encje tego samego typu można grupować w zbiory encji.
Każdy zbiór encji w modelu otrzymuje unikalną nazwę.
Przypisywanie nazw zbiorom encji jest jedną z podstawowych operacji w czasie tworzenia schematu pojęciowego.
Inną ważną operacją jest definiowanie zbiorów encji.
Teoria mnogości dopuszcza różne sposoby definiowania zbiorów:
(1) ekstensjonalnie, czyli przez wyliczenie elementów, np. {męski, żeński}
;
(2) intensjonalnie, czyli przez podanie własności, np.
definicja ta określa zbiór osób płci męskiej;
(3) za pomocą iloczynu kartezjańskiego;
jeżeli X, Y, Z są nazwami zbiorów, to jest zbiorem elementów takich, że
(4) za pomocą operatorów teoriomnogościowych sumy, przecięcia i różnicy zbiorów postaci odpowiednio
} )
(
|
{ x Osoba plec x meska
Z Y
X
Z z
Y y
X
x , ,
,
,
2017-09-25 Bazy danych-1 W1 18
Encje same w sobie nie niosą żadnej informacji.
Powiązania to relacje dwuczłonowe na zbiorach encji X oraz Y niekoniecznie różnych. Powiązanie takie oznaczać będziemy dalej symbolicznie jako:
G Y X F
gdzie F, G są odwzorowaniami na ogół wielowartościowymi, odwrotnymi względem siebie.
Zbiór X jest zbiorem źródłowym, zbiór Y - zbiorem docelowym odwzorowania F.
Na rysunku 1 pokazano przykładowy schemat powiązań między zbiorami STUDENT oraz KIERUNEK-I-ROK
ROK I
KIERUNEK Studenci
zapis
STUDENT
piotr
jerzy
anna III-rok-e-elektroniki
Semestr-dyplomowy-informatyki rok-I-informatyki
2017-09-25 Bazy danych-1 W1 20
Wyrażenie określa kierunek i rok studiów, na które zapisał się student Piotr.
Wyrażenie
określa dwuelementowy zbiór encji {piotr, jan}
piotr
zapis
rok I ormatyki
Studenci inf
Odwzorowania F oraz G mogą być:
(1) jednowartościowe lub wielowartościowe; odwzorowanie
jednowartościowe (funkcyjne) przyporządkowuje encji ze zbioru źródłowego dokładnie jedną encję ze zbioru docelowego; odwzorowanie wielowartościowe przyporządkowuje encji ze zbioru źródłowego podzbiór encji ze zbioru
docelowego,
(2) całkowite lub częściowe; odwzorowanie jest częściowe jeżeli w zbiorze źródłowym istnieją takie encje, które nie mają swoich obrazów, odwzorowanie jest całkowite jeżeli wszystkie encje ze zbioru źródłowego mają swoje obrazy,
(3) o określonej liczności minimalnej i maksymalnej zbioru wartości;
odwzorowaniom wielowartościowym można przypisać parę liczb całkowitych określających minimalną i maksymalną liczność zbioru wartości.
2017-09-25 Bazy danych-1 W1 22
Do zapisu nazw encji, nazw zbiorów encji, powiązań i odwzorowań zastosowano dalej następujące reguły:
(1) nazwy encji rozpoczynają się małą literą lub cyfrą, (2) nazwy zbiorów zaczynają się od wielkiej litery,
(3) funkcje (odwzorowania jednowartościowe) pisze się małymi literami (jak encje),
(4) odwzorowania wielowartościowe rozpoczyna się od wielkiej litery, (5) po odwzorowaniu całkowitym pisze się cyfrę 1 w nawiasie,
(6) po odwzorowaniu częściowym pisze się cyfrę 0 w nawiasie,
(7) po odwzorowaniu z określoną licznością minimalną i maksymalną wartości pisze się w nawiasie parę liczb, z których pierwsza oznacza minimalną liczność, a druga – liczność maksymalną,
(8) w definicji powiązania nie muszą występować obydwa elementy F i G.
Kilka przykładów powiązań zapisanych z zastosowaniem podanych zasad:
} żeńska ,
męska ){
( OSOBApłeć 1
OSOBA )
( Kandydat ROK
PARTIA 0
LICZBA )
( OSOBA wiek 1
x OSOBA|płeć(x) męska
) ( żona
) ( żeńska mąż
) x ( płeć
| OSOBA
x
0 0
OSOBA )
( Dzieci
) , ( Rodzice OSOBA
0 2 2
2017-09-25 Bazy danych-1 W1 24
Model konceptualny bazy danych powstaje w trzech etapach:
(1) określenie zbiorów encji składających się na dany system informacji, (2) określenie powiązań między zbiorami encji – należy tutaj uwzględnić
możliwie najwięcej powiązań mimo, że powstają często redundancje (nadmiar),
(3) określenie warunków dotyczących powiązań.
Jako przykład przedstawiono przebieg procesu formułowania modelu pojęciowego bazy danych pewnej hipotetycznej uczelni.
Przeznaczeniem tej bazy ma być wspomaganie zarządzania uczelnią.
W stosunku do rzeczywistości model ten stanowi znaczne uproszczenie.
Na pierwszym etapie określamy zbiory encji:
1. STUDENT - zbiór wszystkich studentów, którzy studiują aktualnie lub studiowali w przeszłości, np. 10 lub mniej lat wstecz.
2. WYKŁADOWCA - zbiór wykładowców aktualnie współpracujących z uczelnią.
3. KIERUNEK-I-ROK - zbiór wszystkich kierunków i lat studiów prowadzonych na uczelni.
4. PRZEDMIOT - zbiór przedmiotów stanowiących elementy programu nauczania na określonym kierunku i roku studiów.
5. SALA - zbiór sal, w których odbywają się zajęcia.
6. NAZWISKO - zbiór nazwisk stanowiących sensowne łańcuchy znaków.
7. ADRES - zbiór łańcuchów znaków odpowiadających adresom.
8. ROK - zbiór lat akademickich w postaci np. 96/97 (rok akademicki 1996/1997)
2017-09-25 Bazy danych-1 W1 26
9. STANOWISKO - zbiór stanowisk akademickich wykładowców, np.
{profesor, adiunkt, starszy asystent, asystent}.
10. GODZINA - godziny odbywania się zajęć, np. 9.15 – 11.00
11. DZIEŃ={poniedziałek, wtorek, środa, czwartek, piątek, sobota, niedziela}
12. LICZBA - zbiór liczb całkowitych.
13. BUDYNEK - zbiór budynków uniwersyteckich.
14. BOOL={prawda, fałsz}
Drugi etap polega na określeniu powiązań pomiędzy zbiorami encji:
15.
16.
17.
18.
19.
20.
21.
NAZWISKO )
( zwisku Studentona
) ( udenta nazwiskost
STUDENT
0 1
NAZWISKO )
( zwisku Studentona
) ( udenta nazwiskost
STUDENT
0 1
ADRES )
( nta adresstude
STUDENT 1
PRZEDMIOT )
( ot zieprzedmi Kierunekgd
) ( zedmiot ROK Pr
I KIERUNEK
1
1
BUDYNEK )
( ku Salawbudyn
) ( a lokalizacj
SALA 1
1
ADOWCA Ł
)WYK (
y ln a odpowiedzi ROK
I
KIERUNEK 1
ROK I
KIERUNEK )
( isany Studentzap
) ( zapisany
STUDENT
0 1
22.
student uczęszczał w danym roku akademickim na określony kierunek i rok studiów,
BOOL ROK
ROK I
KIERUNEK )
( Uczęszczał
STUDENT 1
2017-09-25 Bazy danych-1 W1 28
23.
powiązanie określa zaliczenia, jakie powinien mieć student, który chce się zapisać na określony kierunek i rok studiów.
24.
25.
26.
27.
powiązanie to mówi, czy dany student zaliczył rok/semestr studiów, czy nie.
BOOL ROK
I KIERUNEK
) ( Wymagany ROK
I
KIERUNEK 0
ADOWCA Ł
WYK SALA
DZIEŃ GODZINA
) ( ęć Rozkładzaj
PRZEDMIOT 1
PRZEDMIOT SALA
DZIEŃ GODZINA
Zajety ADOWCA
WYK (1)
Ł
PRZEDMIOT DZIEŃ
GODZINA Zajeta
SALA (0)
)BOOL (
zaliczenie
STUDENT 1
Trzeci etap projektowania modelu polega na określeniu warunków dotyczących powiązań
28. Jeżeli to
29. Jeżeli to istnieje w takie, że
co zapisuje się formalnie jako:
PRZEDMIOT p
WYKLADOWCA w
SALA s
DZIEN d
GODZINA
g , , , ,
g, d, s, w Rozkladzaj ec p
g, d, s, p
Zajety
w
g,d,p
Zajęta(s)
g,d,s,p
Zajęty
w
g,d,p Zajętas
wWYKŁADOWCA
g,d,s,p
Zajęty
w
2017-09-25 Bazy danych-1 W1 30
30. Dla pewnego studenta
definiujemy zbiór kierunków i lat studiów, które ten student zaliczył.
Zbiór ten zapiszemy w następującej postaci:
Student s może zapisać się na kierunek i rok k tylko wtedy, gdy
co zapisuje się formalnie jako:
STUDENT s
k KIERUNEK I ROK | r ROK k,r,prawda UCZĘSZCZA Ł s
ZAL
ZAL )
k (
Wymagany
ZAL )
k ( Wymagany
) s ( zapisany
k