数 据 库 课 程 设 计----订户订阅报刊应用系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库课程设计---订户订阅报刊应用系统
院系:J0501计算机
姓名:***
学号:**********
指导老师:***
2008年6月28日
数据库课程设计
【实验目的】
◆加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平;
◆在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高;
◆学会将知识应用于实际的方法,提高分析和解决问题的能力,增强动手能力;
◆为毕业设计和以后工作打下必要基础。

【课程设计任务】
设计一个订户订阅报刊的应用系统。

涉及订单、订户、报刊目录及投递卡信息。

1.用E-R图设计概念模型
2.设计关系模型
3.分析关系模式各属于第几范式,阐明理由
4.使用CHECK设计表的有效性规则及说明
5.为每一库表设计插入、删除、修改触发器,从而保证数据库的完整性约束。

6.设计关系的外码约束
7.完成以下操作(输出操作结果和程序清单)
8.分析遇到的问题,总结并写出课程设计报告
9.自我评价
10.接收并且处理订户的订阅要求,回答订户的查询,统计报刊的订阅情况。

【数据库系统设计】
1.设计E-R图
2.设计相应的关系模型,确定数据库结构
根据基础数据建立名为“报刊”的数据库,并建立三个关系表:订单表ORDER1、用户表CUSTOMER、报刊表NMTABLE,投递卡SENDING各表结
构及数据结构如下:
(1)ORDER1表:
(2)CUSTOMER表:
(3) NMTABLE报刊表:
(4)SENDING投递卡:
订阅(代号,编号)
投递(订户号,期刊代号,代号)
提交(订户号,期刊代号,编号)
3. 数据库范式分析
由于此数据库不存在传递依赖和部分依赖,所以该数据库系统属于第三范式。

4.为order表的qty字段设计check约束:0<qty<1000
T-SQL语言: alter table order
add check(QTY between '0' and '1000');
5.触发器设置
(1)完成报刊目录NMTABLE表的price不小于0.10的约束
Create trigger ins
On nmtable
For insert
As declare @price float
Select @price=price
From inserted
Begin if @ price<0.10
Rollback tran return end
Return
(2)订户和订单关系表的级联删除触发器
Create trigger del
On customer
For delete
As if @@rowcount==0 return
Delete order
From order1,deleted d
Where o=o
Begin If @@error!=0 rollback tran return end
Return
6.设计关系的主码约束、外码约束和使用CHECK实现完整性控制:
7.(1)定义各文件的结构
订单(order)
Create table order1
(cno char(10),
date char(10),
nmno char(10),
start char(10),
term char(10),
qty int,
primary key(cno,nmno),/*在表级定义实体完整性*/
foreign key (cno) references customer(cno), /*在表级定义参照完整性*/ foreign key(nmno) references nmtable(nmno)/*在表级定义参照完整性*/ );
订户(customer)
Create table customer1
(cno char(10) primary key,/*表级定义主码*/
Name char(20) unique,/*列值唯一*/
Addr char(30) );
报刊目录(nmtable)
Create table nmtable
(nmno char(10) primary key,
title char(20),
period char(20)
price float(8) );
投递卡(sending)
Create table sending
(cno char(10),
issue char(10),
nmno char(10),
qty int,
primary key(cno,nmno), /*在表级定义实体完整性*/
foreign key (cno) references customer(cno), /*在表级定义参照完整性*/ foreign key(nmno) references nmtable(nmno) /*在表级定义参照完整性*/ );
(2)开发环境:Dreamweaver cs3
数据环境:Microsoft SQL Server 2000
9. 应用程序编写
用户的登录界面如下图:
(1) 连结数据库代码(此处以与订户数据表的连接为例):
程序采用MICROSOFT SQL OLEDB方法连接数据库,所以先初始化OLEDB组件,再创建Connection实例,如果创建成功,就尝试连结,集所有的数据操作可以共享这个数据库连接。

在需要使用数据访问的页面中使用<!--#include file="连接数据库的文件名" -->将该页面包含进来。

(2)订阅信息统计模块
该模块将显示所有订阅信息,包括每个用户订了哪些报刊,报刊的份数,起止月份及所订报刊的单价等所有数据信息,如图:
●以下给出加载这些信息的函数:
●插入数据:输入订户号,日期,报刊代号,起订期,终订期,份数后单击插入数据按钮,程序就会将此订户的信息添加到数据库中。

●主页:单击此按钮会返回主页面
●插入数据后对应的数据库内容:
(3)订户管理模块
订户管理模块包括编号,姓名,住址。

如图:●以下给出加载这些信息的函数:
●插入数据后对应的数据库内容:
(4)报刊目录管理包括代号,名称,刊期,单价。

如图:
●以下给出加载这些信息的函数:
●插入数据后对应的数据库内容:
(5)投递卡管理包括订户号,报刊代号,期号,份数。

