Полуструктурирани данни

58
ПОЛУСТРУКТУРИРАНИ ДАННИ доц. д-р Цветанка Георгиева-Трифонова

Upload: tsvetanka-georgieva

Post on 02-Aug-2015

174 views

Category:

Data & Analytics


2 download

TRANSCRIPT

Page 1: Полуструктурирани данни

ПОЛУСТРУКТУРИРАНИ ДАННИ

доц. д-р Цветанка Георгиева-Трифонова

Page 2: Полуструктурирани данни

СЪДЪРЖАНИЕ

Модел на полуструктурирани данни

Езикът XML

Езикът XPath

Езикът Xquery

Примери за прилагане на естествени XML

бази от данни

2 2 Цветанка Георгиева Моделиране на информационни системи

Page 3: Полуструктурирани данни

МОДЕЛ НА ПОЛУСТРУКТУРИРАНИТЕ ДАННИ

позволява непълно задаване на структурата

на данните;

информацията, свързана със схемата на

данните, се поддържа заедно със самите

данни, а не отделно от тях.

3 3 Цветанка Георгиева Моделиране на информационни системи

Page 4: Полуструктурирани данни

МОДЕЛ НА ПОЛУСТРУКТУРИРАНИТЕ ДАННИ (2)

Предимства

възможно е представяне на информацията от

определени източници на данни, които не са

ограничени от предварително зададена схема;

позволява гъвкав формат за обмен на данни

между различни бази от данни;

схемата на данните може лесно да бъде

променена.

4 4 Цветанка Георгиева Моделиране на информационни системи

Page 5: Полуструктурирани данни

ПРЕДСТАВЯНЕ НА ПОЛУСТРУКТУРИРАНИТЕ ДАННИ

База от данни, съдържаща полуструктурирани данни,

може да бъде описана чрез:

набор от върхове (nodes) на граф;

крайните върхове съответстват на елементи на данните от

произволен атомарен тип (като например числов или

символен);

от междинните върхове излиза една или няколко дъги;

всяка дъга има етикет (label), който описва как си

съответстват върховете, съединени от дъгата;

един от междинните върхове, наречен корен (root), няма

входящи дъги и представлява базата от данни като цяло;

всеки връх на графа трябва да бъде достижим от корена.

5 5 Цветанка Георгиева Моделиране на информационни системи

Page 6: Полуструктурирани данни

6 6 Цветанка Георгиева

Полуструктурирани данни за студенти и специалности

Моделиране на информационни системи

Page 7: Полуструктурирани данни

МОДЕЛ НА ПОЛУСТРУКТУРИРАНИТЕ ДАННИ (3)

В СУБД се използва за:

интеграция (integration) на данните, т.е.

представяне с помощта на обща схема на

подобна информация, която се съдържа в

няколко бази от данни, притежаващи различни

схеми;

представяне на документи със средствата на XML-

базирани системи, които се използват за

осигуряване на достъп до данните в Web среда.

7 7 Цветанка Георгиева Моделиране на информационни системи

Page 8: Полуструктурирани данни

ЕЗИКЪТ XML

XML (eXtensible Markup Language – език за

разширяеми маркери)

система за обозначения, основана на тагове (tags) и

използвана за „маркиране” (mark-up) на документи;

под документ (document) се разбира файл, съдържащ

набор от символи;

таговете в XML определят смисловото значение на

отделни низове в текста на документа.

8 8 Цветанка Георгиева Моделиране на информационни системи

Page 9: Полуструктурирани данни

СЕМАНТИЧНИ ТАГОВЕ

Таговете в XML

представляват низове в текста, заградени в

ъглови скоби < и >;

дефинират се по двойки – началният таг <text>

съответства на краен таг, съдържащ същия текст,

който съдържа началния, с предшестващ символ

наклонена черта </text>;

една двойка тагове определя елемент (element)

на документа;

елементите могат да бъдат вложени един в друг.

9 9 Цветанка Георгиева Моделиране на информационни системи

