某电信营业厅收费系统-数据库课程设计 下载本文

《数据库课程设计》 课程设计报告

设计题目:某电信营业厅收费管理系统 学院名称: 信息工程学院 专业班级: 姓 名: 学 号:

目 录

1题目要求 ........................................................................................................ 3 2 需求分析阶段 .................................................................................................. 3

2.1需求分析阶段的目标 ............................................................................... 3 2.2需求分析阶段的任务 ............................................................................... 3

2.2.1 处理对象: ................................................................................... 3 2.2.2处理功能及要求: ......................................................................... 4 2.3 需求分析阶段成果 .................................................................................. 4

2.3.1 体会与收获 ................................................................................... 4 2.3.2 电信营业厅收费系统数据字典 ......................................................... 4

3 概念设计阶段 .................................................................................................. 5

3.1 概念设计阶段的任务和目标 ..................................................................... 5 4.逻辑设计阶段 ................................................................................................ 8

4.1逻辑设计的任务和目标 ............................................................................ 8 4.2数据组织 ................................................................................................ 8

4.2.1将E-R图转换为关系模型 ............................................................... 8 4.2.2数据库模式定义 ............................................................................. 9 5.1物理设计阶段的目标与任务 .................................................................... 11 5.2系统功能模块图 .................................................................................... 11 6 实施阶段 ....................................................................................................... 12 6.1.1 建立数据库、数据表 ................................................................................. 12

6.2数据入库 .............................................................................................. 13 7系统调试、测试 ............................................................................................. 14 8心得体会 ....................................................................................................... 16

1题目要求

某电信营业厅营业收费管理系统 ? ? ? ? ? ? ?

实现费用类型、业务员管理;

实现客户信息管理,客户设有结余金额;

实现收费管理,自动修改用户的结余金额(用触发器实现); 创建存储过程统计指定月份各种费用类型的收费情况; 创建存储过程统计指定日期各业务员的收费情况;

创建规则限定客户的电话号码是以数字1开头的11位数字组成的号码; 创建表间关系。

2 需求分析阶段

需求分析简单地说就是分析用户的要求。需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后后来各个阶段的设计,并影响到设计结果是否合理和使用。

2.1需求分析阶段的目标

1.了解电信营业厅营业收费管理系统的基本内容; 2.了解电信营业厅营业收费管理系统的基本业务流程;

3.了解电信营业厅营业收费管理系统对业务员的管理,费用类型管理,客户

信息管理的过程。

4.通过调查和与电信营业厅人员的交流,了解用户对电信营业厅系统的业务要求,安全性和完整性要求;

2.2需求分析阶段的任务 2.2.1 处理对象:

根据电信营业厅收费系统要完成的功能,该系统有以下数据库信息。

●收营员信息。包括登录该管理系统的收营员的基本信息,如收营员编号、收营员编号、密码、收营员年龄。

●客户信息。包括各个客户的基本信息,如客户手机号码、客户姓名、客户地区信息、客户结余金额等。

●话费信息。包括该客户每月话费的详细信息,如:通话费、业务费、上网费等。 ●收费管理。包括客户电话、收银员编号、收费金额、收费日期。

2.2.2处理功能及要求:

1.能够存储所有入网客户的信息,并方便有效的进行相应的数据操作和管理,主要包括

1)客户入网

2)客户信息的关键字检索查询。

2.能够对客户的交费信息进行查询,这主要包括: 1)客户交费交费纪录 2)客户余额查询

2.3 需求分析阶段成果 2.3.1 体会与收获

系统需求分析主要是通过对周边的附近各电信营业厅进行访问,请教,了解电信营业厅运行机制,并通过上网搜索相关电信营业厅的知识。由于不熟悉电信营业厅的运行规则,在绘制业务流程图和数据流程图时,遇到很多问题,存在许多考虑不周的问题。反反复复的重新考虑,重新分析和完善,才逐步把业务弄清楚,最终顺利的完成了需求分析阶段的任务。

