一。 课程设计题目:报刊订阅管理的设计与实现。
二。 设计要求:
1、据该业务过程示意图绘制数据流图、画出e-r图(属性按自己的理解设定,但一定要有订阅人基本信息、报刊基本信息,订阅开始日期,订阅结束日期等信息);
2、再将其转换成关系模式(要求达到3nf);
3、写出创建各表的sql语句(要含主键、外部键及其它的完整性定义),并指出各表应建哪些索引信息。
三。 需求分析:
1. 用户需求:
1) 登陆:分为管理员登陆和用户登陆。通过不同的账号和密码进入不同的界面。
2) 录入:对于管理员,具有新订阅人员的信息和新进报刊信息的录入功能;用户则注册信息并可修改信息。
3) 订阅:用户订阅报刊,显示金额。
4) 查询:用户可查询自己订阅的信息。管理员可按订阅人员,报刊,部门分类查询。
5) 统计:管理员可按订阅人员,部门,报刊统计销售情况;用户可统计出订阅情况。
6) 系统维护:数据的安全管理,主要是依靠管理员对数据库里的信息进行备份和恢复,数据库备份后,如果出了什么意外可以恢复数据库当时备份的状态,这提高了系统和数据的安全性,有利于系统的维护。
2. 可行性分析:
订阅报刊管理系统面向所有企业部门的职工用户,但具有比较高的安全性能。它能够实现报刊订阅的基本功能,包括新刊信息的录入、订阅、查询等操作以及后台数据库的备份和恢复,用户合法注册后必须输入有效密码才能成功进入此系统,可以进行订阅报刊、查询信息、统计信息等系统,对于非法操作,系统有识别和防护措施。
3. 系统结构图:
1. 订阅报刊订阅管理系统结构图:
4.数据流图:
1)主数据流图。
2)局部数据流图 :
a) 录入订阅人员。
b) 录入订阅信息。
c) 收取订阅款。
四.概念结构设计:
采用自上而下的设计方法,先自顶而下进行需求分析,进行逐步细化。然后自顶而上设计概念结构,最后将各局部个体集合为全局概念。
概念结构e-r图:
1) 局部e-r图:
该系统的实体有部门,订阅人员,报纸,报社。
图1.订阅人员。
图2.部门。
图3.报纸。
图4.报社。
2)总体e-r图。
图5.总体e-r图。
五.逻辑结构设计。
将e-r图转化为关系模式,每个关系的主码用下划线表示。
订阅人员d(人员编号,姓名,地址,**,所属部门)
部门b(部门编号,人员编号,名称)
报社n(报社编号,报社地址,报社名称,报社**)
报纸p(报纸编号,报纸类别,报纸**)
订阅c(订阅编号,人员编号,报纸编号,开始日期,结束日期)
根据以上关系模式,本系统中关于数据库表结构设计如下:
包括以下表:订阅人员 customer,部门 department,报刊 information,报社 news***** 订阅 order
表1 customer订阅人员表。
表2 department部门表。
表3 information报刊表。
表4 news*****报社表。
表5 order订阅表。
六.物理结构设计。
1).索引设计。
由于系统可能要涉及大量数据的操作,所以索引的建立就成为一种必要。我们可以在最经常查询的列上建立索引可以提高查询效率。而在这个系统中,我们经常要按用户编号、报刊代号、部门查询,所以我们可以为这三个表建立索引。
sql语句如下:(这几个都是字符型)
create unique index customnum on customer(cno)
create unique index depnum on department(depno)
create unique index on startd on information(ino)
2).创建数据库。
create database news*****/*创建报刊订阅管理系统*/
use news*****
go create table customer/*创建订阅人员表*/
(cno varchar(20),cname varchar(10)not null,caddr varchar(20),ctel varchar(20),cdep varchar(20), primary key(cno))
gocreate table department/*创建部门表*/
(dno varchar(10),dname varchar(20) not null,primary key(depnumber))
gocreate table information/*创建报刊表*/
(ino varchar(10),ilei varchar(20) not null,iprice varchar(20) not null, primary key(newsno))
gocreate table order/*创建订阅表*/
(ono varchar(10),cno varchar(20),ino varchar (20) not null,startd varchar(20) not null,endd varchar(20) not null,primary key(ono),foreign key (cno) references information(ono),foreign key (cno) references customer(cno))
go3) 建立存储过程向表中插入、修改、删除数据。
1)插入数据的存储过程。
*插入数据的存储过程 */
create proc departement_proc @dno varchar(20),@dname varchar(10)
asinsert into department(dno,dname) values(@dno,@dname)
exec depart_proc '1005','管理部'
exec depart_proc '1007','信息部'
exec depart_proc '1003','工程部'
exec depart_proc '1009','技术部'
exec depart_proc '1004','财务部'
exec depart_proc '1006','工程部'
exec depart_proc '1002','工程部'
create proc customers_proc @cno varchar(20),@cname varchar(20),@phone varchar(20),@caddr varchar(20),@dno varchar(10)
asinsert into user1(cno,cname,ctel,caddr , dno )
values(@uno,@cname,@ctel,@caddr, @dno)
exec use_proc '200812','郑建娜','1586830','温州乐清','10010','1005'
exec use_proc '200813','戎婷婷','1586831','杭州萧山','10011','1007'
exec use_proc '200814','王友文','1586832','浙江衢州','10012','1003'
exec use_proc '200815','胡焕婷','1586833','宁波余姚','10013','1009'
exec use_proc '200816','吴志红','1586834','浙江丽水','10014','1004'
exec use_proc '200817','鲁玉娇','1586837','浙江绍兴','10016','1009'
create proc infor_proc @dno varchar(10),@dname varchar(20),
asinsert into information(dno,dname)
values(@newsno,@newsname,@classifyno,@introduction,@publish,@price)
exec infor_proc '21001','时代杂志'
exec infor_proc '21002','青年杂志'
exec infor_proc '21003','环球时报'
exec infor_proc '21004','电脑杂志'
exec infor_proc '21005','娱乐杂志'
exec infor_proc '21006','娱乐杂志'
create proc ord_proc @dno varchar(10),@cno varchar(20),@ono varchar (20), startd varchar(20),@endd varchar(20)
课程设计题目
2011年工厂供配电技术课程设计题目。某大型铸造工厂配电一次系统设计。任务书 广东水利电力职业技术学院电力工程系。2011年6月广州。1.原始资料。1.1全厂用电设备情况 1 负荷大小。全厂用电设备总安装容量 6630kw 10kv侧计算负荷总容量 有功功率4921kw 无功功率1512kvar各车...
课程设计题目
课程设计ii题目。指导教师 叶晓国。1目的与总体要求。课程设计的目的是对学生专业课所学知识的进一步巩固和提高。本课程设计主要为了巩固 计算机网络 课程知识,使学生加深对课内所学的有关计算机网络体系结构 网络协议,网络安全,网络管理等知识的理解,通过实际开发小型的计算机网络工程项目,提高网络协议分析和...
课程设计题目
滨州学院2011 2012学年第二学期。电气工程与自动化专业 本 2009级 单片机原理与应用 课程设计。一 数字秒表设计。设计一个数字秒表,具有如下功能 当用户按下开始键后开始计时,计时范围00 99s,每秒加1,超过99秒自动清零 当用户按下停止键后停止计时,显示不变 当用户按下复位键后,显示0...