1 / 16

XML + relacyjne bazy danych

XML + relacyjne bazy danych. Krzysztof Kamyczek. Wstep. Można by wyróżnić następujące przypadki stosowania łączenia Relacyjnych Baz Danych z XML-em: Dodanie interfejsu XML do istniejących baz danych (do działających aplikacji).

tierra
Download Presentation

XML + relacyjne bazy danych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML + relacyjne bazy danych Krzysztof Kamyczek

  2. Wstep Można by wyróżnić następujące przypadki stosowania łączenia Relacyjnych Baz Danych z XML-em: • Dodanie interfejsu XML do istniejących baz danych (do działających aplikacji). • Tworzenie nowej aplikacji, projektując ją do działania z relacyjną bazą danych i interfejsem XML-owym.

  3. Komercyjne rozwiązania • Każdy z wielkich producentów baz danych umożliwił w swoim produkcie stosowanie XML-a. Uczynił to IBM w DB2: DB2 XML Extender and DB2 Text Extender; Microsoft w SQL Server 2000; Oracle w Oracle 8i, 9i; a także Informix

  4. Niekomercyjne rozwiązania Dla niekomercyjnych baz danych takich jak PostgreSQL czy MySQL istnieje oprogramowanie pośredniczące pomiędzy bazą a aplikacją kożystającą z XML-a zwane middleware. Middleware komunikuje się z takimi (jak i komercyjnymi) bazami danych przez ODBC, OLE DB lub JDBC. Middleware pozwala na dwukierunkową wymianę danych w postaci XML między dowolną bazą danych wyposażoną w sterownik JDBC, ODBC czy OLE DB a aplikacją. Pozwala także na usuwanie danych z bazy.

  5. Mapowania Kierowane-Szablonowo <?xml version="1.0"?> <FlightInfo> <Wstęp>W następujących lotach są wolne miejsca: </Wstęp> <SelectInstrukcja>SELECT Airline, FltNumber, Depart, Arrive FROM Flights </SelectInstrukcja> <Zakończenie>Mamy nadzieję, że spełnią twoje oczekiwania </Zakończenie> </FlightInfo>

  6. Po przetworzeniu przez middleware transformujący dane <?xml version="1.0"?> <FlightInfo> <Wstęp>W następujących lotach są wolne miejsca:</Wstęp> <Flights> <Row> <Airline>LOT</Airline> <FltNumber>123</FltNumber> <Depart>Dec 12, 1998 13:43</Depart> <Arrive>Dec 13, 1998 01:21</Arrive> </Row> ... </Flights> <Zakończenie>Mamy nadzieję, że spełnią twoje oczekiwania</Zakończenie> </FlightInfo>

  7. Model Tabelowy (ang. Table Model) < bazaDanych > <tabela> <wiersz> <kolumna1>...</kolumna1> <kolumna2>...</kolumna2> ... </wiersz> ... </tabela> ... </ bazaDanych >

  8. Przykład mapowania z użyciem modelu obiektów określających dane <Zamówienia> <ZamówienieHandlowe ZHNumer="12345"> <Klient KlientNumer="543"> <KlientNazwa>F.U.H ABC</KlientNazwa> <Ulica>Kosciuszki 1</Ulica> <Miasto>Kraków</Miasto> <Województwo>Małopolskie</Województwo> <KodPocztowy>30-071</KodPocztowy> </Klient> <DataZamówienia>981215</DataZamówienia> <Linia LiniaNumer="1"> <Towar TowarNumer="123"> <Opis> <P><B>Klucz francuski:</B><BR /> Nierdzewna stal, odlany w jednym kawałku, dożywotnia gwarancja.</P> </Opis> <Cena>9.95</Cena> </Towar> <ilość>10</ilość> </Linia> <Linia LiniaNumer="2"> <Towar TowarNumer="456"> <Opis> <P><B>Nożyce do blachy:<B><BR /> Stal hartowana, rok gwarancji.</P> </Opis> <Cena>13.27</Cena> </Towar> <ilość>5</ilość> </Linia> </ZamówienieHandlowe> </Zamówienia>

  9. Oprogramowanie pośredniczące (ang. middleware) ADO Developer: Microsoft URL: http://msdn.microsoft.com/xml/articles/xmlintegrationinado.asp Licencja: Komercyjna Typ bazy danych: Relacyjna (OLE DB, ODBC) Kierunki przekształceń: baza danych XML, XML baza danych. Środowisko/Platforma: Windows.

  10. DB2XML Developer: Volker Turau URL: http://www.informatik.fh-wiesbaden.de/~turau/DB2XML/index.html Licencja: Open Source Typ bazy danych: Relacyjne (JDBC) Kierunki przekształceń: baza danych XML Środowisko/Platforma: Java

  11. iConnector Developer: infoteria URL: http://www.infoteria.com/en/contents/product/xml-s-c/index.html Licencja: Komercyjna Typ bazy danych: Relacyjne (ODBC), Lotus Notes/Domino Kierunki przekształceń: Baza danych XML, XML Baza danych Środowisko/Platforma: Windows (COM lub Windows service), Java.

  12. ODBC2XML Developer: Intelligent Systems Research URL: http://members.xoom.com/gvaughan/odbc2xml.htm Licencja: Shareware Typ bazy danych: Relacyjne (ODBC) Kierunki przekształceń: Baza danych XML Środowisko/Platforma: wykonywalny program Windows 32 lub DLL.

  13. Przykład współpracy z Postgresem Utwórzmy tabelę ``Pogoda'': create table Pogoda(dzien int, stan varchar(25)); insert into Pogoda(dzien, stan) values (1, 'sloneczna'); insert into Pogoda(dzien, stan) values (2, 'pochmurnie'); insert into Pogoda(dzien, stan) values (3, 'leje');

  14. import java.sql.*; import java.math.*; import oracle.xml.sql.query.*; import java.sql.*; public class smplPstgrs { //======================================== // main() - public static void public static void main(String args[]) throws SQLException { // --------- Postgre JDBC Driver DriverManager.registerDriver(new org.postgresql.Driver()); // --------- Postgre JDBC connection String user = "NazwaUżytkownika"; String password = "Hasło"; String tabName = "Pogoda"; Connection conn = DriverManager.getConnection("jdbc:postgresql://URLSerwera/NazwaBD", user, password);

  15. //tworzone jest zapytanie, następnie jest ono wykonywane, rezultat będzie //przechowywany w obiekcie ResultSet Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery("select * from "+tabName ); /* zainicjowanie OracleXMLQuery. Należy zauważyć, że można podać zapis kwerendy sql zamiast obiektu ResultSet */ OracleXMLQuery qry = new OracleXMLQuery(conn,rset); // określenie kształtu generowanego dokumentu XML qry.setRowsetTag("ZAPIS_POGODY"); // set the tags encapsulating the whole doc qry.setRowTag("RECORD"); // sets the row separator tag qry.setRowIdAttrName("NRdnia"); // sets the id attribute of the row element qry.useUpperCaseTagNames(); // use upper case tag names qry.setErrorTag("ERR"); // tag for errors writen to XML doc // Wydobycie dokumentu XML w postaci tekstu String xmlString = qry.getXMLString(); // Wydrukowanie rezultatu System.out.println(xmlString); } }

  16. Wynik Aplikacja wygeneruje następujący dokument XML: <?xml version = '1.0'?> <ZAPIS_POGODY> <REKORD NRDNIA="1"> <DZIEN>1</DZIEN> <STAN>sloneczna</STAN> </REKORD> <REKORD NRDNIA="2"> <DZIEN>2</DZIEN> <STAN>pochmurnie</STAN> </REKORD> <REKORD NRDNIA="3"> <DZIEN>3</DZIEN> <STAN>leje</STAN> </REKORD> </ZAPIS_POGODY>

More Related