Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Technologie Wytwarzania Oprogramowania Semestr letni 2004/05
Plan wykładu Ewolucja systemów baz danych Systemy OLAP Proces ekstrakcji, transformacji i ładowania (ETL) Internet jako baza danych (Dawid Weiss) Projektowanie hurtowni danych Rozszerzenia systemów OLAP Eksploracja hurtowni danych Rozmyte zapytania do baz danych
Plan wykładu 1 Modele danych 2 Hierarchiczny model danych 3 Sieciowy model danych 4 Relacyjny model danych 5 Wielowymiarowy model danych 6 Postrelacyjny model danych 7 Obiektowy model danych 8 Rozmyty model danych
Plan wykładu 1 Modele danych 2 Hierarchiczny model danych 3 Sieciowy model danych 4 Relacyjny model danych 5 Wielowymiarowy model danych 6 Postrelacyjny model danych 7 Obiektowy model danych 8 Rozmyty model danych
Model danych definiuje sposób w jakim dane sa koncepcyjnie ustrukturalizowane. Przykładowe modele danych: hierarchiczny, sieciowy, relacyjny, wielowymiarowy obiektowy, postrelacyjny, rozmyty oraz hipermedialny.
Model danych obejmuje: typy danych, zwiazki pomiędzy danymi i ograniczenia na nie nałożone, zbiór operacji służacy do definiowania, wyszukiwania i uaktualniania bazy danych. Model logiczny danych = z punktu widzenia użytkownika Model fizyczny danych = z punktu widzenia komputera
Plan wykładu 1 Modele danych 2 Hierarchiczny model danych 3 Sieciowy model danych 4 Relacyjny model danych 5 Wielowymiarowy model danych 6 Postrelacyjny model danych 7 Obiektowy model danych 8 Rozmyty model danych
Hierarchiczny model danych: najstarszy model danych, którego poczatki sięgaja lat 60-tych, najstarszy hierarchiczny system bazy danych, Information Management System (IMS) stworzony i rozwijany przez IBM a, powstał w celu organizacji i przechowywania informacji w projekcie Apollo, bardzo efektywne przetwarzanie danych, niestety nie jest tak elastyczny jak model relacyjny, przykłady: Systemy rezerwacji lotniczej, Serwery LDAP,...
Hierarchiczny model danych: dane zorganizowane sa poziomami, model reprezentuje strukturę lasu (zbioru drzew), struktura drzewa (lasu) jest analogiczna do struktur organizacyjnych np. przedsiębiorstw, połaczenia rodzic-potomek relacja 1 do N, dostęp do danych poprzez zdefiniowana ścieżkę.
Schemat bazy danych Uniwersytetu
Bazy danych Uniwersytetu
Cechy hierarchicznego modelu danych: duża wydajność i prędkość działania oraz łatwa optymalizacja zapytań (wszystkie ścieżki dostępu sa znane, dlatego predykcja wydajności jest bardzo prosta) prostota przechowywania danych (zachowanie hierarchi poprzez wskaźniki) łatwe dokonywanie aktualizacji Zapytanie z góry na dół Podaj liczbę kierunków zaocznych na wydziale Informatyki i Zarzadzania.
Problem z przetwarzaniem złożonych i niestandardowych zapytań Zapytanie z dołu w górę Na którym wydziale jest student Gates? Zapytanie wymagajace złożonej nawigacji Znajdź wszystkie wydziały, na których jest kierunek Informatyka. Pozostałe problemy: redundancja w danych, możliwe niespójności.
Plan wykładu 1 Modele danych 2 Hierarchiczny model danych 3 Sieciowy model danych 4 Relacyjny model danych 5 Wielowymiarowy model danych 6 Postrelacyjny model danych 7 Obiektowy model danych 8 Rozmyty model danych
Sieciowy model danych: podobny do hierarchicznego, jednak z mniejsza liczba ograniczeń: potomek może mieć więcej rodziców (model M do N), formalnie zdefiniowany w 1971 podczas konferencji Data Systems Languages, oparty o teorię zbiorów, zbiór w modelu jest określony za pomoca rekordu właściciela (nazwa zbioru) oraz rekordów będacych elementami zbioru, przykłady: CA-IDMS, COBOL,...
Cechy sieciowego modelu danych: możliwość przegladania danych w różnych kierunkach, wiele możliwych ścieżek dostępu, bardzo duża wydajność, duża złożoność systemu i trudność utrzymania.
Plan wykładu 1 Modele danych 2 Hierarchiczny model danych 3 Sieciowy model danych 4 Relacyjny model danych 5 Wielowymiarowy model danych 6 Postrelacyjny model danych 7 Obiektowy model danych 8 Rozmyty model danych
Relacyjna baza danych jest postrzegana przez użytkowników jako zbiór relacji badź tabel. Model relacyjny dotyczy wyłacznie zagadnień logicznych, a nie fizycznych. Systemy relacyjne nie sa tak efektywne jak systemy hierarchiczne i sieciowe, pozwalaja jednak na zaawansowana optymalizację. Optymalizator określa, jak zrealizować zapytania użytkownika (które dotycza tego co, a nie jak wykonać). System odpowiada sam za poruszanie się po zapamiętanej bazie danych w celu lokalizacji określonych danych jest to tzw. automatyczna nawigacja. Optymalizacja i automatyczna nawigacja sa wstępnymi warunkami uzyskania niezależności danych.
Cechy relacyjnego modelu danych: podstawowa struktura danych w modelu relacyjnym jest relacja, relacja jest podzbiorem iloczynu kartezjańskiego dziedzin atrybutów, relacja reprezentowana jest w postaci dwuwymiarowej tablicy, relacja składa się z krotek i atrybutów, wszystkie krotki relacji sa różne (nie ma duplikatów), atrybuty w relacji sa różne, dziedzina atrybutu określa dostępne wartości, kolejność krotek i atrybutów nie ma znaczenia, wartości atrybutów sa atomowe.
Cechy relacyjnego modelu danych: nie ma predefiniowanych ścieżek dostępu, możliwość różnorodnego spojrzenia na dane, brak redundancji w danych, zachowanie integralności danych.
Każda reguła integralności musi być uzależniona od konkretnej bazy danych. Przykłady reguł integralności: Pensja musi być większa od 0 Nazwisko musi być znane Etaty musza pochodzić z listy dostępnych wartości itd.
Model relacyjny obejmuje trzy ogólne cechy integralności: klucze kandydujace (i główne), klucze obce, dziedziny integralność atrybutu, mówi, że każdy atrybut musi spełniać następujacy warunek: wartości atrybutu sa pobierane z odpowiedniej dziedziny Ważne! Określenie dziedziny jest najprostszym mechanizmem sprawdzania integralności danych (np. przy porównywaniu wartości różnych atrybutów), jednak jest to element najsłabiej wspierany przez istniejace relecyjne systemy baz danych.
Klucze kandydujace zapewniaja podstawowy mechanizm adresowania na poziomie krotki w systemie relacyjnym. Oznacza to, że jedynym zagwarantowanym przez system sposobem dotarcia do określonej krotki jest droga przez wartość jakiegoś klucza kandydujacego. Wartość klucza obcego stanowi referencję do krotki zawierajacej wartość odpowiadajacego mu klucza kandydujacego (krotki docelowej). Problem zapewnienia, by baza danych nie zawieraja żadnych niedopuszczalnych wartości klucza obcego, nazywa się problemem integralności referencyjnej (referential integrity). Warunek, aby wartości danego klucza obcego zgadzały sie z wartościami odpowiadajacego mu klucza kandydujacego jest znany jako więzy referencyjne (referential constraint).
Operatory relacyjne: selekcja (restrykcja) projekcja (rzut) iloczyn kartezjański suma przecięcie różnica łaczenie Iloraz Powyższe operatory operuja na poziomie zbiorów.
Selekcja (czasami nazywana restrykcja) daje w wyniku relację składajac a się ze wszystkich krotek ze wskazanej relacji, które spełniaja określone warunki.
Projekcja (rzut) daje w wyniku relację złożona z tych wszystkich krotek, która pozostały jako krotki danej relacji po usunięciu z niej wskazanych atrybutów.
Iloczyn kartezjański daje relację składajac a się ze wszystkich krotek, będacych kombinacja dwóch krotek, po jednej z każdej wskazanej relacji.
Suma daje w wyniku relację składajac a się ze wszystkich krotek, występujacych w jednej lub obu wskazanych relacjach.
Przecięcie daje w rezultacie relację składajac a się ze wszystkich krotek, występujacych w obu wskazanych relacjach.
Różnica daje w wyniku relację składajac a się ze wszystkich krotek, występujacych w pierwszej relacji i nie występujacych w drugiej wskazanej relacji.
Łaczenie daje w wyniku relację składajac a się ze wszystkich możliwych krotek, które sa kombinacjami dwu krotek, po jednej z każdej ze wskazanych relacji, takich że dwie krotki dajace wkład do którejkolwiek kombinacji maja tę sama wartot Š wspólnego atrybutu (lub atrybutów) tych dwu relacji.
Iloraz bierze dwie relacje, jedna binarna, a druga unarna i daje w wyniku relację składajac a się ze wszystkich wartości jednego atrybutu relacji binarnej, które zgadzaja się (pod względem wartości tego drugiego atrybutu) ze wszystkimi wartościami relacji unarnej. Przykład: podaj klientów, którzy kupuja wyposażenie b2 i b3.
Ważne!!! Wynik dowolnej operacji jest obiektem tego samego rodzaju co wejście (wszystkie sa relacjami), zatem wynik dowolnej operacji może stanowić wejście innej - jest to własność domknięcia. Pozwala to na tworzenie zagnieżdżonych wyrażeń relacyjnych Domknięcie SELECT * FROM (SELECT * FROM (SELECT * FROM Relacja);
Podstawowe rodzaje relacji: Relacja pochodna jest to relacja, która jest utworzona z innych relacji za pomoca pewnego wyrażenia relacyjnego, Relacja bazowa, to taka relacja, która nie jest relacja pochodna, Perspektywa jest to nazwana relacja pochodna, której definicja wyrażona za pomoca innych relacji jest przechowywana w katalogu, operacje na perspektywach sa takie same jak na relacjach bazowych, system realizuje operacje na perspektywach przez zastapienie odwołań do nazwy perspektywy wyrażeniami definiujacymi tę perspektywę (jest to tzw. metoda postawiania).
Podstawowe operacje aktualizacji to: INSERT, UPDATE, DELETE. Operacje te działaja również na poziomie zbiorów.
Rachunek relacyjny jest alternatywny do algebry relacyjnej Rachunek jest opisowy, algebra zaś przepisowa, w tym sensie, że daje przepisy jak postępować. Na głębszym poziomie jest to to samo, ponieważ dowolne wyrażenia z rachunku można przekształcić w równoważne znaczeniowo wyrażenie w algebrze i na odwrót. Dzięki tej różnoważności możliwa jest zaawansowana optymalizacja w systemach relacyjnych.
Historia języka SQL: język SQL został opracowany w firmie IBM w latach 70 tych, w 1986 stał się oficjalnym standardem wspieranym przez ISO i ANSI (standard został opisany na 100 stronach), kolejny standard SQL89 (120 stron), SQL92 (około 600 stron) aka SQL2, SQL99 (około 2200 stron) aka SQL3, SQL4 (?!:).
Historia języka SQL: SQL92 trzy poziomy zgodności: Entry, Intermediate, Fully, istniejace implementacja sa czymś w rodzaju nadzbioru podzbioru specyfikacji SQL a, SQL99 odmienne podejście: zdefiniowanie Core SQL99 i pakietów.
Główne cechy podejścia relacyjnego wyznaczajace jego popularność: podstawy teoretyczne (algebra i rachunek relacyjny), domkniętość systemów relacyjnych, podejście abstakcyjne do przechowywania, wyszukiwania i aktualniania danych, rzeczywista niezależność aplikacji od danych, model zapeniajacy integralność danych, standard języka SQL (jednak często krytykowany).
Plan wykładu 1 Modele danych 2 Hierarchiczny model danych 3 Sieciowy model danych 4 Relacyjny model danych 5 Wielowymiarowy model danych 6 Postrelacyjny model danych 7 Obiektowy model danych 8 Rozmyty model danych
Przejście z modelu relacyjnego do wielowymiarowego: Komórki na przecięciu wierszy i kolumn reprezentuja wartości atrybutu ilość.
Wielowymiarowy model danych: sprzedaż produktów RTV/AGD
Takie same tabele dla Chicago, Nowego Jorku i Toronto:
Kostka wielowymiarowa: Możliwa jest większa liczba wymiarów.
Różne poziomy agregacji: Sprzedaż(czas, produkt, *) Sprzedaż(czas, *, *); Sprzedaż(*, *, *)
Operacje w wielowymiarowym modelu danych: Roll up - sumowanie danych wzdłuż hierarchii wymiaru (sprzedaż dla miast sprzedaż dla wojewódz) Drill down - w druga stronę Slice and dice - selekcja i projekcja wymiarów Pivot - zamiana wyświetlanych wymiarów Inne - np. tworzenie rankingów
Plan wykładu 1 Modele danych 2 Hierarchiczny model danych 3 Sieciowy model danych 4 Relacyjny model danych 5 Wielowymiarowy model danych 6 Postrelacyjny model danych 7 Obiektowy model danych 8 Rozmyty model danych
Postrelacyjny (obiektowo-relacyjny) model danych wiaże się z rozszerzeniem języka SQL SQL99 lub SQL3: przechowywanie typów złożonych: multimedialnych, przestrzennych, temporalnych, typy danych definiowane przez użytkownika, typy referencyjne, kolekcje (np. tablice), wsparcie dla dużych obiektów, hierarchie relacji.
Dodatkowe cechy SQL99: możliwość korzystania z SQL a jako samodzielnego języka aplikacji, wyzwalacze, składowane procedury i funkcje definiowane przez użytkownika, zapytania rekursywne, operacje OLAP owe.
Plan wykładu 1 Modele danych 2 Hierarchiczny model danych 3 Sieciowy model danych 4 Relacyjny model danych 5 Wielowymiarowy model danych 6 Postrelacyjny model danych 7 Obiektowy model danych 8 Rozmyty model danych
Obiektowy model danych: dowolne typy danych: numeryczne, tekstowe, graficzne, audio, video, obiekty jako podstawowa jednostka informacji - odpowiednik krotki, dane + operacje, interakcja poprzez komunikaty, cechy programowania obiektowego z systemami składowania, heterogeniczność obiektów, podobieństwa do sieciowego modelu danych.
Plan wykładu 1 Modele danych 2 Hierarchiczny model danych 3 Sieciowy model danych 4 Relacyjny model danych 5 Wielowymiarowy model danych 6 Postrelacyjny model danych 7 Obiektowy model danych 8 Rozmyty model danych
Wykorzystanie logiki boolowskiej w systemach baz danych ogranicza uwzględnienie wszelkiego rodzaju nieprecyzyjności. Zapytania w tych systemach sa ciagle dalekie od języka naturalnego i bardzo restrykcyjne. Czasami użytkownik odpytujac bazę danych nie chce definiować ostrych i precyzyjnych warunków wyszukiwania. Innymi słowy, czasami użytkownik chce, aby pewna nieprecyzyjność była dopuszczalna - podobnie jak w języku naturalnym.
Zapytanie: Wyszukaj doświadczonych pracowników z niewielkimi żadaniami płacowymi. Zapytanie w SQL SELECT Name, Experience, Salary FROM Workers WHERE Experience >= 3 and Salary <= 3000
Powstaje pytanie: co z pracownikami majacymi doświadczenie 2 i pół letnie oraz wymagania dotyczace pensji mniejsze od 2500, co z pracownikami z bardzo dużym doświadczeniem (10-letnim) i żadaniami płacowymi ok. 3500.
Odpowiedzia jest PODEJŚCIE ROZMYTE. Podejście to pozwala na nakładanie elastycznych warunków i ograniczeń oraz na wyrażanie zapytań w bardziej naturalny sposób. Zapytanie w SQLf SELECT Name, Experience, Salary FROM Workers WHERE Experience IS HIGH and Salary IS MEDIUM
Podsumuwujac, tradycyjne systemy baz danych projektowane sa pod katem: efektywnego przechowywania, szybkiego i wygodnego dostępu do danych oraz łatwej ich aktualizacji, przy czym dane te sa precyzyjne. W świecie rzeczywistym częściej operujemy informacja nieprecyzyjna i niepewna. Często operujemy wiedza subiektywna - wyrażona za pomoca precyzyjnych wartości może stracić pierwotne znaczenie. Pozyskujac wiedzę z danych precyzyjnych może nam zależeć na przetwarzaniu nieprecyzyjnych zapytań i otrzymaniu rozmytych odpowiedzi.
Podsumuwujac, tradycyjne systemy baz danych projektowane sa pod katem: efektywnego przechowywania, szybkiego i wygodnego dostępu do danych oraz łatwej ich aktualizacji, przy czym dane te sa precyzyjne. W świecie rzeczywistym częściej operujemy informacja nieprecyzyjna i niepewna. Często operujemy wiedza subiektywna - wyrażona za pomoca precyzyjnych wartości może stracić pierwotne znaczenie. Pozyskujac wiedzę z danych precyzyjnych może nam zależeć na przetwarzaniu nieprecyzyjnych zapytań i otrzymaniu rozmytych odpowiedzi.
Informacja nieprecyzyjna: niepewność (będzie padać o 5 popołudniu) nieprecyzyjność (Paweł ma między 25 a 28 lat) im mniejsza precyzja, tym większa pewność stwierdzenia. niewyraźna i stopniowana (Paweł jest młody) niespójna informacja (Paweł ma mniej niż 25 lat; Paweł ma 30 lat)
Przechowywanie, uaktualnianie i przetwarzanie rozmytych danych: częściowe zawieranie się krotek, podobieństwo i wieloznaczność określeń lingwistycznych, nieprecyzyjne wartości atrybutów krotek wyrażone za pomoca zbiorów rozmytych. Rozmyte zapytania do baz danych: rozszerzenie systemów relacyjnych, w celu wykonywania zapytań rozmytych do danych relacyjnych, rozszerzenie systemów relacyjnych, w celu uzyskanie rozmytych baz danych (przechowywana jest informacja rozmyta) i wykonywania rozmytych zapytań. Rozmyte zależności: rozmyte zależności funkcyjne, redundancja krotek.
Relacja rozmyta: W klasycznych bazach danych krotka albo występuje w danej relacji albo nie występuje. W relacjach rozmytych dana krotka może występować w jakimś stopniu występowanie częściowe, tzw. krotki ważone (ang. Weighted Tuples). Interpretacja: spełnialność podanego pojęcia lub pewność Przykład: samochód ciężarowy, samochód osobowy, samochów z kratka :)
Rozmyte zapytania: Nieprecyzyjne (rozmyte) warunki Znajdź wszystkich podatników, których zarobki były mniejsze od 30 000 PLN. Znajdź wszystkich podatników, których zarobki były małe.
Rozmyte zapytania: Nieprecyzyjne (rozmyte) operatory Znajdź wszystkie kraje, których trzy importowane dobra były takie same jak trzy eksportowane dobra przez Polskę. Znajdź wszystkie kraje, których trzy importowane dobra były prawie takie same jak trzy eksportowane dobra przez Polskę.
Rozmyte zapytania: Nieprecyzyjne (rozmyte) kwantyfikatory Znajdź firmy których wszyscy klienci sa urzędnikami państwowymi. Znajdź firmy których prawie wszyscy klienci sa urzędnikami państwowymi.
Badania i projekty: Propozycja języka SQLf oraz innych, Toczace się prace naukowe, Oprogramowanie FQUERY dla MS Access, Oprogramowanie komercyjne Fuzzy Query TM firmy Sonalysts: (http://fuzzy.sonalysts.com/).
Plan wykładu Ewolucja systemów baz danych Systemy OLAP Proces ekstrakcji, transformacji i ładowania (ETL) Internet jako baza danych (Dawid Weiss) Projektowanie hurtowni danych Rozszerzenia systemów OLAP Eksploracja hurtowni danych Rozmyte zapytania do baz danych