数据库原理与设计
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
需求分析
一、系统功能需求:
对于普通的手机用户来说,该系统仅允许他们作一个操作:即可以使用该系统通过手机号与密码发出查询请求, 查询该手机所剩余的话费。
以下所述的各种功能都是针对专门的工作人员。他们拥有各自的账号与密码。
工作人员必须通过账号与相对应的密码登陆系统才能有权限完成以下的各种功能。
工作人员的登陆账号也存在两种,一种为普通的工作人员账号,可视为employee账号;一种为特定的管理员账号,可视为employer账号。
employee账号所表示的意义一般是工作人员的姓名,而employer账号可以例外。
两种帐号均可进行的操作有:
1. 更改与当前登陆账号所对应的密码。
2. 可以统计并查看所有的手机用户信息,该信息主要包括两方面,一方面是仅关于本手机的各种信息;另一方面是登记该手机的用户信息。
3. 手机的各种信息包括手机号,手机密码,手机收费方式(手机卡使用种类或手机套餐使用种类),手机当前余额等。
4. 用户信息包括用户身份证号,姓名,性别,家庭住址等。
5. 当存在新的手机号时,无论此时有无用户对其进行登记,都可以将与该手机号相关的纪录添加入数据库中,即可以添加手机用户的纪录。 copyright think58
[资料来源:http://THINK58.com]
6. 对于所能查看的信息,在需要时可以对相应的信息进行修改更新。
7. 对于已销号的手机可以删除关于该手机的纪录。
8. 如果存在过多的信息,而需要查找某一条特定纪录时,提供足够的查询信息,如手机号或用户身份证号,则可以直接查询关于该手机号的纪录或关于该用户的所有手机纪录。
9. 可以统计并查看所有的手机充值纪录,充值纪录信息也包括两类:手机信息与执行此次充值操作的管理员信息。
10. 充值手机信息有:被充值的手机号,本次充值的金额,充值后本手机的当前金额。
11. 管理员信息有:管理员编号与管理员账号。
12. 可以对特定的手机进行充值,即可以添加手机充值的纪录。
13. 可以查询特定的手机充值纪录,提供手机号或工作人员编号,可以查询到对该手机进行充值的纪录或由该工作人员执行过的手机充值纪录。
14. 注意已存在手机充值纪录不能也无需由工作人员自身进行删除或更改。
15. 如果系统中某手机被销号,则关于该手机所有的充值记录将全部自动消失。
16. 每一次手机被充值后,手机的所剩金额将得到自动更新。 本文来自think58 [版权所有:http://think58.com]
通过特定的管理员账号所可以执行的特殊操作有:
1. 可以查询所有的工作人员的详细信息,该信息包括:工作人员编号,账号名称,密码,性别,家庭住址以及该工作人员是否具有管理员权限。
2. 当出现新的工作人员时,可以添加该工作人员的信息。
3. 对现存的工作人员的信息可以进行修改。
4. 当工作人员离开此岗位时,可以删除该工作人员的信息。
5. 对当前系统中存在的所有信息可以进行备份。
6. 如果已作过备份,存在备份文件,则可将对系统中所有的信息进行还原(鉴于时间关系,目前该功能的实现较为草率,在以后的版本中将对该功能作做进一步的改进)。
系统的功能需求图见系统功能中6.系统功能设计模块图。 内容来自think58 [资料来源:www.THINK58.com]
二、系统非功能需求
方便性
实时性
快捷性模型中的函数依赖
该关系模型中存在的函数依赖如下:
表staff中:staff_id → staff_name, staff_password, sex, staff_addr, is_manager;
表phone中:phone_id → phone_no, password, fee_type, balance, cus_id;
cus_id → cus_name, ID_no, cus_sex, cus_addr;
表record中:record_id → phone_id, staff_id, balance, money。
5.3 分析范式,优化数据模型
由以上的函数依赖易知:该关系模型仅满足第二范式,而不满足第三范式,所以需要对以上数据模型作进一步改进。如果希望上述模型满足第三范式,则仅需对表phone作无损分解,将关于customer的所有信息写到另一个表中。即将依赖于cus_id的所有属性放到一个名为customer的表中,而在表phone仅留下cus_id属性作为一个外键。 think58好,好think58
[资料来源:THINK58.com]