1、目 录1系统背景32需求分析42.1功能简介42.1.1管理员子系统42.1.2普通业主子系统42.1.3物业代表子系统42.2数据字典52.3数据流图533 概念结构设计53.1管理员子系统E-R图63.2普通业主子系统E-R图73.3物业代表子系统E-R图844 逻辑结构设计84.1关系模式94.1.1初步关系模式94.1.2分解合并94.2用户子模式104.3外键约束104.4数据库安全性104.4.1角色104.4.2权限115物理设计115.1存储设计115.1.1表格建立115.2索引设计136数据库的实现146.1基本表146.2视图146.3角色156.4索引156.5触发器1
2、76.6条件约束177测试方案187.1插入操作187.2更新操作197.2.1对人员信息表的更新197.2.2用户对维修业务进行更新207.2.3生成水电业务账单207.3删除操作217.4查询操作217.4.1查询基本人员信息217.4.2查询账单218总结23参考文献241 系统背景本课程是为数据库与信息管理技术课程所开的实践环节。数据库与信息管理技术课程是一门实践性很强的技术课程,而且是计算机科学与技术中发展最快的领域之一。本课程设计的目的旨在使学生能够掌握数据库的基本原理、数据库设计的基本方法、SQL语言的应用、SQL Server 2000/2005数据库环境的使用,并能根据所应用
3、到的数据库管理系统的相关技术,按照规范化设计的方法解决现实中数据库设计的问题。选修本课程前应已选修数据库与信息管理技术课程,并熟练掌握SQL语言,以及数据库设计的规范化等基本方法。先修课程:数据库与信息管理技术。2 需求分析2.1 功能简介2.1.1 管理员子系统(1) 管理员登录:管理员通过输入管理员账号和密码后登录管理员子系统进行系统操作。(2) 业主添加功能:管理员通过该功能添加本小区入住业主,填写业主真实信息。(3) 业主信息查询功能:管理员通过该功能查看业主信息。(4) 业主信息修改功能:管理员在业主信息发生变化以后,根据变化情况修改业主信息。(5) 业主信息删除功能:在业主搬出本小
4、区以后删除业主基本信息。2.1.2 普通业主子系统(1) 业主登录:业主通过输入业主账号和密码后登录普通业主子系统进行系统操作。(2) 业主个人信息查看功能:业主通过该功能查看自己在本小区的基本信息。(3) 业务添加功能:业主通过该功能添加各类维修业务。(4) 业务查看功能:业主通过此功能查看各项维修业务进行状态。(5) 业务状态修改功能:修改业务进行状态,业务是否完成,或对维修不满意,或因各种情况需再次维修,通过此功能通知物业代表。(6) 业务删除功能:业主自己把维修业务做完,不再需要维修人员,或业务已确认被维修人员修理完好,则删除本业务。(7) 账单查看功能:业主通过此功能查看维修、水、电
5、、物业管理各类账单,以确认自己所要交纳的费用。(8) 维修业务查看功能:小区把提供的物业维修服务展示给业主。2.1.3 物业代表子系统 (1) 物业代表登录:物业各类代表通过输入其各自独有的账号和密码后登录物业代表子系统进行系统操作。(2) 耗水耗电量填写功能:水费代表通过此功能把业主的月耗水量录入,电费代表通过此功能把业主的月耗电量录入。(3) 耗水耗电量更改功能:水费代表通过此功能修改输入错误或查询有误的耗水量,电费代表通过此功能修改输入错误或查询有误的耗电量。(4) 生成水电费账单功能:水费代表完成水量录入以后,通过此功能生成各业主当月水费,电费代表完成水量录入以后,通过此功能生成各业主
6、当月电费。(5) 耗水耗电量查看功能:水费代表通过此功能查看各月各个业主的耗水量统计,电费代表通过此功能查看各月各个业主的耗电量统计(6) 委派维修人员功能:物业维修代表通过此功能委派相关人员去为业主提供维修服务。(7) 清除已完成业务功能:在业主没有对维修业务提出举报,并且已付清相关费用以后,物业维修代表通过此功能把业务从数据库中删除。(8) 物业费用修改功能:各类物业代表通过此功能修改其管辖业务的物业费用。(9) 物业维修费用填写:维修人员通过此功能填写维修费用,即在维修人员办理完维修业务以后,根据劳动量和消耗器械的多少而合理收费。2.2 数据字典具体的数据字典会在数据库实现一章中详细给出
7、,此处不再重复。2.3 数据流图管理增改查生成管理生成委派管理管理查询查询管理查询业主财产水电业务管理维修业务维修账单水电账单维修人员物业代表管理员业主3 3 概念结构设计3.1 管理员子系统E-R图 生日电话住址登录管理(增删改查)姓名 1 1业主性别管理员 1 n 生日业主账号姓名性别电话密码住址管理员账号 3.2 普通业主子系统E-R图维修费用开始时间满意情况登录账单明细管理(增删改查)维修业务查询业主维修编号生日电话完成时间住址维修人员编号业主账号姓名业主账号性别维修人员姓名3.3 物业代表子系统E-R图注:由于页面限制,图中只画出了各实体的主码。维修编号登录管理,生成账单业务号维修业
8、务管理物业代表物业代表账号管理水电业务管理户主账号户主账号电业务水业务4 4 逻辑结构设计4.1 关系模式4.1.1 初步关系模式根据概念结构设计,可以得到初步的关系模式如下(其中各关系模式的主码用下划线标出):管理员登录(管理员账号,密码)管理员(管理员账号,姓名,性别,生日,电话,住址)业主登录(业主账号,密码)业主(业主账号,姓名,性别,生日,住址,账号)维修业务(维修编号,业主账号,开始时间,结束时间,维修人员编号,维修人员姓名,满意情况,维修明细,维修费用)物业代表登录(物业代表账号,密码)物业代表(物业代表账号,代表业务,姓名,性别,生日,住址,电话)水电业务管理(业务号,业务内容
9、,单位价格,业务管理费)水业务(业主账号,当月用水量,总用水量,缴纳费用,缴费时间)电业务(业主账号,当月用电量,总用电量,缴纳费用,缴费时间)4.1.2 分解合并对上述关系模式进一步分析,解决冲突,消除冗余:经分析发现,管理员登录和管理员两个实体,实际上是一个实体,只是功能不同而已,所以我们可以将这两个表合并:管理员(管理员账号,密码,姓名,性别,生日,电话,住址)其它两个登录表同理可以合并:业主(业主账号,密码,姓名,性别,生日,住址,电话)物业代表(物业代表账号,密码,代表业务,姓名,性别,生日,住址,电话)除此之外,虽然上述功能没有用到,但还应该增加关于业主所有财产的详细信息,如车位,
10、地下室等。业主财产(业主账号,房产地址,房产面积,地下室地址,地下室面积,车库地址,车库面积,车位地址)还用增加维修人员的相关信息:维修人员(维修人员编号,姓名,性别,生日,电话,住址)分析发现水电业务的列大体相似,因此也可以合并在一起:水电业务(业务代号,业主账号,当月用电量,总用电量,缴纳费用,缴费时间) 4.2 用户子模式 给业主看的缴费账单可以用外模式可以用试图来实现。 在业主和水业务上建立水账单试图: 水账单(业主账号,业主姓名,月用水量,缴纳金额,缴纳日期) 在业主和电业务上建立电账单试图:水账单(业主账号,业主姓名,月用电量,缴纳金额,缴纳日期) 在维修业务上建立维修账单视图:维
11、修账单(维修编号,业主账号,开始时间,结束时间,缴纳费用)4.3 外键约束根据各表功能和存储结构的分析,我们可以建立以下外键约束:4.4 数据库安全性4.4.1 角色 根据本系统的功能,可以创建三个角色,来实现数据库权限的分配,分别是管理员角色,用户角色和物业代表角色。4.4.2 权限根据用户角色不同,为其分配不同的权限如下:管理员:对表tbl_管理员,tbl_业主,tbl_业主财产拥有全部权限。业主:对表tbl_业主,tbl_业主财产拥有查询权限,对表tbl_维修业拥有查询,修改和删除的权限。物业代表:对表tbl_水电业务拥有查询,修改和添加的权限,对表tbl_维修业务拥有全部权限,对表tb
12、l_维修人员有查询权限,对表bl_水电业务管理有查询和修改的权限。5 物理设计5.1 存储设计5.1.1 表格建立 根据关系模式,确定各属性的相关类型,建立各个表格: Tbl_管理员表格: Tbl_水电业务:Tbl_水电业务管理:Tbl_维修人员Tbl_维修业务:Tbl_物业代表:Tbl_业主:Tbl_业主财产:5.2 索引设计根据性能的需要决定是否建立索引,为了提高查询效率,对每个表格按照其主键建立相应的索引:如对于tbl_业主表格,可以根据其业主账号建立相应的索引“业主账号”,这样可以大大提高日后的查询效率,类似的,也分别对tbl_管理员,tbl_维修人员,tbl_维修业务,tbl_物业代
13、表建立了相应的索引,其中由于tbl_维修业务的表由两个属性作为主键,可以对其组合作为索引条件。具体SQL语句会在数据库实现章节详细给出。 6 数据库的实现6.1 基本表以表tbl_管理员为例,SQL实现语句如下: create table tbl_管理员 (管理员账号 primary key nchar(10), 密码 nvarchar(20), 姓名 nvarchar(15), 生日 date, 性别 bit, 电话 nvarchar(15), 住址 nvarchar(50) );本系统至少需要建立以下基本表:6.2 视图以生成水费账单为例,实现创建视图的SQL语句如下:create vie
14、w 水账单视图(业主账号,姓名,用量,缴纳时间,缴纳费用)asselect tbl_业主.业主账号,tbl_业主.姓名,tbl_水电业务.未缴费用量,tbl_水电业务.缴费时间,tbl_水电业务.缴纳费用from tbl_业主,tbl_水电业务where tbl_业主.业主账号=tbl_水电业务.业主账号and tbl_水电业务.业务代号=01;本系统至少需要生成的视图如下:6.3 角色正文实现角色创建的SQL语句如下:create role 管理员;create role 业主;create role 物业代表;创建成功后数据库系统截图:6.4 索引实现建立索引的SQL语句如下:create
15、 unique index 管理员账号on tbl_管理员(管理员账号);create unique index 业主账号on tbl_业主(业主账号);create unique index 业主账号on tbl_业主财产(业主账号);create unique index 维修账号on tbl_维修业务(维修编号,业主账号);create unique index 维修人员编号on tbl_维修人员(维修人员编号);create unique index 物业代表账号on tbl_物业代表(物业代表账号);索引建立完成后的部分截图如下:6.5 触发器在系统的实际应用中,每个表的增删改查都会
16、受到其他表的限制,比如在本系统中,在对tbl_业主进行增加操作的同时也要对tbl_业主操作进行相应的增加操作,同理,当删除一个业主时,相应的tbl_业主财产中也应该删除该业主的全部信息。实现该功能的触发器创建SQL语句如下:插入触发器:ALTER trigger dbo.insert_业主 on dbo.tbl_业主after insertas begininsert into tbl_业主财产(业主账号) select(业主账号)from inserted;end;建成后的数据库截图:6.6 条件约束根据每个属性的具体内容,为其增加必要的条件约束,如给每个存放人员信息的表格,增加生日属性的条
17、件约束,是它更加符合实际情况。实现条件约束的SQL语句如下:alter table tbl_管理员add constraint c1 check(生日 between 1960-01-01 and 1990-01-01); 7 测试方案7.1 插入操作以插入新业主为例:insert into tbl_业主(业主账号,密码,姓名,性别,生日,电话,住址) values(2000000006,123,薛宝钗,1,1988-12-29,13647914572,鼎舜赵苑小区号);如上图的执行结果截图,由于有触发器限制,在向表tbl_业主添加新记录的同时,系统会自动的向表tbl_添加相应的业主信息7.2
18、 更新操作7.2.1 对人员信息表的更新update tbl_业主 set 住址=鼎舜小区22号楼6单元401,业主账号 =300000006 where 姓名=薛宝钗;7.2.2 用户对维修业务进行更新7.2.3 生成水电业务账单7.3 删除操作删除业主信息: 由于外键约束限制,在删除tbl_业主表的记录时会级联的删除在tbl_业主财产表上的相应记录。7.4 查询操作 7.4.1 查询基本人员信息7.4.2 查询账单业主可通过视图查询水电业务账单,以水费账单为例:8 总结通过本次图书管理系统的设计,我对数据库这门课程有了更深刻的认识,同时,对SQL Server的功能更加了解,对其使用也更加
19、熟练。在设计的过程中,我发现了很多问题也学会了很多东西。我发现我平时所积累的知识是相当有限的,以前所掌握的知识真的是纸上谈兵,真正上机实践的时候才发现有很多之前根本想不到的问题。比如关于外键约束和约束条件的问题,要考虑到很多因素,这些因素不只来源于一张表,而是很多张表之间的联系,要做到面面俱到真的很难,更难的还有触发器和视图的创建,要做到既要考虑其功能有要考虑其实现的难易程度。随着这些问题的逐一解决,对我的数据库开发能力有了很大的提高,也增加了我对数据库这门课程的浓厚兴趣。让我意识到,我对数据库的了解还是停留在表面的,虽然这次课程设计结束了,但我还应该对数据库开发进行更进一步的探索。自评成绩:90分。参考文献1 B. Liu. Web Data Mining: Exploring hyperlinks, contents and usage dataM. Springer, 2006.2 姚天昉, 程希文, 徐飞玉, 等. 文本意见挖掘综述J. 中文信息学报, 2008, 22(3): 71-80.23
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922