Relacyjne bazy danych a XML



Podobne dokumenty
Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Wykład 8. SQL praca z tabelami 5

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Administracja i programowanie pod Microsoft SQL Server 2000

XML w bazach danych i bezpieczeństwie

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Język SQL, zajęcia nr 1

Struktura drzewa w MySQL. Michał Tyszczenko

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych)

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

P o d s t a w y j ę z y k a S Q L

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

XML w bazach danych i bezpieczeństwie

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Paweł Rajba

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

15. Funkcje i procedury składowane PL/SQL

Przykładowa baza danych BIBLIOTEKA

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Oracle PL/SQL. Paweł Rajba.

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Relacyjne bazy danych. Podstawy SQL

Tworzenie zapytań do Microsoft SQL Server

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

PHP: bazy danych, SQL, AJAX i JSON

Informatyka (10) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego i Mostów p. 4 Hydro

Bazy danych SQL Server 2005

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Spis treści. Przedmowa

Relacyjne bazy danych. Podstawy SQL

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie obiektów

Bazy danych i strony WWW

Szkolenie autoryzowane. MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Microsoft SQL Server Podstawy T-SQL

Podstawowe informacje o bazach danych. Technologie Informacyjne

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe

TEST E.14 BAZY DANYCH

Bazy danych. Polecenia SQL

Bazy Danych i Usługi Sieciowe

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

BAZY DANYCH Cz III. Transakcje, Triggery

Autor: Joanna Karwowska

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Programowanie po stronie serwera w SZBD. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Paweł Rajba

OPROGRAMOWANIE KEMAS zbudowane jest na platformie KEMAS NET

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki. Artur Krawczyk AGH Akademia Górniczo Hutnicza

Bazy danych. Dr inż. Paweł Kasprowski

Zasady transformacji modelu DOZ do projektu tabel bazy danych

SIECI KOMPUTEROWE I BAZY DANYCH

OLAP i hurtownie danych c.d.

Podstawowe zagadnienia z zakresu baz danych

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Bazy danych i usługi sieciowe

Tworzenie raportów XML Publisher przy użyciu Data Templates

Bazy danych. dr Radosław Matusik. radmat

QUERY język zapytań do tworzenia raportów w AS/400

Model semistrukturalny

SQL Server Configuration Manager centrum dowodzenia

Ref. 7 - Język SQL - polecenia DDL i DML

Kursory. A. Pankowska 1

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Oracle PL/SQL. Paweł Rajba.

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

znaleźć wszystkie rekordy dotyczące adresów przy ulicy Hożej (dowolnego miasta!);

Wykład 5. SQL praca z tabelami 2

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Wykład XII. optymalizacja w relacyjnych bazach danych

Bazy danych 10. SQL Widoki

SIECI KOMPUTEROWE I BAZY DANYCH

Bazy danych i usługi sieciowe

Wykład 05 Bazy danych

Systemowe aspekty baz

Autor: Joanna Karwowska

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy danych. Dr inż. Paweł Kasprowski

Transkrypt:

Relacyjne bazy danych a XML Anna Pankowska aniap@amu.edu.pl Internet, SQLiXMLwbiznesie Internet nieoceniony sposób komunikacji z klientami, pracownikami i partnerami handlowymi przyspiesza transakcje finansowe umożliwiadotarciedoogromnejrzeszy klientów ułatwia klientom wyszukanie najlepszej oferty Anna Pankowska - I&E 2

Internet, SQL ixmlwbiznesie przetwarzanie danych kluczowa część aplikacji biznesowych relacyjne systemy baz danych efektywne zarządzanie, przechowywanie, przetwarzanie i wymiana danych relacyjne bazy danych wykorzystywane przez większość firm Anna Pankowska - I&E 3 Internet, SQL ixmlwbiznesie Klienci encje Produkty Anna Pankowska - I&E 4

Internet, SQL ixmlwbiznesie Klienci Nr Nazwisko Telefon encje atrybuty Produkty Id Nazwa Cena Anna Pankowska - I&E 5 Internet, SQL ixmlwbiznesie Klienci Nr Nazwisko Telefon encje atrybuty ograniczenia Produkty Id Nazwa Cena Anna Pankowska - I&E 6

Internet, SQL ixmlwbiznesie Klienci Zamowienia Nr Nazwisko Telefon Nr Id Data encje atrybuty ograniczenia powiązania Produkty Id Nazwa Cena Anna Pankowska - I&E 7 Internet, SQL i XML wbiznesie konieczność integracji danych oraz aplikacji w ramach firmy i między firmami EDI Electronic Data Interchange rozwiązanie XML technologia do budowania rozwiązań integracyjnych i swobodnej wymiany danych Anna Pankowska - I&E 8

