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