Wykład 0

Transkrypt

Wykład 0
Bazy danych
Wykład zerowy
P. F. Góra
http://th-www.if.uj.edu.pl/zfs/gora/
2012
Patron?
Św. Izydor z Sewilli (VI wiek), biskup, patron Internetu (sic!), stworzył pierwszy
katalog
c 2011-12 P. F. Góra
Copyright 0–2
Baza danych
Baza danych:
Duża kolekcja danych, odpowiednio zorganizowana
w celu szybkiego przeszukiwania i dostepu
˛
do
informacji, uzyskiwanego przy pomocy komputera.
Baza danych ma być modelem pewnego fragmentu rzeczywistości,
adekwatnym do zapotrzebowań.
c 2011-12 P. F. Góra
Copyright 0–3
Bardzo ważna uwaga!
Baza danych jest modelem rzeczywistości —
ma odpowiadać potrzebom użytkownika, nie
wyobrażeniom projektanta
Złamanie tej zasady to typowy (i bolesny) bład
˛ popełniany przy projektowaniu
baz danych.
Prjektowanie baz danych jest praca,
˛ za która˛ należy sie˛ wynagrodzenie.
c 2011-12 P. F. Góra
Copyright 0–4
Architektura klient-serwer
• sytemy wielodostepne,
˛
heterogeniczne
• najbardziej kosztowna operacja: przesyłanie danych
• wiele operacji wykonywanych “po stronie serwera”
• struktura bazy (schemat) i wiezy
˛ umieszczone bezpośrednio w bazie, nie w
aplikacji
c 2011-12 P. F. Góra
Copyright 0–5
Bazy danych i informatycy
użytkownicy∗
projektanci/programiści aplikacji bazodanowych†
projektanci/programiści baz danych, administratorzy baz
danych
projektanci/programiści DBMS (systemów bazodanowych)
∗ Widza˛ tylko
† Błednie
˛
front–end
nazywanych “bazami danych”
c 2011-12 P. F. Góra
Copyright 0–6
Plan wykładu
1. Relacyjny model baz danych
algebra relacji; zależności funkcyjne; wiezy;
˛
normalizacja baz danych; projektowanie baz danych
2. Operacje na bazach danych i podstawy jezyka
˛
SQL
3. Transakcje; klucze obce; procedury składowane; kursory
4. Wybrane zagadnienia implementacyjne
5. Indeksy
6. Optymalizacja zapytań
c 2011-12 P. F. Góra
Copyright 0–7
Relacyjny model baz danych
• Tylko jedna struktura danych: tabela (ang. relation, relacja). Kolumny —
atrybuty, wiersze — krotki.
• Tabela jest zbiorem krotek.
• Zbiór: kolejność krotek nie ma znaczenia.
• Krotki sa˛ uporzadkowane.
˛
• Model relacyjny: najbardziej popularny, ale ma problemy z reprezentowaniem złożonych metadanych.
• Model obiektowo-relacyjny: stosowany w niektórych zastosowaniach specjalnych, ale w systemach komercyjnych króluje model relacyjny.
c 2011-12 P. F. Góra
Copyright 0–8
c 2011-12 P. F. Góra
Copyright 0–9
Uwaga na wielozbiory!
Tabele (relacje) w modelu relacyjny powinny być zbiorami (krotki nie moga˛ sie˛
powtarzać), ale niekiedy nie sa˛ –— jeśli dopuszczamy powtórzenia krotek, czyli
zbiory zastepujemy
˛
wielozbiorami, zmieniaja˛ sie˛ definicje operacji mnogościowych.
Suma R ∪ S –— krotka w wyniku wystepuje
˛
tyle razy, ile wystepuje
˛
w R plus tyle
razy, ile wystepuje
˛
w S. Uwaga: jeśli nawet R i S sa˛ zbiorami, R ∪ S może być
wielozbiorem!
Iloczyn R ∩ S –— krotka w wyniku wystepuje
˛
tyle razy, ile wynosi minimum jej
wystapie
˛ ń w R i S.
Różnica R − S –— krotka w wyniku wystepuje
˛
tyle razy, ile wystepuje
˛
ona w R
minus tyle razy, ile wystepuje
˛
ona w S, ale nie mniej niż 0 razy.
c 2011-12 P. F. Góra
Copyright 0–10
Przykład
R = {A, B, B},
S = {A, B, C, C}
R ∪ S = {A, A, B, B, B, C, C}
R ∩ S = {A, B}
R − S = {C}
c 2011-12 P. F. Góra
Copyright 0–11
Dane a metadane
Tabela (realcja) to obiekt abstrakcyjny. Ma swoje atrybuty i wiezy.
˛
Zbiór wszystkich takich “projektów” tabel nazywa sie˛ schematem bazy danych. Schemat
wraz z informacjami o użytkownikach i ich uprawnieniach stanowi metadane
(dane o danych). Schemat tabeli w zasadzie –— w czasie normalnego użytkowania –— nie zmienia sie˛ w czasie.
Zbiór wszystkich krotek danej tabeli (“zawartość tabeli”) może sie˛ zmieniać w
czasie. Zbiór taki istniejacy
˛ w pewnej chwili czasu nazywa sie˛ instancja˛ tabeli
(relacji). Instancje˛ istniejac
˛ a˛ teraz nazywa sie˛ instancja˛ bieżac
˛ a.
˛
c 2011-12 P. F. Góra
Copyright 0–12
Dwanaście zasad Codda dla RDBMS
Edgar Codd, IBM, 1970
RDBMS — Relational DataBase Management System
1. Informacje sa˛ reprezentowane logicznie w tabelach.
2. Dane sa˛ logicznie dostepne
˛
przez podanie nazwy tabeli, wartości klucza
głownego i nazwy kolumny.
3. Wartości null sa˛ traktowane w jednolity sposób jako “brakujace
˛ informacji”.
Nie moga˛ być traktowane jako puste łańcuchy czy zera.
4. Metadane sa˛ umieszczone w bazie danych tak, jak zwykłe dane.
5. Jezyk
˛
obsługi danych ma możliwość definiowania danych i widoków, wiezów
˛
integralności, przeprowadzania autoryzacji, obsługi transakcji i manipulacji
danymi.
c 2011-12 P. F. Góra
Copyright 0–13
6. Widoki reaguja˛ na zmiany swoich tabel bazowych. Zmiana w widoku powoduje zmiane˛ w tabeli bazowej.
7. Istnieja˛ pojedyncze operacje pozwalajace
˛ na wyszukanie, wstawienie, uaktualnienie i usuniecie
˛
danych.
8. Operacje użytkownika sa˛ logicznie oddzielone od fizycznych danych i metod
dostepu.
˛
9. Operacje użytkownika pozwalaja˛ na zmiane˛ schematu bazy danych bez konieczności tworzenia bazy od nowa.
10. Wiezy
˛ integralności sa˛ umieszczone w metadanych, nie w zewnetrznej
˛
aplikacji.
11. Jezyk
˛
manipulacji danymi powinien działać bez wzgledu
˛
na to jak i gdzie
sa˛ rozmieszczone fizyczne dane oraz nie powinien wymagać zmian, gdy
fizyczne dane sa˛ centralizowane lub rozpraszane
c 2011-12 P. F. Góra
Copyright 0–14
12. Operacje na pojedynczych rekordach przeprowadzane w systemie podlegaja˛ tym samym zasadom i wiezom,
˛
co operacje na zbiorach danych.
c 2011-12 P. F. Góra
Copyright 0–15
Typy zwiazków
˛
pomiedzy
˛
danymi
Zwiazek:
˛
Zbiór par uporzadkowanych,
˛
pozdbiór iloczynu kartezjańskiego zbiorów.
• Jeden do jednego
• Wiele do jednego
• Wiez
˛ integralności referencyjnej (ang. referential integrity )
• Jeden do wielu
• Wiele do wielu
c 2011-12 P. F. Góra
Copyright 0–16
Zwiazek
˛
jeden do jednego
A = {x1, x2, x3, x4}, B = {y1, y2, y3, y4, y5}
A
x1
x2
x4
B
y3
y1
y2
Elementy w żadnej kolumnie nie powtarzaja˛ sie.
˛ Nie wszystkie elementy musza˛
wystapić.
˛
Ale gdyby element x3 wystapił,
˛ musiałby sie˛ łaczyć
˛
z y4 albo y5.
c 2011-12 P. F. Góra
Copyright 0–17
Zwiazki
˛ jeden do wielu, wiele do jednego
A
x1
x1
x2
x4
x4
B
y2
y3
y1
y4
y5
Zwiazek
˛
A → B: jeden do wielu. Zwiazek
˛
B → A: wiele do jednego.
Wiez
˛ integralności referencyjnej
A −•B: Zwiazek
˛
typu wiele do jednego, w którym wystepuj
˛ a˛ wszystkie elementy
zbioru A. Innymi słowy, każdy element A łaczy
˛
sie˛ z jednym i tylko jednym
elementem B.
c 2011-12 P. F. Góra
Copyright 0–18
Zwiazek
˛
wiele do wielu
A
x1
x1
x2
x2
x2
x3
x4
x4
c 2011-12 P. F. Góra
Copyright B
y2
y3
y1
y2
y5
y1
y2
y5
0–19