sql/xml was sagt die norm?. history sql-86 the first version of the structured query language...
Post on 21-Dec-2015
216 views
TRANSCRIPT
![Page 1: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/1.jpg)
SQL/XML
Was sagt die Norm?
![Page 2: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/2.jpg)
History• SQL-86
the first version of the Structured Query Language Standard:- ANSI 1986- ISO 1987
provides:- the notion of named tables, rows, columns- DDL constructs to create tables- DML constructs to insert, update and delete rows from tables- query expressions to retrieve selected rows- set of built-in types- privileges to control access to tables- facilities to specify declarative integrity constraints
• SQL-89 enhances SQL-86 with the notion of referential integrity
![Page 3: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/3.jpg)
• SQL-92 enhancements:
- additional data types- outer joins- catalogues- domains- assertions- temporary tables- referential actions- schema manipulation language- dynamic SQL- information schema tables- greater orthogonality
incremental parts 1995 - SQL/CLI: functions as a callable interface to an SQL
database system, providing a highly dynamic capability 1996 – SQL/PSM:
- stored procedures: ability to execute block-structured compound statements, flow-of-control statements, local variables, condition handlers
- SQL-invoked routines: functions – allowed to be overloaded, procedures
![Page 4: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/4.jpg)
• SQL:1999 a 5-part standard consisting of:
1. SQL/Framework2. SQL/Foundation3. SQL/CLI (Call Level Interface)4. SQL/PSM (Persistent Stored Modules)5. SQL/Bindings
enhancements:- object-relational facilities- additional predefined data types: BOOLEAN, CLOB, BLOB- type constructors: ROW, REF, ARRAY- the ability to create user-defined distinct and structured data types- 3 new predicates: SIMILAR, DISTINCT, type predicate- ability to formulate recursive queries- the notion of savepoints, roles- triggers
incremental parts 9. SQL/MED (Management of External Data): extensions to the SQL language
to query and manipulate external data, to join it with local SQL-data 10. SQL/OLB (Object Language Bindings) 13. SQL/JRT (Routines and Types Using the Java Programming Language):
in combination with SQL/OLB, establishes a tight union between the Java application programming language and SQL
Addendum: complex statistical and data analysis functions executed as part of ordinary SQL-statements
![Page 5: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/5.jpg)
• SQL:2003new functionality:
- the MERGE statement
- identity, respectively generated columns
- sequence generators
- OLAP
- CREATE TABLE … AS query
- tablesample
- multiple assignment
- MULTISET types
- the BIGINT type
- improved savepoint handling
- enhanced diagnostics
new part: 14. SQL/XML (XML-Related Specifications)
![Page 6: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/6.jpg)
Introduction• Motivation
only XML-data => XML-query language (XQuery) only object-relational data => usual SQL integrated use of XML- and traditional SQL-data, accessed through SQL =>
SQL/XML
• SQL/XML allows applications
to store XML-documents within SQL-databases- new data type: XML
to produce XML-documents from traditional SQL-data- mapping from SQL-tables to XML-documents- to generate XML from SQL-data
under discussion to produce SQL-data from XML-documents to update XML-documents to search for texts in XML-documents
operations parse operation: XML(string) -> SQL(XML_value) serialize operation: SQL(XML_value) -> XML(string)
![Page 7: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/7.jpg)
The XML Data Type• Values:
NULL XML-document individual XML-elements sequences of XML-elements
• Use: to define
columns variables parameters
• Comparability: XML-values are not comparable the user must explicitly define order, if XML-values are to be
compared
![Page 8: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/8.jpg)
• Examples (XML-values):<!—-XML-element with textual content--><Salary>4000</Salary>
<!—-XML-element with sub element--><Salary><Euro>4000</Euro></Salary>
<!—-XML-element with mixed content--><JobApplication>Dieter Grau<Salary>4000</Salary></JobApplication>
<!—-XML-element with attribute--><JobApplication Date=”19.06.1997”>Dieter Grau</JobApplication>
<!—-XML-element forest--><Salary>4000</Salary><LastName>Black</LastName>
<!—-XML-document--><?xml version=’1.0?’><JobApplication>Kim Black</JobApplication>
• Example (use of XML data type):CREATE TABLE Employees( ID Integer,
Salary Decimal(12,2), JobApplication XML
);
![Page 9: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/9.jpg)
ID Salary JobApplication
501148 7000 <JobApplication Date=“27.07.1999”>
<FirstName>Gisela</FirstName>
<LastName>Blum</LastName>
<Address>Alexanderstrasse 39</Address>
<Skills>
<Skill>Datenbanken</Skill>
<Skill>SQL</Skill>
<Skill>Oracle</Skill>
<Skill>Postgres</Skill>
<Skill>DB2</Skill>
</Skills>
</JobApplication>
220443 4000 <JobApplication Date=“03.05.1994”>
<FirstName>Dieter</FirstName>
<LastName>Grau</LastName>
<Address>Editharing 31</Address>
<Skills>
<Skill>Datenbanken</Skill>
<Skill>Informix</Skill>
<Skill>DB2</Skill>
</Skills>
</JobApplication>
![Page 10: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/10.jpg)
XML-Functions• XMLELEMENT
produces an XML-element syntax:
XMLELEMENT (Name <ElementName> [, XMLATTRIBUTES( <XML-
AttributeList> )] [, < ValueExpressionList>])
<XML-Attribute>:=<ValueExpression>[AS <AttributeName>]
where the ValueExpressionList defines the content of the XML-element.
• XMLATTRIBUTES used to create XML-attributes example:SELECT e.id ID, XMLELEMENT(Name “Emp”,
XMLATTRIBUTES(e.id), e.lname) AS Employee
FROM employees e;
ID Employee
1001 <Emp ID = “1001”>Smith</Emp>
1206 <Emp ID = “1206”>Martin</Emp>
![Page 11: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/11.jpg)
• XMLAGG produces a single XML-value from a group of XML-values syntax:
XMLAGG(< XML-ValueExpression >
[ORDER BY <SortExpressionList> ])
example:
SELECT XMLELEMENT(Name “Dept”,
XMLATTRIBUTES(e.dept AS name”),
XMLAGG(XMLELEMENT(NAME “emp”, e.lname)
ORDER BY e.lname)
) AS Dept_List
FROM employees e;
Dept_List<Dept name=“Accounting”>
<emp>Smith</emp>
<emp>Yates</emp>
</Dept>
<Dept name= “Shipping”>
<emp>Martin</emp>
<emp>Dylan</emp>
</Dept>
![Page 12: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/12.jpg)
• XMLCONCAT concatenates two or more XML-values syntax:
XMLCONCAT(< XML-ValueExpressionList >) example:
SELECT XMLCONCAT(
XMLELEMENT(NAME “Name”, Name),
XMLELEMENT(NAME “Euro”, 12*Salary)
) AS Emp_Salary
FROM employees;Emp_Salary<Name>Smith</Name>
<Euro>24000</Euro>
<Name>Moore</Name>
<Euro>32000</Euro>
![Page 13: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/13.jpg)
• XMLFOREST creates a sequence of XML-elements syntax:
XMLFOREST(< XML-ElementList >)<XML-Element>>:=<ValueExpression>
[AS <ElementName>] example:
SELECT XMLFOREST(ID,XMLELEMENT(NAME “Euro”,
12*Salary)AS Salary) AS Emp_Salary
FROM employees;
Emp_Salary<ID>501148</ID><Salary><Euro>36000</Euro></Salary>
<ID>220443</ID><Salary><Euro>48000</Euro></Salary>
<ID>170470</ID><Salary><Euro>84000</Euro></Salary>
<ID>160139</ID><Salary><Euro>48000</Euro></Salary>
![Page 14: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/14.jpg)
Mapping between SQL and XML
• The SQL/XML Norm specifies mapping between the following concepts: SQL-value → XML-value SQL-character set ↔ XML-Unicode SQL-identifier ↔ XML-name SQL-data type ↔ XML-schema name SQL-table ↔ XML-document + XML-schema document SQL-schemes ↔ XML-document + XML-schema document SQL-catalog ↔ XML-document + XML-schema document
• SQL/XML makes available an XML-Namespace that serves as a base for mapping between SQL and XML. This defines in XML the SQL-data type forms (predefined data type, domain, row type, array
type, multiset type and distinct type) the predefined SQL-data types the SQL-schema objects (catalogue, schema, base table, view, character set,
collation)
![Page 15: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/15.jpg)
Mapping from SQL-Values to XML-Values
• set by mapping of corresponding data types
• exceptions: numerical data types: decimal point missing when no values after
following it
strings: special symbols mapped to their counterpart in XML
• examples:
SQL-data type SQL-value XML-value
NUMERIC(12,2) 1003.44 1003.44
NUMERIC(12,2) 1003.0 1003
CHAR(20) ‘SQL:2003’ SQL:2003
VARCHAR(20) ‘< SQL:2003>’ <SQL:2003>
![Page 16: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/16.jpg)
Mapping from SQL-Identifiers to XML-Names
• Regular identifiers: 1:1 mapping capital letters, as internally SQL-identifiers are displayed in upper case letters example:
Employee → <EMPLOYEE></EMPLOYEE>
• Identifiers containing special symbols: special symbols are not allowed in qualified XML-names mapping: _xUnicodeValue_ mapping is reversible examples:
“SQL:2003*” → SQL_x003A_2003_x003E_“©Türker” → _x00A9_T_xx00FC_rker“Vize@Weltmeister” → Vize_x0040_Weltmeister“<WM_Dritter>” → _x003C_WM_Dritter_x002A_Überführungsstrasse → _x00DC_berf_x00FC_hrungstrasse
![Page 17: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/17.jpg)
Mapping from SQL - Data Types to XML-Schema Names
• Mapping of predefined data types:SQL-data type XML-schema typeBOOLEAN boolean
CHAR, VARCHAR, CLOB string
BIT, VARYING BIT, BLOB base64Binary, hexBinary
SMALLINT, INT, BIGINT integer
NUMERIC, DECIMAL decimal
FLOAT, REAL, DOUBLE PRECISION float, double
DATE date
TIME time
TIMESTAMP dateTime
INTERVAL duration
XML-schema type must be restricted, when its range exceeds its correspondent SQL-data type’s range. Example:
VARCHAR(20) → maxLength(20)
![Page 18: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/18.jpg)
Examples:
CHAR(20)<xsd:simpleType name=“CHAR_20”><xsd:annotation> <xsd:appinfo>
<!—-description of the SQL-data type –><!–- optional -><sqlxml:sqltype kind=“PREDEFINED”
name=“CHAR” length=“20” characterSetName=“LATIN1” collation=“DEUTSCH”/>
</xsd:appinfo></xsd:annotation><!—-description of the corresponding XML-schema type-><xsd:restriction base=“xsd:string”> <xsd:length value=“20”/></xsd:restriction>
</xsd:simpleType>
![Page 19: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/19.jpg)
NUMERIC(12,2)<xsd:simpleType name=“NUMERIC_12_2”>
<xsd:annotation>
<xsd:appinfo>
<sqlxml:sqltype kind=“PREDEFINED”
name=“NUMERIC”
userPrecision=“12”
scale=“2”/>
</xsd:appinfo>
</xsd:annotation>
<xsd:restriction base=“xsd:numeric”>
<xsd:length value=“12”/>
<xsd:scale value=“2”/>
</xsd:restriction>
</xsd:simpleType>
![Page 20: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/20.jpg)
SMALLINT<xsd:simpleType name=“SMALLINT”>
<xsd:annotation>
<xsd:appinfo>
<sqlxml:sqltype kind=“PREDEFINED”
name=“SMALLINT”/>
</xsd:appinfo>
</xsd:annotation>
<xsd:restriction base=“xsd:integer”>
<xsd:minInclusive value=“-32768”/>
<xsd:maxInclusive value=“32767”/>
</xsd:restriction>
</xsd:simpleType>
![Page 21: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/21.jpg)
• Mapping of domains mapped to XML-schema types that describe them as precisely as possible example:
CREATE DOMAIN ETH.DBS.Jobs CHAR(4)DEFAULT ‘Hiwi’CHECK (VALUE IN (‘Prof’, ‘Assi’, ‘Hiwi’))
<xsd:simpleType name=“DOMAIN.ETH.DBS.Jobs”><xsd:annotation> <xsd:appinfo>
<sqlxml:sqltype kind=“DOMAIN” catalogName=“ETH” schemaName=“DBS” typeName=“Jobs” mappedType=“CHAR_4”/>
</xsd:appinfo></xsd:annotation><xsd:restriction base=“CHAR_4”> <xsd:enumeration value=“Prof”/> <xsd:enumeration value=“Assi”/> <xsd:enumeration value=“Hiwi”/></xsd:restriction>
</xsd:simpleType>
![Page 22: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/22.jpg)
• Mapping of the row type mapped to complex type: each SQL-attribute represents an XML-element the types of these elements is the result of mapping each attribute’s data type example:
ROW(FirstName CHAR(20), LastName CHAR(30))
<xsd:complexType name=“ROW.Name”><xsd:annotation> <xsd:appinfo>
<sqlxml:sqltype kind=“ROW”> <sqlxml:field name=“FirstName”
mappedType=“CHAR_20”/>
<sqlxml:field name=“LastName” mappedType=“CHAR_30”/>
</sqlxml:sqltype> </xsd:appinfo></xsd:annotation><xsd:sequence> <xsd:element name=“FirstName” type=“CHAR_20”/> <xsd:element name=“LastName” type=“CHAR_30”/></xsd:sequence>
</xsd:complexType>
![Page 23: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/23.jpg)
• Mapping of collection types mapped to complex type made up of a sequence with a single element the type of this element is the result of mapping the appropriate SQL-data type facets:
minOccurs=0 maxOccurs:
array type: restricted by the maximal cardinality of the type multiset: unrestricted
examples: DECIMAL(12,2) ARRAY[10]
<xsd:complexType name=“ARRAY.DECIMAL_12_2”><xsd:annotation> <xsd:appinfo>
<sqlxml:sqltype kind=“ARRAY” maxElements=“10”
mappedElementType=“NUMERIC_12_2”/> </xsd:appinfo></xsd:annotation><xsd:sequence> <xsd:element name=“Element” type=“NUMERIC_12_2”
minOccurs=“0” maxOccurs=“10”/></xsd:sequence>
</xsd:complexType>
![Page 24: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/24.jpg)
CHAR(20) MULTISET<xsd:complexType name=“MULTISET.CHAR_20”><xsd:annotation> <xsd:appinfo>
<sqlxml:sqltype kind=“MULTISET”
mappedElementType=“CHAR_20”/> </xsd:appinfo></xsd:annotation><xsd:sequence> <xsd:element name=“Element”
type=“CHAR_20” minOccurs=“0” maxOccurs=“unbounded”/>
</xsd:sequence></xsd:complexType>
![Page 25: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/25.jpg)
• Mapping of distinct types directly identifies the appropriate SQL-source type example:
CREATE TYPE ETH.DBS.Franken AS NUMERIC(12,2) FINAL
<xsd:simpleType name=“UDT.ETH.DBS.Franken”>
<xsd:annotation>
<xsd:appinfo>
<sqlxml:sqltype kind=“DISTINCT”
catalogName=“ETH”
schemaName=“DBS”
typeName=“Franken”
mappedType=“Numeric_12_2”
final=“true”/>
</xsd:appinfo>
</xsd:annotation>
<xsd:restriction base=“Numeric_12_2”/>
</xsd:simpleType>
![Page 26: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/26.jpg)
Mapping from SQL-tables to XML-documents
• Data and metadata are mapped separately: XML-schema document: describes the schema of the table (name and type of
columns, row type, type of the table) XML-document: the content of the table
• Example:CREATE TABLE ETH.DBS.Employee
{Name CHAR(20) NOT NULL, Salary NUMERIC(12,2)}
the XML-schema document:<xsd:complexType name=“ROW.ETH.DBS.EMPLOYEE”>
<xsd:sequence> <xsd:element name=“Name”
type=“CHAR_20”/> <xsd:element name=“Salary”
type=“NUMERIC_12_2” nillable=“true”/>
</xsd:sequence></xsd:complexType>
![Page 27: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/27.jpg)
<xsd:complexType name=“TABLE.ETH.DBS.EMPLOYEE”>
<xsd:annotation>
<xsd:appinfo>
<sqlxml:sqlname type=“BASE TABLE”
catalogName=“ETH”
schemaName=“DBS”
localName=“EMPLOYEE”/>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element name=“row”
type=“ROW.ETH.DBS.EMPLOYEE”
minOccurs=“0”
maxOccurs=“unbounded”/>
</xsd:sequence>
</xsd:complexType>
![Page 28: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/28.jpg)
the XML-document:
<EMPLOYEE>
<row>
<NAME>Blum</NAME><Salary>3000</Salary>
</row>
<row>
<NAME>Black</NAME><Salary>7000</Salary>
</row>
</EMPLOYEE>
![Page 29: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/29.jpg)
Mapping from SQL-Schema to XML-documents
• Data and metadata are mapped separately: XML-schema document: definition of the schema and schema objects XML-document: the content of the tables contained by the schema
• Example:CREATE SCHEMA ETH.DBS
CREATE TABLE EMPLOYEE{Name CHAR(20) NOT NULL, Salary NUMERIC(12,2)}
<xsd:complexType name=“SCHEMA.ETH.DBS”><xsd:annotation>
<xsd:appinfo><sqlxml:sqlname type=“SCHEMA”
catalogName=“ETH” schemaName=“DBS”/>
</xsd:appinfo></xsd:annotation><xsd:all> <xsd:element name=“EMPLOYEE”
type=“TABLE.ETH.DBS.EMPLOYEE”/> <!—-enumeration of the other tables->
</xsd:all></xsd:complexType>
![Page 30: SQL/XML Was sagt die Norm?. History SQL-86 the first version of the Structured Query Language Standard: -ANSI 1986 -ISO 1987 provides: -the notion](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d555503460f94a32c10/html5/thumbnails/30.jpg)
Mapping from SQL-Catalogues to XML-documents
• Data and metadata are mapped separately: XML-schema document: the definitions of the schemes contained by the
catalogue XML-document: the content of the tables contained by these schemes
• Example:<xsd:complexType name=“CATALOG.ETH”>
<xsd:annotation><xsd:appinfo><sqlxml:sqlname type=“CATALOG”
catalogName=“ETH”/></xsd:appinfo>
</xsd:annotation><xsd:all> <xsd:element name=“DBS”
type=“SCHEMA.ETH.DBS”/> <!—-enumeration of the other schemes->
</xsd:all></xsd:complexType>