Page 10: Полуструктурирани данни

ЕЗИКЪТ XML (2)

XML е проектиран за използване в два режима:

Добре оформен (well-formed) документ

в документа могат да се съдържат произволни тагове,

включени по усмотрение на автора на документа;

всеки добре оформен документ трябва да спазва

определени синтактични правила, чрез които се

гарантира дървовидната му структура.

Валиден (valid) документ

добре оформен XML документ, който съответства на

предварително дефинирана структура, определена

чрез DTD (document type definition) или XML Schema.

10 10 Цветанка Георгиева Моделиране на информационни системи

Page 11: Полуструктурирани данни

ДОБРЕ ОФОРМЕНИ XML ДОКУМЕНТИ

За да бъде един XML документ добре оформен,

трябва да отговаря на XML синтактични правила:

трябва да съдържа поне един елемент;

трябва да включва уникален отварящ и затварящ таг,

който съдържа целия документ, формирайки по този

начин коренен елемент (root element);

всички тагове трябва да са вложени правилно;

таговете в XML различават малки и големи букви;

стойностите на атрибутите трябва винаги да бъдат

заградени в кавички;

11 11 Цветанка Георгиева Моделиране на информационни системи

Page 12: Полуструктурирани данни

ДОБРЕ ОФОРМЕНИ XML ДОКУМЕНТИ (2)

В началото на документа трябва да се включи

инструкция за деклариране на XML (XML declaration):

<?xml version = "1.0" standalone = "yes"?>

<root>

</root>

първият ред означава, че документът е XML;

параметърът standalone = "yes" указва, че в

документа не се използват никакви външни DTD.

12 12 Цветанка Георгиева Моделиране на информационни системи

Page 13: Полуструктурирани данни

XML документ с информация за студенти и специалности

13 13 Цветанка Георгиева Моделиране на информационни системи

Page 14: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ DTD

DTD (document type definition)

представлява набор от граматически правила,

наречени дефиниция на тип на документа, чрез които

се оформя описанието на схемата на XML документа;

Структурата на DTD има следния вид: <!DOCTYPE root_element [

<!ELEMENT root_element (components)>

<!ELEMENT element_name (components)>

]>

14 14 Цветанка Георгиева Моделиране на информационни системи

Page 15: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ DTD (2)

Компонентите са:

други елементи, които могат или трябва да бъдат

вложени в определен елемент;

