软 件 学 院
课程设计报告书
课程名称 数据库原理及应用 设计题目 企业资产管理系统 专业班级 软件10-01班 学 号 1020010109 姓 名 李名扬 指导教师 李建东
2012年6月
1
目录
1 设计时间 ............................................ 4 2 设计目的 ............................................ 4 3 设计任务 ............................................ 4 4 设计内容 ............................................ 4 4.1需求分析 ........................................... 4 4.1.1功能要求分析 ..................................... 5 4.1.2信息要求分析 ..................................... 5 4.1.3处理要求分析 ..................................... 5 4.1.4安全性要求分析 ................................... 5 4.1.5完整性要求分析 ................................... 5 4.2系统设计 ........................................... 6 4.2.1 概念结构设计 ..................................... 6 4.2.2 逻辑结构设计 ..................................... 8 4.2.3 物理结构设计 ..................................... 8 4.3系统实施 .......................................... 10 4.3.1数据库实现 ...................................... 10 4.3.2 数据载入 ....................................... 14 4.4运行与测试 ........................................ 17 4.4.1运行与测试 ...................................... 17 4.4.2分析 ............................................ 17 5 总结与展望 ......................................... 18
2
参考文献 ............................................. 19 成绩评定 ............................................. 19
3
1 设计时间 第17周(2011年6月3号——2011年6月7号) 2 设计目的 数据库原理及应用课程设计是软件工程专业集中实践性环节之一,是学习完《数据库原理及应用》课程后进行的一次全面的综合练习。其目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。同时,此次设计对于同学将来的毕业设计和具体工作实践将有重要的意义。 3设计任务 (1)设计任务的功能要求如下: a.企业资产购置:将企业资产信息插入企业资产数据文件。 b.企业资产的领用:企业资产发放给相关部门使用,登记相关信息。 c.企业资产的内部调拨:由一个部门调拨到另一个部门,登记相关信息。 d.企业资产出租:本企业资产出租给其他企业,对租赁费用、时间等登记管理 e.企业资产的报废:企业资产达到报废年限或其他原因报废,登记相关报废信息。 (2)对以上具体功能的查询、统计功能 (3)数据要求为: a.资产数据:资产代码、资产名称、资产类型、规格型号、单位、制造厂家、购置日期、原值(帐面价值)等 b.资产领用数据:资产代码、资产名称、领用部门、领用日期、经办人 c.资产调拨数据:资产代码、资产名称、调入部门、调出部门、调拨日期、经办人 d.资产出租数据:资产代码、资产名称、租用单位、出租日期、到期日期、租赁费用、经办人 e.资产报废数据:资产代码、资产名称、资产残值、报废原因、报废日期、经办人 4 设计内容 4.1需求分析 4
4.1.1功能要求分析 通过对用户的调查分析总结系统需要具有以下功能: 1) 企业资产购置:将企业资产信息插入企业资产数据文件。 2) 企业资产的领用:企业资产发放给相关部门使用,登记相关信息。 3) 企业资产的内部调拨:由一个部门调拨到另一个部门,登记相关信息。 4) 企业资产出租:本企业资产出租给其他企业,对租赁费用、时间等登记管理 企业资产的报废:企业资产达到报废年限或其他原因报废,登记相关报废信息。 4.1.2信息要求分析 通过对用户的调查分析总结出系统需要具有以下信息: 资产数据:资产代码、资产名称、资产类型、规格型号、单位、制造厂家、购置日期、原值(帐面价值)等。 资产领用数据:资产代码、资产名称、领用部门、领用日期、经办人。 资产调拨数据:资产代码、资产名称、调入部门、调出部门、调拨日期、经办人。 资产出租数据:资产代码、资产名称、租用单位、出租日期、到期日期、租赁费用、经办人。 资产报废数据:资产代码、资产名称、资产残值、报废原因、报废日期、经办人。 4.1.3处理要求分析 通过对用户的调查分析发现用户主要希望系统具有查询和统计功能。 4.1.4安全性要求分析 通过对用户的调查分析总结出系统需要设置不同权限的用户对该数据库进行访问,完成该用户权限内的查询或者统计功能。系统安全性达到C1级即可。 4.1.5完整性要求分析 5
通过对用户的调查分析总结出系统的完整性约束主要表现为在主键,外键的设置,非空的控制和对某些属性取值范围的控制等。 4.2系统设计 4.2.1 概念结构设计 (1)各分E-R图 资产领用数据E-R图如图所示 资产调拨数据E-R图如图所示 资产出租数据E-R图如图所示 资产报废数据E-R图如图所示 资产代码 资产类型 规格型号 领用日期 m n 领用 领用部门 部门号原值资产 制造厂家 购置日期 资产名称 图1.资产领用数据E-R图 经办人 资产代码 资产类型 规格型号 调拨日期 m n 调拨调拨部门 部门号 原值资产 制造厂家 购置日期 资产名称 图2.资产调拨数据E-R图 调出部门号 经办人 6
资产代码 资产类型 规格型号 单位号 到期日期 m 原值资产 出租租赁费用 n 单位 出租日期 制造厂家 购置日期 资产名称 图3.资产出租数据E-R图资产代码 资产类型 规格型号 报废处号 经办人 资产残值 m 原值资产 报废报废原因 n 存放处 报废日期 制造厂家 购置日期 资产名称 经办人 图4.资产报废数据E-R图 (2)总E-R图 存放处 m 单位 报废 m n 资产 n 出租 n m 调拨 领用 m n 调拨部门 领用部门 图5.系统总E-R图 7
注:总E-R图中属性省略未画,各实体和联系的属性整理如下: 资产(资产代码,资产名称,资产类型,规格型号,制造厂家,购置日期,原值) 领用部门(部门号,经办人) 领用(领用日期) 调拨部门(部门号,调出部门号,经办人) 调拨(调拨日期) 单位(单位号,经办人) 出租(到期日期,出租日期,租赁费用) 存放处(报废处号,经办人) 报废(资产残值,报废原因,报废日期) 4.2.2 逻辑结构设计 本系统选用关系模型建立。各个关系表的主码由下划线标出。 资产表(资产代码,资产名称,资产类型,规格型号,制造厂家,购置日期,原值) Asset(A_ID,A_Name,A_Type,A_Model ,A_Manufacturers,A_purchasedate,A_Originalvalue) 部门表(部门号,经办人)Department(Dno,D_Agent) 领用表(资产号,部门号,领用日期)Lingyong(A_ID,Dno,L_Date) 调拨表(资产号,部门号,调出部门号,调拨日期)Diaobo(A_ID,Dno,OutDno,D_Date) 单位表(单位号,经办人) Unit(Uno,U_Agent) 出租表(资产号,单位号,到期日期,出租日期,租赁费用) Rent(A_ID,Uno,E_Date,R_Date,R_Cost) 存放处表(存放处号,经办人)Cunfang(Cno,C_Agent) 报废表(资产号,存放处号,资产残值,报废原因,报废日期) Baofei(A_ID,Cno,B_Value,B_Reason,B_Date) 根据关系模式规范化理论,对关系模式进行优化,发现以上各表基本满足三范式要求。 4.2.3 物理结构设计 基本表的结构如下: 8
表1.资产表(Asset) 字段名称 A_ID A_Name A_Type A_Model 中文名称 类型(长度) 是否非空 主关键字 资产代码 资产名称 资产类型 规格型号 char(2) nchar(20) nchar(20) nchar(20) nchar(20) datetime float Y Y Y N N N N Y N N N N N N 取值范围 备注 索引 无 无 无 无 无 无 A_Manufacturers 制造厂家 A_purchasedate A_Originalvalue 购置日期 原值 表2.部门表(Department) 字段名称 Dno D_Agent 中文名称 部门号 经办人 类型(长度) char(2) char(20) 是否非空 Y N 主关键字 Y N 取值范围 备注 索引 无 表3.领用表(Lingyong) 字段名称 A_ID Dno L_Date 中文名称 资产号 部门号 领用日期 类型(长度) char(2) char(2) datetime 是否非空 主关键字 取值范围 Y Y N Y Y N 备注 外键 外键 无 表4.调拨表(Diaobo) 字段名称 A_ID Dno OutDno D_Date 中文名称 资产号 部门号 调出部门号 调拨日期 类型(长度) char(2) char(2) char(2) datetime 是否非空 主关键字 取值范围 Y Y Y N Y Y Y N 备注 外键 外键 外键 无 表5.单位表(Unit) 字段名称 Uno U_Agent 中文名称 单位号 经办人 类型(长度) char(2) char(20) 是否非空 主关键字 取值范围 Y Y Y N 备注 索引 无 9
表6.出租表(Rent) 字段名称 A_ID Uno E_Date R_Date R_Cost 中文名称 资产号 部门号 到期日期 出租日期 租赁费用 类型(长度) char(2) char(2) datetime datetime float 是否非空 主关键字 取值范围 Y Y N N N Y Y N N N 备注 外键 外键 无 无 无 表7.存放处表(Cunfang) 字段名称 Cno C_Agent 中文名称 存放处号 经办人 类型(长度) char(2) char(20) 是否非空 主关键字 取值范围 Y Y Y N 备注 索引 无 表8.报废表(Baofei) 字段名称 A_ID Cno B_Value B_Reason B_Date 中文名称 资产号 存放处号 资产残值 报废原因 报废日期 类型(长度) Char(2) Char(2) Float Char(50) datetime 是否非空 主关键字 取值范围 备注 Y Y N N N Y Y N N N 外键 外键 无 无 无 为系统建立四个视图,分别为资产调拨视图,资产领用视图,资产出租视图,资产报废视图。 根据对系统的分析发现当系统资产基本表中的一个资产达到报废标准进行报废后,该资产在其他表中的记录应该相应删除,为此建立三个触发器,分别来触发这一事件。 对系统的分析总结发现,应对该系统设置五类用户分别是超级用户可以对所有表和视图进行查询,修改和删除数据的操作,另外四类分别只能对所构建的四个视图进行查询,修改和删除数据的操作。 系统对四类低级用户可以授权给不同的角色,这些角色可能只对某视图具有查询,修改,删除中的一个或几个权限。 4.3系统实施 4.3.1数据库实现
10
1.数据库的建立 图1. ZiCanGanli数据库建立语句图 图2.系统为ZiCanGanLi 数据库分配空间 由这些截图可知,名为ZiCanGanLi的数据库建立成功 2.基本表的建立 (1)对Asset表的建立,如图所示: 图3. Asset表建立图 (2)对Department表的建立语句为: create table Department (Dno char(2) not null, D_Agent nchar(20) constraint PK_Department primary key (Dno) ); (3)对LingYong表的建立语句为: create table Lingyong (A_ID char(2) not null, Dno char(2) not null, L_Date datetime constraint PK_Lingyong primary key (A_ID,Dno) foreign key (A_ID) references Asset(A_ID), foreign key (Dno) references Department(Dno) ); (4)对Diaobo表的建立语句为:
11
create table Diaobo (A_ID char(2) not null, Dno char(2) not null, OutDno char(2) not null, D_Date datetime constraint PK_Diaobo primary key (A_ID,Dno,OutDno) foreign key (A_ID) references Asset(A_ID), foreign key (Dno) references Department(Dno), foreign key (OutDno) references Department(Dno) ); (5)对Unit表的建立语句为: create table Unit (Uno char(2) not null, U_Agent nchar(20) not null, constraint PK_Unit primary key (Uno) ); (6)对Rent表的建立语句为: create table Rent (A_ID char(2) not null, Uno char(2) not null, E_Date datetime, R_Date datetime, R_Cost float constraint PK_Rent primary key (A_ID,Uno) foreign key (A_ID) references Asset(A_ID), foreign key (Uno) references Unit(Uno) ); (7)对Cunfang表的建立语句为: create table Cunfang (Cno char(2) not null, C_Agent char(20) not null, constraint PK_Cunfang primary key (Cno) );
12
(8)对Baofei表的建立: 由下图左半部分可知,八个表已经顺利完成。 图4. Baofei表建立图及八个表的实现的证明 3.视图的实现 (1)对V_Diaobo视图的建立语句为: create view V_Diaobo as select Asset.A_Name, Diaobo.A_ID, Diaobo.Dno, Diaobo.OutDno, Diaobo.D_Date, Department.D_Agent from Asset,Diaobo,Department,Department Department_1 where Asset.A_ID = Diaobo.A_ID AND Diaobo.Dno = Department.Dno AND Diaobo.OutDno = Department_1.Dno (2)对V_Rent视图的建立语句为: create view V_Rent as select Rent.A_ID,Rent.Uno,Asset.A_Name,Rent.E_Date,Rent.R_Date, Rent.R_Cost,Unit.U_Agent from Asset,Rent,Unit where Asset.A_ID = Rent.A_ID AND Rent.Uno=Unit.Uno (3)对V_Lingyong视图的建立语句为: create view V_Lingyong as select Lingyong.A_ID,Lingyong.Dno,Lingyong.L_Date, Department.D_Agent,Asset.A_Name from Asset,Department,Lingyong
13
where Asset.A_ID = Lingyong.A_ID AND Lingyong.Uno=Department.Uno (4)对V_Baofei视图的建立 由下图可知,对四个视图的建立都是成功的。 图5.视图表 4.触发器的实现 (1)Baofeichuli1 create trigger Baofeichuli1 on Baofei after insert as delete from Diaobo where Diaobo.A_ID=(select A_ID from inserted); (2)Baofeichuli2 create trigger Baofeichuli2 on Baofei after insert as delete from Lingyong where Lingyong.A_ID=(select A_ID from inserted); (3)Baofeichuli3 create trigger Baofeichuli3 on Baofei after insert as delete from Rent where Rent.A_ID=(select A_ID from inserted); 5.用户的创建 利用它可视化操作创建超级用户和普通用户。 4.3.2 数据载入 数据载入后结果如下各图所示。 14
图6.资产表数据图 图7.部门表数据图 图8.领用表数据图 图9.调拨表数据图
15
图10.单位表数据图 图11.出租表数据图 图12.存放处表数据图 图13.报废表数据图 图14.Daibo表 在Baofei表中插入数据后,触发器成功出发,在表里删除相应记录 图15.Lingyong数据图 在Baofei表中插入数据后,触发器成功出发,在表里删除相应记录 图16.Rent数据图 16
在Baofei表中插入数据后,但表中没有相应记录,不触发触发器,故无变化。 4.4运行与测试 4.4.1运行与测试 系统查询功能具有查询系统所有四个视图中信息的功能。 (1)对V_Diaobo的查询 图17.V_Diaobo视图 (2)对V_Rent的查询 图16.V_Rent视图 (3)对V_Lingyong的查询 图16.V_Lingyong视图 (4)对V_Baofei的查询 图16.V_Baofei视图 由视图的性质,可为不同用户分配不同权限,查看到不同的视图。 4.4.2分析
17
在本次课程设计过程中遇到了很多SQL语句语法的问题,通过查询相关书籍资料,网站资料以及SQL Server2000帮助文档等熟悉相关语句语法的,在本次设计中首先根据设计题目构想用户的相关需求,完成了需求分析阶段的任务,清晰记录了系统要实现和解决的问题,然后通过数据库的建立,各个基本表、视图、索引、触发器等的建立完成了数据库的搭建工作。搭建中数次对基本表和视图等内容进行改动进行优化处理。 通过对系统的建设分析,系统可以在基本数据的关系上进行更加细化的处理。 5 总结与展望 通过一学期对数据库的学习,我对数据库的知识、理念有了一定的掌握,此次课程设计正是一次对我掌握程度的检验,平时上机练习的时间不是很多,所以我在确定了自己要设计的题目之后,利用很多时间,花费了很多心思进行设计,这次数据库课程设计我的最大就是只要自己有了兴趣,并且动手去做,困难在你的勇气和毅力下是抬不了头的。从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。坚持自主完成,这设计期间我遇到了很多问题,在需求分析阶段我查阅很多需求分析阶段的方法和相关系统的需求分析资料,力求我开发的这个系统的需求分析能做的更好,经历重重思考,客服种种问题基本确立了我所做系统应该完成的功能、信息、相关操作、完整性、安全性等的要求。在概念设计阶段和逻辑设计阶段,我花费大量时间和精力,通过种种假设最终确定了各个实体和它的相关属性,以及实体间的联系,基于此开始绘制ER图,并且建立了8个基本表。在整个设计阶段感受最为深刻的是掌握学习的方式和解决问题的方法。首先是解决问题的方式,虽然面临的信息很多,如何从大量的信息中筛选出所需的信息,有用的信息,是解决问题的关键,另外一个就是解决问题的方法,就像解决设计中的很多问题一样,一开始总是在看书,和书上的进行比对,虽然书本上的只是大部分是有价值,正确的,但实际上每个人编程的思路和对数据处理的放法思想都是不同的,这就要求我们一定要通过实践才能找到解决问题的方案。在整个课程设计的过程中,我深刻的体会到这一点的重要性,也牢记住了这一点,在今后的学习和研究中我也会继续将这种方法延续下去我完成了这次数据库课程设计,不过这只是我学习路上的驿站,语言本来就是相通的,语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道的事情,主要是了解学习思想。
18
参考文献 [1]王珊,萨师煊,数据库系统概论.第四版,北京:高等教育出版社,2006年. [2]苗雪兰. 数据库技术及应用.北京:机械工业出版社,2006年. 成绩评定 成绩 教师签字
19
20
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务