《数据库应用程序设计实践》任务书

更新时间:2023-10-03 19:45:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数据库应用程序设计实践

任 务 书

东北大学软件学院

2013年3月

程序实践(四)任务书

一 课程基本信息 ............................................................................................................................. 1 二 教学目的和基本要求 ................................................................................................................. 1 三 课程设计的内容和安排 ........................................................................................................... 1 四 课程设计的题目 ......................................................................................................................... 1 五 考核的方法和成绩的评定 ......................................................................................................... 2 六 时间的安排 ................................................................................................................................. 2 七 课程设计结果的提交 ................................................................................................................. 2 八 课程设计报告的格式(见附页) ............................................................................................. 2 九 课程设计题目说明 ..................................................................................................................... 2 附页................................................................................................................................................... 1

2

一 课程基本信息

1. 课程设计名称:数据库应用程序设计实践 2. 课程设计编号: 3. 课程设计学分:2学分

4. 课程设计周数(学时):3周(32学时) 5. 课程设计授课单位:软件工程研究所 6. 指导方式:集体辅导和个别辅导相结合 7. 适用专业:软件工程(高起本、1+3) 8. 课程设计教材及主要参考资料:

[1]《数据库设计、应用开发与管理》,Michael V. Mannino等著,电子工业出版社,2005.1

[2] http://www.icarnegie.com/

二 教学目的和基本要求

1. 加深对数据库系统、程序设计语言的理论知识的理解和应用水平。

2. 通过完成具有实际意义的Web数据库练习,进一步熟悉数据库管理系统的操作技

术,提高动手能力,提高分析问题和解决问题的能力。

3. 提高综合运用所学的理论知识和方法,独立分析和解决问题的能力。

三 课程设计的内容和安排

1. 安装并运行数据库;

2. 完成关于关系数据库基础知识的题目1;

3. 运行给定的SQL语句,生成图书馆管理系统的数据库,编写相应的SQL语句,完

成题目2中要求的内容;

4. 运行给定的SQL语句,生成图书馆管理系统的数据库,编写高级的SQL语句,完

成题目3中要求的内容;

5. 完成Web 数据库程序设计题目4(选做)

6. 阅读附录中的电子商务系统,给出该电子商务系统的E-R模型; 7. 完成关于规范化内容的题目6;

8. 对于第6步中自己设计的E-R模型,将其转换为关系数据模型; 9. 完成关于事务编程方面的题目8,9; 10. 完成索引建立和查询优化方面的题目10; 11. 完成整个的电子商务项目;(选做) 12. 完成网上书店项目;(选做)

13. 撰写课程设计报告:总结和提升上述过程和步骤,写出结构严谨、表述清楚、符合

设计规范的报告。

四 课程设计的题目

本课程实践要求完成一个电子商务项目(Web DB应用),其中包括10个具有实际意义的数据库练习,包括了数据库系统应用中的各个方面的知识。此外附件A、B还包括一个实际的图书馆项目,可根据实际情况选做。

程序实践(四)任务书

五 考核的方法和成绩的评定

考核成绩分为两个部分: 1. 验收部分:占60%。 按照以下几个指标进行验收

验收时是否能够快速完成老师指定的练习题目 回答问题的思路是否清晰 内容设计的是否规范、合理 内容设计的创新性 2. 实验报告(40%)

实验报告结构是否清晰,问题叙述是否具有逻辑性 Web数据库应用程序设计的正确性

六 时间的安排

共3周(见教学办安排)。每个同学可以根据自身实际情况掌握进度,做完整个项目即可验收,最晚到实践课的最后一天。

七 课程设计结果的提交

1. 课程设计报告(一份、A4纸打印,同时包括一份电子文档)

2. 答辩报告(制作PPT报告,电子方式提交),要求重点突出,思路清晰,同时就此报

告准备答辩。

所有电子方式提交的文件全部存放在一个目录中,并对其进行压缩,压缩后的文件按规定格式进行命名,命名格式为:班级号+学号+姓名。

八 课程设计报告的格式(见附页)

1. 按各个题目的要求书写相关文档; 2. 参考文献。

九 课程设计题目说明

见文件夹--------“程序实践四资料”

此文件夹内共有十个练习文件夹(练习1----练习10内均为超文本文件,索引文件为 “练习N.html”)

另有附件A、B、C,其中附件C为前十个练习的参考项目资料,附件A和B为可选做项目的参考资料。

9.1 关系数据库

设计以下两个表:

2

程序实践(四)任务书

BOOK:

? Primary Author ? Title ? ISBN

? PublisherID ? Edition

? Date of Publication ? Price

? Book Description PUBLISHER:

? PublisherID ? Name ? Address 第一部分:

1.指出你所设计表的各种键值,在选择时不要考虑性能问题。

