270 likes | 407 Views
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
E N D
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ć • 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” nazwa “x@qwe.rty” 234888999 email “Ausustyn” 177 507482677 telefon “kn@wp.pl” 234777878 imię nazwisko “Klaudiusz” “Nowak”
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” } 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 nazwa kolumny relacja R1: k1 k2 k3 a b c d e f R2: k3 k4 x y
Reprezentacja baz relacyjnych {R1: {row: {k1: a, k2: b, k3: c}, row: {k1: d, k2: e, k3: f} }, R2: {row: {k3: x, k4: y} } } R2 R1 row row row k1 k2 k3 k1 k2 k3 k3 k4 a b c d e f x y
Reprezentacja bazy obiektowej osoba osoba osoba dziecko matka &o2 &o3 &o1 dziecko imię wiek kraj wiek imię imię pokrewieństwo “Janek” 13 “Maria” 44 “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 &o1 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} } }
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 “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
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?
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)