Kierunki rozwoju baz danych
Transkrypt
Kierunki rozwoju baz danych
Definicja bazy danych Kierunki rozwoju baz danych i technologii z nimi związanych Każdy uporządkowany zbiór informacji (danych) nazywamy bazą danych Aplikację pozwalającą na zarządzanie, manipulowanie danymi, która zapewnia trwałość danych oraz kontrolę dostępu do nich nazywamy systemem zarządzania bazą danych - SZBD Adam Pelikant Twórcy Modele danych Edgar Frank "Ted" Codd (23 sierpnia 1923 – 18 kwietnia 2003) w 1970 wydał fundamentalną pracę „A Relational Model of Data for Large Shared Data Banks”, w której przedstawił relacyjny model zarządzania bazami danych (słynne 12 tez) – Hierarchiczny – Sieciowy ID 1 2 3 Relacyjny ID 11 22 33 44 Pole1 Pole2 Pole1 - FK Pole2 1 2 1 ... ... PoleN PoleN ... ... + Obiektowy Chris Date (1941) Autor podstawowej pracy „An Introduction to Database Systems” ... ... 1 Rozwiązania komercyjne Inne rozwiązania 30 lat Darmowe Larry Ellison Ponad 15 lat Obiektowe DB2 9.5 LOTUS Notes Jasmine od 1992 Adaptive Server Enterprise 15 Przetwarzanie transakcyjne • OLTP - OnLine Transaction Processing przetwarzanie transakcyjne w trybie on-line • Celem jest wspomaganie bieżącej obsługi działalności danej firmy, dla dobrze zdefiniowanych procesów (np.: obsługa sprzedaży) • Oparty na transakcjach, które operują na niewielkiej części danych przechowywanych w bazie danych • Dostarcza rozwiązań dla problemów: efektywnego i bezpiecznego przechowywania danych, optymalizacji dostępu do danych, dostępności danych. • Podstawowym kryterium oceny efektywności działania systemu OLTP jest liczba transakcji na sekundę Idea partycjonowania tabel Tabela 1 Tabela 2 Tabela 3 Rodzaje partycji •zakresowe, •listy wartości, •haszowe, •mieszane. 2 Partycjonowanie tabel Wybór partycji do której trafi rekord jest realizowany na podstawie wartości jednego lub kilku wybranych atrybutów tabeli – tzw. atrybutów partycjonujących Algorytmy partycjonowania Round-Robin umożliwia równomierne rozpraszanie danych w węzłach sieci dane sąrozpraszane w sposób przypadkowy, więc odnalezienie żądanych informacji wymaga przeszukania wszystkich węzłów Bazujący na wartości rozmieszczenie danych w sieci zależy od wartości samych danych Oracle – partycjonowanie zakresowe Nieograniczony rozmiar ostatniej partycji Słowo kluczowe maxvalue w ostatniej klauzuli partition wskazuje, że maksymalny zakres tej partycji jest nieograniczony. Tak zdefiniowana partycja będzie przechowywała również rekordy z pustymi wartościami atrybutów partycjonujących, tj. kod_miastaw naszym przykładzie CREATE TABLE klienci2 (klient_id number(10), imie varchar2(25), nazwisko varchar2(25), kod_miasta varchar2(6)) PARTITION BY RANGE (kod_miasta) ( PARTITION p_klienci_C VALUES LESS THAN ('D') TABLESPACE dane1, PARTITION p_klienci_F VALUES LESS THAN ('G') TABLESPACE dane2, PARTITION p_klienci_M VALUES LESS THAN ('N') TABLESPACE dane3, PARTITION p_klienci_MAX VALUES LESS THAN (MAXVALUE) TABLESPACE dane4 ); Oracle – partycjonowanie listowe Jeżeli wartość atrybutu partycjonującego dla wstawianego rekordu nie pasuje do wartości żadnej partycji, wówczas system zgłasza błąd Definicję tabeli partycjonowanej można rozszerzyć o partycję umożliwiającą przechowywanie wszystkich innych wartości do definiowania takiej partycji wykorzystuje się słowo kluczowe default CREATE TABLE bilety2 (nr_biletu varchar2(15), cena number(6,2), klient_id number(10), klasa varchar2(12)) PARTITION BY LIST (klasa) ( PARTITION p_ekonomiczna VALUES ('ekonomiczna') TABLESPACE dane1, PARTITION p_wyzsze VALUES ('business', 'pierwsza') TABLESPACE dane2, PARTITION p_inne VALUES (DEFAULT) TABLESPACE dane3) ); 3 Oracle – partycjonowanie haszowe Schemat klastra dla dwóch węzłów Tabela klienci_part_hash3 zostanie podzielona na trzy partycje umieszczone kolejno w przestrzeniach tabel dane1, dane2 i dane3 CREATE TABLE klienci_part_hash3 (klient_id number(10), Imie varchar2(25), nazwisko varchar2(25), kod_miasta varchar2(6)) PARTITION BY HASH (kod_miasta) ( PARTITION p_klienci_1 TABLESPACE dane1, PARTITION p_klienci_2 TABLESPACE dane2, PARTITION p_klienci_3 TABLESPACE dane3 ); Schemat organizacji przetwarzania siatkowego – gridowego Połączenie zewnętrzne Połączenie wewnętrzne Węzeł 1 Dane 1 Dane współzielone Węzeł 2 Dane 2 Multimedialne bazy danych geneza problemu . Świat Audio Obiekty Zjawiska Video 3D Dane złożone Dane proste 4 Etapy analizy multimediów MPEG Moving Picture Experts Group • • • • MPEG 1 – kompresja MPEG 2 – kompresja MPEG 4 – kompresja + obiekty MPEG 7 – opis zasobów – Description Tools – metadane, ich struktura i relacje Użytkownik Interfejs Zapytanie Szacowanie podobieństwa Dane opisowe Noncontent Niskopoziome metadata operacje na obrazie Interpretacja Obiekty i relacja Ekstrakcja cech Obraz Przykładowa tabela Rozszerzanie Oracle interMedia • • • • • • dodatkowe formaty zapisu nowe metody kompresji materiału specjalizowane indeksy specyficzne metody optymalizacji zapytań nowe źródła danych specjalistyczne algorytmy przetwarzania danych 5 Wyszukiwanie obrazów w multimedialne bazie danych bez angażowania czynnika ich automatycznego rozumienia Safe Różne uproszczone schematy wyszukiwania Przykład odpowiedzi systemu wyszukiwania obrazów 6 Podział obrazu na regiony będący kluczem do procesu auto-anotacji Dane przestrzenne (spatial data) Podstawowe elementy przestrzenne Point Line String N-Point Polygon • Istnieją bardziej złożone elementy, włączając w to kolekcje elementów podstawowych nazywane Geometries. Obraz poddawany auto-anotacji • Warstwą Layer nazywamy kolekcję obiektów Geometries posiadających podobne atrybuty na poziomie mapy (granice krajów, stanów, sieć dróg, rzeki etc. ) Obraz podzielony na regiony do auto-anotacji Oracle Spatial Oracle Spatial przykłady Przykłady Geometries oraz Layers Cel analizy: wybór dróg w obszarze STAN ≡ LAYER Alabama Alaska Geometria GEOMETRY obszaru (stan) stanowi pojedynczą kolumnę jednego wiersza tabeli Geometria GEOMETRY może zawierać więcej niż jeden element. Arizona Arkansas 7 Oracle Spatial przykłady Oracle Spatial przykłady operacji wybranie dróg Intersection Minus Ilustracja ogólnej idei mapowania schematów. Oracle Spatial Przykłady połączenie wyboru z warstwą mapy Tabela_1 ³Id A B xxx x x yyy y y ³Id xxx yyy yyy FK1 xxx yyy yyy C y y X x y y Tabela_2 Y Z x x y y y y Tabela_3 L ³Id FK2 K yyy yyy y y yyy yyy y y Tabela_1 Tabela_1 ³Id A B xxx x x zzz z z ³Id FK1 X xxx xxx x ³Id A B xxx x x yyy y y Tabela_2 Y Z x x ³Id xxx yyy yyy FK1 xxx yyy yyy C y y X x y y Tabela_2 Y Z x x y y y y Tabela_3 L ³Id FK2 K yyy yyy y y yyy yyy y y Tabela_1 ³Id A B xxx x x zzz z z yyy y y C D z y z y D z z ³Id FK1 X xxx xxx x yyy yyy y Tabela_2 Y Z x x y y yyy y yyy y Tabela_3 ³Id FK2 K yyy yyy y yyy yyy y y L y y 8 Oczyszczony plik XML Odczytanie znacznika Koniec danych Wyjściowy plik XML (Brudny) Oczyszczanie T N Algorytm T Czy następnikiem jest znacznik Czy znacznik jest w tabeli nazw tabel N N Zapis znacznika (Nazwy Tabel) N Zapis znacznika (Nazwy Pól) Schemat dopasowania struktur relacyjnych – warianty optymistyczne T Odczytanie znacznika T Ustawienie wskażnika do tabeli T Koniec danych N Czy nazwa tabeli N Czy znacznik jest w tabeli pól Utworzenie struktury tabelarycznej Odczytanie znacznika Koniec danych N N Wyczyść zmienną rekordową Wstaw rekord Ustawienie wskażnika do tabeli T N Czy wszystkie pola tabeli Czy nazwa pola T Odczytanie wartości N Zapis zmiennej rekordowej T Odczytanie pól tabel wynikowych Parsowanie wartości Ustalenie typów pól Schemat dopasowania struktur relacyjnych – warianty pesymistyczne Przetwarzanie analityczne • OLAP - OnLine Analytical Processing - przetwarzanie analityczne w trybie on-line • Celem jest przeprowadzanie analizy danych i wspomaganie decyzji. • Posiadanie danych opisujących działanie przedsiębiorstwa w dłuższym przedziale czasu pozwala na analizę trendów, anomalii, poszukiwanie wzorców zachowań klientów, itp. • Zrozumienie zachowania się klientów i zapotrzebowania na produkt, pozwala efektywnie kierować kampaniami reklamowymi • Zarządzanie zapasami umożliwia producentom posiadanie właściwych produktów we właściwym miejscu i czasie • Analiza rentowności pokazuje firmom, którzy klienci są dochodowi, a którzy nie • Kryterium oceny jest jakość podejmowanych decyzji 9 OLAP – Analizy wspierające proces podejmowania decyzji biznesowych Schemat przetwarzania w technologii OLAP (ONLINE ANALYTICAL PROCESSING) Oddział Oczyszczanie Synchronizacja Baza A Ekstrakcja Poznań Kraków Gdańsk Kredyt 69,059,440 PLN 8,755 szt. 7,888 PLN Przesyłanie Rach. Inwest. … … Hurtownia Danych Integracja Q1 Q2 Q3 Q4 Czas Baza X Idea przechowywania danych w strukturze wielowymiarowej, definiowania przekrojów i drążenia danych. Business Intelligence – architektura Informacja Wiedza Wnioski Działanie Wyniki Systemy źródłowe Wymiar Z Wymiar Z DM Zn Zn ETL Z2 Y1 Y2 Z1 X1 Depozyt Inne Baza B Wymiar Y Produkt ROR X2 X3 Xn Yn Z2 Y1 Wymiar X Y2 Z1 X1 Wymiar Y X2 X3 Xn Yn Wymiar X Hurtownia danych Kostka OLAP DM Kostka OLAP Użytkownicy: - Raporty - Zapytania do bazy - Analizy OLAP - EIS - Budżetowanie - Data Mining 10 SZTUCZNA INTELIGENCJA (ARTIFICIAL INTELLIGENCE) LUDZKA INTELIGENCJA • Praktyczna: – umiejętność rozwiązywania konkretnych zagadnień Allen Newell, Herbert Simon (Uniwersytet Carnegie Mellon) John McCarthy (Massachusetts Institute of Technology) • Abstrakcyjna: „Konstruowanie maszyn, o których działaniu dałoby się powiedzieć, że są podobne do ludzkich przejawów inteligencji” – zdolność operowania symbolami i pojęciami • Społeczna: • Dział informatyki, którego przedmiot to: – umiejętność zachowania się w grupie Test Bineta ok. 1904 Iloraz inteligencji (IQ) – badanie reguł rządzących inteligentnymi zachowaniami człowieka – tworzenie modeli formalnych zachowań człowieka – tworzenie programów komputerowych symulujących zachowania człowieka Test Turinga (1950 Alan Turing) Nagroda Loebnera - od 1990 dla programu, który skutecznie przejdzie Test Turinga. Konkurs Loebnera – najlepszy program do konwersacji ELIZA – program symulujący psychoanalityka, Josepha Weizenbauma 1966 r. ALICE - nazwa najskuteczniejszego obecnie programu starającego naśladować ludzką konwersację (projekt Open Source - pomysłodawca Richard Wallace) Drzewo decyzyjne Drzewo decyzyjne Odległość < 30 km tak nie Odległość: 8 Pogoda: deszczowo Pogoda słonecznie Odległość < 30 km deszczowo tak nie Pogoda słonecznie deszczowo Działanie klasyfikatora wieloetapowego ilustruje drzewo decyzyjne. Pojęcia: korzeń drzewa, węzeł wewnętrzny, węzeł końcowy (liść), gałąź, ścieżka. 11 Konstrukcja drzewa decyzyjnego y y B A A B A B B A B B B B B a1 B A A B A B B A B B B B B a1 x a2 Prymitywne metody dyskretyzacji A. według równej szerokości yi x a3 y < a1 B. według równej częstości y< a3 tak nie B tak x < a2 tak tak B B yi B x < a1 nie A nie nie Są to metody globalne, bez nauczyciela. A Dyskretyzacja zstępująca – wybór progu Ha,pB pB Ha,p4 p4 Ha,p6 p6 Ha,p8 p8 Ha,pA0 p10 Ha,p12 p12 Ha,p14 p14 Dyskretyzacja zstępująca – kryterium stopu a a pA Ha,pA p3 Ha,p3 p5 Ha,p5 p7 Ha,p7 p9 Ha,p9 p11 Ha,p11 p13 Ha,p13 a Wybieramy pi, dla którego wartość Ha,pi jest najmniejsza. Ha,p10 p10 a a Dla dwóch powstałych przedziałów powtarzamy procedurę szukania progu. a a1 a2 a3 a4 a5 a6 a7 12 Dyskretyzacja wstępująca – łączenie przedziałów χ2z2,z3 zA zB Grupowanie (klasteryzacja) χ2z4,z5 z3 z4 z5 a χ2z2,z2 χ2z3,z4 Łączymy przedziały zi oraz zj, dla których wartość χ2zi,zj jest najmniejsza. a Rys. 3. Klastrowanie algorytmem górskim k-means clustering • Przykład klasteryzacji algorytmem k-means K=2 m2 m2 m2 m2 m1 K=3 m1 m2m2 m3 m1 m1 m1 • Przykład: m m22 m1 m1 m2 m1 m1 m1 K=3 m2 m3 m3 m4 m3 m3 m3 m4 13 Co jest dobrą granicą decyzji? • Rozważmy problem klasyfikacji dla dwóch separowanych liniowo klas • Możemy znaleźć wiele możliwych podziałów! – Różne algorytmy dają różne podziały Czy wszystkie granice decyzji są równie dobre? Przykłady złych granic decyzji klasa 2 klasa 1 Maksymalizacja marginesu dla granic decyzji • Granice decyzji powinny być możliwie najdalej od dowolnych elementów każdej z klas – Powinniśmy maksymalizować margines m – Odległość między początkiem układu a powierzchnią wtx=k wynosi k/||w|| klasa 2 klasa 1 klasa 2 klasa 1 Kodujemy klasy dwoma wartościami 1 oraz -1 Problemy separowalne nieliniowo • Dopuszczalny jest błąd ξi klasyfikacji liniowej opartej o hiperpowierzchnię wTx+b • ξi aproksymuje liczbę źle sklasyfikowanych przykładów (atrybutów) Class 2 klasa 2 klasa 1 m Class 1 14 Przekształcenie danych do przestrzeni o większej liczbie wymiarów – funkcje jądra (kernel) φ(.) Przestrzeń wyjściowa φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) φ( ) Przestrzeń przekształcona Ma z reguły większą ilości wymiarów • Obliczenia w przestrzeni przekształconej są bardziej kosztowne ponieważ ma więcej wymiarów • Stosowanie funkcji jądra (kernel) jest wielokrotnie jedynym rozwiązaniem Przykład dyskryminującej funkcji nieliniowej w przestrzeni R1 Funkcja dyskryminująca klasa 1 1 klasa 1 klasa 2 2 4 5 6 15