1) 指出每张表是否存在主码,若存在,请指出具体的主码,并说明原因。 2) 指出每张表是否存在备用码(除了主码之外的所有候选码),若存在,请指出所有的备用码,

并说明原因。

3) 指出各表中存在的外码和完整性约束,并说明原因。 2. 列出各表所有列和各列的域(数据类型和格式),并说明理由。 第二部分:

写出如下SQL语句:

1. 用DDL语言中的CREATE TABLE语句创建以上两张表,并确定指定了表的主码和备用码; 2. 利用INSERT语句向每张表中以上四条记录;

3. 写SQL语句检索两个出版人之一(比如说是Addison Wesley和McGraw Hill)所出版书籍的

标题和价格,列出你所用到的所有选择、投影和连接操作,并说明各个操作在查询中的作用; 4. 写SQL语句,检索特定书名(比如说是”Fundamentals of Database Systems”)的出版人。 第三部分:

1. 已知关系表r和s如下:

表 r A a d c 表 s D b d

给出差运算r-s和s-r的结果;

B b a b E g a F a f C c f d 2. 描述下面查询的结果,如果将UNION用EXCEPT替代,又会有什么样的查询结果?

( SELECT MemNo

FROM MEMBER, BOOK

WHERE MemNo = BorrowerMemNo AND CallNumber = 'QA76.9.D26C66' )

UNION

( SELECT MemNo

3

程序实践(四)任务书

FROM MEMBER, BOOK

WHERE MemNo = BorrowerMemNo AND CallNumber = 'QA76.9.D7E53' );

9.2 SQL

运行给定的SQL语句生成一个图书馆数据库。注意Book表中的每一条记录代表一本具体的书,因此,

如果图书馆中有三本名为\的书,Book表中将有三条相关记录,每条代表一本书。请写出针对以下问题的SQL语句(每一问必需用一条SQL语句实现,但该SQL语句可以包含子查询)。

1. 2. 3. 4. 5. 6. 7. 8.

列出作者为\的所有书籍的名称和出版年份;

检索first name为\或\的借阅者所借阅所有图书的标题; 列出同时借阅\和\这两本书的所有借阅者的names和IDs;

列出借阅了Collins所写的所有图书的读者的names和IDs,假设一位读者可以同时借阅一本书的多个复本;

查找借阅了last name为\anenbaum\的作者所著作的任一本书籍的所有读者的电话号码; 查找借阅了三本书以上的读者,并列出他们的names、IDs以及所借阅图书的数量,查询结果按所借阅图书的数量降序排列; 列出没有借阅图书的所有读者;

按字母顺序列出是Pittsburgh居民(电话号码以412开头)并没有借阅图书\的所有读者的first names。

9.3 Advanced SQL

在该练习中,我们使用一个图书馆数据库。它包含了图书馆藏书信息,读者信息,图书借阅次数,图

书供应商信息,以及与供应商所签订的订单信息。为了区分其它练习中的数据库表名,该练习中所有数据库表名称都以字母'4'结束。

注意:ReceivedDate列指的是订单录入系统(即保存到数据库中)的日期,而不是消费者接收到其TITLE4(Name, ISBN, CallNumber, Year, AuthorFName, AuthorLName); PK(CallNumber)

MEMBER4(LibId, Fname, Lname, Address, PhoneNumber); PK(LibId)

BOOK4(Book_Id, Edition, Status, BorrowerId, BorrowerDueDate, CallNumber); PK(Book_Id)

FK(BorrowerId) -> MEMBER4(LibId) FK(CallNumber) -> TITLE4(CallNumber)

PURCHASE_ORDER4(PoNum, Qty, OrderDate, DueDate, ReceivedDate); PK(PoNum)

SUPPLIER4(Supplier_Id, Name, Address); PK(Supplier_Id)

READ_BY4(CallNumber, LibId, TimesRead); PK(CallNumber, LibId)

FK(CallNumber) -> TITLE4(CallNumber) 所订购书籍的日期。

4

程序实践(四)任务书

FK(LibId) -> MEMBER4(LibId)

ORDERED4(CallNumber, PoNum, Supplier_Id); PK(CallNumber, PoNum, Supplier_Id) FK(CallNumber) -> TITLE4(CallNumber)

FK(PoNum) -> PURCHASE_ORDER4(PoNum) FK(Supplier_Id) -> SUPPLIER4(Supplier_Id)

利用给出的CREATE TABLE和INSERT语句创建一个数据库。为了不和现有的表冲突,我们需要建立一个空的数据库来运行这些DDL语句。

1.运行CREATE TABLE和INSERT语句; 2.编写并运行SQL语句,删除所有表中的记录; 3.编写并运行SQL语句,按照以下方式来修改数据库:

1) 2) 3) 4) 5)

创建上面列出的还未创建的数据库表,当设定表中各列的类型和长度时,需要考虑给定的用于填充数据的INSERT语句;

