Dane semistrukturalne Remigiusz Siudziński na podstawie: S.Abiteboul, P.Buneman, D,Suciu “Dane w sieci www”
Agenda Kultura i architektura baz danych i Sieci Podstawy składni Typy podstawowe Reprezentacja baz relacyjnych i obiektowych Specyfikacja składni OEM, ODMG, ACeDB Terminologia dla grafów Bibliografia
Sieć jako źródło skomplikowanej informacji Czytelność a strukturyzacja Wstęp, czyli motywator Rozwój Sieci Sieć jako źródło skomplikowanej informacji Czytelność a strukturyzacja Problemy: pobieranie weryfikowanie zarządzanie zmianami efektywne wykonywanie zapytań Rozwiązania: hurtownie danych i systemy mediacyjne Punkty widzenia dokumentu i bazy danych
Mechanizmy kontroli spójności Kultura baz danych Relacje Zależności Języki zapytań Mechanizmy kontroli spójności Abstrakcyjny model na służbie użytkownika Fizyczna reprezentacja ku lepszej wydajności
Prosty uniwersalny standard wymiany informacji Kultura Sieci Prosty uniwersalny standard wymiany informacji plik identyfikowany i udostępniany przez URL Uniform Resource Locator możliwość powtórnego użycia link’u HTML (Hypertext Markup Language) formatowanie hiperłącza
Architektura baz danych a architektura aplikacji sieciowej Architektura klient - serwer zapytanie -> przesłanie -> obliczenie -> odpowiedź Podejście wielopowłokowe źródła danych, czyli serwery warstwa kliencka wiele warstw pośrednich middleware transformacje integracje wzbogacanie przykłady data warehouse mediator system, czyli tłumaczenie zapytań
Trzy poziomy abstrakcji w reprezentacji danych Poziom fizyczny jak dane są przechowywane urządzenia fizyczne sposoby indeksowania Poziom logiczny model poprawność kwerend dostęp do danych Poziom zewnętrzny widoki interfejsy Sieć - brak rozróżnienia w podejściu hipertekstowym
Cechy i zbliżenie obu podejść Sieć ogólnoświatowy zasięg standardy wymiany dokumntów format prezentacji - HTML dobre interfejsy użytkownika nowy format XML do wymiany danych semistrukturalnych Bazy danych reprezentacja i język zapytań wspierające dostęp do dużych ilości strukturalnych informacji modele danych integralność i spójność nowy model danych semistrukturalnych (rozluźnienie struktur)
Niejednorodność danych Ujednolicanie heterogenicznych struktur różnice na poziomie myślowym róznice na poziomie logicznym Przykłady kompromisów na poziomie logicznym XML NetCDF - wielowymiarowe tablice i relacyjne bazy ASN.1 - mediacja między warstwami sieci, dane bibliograficzne i genetyczne ACeBD - dane genetyczne prostego zwierzaka, bliskość modelu semistrukturalnego Systemy bazodanowe a zapis w pliku tekstowym
Podstawy składni - przedstawienie graficzne osoba osoba nazwa osoba telefon email email nazwa telefon wzrost rs@onet.pl “Remigiusz” “x@qwe.rty” nazwa email “Ausustyn” 234888999 177 507482677 telefon “kn@wp.pl” 234777878 imię nazwisko “Klaudiusz” “Nowak”
W Lisp’ie wygląda to tak... Podstawy składni W Lisp’ie wygląda to tak... { osoba: { nazwa: “Remigiusz”, telefon: 507482677, email: “x@qwe.rty”, email: “rs@onet.pl”}, osoba: {nazwa: {imię: “Klaudiusz”, nazwisko: “Nowak”}, telefon: 234777878, email: “kn@wp.pl” } {nazwa: “Ausustyn”, telefon: 234888999, wzrost: 177} pary nazwa - wartość powtarzanie nazw rózne typy dla tych samych nazw brakujące dane samoopisywanie serializacja
Rozpoznawanie na podstawie składni Typy podstawowe Liczby Ciągi znaków Nazwy Rozpoznawanie na podstawie składni Inne typy wyznaczone przez ustaloną notację data: “11 maja 1999” czas: “11:11:11” gif: “:MITE&.#.....”
Reprezentacja baz relacyjnych Schemat relacji R1 (k1,k2,k3), R2 (k3,k4) Typy kolumn Instancje relacji jako wiersze tabel nazwa kolumny relacja R1: k1 k2 k3 a b c d e f R2: k3 k4 x y
Reprezentacja baz relacyjnych row row row k1 k2 k3 k1 k2 k3 k3 k4 a b c d e f x y {R1: {row: {k1: a, k2: b, k3: c}, row: {k1: d, k2: e, k3: f} }, R2: {row: {k3: x, k4: y} }
Reprezentacja bazy obiektowej osoba osoba osoba dziecko matka &o1 &o2 &o3 dziecko imię wiek kraj wiek imię imię pokrewieństwo “Janek” “Maria” 44 13 “Jola” “Polska” matka siostra
Reprezentacja bazy obiektowej {osoba: &o1 {imię: “Maria”, wiek: 44, dziecko: &o2, dziecko: &o3 }, osoba: &o2 {imię: “Janek”, wiek: 13, pokrewieństwo: {matka: &o1, siostra: &o3} osoba: &o3 {imię: “Jola”, kraj: “Polska”, matka: &o1 }
Reprezentacja bazy obiektowej Oidy = identyfikatory obiektu a nazwa &o2 wartość 33
Dane semistrukturalne - specyfikacja składni Ssd-wyrażenia: <ssd-wyrażenie> ::= <wartość> | oid<wartość> | oid <wartość> ::= typ prosty | <typ złożony> <typ złożony> ::= {nazwa: <ssd-wyrażenie>,...,nazwa: <ssd-wurażenie>} definicja oida: oid <wartość> {l1: e1,..., lk: oid <wartość>,..., en: ln} ... użycie oida wystąpienie w innej formie, np. ojciec: {imię: “Jan”, syn: oid} poprawność każdy oid zdefiniowany dokładnie raz użycie poprzedzone definicją
OEM - model wymiany obiektów Wymiana danych między aplikacjami Cztery elementy nazwa oid typ (prosty lub złożony) wartość (... lub zbiór identyfikatorów obiektów) Interpretacja graficzna - graf nazwy przypisane wierzchołkom
ODMG - obiektowy model danych class Stan {extent stany} { attribute string kod-stanu; attribute string nazwa-stanu; attribute Miasto stolica; relationship set<Miasto> miasta-w-stanie inverse Miasto::stan-dla-miasta; } class Miasto {extent miasta} attribute string kod-miasta; attribute string nazwa-miasta; relationship Stan stan-dla-miasta inverse Stan::miasta-w-stanie;
ODMG - obiektowy model danych Schemat ODL - Object Definition language atrybuty pokrewieństwo Wbudowane typy rekordy, zbiory, listy, tablice Powiązanie deklaracji obiektów z bazą danych zasięg klas nazwy globalne Języki związane z bazą danych konstrukcja/destrukcja ODMG/C++, ODMG/Jva
ODMG - reprezentacja danych {stany: {stan: &s1 {kod-stanu: “ID”, nazwa-stanu: “Idaho” stolica: &m1, miasta-w-stanie: {Miasto: &m1, Miasto &m3,...} }, stan: &s2 {kod-stanu: “NE”, nazwa-stanu: “Nevada”, stolica: &m2, miasta-w-stanie: {Miasto: &m2,...} } miasta: {miasto: &m1 {kod-miasta: “BOI”, nazwa-miasta: “Boise”,stan-dla-miasta: &s1}, miasto: &m2 {kod-miasta: “CCN”, nazwa-miasta: “Carson”,stan-dla-miasta: &s2}, miasto: &m3 {kod-miasta: “MOC”, nazwa-miasta: “Moscow”,stan-dla-miasta: &s1}
Schemat Dane ACeDB - schemat i dane ?Ksiazka tytul UNIQUE Text autorzy Text rozdzialy Int UNIQUE Text jezyk UNIQUE angielski francuski inny data UNIQUE miesiac Int rok Int Dane &ksiazka1 tytul “Dane w sieci www” autorzy “Abiteboul” “Buneman” “Suciu” rozdzialy 1 “Wprowadzenie” 2 “Skladnia dla danych” jezyk angielski UWAGA: nazwy traktowane są równorzędnie z typami podstawowymi
... ... ... ... ... Schemat to drzewo z nieskończoną liczbą krawędzi ACeDB - drzewo Schemat to drzewo z nieskończoną liczbą krawędzi Dane to skończone poddrzewo drzewa schematu tytuł autor rozdział język data ... “Dane w sieci www” “Abiteboul” 1 “Suciu” 2 4 ... ... “Buneman” ... 3 ... “Wprowadzenie”
ACeDB - reprezentacja pokrewieństwa ?Stan kod-stanu UNIQUE Text nazwa-stanu UNIQUE Text stolica UNIQUE ?Miasto miasta-w-stanie ?masto XREF stan-dla-miasta ?Miasto kod-miasta UNIQUE Text nazwa-miasta UNIQUE Text stan-dla-miasta ?Stan XREF miasta-w-stanie &id kod-stanu “ID” nazwa-stanu “Idaho” stolica &boi miasta-w-stanie &boi &moc ... &boi kod-miasta “BOI” nazwa-miasta “Boise” stan-dla-miasta &id
Terminologia dla ssd (grafów) Graf (N,E), wierzchołki i krawędzie graf skierowany każdej krawędzi odpowiada jej początek i koniec ścieżka korzeń wierzchołek, od którego istnieje ścieżka do każdego innego cykl ścieżka zaczynająca się i kończąca w tym samym wierzchołku graf acykliczny drzewo jak zdefiniować? Liście DAG etykiety w jakim modelu są przypisane wierzchołkom?
modele semistrukturalne Bibliografia OEM J.Hammer,... “Information translation, mediation and Mosaic-based browsing in the Tsimmis system” (‘95) S.Chawathe,... ”The Timmis project: Integration of heterogenous information sources” (‘94) modele semistrukturalne S.Abiteboul “Querying semistructured data” (‘97) P.Buneman “Semistructured data” (‘97) NetCDF R.Rew,... “The unidata netCDF: Software for scientific data access” (‘90) ASN.1 ISO 8824 “Specification of abstraction syntax notation one (ASN.1) (‘87) ACeDB J.Thierry-Mieg,... “Syntactic definitions for the ACeDB data base manager” (‘92)