CSE 4/560辅导、讲解XML/XQuery留学生、辅导Java/python编程设计
- 首页 >> Python编程CSE 4/560 Project 3: XML and XQuery
Due 23:59 12/03/2018 EST
November 26, 2018
1 Submission
Failure to comply with the submission specifications will incur penalties for
EACH violation
1.1 What to submit
A zip file has to be submitted through the ‘submit cse460’/‘submit cse560’ submit
script by 12/03/2018 11:59PM EST. ONLY zip extension will be accepted.
1.2 Zip file naming convention
Write your ubit proj3 (NO SPACE!) for the filename, e.g. jsmith proj3.zip,
where jsmith is the ubit. The project is an INDIVIDUAL project, copied
solutions will be considered violations of academic integrity.
1.3 Sub-structure of zip file
On unzipping the zip file, there should be a folder named with ubit proj3.
Under the folder ubit proj3, there should be a .txt file named ubit proj3.txt,
this file contains your answers for all the problems.
2 Problem 1 (3 pts) XML Database Design
You are asked to design an XML database for TinyExpedia, which is a travel
booking website. TinyExpedia has three types of data to manage: customer
data, airline information and flight ticket booking data. Specifically, you are
given the following list of requirements:
TinyExpedia creates a record for each customer, and each record consists
of:
– A passport number, the passport number is also the key for the customer
records.
1
– A legal name.
– A date of birth (DOB).
– At least one address, each address consists of street, city, state, and
zipcode.
– A list of flight ticket orders that belong to the customer. (The requirements
of order data will be given soon).
TinyExpedia creates a record for each airline, and each record consists
of:
– An airline code, which is also a key.
– An airline name.
TinyExpedia also creates a record for each flight ticket order, and each
record consists of:
– An order number, the order number is also the key for the flight
ticket order records.
– At least one airline code, airline codes indicate which airline companies
the order associates to.
– A payment type, which indicates if the order is paid by a credit card,
a check, or a debit card, note only these three types are valid types
for payment type.
Write a DTD to model the above requirements. Use any xml validation tool
to validate your DTD with your test data, e.g., an XML Validation tool can
be seen at https://www.xmlvalidation.com/. For this problem, your solution
should include your DTD and your test data that is valid against your DTD
(note: test data shouldn’t be empty, and your test data should be able to show
all the modeling components of your DTD).
3 Problem 2 (7 pts) XQuery
Given the following DTD describes the information of the buildings of a university:
department indicates the departments that are using the buildings, name
is the name of the building, type indicates how the building is used, e.g., ’teaching’
means that the building is used for teaching purpose, year is the year the
building was built. Assume you have a xml database called buildings.xml that
is valid against the given DTD, write the following queries in your solution file,
use XQuery comments to separate your answers, e.g., (: answer for 2.1 :). Use
eXistDB to test and verify your answers, the file path of buildings.xml should
be ”/db/buildings.xml”. Note: Your solution should include only your
queries, please do not include the given DTD or any test data.
2
<!DOCTYPE buildings[
<!ELEMENT buildings(building*)>
<!ELEMENT building (department+, name, type+, year)>
<!ATTLIST building id ID #REQUIRED>
<!ELEMENT department (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT type (#PCDATA)>
<!ELEMENT year (#PCDATA)>
]>
2.1 (2 pts) Find all the buildings which are used only as a library, i.e., the
type is ”library”.
2.2 (2 pts) Find all the buildings which are used by both CSE department
and EE department.
2.3 (3 pts) For every department, find the department name and the total
number of buildings built in 1900 the department is using, you can ignore those
departments that are not using any building built in 1900, the result should be
sorted in lexicographical order by the department name.