INTRODUCERE ÎN TEORIA BAZELOR DE DATE X ML (e X tensible M arkup L anguage)

27
LOREDANA MOCEAN LOREDANA MOCEAN Universitatea Babeş-Bolyai din Cluj-Napoca Universitatea Babeş-Bolyai din Cluj-Napoca Facultatea de Ştiinţe Economice Facultatea de Ştiinţe Economice Catedra de Informatică Economică Catedra de Informatică Economică [email protected] [email protected] INTRODUCERE INTRODUCERE ÎN ÎN TEORIA BAZELOR DE DATE TEORIA BAZELOR DE DATE X X ML ML (e (e X X tensible tensible M M arkup arkup L L anguage) anguage)

description

INTRODUCERE ÎN TEORIA BAZELOR DE DATE X ML (e X tensible M arkup L anguage). LOREDANA MOCEAN Universitatea Babeş-Bolyai din Cluj-Napoca Facultatea de Ştiinţe Economice Catedra de Informatică Economică [email protected]. * Anii 60-70 : - arhitecturi tranzacţionale - PowerPoint PPT Presentation

Transcript of INTRODUCERE ÎN TEORIA BAZELOR DE DATE X ML (e X tensible M arkup L anguage)

Page 1: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

LOREDANA MOCEANLOREDANA MOCEANUniversitatea Babeş-Bolyai din Cluj-NapocaUniversitatea Babeş-Bolyai din Cluj-Napoca

Facultatea de Ştiinţe EconomiceFacultatea de Ştiinţe Economice Catedra de Informatică EconomicăCatedra de Informatică Economică

[email protected]@econ.ubbcluj.ro

INTRODUCERE INTRODUCERE ÎNÎN

TEORIA BAZELOR DE DATE TEORIA BAZELOR DE DATE XXMLML (e(eXXtensible tensible MMarkup arkup LLanguage)anguage)

Page 2: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

* Anii 60-70: - arhitecturi tranzacţionale- modele de reprezentare ierarhice

* Anii 80: - apariţia reţelelor, - arhitecturi client-server, - modele de reprezentare relaţionale;- interpretarea datelor la nivel de server cu ajutorul SQL- interfeţe de programare a aplicaţiilor- punţi de asigurare a conectivităţii ODBC, JDBC- conceptual se apelează la modelul entitate – relaţie (ER) dar schema este una rigidă; se permite astfel stocarea unui volum de date uniforme! Probleme la indexare, normalizare, integritate referenţială

* Anii 2000 - prezent:- arhitecturi navigaţionale, hipertext şi sisteme mobile- Daum şi Merten (2003): modelele de date cele mai potrivite sunt cele recurgând la gramatici regulare- trebuie impuse cerinţe suplimentare pentru un model ideal, aliniat la Web- datele sunt eterogene, pot proveni din diferite surse, multe informaţii evoluează în timp- datele dorite a fi modelate sunt nelimitate şi necunoscute

→ date semistructurate: - nu necesită definiţia unei scheme de date, - au o structură intrinsecă dar nu complet nestructurată

Page 3: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

1. DefiniţieXML: limbaj de marcare, permite structurarea informaţiei

de diferite tipuri, folosind un set liber de instrucţiuni

XML HTMLEste folosit pentru transportul datelor

Este folosit pentru afişarea datelor

Este folosit pentru descrierea conţinutului datelor

Este folosit pentru definirea vizuală a datelor

Este folosit pentru a arăta cum sunt folosite datele

Este folosit pentru a defini modul de afişare a datelor

Tehnologie complementară

pt. HTML ! ! !

Describing information !

Displaying information !

Page 4: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

2. Cum pot fi folosite datele XML?

XML stochează datele în fişiere .xml Se poate folosi HTML pentru formatare şi afişare Datele XML pot fi stocate în interiorul fişierelor HTML ca şi

“Data Islands” Datele XML pot fi convertite între diverse aplicaţii şi

sisteme de operare, chiar cu formate incompatibile XML va fi în viitorul apropiat principalul limbaj de conversie

