课程设计Ⅱ
设计说明书
备忘录管理系统
的数据库设计和数据操作
学生姓名 学号 班级 成绩 指导教师
1018014092 计本103班
杨刚
数学与计算机科学学院 2013 年 4 月 1日
课程设计任务书
2012—2013学年第二学期
课程设计名称: 课程设计题目: 完成期限: 设计内容: 1.任务说明
备忘录管理系统可以为用户提供日常信息管理,主要为使用者提供对个人信息更方便的记录和查询等功能。具体要求实现以下一些基本功能:
1)日常记录管理:记录日常生活或者工作事件,以免遗忘,并提供记录的查询、浏览、修改和删除等管理功能。
2)通讯薄管理:记录朋友、亲属、同事等联系人的通讯信息,以免遗忘,并提供记录的查询、浏览、修改和删除等管理功能。
3)密码备忘管理:记录日常使用的密码信息,比如银行帐号密码、邮箱密码、一些网站登陆密码等,以免遗忘,并提供记录的查询、浏览、修改和删除等管理功能。
4)系统维护:操作员管理、权限管理等。 2. 要求
1) 在调查或了解的基础上,进行系统分析。 2) 根据逻辑设计方案,进行系统设计。
3) 课程设计的重点在系统的分析和数据库设计方面。 3. 参考资料
[1] 苗雪兰,刘瑞新,宋会群.数据库系统原理及应用教程(第2版)[M].北京:机械工业出版社,2006. [2] 向阳.信息系统分析与设计(第1版)[M].北京:清华大学出版社,2009. [3] 卫红春.信息系统分析与设计[M].西安:西安电子科技大学出版社,2003. 指导教师:杨刚教研室负责人:陈波
课程设计Ⅱ
备忘录管理系统的数据库设计和数据操作 自2013年3月18日至2013年3月31日共2周
课程设计评阅
评语: 指导教师签名: 年月日 摘要 设计了一个备忘录管理系统,主要完成了系统分析、数据库设计和实现、数据操作等内容。该系统具体功能有:记录日常生活或者工作事件,记录朋友、亲属、同事等联系人的通讯信息,也可以记录日常使用的密码信息等,数据库实现采用SQL Server 2008数据库管理系统。 关键词:备忘;管理系统;系统分析;SQL Server
目录
1 课题描述1 2 需求分析2
2.1 功能分析2
2.2数据流程分析2 2.3 数据字典3 3 系统总体设计5 3.1 模块划分5
3.2 系统功能模块图5 4 数据库的设计6
4.1 概念结构设计6 4.2 逻辑结构设计6
4.3 数据库物理结构设计7 5 数据库的数据操作9 5.1 数据库的创建9 5.2 数据操作9 6 总结12 参考文献12
1 课题描述
1)内容
本次课程设计是要设计一个备忘录管理系统,完成对备忘录管理系统数据库的设计并进行数据操作。备忘录管系统可以为用户提供日常信息管理,主要为使用者提供对个人信息更方便的记录和查询功能。具体实现一些功能,例如为用户提供日日常记录管理、通讯录管理、密码备忘管理和系统维护等功能。 2)目的
本次课程设计重在对学习过的理论知识进行实际应用。在了解相关信息的基础上,进行系统分析。根据逻辑设计方案,进行系统设计,重在系统的分析与数据库设计方面。加强掌握数据库设计流程,为系统实现奠定重要基础。
2 需求分析
2.1功能分析
设计管理系统对于用户,应实现以下功能:
1)日常记录管理:记录日常生活或者工作事件,以免遗忘,并提供记录的查询、浏览、修改和删除等管理功能。
2)通讯薄管理:记录朋友、亲属、同事等联系人的通讯信息,以免遗忘,并提供记录的查询、浏览、修改和删除等管理功能。
3)密码备忘管理:记录日常使用的密码信息,比如银行帐号密码、邮箱密码、一些网站登陆密码等,以免遗忘,并提供记录的查询、浏览、修改和删除等管理功能。 2.2数据流程分析
1)数据流程分析的工具
数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理元素,它只是描绘信息在系统中流动和被处理的情况。
数据流图的四种基本符号和具体描述如图2.1所示。
变换数据的处理数据的源点/终点数据存储数据流
图2.1 数据流图的基本符号
数据流图在系统分析中的主要作用体现在以下几点:
(1)数据流图是系统逻辑功能的图形表示,即使不是专业的计算机人员也容易理解它,所以它是分析员和用户之间极好的通信工具。
(2) 数据流图能清楚地描绘数据在系统中的流动和被处理的逻辑过程。 (3)数据流图是系统逻辑功能的图形表示,容易理解。 2)系统数据流图
通过对系统的分析,第0层数据流图如图2.1所示,第1层数据流图如2.1所示,通讯录管理模块第2层数据流图如图2.3所示。
图2.1 第0层数据流图
图2.2第1层数据流图
2.3 数据字典
数据字典(DD,Data Dictionary)是以特定格式记录下来的、对系统的数据流程图中各个基本要素(数据流、加工、存储和外部项)的内容和特征所作的完整的定义和说明。数据字典是对数据流程图的重要补充和说明。数据字典中有五种类型的条目:外部实体,数据流,数据存储,数据项和加工。
数据字典中包括数据定义,但除了它之外,还包含其它一些信息。一般信息,包括名字,别名和描述。针对以上数据流图,给出部分项的说明。
(1)用户信息
数据流名: 别名: 描述: 组成: 备注:
用户信息 用户信息
用户信息 = 用户编号+用户名称+用户密码
(2)日常记录信息
数据流名: 别名: 描述: 组成: 备注:
日常记录信息
日常记录信息
日常记录信息 =事件编号+用户编号+事件主题+事件内容+事件日期+星期+时间+城市+天气
(3)通讯录信息
数据流名: 别名: 描述: 组成: 备注:
通讯录信息
通讯录信息
通讯录信息 =通讯录编号+用户编号+姓名+电话+电子邮件+群组+备注
(4)密码备忘信息
数据流名: 别名: 描述: 组成: 备注:
密码备忘信息
密码备忘信息
密码备忘信息 = 密码编号+用户编号+账号类型+名称+账号+账号密码+备注
3 系统总体设计
3.1 模块划分
设计一个备忘录管理系统,具体分为四大模块,如下: (1)系统管理模块:实现新增用户,删除用户功能;
(2)日常记录管理模块:实现事务记录,事务查询浏览,事务修改,事务删除功能; (3)通讯录管理模块:实现通讯录添加,通讯录浏览,通讯录修改,通讯录删除功能; (4)密码备忘管理模块:实现记录备忘密码,密码查询浏览,备忘密码修改,备忘密码删除功能;
3.2 系统功能模块图
备忘录管理系统是利用计算机实现对用户记录信息的管理,严格按照系统总体设计模块划分方案,分为系统管理,日常记录管理,通讯录管理和密码备忘管理四大模块。系统功能框架图如下所示:
备 忘 录 管 理 系 统系统管理日常记录管理通讯录管理密码备忘管理新增用户删除用户事务记录事务查询浏览事务修改事务删除通讯录添加通讯录浏览通讯录修改通讯录删除记录备忘密码密码查询浏览备忘密码修改备忘密码删除
图3.1 系统功能模块图
4 数据库的设计
4.1概念结构设计
概念结构设计是将系统需求分析得到的用户需求抽象为反映用户观点的信息结构的过程。概念结构设计的结果是数据库的概念模型,即E-R模型。由于它是从现实世界的角度进行抽象和描述,所以它与计算机硬件、数据库逻辑结构和支持数据库的DBMS无关。在数据库设计中应重视概念结构设计,它是整个数据库设计的关键,是为计算机存储数据做准备工作。
根据需求分析结果,主要有用户实体、日常记录本实体、通讯录实体和密码备忘录实体4个实体。各实体属性图如图4.1-4.4所示,系统总体E-R图如图4.5所示。
事件编号用户名称用户用户编号事件主题日常记录本时间用户密码时间内容时间日期
图4.1 用户信息的实体属性图图4.2 日常记录本的实体属性图
群组账号密码备注通讯录电子邮件备注密码备忘录账号姓名电话账号类型名称
图4.3 通讯录的实体属性图图4.4 密码备忘录的实体属性图
日常记录本1拥有1用户1拥有1通讯录1拥有1密码备忘录
图4.5 系统总E-R图
4.2逻辑结构设计
E-R图表示的概念模型是用户数据要求的形式化。E-R图是独立于任何一种数据模型的概念信息结构,也不为任何一个DBMS所支持。逻辑结构设计的任务就是把概念结构设计好的基本E-R图转换为与选用的某个具体的DBMS所支持的数据模型相符合的逻辑结构,设计的结果是一组关系模式。
将图4.5中系统E-R图转换成关系模型如下:
用户(编号,用户名称,用户密码);
日常记录(事件编号,用户编号,事件主题,事件内容,事件日期,星期,时间,城市,天气) 通讯录(通讯录编号,用户编号,姓名,电话,电子邮件,群组,备注) 密码备忘录(密码编号,用户编号,账号类型,名称,账号,账号密码,备注) 4.3 数据库物理结构设计
数据库的物理结构主要指数据库在物理设备上的存储结构与存取方法,它依赖于给定的计算机系统。设计的任务是选择合适的存储结构和存取路径,也就是设计数据库的内模式。
内模式和逻辑模式不一样,不直接面向用户,一般的用户不一定、也不需要了解内模式的设计细节。内模式的设计可以不考虑用户理解的方便,其主要的设计目标有两个:其一提高数据库的性能,特别是满足主要应用的性能要求;其二能够有效地利用存储空间。
根据数据库物理结构设计理论,将该系统逻辑结构转换为物理结构,如下所示: (1)用户信息表
用户信息表(tb_User)主要用来存放用户账号信息,如表4.1所示。
表4.1用户信息表
列名 UserNum UserName Password
数据类型 int varchar(20) varchar(20)
允许NULL值
否 否 是
说明 编号 用户名称 用户密码
(2)日常记录本信息表
日常记录本信息表(tb_DaiRecord)主要用来存放日常记录信息,如表4.2所示。
表4.2日常记录本信息表
列名 ConNum UserNum Theme Content Date Week Time City Weather
数据类型 int int varchar(30) varchar(50)
date varchar(10) time(7) varchar(10) varchar(10)
允许NULL值
否 否 否 是 是 是 是 是 是
说明 事件编号 用户编号 事件主题 事件内容 事件日期 星期 时间 城市 天气
(3)通讯录信息表
通讯录信息表(tb_AddBook)主要用来存放记录的通讯录信息,如表4.3所示。
表4.3通讯录信息表
列名 AdNum UserNum Name Tel Email Groups Memo
数据类型 int int varchar(20) varchar(20) varchar(30) varchar(10) varchar(50)
允许NULL值
否 否 否 是 是 是 是
说明 通讯录编号 用户编号 姓名 电话 电子邮件 群组 备注
(4)密码备忘录信息表
密码备忘录信息表(tb_PassRecord)主要用来存放记录的密码备忘信息,如图4.4所示。
表4.4密码备忘录信息表
列名 PWNum UserNum Type TypeName LoginName Password Memo
数据类型 int int varchar(10) varchar(20) varchar(20) varchar(20) varchar(50)
允许NULL值
否 否 是 否 是 否 是
说明 密码编号 用户编号 账号类型 名称 账号 账号密码 备注
5 数据库的数据操作
5.1 数据库的创建
根据数据库设计结果,利用SQL Server Management 工具,用SQL语句创建数据库。创建数据库语句如下所示:
create database db_Memo
创建用户信息表: use db_Memo
Create table tb_User(
UserName varchar(20) not null,PassWord varchar(20),UserNum int primary key )
insert tb_User values('Admin','123',1)
创建日常记录信息表: Create table tb_DaiRecord(
ConNum int primary key,UserNum int not null, Theme varchar(30) not null,Content varchar(50), Date date,Week varchar(10),Time time(7),City varchar(10),Weather varchar(10), constraint FK_Number foreign key (UserNum) references tb_User(UserNum) )
创建通讯录信息表: Create table tb_AddBook(
AdNum int primary key,UserNum int not null,Name varchar(20) not null,Tel varchar(20), Email varchar(30),Groups varchar(10),Memo varchar(50),
constraint FK_Number2 foreign key (UserNum) references tb_User(UserNum) )
创建密码备忘录信息表: Create table tb_PassRecord(
PWNumint primary key,UserNum int not null,Type varchar(10),TypeName varchar(20) not null, LoginName varchar(20),Password varchar(20) not null,Memo varchar(50), constraint FK_Number3 foreign key (UserNum) references tb_User(UserNum) ) 5.2 数据操作
1)数据插入操作
向用户表中添加一些新用户,SQL语句如下所示: use db_Memo
insert tb_User values('Lee','111',2) insert tb_User values('Chen','222',3) insert tb_User values('Qin','333',4) 数据插入结果如图5.1所示
图5.1 用户信息表添加信息结果
2)简单数据查询
向新建表中插入新数据后,查询日常记录信息,SQL语句如下所示: use db_Memo
select Theme,Content,Date,Week,Time,City,Weather From tb_DaiRecord 数据查询结果如图5.2所示
图5.2 查询所有日常记录信息结果
3)嵌套查询
根据数据库中已添加的信息,现在查询用户Lee的所有好友通讯录信息,SQL语句如下所示: use db_Memo
select Name,Tel,Email,Groups,Memo From tb_AddBook,tb_User
Where tb_AddBook.UserNum=tb_User.UserNum and UserNum='Lee' 数据查询结果如图5.3所示
图5.3 用户lee的所有好友通讯录信息
4)为数据库表中列创建CHECK约束
在创建的日常记录信息表,为列Week创建CHECK约束,使其值只能为星期一、星期二、星期三、星期四、星期五、星期六、星期日,SQL语句如下所示:
use db_Memo
alter table tb_DaiRecord with check
add constraint CHECK_WEEK check(week='星期一' or week='星期二'
or week='星期三' or week='星期四' or week='星期五' or week='星期六' or week='星期日')
创建CHECK约束结果如图5.4所示:
图5.4 为日常记录表中列Week创建CHECK_WEEK约束结果
5)为数据库表中列创建DEFAULT约束
新建用户后,为用户创建初始密码,即对用户表中列PassWord创建DEFAULT约束,创建SQL
语句如下所示:
use db_Memo
ALTER table tb_User
ADD CONSTRAINT PassWord_Default DEFAULT '123' For PASSWORD
创建DEAFULT约束结果如图5.5所示
图5.5 为用户表列PassWord创建DEFAULT约束结果
6)模糊查询
根据密码备忘表中已插入信息,利用模糊查询带有关键字QQ的所有信息,SQL语句如下所示: use db_Memo
select TypeName,Type,LoginName,Password,Memo From tb_PassRecord
Where TypeName like '%QQ%' 查询结果如图5.6所示
图5.6 带有关键字QQ的所有密码备忘信息
7)创建触发器
在tb_User表中创建触发器,当删除tb_User表中用户信息时,检查该用户名是否为Admin(即超级用户),如果是则不能删除该条用户信息。
create trigger Admin on tb_User after delete as
if(select UserName from tb_User where UserName='Admin')=1 begin
print '超级管理员不能删除!' rollback transaction end
6 总结
通过本次数据库课程设计,完成对备忘录管理系统的分析和数据库的实现。在过程中,将重点放在系统的分析与数据库设计方面。根据了解备忘录信息,初步分析系统需求,在需求分析基础上,对备忘录管理系统进行总体设计。通过画E-R图,完成对数据库的概念结构设计;将E-R图转化为关系模式,完成数据库的逻辑结构设计;将关系模式转化为数据库中的表,完成数据库的物理结构设计。并利用SQL语句完成数据库中对象的创建、插入数据记录、查询记录、创建数据存储等。
备忘录管理系统的设计过程,是对软件工程与数据库课程相关内容的温习。整个完成过程严格按照软件开发流程与数据库设计步骤进行,为后期的系统实现打下了坚实的基础。该系统只满足于用户实现对日常记录、通讯录和密码备忘功能的实现,可扩展功能很多,有待进一步完善。相信通过本次数据库课程设计后,在未来的软件开发过程中,我们将更加规范自己的设计过程,使所开发系统更加稳定可靠,具有更多功能,服务于更多用户。
参考文献
[1] 严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,2002 [2] 林小玲.数据库原理及应用[M]. 北京:机械工业出版社,2011
[3] 苗雪兰,刘瑞新,宋会群.数据库系统原理及应用教程(第2版)[M].北京:机械工业出版社,2006. [4] 向阳.信息系统分析与设计(第1版)[M].北京:清华大学出版社,2009. [5] 卫红春.信息系统分析与设计[M].西安:西安电子科技大学出版社,2003 [6] 郑炜,朱怡安.软件工程[M].西安:西北工业大学出版社,2010
因篇幅问题不能全部显示,请点此查看更多更全内容