Wykład XIX
Bazy danych
Podstawy informatyki
Semestr III Elektrotechnika
Politechnika Radomska
Baza danych
zbiór danych istniejący przez pewien
czas
utrwalony na nośniku komputerowym
zorganizowany
przez
system
zarządzania bazą danych (DBMS –
database management system)
Funkcje DBMS
utworzenie nowej bazy danych i określenie jej schematu
(logicznej struktury) oraz modyfikowanie schematu istniejącej
bazy danych za pomocą języka definiowania danych (data
definition language)
możliwość tworzenia zapytań (query - kwerend) oraz
aktualizowania
danych
(dopisywanie,
usuwanie,
modyfikowanie) za pomocą języka zapytań (query language)
zwanego inaczej językiem operowania danymi (data
manipulation language)
możliwość przechowywania ogromnej ilości danych (> GB, TB)
przez długi czas, wraz z ochroną przed niepowołanym
dostępem
sterowanie jednoczesnym dostępem do danych przez wielu
użytkowników
Relacyjne systemy baz
danych
1970, Ted Codd
prezentowanie użytkownikowi danych
w
postaci
tabel
(relacji)
bez
znajomości wewnętrznej struktury
zapytania wyrażane w języku bardzo
wysokiego
poziomu
np.
SQL
(structured query language – język
zapytań strukturalnych)
Przykład
Relacja Student służąca do gromadzenia
informacji o studentach Wydziału Transportu:
tabela – relacja, kolumny – atrybuty relacji,
wiersze – krotki
Nr ewid
Nazwisko
Miejscowość
12345
Kowalski
Radom
67890
Nowak
Warszawa
...
...
...
Zapytanie o adres
Kowalskiego:
SELECT miejscowość
FROM Student
WHERE nazwisko = ’Kowalski’
1. Sprawdź wszystkie krotki relacji wskazanej w
klauzuli FROM
2. Wyszukaj krotki spełniające warunek wskazany w
klauzuli WHERE
3. Sformułuj odpowiedź zawierającą wybrane krotki z
uwzględnieniem atrybutów wskazanych w klauzuli
SELECT
Architektura DBMS
dane
opis danych – nazwy relacji,
nazwy atrybutów relacji, typy
atrybutów, indeksy (struktury
danych pomagające w szybkim
odnajdowaniu
właściwych
danych)
motor
bazy
danych
–
składowa realizująca dostęp do
danych, może wykorzystywać
system
plików
systemu
operacyjnego,
często
bezpośrednio
zarządzają
pamięcią
dyskową
(efektywność!)
procesor zapytań – przekształca zapytanie lub operację na
bazie danych, wyrażoną zazwyczaj w języku bardzo wysokiego
poziomu (np. SQL) w ciąg poleceń żądających dostarczenia
określonych danych, wykonuje optymalizację zapytania
Architektura DBMS
moduł zarządzania transakcjami – gwarantuje
spójność
systemu
(brak
kolizji
jednocześnie
przetwarzanych zapytań, bezpieczeństwo danych nawet
w przypadku awarii systemu), tworzy grupy operacji
(transakcje) – niepodzielne (przeprowadzone w całości
albo wcale), spójne (po zakończeniu gwarantują
niesprzeczność danych), izolowane (bez wzajemnego
oddziaływania z innymi transakcjami), trwałe (bez
możliwości utraty danych nawet z powodu awarii)
wejścia do DBMS – zapytania (bezpośrednie lub przez
programy), aktualizacje (bezpośrednie lub przez
programy), modyfikacje schematu (wykonywane przez
administratora)
Architektura klient-serwer
DANE
MOTOR B.D.
SERWER SQL
KLIENT SQL
INTERFEJS
KLIENT SQL
INTERFEJS
KLIENT SQL
INTERFEJS
redakcja
zapytania
prezentacja
wyniku
przesłanie
odpowiedzi
przesłanie
zapytania
realizacja
zapytania
Modelowanie baz danych
– diagramy związków encji
zbiory encji (entity sets) – klasy obiektów świata
rzeczywistego
atrybuty (attributes) – właściwości encji (cechy obiektów)
związki (relationships) – połączenia między zbiorami encji
Liczebność związków
wiele do wiele ( – ) – z każdą encją zbioru encji C jest
związanych wiele encji zbioru encji D oraz z każdą encją
zbioru encji D jest związanych wiele encji zbioru encji C
wiele do jeden ( – 1) – z każdą encją zbioru encji C jest
związana dokładnie jedna encja zbioru encji D ale z każdą
encją zbioru encji D jest związanych wiele encji zbioru
encji C (strzałkę stawia się po stronie „jeden”)
jeden do jeden (1 – 1) – z każdą encją zbioru encji C jest
związana dokładnie jedna encja zbioru encji D oraz z każdą
encją zbioru encji D jest związana dokładnie jedna encja
zbioru encji C
Atrybuty związków
Uwaga ! czasami atrybut jest
wygodniej powiązać ze związkiem niż
ze zbiorem encji
Klucze
To
atrybuty
lub
zbiory
atrybutów
jednoznacznie
identyfikujące
encję
wewnątrz zbioru encji
Jeżeli jest możliwych do ustalenia więcej
kluczy, wybiera się jeden z nich jako klucz
główny (primary key)
Zasady projektowania
dokładność
–
zbiory
encji
powinny
odzwierciedlać świat rzeczywisty
unikanie redundancji (nadmiarowości) –
np. Przedmioty mogłyby posiadać atrybuty
tytuł i nazwisko wykładowcy
prostota – nie należy wprowadzać do
projektu elementów niepotrzebnych
dobór właściwych elementów (atrybut –
zbiór encji – związek)
Przykład. Baza ocen
studentów Wydziału
Transportu – diagram
związków encji
Relacyjny model danych
relacja – dwuwymiarowa tabela, w której wpisuje się
dane
atrybut – nazwa kolumny relacji
schemat relacji – nazwa relacji oraz zbiór jej
atrybutów np.:
Student(nr
ewid,
nazwisko,
miejscowość)
krotka – wiersz relacji zawierający dane np.:
(12345, Kowalski, Kalisz)
dziedzina atrybutu – typ elementarny, do którego
należą wartości odpowiedniej składowej każdej krotki
instancja relacji – zbiór krotek danej relacji
Transformacja diagramów
związków encji do projektu
relacyjnego
zbiór encji relacja (o tej samej nazwie i z tym samym zbiorem atrybutów)
Wykładowcy
nazwis
ko
tytuł
Abacki
prof.
Bebacki mgr
...
...
Transformacja diagramów
związków encji do projektu
relacyjnego
związek encji
– wiele do wiele relacja o
schemacie zawierającym klucze
relacji uczestniczących w związku
oraz własne atrybuty związku
nazwa
Przedmioty
uzyskał
ocenę
stopień
Studenci
nr albumu
. . .
Ocena
nr
album
u
studen
ta
nazwa
przedmi
otu
stopi
eń
12345
j.prog.
5,0
12345 syst.oper.
4,0
67890
j.prog.
4,5
...
...
...
Transformacja diagramów
związków encji do projektu
relacyjnego
związek encji
– wiele do jeden i jeden do jeden włączenie
klucza relacji „jeden” do relacji „wiele”
Przedmiot
nazwa
nr
ewid
wykł
ad
j.prog.
1
syst.op
er.
2
podst.i
nf.
1
...
...
Przykład. Baza ocen
studentów Wydziału
Transportu – schemat
relacyjny
Wykładowca(
id: integer,
nazwisko: string,
tytuł: string)
Przedmiot(
id: integer,
nazwa: string,
id_wykładowcy:
integer)
Student(
id: integer,
nazwisko: string,
miejscowość: string)
Ocena(
id_studenta: integer,
id_przedmiotu:
string,
stopień: real)
Przedmiot.id_wykładowcy Wykładowca.id
Ocena.id_studenta Student.id
Ocena.id_przedmiotu Przedmiot.id
Przykład. Baza ocen
studentów Wydziału
Transportu – schemat
relacyjny
Algebra relacji
działania
teoriomnogościowe
(oba
schematy relacji R i S muszą mieć
identyczne zbiory atrybutów)
–
suma relacji R S (zbiór elementów, z których
każdy należy do R lub do S lub do obu naraz)
–
przecięcie relacji R S (zbiór elementów
występujących zarówno w R i S)
–
różnica relacji R – S (zbiór elementów z R, które
nie należą do S)
Algebra relacji
rzutowanie
A,A2,..,An
(R)
–relacja
powstająca
przez
pozostawienie atrybutów A
1
, A
2
, ..., A
n
, np.:
nazwisko,
miejscowość
(Student)
selekcja
C
(R) – podzbiór krotek relacji R spełniających
warunek C, np.:
miejscowość=Opole
(Student)
iloczyn kartezjański R S (zbiór wszystkich możliwych par
uporządkowanych, w których pierwszy element należy do R,
a drugi do S, krotka wynikowa zawiera wszystkie składowe
krotek, które wchodzą do pary)
złączenie naturalne R S – połączenie w pary tych krotek,
które mają identyczne wartości dla określonych atrybutów
złączenie teta R
Ø
S – wybranie z R S tych krotek, które
spełniają warunek Ø.
PRZYKŁAD. Nazwiska
wykładowców, którzy
postawili ocenę
niedostateczną:
nazwisko
(
id wykładowcy
(
id
przedmiotu
(
stopień=2,0
(Ocena))
Przedmiot) Wykładowca)