ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:28.90KB ,
资源ID:7320182      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7320182.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ssd7练习中文.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

ssd7练习中文.docx

1、ssd7练习中文练习一 关系型数据库题目要求:设计以下两个关系,将你的答案书写在一个名为BookPublisher.html的HTML页面中。BOOK: Primary Author Title ISBN PublisherID Edition Date of Publication Price Book Description PUBLISHER: PublisherID Name Address 第一部分:1按照以下要求标识出每个关系的关键字(主键、备用键、外键)。对于此练习,选择关键字的时候可以忽略性能因素。1)标识出每个关系的主键,如果没有主键,做适当的论述证明你的答案。 2)标识出每

2、个关系的备用键,如果没有备用键,做适当的论述证明你的答案。3)标识出每个关系的外键和完整性约束,并做适当的论述证明你的答案。2.列出每个关系的属性名,和每个属性的域(数据类型和格式),并做适当的论述证明你的答案。要求:在每一个HTML表格中,列出至少四行正确的数据(可自己假设,要求合理、符合实际即可),将你的答案书写在一个名为BookPublisher.html的HTML页面中提交。第二部分:1.按照以下要求书写SQL语句,可以参考setting up your DBMS部分,将你的答案书写在一个名为createDB.Sql的文件中提交。 1)使用CREATE TABLE关键字创建两个关系,要

3、求标识出每个关系的主键和备用键。 2)使用INSERT关键字向每个关系中插入四行数据(第一你部分列出的数据)。 3)书写SQL语句查询出某两个作者(例如Addison Wesley and McGraw Hill)出版的所有书的标题和价格。同时在一个名为Rel-ops.txt的文件中列出你所使用的关系操作(选择、投影、联合),并做适当的解释。(哪部分SQL操作应用到了哪个关系操作) 4)书写SQL语句查询出某本书(如Fundamentals of Database Systems)的出版社名字。练习二 SQL运行给定的SQL脚本来创建一个图书馆的数据库。注意,Book表中的每一行指的是一本书的

4、副本。 因此, 如果一个数据库有三本DBMS, 那么Book表中将会有三行,一行一个副本。 编写SQL语句来完成下列操作。(注意:对于每个操作,你必须用一条SQL语句来表达你的查询。 但是在一个语句中可以含有子查询):1. 列出Churchill写的所有的书的书名,以及它们的出版日期。 2. 检索出名为John 或 Susan 的会员借出的所有书的书名。3. 列出那些已借了Iliad和Odyssey这两本书的所有会员的姓名和ID。4. 列出那些已借了Collins写的所有的书的所有会员的姓名和ID。假设,一名会员或许已经借了多本同样的书。5. 找出那些借了一本姓Tanenbaum的作者写的书的

5、所有会员的电话号码6. 找出那些借了至少三本书的成员,并列出它们的姓名,ID 以及他们借出的书的数量。 按借出书的数量将序排列找到的结果。7. 列出没有借任何书的会员8. 以字母序列出那些匹兹堡居民(电话号码以412开头)并且没有Pitt Roads这本书的会员的名。 独立完成这次评估,可查阅指导书。练习三 高级SQL此练习以图书馆系统library schema为案例,案例包含了图书馆书籍信息、图书馆成员信息,图书馆借阅信息(某本书被某个读者借阅几次),提供书籍的出版社信息,出版社订单信息。为了与其他练习作区分,本次练习的每个关系名字最后一个字符为阿拉伯数字4。注意:ReceivedDate

6、指系统收到订单日期,不是指某个消费者收到他所预订的货物日期。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) - T

7、ITLE4(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)FK(LibId) - MEMBER4(LibId)ORDERED4(CallNumber, PoNum, Supplier_I

8、d);PK(CallNumber, PoNum, Supplier_Id)FK(CallNumber) - TITLE4(CallNumber)FK(PoNum) - PURCHASE_ORDER4(PoNum)FK(Supplier_Id) - SUPPLIER4(Supplier_Id)使用CREATE TABLE and INSERT statements提供的SQL语句创建你的所有关系,要求在一个空的数据库中运行提供的SQL语句创建数据库。1.运行CREATE TABLE and INSERT statements提供的SQL语句,完成关系的创建和部分数据插入。2.书写SQL语句,删除