Zastosowanie XML w rozwiązaniach typu business-to-consumer (B2C) handel elektroniczny dane składowane w bazie relacyjnej, a prezentowane na stronach WWW XML jako pośrednik dane XML mogą być wyświetlane w oparciu o różne arkusze stylów na różnych urządzeniach klienckich (HTML - przeglądarki, WML - komórki) Anna Pankowska - I&E 9 Zastosowanie XML w rozwiązaniach typu business-to-enterprise (B2E) wewnętrzne aplikacje oparte na technologiach internetowych dostęp do dowolnych danych i wykonywanie na nich operacji za pomocą przeglądarek obsługujących XML (np: Microsoft Internet Explorer) aplikacje mogą stosować XML jako neutralny sposób opisu i wymiany danych Anna Pankowska - I&E 10

Zastosowanie XML w rozwiązaniach typu business-to-business (B2B) procesy biznesowe między partnerami handlowymi XML jako idealny sposób do opisu dokumentów wymienianych między firmami (zamówienia, faktury itp) Anna Pankowska - I&E 11 Wykorzystanie relacyjnych baz danych do zarządzania dokumentami XML-owymi Zagadnienia: przechowywanie i przetwarzanie dokumentów XML-owych w relacyjnej bazie danych rozpowszechnianie danych relacyjnych w postaci dokumentów XML-owych Anna Pankowska - I&E 12

Wykorzystanie relacyjnych baz danych do zarządzania dokumentami XML-owymi Zalety wykorzystania RSBD: RSBD są techniką dojrzałą, sprawdzoną i rozwijaną od wielu lat dostarczają szereg przydatnych rozwiązań dotyczących zarządzania pamięcią, współbieżnością, odtwarzania, wersjonowania Anna Pankowska - I&E 13 Wykorzystanie relacyjnych baz danych do zarządzania dokumentami XML-owymi Zalety rozpowszechniania danych w postaci dokumentów XML: powszechność, uwolnienie od ograniczeń sprzętowo-programowych dane mogą być strukturalizowane w postaci najbardziej wygodnej dla użytkownika Anna Pankowska - I&E 14

Wykorzystanie relacyjnych baz danych do zarządzania dokumentami XML-owymi Dokumenty XML > dane relacyjne: problemy opracowanie schematu relacji odpowiedniego do składowania dokumentów XML-owych (dowolne zagłębienia, rekursje, referencje) translacja zapytań zjęzyka semistrukturalnego do relacyjnego optymalizacja zapytań Anna Pankowska - I&E 15 Wykorzystanie relacyjnych baz danych do zarządzania dokumentami XML-owymi Dane relacyjne -> dokumenty XML: problemy powiązania między tabelami brak typów konieczność uwzględniania kolejności elementów Anna Pankowska - I&E 16

Reprezentacja encji w XML encja Klienci w relacyjnej bazie danych Klienci Nr 112 113 Nazwisko Kowalski Jaworska Telefon 8345035 5343534 Anna Pankowska - I&E 17 Reprezentacja encji w XML encja Klienci w dokumencie XML -zapomocą atrybutów <klienci> <klient Nr= 112 Nazwisko= Kowalski telefon= 8345035 /> <klient Nr= 113 Nazwisko= Jaworska telefon= 5343534 /> </klienci> Anna Pankowska - I&E 18

Reprezentacja encji w XML encja Klienci w dokumencie XML -zapomocą elementów <klienci> <klient> <Nr> 112 </Nr> <Nazwisko> Kowalski </Nazwisko> <telefon> 8345035 </telefon> </klient> <klient> <Nr> 113 </Nr> <Nazwisko> Jaworska </Nazwisko> <telefon> 5343534 </telefon> </klient> </klienci> Anna Pankowska - I&E 19 Reprezentacja encji w XML encja Klienci w dokumencie XML -rozwiązanie mieszane <klienci> <klient Nr = 112 > Kowalski <telefon> 8345035 </telefon> </klient> <klient Nr = 113 > Jaworska <telefon> 5343534 </telefon> </klient> </klienci> Anna Pankowska - I&E 20