将表TITLE4中的ISBN和Name字段设置成备用码,而且它们不能取空值; 在所有表中添加指定的外码约束;

在表MEMBER4中添加\和 \两列; 指定表READ_BY4中\列不能取负值。

4.根据给定的INSERT语句填充数据库; 5.编写SQL语句实现如下功能:

1) 2) 3) 4) 5) 6)

显示ID以字母\或 \开头,并且加入图书馆不晚于Nov. 30, 1997的所有读者的ID, first name和joining date;

显示满足如下条件所以书籍的name, ISBN和call number,这些书籍由两个以上的供应商提供,并且订购的数量大于10,显示时按书籍的总订购数量非升序排列;

显示所有借阅图书的数量少于图书馆总藏书5%的读者的IDs和first names,结果按借阅图书数量非降序进行排列;

按字母顺序列出所有至少读一本书两次的女读者的first names和IDs;

列出满足如下条件的供应商的names和他们各自的订单平均订购书籍数量,要求他们的订单平均订购书籍数量大于系统中所有订单的平均订购书籍数量;

按字母顺序列出满足如下要求的所有图书馆中男读者的first names和IDs,要求他们在Oct. 10, 1995之前加入图书馆,并且仅读了五本或更少的不同的图书,对于同一本图书,他们曾没有读过多遍。

9.4 ER Models

参考附录中的电子商务工程的描述,完成你的电子商务数据库的ER建模。注意附录中的说明是从用为了完成说明,我们需要进行合理的假设,并要对这些假设进行精确描述,我们ER图中任何一个部在设计ER图时注意以下几点: ? ? ?

指明实体类型(指定是否为弱实体);

指明每个实体的属性及类型(指定是单值或多值、简单或复合属性等),将属性列在表格中,不要直接画在图上;

指明联系的类型(指定联系的基数以及联系是强制还是可选联系)。

户的角度来出发的,因此并没有列出所有的码(主码和备用码),联系以及联系的类型,我们需要确定它们。 件都可以由附录中的说明或我们所作的假设进行实例化。

5

程序实践(四)任务书

9.5 Normalization

下表是为网上书店设计的一张表(注意和附录中的电子商务系统无关):雇员的姓名为EmpName、

员工号为EmpID,订单号为OrderNo,邮寄地址为ShipToAddr,邮寄日期为ShippedData,由邮递公司产生的邮寄单号为TrackingNum,假设该网上书店仅使用一个邮递公司来邮寄物品。

注意: ? ?

一个订单可以分多次进行邮寄,即每个订单可以包含多个邮寄单号; 每次邮寄仅有一名雇员来完成,但是一个订单可以由多个雇员邮寄。

SHIPMENT EmpID EmpName OrderNo ShipToAddr ShippedDate TrackingNum 4615 Forbes Ave, 1234 Joe 223 Pittsburgh, PA 12/21/99 12435678 15147 4615 Forbes Ave, 2134 Jones 224 Pittsburgh, PA 12/25/99 21345678 15147 1. 2. 3. 4. 5.

给出主码; 写出所有的函数依赖;

写出所有的修改异常,并举例说明; 解释该关系属于第几范式?

利用关系模式规范化的方法,将该关系规范化为3NF。即,如果该关系是非规范化关系,则将其规范化为1NF,然后将其在1NF的基础上转换为2NF,在在2NF的基础上转换为3NF。 ? ? ? ?

在每一个规范化过程中,要描述以下内容: 解释转换为范式X的步骤;

给出范式X下表的结构,主码和函数依赖; 给出其符合范式X的原因。

9.6 ER Mapping

利用映射算法,将1.4节中你所设计的E-R模型转换为关系数据模型。使用下例所示的方法来描述你

得到的关系数据模型:PK代码主码,AK代码附码,FK代表外码,使用箭头指向相关联表的主码。要写出映射算法中每一步的结果。

EMP(SSN, Name, DriverLicenseNo, DeptNo); PK (SSN)

AK (DriverLicenseNo)

FK (DeptNo) -> Dept(DNo)

最后,针对你最终得到的关系模式,给出相应的CREATE TABLE语句。在CREATE TABLE语句中要添加完整性约束:码、关联等。并运行你的SQL语句产生该关系模式。

9.7 Programming with Transactions 9.8 Index Choice and Query Optimization

6

附页

数据库应用程序设计实践

总结报告

专 业 班 级 学 号 姓 名

东北大学软件学院

日 期 1.关系数据库

2.SQL

3.Advanced SQL

……..

n. 参考文献

例:

[1] 萨师煊,王珊.数据库系统概论(第三版)[M].北京: 高等教育出版社,2002,122-150. [2] 侯捷.Java编程思想[M].北京:机械工业出版社,2002,22-35.

本文来源:https://www.bwwdw.com/article/krwd.html

Top