Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
COS 236
Day 24
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-1
Agenda
• Assignment 10 Graded
– 5 A’s & 2 non-submits
• Assignment Average Posted
– 2 B’s, 4 C’s & 2 D
• Lowest Grade posted
– 1 C, 1 D, 2 F’s and 3 0’s
• Assignment 11 Posted
– Due May 3
• Assignment 12 Posted
– Due May 9
• Last Capstone Progress Reports Due Today
• Today we will discuss
– XML and ADO.NET
– Support-Files-Chap-13-XML
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-2
End of days? (subject to
change)
• May 9
• April 30
– DP Chap 13
– In class work
• May 3
– DP Chap 15
– Assignment 11 Due
–
–
–
–
Assignment 12 due
Quiz 3
10 AM
Capstone
presentations
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-3
XML resources
•
•
•
•
•
http://xml.com/
http://www.w3.org/XML/
http://www.w3schools.com/xml/
http://www.xmlfiles.com/xml/
http://perleybrook.umfk.maine.edu/slides/spring
%202006/cos381/cos_381_day_15.ppt
• http://perleybrook.umfk.maine.edu/slides/spring
%202006/cos381/cos_381_day_16.ppt
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-4
Overview
DTD
Document Type
Definations
XML
Schemas
XML
Document
XSLT
Style Sheets
CSS
Browser
Display
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-5
David M. Kroenke’s
Database Processing:
Fundamentals, Design, and Implementation
Chapter Thirteen:
XML and ADO.NET
Part Two
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-6
XML Schema
• XML Schema is a standard for describing the content of
an XML document, i.e., defining custom vocabularies:
– Documents that conform to an XML Schema are called schemavalid.
– An XML document can be well-formed and be neither type-valid
nor schema-valid.
• Unlike DTDs, XML Schema documents are themselves
XML documents that can be validated against the
schema maintained by W3C.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-7
XML Schema Document
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-8
Schema-Valid XML Document
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-9
Elements and Attributes
• Schemas consist of elements and attributes:
– Elements are used to carry data and attributes are
used to carry metadata.
• Two types of elements:
– Simple elements have a single data value.
– ComplexType elements can have one or more
simple or ComplexType elements.
• ComplexType elements can have attributes.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-10
Flat Schemas:
XML Schema
• Flat schemas have all elements at the same
level:
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-11
Flat Schemas:
Schema-Valid Document
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-12
Flat Schemas:
SGraphical Representation of Schema
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-13
Structured Schemas:
XML Schema
• Structured
schemas
have
defined
subgroups:
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-14
Structured Schemas:
Schema-Valid Document
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-15
Structured Schemas:
Graphical Representation of Schema
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-16
David M. Kroenke’s
Database Processing
Fundamentals, Design, and Implementation
(10th Edition)
End of Presentation:
Chapter Thirteen Part Two
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-17
David M. Kroenke’s
Database Processing:
Fundamentals, Design, and Implementation
Chapter Thirteen:
XML and ADO.NET
Part Three
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-18
Global Elements
• To eliminate the definition duplication,
elements can be declared globally, i.e.,
reside at the top level of the schema, and
then reused.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-19
Global Elements :
XML Schema with Global PhoneType
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-20
Global Elements :
PhoneType Global Element
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-21
Global Elements :
Graphical Representation of Schema
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-22
Creating XML Documents from
Database Data
• Both Oracle and SQL Server can generate XML
documents from database data.
• For Oracle — Use
http://www.oracle.com/technology/tech/xml/xdkh
ome.html
• For SQL Server:
– SELECT . . . FOR XML
• SELECT … FOR XML RAW — Places the values of columns as
attributes in the XML document.
• SELECT … FOR XML AUTO, ELEMENTS — Places the values of
columns as elements in the XML document.
• SELECT … FOR XML EXPLICIT — Allows the designation of which
values of columns become attributes and elements.
• XML Spy can generate schemas from such output.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-23
XML Schema with Multivalue Paths
• Some views cannot be created in a single
SQL statement because the construct
requires two or more multivalued paths.
• XML does not have this limitation.
• An XML document can have as many
multivalued paths as necessary.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-24
Multivalue
Paths:
XML
Schema
with Two
Multivalued
Paths
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-25
Multivalue Paths:
Graphical View of the Schema
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-26
Industries with XML Industry Standards
http://www.xml.org/
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-27
Industries with XML Industry Standards
(Continued)
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-28
XML Standards
• XML: Extensible Markup Language.
• XSL: XSLT Stylesheet. The document that provides the
{match, action} pairs and other data for XSLT to use
when transforming an XML document.
• XSLT: A program or process that applies XSLT
Stylesheets to an XML document to produce a
transformed XML document.
• XML schema: An XML-compliant language for
constraining the structure of an XML document.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-29
Additional XML Standards
• Xpath
– A sublanguage within XSLT used to identify parts of an XML
document to be transformed
– Can also be used for calculations and string manipulation
• Xpointer
– A standard for linking one document to another
• SAX: Simple API (application program interface) for
XML.
– An event-based parser that notifies a program when the
elements of an XML document have been encountered during
document parsing
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-30
Additional XML Standards
(Continued)
• DOM: Document Object Model.
– An API that represents an XML document as a tree
– Each node of the tree represents a piece of the XML document.
– A program can directly access and manipulate a node of the
DOM representation.
• XQuery
– A standard for expressing database queries as XML documents
– The structure of the query uses XPath facilities, and the result of
the query is represented in an XML format.
• XML Namespaces: A standard for allocating terminology
to defined collections
– X:Name is interpreted as the element Name as defined in
namespace X.
– Useful for disambiguating terms
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-31
David M. Kroenke’s
Database Processing
Fundamentals, Design, and Implementation
(10th Edition)
End of Presentation:
Chapter Thirteen Part Three
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-32
David M. Kroenke’s
Database Processing:
Fundamentals, Design, and Implementation
Chapter Thirteen:
XML and ADO.NET
Part Four
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-33
ADO.NET
• ADO.NET is a new, improved, and greatly
expanded version of ADO that was developed
for the Microsoft .NET initiative.
• It incorporates all of the functionality of ADO and
OLE DB facilitates the transformation of XML
documents to and from database constructs.
• It uses datasets, which are in-memory, fullyfunctioned, independent databases.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-34
Role of ADO.NET
• ADO.NET serves as an intermediary between
all types of .NET applications and the DBMS
and database:
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-35
Data Provider
• A .NET data provider is a library of classes that
provides ADO.NET services.
• Microsoft’s provides three data providers:
– OLE DB data provider can be used to process any
OLE DB-compliant data source.
– SQLClient data provider is purpose-built for use with
SQL Server.
– OracleClient data provider is purpose-built for use
with Oracle.
http://www.oracle.com/technology/tech/dotnet/index.html
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-36
Data Provider Components
• A connection object is similar to the OBDC’s
connection object.
• A command object is created on an established
connection.
• A data reader provides read-only, forward-only, fast
access to database data.
• An application can get and put data to and from the
database using the command object.
• A dataset is an in-memory database that is
disconnected from any regular database.
– It distinguishes ADO.NET from the previous data access
technology.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-37
Data Provider Components
(Continued)
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-38
The ADO.NET Dataset
• A dataset is an in-memory database that is
disconnected from any regular database.
• Datasets can have:
– Multiple tables, views, and relationships
• Tables may have surrogate key (auto increment columns),
primary keys, and be declared as unique.
– Referential integrity rules and actions
– The equivalent of triggers
• Datasets may be constructed from several
different databases and managed by different
DBMS products.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-39
Dataset Advantages
• Dataset contents and its XML schema can be easily
formatted as an XML document.
• Also, XML schema documents can be read to create the
structure of the dataset, and XML documents can be
read to fill the dataset.
• Datasets are needed to provide a standardized, nonproprietary means to process database views.
– This is important for the processing of views with multiple multivalue paths.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-40
Dataset Disadvantages
• Because dataset data are disconnected from regular
database, only optimistic locking can be used when
updating the regular database with the dataset.
• In the case of conflict, either the dataset must be
reprocessed or the data change must be forced onto the
database, causing the lost update problem.
• Thus, datasets cannot be used for applications in which
optimistic locking is problematical.
– Instead, the ADO.NET command object should be used.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-41
ADO.NET:
Creating the Dataset, Connection, and Data Adapter
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-42
ADO.NET:
Using the Data
Adapter to Fill the
Dataset Tables
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-43
ADO.NET:
Building Relationships
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-44
ADO.NET:
Creating
Referential
Integrity
Constraints
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-45
ADO.NET:
Adding a Computed Column to a Data Table
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-46
ADO.NET:
Using Data Grids
– Filling the Grids
with Dataset
Tables
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-47
ADO.NET:
Using Data Grids — Grid Display in Brower
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-48
David M. Kroenke’s
Database Processing:
Fundamentals, Design, and
Implementation
Chapter Thirteen:
XML and ADO.NET
Part Five
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-49
ADO.NET:
Code to Generate an XML Document from the Dataset
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-50
ADO.NET:
Portion of XML Document Generated from the Dataset
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-51
ADO.NET:
Code to Generate an XML Schema from the Dataset
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-52
ADO.NET:
Portion of XML Schema Generated from the Dataset
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-53
ADO.NET:
Updating a Dataset and Database — Update Code
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-54
ADO.NET:
Updating a Dataset and Database — Trigger-Like Event
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-55
ADO.NET:
Updating a Dataset and Database
Display RowVersion Code
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-56
ADO.NET:
Updating a Dataset and Database
Creating the Update Command
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-57
ADO.NET:
Updating a Dataset and Database
Log Showing Dataset Updates
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-58
ADO.NET:
Updating a Dataset and Database
Dataset Tables after Update
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-59
David M. Kroenke’s
Database Processing
Fundamentals, Design, and Implementation
(10th Edition)
End of Presentation:
Chapter Thirteen Part Five
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition
© 2006 Pearson Prentice Hall
13-60