数据库期末大作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

云南大学软件学院实验报告

课程:数据库原理与实用技术实验学期:任课教师:

专业:学号:姓名:成绩:

期末大作业:家电售后维修管理数据库设计

一、实验目的

(1)掌握数据库设计的基本方法

(2)掌握各种数据库对象的设计方法

二、实验内容

1.数据库概要设计:用文字简要描述实体之间的联系,画出E-R图(标出各联系中实体的基数)。(1)、包含以下数据表:

a.客户表

b.维修申请表

c.员工表

d.报价表

e.维修情况记录表

f.商品表

h.零件表

(2)、实体之间的逻辑关系为:

客户撰写维修申请表,员工对商品(包含组成商品的零件)进行维修,同时员工记录维修情况,将报价表反馈给客户

客户表和维修申请表:

维修申请表和员工表:

员工表和商品表:

商品表和零件表:

员工表和维修情况记录表:员工表和报价比表:

客户表和报价比表:(3)E-R图形式1:

(3)E-R图形式2:

2、数据表设计:将E-R图转换为数据表,给出创建各表的SQL语句。创建数据库:

客户表:

维修申请表:员工表:

报价表:商品表:

零件表:

维修情况记录表:

3、完整性约束:根据需要给数据表添加数据完整性,并说明添加的理由。(1)报价表的外键关系

(2)零件表的外键关系

(3)维修表的外键关系(4)员工性别约束

性别约束测试

(5)完整性约束之客户电话号码约束

(6)完整性约束之员工电话号码约束

员工电话号码约束测试

4、存储过程、触发器和视图:根据需要给数据库添加几个实用的存储过程、触发器和视图,并说明它们各自的功能。

各表数据的填入:

客户表

维修申请表

员工表报价表

商品表零件表

维修情况记录表

存储过程1:创建存储过程,查询employee表中所有员工姓名

存储过程2:创建存储过程,查询客户表中具体客户,若无所查姓名,则返回‘查无此人信息’存储过程2测试

存储过程3:创建存储过程,通过比较使用时间和保修时间,判断维修用户的商品是否在维修期,并将在保修期内商品的juge列更新为“是”,反之,更新为“不是”

存储过程4:创建存储过程,得出上述juge=“不是”的用户的维修金额。具体分为三种情况,当retype=“整机更换”,维修金额为商品价格;当retype=“零件更换”,维修金额为零件单价乘以数量;当retype=“部分维修”,维修金额为员工的expenses

触发器1:创建触发器trig_update,返回对client进行更新操作后,被更新的记录条数触发器1测试

触发器2:在parts中创建触发器,当执行delete操作时,该触发器被触发,禁止删除记录触发器3:在product表中建立触发器,实现product和parts表的联级删除

视图1:

视图2:

5、实验小结。

(1)、通过本次实验,对于数据库设计的基本方法、步骤有了更深入的了解和认识。学会用整体性的思维来构思设计数据库,注意到了数据库中各个数据项之间的联系,以及其与整个数据库之间的联系。

(2)从创建数据库,运用代码实现各个数据表的构建再到约束性条件的实现,运用存储过程、触发器对表进行一系列的操作,都让我们对之前实验与SQL相关的部分进行了回顾。同时通过这个数据库的建立和完善,将诸多实验中零散的知识点联系在一起。

(3)在实验过程中遇到许多问题,通过查阅资料,翻阅书籍,和同学讨论等方法解决了问题。学会了整体性思维,在很多次的修改之后完成实验内容,收获颇丰。

(4)能够根据题目的具体要求,有拓展,有延伸,更进一步掌握了存储过程、触发器、视图的相关概念,对知识层次的认知更进一步。

相关文档
最新文档