Reprezentacja powiązań wxml powiązanie w relacyjnej bazie danych Zamowienia NrZam Data Klient 1002 01.02.2002 112 1003 03.04.2002 113 PozycjeZamowien NrPoz 1 2 1 NrZam NrProd Cena Ilosc 1002 40 120 4 1002 30 156 2 1003 10 320 7 Anna Pankowska - I&E 21 Reprezentacja powiązań wxml powiązanie w XML -zagnieżdżenie elementów <zamowienia> <zamowienie NrZam= 1002 Data= 01.02.2002 Klient= 112 > <pozycja NrPoz= 1 NrProd= 40 Cena= 120 Ilosc= 4 /> <pozycja NrPoz= 2 NrProd= 30 Cena= 156 Ilosc= 2 /> </zamowienie> <zamowienie NrZam= 1003 Data= 03.04.2002 Klient= 113 > <pozycja NrPoz= 1 NrProd= 10 Cena= 320 Ilosc= 7 /> </zamowienie> </zamowienia> Anna Pankowska - I&E 22

Konkretne rozwiązania w oparciu o narzędzie: Microsoft SQL Server 2000 Anna Pankowska - I&E 23 Transformacja danych relacyjnych do XML instrukcja SELECT... FOR XML -trybraw -trybauto -trybexplicit składnia polecenia: SELECT lista_atrybutow FROM tabele_zrodlowe WHERE warunki_wyszukiwania FOR XML RAW AUTO EXPLICIT [, XMLDATA] [, ELEMENST] [, BINARY BASE64] Anna Pankowska - I&E 24

SELECT... FOR XML tryb RAW zapytania w trybie RAW zwracają po jednym elemencie XML dla każdego rekordu tabeli każdy element otrzymuje nazwę row każdy element posiada po jednym atrybucie dla każdego pobranego pola tabeli każdy atrybut nazywa się tak jak pole tabeli Anna Pankowska - I&E 25 SELECT... FOR XML tryb RAW przykład zapytanie: select NrZam, NrProd, Cena from PozycjeZamowien where NrZam = 1002 for xml raw odpowiedz: <row NrZam="1002" NrProd="40" Cena="120.0000"/> <row NrZam="1002" NrProd="30" Cena="156.0000"/> Anna Pankowska - I&E 26

SELECT...FOR XML tryb AUTO każdy element otrzymuje nazwę od nazwy tabeli, z której został wybrany przykład: zapytanie select NrZam, Klient from Zamowienia for xml auto odpowiedz <Zamowienia NrZam="1002" Klient="112"/> <Zamowienia NrZam="1003" Klient="113"/> Anna Pankowska - I&E 27 SELECT...FOR XML tryb AUTO użycie opcji ELEMENTS dane XML zostaną zwrócone w postaci elementów przykład: select NrZam, Klient from Zamowienia zam for xml auto, elements <zam> <NrZam> 1002 </NrZam> <Klient> 112 </Klient> </zam> <zam> <NrZam> 1003 </NrZam> <Klient> 113 </Klient> </zam> Anna Pankowska - I&E 28

SELECT...FOR XML tryb EXPLICIT składnia zapytania jest najbardziej skomplikowana, ale zapewnia największą kontrolę nad powstałym fragmentem XML odpowiedź powstaje w oparciu o tymczasową tabelę uniwersalną,która zawiera po jednej kolumnie dla każdego rodzaju danych oraz kolumny Tag(identyfikuje znacznik XML) i Parent (nadelement) Anna Pankowska - I&E 29 SELECT...FOR XML tryb EXPLICIT sposób zdefiniowania danych narzucają nazwy atrybutów w tabeli uniwersalnej NazwaElementu!NumerZnacznika!NazwaAtrybutu!Dyrektywa dyrektywy: -element -xml -hide - xmltext -cdata - ID, IDREF, IDREFS z opcja XMLDATA Anna Pankowska - I&E 30

SELECT...FOR XML tryb EXPLICIT przykład: select 1 as Tag, null as Parent, nazwisko as [nazwisko!1] from klienci for xml explicit <nazwisko>kowalski</nazwisko> <nazwisko>jaworska</nazwisko> Tag Parent nazwisko!1 ----------- ----------- -------------------- 1 NULL Kowalski 1 NULL Jaworska Anna Pankowska - I&E 31 SELECT...FOR XML tryb EXPLICIT przykład: select 1 as Tag, null as Parent, nr as [klient!1!id], nazwisko as [klient!1], telefon as [klient!1!telefon!element] from klienci for xml explicit <klient Id="112"> Kowalski <telefon>8345035</telefon> </klient> <klient Id="113"> Jaworska <telefon>5343534</telefon> </klient> Tag Parent klient!1!id klient!1 klient!1!telefon!element ----------- ----------- ----------- ----------------- ------------------------ 1 NULL 112 Kowalski 8345035 1 NULL 113 Jaworska 5343534 Anna Pankowska - I&E 32

