第一篇:通讯录数据库课程设计
学校通讯录管理系统数据库设计
4.2 数据库设计
在本实例中使用的是SQL Server 2000数据库管理系统。数据库服务器安装的位置为本机,数据库名称为communicationserver。下面将介绍数据库分析和设计、数据表的创建、数据表关系图和创建存储过程的内容。
4.2.1 数据库分析和设计
在本节中,将根据上一节系统功能的设计分析创建各数据表的实体E-R关系图,它是数据库设计非常重要的一步,下面用E-R图的形式表示出各实体的属性。
1. 用户E-R实体图
用户的实体具有用户ID、密码、姓名、性别、电话、E-mail、用户权限7个属性,ER图如图4-5所示。
姓名用户权限性别电话用户E-mail用户ID图4-5 用户E-R实体图
密码 2. 地区E-R实体图
地区的实体具有地区编号、地区名称2个属性,E-R图如图4-6所示。
地区编号地区图4-6 地区E-R实体图
地区名称 3. 职务E-R实体图
职务的实体具有职务编号、职务名称2个属性,E-R图如图4-7所示。
职务编号职务图4-7 职务E-R实体图
职务名称 4. 学校E-R实体图
学校的实体具有学校名称、学校所在地区、在校学生人数3个属性,可用E-R图表示,如图4-8所示。
学校名称学校在校学生人数学校编号学校所在地区
图4-8 学校E-R实体图
5. 通讯录E-R实体图
通讯录的实体具有联系人姓名、地址、联系电话、所属职务、所在学校、所在单位、所属地区7个属性,E-R图如图4-9所示。
联系人姓名联系电话所在单位通讯录所在学校图4-9 通讯录E-R实体图
所属地区地址所属职务
4.2.2 数据表的创建
在上面一节中讲解了实体的E-R图,本节中将根据E-R图的内容,创建企业信息管理系统中的各数据表,在此系统中共涉及到5个数据表的应用,分别为如下。
1、字段采用camel 风格定义
2、用不同颜色区分字段 主键:蓝色 外键:白色
既是主键又是外键:淡蓝色 普通字段:青绿 1. 用户信息表
用户信息表(Users)用于存放校园通讯录信息管理系统中所有系统管理用户的信息,用户管理是每个管理系统中必不可少的,也是比较重要的一部分,本系统中进行了较详细的设计,表中各个字段的数据类型、大小以及简短描述如表4-1所示。
表4-1 用户信息表 TB_Users 字段名称 sUserID sUserName sUserPassword sUserSex sUserEmail sUserPhone sUserPurview 2.地区信息表
地区信息表(Client)用于存放校园通讯录信息管理系统中所有地区的信息,地区信息的管理是系统中比较重要的内容,地区的名称是其中的关键信息,表中各个字段的数据类型、大小以及简短描述如表4-2所示。
表4-2 地区信息表
TB_Area 字段名称 sAreaID sAreaName 3. 职务信息表
职务信息表(Compact)用于存放校园通讯录信息管理系统中所有职务的信息,职务信息的管理是系统中比较重要的内容,职务的名称是其中的关键信息,表中各个字段的数据类型、大小以及简短描述如表4-3所示。
表4-3 职务信息表
TB_Duty
字段名称 sDutyID sDutyName
字段类型 varchar(20) varchar(50)
字段描述 职务编号[PK] 职务名称
字段类型 varchar(20) varchar(50)
字段描述 地区编号[PK] 地区名称
字段类型 varchar(10) varchar (20) varchar(10) char(2) varchar(20) varchar(20) char(1)
字段描述 用户ID [PK] 用户姓名
记录用户登入本系统时的用户密码
用户性别 用户E-mail 用户的联系电话 用户权限 4. 学校信息表
学校信息表(Com_detail)用于存放校园通讯录信息管理系统中所有学校的信息,学校信息的管理是系统中比较重要的内容,学校名称是其中的关键信息,表中各个字段的数据类型、大小以及简短描述如表4-4所示。
表4-4 学校信息表
TB_School 字段名称 sSchoolID sSchoolName iStudentNum sAreaID_FK 5. 通讯录信息表
通讯录信息表(product)用于存放校园通讯录信息管理系统中所有通讯录的信息,通讯录信息的管理是系统中比较重要的内容,联系电话是其中的关键信息,表中各个字段的数据类型、大小以及简短描述如表4-5所示。
表4-5 通讯录信息表
TB_AddrList
字段类型 varchar(20) varchar(50) int varchar(20)
字段描述 学校编号[PK] 学校名称 学校人数 地区编号[FK] 字段名称 iAddrID sLinkName sAddress sLinkPhone sUnitName sSchoolID_FK sDutyID_FK sAreaID_FK
字段类型 int varchar(50) varchar(20) varchar(20) varchar(50) varchar(20) varchar(20) varchar(20)
字段描述
通讯录编号(自动编号)[PK] 联系人姓名 地址 联系电话 工作单位 学校编号[FK] 职务编号[FK] 地区编号[PK] 4.2.3 创建视图
学校信息视图表V_SchoolInfo 字段名称 sSchoolName sAreaName
字段类型 varchar(50) varchar(50)
字段描述 学校名称 地区名称 sLinkName sDutyName sLinkPhone
create view V_SchoolInfo as
varchar(20) varchar(20) varchar(20)
联系人姓名 职务名称 联系电话
select sSchoolName,sAreaName,sLinkName,sDutyName,sLinkPhone from TB_AddrList,TB_School,TB_Duty,TB_Area where TB_AddrList.sSchoolID_FK=TB_School.sSchoolID
and and TB_AddrList.sDutyID_FK=TB_Duty.sDutyID TB_AddrList.sAreaID_FK=TB_Area.sAreaID 4.2.4 数据表关系图
在学校通讯录信息管理系统中各数据表的关系图,如图4-10所示。在TB_School数据表中,TB_Area数据表的sDutyID_FK字段作为外键。在TB_AddrList数据表中,TB_School数据表的sSchoolID_FK字段、TB_Area数据表中的sAreaID_FK字段和TB_Duty数据表中的sDutyID_FK字段作为外键。
图4-10 数据表关系图 4.2.5 创建存储过程
因为使用存储过程可以给系统带来优化,所以系统将很大程度地使用存储过程,在系统中共应用了10个存储过程,以Add开头的存储过程为系统中信息添加的存储过程,以Update开头的存储过程为系统中信息修改的存储过程,这些存储过程将会在系统程序文件的后台应用中调用,下面将对系统中应用的存储过程进行解释。
1. AddTB _Users存储过程
AddTB _Users存储过程用于向用户信息表中添加新的用户信息。以下代码表示了这一存储过程。 CREATE PROCEDURE AddTB_Users @sUserID varchar(10), @sUserName varchar(20), @sUserPassword varchar(10), @sUserSex char(2), @sUserEmail varchar(20), @sUserPhone varchar(20), @sUserPurview char(1) AS
INSERT INTO TB_Users ( sUserID, sUserName, sUserPassword, sUserSex, sUserEmail, sUserPhone,
sUserPurview )
VALUES ( @sUserID, @sUserName, @sUserPassword, @sUserSex, @sUserEmail, @sUserPhone, @sUserPurview ) GO 2. Add 存储过程 Add TB_Area存储过程用于往地区信息表中添加新的地区信息。以下代码表示了这一存储过程。
CREATE PROCEDURE AddTB_Area
@sAreaID varchar(20),
@sAreaName varchar(50) AS
INSERT INTO TB_Area (
sAreaID,
sAreaName )
VALUES (
@sAreaID,
@sAreaName ) GO 3. AddTB_Duty存储过程
AddTB_Duty存储过程用于往职务信息表中添加新的职务信息。以下代码表示了这一存储过程。 CREATE PROCEDURE AddTB_Duty
@sDutyID varchar(20),
@sDutyName varchar(50) AS
INSERT INTO TB_Duty (
sDutyID,
sDutyName )
VALUES (
@sDutyID,
@sDutyName ) GO 4.AddTB_School存储过程
AddTB_School 该存储过程用于往学校信息表中添加新的学校信息。以下代码表示了这一存储过程。 CREATE PROCEDURE AddTB_School
@sSchoolID varchar(20),
@sSchoolName varchar(50),
@iStudentNum int,
@sAreaID_FK varchar(20) AS
INSERT INTO TB_School (
sSchoolID,
sSchoolName,
iStudentNum,
sAreaID_FK )
VALUES (
@sSchoolID,
@sSchoolName,
@iStudentNum,
@sAreaID_FK ) GO 5. AddTB_AddrList存储过程
AddTB_AddrList存储过程用于往通讯录信息表中添加新的通讯录信息。以下代码表示了这一存储过程。 CREATE PROCEDURE AddTB_AddrList
@sLinkName varchar(20),
@sAddress varchar(50),
@sLinkPhone varchar(20),
@sUnitName varchar(20),
@sSchoolID_FK varchar(20),
@sDutyID_FK varchar(20) AS
INSERT INTO TB_AddrList (
sLinkName,
sAddress,
sLinkPhone,
sUnitName,
sSchoolID_FK,
sDutyID_FK )
VALUES (
@sLinkName,
@sAddress,
@sLinkPhone,
@sUnitName,
@sSchoolID_FK,
@sDutyID_FK ) GO 6. UpdateTB _Users存储过程
UpdateTB _Users存储过程用于修改用户信息表中,符合条件的用户信息,其中密码信息不可以更新。以下代码表示了这一存储过程。 CREATE PROCEDURE UpdateTB_Users
@sUserID varchar(10),
@sUserName varchar(20),
@sUserSex char(2),
@sUserEmail varchar(20),
@sUserPhone varchar(20),
@sUserPurview char(1) AS
UPDATE TB_Users SET
sUserID =@sUserID,
sUserName =@sUserName,
sUserSex=@sUserSex,
sUserEmail=@sUserEmail,
sUserPhone=@sUserPhone,
sUserPurview=@sUserPurview WHERE
sUserID =@sUserID GO 7. UpdateTB_Area存储过程
UpdateTB_Area存储过程用于修改地区信息表中的地区信息。以下代码表示了这一存储过程。 CREATE PROCEDURE UpdateTB_Area
@sAreaID varchar(20),
@sAreaName varchar(50) AS
UPDATE TB_Area SET
sAreaID =@sAreaID,
sAreaName =@sAreaName WHERE
sAreaID =@sAreaID GO 8. UpdateTB_Duty存储过程
UpdateTB_Duty存储过程用于修改职务信息表中的职务信息。以下代码表示了这一存储过程。
CREATE PROCEDURE UpdateTB_Duty
@sDutyID varchar(20),
@sDutyName varchar(50) AS
UPDATE TB_Duty SET
sDutyID =@sDutyID,
sDutyName =@sDutyName WHERE
sDutyID =@sDutyID GO 9. UpdateTB_School存储过程
UpdateTB_School存储过程用于修改学校信息表中的学校信息。以下代码表示了这一存储过程。 CREATE PROCEDURE UpdateTB_School
@sSchoolID varchar(20),
@sSchoolName varchar(50),
@iStudentNum int,
@sAreaID_FK varchar(20) AS
UPDATE TB_School SET
sSchoolID =@sSchoolID,
sSchoolName =@sSchoolName,
iStudentNum =@iStudentNum,
sAreaID_FK=@sAreaID_FK WHERE
sSchoolID =@sSchoolID GO 10. UpdateTB_AddrList存储过程
UpdateTB_AddrList存储过程用于修改通讯录信息表中的通讯录信息。以下代码表示了这一存储过程。
CREATE PROCEDURE UpdateTB_AddrList
@iAddrID int,
@sLinkName varchar(20),
@sAddress varchar(50),
@sLinkPhone varchar(20),
@sUnitName varchar(20),
@sSchoolID_FK varchar(20),
@sDutyID_FK varchar(20) AS
UPDATE TB_AddrList SET
sLinkName =@sLinkName,
sAddress =@sAddress,
sLinkPhone =@sLinkPhone,
sUnitName=@sUnitName,
sSchoolID_FK=@sSchoolID_FK,
sDutyID_FK=@sDutyID_FK WHERE
iAddrID =@iAddrID GO
第二篇:数据库课程设计
第一章 引言
开发的意义
设计应用系统的任务及目标 设计开发及运行的软硬件环境
第二章 系统分析与设计
系统需求分析
数据库概念结构设计 数据库逻辑结构设计 数据库物理结构设计 系统总体结构设计
第三章 系统开发及实现
设计开发采用的技术及设计效果
第四章 总结
第三篇:数据库课程设计要求
2007-2008学年第一学期
第一阶段:指导教师按班级填写《数据库系统课程设计任务书》,组织学生选题,并汇总选题及分组清单。
第二阶段:组织学生撰写需求分析报告,并组织学生自述。
第三阶段:指导学生编写代码,并调试、试运行。
第四阶段:指导学生填写《课程设计总结报告》
第五阶段:组织学生演示系统。
第六阶段:收集本学期课程设计资料,以班级为单位填写《课程设计总结与成绩统计分析报告》。
收集的资料要求包括:
1、《数据库系统课程设计任务书》,每个班级一份
2、学生选题分组一览表,每个班级一份
3、学生的需求分析报告、程序代码(提交源代码到教师指定的文件夹)、课程设计总结报告。在期末以班级为单位、按学号排序,将相关资料刻成光盘。
4、《课程设计总结及成绩统计分析报告》,每个班级一份
注:⑴《数据库系统课程设计任务书》、《课程设计总结报告》、《课程设计总结及成绩统计分析报告》均采用统一的标准表格填写,用A4纸打印。
⑵《数据库系统课程设计任务书》、《课程设计总结及成绩统计分析报告》由教师填写;《课程设计总结报告》由参加课程设计的学生每人填写一份。
⑶打印文档规范:1)统一用A4纸打印;
2)正文字体:宋体小四号;
3)若文档或表格多于1页,请标注页码。
附表1:《数据库系统课程设计任务书》
附表2:《课程设计总结及成绩统计分析报告》
附表3:《课程设计总结报告》
附表4:《数据库课程设计选题与分组一览表》
附表5:07-08上数据库课程设计指导教师一览表
附表6:《数据库系统课程设计任务书》样例
附表7:《数据库课程设计选题与分组一览表》样例
第四篇:数据库课程设计报告
数据库课程设计
校友通讯录
南华大学计算机科学与技术学院网络工程
(2010~2011 第二学期)
2011.6.25
目 录
一、设计需求说明··············3
二、总体设计分析··············
三、部分模块设计分析············
四、程序源代码···············
五、运行结果及截图·············
六、心得体会················
七、参考文献················
3 4 10 18 23 23
一、 设计需求说明
1、设计题目及要求
◆
建立校友通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;
◆ 能够提供注册、登录和修改个人信息等的功能; ◆ 校友之间能进行相互通信;
2、系统功能需求分析:
1).注册,找回密码(无法登陆该系统); 2).登陆;
3).更改个人资料;
4).查看并浏览校友所有的公开性信息; 5).申请私人互动,进一步获取校友私有信息: ①发送申请消息; ②拒绝;
③通过,开放私人信息; 6).删除已在列表中的对象; 7).账号注销。
二、 总体设计分析
系统功能模块图:
校友通讯录要实现的需求功能主要有注册,找回密码;登录;修改个人资料;浏览校友信息;查找校友;修改密码;删除校友;账号注销。 (1)注册:如果是新用户,用户可注册加入,填写详细的注册信息表。验证通过,如果注册成功,则进入校友通讯录主界面。
(2)找回密码:用户忘记了登陆密码,可通过找回密码功能找回密码,进入找回密码界面,填写邮箱号,可以修改密码。
(3)登录:输入正确的账号,密码,登陆成功,如果登陆次数超过5次,提示错误信息。
(4) 修改个人资料:进入个人信息页面,填写要修改的内容,如果修改成功,系统更新并记录信息。
(5)浏览校友信息:查看已在校友列表的校友的信息。 (6)查找校友:输入姓名、学院、专业等查找信息,查找成功。
(7)删除校友: 在已有的可互动的联系人中找寻并选择要删除的对象,如果删除成功则用户的私密信息不再对已删除对象开放。
(8)帐户注销:用户提出注销请求,如果退出校友通讯录系统,则系统注销退出者的个人信息。
三、 部分模块设计分析
1.通讯录:
2.工作顺序图:
(1)注册:申请账号
注册注册数据 : <未指定>真实性检查错误真实加入班级记录,分配帐号
6
②找回密码:找回用户丢失的密码
找回密码已登陆用户进入更改密码界面已注册未登记用户申请找回密码键入新密码输入帐号系统发送密码通过电子邮件确认否记录
7
(3)登录:已注册的用户利用系统已分配的账号登录
已注册用户或管理员登录键入密码帐号验证密码帐号是否正确通过验证未通过验证验证是否为管理员拒绝进入普通用户管理员进入个人主页进入管理员界面系统维护8
4)修改个人资料:修改个人中心的资料
更改个人资料进入更改个人资料页面已登陆用户输入要更改的个人资料确定取消记录9 (
(5)浏览校友信息:查看校友的信息
已登陆用户 查看搜索校友公开信息进入搜索界面键入搜索信息精确搜索模糊搜索显示符合条件校友名单显示选中校友公开信息10
(6)查找校友:查找用户感兴趣的校友
通信许可权发送许可权申请收到许可权申请已登陆用户拒绝许可权申请同意许可权申请记录,加入联系人列表删除许可权浏览联系人私人信息
11
(7)删除校友:删除用户的好友
已登陆用户
删除通信权进入已获通信权列表选中要删除的联系人取消删除确定要删除移出,记录12
四、 源程序代码
五、 运行结果及截图 1.显示主菜单界面
2.添加界面
3.显示界面
4.删除界面
删除后,通讯录里的显示记录:
5.查询界面
以姓名查询方式为例:
6.修改界面
修改后,通讯记录的显示记录:
7.保存界面
六、 心得体会
李兰利: 李竹村: 姚莉 : 李叶婷: 毛蓓:
梁娟:这次课程设计我觉得我做的事情比较少,尽的力不够,但在组员的辅助下,还是学到了一些东西。如:如何做原型设计、需求分析的应该做些什么,以及界面设计,数据库那边了解甚少。我觉得那句话话说得很对,团结就是力量。要做一件事,你需要有一个优秀的团队,大家可以一同进步,一同努力,困难一起克服。在这个团队中,我看到了他们钻研的精神,令我很敬佩;看到大家分工明确一起努力地画面。只是一次不错经验。
七、 参考文献
何玉洁、李宝安《数据库系统教程》人民邮电出版社 教材《软件工程》
第五篇:数据库课程设计心得
数据库课程设计心得体会 数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,我开始写这篇文章,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹并期望与大家共勉。
首先,让我的记忆追溯到大二暑假,在老大的指引下(老大劝我学asp.net),我接触到microsoft 公司的.net产品。那个时候我已经学过vc和asp,因为windows程序设计实验的课的关系,接触过vb,但是没有专门去学他,因为习惯了c++里面的class,int,觉得vb的sub,var 看着就不是很顺心。我是一个好奇心很强的人,突然看到了一个号称“.net是用于创建下一代应用程序的理想而又现实的开发工具”,而且主推c#语言,由于对c语言的一贯好感,我几乎是立刻对他产生了兴趣。我就开始了对c#的学习,任何语言都不是孤立存在的,所以数据交互是很重要的,暑假的时候我把我们这学期的课本数据库系统概论看了一遍。我记得以前用c语言编程的时候,数据是在内存中申请空间,譬如使用数组等等。很耗费内存空间。这个时候就是数据库站出来的时候啦,于是我又装上了sql server2000,以前学asp的时候用的是access,那个时候只是照着人家做,理论是什么也不是很清楚。
通过一个暑假的学习,基本搞清楚了理论方面的东西,具体怎么用也不是很清楚。但是这为这学期的课程设计打下了铺垫。
来到学校后,随着这学期的数据库课程大赛开始了,我有一个看法就是我自己应该具备的能力不是我会多少,而是我应该具备快速学会东西的能力。遇到什么就学什么。我们有时候很容易被一些专业名词说吓着,包括什么建模,软件工程,数据分析,数据挖掘等等。我身边就有很多同学被这些纸老虎所唬住,而没有勇气去接触他们,总是说这个太难了之类的退堂鼓的话,他们低估了自己的潜力同时也压抑住了他们自己的好奇心。其实都是纸老虎,又不是什么国家科研难题,只是去用一些工具,发明工具是很难,但是用一个工具就容易多了,just do it!我记得我做这个数据库之前,我们老师说要做好前期分析,我就在网上搜索用什么分析工具好。最后我选择了roseuml建模工具。在此之前,我脑袋里面没有软件建模的思想,什么uml建模对我而言就是一张空白的纸。但是真正接触后并没有想象的那么难,有什么不懂的上网去搜索,这是一个信息横流的世界,有google,baidu就没有不能解决的知识难题。以及后来的数据库分析的时候用到的powerdesigner也是一样。
开发的时候我想过用什么架构,c/s模式?模式有很多,怎么选择?我就上网搜索现在最流行的架构是什么。结果搜到了mvc架构,就是你啦。我决定用这个架构,不会,没关系,咱学。just do it!前期工作准备好后,那么我就得把我暑假学的.net加以实践。这个时候我更加深入的了解了利用ado.net操纵数据库的知识。并且对数据库里面的存储过程有了比较深入的了解。经过大概2个多星期的奋斗,我完成了我的数据库课程设计--基于.net数据集的图书馆管理系统。并最后非常荣幸的获得了大赛的一等奖以及以及新技术应用奖。
与其临渊羡鱼,不如退而结网。这次数据库课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知。我完成了这次数据库课程设计,不过这只是我学习路上的驿站,未来十年.net的核心技术就是xml[至少微软是这么宣传的],我会继续学习它,包括jave公司的j2ee我也很想试试,语言本来就是相通的,just do it!语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道的事情,主要是了解学习思想。古语说的好:学无止境啊!
我很庆幸我参加了这次数据库大赛,让我确实打开了眼界。
(最后,很感Ji学校给了我们这次动手实践的机会,让我们学生有了一个共同学习,增长见识,开拓视野的机会。也感谢老师们对我们无私忘我的指导,我会以这次课程设计大赛作为对自己的Ji励,继续学习。
毕竟学习就是一个just do it的过程!)