XNF1 - PowerPoint PPT Presentation

1 / 8
About This Presentation
Title:

XNF1

Description:

Details: Introduce a root name (e.g. !DOCTYPE BandB ... Add the scheme trees as structural element (e.g. !ELEMENT BandB ((RoomNr, RoomName, ... – PowerPoint PPT presentation

Number of Views:33
Avg rating:3.0/5.0
Slides: 9
Provided by: davidw8
Category:
Tags: bb | xnf1

less

Transcript and Presenter's Notes

Title: XNF1


1
XML and NNF
  • A Standard Form for XML Documents (XNF)
  • Properties
  • As few hierarchical trees as possible
  • No redundant data values in any tree
  • Method
  • Model the application as an ORM.
  • Make the ORM canonical.
  • Transform the canonical ORM into an NNF
    scheme-tree forest with as few trees as possible.
  • Cast the NNF scheme trees into XML DTD.

2
XNF Example
NNF with as few schemes as possible
FD Closures NrBeds 4, Cost 4, RoomNr 3,
RoomName 3, GuestName 2
Back off by one.
Result RoomNr, RoomName, Cost, NrBeds, (View),
(GuestNr, GuestName)
3
DTD(Document Type Definition)
  • Defines a structure for XML documents
  • Declarations
  • DOCTYPE
  • ELEMENT
  • Structural elements in terms of regular
    expressions (, ? )
  • Elementary elements as Parsable Character Data
    (PCDATA)
  • ATTLIST

4
Straightforward Translation
  • Main Idea Use the scheme-tree forest directly as
    the DTD specification.
  • Details
  • Introduce a root name (e.g. lt!DOCTYPE BandB
    gt).
  • Rename object-set names appearing in multiple
    trees.
  • Add the scheme trees as structural element (e.g.
    lt!ELEMENT BandB ((RoomNr, RoomName, ))gt).
  • Declare all object sets as elements with
    character data (e.g. lt!ELEMENT RoomNr (PCDATA)gt).

5
Example
RoomNr, RoomName, Cost, NrBeds (View) (GuestNr,
GuestName)
lt!DOCTYPE BandB lt!ELEMENT BandB (
( RoomNr, RoomName, Cost, NrBeds, (View),
(GuestNr, GuestName) ))gt lt!ELEMENT
RoomNr (PCDATA)gt lt!ELEMENT RoomName
(PCDATA)gt lt!ELEMENT GuestName
(PCDATA)gt gt ltBandBgt ltRoomNrgt1lt/RoomNrgt
ltRoomNamegtKennedylt/RoomNamegt
ltCostgt90lt/Costgt ltNrBedsgt2lt/NrBedsgt
ltViewgtForestlt/Viewgt ltViewgtSealt/Viewgt
ltGuestNrgt101lt/GuestNrgt
ltGuestNamegtSmithlt/GuestNamegt
ltRoomNrgt2lt/RoomNrgt lt/BandBgt
6
A More Sophisticated Translation
  • Main Idea Nest the XML according to the
    scheme-tree structure
  • Details
  • Create concept names for each node (e.g. Rooms).
  • Identify key elements for objects (e.g. RoomNr).
  • Nest according to node names and key elements
    (e.g. lt!ELEMENT Rooms (RoomNr)gt).
  • Use XML attributes for key elements (e.g.
    lt!ATTLIST RoomNr value CDATA REQUIREDgt).

7
Example
Rooms RoomNr, RoomName, Cost, NrBeds
Views View
Guests GuestNr, GuestName
lt!DOCTYPE Rooms lt!ELEMENT Rooms (RoomNr)gt
lt!ELEMENT RoomNr (RoomName, Cost, NrBeds,
Views, Guests)gt
lt!ATTLIST RoomNr value CDATA REQUIREDgt
lt!ELEMENT RoomName (PCDATA)gt
lt!ELEMENT Cost (PCDATA)gt lt!ELEMENT
NrBeds (PCDATA)gt lt!ELEMENT Views
(View)gt lt!ELEMENT View
(PCDATA)gt lt!ELEMENT Guests
(GuestNr)gt lt!ELEMENT GuestNr
(GuestName)gt lt!ATTLIST
GuestNr value CDATA REQUIREDgt
lt!ELEMENT GuestName (PCDATA)gt gt
ltRoomsgt ltRoomNr value1gt
ltRoomNamegtKennedylt/RoomNamegt
ltCostgt90lt/Costgt ltNrBedsgt2lt/NrBedsgt
ltViewsgt ltViewgtForestlt/Viewgt
ltViewgtSealt/Viewgt lt/Viewsgt
ltGuestsgt ltGuestNr value101gt
ltGuestNamegtSmithlt/GuestNamegt
lt/GuestNrgt lt/Guestsgt lt/RoomNrgt
ltRoomNr value2gt lt/Roomsgt
8
Additional Translations
  • No unique solution
  • Correspondences for additional ORM features
  • Roles role attributes (e.g. roleCurrent
    Guest)
  • Optionals zero or one occurrence (e.g. Room
    (Occupant?))
  • Partitions U (e.g. (OccupiedRoom
    UnoccupiedRoom))
  • Each translation maintains the properties of XNF
  • As few scheme trees as possible
  • No potential redundancy

Write a Comment
User Comments (0)
About PowerShow.com