如图:
●以下给出加载这些信息的函数:●插入数据后对应的数据库内容:
10.对数据库进行查询,更新等操作
1.检索地址为“太平路4890号”的订户信息
2.检索份数多于3的期号
3.检索订阅“01-01”报刊代号的订户名、报刊名、订阅份数4.检索没有订阅“人民日报”的订户号
5.检索未订阅代号为“03-01”报刊的订户名
6.检索被多个订户订阅的报刊之代号
7.增加一种报刊“04-01,经济信息报,周报,0.5”
执行后结果为:
8.删去报刊代号为“01-03”的报刊
执行后结果为:
9.把订户号“161213”改为“161225”
执行后结果为:
10.把“090104”订户所订的“01-03”报刊的截止日期改为12 执行后结果为:
11.取出订阅期在1到12月份的各种报刊的代号和总数
12.求每种报刊的订阅总数,并给出报刊代号
13.统计各种报刊的订户数
14.输出如下报表
订户姓名报刊名称期号日期起订期终订期份数
结果如下:
【课程遇到的问题及设计心得】
近一个礼拜的数据库课程设计结束了,怀着通过这次课程设计积累的信心,写下自己的心得,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹。

繁忙的考试任务结束后,先拿到数据库的课设题目,心里在暗自高兴:“(*^__^*) 嘻嘻……咋这么简单呢?画个E-R图,写出关系模型,对数据库进行查询,更新等等。

在之前
实验的基础上,这次课程设计可以很轻松完成了。

”可是,事实却很是“残忍”o(∩_∩)o…
这次的数据库数据可不是在企业管理器里建表输进去就可以了,而是要通过登录界面输入进去,这下可把我们给难住了,都蒙住了。

所以第一课时就只能做做查询更新了,只是熟练一下为后来做准备。

做界面的思路经老师讲解后变得清楚,可是该选用什么软件平台做又让我们抓了狂,老师说用ASP,JSP做可能会简单点,所以全体出动借书,每人搬回四本,有ASP,JSP,PB,VB…就这样开工了,因为老师说过web平台会简单些,所以大家就开始用制作网页的工具做,我选择了Dreamweaver CS3,因为之前对其略知一二。

所以网页界面做起来很简单,但麻烦事还在后头呢,都装了IIS软件,但很少有几台机子能够做好测试服务器的。

这个我本以为是和机器有关,后来晚上翻着书一页页看,终于在不经意间发现了: URL 前缀由域名和 Web 站点主目录的任何一个子目录或虚拟目录(而不是文件名)组成。

例如,http://localhost/aa/发现这个之后,高兴坏了,因为测试成功了,然后就是导入数据库了,在这里有给卡住了,因为之前做的是静态网页,现在该做动态了,要连接数据库了,没办法,又得请教高手了,后来在书上例题及老师的指导下,数据库导入成功。

最可怜的就是下面的事了:页面无法预览。

面对此种境况,她们放弃了WEB平台开发,还了制作网页工具书,又借了VB,因为看到电竞班在用VB“开发”,我也想过弃旧换新,可是都做了这么久了,最后还是没换,上网查找导致HTTP500的原因……就这样一直折腾了一天,后来还是没结果,眼看着他们的VB成果出来了,可自己的网页还是无法预览,最后只有请教老师,老师耐心的替我查找原因,现实总是那么的残忍:我的系统或硬件问题导致IIS软件不能发挥其所有功能。

当时就想:换VB?怎么可能?
没有解决不了的事情,在无奈的情况下,借了别人的电脑来做。

主要是用她的电脑来预览页面并通过主页面来录入数据,在前面功夫的基础上后面就做得很快。

因为网页制作工具简单,随着你的设计,代码也就自动生成,但你可以写代码来完成你想要的功能,方便得很,而且页面做出来也工整,看起来舒服。

不像VB平台做出来的总觉得怪怪的,当然VB也有其自身的好处。

随着数据库课程设计的结束,觉得自己应该具备的能力不是我会多少,而是我应该具备快速学会东西的能力。

遇到什么就学什么。

我们有时候很容易被一些专业名词说吓着,包括什么建模,软件工程,数据分析,数据挖掘等等。

我身边就有很多同学被这些纸老虎所唬住,而没有勇气去接触他们,总是说这个太难了之类的退堂鼓的话,他们低估了自己的潜力同时也压抑住了他们自己的好奇心。

与其临渊羡鱼,不如退而结网。

这次数据库课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。

从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。

在老师的耐心指导和同学的虚心帮助下,出于对一切未知的求知,我完成了这次数据库课程设计。

【参考文献】
⏹数据库系统概论(第四版)——高等教育出版社王珊萨师煊编⏹A sp数据库系统开发案例精选——人民邮电出版社盖天宇孙明丽⏹Dreamweaver CS3+ASP动态网站开发从基础到实践
——机械工业出版社陈益材李睦芳。

相关文档
最新文档