第一篇:数据库原理实验指导书
《数据库原理实验指导书》
河南科技大学电子信息工程学院目录
实验规则..................................................................................................................................0 实验报告要求..........................................................................................................................2 基本实验方法..........................................................................................................................2 实验环境..................................................................................................................................2 实验一:数据定义及更新语句练习......................................................................................3 实验二:简单查询和连接查询..............................................................................................5 实验三:分组查询和嵌套查询..............................................................................................7 实验四:视图操作和数据控制..............................................................................................9 实验五:触发器和存储过程................................................................................................11 选作题目................................................................................................................................13
实验规则
为了顺利完成实验教学任务,确保人身设备安全,培养严谨、踏实、实事求是的科学作风和爱护国家财产的优良品质,特制定以下实验规则:
1、实验纪律
(1)在实验室不得做和实验无关的事情。(2)遵守纪律,不迟到,不旷课。
(3)不能拆卸硬件,更不能拿走实验设备或仪器。(4)保持实验室安静、整洁,爱护公物。
2、实验过程
(1)预习实验内容。自行设计SQL语句。
(2)上机操作。每执行一句记录执行情况,主要是错误信息和错误原因。(3)检查操作结果是否正确。
(4)根据实验过程的记录书写实验报告。
实验报告要求
1、报告用纸 采用统一的河南科技大学实验报告用纸,不得用别的纸张代替。
2、实验报告封面内容
实验名称:(如实验一 数据库创建)班级名称:(如计科101班)学生学号: 学生姓名: 实验时间:
3、实验报告内容
见各具体实验项目的要求。
基本实验方法
本实验要求熟悉SQL Server环境和数据库的相关知识。
实验环境
Microsoft SQL Server2012 2 实验一:数据定义及更新语句练习一、二、实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新。预习要求:实验前复习讲授过的有关创建数据库、基本表的SQL语句,预习SQL Server2000环境,特别是资源管理器和查询分析器的相关用法。
三、实验内容:
(一)用SQL语句建立如下mySPJ数据库,包括S,P,J,和SPJ四个基本表(教材第二章习题5中的四个表),要求实现关系的三类完整性。
S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY)供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商 供应某种零件 给某工程项目的数量为QTY。
(二)分别使用插入、删除、修改的方式更新基本表中的数据。
四、实验方法和步骤:
(一)使用Microsoft SQL Server企业管理器和查询分析器建立数据库mySPJ: 1.打开“开始->程序->Microsoft SQL Server->企业管理器”;
2.在企业管理器左边的树标签中依次打开“Microsoft SQL Server-> SQL Server组->(local)(Windows NT)->数据库”,(local)(Windows NT)前的红色标记转化为绿色标记表明NT服务已启动;
3.从企业管理器的“工具”菜单中选择“SQL 查询分析器”,打开查询分析器后,在其窗口书写创建数据库mySPJ的SQL语句,点击执行按钮(或F5键)执行该SQL 3 语句;
4.在企业管理器左边的树标签中查看数据库是否建立成功。
(二)在数据库mySPJ中建立S,P,J,和SPJ四个基本表:
按照实验内容给出的基本表结构在查询分析器窗口中书写SQL语句分别建立各表,并设置主键和外键约束;
(三)更新表数据:
1.利用Insert 语句将习题中给出的示例记录插入各表。2.利用Update更新表中的记录:
①将p表中的所有红色零件的重量增加5。
②将spj表中所有天津供应商的QTY属性值减少10。用子查询。
3.利用Delete语句删除p表中的所有红色零件的记录。
4.SQL语句执行后返回基本表查看更新后的结果,如果与期望不符,分析原因并记录在实验报告中。
五、思考题:
(一)在为各表设定关键字时弹出的页面中有关键字和索引选项,试通过给基本表设定这两个项目并说明二者的区别。
(二)在基本表中输入数据时,注意数据与字段的数据类型和长度以及能否为空的属性是否一致,保存时如有错误分析错误原因,及时改正并将错误报告写在实验报告中。
六、实验报告要求:
(一)实验目的:(二)实验内容:
(三)完成情况(附上设计的SQL语句)。
(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。(六)回答思考题提出的问题,(七)实验总结:心得体会,建议等。
实验二:简单查询和连接查询
一、实验目的:熟练掌握用SQL语句实现的简单查询和多个数据表连接查询。
二、预习要求:实验前复习讲授过的有关简单查询与多表查询的知识,编写相应的SQL语句。
三、实验内容:
(一)完成下面的简单查询:
①查询所有“天津”的供应商明细; ②查询所有“红色”的14公斤以上的零件。③查询工程名称中含有“厂”字的工程明细。(二)完成下面的连接查询:
①等值连接:求s表和j表的相同城市的等值连接。
②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。
③笛卡尔积:求s和p表的笛卡尔积 ④左连接:求j表和spj表的左连接。⑤右连接:求spj表和j表的右连接。
四、实验方法和步骤:
参照实验一中给出的使用Microsoft SQL Server企业管理器和SQL查询分析器的方法,将实验内容中所要求的查询项目依次用SQL语句实现,并记录下执行结果。
五、思考题:
查看实验内容2中左连接和右连接的执行结果是否一致,为什么?
六、实验报告要求:(一)实验目的:(二)实验内容:
5(三)完成情况(附上设计的SQL语句)。
(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。(六)回答思考题提出的问题,(七)实验总结:心得体会,建议等。实验三:分组查询和嵌套查询
一、实验目的:熟练掌握用SQL语句实现多个数据表的分组查询和嵌套查询。
二、预习要求:实验前复习讲授过的有关分组查询和嵌套查询的知识,编写相应的SQL语句。
三、实验内容:(一)分组查询:
1.求各种颜色零件的平均重量。2.求北京供应商和天津供应商的总个数。3.求各供应商供应的零件总数。4.求各供应商供应给各工程的零件总数。5.求使用了100个以上P1零件的工程名称。6.求各工程使用的各城市供应的零件总数。
(二)嵌套查询:
1.in连接谓词查询:
① 查询没有使用天津供应商供应的红色零件的工程名称。② 查询供应了1000个以上零件的供应商名称。(having)2.比较运算符:求重量大于所有零件平均重量的零件名称。3.Exists连接谓词:
① 查询供应J1的所有的零件都是红色的供应商名称。② 至少用了供应商S1所供应的全部零件的工程号JNO。
四、实验方法和步骤:
参照实验一中给出的使用Microsoft SQL Server企业管理器和SQL查询分析器的方法,将实验内容中所要求的查询项目依次用SQL语句实现,并记录下执行结果。
五、思考题:
(一)嵌套查询中的in连接谓词查询,关键字in可以直接用any代替么?什么情况下in和any可以互相代替?
(二)嵌套查询中的内查询为外查询返回的内容是什么?是表达式?视图?还是物理数据集合?
六、实验报告要求:(一)实验目的:(二)实验内容:
(三)完成情况(附上设计的SQL语句)。
(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。(六)回答思考题提出的问题,(七)实验总结:心得体会,建议等。
实验四:视图操作和数据控制
一、实验目的:熟练掌握用SQL语句实现视图操作和数据控制。
二、预习要求:实验前复习讲授过的有关视图操作和数据控制的知识,编写相应的SQL语句。
三、实验内容:
(一)定义如下视图:
①查询北京的供应商的编号、名称和城市。②查询S1供应商的所有供应明细。
③查询各工程名称使用的各种颜色零件的个数。查询上面定义的视图。
(二)数据控制:
①使用GRANT把对S表查询的权利授予WangLi。
②使用GRANT把对P表查询、插入、修改、删除的权利授予LiMing。
③使用REVOKE把LiMing对P表插入、删除的权利回收。
四、实验方法和步骤:
参照实验一中给出的使用Microsoft SQL Server企业管理器和SQL查询分析器的方法,将实验内容中所要求的查询项目依次用SQL语句实现,并记录下执行结果。
五、思考题:
实验内容中的哪些视图可以用来更新记录?
六、实验报告要求:(一)实验目的:(二)实验内容:
(三)完成情况(附上设计的SQL语句)。
(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后 9 分析错误原因,并给出解决办法。(六)回答思考题提出的问题,(七)实验总结:心得体会,建议等。
实验五:触发器和存储过程
一、实验目的:理解触发器和存储过程的含义,掌握用SQL语句实现触发器和存储过程的编写,并初步掌握什么情况下使用事务。
二、预习要求:存储过程和触发器的相关概念,事务的相关概念,编写相应的SQL语句。
三、实验内容:
有一个小型的图书管理数据库,包含的表为:
bookstore(bookid,bookname,bookauthor,purchasedate,state);--图书库存表
borrowcard(cardid,ownername);--借书证表
borrowlog(cardid,bookid,borrowdate,returndate);--借书记录表 写一个存储过程,实现借书操作,要求有事务处理。(1)读者借书,要先设置书籍不在库标志state(借出),然后增加借书记录,在同一事务中完成。(2)要求在事务执行过程中引入错误触发事件,以此体会事务的错误保护机制和事务编程的作用。(3)要求用触发器实现表的完整性控制。
四、实验方法和步骤:
(一)在查询分析器中创建包含以上三张表的数据库。
(二)参考CREATE PROCEDURE语句和Create Trigger语句。在事务执行过程中引入错误触发事件,可以考虑在增加借书记录时违反实体完整性或参照完整性,以此体会事务的错误保护机制,并用触发器实现表的完整性控制。
五、思考题:
如何通过系统的设置实现类似的功能,而不需触发器?
六、实验报告要求:(一)实验目的:(二)实验内容:
(三)完成情况(附上设计的SQL语句)。
11(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。(六)回答思考题提出的问题,实验总结:心得体会,建议等。
选作题目
选作题目1:用vb,delphi或者c++builder设计一个数据库应用程序,实现一个简单的成绩管理,建立三个表:学生表S,课程表C和成绩表SC。要求实现的功能:(1)维护学生信息;(2)维护课程信息;(3)录入成绩;(4)查询一个学生的所有课程成绩;(5)查询每门课程的平均成绩。(6)打印学生成绩报表;(7)打印每门课程的平均成绩报表。
选作题目2:自由结合以(5-6)人为小组完成一个数据库系统设计的小课题。要求用ERWIN工具对数据库进行建模。
第二篇:(2008版)数据库原理实验5指导书
一 实验题目:视图的定义和使用
二 实验目的:加深对视图的理解,熟练视图的定义、查看、修改等操作 三 实验内容及要求:(从下面10个题目中选一个)题目一:
学生(学号,年龄,性别,系名)课程(课号,课名,学分,学时)选课(学号,课号,成绩)根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩 2 观察基本表数据变化时,视图中数据的变化。3 利用视图,查询平均成绩最高的学生。
题目二:
图书(书号,书名,价格,出版社)读者(卡号,姓名,年龄,所属单位)借阅(书号,卡号,借阅日期)根据上面基本表的信息定义视图显示每本书的书名、借阅次数 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询借阅次数最多的书。
题目三:
商品(编号,品名,进价,库存,售价,厂商编号)顾客(卡号,姓名,电话,积分)厂商(编号,厂址,名称、电话)
销售(顾客卡号,商品编号,数量,日期)根据上面基本表的信息定义视图显示每种商品的品名、销售数量 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询销售数量最高的商品。
题目四:
图书(书号,书名,作者编号,价格,出版社编号)作者(编号,姓名,电话)
出版社(编号,出版社名称,地址)根据上面基本表的信息定义视图显示每个出版社的名称、出版书的数量 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询出版书最多的出版社
题目五:
零件(编号,名称,颜色,生产车间号)车间(编号,名称,人数,主任)产品(编号,名称,车间编号)
使用(产品编号,使用零件编号,个数)根据上面基本表的信息定义视图显示每个产品的编号,使用零件的编号,生产零件的车间号,车间主任 观察基本表数据变化时,视图中数据的变化。3利用视图,查询使用零件最多的产品。
题目六:
药品(编号,名称,价格,厂商)处方(药品编号,数量,医生编号)医生(编号,姓名,科室,职称)根据上面基本表的信息定义视图显示每种药品的品名、销售金额 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询最畅销的药品。
题目七:
学生(学号,年龄,性别,系名)
教材(编号,书名,出版社编号,价格)订购(学号,书号,数量)出版社(编号,名称,地址)根据上面基本表的信息定义视图显示每个学生姓名、应缴书费 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询交费最高的学生。
题目八:
员工(编号,姓名,性别,年龄,部门编号,年薪)部门(编号,名称,人数,负责人)项目(编号,名称,负责部门编号)根据上面基本表的信息定义视图显示每个部门名称、年工资总额 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询工资额最高的部门
题目九:
帐户(编号,姓名,余额,建立日期,储蓄所编号)储蓄所(编号,名称,地址,人数,所属城市)借贷(帐户,借贷类型,金额,日期)根据上面基本表的信息定义视图显示每个储蓄所名称、储蓄总金额 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询储蓄金额最高的储蓄所。
题目十:
仓库(编号,保管员编号,面积)
保管员(编号,姓名,年龄,电话、月薪)商品(编号,品名,仓库编号、数量,单价)
1根据上面基本表的信息定义视图显示每个仓库保管员姓名、保管商品价值总额 2 观察基本表数据变化时,视图中数据的变化。3利用视图,查询保管商品价值金额最高的保管员。
五 实验报告要求: 给出建立视图的步骤。给出基本表数据和视图的内容。给出查询命令和测试数据、执行结果。
第三篇:数据库原理课程设计指导书
数据库课程设计
第一节
序
言
数据库是信息系统的核心和基础,它把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。
数据库设计是信息系统开发和建设的重要组成部分。
数据库设计的基本任务是:对于一个给定的应用领域,设计优化的数据库逻辑和物理结构,使之满足用户的信息管理要求和数据操作要求,有效地支持各种应用系统的开发和运行。也就是说,数据库设计应该和应用系统设计相结合,即整个设计过程中要把结构(数据)设计和行为(处理)设计密切结合起来。因此,数据库设计的成果有二:一是数据模式,二是以数据库为基础的典型应用程序。
数据库设计和开发是一项复杂的工程,是涉及多学科的综合性技术。
课程设计是课堂教学的实践延伸,是重要的一环。学生按所选设计任务分组,在两周的课程设计时间里,学生应围绕自己的题目内容,结合软件工程的原理和方法,体验数据库及其应用系统开发全过程,尤其要突出数据库设计的六个阶段;同时体验并发挥团队合作精神。完成设计任务后,交付课程设计说明书。
第1页
数据库课程设计
第二节
课程设计步骤
选定设计任务后,分小组讨论,初步划分小组各成员的子任务,选出小组负责人,同时按照软件工程的原理和数据库设计的步骤尽快安排小组的工作进度,指导教师在第二天检查各小组的进度安排。
整个设计过程,小组各成员之间要有充分的交流,并作活动记录,其关键部分要求载入课程设计说明书。
一般地,在设计的各阶段,小组与指导教师之间至少要有一次交流、汇报,让教师掌握其设计动态。
小组负责人要协调并控制小组各成员及整个项目(设计任务)的开发进度。
第2页
数据库课程设计
第三节
设计说明书要求与格式参考
按软件工程的要求编写课程设计说明书,要求不少于3000字。说明书中除了在封面应有题目、班级、姓名、学号和课程设计日期、地点以外,其正文一般有如下几个方面的内容:
(1)系统分析报告,包括系统的功能分析、系统的功能模块设计、数据库的数据字典,数据库的概念结构(E-R图),数据库中的表、视图(如果使用)、存储过程(如果使用)的结构和定义(可以用SQL脚本提供);
(2)程序设计的报告:包括程序的运行环境、开发环境、程序的详细设计(包括模块之间的关系,模块的功能、主要功能实现的程序段)
(3)系统的源程序,包括数据库脚本程序。
其中数据库设计部分应尽量详尽,该部分说明书的参考格式如下。
数据库设计部分
1. 引言
1.1 项目名称
1.2项目背景和内容概要 1.3相关资料、缩略语、定义
(相关项目计划、引用的文件、采用的标准等)(缩写词和名词定义)2. 约定
数据库中各种元素的命名约定。例如表名,字段名的命名约定。
3. 需求分析
数据流图及相应数据字典 4. 数据库概念模型设计
4.1数据实体-关系图
第3页
数据库课程设计
4.2数据实体描述
数据实体中文名,数据库表名,数据实体描述 4.3实体关系描述
(描述每个实体间的关系)
实体1:实体2(1:1,1:n, m:n)
5.数据库逻辑模型设计
5.1关系模型描述
(E-R图向关系模型转换)
数据库表名: 同义词(别名): 主键: 外键: 索引:
约束: 中文名称 数据属性名 数据类型 数据长度
约束范围 是否空 注解
5.2数据视图描述
(如用标准SQL语言中创建数据视图的语句描述)5.3数据库一致性设计
(如用标准SQL语言中创建表的语句描述)
6.物理实现
6.1数据库的安排
。说明是否采用分布式数据库,数据库表如何分布。每个数据库服务器上建立几个数据库,其存储空间等安排
。数据库表的的分配方法,例如:如何创建段,或表空间 6.2安全保密设计
用户角色划分方法,每个角色的权限
第4页
数据库课程设计
第四节 设计任务 题一:酒店管理系统
1、问题描述
某三星级酒店经营住宿、餐饮、桑拿、会议业务,其中住宿和餐饮服务收入占该酒店整个营业收入的80%。客人入住酒店可以通过前台登记、前台预定;客房分为多个档次以供不同消费者选择;餐饮部既对内部入住客人服务,也对外营业,入住客人可以通过电话订购各种食品,在餐饮大厅就餐的客人必须先购餐券,然后凭餐券让服务生领取食品。
该酒店为加强管理,提高整个酒店的运行效率,打算建设信息化管理系统,其中客房部、餐饮部是整个系统的重要模块。
试实现其中客房管理模块
2、系统功能的基本要求:
前台客人入住登记; 客人退房登记; 前台收银; 客房预订登记;
换房(客人要求换房间)记录; 住宿价格调整; 访客登记; 综合查询
第5页
数据库课程设计
⑴ 房况查询:某间或某类客房当前入住情况查询;预定房查询;某段日期某客房入住记录查询;
⑵ 入住客人信息查询:根据房间号查询入住客人的信息;根据客人证件或姓名查询客人信息;根据来访客人信息查询被访客人信息。
3、建议与提示: 采用B/S架构;
本选题建议最多4人选做;
题二:高校学生宿舍管理系统
1、问题描述:
某高校有学生3万多人,学生统一住在学生宿舍。每间学生宿舍都配备有网络接口、电表、水表;学校后勤集团可以根据情况设置网络费、电费、水费标准,例如:每个学生每年交网络费30元;每个学生每个月有5度免费电、3吨免费水,超过免费量就按市场价格收取该寝室水电费。
根据情况,专科生、本科生、硕士研究生和博士研究生住房标准不同。一般,专科生是4-6人一间寝室;硕士生3人一间寝室;博士生两人一室;除博士生外,所有学生每年都要按某个设定的价格缴纳一定的住宿费。
对部分空置宿舍可以对外出租,租金由宿舍管理中心设定。该高校后勤集团学生宿舍管理中心拟开发一套管理软件,以加强学生宿舍管理。2系统基本功能要求:
第6页
数据库课程设计
新生入住登记(包括宿舍住房分配、登记); 毕业生退房登记; 学生换宿舍记录; 寝室卫生检查记录; 寝室设备损坏保修登记; 水电表读数记录;
水电收费(可以每月一收,也可以每年一收); 空置宿舍外租管理; 外来客人登记记录; 综合查询
⑴ 根据寝室号查学生信息; ⑵ 根据学号或姓名查寝室;
⑶ 查水电费帐目(根据寝室号、学号查某寝室某段时期内的水电费);
发挥你的想象,可能还有哪些功能是需要的,实现它。
3、数据库要求:在数据库中至少应该包含下列数据表:
寝室信息表(包括楼号、寝室号、类型、价格等); 学生信息表; 寝室卫生检查记录; 水表度数记录; 电表度数记录; 外租客信息。
4、建议与提示: 采用B/S架构;
本选题建议最多4人选做;
第7页
数据库课程设计
题三:仓库管理系统
1、问题描述:
某大型国有生产型企业拥有4个仓库:原材料仓库、成品仓库、半成品仓库和一个综合仓库。每个仓库配有主管一名和保管员若干名。该企业为精简冗员、减少仓库管理成本、提高管理效率,拟开发一仓库管理系统。
2、基本功能要求:
产品入库管理,可以填写入库单,确认产品入库; 产品出库管理,可以填写出库单,确认出库; 借出管理,凭借条借出,然后能够还库;
初始库存设置,设置库存的初始值,库存的上下警戒线; 可以进行盘库,反映每月、年的库存情况;
可以查询产品入库情况、出库情况、当前库存情况,可以按出库单、入库单,产品、时间进行查询;
3、建议与提示: 采用B/S架构;
本选题建议最多4人选做;
题四:储蓄系统
1、问题描述: 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。
第8页
数据库课程设计
2、系统功能基本要求:
储户开设帐户(根据用户类型分个人帐户、企业帐户); 存款(定期、活期);
取款(定期到期取款、活期取款) 消户
转帐(注意事务处理)
3、建议与提示:
采用B(Browser)/S(Server)架构; 本选题建议最多3人选做;
题
五、简单POS系统
1、问题描述:
某小型商店打算开发一简单POS系统。系统要求记录每一笔订货信息、每一笔销售交易的详情,并能查询某种商品销售情况,库存情况;当某种商品的库存不足时,系统自动提醒订货。
2、系统功能基本要求:
订货信息(商品名称、订货价、数量、供货商等)录入; 供货商信息录入;
销售详细信息(包括商品名称、价格、数量等)录入、查询、打印;
销售情况综合查询
⑴ 按照商品名称、编号查询某一段时间内的销售量和销售额;
⑵ 查询某种商品的销售利润((销售价-订货价)×销量); 库存情况查询:查询某种商品的当前库存量
第9页
数据库课程设计
安全库存量设置:为某种商品设定安全库存量,如果当前库存量小于安全库存量,系统自动提示订货;
3、建议与提示: 采用B/S架构;
本选题建议最多4人选做;
题
六、房产管理系统
1、问题描述:
在我国住房管理是一个关系到每个人切身利益的大问题。现拟开发一个用计算机进行房产管理的系统,要求系统具有分房、调房、退房和咨询统计等功能。房产科把用户申请表输入系统以后,系统首先检查申请表的合法性,对不合法的申请表系统拒绝接受;对合法的申请表根据类型分别进行处理。
如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阈值分数时,按分数高低将申请单插到分房队列的适当位置。每月最后一天进行一次分房活动,从空房文件中读出空房信息,如房号、面积、等级、单位面积房租等,把好房优先分配给排在分房队列前面的符合该等级条件的申请者,从空房文件中删除这个房号的信息,从分房队列中删掉该申请单,并把此房号的信息和住户信息一起写到住房文件中,输出住房分配单给住户,同时计算房租并将算出的房租写到房租文件中。
如果是退房申请,则从住房文件和房租文件中删掉有关信息,再把此房号的信息写到空房文件中。
如果是调房申请,则根据申请者的情况确定其住房等级,然后在第10页
数据库课程设计
空房文件中查找属于该等级的空房,退掉原住房,再进行与分房类似的处理。
住户可向系统询问目前分房的阈值分数,居住某类房屋的条件,某房号的单位面积房租等信息。房产科可以要求系统印出住房情况统计表,或更改某类房屋的居住条件、单位面积房租等。
2、基本功能要求: 住房申请信息录入;
房产信息(包括位置、房型、面积、建造日期、房租等)录入、修改、查询;
分房阀值的设定、查询; 非空房的住户情况查询; 住房分配单输出; 评分标准的设定;
申请人申请信息公示(注意权限控制); 分房结果公示与查询。
3、建议与提示: 采用B/S架构;
本选题建议最多4人选做;
题七:汽车客运中心票务管理系统
1、问题描述:
在长途汽车客运中心,旅客可以查看当前班次信息(通过电子布告牌或普通布告牌),根据班次信息到售票窗口购票,然后凭票上车;旅客在开车前某段时间可以退票;车站管理人员可以发布车次信
第11页
数据库课程设计
息(如新开或增加某线路班次),可以根据市场行情来调整车票价格;售票窗口可以查询某班次的售票情况,可以预售车票。
2、基本功能要求: 多个售票窗口售票; 退票受理; 发布车次情况; 调整车票价格;
记录、调整某车次的司机、服务人员配备情况;
3、建议与提示: 采用B/S架构;
本选题建议最多3人选做;
题八:校友通信录
1、问题描述:
校友通信录是用来联系往日校友的重要手段,它应该具有新校友加入、校友查询以及修改个人资料等功能。其中修改个人资料时需要有口令验证。
2、基本功能要求: 有权限设置功能;
新校友加入时应通过管理员的审核;
3、建议与提示: 采用B/S架构;
本选题建议最多2人选做;
第12页
数据库课程设计
题九:班主任助手
1、问题描述:
中学班主任不但承担着繁重的教学任务,还负责管理班上学生的学习、生活和思想,因而工作量相当大。试设计并完成一个软件,帮助班主任管理学生。
2、基本功能要求:
学生信息(包括个人信息、家庭情况、爱好等)的录入、修改; 学生学习管理:每位学生每次考试成绩的录入、分析 综合查询:
⑴ 按姓名或学号查某个学生的信息或家庭情况; ⑵ 按姓名或学号查某个学生某次考试的成绩; ⑶ 统计某次考试的平均分;
⑷ 统计某个同学所有考试的平均分,描绘其成绩走势曲线图。
3、建议与提示:
本选题建议最多2人选做;
题十:学籍管理系统
1、问题描述
某高校拟开发一学生学籍管理系统,以帮助管理学生的基本信息、学习成绩、奖惩情况等。要求学生从入学起,即在系统中记录其基本信息,以后系统全程跟踪学生的学习成绩、奖惩情况等。
2、系统基本功能要求: 学生基本信息编辑
第13页
数据库课程设计
以班级为单位,在新生入学时录入新生的基本信息,并能对学生基本信息进行随时的修改(包括: 学生个人基本信息;入学成绩;家庭信息;学生简历;学生军训;学生体检)
学生成绩管理
⑴ 在每学期考试结束后录入学生考试成绩,并能进行成绩修改
⑵ 在录入学生成绩时应先选择分制:等级制;分数制
⑶ 如是分数制应先设置平时分和考试分数在最后成绩中的百分制
⑷ 如是等级制在写入数据表中时应先将等级转化为分数 ⑸ 在录入学生成绩表时先应该选取操作班级,再以每门课程为单位进行成绩的录入,缓考学生的成绩不需录入,学生最后成绩由程序根据用户设置进行自动计算生成 ⑹ 能根据学生成绩信息自动生成补考成绩信息 ⑺ 在录入缓考/补考信息时以班级为单位进行录入 ⑻ 缓考/补考后应相应的更新成绩表和缓考/补考信息表 学生惩处/奖励管理
⑴ 可随时录入学生奖励/惩处信息,并能进行修改;
⑵ 在撤消惩处时应相应的更新学生惩处信息表。 学生其他信息管理
(操作对象: 贷款管理信息;学生异动表;学生注册表); ⑴ 可随时录入学生贷款管理/注册信息,并能进行修改; ⑵ 在处理(执行/恢复)学生异动信息时,应更新相应的本学生信息(学生的学号,学生所属班级编号);
⑶ 异动情况:留级(转班相似),休学(同退学),退学(作一标志,并添加此学生信息到异动表),转班级(作一标志,并添加此学生信息到异动表,更新此学生所有信息,学号关联的更新)。 综合查询: a.查询学生基本信息
(操作对象: 学生信息表;入学成绩表;家庭信息表;学生简历表;学生军训;学生体检)⑴ 根据学生姓名,班级查询(转化为学号进行查询)
第14页
数据库课程设计
⑵ 根据学号查询 ⑶ 按班级查询
b.查询学生成绩
⑴ 按学生学号查询本学期成绩
⑵ 按学生姓名,班级查询本学期成绩(转化为学号进行查询)⑶ 查询某学生所有学期成绩(按学号/按姓名,班级)⑷ 按专业班级查询此班本学期需补考人次 ⑸ 查询全校所有缓考学生信息 ⑹ 全校还需补考的学生信息
⑺ 全校补考门次大于某一定数的学生信息
⑻ 全校范围内总学分小于某一定数的学生信息查询 ⑼ 全校范围内学生总成绩小于某一定数的学生信息查询
c.奖励/惩处查询
⑴ 按学号查询某学生奖励/惩处信息 ⑵ 按姓名、班级查询某学生奖励/惩处信息 d.其它信息查询 ⑴ 按学号查询
⑵ 按学生姓名,班级查询 ⑶ 按班级查询
3、数据库要求:在数据库中至少应该包含下列数据: ⑴ 学生个人基本信息;⑵ 学生简历表;⑶ 入学成绩表;⑷ 家庭信息表;⑸ 学生奖励表;⑹ 学生处分表;⑺ 学生异动表;⑻ 学生成绩表;⑼ 学生注册表;⑽ 贷款管理表;
第15页
数据库课程设计
⑾ 学生体检表;⑿ 学生军训表;⒀ 班级信息;⒁ 缓考信息表;⒂ 补考信息表
4、建议与提示: 采用B/S架构; 本选题建议5人选做;
第五节
考勤与考核
全体同学在课程设计期间,必须在上课时间到专业机房进行考勤,一天四次(早上8:10及11:30,下午2:10及4:30)。
每个小组在课题完成之后,必须通过指导老师的考核,基本完成课题要求的起点为合格,另根据每个同学的具体完成模块情况进行考核评分。
第16页
第四篇:(2018版)数据库原理实验2指导书
一 实验题目: SQL SERVER2008查询分析器的使用
二 实验目的:熟悉SQL SERVER2008 环境,熟悉查询分析器的使用,能够熟练运用sql命令完成数据库,基本表、主码、外码和其它必要的约束条件的定义。
三 实验内容及要求:(从下面10个题目中选择一个)题目一: 利用sql建立学生信息数据库,并定义以下基本表: 学生(学号,年龄,性别,系号)课程(课号,课名,学分,学时)选课(学号,课号,成绩)
定义主码、外码、和年龄、学分、学分的取值范围。在三个表中输入若干记录,注意如果输入违反完整性约束条件的记录系统有何反应。
题目二: 利用sql建立图书管理数据库,并定义以下基本表: 图书(书号,书名,价格,出版社)读者(卡号,姓名,年龄,所属单位)借阅(书号,卡号,借阅日期)
定义主码、外码、和年龄、价格的取值范围。在三个表中输入若干记录,注意如果输入违反完整性约束条件的记录系统有何反应。
题目三: 利用sql建立商品信息数据库,并定义以下基本表: 商品(编号,品名,进价,库存,售价,厂商编号)顾客(卡号,姓名,电话,积分)
厂商(编号,厂址,名称、电话、经理)销售(卡号,商品编号,数量,日期)
定义主码、外码、和价格、积分的取值范围。在表中输入若干记录,注意如果输入违反完整性约束条件的记录系统有何反应。
题目四: 利用sql建立图书信息数据库,并定义以下基本表: 图书(书号,书名,作者编号,价格,出版社编号)作者(编号,姓名,电话)
出版社(编号,出版社名称,地址)定义主码、外码、和价格的取值范围。在三个表中输入若干记录,注意如果输入违反完整性约束条件的记录系统有何反应。
题目五: 利用sql建立零件信息数据库,并定义以下基本表: 零件(编号,名称,颜色,生产车间号)车间(编号,名称,人数,主任)产品(编号,名称,车间编号)
使用(产品编号,使用零件编号,个数)
定义主码、外码、和人数、个数的取值范围。在三个表中输入若干记录,注意如果输入违反完整性约束条件的记录系统有何反应。
题目六: 利用sql建立药品信息数据库,并定义以下基本表: 药品(编号,名称,价格,厂商编号)处方(药品号,数量,医生编号)医生(编号,姓名,科室,职称)
定义主码、外码、和数量、价格的取值范围。在三个表中输入若干记录,注意如果输入违反完整性约束条件的记录系统有何反应。
题目七: 利用sql建立教材数据库,并定义以下基本表: 学生(学号,年龄,性别,系名)教材(编号,书名,出版社编号,价格)订购(学号,书号,数量)出版社(编号,名称,地址)
定义主码、外码、和价格、数量的取值范围。在三个表中输入若干记录,注意如果输入违反完整性约束条件的记录系统有何反应。
题目八: 利用sql建立雇员信息数据库,并定义以下基本表: 员工(编号,姓名,性别,年龄,部门编号,年薪)部门(编号,名称,人数,负责人)项目(编号,名称,负责部门)
定义主码、外码、和年龄、学分、学分的取值范围。在三个表中输入若干记录,注意如果输入违反完整性约束条件的记录系统有何反应。
题目九: 利用sql建立帐户信息数据库,并定义以下基本表: 帐户(编号,姓名,余额,建立日期,储蓄所编号)储蓄所(编号,名称,地址,人数,所属城市)借贷(帐户,借贷类型,金额,日期)
定义主码、外码、和人数、余额的取值范围。在三个表中输入若干记录,注意如果输入违反完整性约束条件的记录系统有何反应。
题目十: 利用sql建立仓库信息数据库,并定义以下基本表: 仓库(编号,保管员编号,面积)
保管员(编号,姓名,年龄,电话、月薪)商品(编号,品名,仓库编号、数量,单价)定义主码、外码、和年龄、面积的取值范围。在三个表中输入若干记录,注意如果输入违反完整性约束条件的记录系统有何反应。
五 实验报告要求: 给出使用查询分析器的步骤 2 给出建库、建表的SQL 命令脚本 3 实验中出现的问题和解决方法
第五篇:数据库实验指导书
实验一:数据定义及更新语句练习
一、实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新。
二、预习要求:实验前复习讲授过的有关创建数据库、基本表的SQL语句,预习SQL Server2000环境,特别是资源管理器和查询分析器的相关用法。
三、实验内容:
(一)用SQL语句建立如下mySPJ数据库,包括S,P,J,和SPJ四个基本表(教材第二章习题5中的四个表),要求实现关系的三类完整性。
S(SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY)
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商 供应某种零件 给某工程项目的数量为QTY。
(二)分别使用插入、删除、修改的方式更新基本表中的数据。
四、实验方法和步骤:
(一)使用Microsoft SQL Server企业管理器和查询分析器建立数据库mySPJ:
1.打开“开始->程序->Microsoft SQL Server->企业管理器”;
2.在企业管理器左边的树标签中依次打开“Microsoft SQL Server-> SQL Server组->(local)(Windows NT)->数据库”,(local)(Windows NT)前的红色标记转化为绿色标记表明NT服务已启动;
3.从企业管理器的“工具”菜单中选择“SQL 查询分析器”,打开查询分析器后,在其窗口书写创建数据库mySPJ的SQL语句,点击执行按钮(或F5键)执行该SQL语句;
4.在企业管理器左边的树标签中查看数据库是否建立成功。
(二)在数据库mySPJ中建立S,P,J,和SPJ四个基本表:
按照实验内容给出的基本表结构在查询分析器窗口中书写SQL语句分别建立各表,并设置主键和外键约束;
(三)更新表数据:
1.利用Insert 语句将习题中给出的示例记录插入各表。
2.利用Update更新表中的记录:
①将p表中的所有红色零件的重量增加5。
②将spj表中所有天津供应商的QTY属性值减少10。用子查询。
3.利用Delete语句删除p表中的所有红色零件的记录。
4.SQL语句执行后返回基本表查看更新后的结果,如果与期望不符,分析原因并记录在实验报告中。
五、思考题:
(一)在为各表设定关键字时弹出的页面中有关键字和索引选项,试通过给基本表设定这两个项目并说明二者的区别。
(二)在基本表中输入数据时,注意数据与字段的数据类型和长度以及能否为空的属性是否一致,保存时如有错误分析错误原因,及时改正并将错误报告写在实验报告中。
六、实验报告要求:
(一)实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新。
(二)实验内容:需要创建的数据库及其四个基本表:零件表、供应商表、工程表、供应关系表的表结构、创建过程。
(三)完成情况(附上设计的SQL语句)。
(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。
(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。
(六)回答思考题提出的问题,(七)实验总结:心得体会,建议等。
实验二:简单查询和连接查询
一、实验目的:熟练掌握用SQL语句实现的简单查询和多个数据表连接查询。
二、预习要求:实验前复习讲授过的有关简单查询与多表查询的知识,编写相应的SQL语句。
三、实验内容:
(一)完成下面的简单查询:
①查询所有“天津”的供应商明细;
②查询所有“红色”的14公斤以上的零件。
③查询工程名称中含有“厂”字的工程明细。
(二)完成下面的连接查询:
①等值连接:求s表和j表的相同城市的等值连接。
②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。
③笛卡尔积:求s和p表的笛卡尔积
④左连接:求j表和spj表的左连接。
⑤右连接:求spj表和j表的右连接。
四、实验方法和步骤:
参照实验一中给出的使用Microsoft SQL Server企业管理器和SQL查询分析器的方法,将实验内容中所要求的查询项目依次用SQL语句实现,并记录下执行结果。
五、思考题:
查看实验内容2中左连接和右连接的执行结果是否一致,为什么?
六、实验报告要求:
(一)实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新。
(二)实验内容:需要创建的数据库及其四个基本表:零件表、供应商表、工程表、供应关系表的表结构、创建过程。
(三)完成情况(附上设计的SQL语句)。
(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。
(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。
(六)回答思考题提出的问题,实验总结:心得体会,建议等。实验三:分组查询和嵌套查询
一、实验目的:熟练掌握用SQL语句实现多个数据表的分组查询和嵌套查询。
二、预习要求:实验前复习讲授过的有关分组查询和嵌套查询的知识,编写相应的SQL语句。
三、实验内容:
(一)分组查询:
1.求各种颜色零件的平均重量。
2.求北京供应商和天津供应商的总个数。
3.求各供应商供应的零件总数。
4.求各供应商供应给各工程的零件总数。
5.求使用了100个以上P1零件的工程名称。
6.求各工程使用的各城市供应的零件总数。
(二)嵌套查询:
1.in连接谓词查询:
① 查询没有使用天津供应商供应的红色零件的工程名称。
② 查询供应了1000个以上零件的供应商名称。(having)
2.比较运算符:求重量大于所有零件平均重量的零件名称。
3.Exists连接谓词:
① 查询供应J1的所有的零件都是红色的供应商名称。
② 至少用了供应商S1所供应的全部零件的工程号JNO。
四、实验方法和步骤:
参照实验一中给出的使用Microsoft SQL Server企业管理器和SQL查询分析器的方法,将实验内容中所要求的查询项目依次用SQL语句实现,并记录下执行结果。
五、思考题:
(一)嵌套查询中的in连接谓词查询,关键字in可以直接用any代替么?什么情况下in和any可以互相代替?
(二)嵌套查询中的内查询为外查询返回的内容是什么?是表达式?视图?还是物理数据集合?
六、实验报告要求:
(一)实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新。
(二)实验内容:需要创建的数据库及其四个基本表:零件表、供应商表、工程表、供应关系表的表结构、创建过程。
(三)完成情况(附上设计的SQL语句)。
(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。
(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。
(六)回答思考题提出的问题,(七)实验总结:心得体会,建议等。
实验四:视图操作和数据控制
一、实验目的:熟练掌握用SQL语句实现视图操作和数据控制。
二、预习要求:实验前复习讲授过的有关视图操作和数据控制的知识,编写相应的SQL语句。
三、实验内容:
(一)定义如下视图:
①查询北京的供应商的编号、名称和城市。
②查询S1供应商的所有供应明细。
③查询各工程名称使用的各种颜色零件的个数。
查询上面定义的视图。
(二)数据控制:
①使用GRANT把对S表查询的权利授予WangLi。
②使用GRANT把对P表查询、插入、修改、删除的权利授予LiMing。
③使用REVOKE把LiMing对P表插入、删除的权利回收。
四、实验方法和步骤:
参照实验一中给出的使用Microsoft SQL Server企业管理器和SQL查询分析器的方法,将实验内容中所要求的查询项目依次用SQL语句实现,并记录下执行结果。
五、思考题:
实验内容中的哪些视图可以用来更新记录?
六、实验报告要求:
(一)实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新。
(二)实验内容:需要创建的数据库及其四个基本表:零件表、供应商表、工程表、供应关系表的表结构、创建过程。
(三)完成情况(附上设计的SQL语句)。
(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。
(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。
(六)回答思考题提出的问题。
(七)实验总结:心得体会,建议等。
实验五:触发器和存储过程
一、实验目的:理解触发器和存储过程的含义,掌握用SQL语句实现触发器和存储过程的编写,并初步掌握什么情况下使用事务。
二、预习要求:存储过程和触发器的相关概念,事务的相关概念,编写相应的SQL语句。
三、实验内容:
(一)为S表的删除操作定义一个触发器,在删除一个供应商记录时,将这个供应商的所有供应情况从spj表中删除。
(二)有一个小型的图书管理数据库,包含的表为:
bookstore(bookid,bookname,bookauthor,purchasedate,state);--图书库存表
borrowcard(cardid,ownername);--借书证表
borrowlog(cardid,bookid,borrowdate,returndate);--借书记录表
写一个存储过程,实现借书操作,要求有事务处理。(1)读者借书,要先设置书籍不在库标志state(借出),然后增加借书记录,在同一事务中完成。(2)要求在事务执行过程中引入错误触发事件,以此体会事务的错误保护机制和事务编程的作用。
四、实验方法和步骤:
(一)在查询分析器中编写实现上述功能的触发器,参考Create Trigger语法。
(二)参考CREATE PROCEDURE语句。在事务执行过程中引入错误触发事件,可以考虑在增加借书记录时违反实体完整性或参照完整性,以此体会事务的错误保护机制。
五、思考题:
如何通过系统的设置实现类似的功能,而不需触发器?
六、实验报告要求:
(一)实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据的更新。
(二)实验内容:需要创建的数据库及其四个基本表:零件表、供应商表、工程表、供应关系表的表结构、创建过程。
(三)完成情况(附上设计的SQL语句)。
(四)实验结果:如果是查询语句,将查询结果记录列出来,其它可以不写。
(五)问题及解决:首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。
(六)回答思考题提出的问题,实验总结:心得体会,建议等。