între informaţiile financiare şi aplicaţiile B2B Datele XML, fiind independente de hard, soft şi aplicaţii, pot

fi vizualizate de diferite tipuri de browsere; pot fi citite ca şi surse de date în multe limbaje de programare;

XML este folosit pentru a crea noi limbaje de programare (ex. WML – Wireless Markup Language)

Page 5: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

3. Sintaxa XML

Ex:<?xml version="1.0" encoding=“UTF-8"?><notă><către>Dan</către><dela>Cristina</dela><antet>Reminder</antet><body>Să nu uităm să facem proiectul mâine! </body></notă>

Categorii de constituenţi:

* Declaraţia * Elementele * Atributele * Entităţile * Secţiunile de marcare* Instrucţiunile de procesare

Page 6: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

Observaţii:

Trei tipuri de taguri: început, sfârşit şi vid; obligatorie existenţa tagurilor de închidere, cu excepţia primului rând;

La începutul documentului apare declaraţia xml care indică limbajul de marcare, versiunea lui şi informaţii suplimentare

Case – sensitive Structurile de date trebuie să fie imbricate Toate datele XML trebuie să aibă rădăcină unică Atributele sunt incluse între ghilimele Toată informaţia ce este conţinută între tagul de început şi

sfârşit reprezintă zonă de date, deci se iau în considerare toate simbolurile de formatare (spaţii, enter etc.)

Comentariile la fel ca şi în HTMLEx: <!-- acesta este un comentariu>

Page 7: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

4. Elemente XML

a. Elementele XML sunt extensibileEx: <data>01/03/2006 </data>b. Există relaţii între date; se definesc

structuri arborescenteEx:

Primul meu XMLIntroducere• Ce este HTML• Ce este XMLSintaxa XML•Elementele trebuie să aibă tag de închidere•Elementele trebuie să fie imbricate

<carte><titlu>Primul meu XML</titlu><prod ID=“12345” media=“hartie></prod><capitol>Introducere in XML<para>Ce este HTML</para><para>Ce este XML</para></capitol>

<capitol>Sintaxa XML<para>Elementele trebuie să aibă tag de închidere</para><para>Elementele trebuie să fie imbricate</para></capitol></carte>

Page 8: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

c. Elementele au conţinut şi atribute. Conţinutul poate fi de tip element, mixt, simplu şi vid.

Ex:element <carte> , conţine alte elementemixt <capitol> , conţine text şi alte elementesimplu <para> conţine doar textvid <prod>, nu conţine informaţii

d. Numele elementelor XML: Pot conţine litere, cifre şi caractere speciale Nu poate începe cu cifră sau semne de punctuaţie Nu poate începe cu cuvântul “XML” Nu poate conţine spaţii

Page 9: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

5. Atributele XML Elementele XML pot avea atribute în tagul de început

(preluare din html). Atributele sunt folosite pentru a da informaţii suplimentare

despre apariţiile particulare ale unui elementEx:<file type=“gif”>computer.gif</file> Datele pot fi stocate fie în elemente arborescente fie în

atributeEx:

<Pers Sex=“feminin”><nume>Muresan</nume><prenume>Anna</prenume></Pers>

<Pers><Sex>feminin</Sex><nume>Muresan</nume><prenume>Anna</prenume></Pers>

Page 10: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

Dezavantaje ale utilizării atributelor:- Nu pot conţine mai multe valori- Nu sunt uşor de extins cu elemente arborescente- Nu pot descrie structuri - Codul le manipulează cu greu

Ex:<mesaje>

<nota id=“m1”><către>Dan</către><dela>Cristina</dela><antet>Reminder</antet><body>Să nu uităm să facem proiectul mâine!

</body><nota id=“m2”>

<către>Calin</către><dela>Mihaela</dela><antet>TotReminder</antet><body>Eu nu pot sa vin! </body>

</nota></mesaje>

Page 11: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

6. Referinţele la entităţi Constituie pointeri către entităţi Entităţile pot fi unităţi de text, caractere, documente sau

referinţe la alte documente Se folosesc atunci când se doreşte folosirea unor caractere