9、所有关系中的数据,将你的答案书写在一个名为delete_rows.sql的文件中。3.按照以下要求书写SQL语句,并运行它们,完成对数据库的修改和完善。 1)按照题目中提供的关系信息完成未创建关系的创建。根据CREATE TABLE and INSERT statements提供的数据插入语句来设置你每个关系的属性域(要求在创建好所有关系后能够运行插入数据语句正确地插入所有数据)。 (1)增加ISBN和Name两个属性为TITLE4关系的备用键(是两个备用键,不是两个属性组成一个属性组作为备用 键),同时设置两个属性为非空。 (2)增加每个关系的外键约束。 (3)为MEMBER4关系增加Joi

10、n_date和Gender两个属性。 (4)为READ_BY4关系增加约束,TimesRead为非负。2)运行INSERT SQL statements提供的SQL语句插入数据3)按照以下查询要求书写SQL语句,将你的答案书写在一个名为queries.sql的文件中。 (1)列出符合以下要求的所有图书馆成员的ID,第一名字和Join_date. ID以字符“A%B”或者“A&B”开始。 不晚于Nov. 30, 1997加入图书馆。 (2)列出符合以下要求的所有书的名字、ISBN、CallNumber。 由两个或两个以上的出版社提供。 所有的订单总量在10本以上。 按照订单总量递减的顺序排列结果

11、。 (3)列出符合以下要求的所有图书馆成员ID和第一名字。 借阅书的次数小于图书馆所有书借阅次数综合的5%。 按照借阅次数的递增顺序排列结果。 (4)列出符合以下要求的所有图书馆成员的ID和第一名字。 性别为女。 在图书馆有借阅记录(读某本书一次)。 按名字的字母顺序排列结果。 (5)列出符合以下要求的所有出版的名字,ID,和订书总量。 平均订书量(某个出版社收到的订书总量除以该出版社收到的订单数)低于系统的平均订书量(系统收到的订书总量除以所有订单数)。 (6)列出符合以下要求的所有图书馆成员的第一名字,ID。 性别为男。 Oct. 10, 1995前加入图书馆。阅读不同标题(title)书

12、籍的次数在5次或5次以下。阅读同一书籍(同一title)的次数在两次或两次以上作业提交文件:1. delete_rows.sql 2. alter_tables.sql 3. queries.sql 练习四 Web数据库编程 通过创建所有的HTML页面来设计你电子商城界面的各种视图。 你需要实现对这个电子商城项目进行的描述在附录中已给出了。 在这次练习中,你应该设计出附录附录中制定的电子商城需求的所欲HTML页面(不只是附录中给出的截图)。你的HTML页面不需要包含那些用于访问数据库的必要代码。 但是,在系统的最终实现中,你的html页面应该包含所有可按动的按钮及连接。有必要的话,你可以在你的

13、HTML页面中编一些虚拟的数据作为占位符。 标明连接到相关html页面的链接以便点击这些链接后可以跳到适当的包含一些虚拟数据的html页面。确定那些链接和按钮,当单击它们的时候,开始访问数据库。例如,让我们来看下这三个页面的详细介绍: 搜索页面,搜索结果的页面和书目页面。 搜索页面应该为用户提供一个文本框用于填写搜索标准,此外,在文本框的旁边还应该有一个按钮。 在最终的实现中,点击这个按钮将会开始一个数据库搜索,但是在你已经完成了当前练习后,它将不会做这些事情。 在这次练习中,点击该按钮后仅出现一个搜索结果页面,该页面包含一些之前编写的书集。不考虑搜索标准,同样的书集将在搜索结果页面显示出来。