2.3.2 电信营业厅收费系统数据字典

数据字典是体统中各类数据描述的集合,是进行详细的数据手机和数九分析所获得的主要成果。数据字典在数据库设计中占有很重要的地位。数据字典通常包括数据项、数据结构、数据流、数据存储、处理过程和外部实体6个部分。

数据项是不可再分的数据单位。 数据结构反映了数据之间的组合关系。 数据流是数据结构在系统内传输的路径。

数据存储是数据结构停留或保存的地方也是数据流的来源和去向之一。 处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典是需要描述处理过程的说明性信息。

本文中包括14个数据项 如下: 数据项 收营员编号 年龄 手机号码 地区 通话费 上网费 收费金额 字段类型 char(11) int bigint char(20) int int int 数据项 收营员姓名 密码 客户姓名 结余金额 业务费 月份 收费日期 字段类型 char(10) char(20) char(10) int int int date 4个数据结构如下

收营员 客户信息 话费信息 收费管理 3 概念设计阶段

将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。它是整个数据库设计的关键。

3.1 概念设计阶段的任务和目标

(1)选择底层数据流为切入点,通常选择实际系统中的子系统; (2)设计分E-R图,即各子模块的E-R图;

(3)生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一; (4)生成全局E-R图,通过消除冲突等方面。

收营员实体图

客户信息实体图

收费管理实体图

话费信息实体图

系统ER图

4.逻辑设计阶段

4.1逻辑设计的任务和目标

以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。

4.2数据组织

4.2.1将E-R图转换为关系模型

实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:

一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本

身的属性均转换为关系的属性,而关系的码为各实体码的组合。

一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实

体码的组合

具有相同码的关系模式可合并。

由于客户与话费的联系方式是1:n(一对多),而收营员与客户之间的联系方式则是n:m(多对多),这样要把它们之间的联系转化为独立的关系模式,,将其联系也转化成独立的关系模式,具体的基本E-R图向关系模型的转化如下:

收营员(收营员编号,密码,年龄,姓名)

收费管理(手机号码(外码),收营员编号(外码),收费金额,收费日期) 客户管理(手机号码,姓名,地区,结余金额)

话费信息(手机号码(外码),月份,通话费,上网费,业务费)

(注:画框的字为主码)

4.2.2数据库模式定义

数据库的模式定义包括三个方面: 1. 数据的逻辑结构; 2. 数据之间的联系;

3. 数据有关的完整性约束、安全性要求。 收营员表

客户信息表

手机号码为主码,每个人的的手机号码可以确定该客户的名字及信息。

手机号码要求以1开头,且只能输入11位,该约束语句如下

手机号码bigint,check(手机号码like'1%'),check (len(手机号码)=11) 收费管理表

由于每个手机号码可以交多次费,且每个收营员可以为同一客户进行交费,故该表中没有主码,手机号码位客户信息表中的主码,在此作外码。收营员编号为收营员表中的主码,在此做外码。收费日期,必须输入正确的年月日,故为date型。 话费信息表

由于每个客户每个月只有一张话费信息表,估、故只有手机号码与月份同时确定时才可确定一张话费信息表。且月份只能输入1-12月,该约束方式如下

月份int,check ((月份)between 1 and 12)

5物理设计阶段

5.1物理设计阶段的目标与任务

数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:

