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 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 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 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ć Bazy danych ogólnoświatowy zasięg standardy wymiany dokumntów format prezentacji - HTML modele danych dobre interfejsy użytkownika integralność i spójność nowy format XML do wymiany danych semistrukturalnych reprezentacja i język zapytań wspierające dostęp do dużych ilości strukturalnych informacji 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 “Remigiusz” “[email protected]” nazwa [email protected] telefon wzrost nazwa email 507482677 “Ausustyn” telefon “[email protected]” 234777878 imię nazwisko “Klaudiusz” “Nowak” 234888999 177 Podstawy składni W Lisp’ie wygląda to tak... { osoba: { nazwa: “Remigiusz”, telefon: 507482677, email: “[email protected]”, email: “[email protected]”}, osoba: {nazwa: {imię: “Klaudiusz”, nazwisko: “Nowak”}, telefon: 234777878, email: “[email protected]” } osoba: {nazwa: “Ausustyn”, telefon: 234888999, wzrost: 177} } pary nazwa - wartość powtarzanie nazw rózne typy dla tych samych nazw brakujące dane • samoopisywanie • serializacja 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 R1: k1 a d nazwa kolumny relacja k2 b e k3 c f R2: k3 x k4 y Reprezentacja baz relacyjnych R2 R1 k1 a k2 b row row k3 k1 c {R1: {row: {k1: a, k2: b, k3: c}, row: {k1: d, k2: e, k3: f} }, R2: {row: {k3: x, k4: y} } } d row k2 e k3 k3 f x k4 y Reprezentacja bazy obiektowej osoba osoba osoba dziecko matka &o2 &o1 &o3 dziecko imię “Maria” wiek 44 wiek imię imię pokrewieństwo “Janek” matka 13 siostra “Jola” kraj “Polska” Reprezentacja bazy obiektowej {osoba: &o1 osoba: &o2 osoba: &o3 } {imię: “Maria”, wiek: 44, dziecko: &o2, dziecko: &o3 }, {imię: “Janek”, wiek: 13, pokrewieństwo: {matka: &o1, siostra: &o3} }, {imię: “Jola”, kraj: “Polska”, matka: &o1 } Reprezentacja bazy obiektowej &o1 Oidy = identyfikatory obiektu a nazwa &o2 33 wartość Dane semistrukturalne - specyfikacja składni Ssd-wyrażenia: <ssd-wyrażenie> <wartość> <typ złożony> definicja oida: • • • oid <wartość> {l1: e1,..., lk: oid <wartość>,..., en: ln} ... użycie oida • ::= <wartość> | oid<wartość> | oid ::= typ prosty | <typ złożony> ::= {nazwa: <ssd-wyrażenie>,...,nazwa: <ssd-wurażenie>} 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 stan: &s2 {kod-stanu: nazwa-stanu: stolica: miasta-w-stanie: }, {kod-stanu: nazwa-stanu: stolica: miasta-w-stanie: } “ID”, “Idaho” &m1, {Miasto: &m1, Miasto &m3,...} “NE”, “Nevada”, &m2, {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} } } ACeDB - schemat i dane Schemat ?Ksiazka tytul UNIQUE Text autorzy Text rozdzialy Int UNIQUE Text jezyk UNIQUE angielski francuski inny data UNIQUE miesiac Int rok Int Dane &ksiazka1 tytul autorzy “Dane w sieci www” “Abiteboul” “Buneman” “Suciu” rozdzialy 1 “Wprowadzenie” 2 “Skladnia dla danych” jezyk angielski UWAGA: nazwy traktowane są równorzędnie z typami podstawowymi 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” ... “Suciu” “Buneman” 1 2 ... “Wprowadzenie” ... 3 4 ... ACeDB - reprezentacja pokrewieństwa ?Stan kod-stanu nazwa-stanu stolica miasta-w-stanie ?Miasto kod-miasta nazwa-miasta stan-dla-miasta &idkod-stanu “ID” nazwa-stanu stolica miasta-w-stanie ... &boi kod-miasta nazwa-miasta stan-dla-miasta UNIQUE UNIQUE UNIQUE ?masto XREF UNIQUE UNIQUE ?Stan XREF “Idaho” &boi &boi &moc “BOI” “Boise” &id Text Text ?Miasto stan-dla-miasta Text Text miasta-w-stanie 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? 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)