14、 搜索页面中的每一本书回事一个超链接。 点击一本书上的超链接将会出现另一页面,这个页面包含了更多书本的详细说明。 此外,在这次练习中,不管点击哪本书,都将显示出同一本书的详细说明。提交你所有的html页面。用这些SQL代码创建一个小数据库。该代码会创建一个非常简单的联机图书馆。 基于支持图书馆会员能够实现添加一本书到借书篮的应用来设计Web页面。 在你的应用程序中,必须拥有下列功能:1. 主页面应该由一个图书列表包含图书馆所有的书,一个按钮用于更新借书篮及一个链接用于连接到一个可以查看借书篮的页面。2. 每一本书都应该有一个复选框。 当点击更新按钮时,每一本被选中的书都应该被添加到借书篮中。如

15、果一本书已经在借书篮中,那么他的数量应该增加1。3. 用于查看借书篮内容的页面。4. 用于查看借书篮内容的页面必须含有一个返回主页面的链接及一个按钮,当点击按钮的时候,清空借书篮。5. 你的应用程序应该是无错而且能够很好地处理异常。 你的应用程序决不能崩溃或是显示一些服务容器生成的错误信息(例如,Java中抛出的堆栈跟踪)。 但是,你可以在标准错误页面显示出堆栈跟踪。你的应用程序应该遵照模型视图控制器架构。为此,你应该写一个Java小程序来处理从借书篮中添加和删除书。借书篮一定是一个会话层的对象。你也可以用这个对象作为实现结束蓝的起点。注意所有的错误,不管他们的来源,都应该被发送到同一个错误页

16、面。你应该用一个Java服务器页面来显示篮子中的书。你应该用一个Java服务器页面来显示图书馆的所有书。该页面应该用一个页面层的对象,根据书名和ISBN来查询图书馆中所有的书。书名应该被展示给用户,ISBN可以用作形式参数。这个JavaBean应命名为LibraryBooks。这个对象应该有名为getTitles()和getIsbns()的方法,分别以字符串数组的形式返回图书馆中的书名和ISBN。因此,你应该撞见和递交以下文件:1. LibraryBooks.java 一个用于存储当前图书馆所有书籍的JavaBean。2. viewbasket.jsp 一个用于显示一个用户借书篮中的所有书的J

17、ava服务器页面。3. showbooks.jsp 一个用于显示图书馆中所有书籍的一个Java服务器页面。 5. errorpage.jsp 一个用于显示所有错误的Java服务器页面。6. AddBasketController.java 一个从ShowBooks中接受输入并将一本选中的书添加到用户借书篮的服务程序。 7. ClearBasketController.java 一个清空用户借书篮的服务程序。 提交运行你的应用程序所必需的代码。独立完成这部分评估,可查阅指导书。练习五 ER模型以附录中提供的电子商务描述为案例,建立ER模型。注意,案例描述是以用户需求为中心描述的,因此并未标识出所

18、有关系的关键字(主键、备用键),你需要自己去标识完全。为了完成题目,你可以做适当的假设。要求你的假设必须与最终设计出的ER模型相符合。ER模型中要求标识出以下内容: 实体类型(标识出弱实体) 每个实体的属性(单值/多值,派生,简单/复杂等等),要求属性写在一个文本文档中,不要写在ER图中。 关系类型(标识出关系角色,基数约束和参与性约束)答案提交:将ER关系图以ER.gif命名,将属性书写在ER.txt文本文档中提交。练习六 规范化在名为normalization.txt的文件中提出下列问题的解决办法。注意:这次练习中所讨论的问题是独立于附录中描述的电子商务项目的。下面的表格捕捉到了下列关于电

19、子商务图书商城的现实情况:在日期为ShippedDate这天,一姓名为EmpName,ID为EmpID的职员已将订单(订单号为OrderNo)发送到地址ShipToAddr。运单号是TrackingNum。该运单号由运送货物的快递公司提供。该图书商城只用一家快递公司。注意:基于订购物项目的可用性,一个订单可以被分割成多个进行发送。一次发送只由一个职员处理,但是,如果一个订单以多个发送的形式发货,那么可以由多个职员来处理该订单。1. 列出主键。2. 列出所有FD。3. 列出所有的更新异常并各给出一个实例。4. 这个关系属于哪种范式?给出解释。5. 逐步对它进行规范化,给出该关系的第三范式。即,如