SELECT...FOR XML tryb EXPLICIT przykład: select 1 as Tag, null as Parent, NrZam as [zamowienie!1!id], Data as [zamowienie!1!data!element], Nazwisko as [zamowienie!1!klient!element] from zamowienia, klienci where zamowienia.klient = klienci.nr for xml explicit <zamowienie id="1002"> <Data> 2002-01-02 </Data> <Klient> Kowalski </Klient> </zamowienie> <zamowienie id="1003"> <Data> 2002-03-04 </Data> <Klient> Jaworska </Klient> </zamowienie> Anna Pankowska - I&E 33 SELECT...FOR XML tryb EXPLICIT przykład: select 1 as tag, null as parent, nazwisko as [Klient!1!nazwisko], null as [zamowienie!2!numer], null as [zamowienie!2!data!element] from klienci where nr = 112 union all select 2 as tag, 1 as parent, nazwisko, nrzam, data from zamowienia, klienci where zamowienia.klient = klienci.nr and nr = 112 for xml explicit <Klient nazwisko="kowalski"> <zamowienie numer="1002"> <data>2002-01-02</data> </zamowienie> <zamowienie numer="1022"> <data>2002-01-12</data> </zamowienie> </Klient> Anna Pankowska - I&E 34

SELECT...FOR XML tryb EXPLICIT przykład: select 1 as tag, null as parent, null as [klienci!1], null as [klient!2], null as [klient!2!id], null as [klient!2!telefon!element] union all select 2 as Tag, 1 as Parent, null, nazwisko, nr, telefon from klienci for xml explicit <klienci> <klient Id="112"> Kowalski <telefon>8345035</telefon> </klient> <klient Id="113"> Jaworska <telefon>5343534</telefon> </klient> </klienci> Anna Pankowska - I&E 35 Podsumowanie zapytania FOR XML pozwalają na elastyczne pobieranie danych relacyjnych z SQL Servera w postaci XML umożliwia to generowanie dokumentów biznesowych wymienianych między firmami dalszym krokiem jest napisanie oprogramowania umożliwiającego połączenie z serwerem bazodanowym i pobranie wynikowych dokumentów XML (ODBC, ADO) Anna Pankowska - I&E 36

Składowanie dokumentów XMLowych w relacyjnej bazie danych przykład firma umożliwia klientom składanie zamówień za pośrednictwem internetu; przesłany dokument jest składowany w bazie danych Anna Pankowska - I&E 37 Przetwarzanie i podział dokumentu XML dokument XML sp_xml_preparedocument tabela select * from OpenXML Anna Pankowska - I&E 38

Przygotowanie dokumentu za pomocą sp_xml_preparedocument declare @idoc int declare @doc varchar(1000) set @doc =' <root> <klient nazwisko="kowalski"> <zamowienia> <numer> 1002 </numer> <numer> 1022 </numer> </zamowienia> </klient> <klient nazwisko="jaworska"> <zamowienia> <numer> 1003 </numer> </zamowienia> </klient> </root>' exec sp_xml_preparedocument @idoc OUTPUT, @doc Anna Pankowska - I&E 39 Generowanie zestawu rekordów za pomocą funkcji OpenXML SELECT * FROM OPENXML (@idoc, '/root/klient',1) WITH ( nazwisko varchar(15)) nazwisko --------------- Kowalski Jaworska Anna Pankowska - I&E 40

Generowanie zestawu rekordów za pomocą funkcji OpenXML SELECT FROM * into ludzie OPENXML (@idoc, '/root/klient/zamowienia',3) WITH ( nazwisko varchar(15) '../@nazwisko', numer int ) nazwisko numer --------------- ----------- Kowalski 1002 Jaworska 1003 Anna Pankowska - I&E 41 Tworzenie tabeli krawędziowej za pomocą funkcji OpenXML SELECT FROM * into ludzie OPENXML (@idoc, 'root') id parentid localname prev text ---- ---------- ------------ -------------------- ---------- 0 NULL root NULL NULL 2 0 klient NULL NULL 3 2 nazwisko NULL NULL 4 2 zamowienia NULL NULL 5 4 numer NULL NULL 6 4 numer 5 NULL 7 0 klient 2 NULL 8 7 nazwisko NULL NULL 9 7 zamowienia NULL NULL 10 9 numer NULL NULL 11 3 #text NULL Kowalski 12 5 #text NULL 1002 13 6 #text NULL 1022 14 8 #text NULL Jaworska 15 10 #text NULL Anna Pankowska - I&E 1003 42