Typ danych XMLType. Marek Wojciechowski.
|
|
- Jan Przybysław Nawrocki
- 8 lat temu
- Przeglądów:
Transkrypt
1 260 Typ danych XMLType Marek Wojciechowski
2 Podejścia do składowania danych XML w bazie danych 261 Rozkład dokumentu XML poza bazą danych, a następnie składowanie danych w postaci wierszy jednej lub wielu tabel SZBD nie wie, że przetwarza dane XML Składowanie dokumentów XML w kolumnie typu CLOB lub VARCHAR SZBD nie wie, że przetwarza dane XML Istnieje możliwość przetwarzania XML programowo z użyciem XDK Składowanie dokumentów XML w postaci wystąpień typu XMLType SZBD jest świadomy, że przetwarza dane XML, co umożliwia mu efektywne ich przetwarzanie
3 262 XMLType Nowy typ danych dodany w Oracle9iR1 oferujący wewnętrzne mechanizmy przetwarzania danych XML w bazie danych Wystąpienia typu XMLType reprezentują dokumenty XML w SQL XMLType może być również używany w PL/SQL Interfejs typu XMLType zawiera metody do manipulacji zawartością XML Fukcjonalność typu XMLType jest dostępna z języków PL/SQL i Java poprzez API XMLType może być składowany na dwa sposoby: Jako duży obiekt: CLOB (domyślnie) W postaci strukturalnej: zdekomponowany do tabel
4 263 Kiedy używać XMLType? Gdy istnieje konieczność kierowania zapytań do dokumentów XML lub ich części W celu zagwarantowania, że przetwarzane dane tekstowe rzeczywiście maja postać XML (kontrola typu) Dla zwiększenia wydajności ewaluacji wyrażeń XPath Aby umożliwić zakładanie indeksów na wyrażeniach XPath Aby odseparować aplikacje od szczegółów dotyczących składowania dokumentów XML w bazie danych
5 264 Tabele i kolumny typu XMLType Dokumenty XML mogą być składowane w postaci wystąpień typu XMLType: W kolumnach typu XMLType W tabelach typu XMLType CREATE TABLE produkty_xml ( kod NUMBER(11), opis XMLType ) / CREATE TABLE ksiazki_xml OF XMLType /
6 265 XMLType w poleceniach SQL (1) Obiekt typu XMLType można utworzyć z danych typu VARCHAR lub CLOB konstruktorem XMLType() lub statyczną metodą XMLType.createXML() INSERT INTO produkty_xml VALUES ( , XMLType('<produkt> <nazwa>antena dachowa</nazwa> <symbol> </symbol> <cena>85</cena> </produkt>')); SQL> select opis from produkty_xml; OPIS <produkt> <nazwa>antena dachowa</nazwa> <symbol> </symbol> <cena>85</cena> </produkt> odczyt jako VARCHAR SELECT p.opis.getstringval() FROM produkty_xml p WHERE kod = ; SELECT p.opis.getclobval() FROM produkty_xml p WHERE kod = ; odczyt jako CLOB
7 266 XMLType w poleceniach SQL (2) Operacje na całych obiektach typu XMLType realizowane są tradycyjnymi poleceniami SQL UPDATE produkty_xml SET opis = XMLType('<produkt> <nazwa>antena dachowa</nazwa> <symbol> </symbol> <cena>100</cena> </produkt>') WHERE kod = ; DELETE FROM produkty_xml WHERE kod = ;
8 Tworzenie wartości XMLType funkcjami SQLX 267 Dokumenty XML, które maja być umieszczone w kolumnach/tabelach typu XMLType można tworzyć funkcjami SQLX Wartością XMLType może stać się element, a nie las elementów (!) INSERT INTO produkty_xml SELECT kod, XMLElement(NAME "produkt", XMLForest(nazwa "nazwa", symbol "symbol", cena "cena") ) FROM produkty_sql;
9 268 Ładowanie pliku XML do kolumny XMLType CREATE TABLE myxml (doc_id NUMBER(6), doc XMLType); CREATE DIRECTORY xmldir AS '/oracle'; -- wymagane uprawnienie "CREATE ANY DIRECTORY" Plik: /oracle/merlin.xml DECLARE xmldoc CLOB; file BFILE; BEGIN dbms_lob.createtemporary(xmldoc,true); file := BFileName('XMLDIR','merlin.xml'); dbms_lob.fileopen(file); dbms_lob.loadfromfile(xmldoc, file, dbms_lob.getlength(file)); INSERT INTO myxml VALUES (1, XMLType.createxml(xmldoc)); dbms_lob.fileclose(file); END;
10 269 Funkcje SQL operujące na danych XMLType existsnode() extract() extractvalue() updatexml() XMLSequence() XMLTransform() Uwaga: Wiele funkcji operujących na XMLType jest dostępnych jako funkcje SQL i jako metody typu XMLType
11 270 Funkcja existsnode() (1) Sprawdza czy wartościowanie danego wyrażenia XPath względem wartości XMLType zwraca choć jeden element lub węzeł tekstowy Zwraca wartość liczbową 1 lub 0 SELECT p.kod FROM produkty_xml p WHERE p.opis.existsnode('/produkt[cena=85]') = 1; SELECT kod FROM produkty_xml WHERE existsnode(opis, '/produkt[cena=85]') = 1; DELETE FROM produkty_xml p WHERE p.opis.existsnode('/produkt[cena=85]') = 1;
12 271 Funkcja existsnode() (2) Odczyt wartości XMLType z tabeli typu XMLType SQL> SELECT value(p) 2 FROM ksiazki_xml p 3 WHERE p.existsnode('//cena[text()="109"]') = 1; VALUE(P) <ksiazka isbn=" x"> <tytul>xml. Księga eksperta</tytul> <cena>109</cena> <autorzy> <autor>elliotte Rusty Harold</autor> </autorzy> <wydawnictwo>helion</wydawnictwo> <rok>2000</rok> </ksiazka>
13 272 Funkcja existsnode() (3) Odczyt wartości XMLType jako VARCHAR SQL> SELECT p.getstringval() 2 FROM ksiazki_xml p 3 WHERE p.existsnode('/ksiazka[cena=109]') = 1; P.GETSTRINGVAL() <ksiazka isbn=" x"> <tytul>xml. Księga eksperta</tytul> <cena>109</cena> <autorzy> <autor>elliotte Rusty Harold</autor> </autorzy> <wydawnictwo>helion</wydawnictwo> <rok>2000</rok> </ksiazka>
14 273 Funkcja extract() Zwraca fragment wskazany wyrażeniem XPath jako: Pojedynczy węzeł Zbiór węzłów Wartość tekstową Gdy XPath zwraca zbiór pusty, wynikiem extract() jest NULL SQL> SELECT p.extract('//autor') 2 FROM ksiazki_xml p; P.EXTRACT('//AUTOR') <autor>stephen Forte</autor> <autor>thomas Howe</autor> <autor>kurt Wall</autor> Autorzy pierwszej książki <autor>paul Cassel</autor> <autor>craig Eddy</autor> <autor>jon Price</autor> Autorzy drugiej książki...
15 274 Funkcja extractvalue() Zwraca wartość skalarną odpowiadającą wynikowi wartościowania wyrażenia XPath Może zastąpić konstrukcję extract().getstringval()/getnumberval() SQL> SELECT extractvalue(value(p), '//cena/text()') 2 FROM ksiazki_xml p; EXTRACTVALUE(VALUE(P),'//CENA/TEXT()') SQL> SELECT extract(value(p), '//cena/text()').getnumberval() 2 FROM ksiazki_xml p; EXTRACT(VALUE(P),'//CENA/TEXT()').GETNUMBERVAL()
16 275 Funkcja updatexml() Modyfikuje wybrane węzły w obiekcie XMLType Działa na instancjach XMLType w pamięci Np. na tymczasowych obiektach tworzonych w pamięci w ramach przetwarzania zapytań Modyfikacje w bazie danych dokonywane poleceniem UPDATE Podając wartości w klauzuli SET można wykorzystać funkcję updatexml() Operacja na tymczasowym obiekcie UPDATE ksiazki_xml p SET VALUE(p) = updatexml(value(p), '//cena/text()', '56', '//rok/text()', 2003) WHERE extractvalue(value(p), '/ksiazka/@isbn')=' x' Obiekt w bazie danych jest "podmieniany" w całości
17 276 updatexml() - Wielokrotna modyfikacja Jako argumenty updatexml() można podać kilka par: wyrażenie XPath, wartość Umożliwia to modyfikację kilku węzłów w jednej operacji Dopuszczalne jest również zmodyfikowanie tego samego węzła kilkukrotnie: Wyrażenia XPath wartościowane od lewej do prawej Każde kolejne wyrażenie XPath działa na wynikach poprzedniego UPDATE ksiazki_xml p SET VALUE(p) = updatexml(value(p), '//cena/text()', '56', '//ksiazka/rok/text()', 2004) WHERE extractvalue(value(p), '/ksiazka/@isbn')=' x'; UPDATE ksiazki_xml p SET VALUE(p) = updatexml(value(p), '//cena/text()', '56', '//ksiazka/rok', XMLType.createxml('<rok>2054</rok>')) WHERE extractvalue(value(p), '/ksiazka/@isbn')=' x'
18 updatexml() w zapytaniach i perspektywach 277 SQL> SELECT updatexml(value(p), '//cena/text()', 0) 2 FROM ksiazki_xml p 3 WHERE extractvalue(value(p), '/ksiazka/@isbn')=' x'; UPDATEXML(VALUE(P),'//CENA/TEXT()',0) <ksiazka isbn=" x"> <tytul>dane w sieci WWW</tytul> <cena>0</cena>... </ksiazka> SQL> SELECT updatexml(value(p), '//cena/text()', NULL) 2 FROM ksiazki_xml p 3 WHERE extractvalue(value(p), '/ksiazka/@isbn')=' x'; UPDATEXML(VALUE(P),'//CENA/TEXT()',NULL) <ksiazka isbn=" x"> <tytul>dane w sieci WWW</tytul> <cena/>... </ksiazka> CREATE VIEW ksiazki_za_darmo OF XMLType AS SELECT...
19 278 Indeksy funkcyjne na XMLType W celu skrócenia czasu odpowiedzi dla zapytań dotyczących wartości XMLType można założyć indeksy: Funkcyjne: w oparciu o funkcje extract(), existsnode(),... Indeksy Oracle Text Utworzenie indeksu funkcyjnego CREATE INDEX autor_idx ON ksiazki_xml p (p.extract('//autor').getstringval()) / Utworzenie bitmapowego indeksu funkcyjnego CREATE BITMAP INDEX czy_autorzy_idx ON ksiazki_xml p (p.existsnode('//autor')) /
20 279 XMLType w języku PL/SQL DECLARE ks_xml XMLType; cena NUMBER; BEGIN SELECT VALUE(p) INTO ks_xml FROM ksiazki_xml p WHERE extractvalue(value(p), '/ksiazka/@isbn')=' x'; END; / cena := ks_xml.extract('//cena/text()').getnumberval(); dbms_output.put_line('cena: ' cena);
21 280 Funkcja XMLSequence() (1) Rozbija pojedynczą wartość typu XMLType na kolekcję (VARRAY) wartości XMLType SQL> SELECT XMLSequence(extract(VALUE(p), 2 '/ksiazka/autorzy/autor')) 3 FROM ksiazki_xml p 4 WHERE extractvalue(value(p), '//@isbn')=' ' 5 / XMLSEQUENCE(EXTRACT(VALUE(P),'/KSIAZKA/AUTORZY/AUTOR')) XMLSEQUENCETYPE(XMLTYPE(<autor>Stephen Forte</autor> ), XMLTYPE(<autor>Thomas Howe</autor> ), XMLTYPE(<autor>Kurt Wall</autor> )) Wynikiem zapytania jest jeden rekord zawierający kolekcję VARRAY typu XMLSequenceType
22 281 Funkcja XMLSequence() (2) Dostęp do poszczególnych elementów kolekcji zwróconej przez XMLSequence() można uzyskać za pomocą funkcji TABLE() SQL> SELECT VALUE(t) 2 FROM TABLE(SELECT XMLSequence(extract(VALUE(p), 3 '/ksiazka/autorzy/autor')) 4 FROM ksiazki_xml p 5 WHERE extractvalue(value(p), '//@isbn')=' ') t 6 / VALUE(T) <autor>stephen Forte</autor> <autor>thomas Howe</autor> <autor>kurt Wall</autor> Poszczególne elementy kolekcji stanowią oddzielne rekordy wyniku zapytania
23 282 Funkcja XMLTransform() (1) Dokonuje transformacji dokumentu XML w oparciu o podany arkusz stylów XSL Zarówno dokument źródłowy jak i arkusz stylów przekazane są jako argumenty typu XMLType Wynikiem jest przekształcony dokument typu XMLType SELECT XMLTransform(z.cv, (SELECT arkusz_stylow FROM arkusze_xsl WHERE arkusz_id = 1) ).getstringval() FROM zyciorysy z;
24 Funkcja XMLTransform() (2) 283 CREATE OR REPLACE PROCEDURE cennik_html AS html_doc VARCHAR2(2000); BEGIN SELECT XMLTransform(XMLType(' <?xml version="1.0" encoding="windows-1250"?> <?xml-stylesheet type="text/xsl" href="produkty.xsl"?> <cennik> <produkt kod=" "><nazwa>antena dachowa</nazwa> <symbol> </symbol><cena>85</cena></produkt> <produkt kod=" "><nazwa>radioodtwarzacz CAR 2001</nazwa> <symbol> </symbol><cena>525</cena></produkt> </cennik>'), XMLType('<?xml version="1.0" encoding="windows-1250"?> <xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:template match="cennik"> <HTML><BODY><H1>Cennik akcesoriów</h1> <xsl:for-each select="produkt"> <B><xsl:value-of select="nazwa"/></b> - <I><xsl:value-of select="cena"/></i> PLN <BR/> </xsl:for-each> </BODY></HTML> </xsl:template> </xsl:stylesheet>')).getstringval() INTO html_doc FROM dual; htp.print(html_doc); END; / Funkcję XMLTransform() można wykorzystać w procedurach PL/SQL, wywoływanych przez serwer WWW (za pośrednictwem mod_plsql)
25 284 Sposoby składowania danych XMLType W dużych obiektach (LOB) W Oracle9iR2 tylko CLOB (duży obiekt znakowy) Dokumenty składowane w całości (jak w plikach) Składowanie z zachowaniem "białych znaków" Domyślny sposób składowania przy tworzeniu tabel/kolumn typu XMLType bez podania schematu XML Schema W postaci strukturalnej (w tabelach) Dokumenty pamiętane w postaci zdekomponowanej Mechanizm oparty o typy obiektowe, uzupełniony o składowanie informacji potrzebnych do zachowania DOM
26 Porównanie sposobów składowania 285 Elastyczność przy zmianach schematu Zachowanie źródłowej postaci Wydajność DML Stopień dostępności technik SQL (indeksy, ograniczenia,...) Wymagana przestrzeń LOB (+) Duża (+) Pełne (-) Średnia (-) Ograniczony (-) Duża Strukturalne (-) Ograniczona (-) Na poziomie DOM (+) Duża (+) Duży (+) Może być mniejsza Jako CLOB odpowiednie gdy: Dane o słabej strukturze Operowanie całymi dokumentami Konieczne zachowanie postaci źródłowej "bajt po bajcie" Strukturalne odpowiednie gdy: Dane o silnej strukturze Operowanie na fragmentach dokumentów Wymagana walidacja dokumentów
27 Wsparcie dla XML Schema w Oracle XML DB 286 Rejestrowanie w bazie danych schematów zgodnych z rekomendacją W3C Z podziałem na lokalne (użytkownika) i globalne Z możliwością korzystania ze schematów innego użytkownika Walidacja dokumentów w oparciu o schematy XML Automatyczna generacja sposobu mapowania schematu XML w schemat obiektowo-relacyjny Tworzenie tabel/kolumn typu XMLType opartych na schematach Efektywne operacje DML i zapytania na na danych XMLType opartych o schemat Obsługa dokumentów opartych o schematy w Oracle XML DB Repository (dostęp FTP, HTTP/WebDav)
28 Rejestracja schematu XML w bazie danych 287 Przed wykorzystaniem schematu w bazie danych należy go zarejestrować Do tego celu służy procedura DBMS_XMLSCHEMA.registerSchema() Nazwa/URL schematu służąca do jego identyfikacji Treść schematu jako tekst, XMLType lub URI schematu DBMS_XMLSCHEMA.registerSchema('ksiazka.xsd', '<xs:schema xmlns:xs=" <xs:element name="ksiazka"> <xs:complextype> <xs:sequence> <xs:element name="tytul" type="xs:string"/> <xs:element name="cena" type="xs:float"/> <xs:element name="autorzy" minoccurs="0" maxoccurs="1"> <xs:complextype> <xs:sequence> <xs:element name="autor" type="xs:string" minoccurs="1" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:element> <xs:element name="wydawnictwo" type="xs:string"/> <xs:element name="rok" type="xs:integer"/> </xs:sequence> <xs:attribute name="isbn" type="xs:string"/> </xs:complextype> </xs:element> </xs:schema> ');
29 288 Schematy lokalne i globalne Schemat XML może być zarejestrowany jako: Schemat lokalny Domyślnie widziany tylko przez właściciela Referencja do dokumentu zawierającego schemat umieszczana w Oracle XML DB Repository w katalogu /sys/schemas/<username> np. /sys/schemas/scott/ (dla schematu o URL " Schemat globalny Widziany przez wszystkich użytkowników Tworzony przez uprzywilejowanego uzytkownika Referencja do dokumentu zawierającego schemat umieszczana w Oracle XML DB Repository w katalogu /sys/schemas/public np. /sys/schemas/public/ Sposób rejestracji schematu zależy od trzeciego parametru procedury DBMS_XMLSCHEMA.registerSchema() procedure registerschema(schemaurl IN varchar2,schemadoc IN VARCHAR2,local IN BOOLEAN := TRUE,...)
30 289 Rejestracja schematu XML: Infrastruktura Proces rejestracji schematu XML w bazie danych obejmuje operacje wykonywane niejawnie przez Oracle, mające na celu przygotowanie infrastruktury do składowania dokumentów XML zgodnych ze schematem oraz ich przetwarzania: Utworzenie obiektowych typów SQL umożliwiających składowanie dokumentów XML w postaci strukturalnej (obiektowo-relacyjnej) Utworzenie domyślnych tabel dla głównych elementów schematu
31 Typy obiektowe tworzone przy składowaniu obiektowo-relacyjnym 290 Przy rejestrowaniu schematów Oracle domyślnie tworzy typy obiektowe automatycznie generując nazwy typów obiektowych, atrybutów i dobierając typy proste zgodnie z domyślnym mapowaniem typów danych XML Schema w typy SQL Rejestrując schemat można jawnie podać: Nazwę tworzonego typu obiektowego Nazwy atrybutów typu obiektowego odpowiadające elementom XML Typ danych SQL dla typów prostych np. dla float domyślnie NUMBER, inne zgodne: FLOAT, DOUBLE Domyślne mapowanie "nadpisuje się" za pomocą specjalnych, specyficznych dla Oracle, znaczników w schemacie XML Schema
32 Specyfikacja mapowania do SQL w schemacie XML - Przykład 291 DBMS_XMLSCHEMA.registerSchema('ksiazka.xsd', '<xs:schema xmlns:xs=" xmlns:xdb=" <xs:element name="ksiazka" xdb:sqltype="ksiazka_t"> <xs:complextype> <xs:sequence> <xs:element name="tytul" type="xs:string"/> <xs:element name="cena" type="xs:float" xdb:sqlname="cena" xdb:sqltype="float"/> <xs:element name="autorzy" minoccurs="0" maxoccurs="1" xdb:sqltype="clob"> <xs:complextype> <xs:sequence> <xs:element name="autor" type="xs:string" minoccurs="1" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:element> <xs:element name="wydawnictwo" type="xs:string"/> <xs:element name="rok" type="xs:integer"/> </xs:sequence> <xs:attribute name="isbn" type="xs:string"/> </xs:complextype> </xs:element> </xs:schema> '); SQL> desc KSIAZKA_T KSIAZKA_T is NOT FINAL Nazwa Wartość NULL? Typ SYS_XDBPD$ XDB.XDB$RAW_LIST_T isbn VARCHAR2(4000) tytul VARCHAR2(4000) CENA FLOAT(126) autorzy CLOB wydawnictwo VARCHAR2(4000) rok NUMBER(38)
33 292 Usunięcie schematu XML z bazy danych Do usunięcia zarejestrowanego schematu służy procedura DBMS_XMLSCHEMA.deleteSchema() Możliwe tryby usuwania schematu: DELETE_RESTRICT - usunięcie schematu nie powiedzie się gdy istnieją obiekty do niego się odwołujące DELETE_INVALIDATE usuwa schemat i zmienia status obiektów zależnych na INVALID DELETE_CASCADE usuwa schemat i jego domyślne typy i tabele, ale nie usunie schematu gdy istnieją powiązane z nim instancje XMLType DELETE_CASCADE_FORCE jak wyżej, ale nie sprawdza czy istnieją instancje XMLType powiązane ze schematem, ignoruje wszelkie błędy DBMS_XMLSCHEMA.deleteSchema('schemat1.xsd') DBMS_XMLSCHEMA.deleteSchema('schemat2.xsd', DBMS_XMLSCHEMA.DELETE_CASCADE_FORCE)
34 Automatyczna generacja schematu z typu obiektowego 293 Dla typu obiektowego można automatycznie wygenerować schemat w oparciu o domyślne reguły mapowania CREATE TYPE Employee AS OBJECT ( empno NUMBER(10), ename VARCHAR2(200), sal NUMBER(8,2) ); SQL> SELECT DBMS_XMLSCHEMA.generateSchema('SCOTT', 'EMPLOYEE') FROM dual; DBMS_XMLSCHEMA.GENERATESCHEMA('SCOTT','EMPLOYEE') <xsd:schema targetnamespace=" xmlns=" xmlns:xsd=" xmlns:xdb=" xmlns:xsi=" xsi:schemalocation=" <xsd:element name="employee" type="employeetype" xdb:sqltype="employee" xdb:sqlschema="scott"/> <xsd:complextype name="employeetype"> <xsd:sequence> <xsd:element name="empno" type="xsd:double" xdb:sqlname="empno" xdb:sqltype="number"/> <xsd:element name="ename" type="xsd:string" xdb:sqlname="ename" xdb:sqltype="varchar2"/> <xsd:element name="sal" type="xsd:double" xdb:sqlname="sal" xdb:sqltype="number"/> </xsd:sequence> </xsd:complextype> </xsd:schema>
35 294 Wykorzystanie schematu w XMLType (1) W oparciu o zarejestrowany schemat można tworzyć tabele, perspektywy i kolumny typu XMLType Wskazując żądany schemat należy podać: URL schematu, pod którym został zarejestrowany Wybrany element główny (ang. root element) CREATE TABLE ksiazki_xsd OF XMLType XMLSCHEMA "ksiazka.xsd" ELEMENT "ksiazka"; CREATE TABLE ksiazki_xsd OF XMLType ELEMENT "ksiazka.xsd#ksiazka"; CREATE TABLE ksiazki_col_xsd (id NUMBER, pozycja XMLType ) XMLTYPE COLUMN pozycja XMLSCHEMA "ksiazka.xsd" ELEMENT "ksiazka"; Skrócony zapis w notacji XPointer
36 295 Wykorzystanie schematu w XMLType (2) Przy wstawianiu danych XMLType do tabel opartych o schemat następuje walidacja dokumentu Metoda statyczna, działa podobnie do konstruktora XMLType(), który również mógłby tu wystąpić INSERT INTO ksiazki_xsd VALUES(XMLType.createXML('<ksiazka xmlns:xsi=" xsi:nonamespaceschemalocation="ksiazka.xsd" isbn=" "> <tytul>access Projektowanie baz danych. Księga eksperta</tytul> <cena>79</cena> <autorzy> <autor>stephen Forte</autor> <autor>thomas Howe</autor> <autor>kurt Wall</autor> </autorzy> <wydawnictwo>helion</wydawnictwo> <rok>2002</rok> </ksiazka>')); Błąd przy walidacji w oparciu o schemat SQL> INSERT INTO ksiazki_xsd 2 VALUES(XMLType.createXML('<a>well-formed document</a>')); INSERT INTO ksiazki_xsd * BŁĄD w linii 1: ORA-19007: Schema and element do not match
37 Składowanie danych XMLType opartych o schemat 296 Domyślnie dane XMLType oparte o schemat są składowane w kolumnach typów obiektowych Przy tworzeniu tabeli można jawnie wyspecyfikować sposób składowania w klauzuli XMLTYPE STORE AS OBJECT RELATIONAL (tylko gdy w połączeniu ze schematem!) CLOB CREATE TABLE ksiazki_clob_xsd OF XMLType XMLTYPE STORE AS CLOB XMLSCHEMA "ksiazka.xsd" ELEMENT "ksiazka"; CREATE TABLE ksiazki_col_xsd (id NUMBER, pozycja XMLType ) XMLTYPE COLUMN pozycja STORE AS CLOB; CREATE TABLE ksiazki_or OF XMLType XMLTYPE STORE AS OBJECT RELATIONAL XMLSCHEMA "ksiazka.xsd" ELEMENT "ksiazka"; Domyślnie CREATE TABLE ksiazki_clob OF XMLType XMLTYPE STORE AS OBJECT RELATIONAL; CREATE TABLE ksiazki_clob OF XMLType XMLTYPE STORE AS CLOB;
38 Dostęp do kolumn obiektowych przy składowaniu obiektowo-relacyjnym 297 Bezpośredni dostęp do kolumn obiektowych, w których składowane są dane instancji XMLType jest możliwy poprzez pseudoatrybut XMLDATA SQL> SELECT p.xmldata."tytul" FROM ksiazki_xsd p; XMLDATA.tytul Access Projektowanie baz danych. Księga eksperta Access 2002/XP PL dla każdego ASP.NET. Vademecum profesjonalisty Notacja obiektowa Notacja XML SQL> SELECT extractvalue(value(p), '/ksiazka/tytul') FROM ksiazki_xsd p; EXTRACTVALUE(VALUE(P),'/KSIAZKA/TYTUL') Access Projektowanie baz danych. Księga eksperta Access 2002/XP PL dla każdego ASP.NET. Vademecum profesjonalisty
39 Indeksy na kolumnach obiektowych przy składowaniu obiektowo-relacyjnym 298 Zakładając indeks na kolumnie obiektowej można stosować notację obiektową lub notację XML przy wyborze indeksowanych kolumn Niezależnie od notacji założony zostanie indeks na kolumnie obiektowej (a nie indeks funkcyjny) CREATE INDEX index_1 ON ksiazki_xsd(xmldata."rok"); Indeksy na tej samej kolumnie (nie mogą istnieć jednocześnie) CREATE INDEX index_2 ON ksiazki_xsd p (extractvalue(value(p), '/ksiazka/rok'));
40 Ograniczenia integralnościowe przy składowaniu obiektowo-relacyjnym 299 Dostęp do kolumn obiektowych przy składowaniu obiektowo-relacyjnym umożliwia zakładanie tradycyjnych ograniczeń integralnościowych (PRIMARY KEY, UNIQUE,...) na tych kolumnach Ograniczenia na poziomie kolumn obiektowych, w których składowane są po dekompozycji dane XMLType, skutkują w ograniczeniach na poziomie dokumentów XML ALTER TABLE ksiazki_xsd ADD CONSTRAINT ksiazki_pk PRIMARY KEY (XMLDATA."isbn");
41 300 Przepisywanie zapytań Gdy obiekty XMLType są przechowywane w postaci strukturalnej, wtedy niektóre zapytania wykorzystujące wyrażenia XPath w funkcjach existsnode(), extract(), extractvalue() i updatexml() są przepisywane na zapytania operujące na tabelach i kolumnach źródłowych Przepisywanie zapytań odbywa się automatycznie Przepisywanie zapytań umożliwia wykorzystanie klasycznych technik indeksowania danych (np. B+ drzewo)
42 301 Przepisywanie zapytań - przykład Zapytanie: SELECT VALUE(k) FROM katalog k WHERE extractvalue(value(k),'/katalog/ksiazka/rok ) = '2002'; zostanie automatycznie przepisane do postaci: SELECT VALUE(k) FROM katalog k WHERE k.xmldata.ksiazka.rok = '2002';
43 302 Warunki przepisywania zapytań Przepisywaniu podlegają zapytania wykorzystujące następujące rodzaje wyrażeń XPath: ścieżki prowadzące przez elementy potomne i atrybuty, np. /katalog/ksiazka/@isbn ścieżki zawierające predykaty, np. /katalog/ksiazka[rok='2002'] ścieżki zawierające indeksy tablic, np. /katalog/ksiazka[1] Przepisywaniu nie podlegają m.in. funkcje XPath, wyrażenia zawierające specyfikatory współrzędnych inne niż child i attribute, ścieżki zawierające *
44 303 Przepisywanie predykatów - przykład Wyrażenie: /katalog/ksiazka[rok=2002 and wydawnictwo='mikom'] zostanie przepisane do postaci: (XMLData."rok" = 2002 and XMLData."wydawnictwo" = "Mikom") Wyrażenie: /katalog/ksiazka[autorzy/autor = 'Serge Abiteboul'] zostanie przepisane do postaci: EXISTS ( SELECT null FROM TABLE (XMLDATA."autorzy") x WHERE x."autor" = 'Serge Abiteboul' )
45 304 Przepisywanie ścieżek grupowych - przykład Zapytanie: SELECT extract(value(m), /katalog/ksiazka[cena>50]/tytul ) FROM myxml m; zostanie przepisane do postaci: SELECT (SELECT XMLAgg( XMLForest(x."tytul" AS "tytul")) FROM TABLE (XMLData."ksiazka") x WHERE x."cena" > 50 ) FROM katalog_tab;
46 305 Walidacja obiektów XMLType Podczas umieszczania obiektu XMLType w tabeli, następuje automatyczne sprawdzenie, czy dokument XML jest dobrze uformowany Jeżeli tabela jest oparta na schemacie XML, to następuje uproszczone sprawdzenie składni wprowadzanego dokumentu XML Pełna walidacja obiektów XMLType jest możliwa przy wykorzystaniu dodatkowych funkcji SQL i XMLType API
47 306 Funkcje walidacji dla XMLType Operator XMLIsValid() sprawdza, czy podany dokument spełnia wskazany schemat XML, Metoda schemavalidate() sprawdza, czy podany dokument spełnia schemat XML, który jest związany z tabelą, w której znajduje się ten dokument; po pomyślnej walidacji, status dokumentu zmienia się na VALIDATED Metoda isschemavalidated() zwraca informację, czy podany dokument XML był już walidowany Metoda setschemavalidated() ustawia dokumentowi status VALIDATED, jednak nie dokonuje faktycznej walidacji Metoda isschemavalid() sprawdza, czy podany dokument spełnia wskazany schemat XML; nie zmienia statusu dokumentu
48 307 Przykład wykorzystania funkcji walidacji CREATE TRIGGER mtrig BEFORE INSERT OR UPDATE ON myxml FOR EACH ROW DECLARE newxml xmltype; BEGIN newxml := :new.sys_nc_rowinfo$; xmltype.schemavalidate(newxml); END; Próba umieszczenia w tabeli myxml dokumentu, który nie spełnia schematu XML związanego z tą tabelą, zakończy się zgłoszeniem błędu.
49 308 Perspektywy XMLType Perspektywy XMLType są perspektywami budowanymi ponad tabelami obiektowo-relacyjnymi, a zwracającymi obiekty XMLType Perspektywy XMLType umożliwiają przezroczystą prezentację istniejących danych relacyjnych w formacie XML Perspektywy XML mogą być definiowane przy użyciu schematów XML
50 309 Perspektywy XML - Przykład 1 CREATE VIEW emp_xml_view (doc) AS SELECT XMLElement(NAME "EMPLOYEE", XMLForest(ename, job, sal)) FROM emp; SELECT doc FROM emp_xml_view v WHERE v.doc.existsnode('/employee[sal>2900]')=1 DOC <EMPLOYEE> <ENAME>JONES</ENAME> <JOB>MANAGER</JOB> <SAL>2975</SAL> </EMPLOYEE> <EMPLOYEE> <ENAME>SCOTT</ENAME> <JOB>ANALYST</JOB> <SAL>3000</SAL> </EMPLOYEE>...
51 310 Perspektywy XML - Przykład 2 CREATE VIEW emp_xml_view2 OF XMLType WITH OBJECT ID (extract(sys_nc_rowinfo$,'/employee/@empid').getnumberval()) AS SELECT XMLElement(NAME "EMPLOYEE", XMLAttributes("EMPNO"), XMLForest(ename, job, sal)) FROM emp; SELECT VALUE(p) FROM emp_xml_view2 p WHERE p.existsnode('/employee[ename="james"]') = 1 VALUE(P) <EMPLOYEE EMPNO="7900"> <ENAME>JAMES</ENAME> <JOB>CLERK</JOB> <SAL>950</SAL> </EMPLOYEE>
52 Tworzenie perspektyw XML opartych o schematy XML Utwórz i zarejestruj schemat XML 2. Korzystając z funkcji SQL/XML, zbuduj perspektywę XMLType opartą o ten schemat
53 312 Perspektywa oparta o schemat XML (1) Definicja i rejestracja schematu XML exec dbms_xmlschema.registerschema('empview2schema.xsd','<?xml version = "1.0"?> <xsd:schema xmlns:xsd=" <xsd:element name="employee"><xsd:complextype> <xsd:sequence> <xsd:element name="ename" type="xsd:string" minoccurs="0"/> <xsd:element name="job" type="xsd:string" minoccurs="0"/> <xsd:element name="sal" type="xsd:float" minoccurs="0"/> </xsd:sequence> <xsd:attribute name="empno" type="xsd:integer"/> </xsd:complextype></xsd:element> </xsd:schema>')
54 313 Perspektywa oparta o schemat XML (2) Utworzenie perspektywy opartej na zarejestrowanym schemacie XML CREATE OR REPLACE VIEW emp2_xml_view OF XMLType XMLSCHEMA "empview2schema.xsd" ELEMENT "EMPLOYEE" WITH OBJECT ID (extract(sys_nc_rowinfo$,'/employee/@empid').getnumberval()) AS SELECT XMLElement("EMPLOYEE", XMLAttributes(EMPNO, ' AS "xmlns:xsi", 'empviewschema.xsd' as "xsi:nonamespaceschemalocation"), XMLForest(ename, job, sal)) FROM emp
2 Natywne bazy XML Języki zapytań XQuery Źródła 18
Plan wykładu Spis treści 1 Bazy przechowujące XML 1 1.1 XMLType.................................... 2 1.2 Schematy XML................................. 3 1.3 Perspektywy XMLType.............................
2 Natywne bazy XML 9 2.1 Języki zapytań... 9 2.2 XQuery... 11. 3 Źródła 14
Plan wykładu Spis treści 1 Bazy przechowujące XML 1 1.1 XMLType.................................... 2 1.2 Schematy XML................................. 3 1.3 Perspektywy XMLType.............................
Model semistrukturalny
Model semistrukturalny standaryzacja danych z różnych źródeł realizacja złożonej struktury zależności, wielokrotne zagnieżdżania zobrazowane przez grafy skierowane model samoopisujący się wielkości i typy
Przetwarzanie dokumentów XML w Oracle10g: XML DB
Przetwarzanie dokumentów XML w Oracle10g: XML DB Maciej Zakrzewicz Politechnika Poznaska Streszczenie System zarzdzania baz danych Oracle10g posiada szereg wbudowanych mechanizmów, słucych do przechowywania,
KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów
KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw
Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX
Aktualizowanie dokumentów XML ( Oracle ) do aktualizowania zawartości dokumentów XML służy między innymi funkcja updatexml. wynikiem jej działania jest oryginalny dokument ze zmodyfikowanym fragmentem,
Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik
Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie
Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia
Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie
Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych
Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy
XML Repository. Maciej Zakrzewicz. mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/
XML Repository Maciej Zakrzewicz mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/ Charakterystyka XML Repository Repozytorium dokumentów XML (XML Repository) jest usługą serwera bazy danych
Oracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -
Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1
Procedury wyzwalane procedury wyzwalane, cel stosowania, typy wyzwalaczy, wyzwalacze na poleceniach DML i DDL, wyzwalacze typu INSTEAD OF, przykłady zastosowania, zarządzanie wyzwalaczami 1 Procedury wyzwalane
Relacyjne bazy danych. Podstawy SQL
Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.
Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle
Rozszerzenie obiektowe w SZBD Oracle Cześć 2. Kolekcje Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Malinowski Nowak Kowalski tablica zagnieżdżona (ang.
Oracle11g: Wprowadzenie do SQL
Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom
Ref. 7 - Język SQL - polecenia DDL i DML
Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość
P o d s t a w y j ę z y k a S Q L
P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p
1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi
1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) Tworząc tabelę nie możemy określić, do którego pliku trafi, lecz możemy określić do której grupy plików trafi Zawsze istnieje grupa zawierająca
Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u
Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u będziemy używać w taki sam sposób, jak wbudowanych funkcji
XML w bazie danych IBM DB2
Instytut Informatyki Politechnika Śląska Gliwice, ul. Akademicka 16 XML w bazie danych IBM DB2 Dr inż. Dariusz Mrozek Wykład: IBM DB2 uniwersalna platforma przetwarzania danych O czym dzisiaj? XML w relacyjnej
Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006
OBIEKTOWOŚĆ W BAZIE DANYCH ORACLE Monika Kruk Mariusz Grabowski Informatyka Stosowana WFiIS, AGH 13 grudzień 2006 Plan prezentacji kilka słów o bazie danych ORACLE rzecz o obiektach ORACLE tworzenie typów
Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1
Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych
Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz
Wyzwalacze Wyzwalacze są specjalnymi procedurami składowanymi, uruchamianymi automatycznie w następstwie zaistnienia określonego typu zdarzenia. Ich główne zadanie polega na wymuszaniu integralności danych
Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/
Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,
strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych
SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych
Pakiety podprogramów Dynamiczny SQL
Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL 1 Pakiety Pakiet (ang. package)
PRZESTRZENNE BAZY DANYCH WYKŁAD 2
PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie
Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.
Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne. 1 Perspektywa Perspektywa (ang. view) jest strukturą
Wykład 05 Bazy danych
Wykład 05 Bazy danych Tabela składa się z: Kolumn Wierszy Wartości Nazwa Wartości Opis INT [UNSIGNED] -2^31..2^31-1 lub 0..2^32-1 Zwykłe liczby całkowite VARCHAR(n) n = długość [1-255] Łańcuch znaków o
Przestrzenne bazy danych Podstawy języka SQL
Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured
1 XML w bazach danych
XML w bazach danych 1 Plan 2 Wprowadzenie do języka XML Standard SQL-XML Funkcje SQL-XML Format XML 3 Formalnie, XML stanowi podzbiór języka Standard Generalized Markup Language (SGML) (ISO 8879:1986)
Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie
Programowanie MSQL show databases; - pokazanie jakie bazy danych są dostępne na koncie show databases; - wyświetlenie wszystkich baz danych na serwerze create database nazwa; - za nazwa wstawiamy wybraną
Relacyjne bazy danych. Podstawy SQL
Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.
Laboratorium nr 4. Temat: SQL część II. Polecenia DML
Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze
Wykład 5. SQL praca z tabelami 2
Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,
Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl
Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność
Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika
Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued
Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT
Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT Marek Wojciechowski marek@cs.put.poznan.pl http://www.cs.put.poznan.pl/~marek/ Formatowanie dokumentów XML Język XML opisuje strukturę i
UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');
polecenie UPDATE służy do aktualizacji zawartości wierszy tabel lub perspektyw składnia: UPDATE { } SET { { = DEFAULT NULL}, {
PODSTAWY BAZ DANYCH 13. PL/SQL
PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących
Oracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?
Obiektowe bazy danych
Obiektowe bazy danych 1 Plan rozdziału 2 Wprowadzenie obiektowy model danych Obiekty w bazie danych definiowanie i przechowywanie składowe i metody konstruktory referencje dziedziczenie i polimorfizm Kolekcje
Język SQL, zajęcia nr 1
Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze
Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,
Mój projekt przedstawia bazę danych noclegów składającą się z 10 tabel. W projekcie wykorzystuje program LibreOffice Base do połączenia psql z graficznym interfejsem ( kilka formularzy przedstawiających
PODSTAWY BAZ DANYCH. 17. Obiektowość w Oracle. 2009/2010 Notatki do wykładu "Podstawy baz danych"
PODSTAWY BAZ DANYCH 17. Obiektowość w Oracle 1 Obiektowa baza danych Obiektowe bazy danych (OBD) powstały początkowo jako rozwinięcie programowania obiektowego. Bazy danych zorientowane obiektowo przechowują
Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wprowadzenie Definiowanie wyzwalaczy DML Metadane wyzwalaczy Inne zagadnienia, tabele mutujące Wyzwalacze INSTEAD OF Wyzwalacze
Obiektowe bazy danych
Obiektowe bazy danych Obiektowo-relacyjne bazy danych Wykład prowadzi: Tomasz Koszlajda Obiektowo-relacyjne bazy danych Ewolucja rozszerzeń relacyjnego modelu danych: Składowanie kodu procedur w bazie
DECLARE VARIABLE zmienna1 typ danych; BEGIN
Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;
Wyzwalacze. Anna Fiedorowicz Bazy danych 2
Wyzwalacze Wyzwalacze są specjalnymi procedurami składowanymi, uruchamianymi automatycznie w następstwie zaistnienia określonego typu zdarzenia. Ich główne zadanie polega na wymuszaniu integralności danych
Projektowanie systemów baz danych
Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do
Wykład 8. SQL praca z tabelami 5
Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu
3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota
Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)
Tworzenie raportów XML Publisher przy użyciu Data Templates
Tworzenie raportów XML Publisher przy użyciu Data Templates Wykorzystanie Szablonów Danych (ang. Data templates) jest to jedna z metod tworzenia raportów w technologii XML Publisher bez użycia narzędzia
I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE
Wykład 9 Implementacja języka SQL w systemach baz danych Oracle manipulowanie danymi (DML), tworzenie, modyfikowanie i usuwanie obiektów bazy danych: tabel i perspektyw, więzów integralności, komentarzy
Uprawnienia, role, synonimy
Uprawnienia, role, synonimy Schemat, użytkownicy, autoryzacja użytkowników, uprawnienia systemowe i obiektowe, nadawanie i odbieranie uprawnień, tworzenie ról, przywileje, synonimy Schematy i użytkownicy
Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.
Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. Ograniczenia integralnościowe, modyfikowanie struktury relacji, zarządzanie ograniczeniami. 1 Ograniczenia integralnościowe Służą do weryfikacji
Spis treści. Przedmowa
Spis treści Przedmowa V 1 SQL - podstawowe konstrukcje 1 Streszczenie 1 1.1 Bazy danych 1 1.2 Relacyjny model danych 2 1.3 Historia języka SQL 5 1.4 Definiowanie danych 7 1.5 Wprowadzanie zmian w tabelach
15. Funkcje i procedury składowane PL/SQL
15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp
Multimedialne bazy danych - laboratorium
Multimedialne bazy danych - laboratorium Oracle Multimedia (rozwiązania) Celem ćwiczenia jest zapoznanie się z obiektowymi typami danych Oracle dedykowanymi do obsługi multimediów. Autor ćwiczenia: Marek
XML w bazach danych i bezpieczeństwie
XML w bazach danych i bezpieczeństwie Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2007/08 Klasyfikacja wsparcia dla XML-a w bazach danych (Relacyjna) baza danych
Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.
Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane. 1 Perspektywa Perspektywa (ang. view) jest strukturą logiczną
BAZA DANYCH SIECI HOTELI
Paulina Gogół s241906 BAZA DANYCH SIECI HOTELI Baza jest częścią systemu zarządzającego pewną siecią hoteli. Składa się z tabeli powiązanych ze sobą różnymi relacjami. Służy ona lepszemu zorganizowaniu
Wykład 4. SQL praca z tabelami 1
Wykład 4 SQL praca z tabelami 1 Typy danych Typy liczbowe Typy całkowitoliczbowe Integer types - Typ INTEGER; 32-bitowa liczba ze znakiem z zakresu -2 31 do 2 31 1 - Typ SMALLINT; typ całkowity mniejszy
Modelowanie wymiarów
Wymiar Modelowanie wymiarów struktura umożliwiająca grupowanie danych z tabeli faktów implementowana jako obiekt bazy danych DIMENSION wykorzystanie DIMENSION zaawansowane przepisywanie zapytań (ang. query
Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach
Indeksy dodatkowe struktury służące przyśpieszeniu dostępu do danych o użyciu indeksu podczas realizacji poleceń decyduje SZBD niektóre systemy bazodanowe automatycznie tworzą indeksy dla kolumn o wartościach
Hurtownia Świętego Mikołaja projekt bazy danych
Aleksandra Kobusińska nr indeksu: 218366 Hurtownia Świętego Mikołaja projekt bazy danych Zaprezentowana poniżej baza jest częścią większego projektu bazy danych wykorzystywanej w krajowych oddziałach wiosek
SQL (ang. Structured Query Language)
SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze
Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.
Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN
Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.
Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie
Bazy danych. Dr inż. Paweł Kasprowski
Plan wykładu Bazy danych Podstawy relacyjnego modelu danych Dr inż. Paweł Kasprowski pawel@kasprowski.pl Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność
Programowanie w Ruby
Programowanie w Ruby Wykład 6 Marcin Młotkowski 14 listopada 2012 Plan wykładu Trwałość obiektów Bazy danych DBM Bazy danych SQL Active records Szeregowanie obiektów Obiekt Serializacja @tytul = 'Pan Tadeusz'
Rozszerzenia języka relacyjnych baz danych SQL
Wykład 3 Rozszerzenia języka relacyjnych baz danych SQL 1 Spis treści 1. Typy danych obiektowe 2. Typy danych LOB (multimedialnych) 3. Obiekty i kod Javy 4. Typ danych XML 5. Konstrukcje dla hurtowni danych
Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. Użytkownicy i schematy (1) Użytkownicy i schematy (2) baza danych: ZESP99
Plan ćwiczenia Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych Użytkownicy i schematy bazy danych. Uwierzytelnianie i autoryzacja. Przywileje systemowe i obiektowe. Role. Synonimy. Uprawnienia,
Bloki anonimowe w PL/SQL
Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia
Systemy GIS Tworzenie zapytań w bazach danych
Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE
E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze
Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie
Bazy danych 6. Klucze obce. P. F. Góra
Bazy danych 6. Klucze obce P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2018 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka sposobów. Sposób ten (żargonowo:
Widok Connections po utworzeniu połączenia. Obszar roboczy
Środowisko pracy 1. Baza danych: Oracle 12c - Serwer ELARA - Konta studenckie, dostęp także spoza uczelni - Konfiguracja: https://e.piotrowska.po.opole.pl/index.php?option=conf 2. Środowisko: SQL Developer
Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:
Bazy danych. Komunikacja z serwerem Aby połączyć się z serwerem i móc wykonywać czynności związane z obsługą baz, potrzebny jest program klienta. Razem z serwerem MySQL dostępny jest działający w wierszu
DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];
Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server
77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.
77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele
Indeksy. Indeks typu B drzewo
Indeksy dodatkowe struktury służące przyśpieszeniu dostępu do danych o użyciu indeksu podczas realizacji poleceń decyduje SZBD niektóre systemy bazodanowe automatycznie tworzą indeksy dla kolumn o wartościach
Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.
Pakiety Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki. Pakiet składa się ze: specyfikacji (interfejsu) i ciała (implementacji). W specyfikacji mieszczą
Microsoft SQL Server Podstawy T-SQL
Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania
CREATE USER
Temat: Administrowanie użytkownikami bazy danych. Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest możliwość
Wprowadzenie do projektowania i wykorzystania baz danych Relacje
Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2 Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR
Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z
Tworzenie tabeli Np. create table nazwa_tab( \\stworzenie tabeli Id numer(4) constraint PRAC_PK primary key, \\ustawiamy klucz podst. Nazwisko varchar2(30), \\typ tekstowy 30 znaków Kwota number(10,2)
Zaawansowane bazy danych i hurtownie danych semestr I
Podprogramy Wydział Informatyki Politechnika Białostocka Zaawansowane bazy danych i hurtownie danych semestr I Procedury do przeprowadzenia akcji Funkcje do obliczania wartości Pakiety do zbierania logicznie
Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1
Tworzenie tabel Tabela podstawowa struktura, na której zbudowana jest relacyjna baza danych. Jest to zbiór kolumn (atrybutów) o ustalonych właściwościach, w których przechowuje się dane. Dane te są reprezentowane
Obiektowe bazy danych Ćwiczenia laboratoryjne (?)
Obiektowe bazy danych Ćwiczenia laboratoryjne (?) Tworzenie typów obiektowych 1. Zdefiniuj typ obiektowy reprezentujący SAMOCHODY. Każdy samochód powinien mieć markę, model, liczbę kilometrów oraz datę
1. Wyzwalacze BD (ang. triggers)
1. Wyzwalacze BD (ang. triggers) Wyzwalacz bazy danych jest procedurą składowaną w bazie powiązaną z jedną konkretną tablicą. Z pojedynczą tablicą może być związane wiele wyzwalaczy, natomiast pojedynczy
Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska
Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion Autor: Joanna Karwowska SQL zapewnia obsługę: zapytań - wyszukiwanie danych w bazie, operowania danymi - wstawianie, modyfikowanie
Wykorzystywanie parsera DOM w programach Java i PL/SQL
Wykorzystywanie parsera DOM w programach Java i PL/SQL Maciej Zakrzewicz mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/ Parser DOM Aplikacja DOM API Parser DOM Dokument XML Drzewo DOM Parser
Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL
Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL.
Systemowe aspekty baz
Systemowe aspekty baz danych Deklaracja zmiennej Zmienne mogą być wejściowe i wyjściowe Zmienne w T-SQL można deklarować za pomocą @: declare @nazwisko varchar(20) Zapytanie z użyciem zmiennej: select
Oracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 9 Kolekcje Operacje na kolekcjach Testowanie kolekcji Kolekcje w bazie danych Funkcje tabelaryczne Kolekcje wielopoziomowe - 2 -
Podstawy języka SQL. SQL Structured Query Languagestrukturalny
Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych
Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze
Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT
Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania