Dane semistrukturalne

advertisement
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)
Download