(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构; (2)对物理结构进行评价,评价的重点是时间和空间效率。

5.2系统功能模块图

本系统的功能主要包括如图几个方面:

系统功能图

6 实施阶段

6.1.1 建立数据库、数据表

数据库的建立

createdatabaseChinanet

6.1.2 建立数据表

收银员表

createtable收银员(收营员编号char(11)primarykey,收营员姓名char(10)notnull,年龄int,密码char(20)notnull);

客户信息

createtable客户信息

(手机号码bigintprimarykey,check(手机号码like'1%'),check (len(手机号码)=11),姓名char(10)notnull,地区char(20)notnull,结余金额int);

话费信息

createtable话费信息

(手机号码bigint,check(手机号码like'1%'),check (len(手机号码)=11),通话费intnotnull,业务费int,上网费int,月份int,check ((月份)between 1 and 12), foreignkey(手机号码)references客户信息(手机号码), primarykey (手机号码,月份));

收费管理

createtable收费管理

(手机号码bigint (,check(手机号码like'1%'),check (len(手机号码)=11),收营员编号char(11)notnull,收费金额intnotnull,收费日期datenotnull, foreignkey(收营员编号)references收银员(收营员编号), foreignkey(手机号码)references客户信息(手机号码), );

6.1.3 建立存储过程

存储过程共有4个存储过程

1.统计指定日期各业务员的收费情况

createprocedureP_存储过程(@收费日期date,@收营员编号char(11),@收费总金额intoutput) as

select@收费总金额=SUM(收费金额)from收费管理where (@收费日期=@收费日期and@收

营员编号=@收营员编号)

2.统计指定月份各种费用类型的收费情况

(1)上网费

createprocedureT_存储过程(@月份int,@上网费总金额intoutput) as

select@上网费总金额=SUM(上网费)from话费信息where (@月份=月份)

(2)业务费

createprocedureT1_存储过程(@月份int,@业务费总金额intoutput) as

select@业务费总金额=SUM(业务费)from话费信息where (@月份=月份)

(3)通话费

createprocedureT2_存储过程(@月份int,@通话费总金额intoutput) as

select@通话费总金额=SUM(通话费)from话费信息where (@月份=月份)

6.1.4 建立触发器

触发器 收费管理,自动修改用户的结余金额

createtriggerT3_on收费管理forinsert as

declare@余金额int

select@余金额=收费金额from收费管理

update客户信息set结余金额=结余金额+@余金额where客户信息.手机号码=(select手机号码frominserted)

6.2数据入库

系统包括客户收费,客户增加,收营员管理等功能,共有4张基本表,采用事先在Excel中录入数据,然后使用SQL Server 2008数据导入/导出向导功能,直接将数据导入到相应的基本表中。

7系统调试、测试

对电信营业厅收费管理系统进行测试,验证每个功能是否符合要求,具体的测试如下: 1 基本表和视图视图查看 收营员表查看

客户信息表查看

收费管理表查看

话费信息表查看

2 检验各个存储过程

统计指定日期各业务员的收费情况

declare@收费总金额int

execP_存储过程'2015-12-06','1',@收费总金额output select'收费总金额'=@收费总金额

统计指定月份各种费用类型的收费情况

上网费

declare@上网费总金额int

execT_存储过程'3',@上网费总金额output select'上网费总金额'=@上网费总金额

业务费

declare@业务费总金额int

execT1_存储过程'3',@业务费总金额output select'业务费总金额'=@业务费总金额

通话费

declare@通话费总金额int

execT2_存储过程'3',@通话费总金额output select'通话费总金额'=@通话费总金额

3 检验各个触发器

在进行交费之后

insertinto收费管理values (15291251285,'2',30,'2015-12-06') 该客户结余金额如下

8心得体会

在本次课程设计过程中,首先拿到题目时,给我最大的感觉就是难。对于建表,如何创建表间关系都毫无头绪,无从下手。在经过网上查阅、与同学探讨的过程后,有了最初的想法,经过一遍遍的尝试之后,最终确定了各个表及各个表中的列。

在一次次的尝试过程中,由于知识储备量不足、考虑不周的原因,很多工作都不得不重新来过。起初,对于最基本的约束都不能实现,存储过程及触发器更是不知从何处着手。经过反复的尝试,终于一步步实现了题目中的要求。

通过本次课程设计,熟悉了数据库语言,加深了对数据库语言的应用,同时对存储过程及触发器有了一定的掌握,是我对数据库的掌握更加巩固。当然,就目前系统的功能来说,还不是太完善,很多地方没有考虑周全,日后还需不断地提升,做到更好。

参考文献

[1] 王珊 陈红,数据库系统原理教程,清华大学出版社