20、果该关系未被规范化,那么给出它的第一范式,然后给出刚创建的第一范式的第二范式,最后,给出由第二范式进一步规范出的第三范式。对于每一次到更高范式X的转换,1. 解释每一次规范化的步骤。2. 提供X范式的表格结构,主键及FD。3. 解释你认为它是第X范式的理由。即,如果该关系是一个未规范化的形式,那么你应该解释你将它转换成第一,第二, 第三范式的过程。你也应该分别提供相应的表格结构,主键及FD。你也应该解释为什么你认为它是第一,第二及第三范式。这次练习,你应该提交下列文件。1. normalization.txt独立完成这部分评估,可查阅指导书。练习七 ER映射使用课件中提供的ER映射算法,将你练

21、习5中的ER模型转换为相应的关系模型。按照以下符号约定完成本练习 PK : Primary Key AK : Alternate Key FK : Foreign key要求按照以下格式书写,并详细写出映射的每步操作。EMP(SSN, Name, DriverLicenseNo, DeptNo);PK (SSN)AK (DriverLicenseNo)FK (DeptNo) - Dept(DNo)将以上题目答案书写在名为relational-schema.txt的文本文档中。书写SQL语句,完成你以上映射产生的所有关系的创建工作。注意,要标识出所有关系的关键字、外键约束等等。将SQL语句保存在

22、relational-model.sql文件中提交。提交文件:1. relational-schema.txt 2. relational-model.sql 练习八 E-Commerce Project(电子商务项目)完成附录中指定的电子商城项目。它应该具有项目描述文档中的提到的功能。提交所有相关的文件以及SQL语句来创建你的初始数据库。用prxyuser作为用户名,用prxypass作为联机字符串中的密码。 将你的数据库命名为bookstore。你可以借鉴卡耐基图书馆项目的思路。用WinZip或其他一些使用工具或多种工具的集合,将你所有的文件打包并压缩到一个文件。.tar和gzip都是免费

23、实用软件,你可用从网上下载帮你将多个文件打包并压缩成一个文件。在考试3中,或许会让你扩展实现你的电子商城项目。代替扩展你的实现,你可以扩展卡耐基图书馆项目这个例子。务必保证你有构建一个基于网页的数据库应用的技能。掌握这些技能并且为考试3做准备的最好方法就是完成你的项目。独立完成这部分的评估,可查阅指导书。练习九 事务编程第一部分:测试数据库事务提交和回滚几乎所有的商业DBMS软件都会支持在事务提交前的回滚,这对于保证事务原子特性非常有用。你可以使用rollback命令撤销掉部分操作。此部分练习将会让你熟悉rollback和commit命令。1 运行SQL script建立一个小的银行数据库,a

24、ccount关系包含两列,用户id和账户余额。有两行数据,定期储蓄账户(id为1)和活期储蓄账户(id为2)。2 开始一个新事务。3 查询活期储蓄账户余额,将查询结果拷贝到rollback.txt文档中。4 删除定期和活期两个储蓄账户,将SQL语句拷贝到rollback.txt文档中。5 查询两个账户的信息,将结果拷贝入rollback.txt文档中。6 回滚事务。7 查询两个账户的余额,将结果拷贝入rollback.txt文档中。8 开始一个新事务。9 删除定期储蓄账户,将SQL语句拷贝入rollback.txt文档中。10 查询表account的所有行,将结果拷贝入rollback.txt

25、文档中。11 提交事务。12 尝试回滚刚刚提交的事务。查询表中存储的值。解释说明事务提交和回滚产生的不同影响。将结果写入rollback.txt文档中。第二部分 测试事务隔离等级PostgreSQL支持两种事务隔离等级。完成以下练习,熟悉PostgreSql支持的隔离等级。1. 运行SQL script建立一个小的银行数据库,account关系包含两列,用户id和账户余额。有两行数据,定期储蓄账户(id为1)和活期储蓄账户(id为2)。2. 开始两个PostgreSQL窗口会话。3. 两个窗口都开始一个新事务。4. 第一个窗口,将活期储蓄账户余额更改为455.66。5. 第一个窗口,查询acc