изразът (#PCDATA), който означава, че за стойност

на елемента ще служи фрагмент на текста и

елементът не съдържа вложени елементи.

15 15 Цветанка Георгиева Моделиране на информационни системи

Page 16: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ DTD (3)

Оператори за задаване на броя на вложените

елементи в друг елемент: * елементът може да се повтори произволен брой

пъти или изобщо да отсъства;

+ елементът трябва да присъства поне един път;

? елементът може да отсъства или да бъде използван

само еднократно;

елемент, който не е следван от посочените по-горе

символи (*, +, ?), трябва да присъства точно един път;

| допуска се присъствие на елементи, разположени

или отляво на оператора, или вдясно от него, но не

двете групи елементи едновременно.

16 16 Цветанка Георгиева Моделиране на информационни системи

Page 17: Полуструктурирани данни

ПРИМЕРНИ ПРАВИЛА ЗА ОПИСВАНЕ НА ИНФОРМАЦИЯТА

ЗА СТУДЕНТИТЕ

<!DOCTYPE students [

<!ELEMENT students (student*, speciality*)>

<!ELEMENT student (studentnumber, studentname,

address+)>

<!ELEMENT studentnumber (#PCDATA)>

<!ELEMENT studentname

(#PCDATA | firstname | surname | lastname)*>

<!ELEMENT firstname (#PCDATA)>

<!ELEMENT surname (#PCDATA)>

<!ELEMENT lastname (#PCDATA)>

<!ELEMENT address (#PCDATA)>

<!ELEMENT speciality (specialityid, specialityname)>

<!ELEMENT specialityid (#PCDATA)>

<!ELEMENT specialityname (#PCDATA)>

]>

17 17 Цветанка Георгиева Моделиране на информационни системи

Page 18: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ DTD (4)

Ако документът трябва да удовлетворява

изискванията на DTD, има две възможности:

да се включи DTD в началото на текста на документа

след декларирането на XML;

в първия ред на документа след деклариране на XML

се указва името и местоположението на файла,

съдържащ DTD. Например:

<?xml version = "1.0" standalone = "no"?>

<!DOCTYPE students SYSTEM "student.dtd">

18 18 Цветанка Георгиева Моделиране на информационни системи

Page 19: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ DTD (5)

Списъци с атрибути

атрибутите могат да се добавят в началният таг на

елемент;

ключовата дума !ATTLIST позволява да се дефинира в

DTD списък с атрибути и техните типове.

Предназначение

задаване на определена стойност за елемента;

представяне на полуструктурираните данни, графът

на които не е дървовиден.

19 19 Цветанка Георгиева Моделиране на информационни системи

Page 20: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ DTD (6)

Идентификатори (identifiers)

ID – атрибутът на елемент E трябва да получава стойности,

които са уникални и еднозначно определят всяка част от

документа, заградена с таговете <E> и </E>.

Референции на идентификатори (identifier

references)

IDREFS – атрибутът може да бъде поставен в съответствие

със списък от стойности на идентификатори на елементи;

IDREF – при рефериране на една стойност.

20 20 Цветанка Георгиева Моделиране на информационни системи

Page 21: Полуструктурирани данни

<!ELEMENT students (student*, speciality*)>

<!ELEMENT student

(studentnumber, studentname, address+)>

<!ATTLIST student

studId ID #IMPLIED

studentIn IDREF #IMPLIED>

<!ELEMENT studentnumber (#PCDATA)>

<!ELEMENT studentname

(#PCDATA | firstname | surname | lastname)*>

<!ELEMENT firstname (#PCDATA)>

<!ELEMENT surname (#PCDATA)>

<!ELEMENT lastname (#PCDATA)>

<!ELEMENT address (#PCDATA)>

<!ELEMENT speciality (specialityid, specialityname)>

<!ATTLIST speciality

specId ID #IMPLIED

specialityOf IDREFS #IMPLIED>

<!ELEMENT specialityid (#PCDATA)>

<!ELEMENT specialityname (#PCDATA)>

21 21 Цветанка Георгиева Моделиране на информационни системи

Page 22: Полуструктурирани данни

Примерен документ, съответстващ на изискванията, определени в DTD

22 22 Цветанка Георгиева Моделиране на информационни системи

Page 23: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ DTD (7)

Има различни онлайн валидатори за DTD, чрез които може

да се провери дали даден XML документ съответства на

зададен DTD.

Например

http://www.xmlvalidation.com

http://www.validome.org/grammar/

Освен това валидиране може да се извърши и чрез

функцията validate:dtd() в BaseX.

let $doc :='тук е съдържанието на XML документа'

let $dtd:='тук е dtd на документа'

return validate:dtd($doc, $dtd)

23 23 Цветанка Георгиева Моделиране на информационни системи

Page 24: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ XML

SCHEMA

XML Schema

XML-базиран подход за описание на структурата на

XML документите;

всеки елемент може да бъде ограничен, като се

зададе неговия тип.

24 24 Цветанка Георгиева Моделиране на информационни системи

Page 25: Полуструктурирани данни

Елементи в XML Schema

25 25 Цветанка Георгиева Моделиране на информационни системи

Page 26: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ XML

SCHEMA (2)

елементите от прост тип могат да съдържат само текст;

всички вградени типове са прости (например string,

decimal, float, boolean, dateTime и други);

вградените типове могат да бъдат:

основни (например string, boolean, decimal, float, double,

dateTime и други);

производни (например positiveInteger, negativeInteger,

nonPositiveInteger, nonNegativeInteger, long, int, short,

byte и други);

простите типове могат да бъдат:

атомарни (например низове, цели числа, дати, др.);

неатомарни (например списъци).

26 26 Цветанка Георгиева Моделиране на информационни системи

Page 27: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ XML

SCHEMA (3)

Сложните типове елементи:

могат да съдържат други елементи, атрибути и/или

текст;

могат да бъдат ограничени, така че да съдържат само

текст, но да притежават атрибути;

могат да бъдат ограничени, така че да нямат

съдържание, т.е. да бъдат празни елементи, но те

могат да притежават атрибути;

могат да имат смесено съдържание, т.е. да съдържат

текст и/или други елементи.

27 27 Цветанка Георгиева Моделиране на информационни системи

Page 28: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ XML

SCHEMA (4)

Примерна XML схема

28 28 Цветанка Георгиева Моделиране на информационни системи

Page 29: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ XML

SCHEMA (5)

Структура на XML документ, отговарящ на схемата

29 29 Цветанка Георгиева Моделиране на информационни системи

Page 30: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ XML

SCHEMA (6)

XML документ, съответстващ на XML схемата

30 30 Цветанка Георгиева Моделиране на информационни системи

Page 31: Полуструктурирани данни

XML СХЕМА – ПРИМЕР

<?xml version="1.0" encoding="windows-1251"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="studentnumber" type="xs:string"/>

<xs:element name="firstname" type="xs:string"/>

<xs:element name="surname" type="xs:string"/>

<xs:element name="lastname" type="xs:string"/>

<xs:element name="address" type="xs:string"/>

<xs:complexType name="studentnameType"

mixed="true">

<xs:sequence>

<xs:element ref="firstname"

minOccurs="0" maxOccurs="1"/>

<xs:element ref="surname"

minOccurs="0" maxOccurs="1"/>

<xs:element ref="lastname"

minOccurs="0" maxOccurs="1"/>

</xs:sequence>

</xs:complexType>

31 31 Цветанка Георгиева Моделиране на информационни системи

Page 32: Полуструктурирани данни

<xs:complexType name="studentType">

<xs:sequence>

<xs:element ref="studentnumber"/>

<xs:element name="studentname"

type="studentnameType" />

<xs:element ref="address" />

</xs:sequence>

<xs:attribute name="studId"

type="xs:ID" use="required"/>

<xs:attribute name="studentIn"

type="xs:IDREF" use="required"/>

</xs:complexType>

32 32 Цветанка Георгиева

XML СХЕМА – ПРИМЕР (2)

Моделиране на информационни системи

Page 33: Полуструктурирани данни

<xs:complexType name="specialityType">

<xs:sequence>

<xs:element name="specialityid"

type="xs:integer"/>

<xs:element name="specialityname"

type="xs:string"/>

</xs:sequence>

<xs:attribute name="specId"

type="xs:ID" use="required"/>

<xs:attribute name="specialityOf"

type="xs:IDREFS" use="required"/>

</xs:complexType>

33 33 Цветанка Георгиева

XML СХЕМА – ПРИМЕР (3)

Моделиране на информационни системи

Page 34: Полуструктурирани данни

<xs:element name="students">

<xs:complexType>

<xs:sequence>

<xs:element name="student"

type="studentType"

minOccurs="0" maxOccurs="unbounded" />

<xs:element name="speciality"

type="specialityType"

minOccurs="0" maxOccurs="unbounded" />

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

XML СХЕМА – ПРИМЕР (4)

34 34 Цветанка Георгиева Моделиране на информационни системи

Page 35: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ XML

SCHEMA (7)

Структура на XML документа, съответстваща на описаната схема

35 35 Цветанка Георгиева Моделиране на информационни системи

Page 36: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ XML

SCHEMA (8)

При дефиниране на сложните типове могат да се

използват:

индикатори за наредба:

<all> – елементите-наследници могат да се появяват в

произволен ред и най-много по един път;

<choice> – може да се появи само един от изброените

елементи-наследници;

<sequence> – елементите-наследници трябва да се

появяват в определения ред.

индикатори за срещане: maxOccurs – максимален брой на срещанията на

елемент;

minOccurs – минимален брой на срещанията на елемент.

36 36 Цветанка Георгиева Моделиране на информационни системи

Page 37: Полуструктурирани данни

ОПРЕДЕЛЯНЕ НА ТИПА НА ДОКУМЕНТА ЧРЕЗ XML

SCHEMA (9)

Има различни онлайн валидатори, чрез които може да се

провери дали даден XML документ съответства на зададена

схема.

Например

http://www.freeformatter.com/xml-validator-xsd.html

http://www.utilities-online.info/xsdvalidation

http://xmlgrid.net

Освен това валидиране може да се извърши и чрез

функцията validate:xsd() в BaseX.

let $doc :='тук е съдържанието на XML документа'

let $schema :='тук е схемата на документа'

return validate:xsd($doc, $schema)

37 37 Цветанка Георгиева Моделиране на информационни системи

Page 38: Полуструктурирани данни

ЕЗИКЪТ XPATH

използва се за осъществяване на достъп до

определени върхове в XML документ;

базира се на дървовидната структура на XML

документа и осигурява възможност за избиране на

върхове на дървото чрез прилагане на различни

критерии;

предоставя и основни средства за манипулиране на

низове, числа и булеви изрази;

разработен е от W3C (World Wide Web Consortium).

38 38 Цветанка Георгиева Моделиране на информационни системи

Page 39: Полуструктурирани данни

ЕЗИКЪТ XPATH (2)

Най-често използваните XPath изрази са: nodename – всички наследници на върха nodename.

Например изразът student избира всички върхове-

наследници на елемента student.

/ – коренния връх;

// – всички върхове в документа от текущия. Например

изразът //student избира всички елементи student

независимо от това къде се намират в документа.

. – текущия връх;

.. – родителския връх на текущия връх;

@ – атрибут. Например изразът

/students/student/@studId избира атрибута

studId на елемента student;

39 39 Цветанка Георгиева Моделиране на информационни системи

Page 40: Полуструктурирани данни

ЕЗИКЪТ XPATH

* – произволен елемент. Например изразът

/students/student/* избира всички елементи-

наследници на елемента student;

@* – произволен атрибут;

node() – произволен връх (елемент или атрибут);

| – няколко набора от върхове. Например изразът

//student/studentnumber |

//student/address избира всички елементи-

наследници studentnumber и address на всички

елементи student в документа.

40 40 Цветанка Георгиева Моделиране на информационни системи

Page 41: Полуструктурирани данни

ЕЗИКЪТ XPATH (3)

В XPath изразите могат да се включват функции,

най-често използваните от които са: name() – името на текущия връх;

text() – съдържанието на текущия връх;

position() – позицията на текущия връх в набор от

върхове;

last() – позицията на последния връх в текущия набор

от върхове;

data(arg) – връща стойностите на върховете в даден

набор от върхове;

id(arg) – връща върховете (елементи или атрибути),

които имат стойност на идентификатора, равна на някоя

от дадените стойности от тип ID;

41 41 Цветанка Георгиева Моделиране на информационни системи

Page 42: Полуструктурирани данни

ЕЗИКЪТ XPATH (4)

idref(arg) – върховете (елементи или атрибути), които

реферират някоя от дадените стойности от тип ID;

distinct-values(arg) – стойностите на върховете в

даден набор от върхове, като отстранява дублиращите се;

count(arg) – броя на върховете в даден набор;

sum(arg) – сумата от числовите стойности в набор от

върхове;

avg(arg) – средната аритметична стойност на числовите

стойности в набор от върхове;

max(arg) – максималната стойност от числовите

стойности в набор от върхове;

min(arg) – минималната стойност от числовите

стойности в набор от върхове;

number(arg) – преобразува текст в числова стойност;

42 42 Цветанка Георгиева Моделиране на информационни системи

Page 43: Полуструктурирани данни

ЕЗИКЪТ XPATH (5)

string(arg) – преобразува числова стойност в низ;

string-length(string) – дължината на даден низ;

contains(string1, string2) – връща като резултат

стойност true, ако string2 се съдържа в string1 и false в

противен случай;

starts-with(string1, string2) – връща като

резултат стойност true, ако string1 започва със string2 и

false в противен случай;

ends-with(string1, string2) – връща като резултат

стойност true, ако string1 завършва със string2 и false в

противен случай;

substring(string, start, len) – подниз на string

от позиция start с дължина len;

43 43 Цветанка Георгиева Моделиране на информационни системи

Page 44: Полуструктурирани данни

ЕЗИКЪТ XPATH (6)

substring-before(string1, string2) –

подниза, с който string1 започва преди появата на string2

като подниз в string1;

substring-after(string1, string2) – подниза,

с който string1 завършва след появата на string2 като

подниз в string1;

concat(string1, string2, ..., stringN) –

връща низ, получен от слепването на низовете string1,

string2, ..., stringN;

replace(string, substr, replace) – низ,

получен след заместване на всяко срещане на низа

substr като подниз в string с низа replace.

44 44 Цветанка Георгиева Моделиране на информационни системи

Page 45: Полуструктурирани данни

ЕЗИКЪТ XQUERY

Разработен от W3C;

Проектиран за извличане на XML данни;

Най-често използвани в XQuery са FLWOR изразите

(For, Let, Where, Order by, Return):

for – асоциира една или повече променливи с

изрази;

let – асоциира променлива с резултата от израз;

where – задава критерий за филтриране;

order by – задава критерий за сортиране;

return – определя какъв резултат да бъде върнат от

FLWOR израза.

45 45 Цветанка Георгиева Моделиране на информационни системи

Page 46: Полуструктурирани данни

ЕЗИКЪТ XQUERY – ПРИМЕРИ

Пример 1 Да се изведат имената на студентите.

for $s in

doc("students.xml")/students/student/studentname

return $s

Пример 2 Да се намерят имената на студента с факултетен

номер 17123.

for $s in doc("students.xml")/students/student

where $s/studentnumber = "17123"

return $s/studentname

46 46 Цветанка Георгиева Моделиране на информационни системи

Page 47: Полуструктурирани данни

ЕЗИКЪТ XQUERY – ПРИМЕРИ

Пример 3 Да се изведат факултетните номера, имената и

специалностите на студентите във вида:

47 47 Цветанка Георгиева Моделиране на информационни системи

Page 48: Полуструктурирани данни

ЕЗИКЪТ XQUERY – ПРИМЕРИ

Пример 3

<students>

{

for $s in doc("students.xml")/students/student,

$sp in

doc("students.xml")/students/speciality

where $s/@studentIn = $sp/@specId

return <student>

{$s/studentnumber}

{$s/studentname}

{$sp/specialityname}

</student>

}

</students>

48 48 Цветанка Георгиева Моделиране на информационни системи

Page 49: Полуструктурирани данни

ЕЗИКЪТ XQUERY – ПРИМЕРИ

Пример 3 – друг начин

49 49 Цветанка Георгиева Моделиране на информационни системи

Page 50: Полуструктурирани данни

ЕЗИКЪТ XQUERY – ПРИМЕРИ

Пример 3 – друг начин <students>

{

for $s in doc("students.xml")/students/student

return <student>

{$s/studentnumber}

{$s/studentname}

{idref($s/@studId)/../specialityname}

</student>

}

</students>

Някои системи за XML бази от данни (като BaseX) изискват:

атрибутите-идентификатори, да съдържат "id" като

подниз в името си;

атрибутите-референции, да съдържат "idref" като

подниз в името си. 50 50 Цветанка Георгиева Моделиране на информационни системи

Page 51: Полуструктурирани данни

ЕЗИКЪТ XQUERY – ПРИМЕРИ

Пример 3 – трети начин

<students>

{

for $s in /students/student

return <student>

{$s/studentnumber}

{$s/studentname}

{id($s/@studentIn)/specialityname}

</student>

}

</students>

51 51 Цветанка Георгиева Моделиране на информационни системи

Page 52: Полуструктурирани данни

ЕЗИКЪТ XQUERY – ПРИМЕРИ

Пример 4 Да се изведат факултетните номера и имената на

студентите, подредени по факултетните им номера.

for $s in

doc("students.xml")/students/student/studentnumber

order by $s

return <student>

{$s}

{$s/../studentname}

</student>

52 52 Цветанка Георгиева Моделиране на информационни системи

Page 53: Полуструктурирани данни

ЕЗИКЪТ XQUERY – ПРИМЕРИ

Пример 5 Да се изведат факултетните номера и имената на

студентите по специалности:

53 53 Цветанка Георгиева Моделиране на информационни системи

Page 54: Полуструктурирани данни

Пример 5 <specialities>

{

for $sp in

doc("students.xml")/students/speciality/@specId

return <speciality>

{ $sp/../specialityname }

{<students>

{

for $s in

doc("students.xml")/students/student

where $s/@studentIn = $sp

return <student>

{$s/studentnumber}

{$s/studentname}

</student>}

</students>}

</speciality>

}

</specialities>

54 54 Цветанка Георгиева Моделиране на информационни системи

Page 55: Полуструктурирани данни

Пример 5 – друг начин <specialities>

{

for $x in /students/speciality/@specialityOf

return

<speciality>

{ $x/../specialityname }

<students>

{

for $y in /students/student/id($x)

return <student>

{ $y/studentnumber }

{ $y/studentname }

</student>

}

</students>

</speciality>

}

</specialities>

55 55 Цветанка Георгиева Моделиране на информационни системи

Page 56: Полуструктурирани данни

ПРИМЕРИ ЗА ПРИЛАГАНЕ НА ЕСТЕСТВЕНИ XML БАЗИ

ОТ ДАННИ

Създаване на електронен каталог за продукти;

Nexoma, разработваща платформи за Интернет търговия

и онлайн приложения, е базирана на XS-KatalogExpress,

който използва BaseX.

Поддържане на библиографски информационни

системи;

Elsevier Science е издателство на научна, техническа и

медицинска летратура и използва Mark Logic, за да

управлява данните си.

56 56 Цветанка Георгиева Моделиране на информационни системи

Page 57: Полуструктурирани данни

Системи за управление на съдържанието;

Редакторски системи като AILINK, Eurocortex,

KnowledgeView, Protec, Rosebud, Modulo, използват

TEXTML Server, за да управляват своите данни, архиви.

Помощна информация за софтуер;

Autodesk съхранява наръчника си за употреба чрез

Idiom's GEP система за управление на съдържанието,

основана на XML базата от данни X-Hive/DB.

Системата се основава на XQuery и XLink.

57 57 Цветанка Георгиева Моделиране на информационни системи

ПРИМЕРИ ЗА ПРИЛАГАНЕ НА ЕСТЕСТВЕНИ XML БАЗИ

ОТ ДАННИ (2)

Page 58: Полуструктурирани данни

Управляване на архив от документи;

Le Monde използва Xyleme Zone Server, за да управлява

архива си от документи. Архивът на вестника се

използва от служители, партньори и клиенти.

Естествените XML бази от данни се използват също за

съхраняване на разнообразни други типове документи

като договори, информация за лекарства, обяви,

процедури за използване и поддръжка на продукти,

електронни формуляри, други.

58 58 Цветанка Георгиева Моделиране на информационни системи

ПРИМЕРИ ЗА ПРИЛАГАНЕ НА ЕСТЕСТВЕНИ XML БАЗИ

ОТ ДАННИ (3)