1、20122013学年下学期 数据库系统设计课程实验云南大学软件学院实 验 报 告姓名:赵宇 学号:2010112018班级:2010级软件工程 日期: 2013/5/24 成绩: 实验六 Physical Database Design II一 实验任务对给出的实体建立关系数据模型,对建立的关系模型转化为DBMS中的数据库,对数据库中的数据的更新做约束,实现该数据库的业务要求,最后是对SQL语句的考察,通过SQL语句对数据库中的数据进行查询。 二 实验环境SQL Server 2005 、Power Designer三 实验结果记录1. 已知StayHome 数据库各实体之间的关系如下图所示:
2、表中数据参考文件”StayHomeData.xls”,其中数据供参考,不足的属性或关联关系,请自己添加,并加说明。需要添加一个表,演员和电影是多对多的关系,需要通过第三个表来实现对3NF,同时对于员工表应该添加电话属性和性别属性,这样会更加方便对员工的管理。2. 使用数据库建模工具,给出StayHome 数据库的ER 模型图、LDM 图和PDM 图。ER图:LDM图:PDM图:3. 创建StayHome 数据库、数据表、导入数据。使用数据库管理工具创建了数据库同时插入数据:4. 处理派生数据:在Member 表中增加一个列numofVideo 来存储每个会员当前租借影碟的数量。a) 当会员租借
3、或返还影碟时,Member 表中的派生数据numofVideo 自动增减;对于借影碟时使用触发器来实现派生数据numofVideo的自动增加,实现的语句如下:使用触发器two来实现还影碟时实现派生数据numofVideo的自动减1,实现的语句如下:b) 会员租借的影碟的数量不能大于10 盘并且影碟的状态为N 时不能租借使用触发器three实现对借碟的约束,通过after触发器,通过回滚来实现before触发器的功能。因为在SQL中没有before触发器。同时给出提示用户无法进行借碟了。5. 处理业务规则:a) 出租影碟的返还日期不能早于当前日期通过对日期的比较,使用回滚的来来实现对借碟时的时间
4、限制,避免出现归还的时间早于借出的时间。c) 每盘影碟的最长租期是5 天通过触发器five对借碟的时间进行限制,达到上限后就会给出提示,从而进行其他的处理和操作。5. 从使用的性能考虑, 为下列表设计并创建二级索引: Staff、Video 、Member 、RentalAgreement对于Staff表,在查询是主要会用到staffNo和sname这两个属性,对这两个属性添加索引,减少查询的复杂度。对于Video表进行查询是一般会使用到catalogNo、title和category这三个属性,对这三个属性添加索引就可以简化查询。对于Member表的原理同上对RentalAgreement表的添加索引原理同上7. 查询与统计a) 查询到目前为止最受欢迎的五部影片,包括Video 所有基本信息,以及该影片租借次数;b) 统计本年度,各分公司会员总数,以及各分公司租借影碟数量。包括分公司所有基本信息。四 实验总结 看到题目的时候没有想起使用触发器来实现业务,不知道从何入手,在寻求实现业务的方法是花费了大量的时间,后来查看了一下上课的PPT突然茅塞顿开,就是用触发器来实现了这个数据库系统所要求的业务,在这个实验中我收获了很多,对于SQL 语句的使用有了更加深刻的认识,也能更加熟练的使用SQL语句进行对数据的操作了。 指导老师: - 8 -