26、ount关系所有行,结果拷贝入isolation.txt文档中,用序号标识出数据来自于窗口一。6. 第二个窗口,查询account关系所有行,结果拷贝入isolation.txt文档中,用序号标识出数据来自于窗口二。7. 第一个窗口,提交事务。8. 第二个窗口,查询account表所有行,结果拷贝入isolation.txt文档中,用序号标识出数据来自于窗口二。窗口一的数据更新是否生效?为什么?将解释部分写入isolation.txt文档中。9. 第二个窗口,提交事务。10. 两个窗口都开始一个新事务。11. 第二个窗口设置事务隔离等级为串行化,将SQL语句写入isolation.txt文档中

27、。12. 第一个窗口,设置活期储蓄账户余额为1400。13. 第二个窗口,设置定期储蓄账户余额为1。14. 在两个窗口内查询account关系的所有行。用序号标识出数据来源于窗口一或二。15. 第一个窗口,提交事务。16. 第二个窗口,查询account关系所有行。活期储蓄账户值是否更新?为什么?第一个窗口的定期储蓄账户值是否更新?为什么?将解释语句写入isolation.txt文档中。17. 第二个窗口提交事务。在两个窗口查询数据。将结果拷贝入isolation.txt文档中,用序号标识出数据来源,并解释产生为何会产生此结果。将答案拷贝入isolation.txt文档中。第三部分 阻塞和死锁

28、1.运行SQL script建立一个小的银行数据库,account关系包含两列,用户id和账户余额。有两行数据,定期储蓄账户(id为1)和活期储蓄账户(id为2)。2.开始两个PostgreSQL窗口会话。3.两个窗口都开始一个新事务。4.第二个窗口中将活期储蓄账户余额更新为455.75.5.第一个窗口中将活期储蓄账户余额更新为1400,更新能否成功,解释说明,将答案写入deadlock.txt文档中。6.第二个窗口提交事务,观察第一个窗口变化,解释说明,答案写入deadlock.txt文档中。7.第一个窗口提交事务。8.两个窗口开始一个新事务。9.第二个窗口中将定期储蓄账户余额更新为2400

29、.10.第一个窗口中将活期储蓄账户余额更新为2000.11.第一个窗口中将定期储蓄账户余额更新为1400.12.第二个窗口中将活期储蓄账户余额更新为1000.50.13.观察结果,试着解释原因。结果写入deadlock.txt文档中。14.在每个窗口中查询表的数据,你观察到了什么?试做说明,将答案写入deadlock.txt文档中。练习十 索引选择及查询优化背景在这次联系中,你将亲自动手实验用索引进行查询优化。你操作的数据由一个简单实时评估信息系统组成,该系统存储了用户,地段,用户所拥有的地段的信息。 这些表格的SQL框架如下:Customer( customer_id, customer_f

30、irst_name, customer_last_name )Lot ( lot_id, lot_description, lot_size, lot_district, lot_value, lot_street_address )Customer_lot (lot_id, customer_id)你必须设计数据库的访问方法以便在各种操作条件下,能够获得最可能的效果。这些操作条件是运行在你的系统上的不同类型的查询。这些在系统上运行的不同查询如下:1. 给定一个大小范围,选出所有范围内的地段号lot_id。该类查询的实例应该是select lot_id from lot where lot_s

31、ize between 300 and 15000;2. 给定一个值的范围,选出所有范围内的地段号lot_id。该类查询的实例应该是select lot_id from lot where lot_value between 300 and 15000;3. 选出一个指定用户的所有信息。该类查询的实例应该是select * from customer where customer_id=12;4. 插入新的用户或地段数据。该类查询的实例应该是insert into customer values (250001, Vince, Smith ); 5. 删除一行用户或地段数据。该类查询的实例应该是delete from customer where customer_id=250001; 6. 更新一行用户或地段数据。该类查询的实例应该是update customer set cust

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2