数据库期末大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)能够根据题目的具体要求,有拓展,有延伸,更进一步掌握了存储过程、触发器、视图的相关概念,对知识层次的认知更进一步。