care ar conduce la erori de procesare şi care nu ar trebui să apară în forma lor normală în text

Construcţia &nume-entitate; Entităţile predefinte:

Entitate Referinţa la entitate< &lt;> &gt;& &amp;‘ &apos;“ &quot;

Page 12: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

7. Secţiunile de marcare Se utilizează atunci când anumite părţi ale documentului necesită

un tratament special în ce priveşte modul de procesare Secţiunea CDATA are rolul de inhibare a prelucrării construcţiilor

XML; este utilizată pentru a include blocuri de text conţinând caractere care altfel ar fi recunoscute ca marcaje

Secţiunile CDATA nu pot apare imbricate Sintaxa <![CDATA[…]]>

Ex1: inetpref.xml<Label TopMargin=“8” Group=“1”><Text><![CDATA[&Select the default search engine:]]></Text></Label>Ex2:<script type=“text/javascript”>/*<![CDATA[*/If (vizite>10) { // vizitator fidel Document.write(“<p>Hello again! </p>”);}/*]]>*/</script>

Page 13: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

8. Instrucţiunile de procesare

Reprezintă un tip special de marcaj care conţine informaţii privitoare la anumite aplicaţii ce urmează a fi executate pentru procesarea conţinutului

Sintaxa <?nume_aplicatie ?>

Ex1:<script><?php echo “<p>Salut !\n</p>;?></script>

Ex2:<?xml:stylesheet type=“text/css” href=“stil.css” ?>

Page 14: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

9. Tabele de stil XSL Tabelele de stil (foi de stil): instrucţiuni speciale ce dirijează procesul de

prezentare a elementelor în fereastra programului client (browserului); Se foloseşte ca limbaj de formatare XSL (eXtensible Stylesheet

Language); Există posibilitatea de a folosi diferite stiluri de formatare pentru

aceleaşi elemente depinzând de contextul utilizării lor; Regulile de aranjare se evidenţiază prin tagurile <rule> şi </rule> Elementele XML cărora li se atribuie formatarea se evidenţiază prin

descriptorul </target-element> Pentru a da o denumire concretă elementului se foloseşte atributul

type=“nume_element”

Ex:<xsl><rule>

<target-element type=“carte”><p color=“green” font-size=“12”></children></p>

</rule></xsl>

Este repetatprocesul analizei pentru elementele fii

Page 15: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

<?XML Version="1.0"?> <documents> <books><book id="Book1"><title> Amintiri din copilarie </title><author>Ion Creangă </author><date>10.10.01</date></book><book id="Book2"><title> Poezii </title><author> Mihai Eminescu </author><date>10.10.02</date></book> </books> <articles><article id="Article1"><author> Dan Sirbu </author><title> Influenţa majorării tarifelor… </title><date>12.01.03</date></article> </articles></documents>

<xsl><rule><root/> <HTML> <BODY bgcolor="white"><center><hr width="80%"/><b>Library</b><hr width="80%"/><br/> <table width="80%" border="2"><children/> </table></center></BODY></HTML> </rule><rule><element type="book"><target-element type="author"/></element><td align="center"><p color="red" font-size="14"> <b> <children/> </b></p></td></rule><rule>

XML XSL

<element type="article"><target-element type="author"/></element><td align="center"><p color="red" font-size="14"font-style="italic"><children/></p></td></rule><rule><target-element type="book"/><tr><children/></tr></rule><rule><target-element type="article"/><tr><children/></tr></rule><rule><target-element/><td align="center"><p><children/></p></td></rule><rule><target-element type="books"/><tr><td colspan="3" bgcolor="silver">Books</td></tr><children/></rule><rule><target-element type="articles"/><tr><td colspan="3" bgcolor="silver">Articles</td></tr><children/></rule></xsl>

Page 16: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

Regula elementului rădăcină: analiza oricărui document XML începe de la elementul rădăcină, tagurile de formatare vor fi plasate aici

Ex:<xsl>

<rule><root/><html><head><title> Bibliotecă </title></head><body bgcolor="white" link="blue" alink="darkblue" vlink="darkblue"><children/></body></html></rule>

</xsl>

Page 17: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

Relaţiile între elemente: Elementele – fii se găsesc în interiorul zonei definite prin tagurile elementului – părinte. Pentru a arăta corect locul elementului în documentul XML, în XSL se utilizează tagul <element>;. Cu ajutorul lui se poate arăta care elemente sunt predecesoare lui, şi care trebuie să-l succeadă.

Ex: formatarea elementului <titlu> depinde de locul lui în documentul XML:

<xsl><rule>

<element type="revista"><target-element type="titlu"/></element><center><hr width=80%><children/><hr width=80%></center> </rule><rule><element type="articol"><target-element type="titlu"/></element><td align="center"><p color="blue" font-size="14" font-style="italic"><children/></td>

</rule></xsl>

Page 18: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

Folosirea atributelor elementelor: Parametrii indicaţi în <attribute> name şi value definesc atributul XML, care trebuie să aibă elementul curent destinat prelucrării.

Ex: În fragmentul următor toate elementele cu atributul free_lance=”true” vor fi evidenţiate în documentul HTML final cu o culoare gri.

</xsl><rule>

<target-element type="author"><attribute name="free_lance" value="true"></target-element><p color="gray"><children/></p>

</rule> </xsl>

Page 19: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

Filtrarea elementelor: XSL are posibilitatea de a sorta şi de a alege elementele evidenţiate, din graful general de elemente din document. <select-elements>; - înlocuieşte în reguli elementul <children/>, definind acele elemente, care trebuiesc prelucrate în cadrul parcurgerii recursive.

Ex: În fragmentul următor vor fi prelucrate numai elementele <author>:

<xsl><rule>

<target–element type=" staff"/><div><select–elements><target–element type = "author"/></select–elements></div>

</rule> </xsl>

Page 20: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

Calculul expresiilor: Ex: calculul valorilor parametrilor elementelor descrise. Se trece semnul = ca primul simbol al parametrului, ce va

impune procesorul XSL să calculeze valoare expresiei (sintaxa expresiei trebuie să corespundă cerinţelor JavaScript).

Ex: <xsl><rule>

<target–element type="header"><hr width="=100-20+'%'"><children/><hr width="80%">

</rule> </xsl>

În documentul final vor apărea următoarele instrucţiuni:

<hr width=80%>...

<hr width=80%>

Page 21: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

Executarea instrucţiunilor : O altă metodă de plasare a informaţiei în documentul HTML final, (rezultatul executării unor operaţii şi a scenariilor JavaScript), este folosirea instrucţiunilor <eval>

Ex:

<xsl><rule>

<element type="articles"><target–element type="article"></element><tr><td><eval>childNumber(this)</eval></td><td><children/></td><tr>

</rule> </xsl>

Obs.

Întoarce numărul curent a elementului-fiu.

Page 22: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

Definirea funcţiilor şi a variabilelor globale : Analog tagului <SCRIPT> în HTML, elementul <define-script> conţine funcţiile şi definiţiile variabilelor globale. Este plasat la început.

Ex:<xsl><define-script>

<![CDATA[var fontSize=12; function getColor(elem) {return elem.children.item("color",0).text; <color> }]]>// Returnează conţinutul elementului-fiu

</define-script><rule>

<target-element type = "leguma"><div background-color="=getColor(this)"; font-size="=fontSize"><children/></div>

</rule></xsl>

Dacă se aplică aceste reguli la următorul document XML:

<xml><leguma> varză <color> green </color> </leguma>

</xml>

La ieşire documentul HTML va conţine elementele următoare:<div background-color="green"; font-size="12">

Page 23: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

10. Definirea tipului documentului DTD DTD: defineşte setul elementelor variabile, identifică elementele care pot fi

găsite în alte elemente şi defineşte atributele adevărate pentru fiecare dintre ele;

Nu este obligatorie folosirea DTD; Se folosesc următoarele tipuri de reguli:- pentru elementele şi atributele lor, - descrierile categoriilor, - descrierea formatelor binare.

Folosirea DTD:– În fişier extern, prin referinţa la fişier DTD<?xml version="1.0" ?><! DOCTYPE journal SYSTEM "jurnal.dtd">

– Evidenţierea unei zone în interiorul documentului în care se definesc regulile necesare

<! DOCTYPE journal [ <!ELEMENT journal (contacts, issues, authors)>

... ]>

Page 24: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

Definirea elementului: !ELEMENT, indică denumirea elementului, conţinutul şi structura lui;

Dacă există în interior şi alte elemente se foloseşte secţiunea CDATA;

Două instrucţiuni ce definesc tipul conţinutului: EMPTY (elementul trebuie să fie vid) şi ANY (elementul nu are o descriere specială);

Consecutivitatea fiilor pentru elementul curent se defineşte în formă de listă de denumiri a elementelor, separate prin virgulă. Pentru a indica numărul repetărilor de includere a acestor elemente se folosesc +, *, ?

Ex: <!ELEMENT item (titlu, autor+, sumar?)>

Page 25: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

! În cazul în care există mai multe variante ale conţinutului e necesar a se desparţi prin |

Ex:<!ELEMENT leguma (PCDATA | denumire)*>

! Dacă în definirea elementului se indică un conţinut amestecat, trebuie indicată secţiunea CDATA şi elementele despărţite prin |

Ex: <?xml version="1.0"?><! DOCTYPE journal [<!ELEMENT contacte (adresa, tel+, email?)><!ELEMENT adresa (strada, apt)><!ELEMENT strada PCDATA><!ELEMENT apt (PCDATA | EMPTY)*><!ELEMENT tel PCDATA><!ELEMENT email PCDATA>]>...<contacte><adresa><strada> Universităţii </strada><apt id="4"></adresa><tel>12-12-12</tel><tel>16-23-62</tel><email>[email protected]</email></contacte>

Page 26: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

Aplicaţii şi instrumente XMLFamilia XML

Formatare conţinut

Reprezentare conţinut

Descriere resurse web

Descriere servicii web

XML (eXtensible Markup Language)

XHTML (extensible HTML)

MathXML RDF (Resource Description Framework)

RPC (Remote Procedure Call)

DocBook (Documentation Book)

XSL (eXtensible Stylesheet Language)

WML (Wireless Markup Language)

VoiceXML XMI (XML Metadata Interchange Format)

WSDL (Web Service Description Language)

XUL (Extensible User-Interface language)

XQuery X3D (Extensible Three Dimensions)

SMIL (Synchronized Multimedia Integration Language)

OWL (Web Ontology Language)

SOAP (Simple Object Access Protocol)

XLL (eXtensible Linking Language)

SVG (Scalable Vector Graphics)

BRML (Business Rules Markup Language)

RSS (Really Simple Syndication)AtomDCMI (Dublin Core Metadata Initiative)

BPEL4WS (Business Process Execution Language for Web Services)

XForms OpenDocument

Page 27: INTRODUCERE  ÎN TEORIA BAZELOR DE DATE  X ML  (e X tensible  M arkup  L anguage)

Concluzii Puterea limbajului XML este reflectată de flexibilitatea în gestionarea

documentelor de toate tipurile Abordarea XML stabileşte un echilibru între performanţa, costul şi

capacitatea de utilizare a strategiilor de codificare uşor lizibile Familia XML este un punct de vedere unificator al unor tehnologii

particulare: Internetul, procesarea computerizată a documentelor, stocarea şi procesarea tradiţională a datelor

Modelul bazat pe XML se pretează pentru stocarea datelor semistructurate Direcţii importante de folosire a formatelor XML:

♣ Comunicaţii şi interacţiune (person2person, person2comp, comp2comp)

♣ Arhitecturi orientate pe servicii (aplicaţii EAI)♣ Conectare slabă (loose coupling)♣ Căutarea şi regăsirea cunoştinţelor (knowledge retrieval)♣ Managementul cunoştinţelor (knowledge management)♣ Modelarea proceselor (data flow, work flow)