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”
“x@qwe.rty”
nazwa
rs@onet.pl
telefon
wzrost
nazwa
email
507482677
“Ausustyn”
telefon
“kn@wp.pl”
234777878
imię
nazwisko
“Klaudiusz” “Nowak”
234888999
177
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
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)