数据库课程设计网上书店.docx
《数据库课程设计网上书店.docx》由会员分享,可在线阅读,更多相关《数据库课程设计网上书店.docx(18页珍藏版)》请在冰点文库上搜索。
数据库课程设计网上书店
三年级品德与社会下册教学计划
《数据库原理与应用》
2011/2012学年第1学期
实验八数据库设计
一、姓名:
__
学号:
__
班级:
__
指导教师:
__
学生知识能力习惯态度分析:
计算机科学与工程学院
一、系统需求分析
1.1系统要求
(1)提供了全面,
详细的图书购物入口,轻松实现快捷购买。
(2)可以通过不同分类进行导航,用最方便,最快捷的方式找到你需要的图书。
(3)提供了图书购物所需的各种工具与网站知识、能力、情感价值观形成的关键时期,他们对自我、他人、家庭、社会有了一些浅显的认识,养成了一定的好的行为习惯,随着他们社会生活范围的不断扩大,进一步认识了解社会和品德的形成成为迫切的需要。
因本课程的开放性、活动性、实践性较强,绝大部分学生乐于这一门课程的学习,能积极与到本课程的课内外的学习活动中去。
(4)公正性很强(大站.专站.小站)排列顺序分明.公平公正的图书网址TOP排行
二、本册共包含三个单元:
说说我们的社区生活、画画我们成长的地方、看看我们周围的商店。
1.2需求分析(主要完成功能分析,建立功能模块图)
网上书店和现实书店区别比较:
网上书店优势:
涉及范围广,经营成本低。
劣势:
信用度如果低,影响生意;
三、教学目的任务:
优势:
直观,信用度高。
劣势:
涉及范围有限,经营成本高;
现在有部分现实书店已经开始从网上书店进货了。
本系统开发的目的是为了学习这样去做一个交互式的网页以及了解这种强大的网络编程工具,方便客户端和浏览器端之间的交流。
数据库采用实用,易学的SQLSever2000,以Tomcat
JSP的
服务器,XP作为系统运行平台。
功能模块图:
1
热爱劳动、勤俭节约的态度。
2、在生活中养成文明礼貌、诚实守信、友爱宽容、公平公正、热爱集体、团结合作、有责任心的品质。
根据需求分析,作出概念结构设计的E-R图如下:
管理员信息的E-R图:
客户信息的E-R图:
图书信息的E-R图:
实体之间关系的E-R图:
(二)能力
3.1E-R图转换为关系模型
Books(图书信息):
该表记录了图书的相关信息,包括(bookid,bookname,author,pubdate,pubhouse,type,cover,price,salenum)。
1、能够初步认识自我,控制和调整自己的情绪和行为。
adminid,orderid,userid,username,bookid,orderdate,orderstate)。
User(客户信息
2、能够清楚的表达自己的感受和见解,能够倾听他人的意见,
订单信息视图(View_Order)包括(userid,adminid,bookid,orderdate,orderstate,price,salenum,username,phone,email,address,post)。
3.2数据库表的基本结构(用表格方式表示,参照实验、学习从不同角度观察、认识、分析社会事物和现象。
中给出的表的基本结构说明)
根据逻辑结构设计,设计相应的表结构如下所示:
①图书表(Books),结构如下所示:
习工具探索和说明问题。
说明
1、初步了解儿童的基本权利和义务,初步理解个体与群体的互
动关系。
2、初步了解生产、消费活动与人们生活的关系。
3、了解一些基本的地理知识,理解人与自然、环境的相互依存
通过学习、实践体验、探究活动,将品德、行为规范和法制教育,爱国主义、集体主义和社会主义教育,国情、历史和文化教育,地理和环境教育等有机的融合,引导学生通过自己生活VRCHAR(50
、发挥艺术形式在本课程教学中的效能,创建良好的教学情境,提高学生的学习兴趣和学习的自主性。
NOTNULL
列名
VRCHAR(50
四、教材
VRCHAR(50
数据类型
约束(三)知识
bookid
书号
PRIMARYKEY
bookname
NOTNULL
作者
VRCHAR(50重点
NOTNULL
pubdate
出版日期
datetime
:
NOTNULL
pubhouse
NOTNULL
type
类型
VRCHAR(50
NOTNULL
全面把握课程目标,改变过去偏重知识学习,忽略能力、情感、态度、价值观培养的教学观念,通过多种教学活动,掌握必备的知识。
cover
封面
price
价格善于调动和利用学生已有的经验,结合学生现实生活中实际存在的问题,共同探究。
SMALLINT
大于
4、创设学习情境,灵活选用教学组织形式为学生的自主学习和生动活泼的发展提供充分的空间。
salenum
销售数量
5
SMALLINT
DEFAULT100
教学进度表:
②订单表(Order,结构如下所示:
adminid
1-2
管理员号
CHAR(6
列名
周次
教学内容
课时数
说说我们的社区生活
CHAR(6
NOTNULL
orderid
这是我们共同生活的地方
2
4
为了大家共同的需要
客户号
2
5
主码,引用User的外码
社区需要我们的共同参与
username
2
客户名
VARCHAR(50
NOTNULL
bookid
书号
移动的画板
主码,引用Books外码
9
orderdate
订单日期
2
NOTNULL
地图就是一幅画
2
VARCHAR(50
11
NOTNULL
③客户表(
),结构如下所示:
我家的日常购物
列名
2
说明
数据类型
约束
userid
客户号
CHAR(6
2
15
复习
NOTNULL
复习
SMALLINT
大于0
sex
性别
CHAR
(2)
取“男”或“女”
age
年龄
SMALLINT
大于0
phone
电话号码
SMALLINT
大于0
email
邮箱地址
VARCHAR(50
NOTNULL
address
住址
VARCHAR(50
NOTNULL
post
邮编
SMALLINT
大于0
根据以上分析,建立视图把相关隐秘信息保护起来,设置一定的权限,让管理员便于管理客户,订单和图书,客户之间没有权限访问,避免数据的冲突,保持数据的完整性和一致性。
四、SQL编程(主要包括创建表和创建必要的视图、触发器、存储过程等)
建立图书表(Books):
CREATETABLEBooks(
Bookidchar(6PRIMARYKEY,
Booknamevarchar(50notnull,
Authorvarchar(50notnull,
Pubdatedatetimenotnull,
Pubhousevarchar(50notnull,
Typevarchar(50notnull,
Covervarchar(50notnull,
Pricesmallintcheck(price>0,
Salenumsmallintdefault100,
建立订单表(Order):
CREATETABLEOrder(
Adminidchar(6notnull,
Orderidchar(6notnull,
Useridchar(6,
Usernamevarchar(50notnull,
Bookidchar(6,
Orderdatedatetimenotnull,
Orderstatevarchar(50notnull,
PRIMARYKEY(Userid,Bookid,
FOREIGNKEY(UseridREFERENCESUser(Userid,
FOREIGNKEY(BookidREFERENCESBooks(Bookid
建立客户表(User):
CREATETABLEUser(
Useridchar(6PRIMARYKEY,
Usernamevarchar(50notnull,
Passwordsmallintcheck(password>0,
Sexchar(2check(Sex='男'orSex='女',
Agesmallintcheck(age>0,
Phonesmallintcheck(phone>0,
Emailvarchar(50notnull,
Addressvarchar(50notnull,
Postsmallintcheck(post>0,
建立订单信息视图(View_Order:
CREATEVIEWView_Order
AS
SELECT*
FROMUser,Books,Order
WHEREBooks.bookid=Order.bookid
User.userid=Order.userid
User.username=Order.username
ORDERBYUser.useridASC
GRANTALLPRIVILIGESONUser,Books,Order
TOAdminid
WITHGRANTOPTION
ANDGRANTALLPRIVILIGESONOrder,User
TOUserid;
建立触发器:
CREATETRIGGERUpdate_Userid
AFTERUPDATEONUser
FOREACHROW
ASBEGIN
IF(new.Userid<>old.UseridTHENINSERTINTOUserVALUES(
new.Userid,newUsername,new.Password,CURRENT_USER,CURRENT_TIMESTAMP;
ENDIF;
END;
建立一个名为“check_user”的存储过程:
createprocedurecheck_user
@Orderidchar(6,
@Usertypechar(6,
@Useridvarchar(50,
@Adminidvarchar(50,
@Pricesmallintoutput,
@Salenumsmallintoutput,
@Orderidchar(6,
@Usernamevarchar(50,
@Passwordsmallintoutput
as
begin
if@Usertype=Adminid--如果是管理员
begin
ifexists(select[Adminid]
fromOrder
where[Adminid]=@Adminid
return1
elsereturn0
end
elseif@Usertype=Userid--如果是客户
begin
ifnotexists(select[Userid]
fromUser
where[Userid]=@Userid
else
begin
if(selectUseridUserwhereUseridisnull
return0
else
begin
insertintoUser(Userid,Username,Passwordvalues(@Userid,@Username,@Password
return1
select@orderfromOrder,Books,User
whereBooks.bookid=Order.bookid
User.userid=Order.userid
User.username=Order.username
if(Orderidisnull
return@Orderid
elseset@Orderid=-1
return@Orderid
end
end
执行存储过程:
declare@iint
exec@i=check_user'N02','N03'
print@i
declare@Ordersmallint
exec@Orderid'001',@Orderoutput
print@Order
五、设计小结(本次设计小结,存在的问题,收获等)
通过这次课程设计我对数据库的编程语言有了深刻的了解,对SQL语言的简洁性和高效性有了自己进一步的体会,同时对数据库的一些设计模式也有了一个大致的认识与了解。
在整个程序的设计过程中,对软件编程的流程,包括需求分析、概要设计、详细设计等步骤又有了一个新的认识,尤其是需求分析的好坏在整个程序的设计中有着举足轻重的作用。
需求分析没有做好,后面的步骤很容易受到负面的影响。