云南大学数据库期末大作业:数据库设计.doc
《云南大学数据库期末大作业:数据库设计.doc》由会员分享,可在线阅读,更多相关《云南大学数据库期末大作业:数据库设计.doc(18页珍藏版)》请在咨信网上搜索。
云南大学软件学院 实验报告 课程: 数据库原理与实用技术实验 学期: 任课教师: 专业: 学号: 姓名: 成绩: 期末大作业: Electronic Ventor 数据库设计 一、实验目得 (1)掌握数据库设计得基本方法 (2)掌握各种数据库对象得设计方法 (3)熟练掌握DBA必须具备得技能 二、实验内容 1、 根据项目得应用与项目得需求说明文档,进行详细得需求分析,给出需求分析得结果。 (1) 客户可以在网站上注册,注册得客户要提供客户得姓名、电话、地址,以方便售后与联系,姓名即作为用户名,与密码一起用于注册与登录,客户编号可唯一识别用户,卡号可网上支付.其中地址、电话以方便联系与寄货; (2) 网站管理员可以登记各种商品,供客户查询,订购。登记商品时要提供商品得名称、价格,商店中现有商品量,商品编号可唯一识别商品; (3) 类别表示商品所属类别,类别编号可唯一识别类别,其中包含了,商品类别名称与制造厂商,可以对商品进行分类售卖; (4) 客户可以在网上下订单,也可以到实体店购物,其在订单上所选择得支付方式不同(信用卡、借记卡、现金,现金代表实体店购物),网站管理员可以查瞧订单,并及时将订单得处理情况更新(比如货物已寄出得信息,订单状态:0:未处理,1:已处理,2:已发货);订单编号可唯一识别订单,订单中包含订单产生时间,订单状态,支付方式与支付总额; (5) 实体商店有自己得店名,卖多种商品,每个商店都有固定得地址,顾客可以到店中买商品,(注:在实体店中购买商品得顾客一律将顾客名默认为佚名),当商店中得库存量小于10时会有提醒到仓库中拿货; (6) 配送单中包含查询号可唯一识别配送单,配送人,联系方式; (7) 仓库中仓库编号可唯一识别仓库,其中每个仓库都有区号,代表其地址 . (8) 各实体间关系 1) 一个客户可以购买多种商品,一种商品可以被多个客户购买; 2) 一个商品属于且仅属于一种类别,一种类别得商品可以包含多个商品或没有; 3) 一种商品放在多个商店中销售,一个商店至少销售一种或销售多种商品; 4) 一个订单对应一个客户,一个客户对应多个订单; 5) 一个订单对应至少有一件商品或多件,一个商品对应多个订单; 6) 一个订单可以有一个商品配送单 7) 一个仓库可以存放多种商品,一种商品可以存放在一个仓库; 2、 数据库逻辑设计:用文字简要描述实体之间得联系,画出E—R图(标出各联系中实体得基数)。 客户-商品:n-n; 商品—类别:n—1; 商品—商店:n—n; 客户-订单:1—n; 订单—商品:1—n; 订单-配送当:1—1; 仓库-商品:1—n 3、数据库物理设计:将E-R图转换为数据表.需要给出详细得转换规则,对应生成得表,属性(主属性、描述性属性,多值属性,符合属性等),主键,外键,约束(取值就是否NULL等),索引(三种类型得索引至少每种出现一次)等。 在客户,配送单,类别中建立索引,语句在4题中 如3中,有2个n-n关系,分生成订购表与销售表 4、SQL中创建语句得使用:根据第二步中得结果,将相应得表,属性,主键,外键,约束等使用标准得SQL CREATE语句实现。(要求给出创建得标准语句,以及创建之后在SQL数据库中得脚本与截图)。 create table 客户 ( 客户编号 char(5) not null unique, 姓名 varchar(10), 密码 varchar(15), 电话 numeric(11), 地址 varchar(20), 卡号 char(19), constraint PK_客户 primary key (客户编号) ); create table 类别 ( 类别编号 char(5) not null unique, 类别名称 varchar(10), 制造商 varchar(10) , constraint PK_类别 primary key (类别编号) ); create unique index 类别_PK on 类别 ( 类别编号 ASC ); create table 仓库 ( 仓库编号 char(5) not null unique, 仓库区号 varchar(5), constraint PK_仓库 primary key (仓库编号) ); create table 商品 ( 商品编号 char(5) not null unique, 仓库编号 char(5) not null, 类别编号 char(5) not null, 商品名称 varchar(50), 价格 float, constraint PK_商品 primary key (商品编号), constraint fk_仓库编号 foreign key(仓库编号) references 仓库, constraint fk_类别编号 foreign key(类别编号)references 类别 ); create unique clustered index 客户_PK on 客户 ( 客户编号 ASC ); create table 订单 ( 订单编号 char(5) not null, 客户编号 char(5), 订购时间 varchar(10), 支付方式 varchar(10), 订单状态 numeric, 总额 float , constraint PK_订单 primary key (订单编号), constraint fk_客户编号 foreign key(客户编号)references 客户 ); create table 配送单 ( 查询号 char(10) not null unique, 订单编号 char(5) not null, 配送人 varchar(10), 联系电话 numeric(11), constraint PK_配送单 primary key (查询号), constraint fk_订单编号 foreign key(订单编号) references 订单 ); create clustered index 配送_FK on 配送单 ( 订单编号 ASC ); create unique index 配送单_PK on 配送单 ( 查询号 ASC ); create table 商店 ( 商店号 char(5) not null unique, 商店名 char(10), 地址 varchar(20), constraint PK_商店 primary key (商店号) ); create table 销售 ( 商店号 char(5) not null, 商品编号 char(5) not null, 库存量 int, constraint PK_销售 primary key(商店号, 商品编号) ); create table 订购 ( 订单编号 char(5) not null, 商品编号 char(5) not null, 数量 int, 金额 float, constraint PK_订购 primary key (订单编号, 商品编号) ); 5、存储过程、触发器与视图:根据需要给数据库添加至少六个实用得存储过程、触发器与视图,并说明它们各自得功能.(需要给出语句执行得结果示意图) (1)创建视图,查找商品名为'苹果'得商品 create view find_goods as select 商品编号,商品名称,价格 from 商品 where 商品名称 like ’苹果%' (2)创建视图,查找价格在3000—6000得商品 create view price as select 商品编号,商品名称 from 商品 where 价格>3000 and 价格<6000 (3)创建触发器,提醒店铺中库存量小于10得商品 create trigger trigger_alarm on 销售 after update as if(select 库存量 from 销售 where 库存量<10)〈10 print ’trigger out:’ select 商品编号,库存量 from 销售 where 库存量<10 return (4) 创建触发器,当删除配送单中得数据时显示出所删信息 create trigger trigger_del on 配送单 after delete as print ’delete' (5)创建存储过程,根据商品编号,查询该商品得订购量 create proc sp_find_quantity 商品编号 char(5), sumq int output as select 商品编号,sum(数量) from 订购 group by 商品编号 having 商品编号=商品编号 declare sumq int exec sp_find_quantity 商品编号='s0001', sumq=sumq output print 'the sum quantity is:’+ convert(varchar(5),sumq (6)创建存储过程,通过商品名称寻找商品信息 create proc sp_find_price name char(10) as select * from 商品 where 商品名称 like name + '%' exec sp_find_price name='戴尔 6、分析常见得业务流程,列举出至少五种SQL SELECT语句.实现得语句要满足如下要求: a) 在五种语句中得查询能反映正常得业务需求; b) 分析中至少要分别出现一次ORDER BY、GROUP BY … HAVING子句; c) 分析中至少使用一次聚集函数; d) 分析中至少使用一次嵌套查询; e) 分析中至少使用一次UNION或INTERSECT运算; 给出每一种语句执行得结果. (1)计算并查找订购单中相同订单订购超过5000得总额 select 订单编号,sum(金额)as 总额 from 订购 group by 订单编号 having sum(金额)>5000 (2) 查找即购买了商品编号为s0001又买了s0002得客户 select 姓名 from 客户 b,订单 o,订购 s where s、商品编号=’s0001’ and b、客户编号=o、客户编号 and o、订单编号=s、订单编号 intersect select 姓名 from 客户 b,订单 o,订购 s where s、商品编号=’s0002’ and b、客户编号=o、客户编号 and o、订单编号=s、订单编号 (3)按照顾客c0002消费得总额大小顺序排订单编号 select 订单编号,总额 from 订单 where 客户编号=’c0001' order by 总额 desc (4)查询订单编号为00003得配送信息 select o、订单编号,配送人,联系电话 from 订单 o,配送单 s where o、订单编号=s、订单编号 and s、订单编号='00003’ (5)查找同样买了商品编号为s0002得客户信息 select 客户编号,姓名,电话 from 客户 where 客户编号 in (select 客户编号 from 订单,订购 where 订单、订单编号=订购、订单编号 and 订购、商品编号='s0002') (6)查询当日销售总额 select 订购时间,sum(总额) as 营业额 from 订单 group by 订购时间 7、 (选做)完成数据库得设计之后,根据自己所熟悉得编程语言(C、C++、JAVA),实现一个简单得程序,能够在程序中组装SELECT语句,链接创建得数据库,进行查询,并显示查询结果。若完成,请提供详细得代码清单(代码作为附件,附在本报告得最后)。 用JSP页面编写 实现如下: 8、实验小结。 在本次实验中一共建立了9个表,完成了6条Select语句,6条关于视图、触发器与存储过程,在语句实现过程中,因为涉及内容比较广,差不多把数据库语句全部复习了一遍才开始做,所花得时间较长,但也收益颇丰,对数据库得设计与实现也有了总体了解。最后在做选做时,选择了通过网页得方式实现,因为在做专业实训时也用了Java EE这项技术,所以实现起来颇为得心应手. 附件 package 、ynu、myBusiness、db; import java、sql、Connection; import java、sql、SQLException; import java、sql、ResultSet; import java、sql、Statement; import 、devdaily、opensource、database、DDConnectionBroker; public class ConnectionBroker implements BuildConnection { private String driver = null; ﻩprivate String url = null; private String username = null; ﻩprivate String password = null; private int minConnections = 0; ﻩprivate int maxConnections = 0; private long timeout = 0; private long leaseTime = 0; ﻩprivate String logFile = null; private DDConnectionBroker broker = null; void setUp() { //驱动包 ﻩﻩdriver = "、microsoft、sqlserver、jdbc、SQLServerDriver”; //连接到数据库business ﻩﻩurl = ”jdbc:sqlserver://127、0、0、1:1433;DatabaseName=business"; ﻩusername = "sa"; password = "yym”; minConnections = 3; maxConnections = 6; timeout = 100; ﻩﻩleaseTime = 60000; //日志文件存储位置 ﻩlogFile = "C:/D/DDConnectionBroker、log”; ﻩﻩbroker = null; ﻩ} public Connection getConnection() throws SQLException { try { ﻩ ﻩ// construct(建立) the broker(中间人) ﻩ broker = new DDConnectionBroker(driver, url, username, password, ﻩ minConnections, maxConnections, timeout, leaseTime, logFile); ﻩﻩ } ﻩcatch (SQLException se) { ﻩﻩﻩ// could not get a broker; not much reason to go on ﻩﻩﻩSystem、out、println(se、getMessage()); System、out、println(”Could not construct a broker, quitting、”); ﻩ} ﻩﻩ//建立broker成功 return broker、getConnection(); } public void freeConnection(Connection conn) throws SQLException { try { ﻩﻩﻩbroker、freeConnection(conn); ﻩ } ﻩcatch (Exception e) { ﻩﻩﻩSystem、out、println(”Threw an exception trying to free my Connection: ”+ e、getMessage()); } } public int getNumberConnections() throws SQLException { if (broker != null) ﻩﻩ return broker、getNumberConnections(); else ﻩreturn —1; ﻩ} ﻩpublic ConnectionBroker() { super(); setUp(); ﻩ} } <% page language=”java" contentType="text/html; charset=GB2312" pageEncoding=”GB2312"%> <% page import="、ynu、myBusiness、db、*,java、sql、Connection,java、sql、PreparedStatement,java、sql、ResultSet,java、sql、Statement" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4、01 Transitional//EN" ”"> <html〉 〈head> 〈meta -equiv="Content—Type" content=”text/html; charset=UTF—8”〉 <title>Insert title here</title〉 〈/head> <body> 〈p>数据库实验大作业〈/p> 〈p>搜索配送单中得数据</p〉 <% //从工厂中得到连接 ConnectionFactory factory=ConnectionFactory、getInstatnce(); ﻩConnection connection= factory、getConnection(); //执行语句 PreparedStatement pstatement = null; //结果集 ResultSet rs = null; pstatement = connection、prepareStatement(”select * from 配送单"); //执行 rs = pstatement、executeQuery(); %> <table border=1〉 〈tr>〈th〉查询号〈/th><th〉订单编号〈/th〉〈th>配送人</th></tr> 〈% ﻩwhile (rs、next()) { ﻩout、println("〈tr〉”); ﻩout、println(”<td>" + rs、getString(1) + "〈/td〉"); out、println("〈td>” + rs、getString(2) + "〈/td>”); ﻩout、println(”<td>" + rs、getString(3) + ”〈/td>”); out、println("〈/tr〉"); } %〉 〈/table> <%//显示完毕,释放资源 ﻩtry { ﻩﻩif (rs != null) ﻩ ﻩrs、close(); ﻩﻩif (pstatement != null) ﻩpstatement、close(); if (factory != null) ﻩﻩﻩfactory、freeConnection(connection); ﻩ} catch (Exception e) { ﻩ // TODO Auto-generated catch block ﻩe、printStackTrace(); } %〉 〈/body〉 </html>- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 云南大学 数据库 期末 作业 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文