数据库系统原理课程设计--报刊订阅管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库系统原理课程设计--报刊订阅管理系统
数据库系统原理课程设计
课题名称:
姓名:
班级:
学号:
指导老师:
2013年 1 月 4 日
目录
一、需求分析-------------------------------------------------------------3
1.1需求
-------------------------------------------------------3
1.2数据字典
---------------------------------------------------3
1.3安全性要求
-------------------------------------------------7
1.4一致性要求
-------------------------------------------------7
1.5完整性要求
-------------------------------------------------7
二、概念结构设计(绘制E-R图)-----------------------------8
三、逻辑结构设计-----------------------------------------
-------8
3.1关系模式及优化分析-----------------------------------------8
3.2系统结构图-------------------------------------------------9
四、物理结构设计
-----------------------------------------------10
4.1基本设置--------------------------------------------------10
4.2触发器----------------------------------------------------10
4.3存储过程--------------------------------------------------11
4.4模块设计--------------------------------------------------12
五、数据实施和维护---------------------------------------------13
5.1 描述数据表------------------------------------------------13
5.2 数据的创建------------------------------------------------13
六、抓图-----------------------------------------------------------16
6.1 数据库及表的建立-------------------------------------------16
6.2 数据录入与实施---------------------------------------------18
七、设计小结-----------------------------------------------------22
摘要
随着计算机信息管理、网络办公的逐步普及,信息交流的便捷已被越来越多的人们所利用。
如何利用先进的管理手段进行报刊订阅管理,已是众多人所关注的问题。
现代报刊订阅管理所面临的问题是:信息量大,管理内容繁多,需要耗费大量人力和物力。
要想解决这一难题,就必须有一套科学、高效、严密、实用的管理系统。
采用现代计算机信息管理系统是实现此目标的主要途径。
这样不仅可以简化、规范学校的日常操作,而且可以使信息交流更加简单、快捷,从而减轻工作人员及相关部门的工作压力,增加管理的透明度。
因此,报刊订阅管理化平台系统应运而生。
报刊订阅管理系统能够很好的在校园网中架设和实现。
对于学校来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的系统只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。
无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。
此次通过数据库系统课程设计,我熟悉了SQL SERVER数据库管理系统的结构与组成;掌握了SQL SERVER数据库管理系统的应用技术和的使用;实践了《学生成绩管理系统》的数据库应用系统的设计方法、开发过程和SQL SERVER数据库的管理与维护。
最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。
一、需求分析
1.1需求
设计报刊订阅系统
订户:报刊=m :n
订户管理:订户添加、修改、删除
目录管理:目录添加、修改、删除
订单查询:按订户或订单号查询订单详细情况
统计查询:按照报刊目录统计各类报刊的订阅数量和金额表单生成:根据统计查询结果导出统计信息
订单只能订阅现有的报刊目录内容
投递时必须根据订单情况进行投递,不能超过订阅品种数量1.2数据字典
1.2.1数据结构
管理员用户=管理员帐户+管理员密码
订户=订户编号+订户名+联系电话+联系地址
目录=目录编号+目录名+单价+批注信息
订单=订单号+目录编号+订阅数量+订阅期数+单价+总价
1.2.2数据项
1.2.3数据流
1.2.4数据流图
1.3安全性要求
数据库内设置管理员表,系统管理员进入时需登陆账号和密码,只有账号和密码同时正确后才允许其进入系统,并且管理员的账号和密码可以在系统中修改。
1.4一致性要求
管理系统各表之间有较强的相关性,个表之间建立相应的一致性约束,以此来实现一致性需求。
1.5完整性要求
采用数据库的事物机制防止操作故障引起的数据不一致。
二、概念结构设计(绘制E-R图)
三、逻辑结构设计
3.1关系模式,优化分析
Customer(Cid,Cname,Phone,Address)Order(Ono,Cid,Odate)
Orderdetail(Ono,Did,Quantity,Qishu,
Unitprice,Total)
Diretory(Did,Dname,Unitprice,Ifo) Login(Uname,Upassword)
Orderdetail表属于第二范式,其余表都属于BCNF范式:
(Ono,Did)—>Quantity,
(Ono,Did)—>Qishu,
(Ono,Did)—> Unitprice,
(Quantity,Qishu,Unitprice)—>Total,(Ono,Did)—>Total(Total表独立出来有利于统计查询,减少反复运算)
3.2系统结构图:
四、物理结构设计
4.1基本设置
为各个表建立索引;数据和索引放在磁盘中;
按需进行系统配置;
4.2触发器
触发器框架
CREATE TRIGGER 触发器名
ON 数据表名或视图名
AFTER INSERT或DELETE或UPDATE
AS
BEGIN
--这里是要运行的SQL语句
END
GO
实例:
创建一个Delete触发器
CREATE TRIGGER truCustomer
ON Customer
AFTER DELETE
AS
BEGIN
- Delete BorrowRecord From BorrowRecord br , Deleted Where br. CustomerID=d. CustomerID END
GO
创建一个Update触发器
CREATE TRIGGER truCustomer
ON Customer
AFTER UPDATE
AS
if Update(Customer) BEGIN
Update BorrowRecord Set CustomerID=i. CustomerID From BorrowRecord br , Deleted , Inserted i--Deleted和Inserted临时表Where br. CustomerID=d. CustomerID
END
GO
4.3存储过程
(1)使用存储过程输出Customer表中所有信息
Create procedure UpdateCustomer
@Cid varchar(10),
@Cname varchar(50),
@Phone varchar(15),
@Address varchar(50)
As
Update Customer
Set Phone =@ Phone,Address =@ Address
Where Cid=@Cid and Cname =@ Cname
End
Create procedure insertCustomer
@Cid varchar(10),
@Cname varchar(50),
@Phone varchar(15),
@Address varchar(50)
As
begin
Insert
into Customer(Cid, Cname, Phone, Address) Values(@Cid ,@ Cname,@ Phone, @ Address)
4.4模块设计
4.4.1登录
4.4.2管理
4.4.3查询
4.4.4导出
五、数据实施和维护
5.1描述数据表
5.2数据的创建
创建数据库magazine片段
CREATE DATABASE [magazine] ON
(NAME = N'magazine_Data',
FILENAME=N'C:\ProgramFiles\MicrosoftSQLServer\MSSQL\data\magazin e_Data.MDF' ,
SIZE = 100,
FILEGROWTH = 10%)
LOG ON
(NAME = N'ab_Log',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\magazine_Log.LDF' ,
SIZE = 100, FILEGROWTH = 10%)COLLATE Chinese_PRC_CI_AS
GO
创建Login表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Login]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Login]
GO
CREATE TABLE [dbo].[Login] (
[Uname] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Upassword] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO
创建Customer
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Customer]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Customer]
GO
CREATE TABLE [dbo].[Customer] (
[Cid] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Cname] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Phone] [varchar] (15) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Address] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO
创建Diretory
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Diretory]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Diretory]
GO
CREATE TABLE [dbo].[Diretory] (
[Did] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Dname] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Unitprice] [float] NOT NULL ,
[Ifo] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO
创建Order表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Order]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Order]
GO
CREATE TABLE [dbo].[Order] (
[Cid] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Ono] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Odate] [datetime] NOT NULL
) ON [PRIMARY]
GO
创建Orderdetail表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Orderdetail]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Orderdetail]
GO
CREATE TABLE [dbo].[Orderdetail] (
[Did] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Ono] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Unitprice] [float] NOT NULL ,
[Quantity] [int] NOT NULL ,
[Qishu] [int] NOT NULL ,
[Total] [float] NOT NULL
) ON [PRIMARY]
GO
六、抓图:
6.1数据库及表的建立
创建的数据库magazine
表
6.2数据录入与实施
数据录入方式:手工
查询:
7、设计小结
通过一学期的学习,基本搞清楚了理论方面的一些东西,具体怎么用也不是很清楚。
但是这为这学期的课程设计打下了铺垫。
与其临渊羡鱼,不如退而结网。
这次数据库课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。
从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。
出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知。
我完成了这次数据库课程设计,不过这只是我学习路上的驿站,语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道的事情,主要是了解学习思想。
古语说的好:学无止境啊!
在我看来,数据库课程设计主要的目标是利用课程中学到的数据库知识和技术较好的开发设计出数据库应用系统,去解决各行各业信息化处理的要求。
通过这次的课程设计,更进一步巩固我们对数据库基本原理和基础理论的理解。
库应用系统设计开发的基本方法,进一步提高我们综合运用所学知识的能力。
当我选择报刊订阅管理系统时,我并没有着手写程序,而是从网上了解一下系统概述、系统目标、系统需求、业务流程分析、数据流程分析和数据词典。
当这些都准备好了之后,我就开始进行各个模块设计。
写出来的代码要求可以实现相应模块的功能,得到理想的效果。
知识的获得是无止境的,只要你想学,只要你行动,没有什么会难倒我们的。
回首这个些天的课程设计,我很欣慰,因为我有了动力,有了勇气。
谢谢老师对我们的不懈帮助,谢谢学校给了我们这一次实践的机会,这些美好的回忆美好的东西将永远伴随着我。