数据库课程设计多需求数据查询设计



《数据库课程设计多需求数据查询设计》由会员分享,可在线阅读,更多相关《数据库课程设计多需求数据查询设计(27页珍藏版)》请在装配图网上搜索。
1、[键入文字] 课程设计说明书 题目: 多需求数据查询设计 院 系: 计算机科学与工程学院 专业班级: 电子信息技术及仪器10-2班 学 号: 2010302958 学生姓名: 刘 璨 指导教师: 王军号 2012 年5 月 5 日 安徽理工大学课程设计(论文)任务书 计算机科学与工程学院 院系
2、 教研室 学 号 2010302958 学生姓名 刘 璨 专业(班级) 电子仪器10-2 设计题目 多需求数据查询设计 设 计 技 术 参 数 l 数据库:Sql server、Mysql、Oracle、DB2 l 开发工具:VC、VB、Java、PHP、ASP l 设计工具:Word、Visio、Power Desinger 设 计 要 求 l 设计方案合理、无重大设计错误;设计之前进行需求分析工作,定义系统的功能和边界; l 工作量饱满; l 能按进度提交中间结果; l 完成课程设计说明书 工 作 量 课程设计说明
3、书正文不少于5页 工 作 计 划 第1天:选题、了解项目背景、进行需求分析 第2天:设计 第3天:实现 第4天:完成课程设计说明书 第5天:提交说明书,进行答辩 参 考 资 料 《数据库概论》 《数据库课程设计指导》 《数据库课程设计说明书模板》 指导教师签字 教研室主任签字 年 月 日 指导教师评语:
4、 成绩: 指导教师: 年 月 日 安徽理工大学课程设计(论文)成绩评定表 摘要 1)数据平台:SQL Server 2)设计介绍:设某一工程管理数据库中有如下四个基本表: 供应商关系:S(SNO,SNAME,SADDR) 零件关系:P(PNO,PNAME,COLOR,WEIGHT) 工程关系:J(JN
5、O,JNAME,JCITY,BALANCE) 供应关系:SPJ(SNO,PNO,JNO,PRICE,QTY) (1)查询上海的供应商名称,假设供应商关系的saddr列的值都以城市名开头。 (2)求不使用编号为p3零件的工程编号jno和名称jname。 (3)求使用了全部零件的工程名称。 (4)求至少使用了供应商“s1”所供应的全部零件的工程编号jno。 (5)求项目余额的最大值,最小值,总值和平均值。 (6)求供应商s1所供应的全部零件总收入。 (7)统计上海地区的项目使用零件的种数(超过3种)和零件总数量。要求查询结果按零件的种数升序排列,种数相同时按总数量降序排列。 (8
6、)求供应商所供应的工程总数大于2类的供应商名称。 (9)求每个供应商所供应工程总数。 (10)统计使用编号为p3零件的工程总数。 关键字: SQL Server 工程管理数据库 基本表 查询分析 安徽理工大学数据库课程设计 目录 1 绪论 1 1.1 开发背景 1 1.2 系统功能: 1 1.3 开发意义: 1 1.4 可行性分析 1 2 需求分析 2 2.1 系统的具体功能模块: 2 3 设计 3 3.1 E-R图 3 3.2 数据库表 4 3.3多需求查询的实现 8 4 系统实现 15 4.1 操作系统 15 4.
7、2 开发环境 15 4.3 关键代码 15 5 设计体会及今后的改进意见 20 6 参考文献 21 1 绪论 1.1 开发背景 现如今工程业发展迅速。随着规模的扩大传统的对工程中的供应商,供应关系,零件关系,工程关系的管理已经不能适应发展的需要。 对工程业的管理工作量较大,采用手工的方式还容易出错,并且不能满足顾客对工程关系,供应商关等的详细的查询功能。本系统在设计中考虑和克服了上诉的诸多问题,以数据库系统的形式使数据更加有条理,以便能使用户迅速地查到供应商,工程及零件的相关信息,从而提高工作的效率,增强了实用性。 1.2 系统功能: 我们这一
8、系统满足了对工程的管理及对供应商关系,工程关系,零件关系,供应关系的查询功能。 1.3 开发意义: 这一数据库系统基本实现了对工程的数据库管理,大大的提高了工作效率和经济效益。 1.4 可行性分析 系统现阶段的发展过程中,利用现有人力和物力是完全具备能力开发出来的,作为阶段性产品,日后的发展空间大,实现方法简单容易。由于目前世面上的工程很多,许多都要求使用计算机进行管理,并且实际中也有系统的使用。所以本系统的使用市场非常的广阔,易于推广和普及到现实中应用。所以本系统在市场应用上是完全可行的。 还有本系统简单、易学、易懂、易用,具有有亲和力的界面。能够满足管理者和操作员对工程关系等的
9、管理,对于顾客可以很方便的进行特殊的查询。所以本系统在操作上是可行的。 结论:综上所述,本系统技术成熟,有较好的市场应用价值,开发设计成本低,因此本系统完全可行。 2 需求分析 2.1 系统的具体功能模块 本系统实现了以下的功能:多需求数据查询设计 具体查询要求如下所示: (1)查询上海的供应商名称,假设供应商关系的saddr列的值都以城市名开头。 (2)求不使用编号为p3零件的工程编号jno和名称jname。 (3)求使用了全部零件的工程名称。 (4)求至少使用了供应商“s1”所供应的全部零件的工程编号jno。 (5)求项目余额的最大值,最小值,总值和平均值。 (6)求
10、供应商s1所供应的全部零件总收入。 (7)统计上海地区的项目使用零件的种数(超过3种)和零件总数量。要求查询结果按零件的种数升序排列,种数相同时按总数量降序排列。 (8)求供应商所供应的工程总数大于2类的供应商名称。 (9)求每个供应商所供应工程总数。 (10)统计使用编号为p3零件的工程总数。 3 设计 3.1 E-R图 该系统的E-R模型如图所示。 零件P 供应商S 零件号 PNO 地址 SADDR 重量WEIGHTT 名称 PNAME 名称 SNAMEE 颜色 COLOR 供应商号SN0
11、价格 PRICE 供应关系SPJ 数量QTY 名称 JNAME 工程号JNO 项目余额 BALANCE 城市 JCITY 工程J 图3.1 E-R图 相应说明: 供应商关系:S(SNO,SNAME,SADDR) 零件关系:P(PNO,PNAME,COLOR,WEIGHT) 工程关系:J(JNO,JNAME,JCITY,BALANCE) 供应关系:SPJ(SNO,PNO,JNO,PRICE,QTY) 3.2 数据库表 (1)数据库名:工程关系管理数据库 (2)数据表: 表
12、3-1供应商关系表 列名 数据类型 长度 约束 SNO CHAR 2 Primary key SNAME CHAR 10 unique SADDR CHAR 10 无 表3-2 零件关系表 列名 数据类型 长度 约束 PNO CHAR 2 Primary key PNAME CHAR 10 无 COLOR CHAR 10
13、 无 WEIGHT INT 4 无 表3-3工程关系表 列名 数据类型 长度 约束 JNO CHAR 2 Primary key JNAME CHAR 10 unique JCITY CHAR 10 无 BALANCE INT 4 无 表3-4供应关系表 列名 数据类型 长度 约束 SNO CHA
14、R 2 Primary key PNO CHAR 2 Primary key JNO CHAR 2 Primary key PRICE INT 4 无 QTY INT 4 无 (3)添加表的信息: 1.添加S表信息如下: SNO SNAME SADDR S1 精益 天津 S2 盛锡 北京 S3 东方红 北京 S4 丰泰盛 天津 S5 为民 上海 2.添加P表信息如下:
15、 PNO PNAME COLOR WEIGHT P1 螺母 红 12 P2 螺栓 绿 17 P3 螺丝刀 蓝 14 P4 螺丝刀 红 14 P5 凸轮 蓝 40 P6 齿轮 红 30 3.添加J表信息如下: JNO JNAME JCITY BALANCE J1 三建 北京 20 J2 一汽 长春 18 J3 弹簧厂 天津 15 J4 造船厂 天津 16 J5 机车厂 唐山 17 J6 无线电厂 常州 21 J7 半导体厂 南京 19 4.添加SPJ表信息如
16、下: SNO PNO JNO PRICE QTY S1 P1 J1 12000 200 S1 P1 J3 21000 100 S1 P1 J4 15000 700 S1 P2 J2 22000 100 S2 P3 J1 23000 400 S2 P3 J2 21000 200 S2 P3 J4 16000 500 S2 P3 J5 18000 400 S2 P5 J1 17000 400 S2 P5 J2 24000 100 S3 P1 J1 30000 200 S3 P
17、3 J1 17800 200 S4 P5 J1 13700 100 S4 P6 J3 27500 300 S4 P6 J4 20100 200 S5 P2 J4 19500 100 S5 P3 J1 32000 200 S5 P6 J2 21000 200 S5 P6 J4 35000 500 3.3多需求查询的实现 (1)查询上海的供应商名称,假设供应商关系的saddr列的值都以城名开头。具体执行语句如下: SELECT SNAME FROM S WHERE SADDR=’上海; 结果如下(截图):
18、 (2)求不使用编号为p3零件的工程编号jno和名称jname。 具体执行语句如下: SELECT JNO,JNAME FROM J WHERE JNO IN (SELECT JNO FROM SPJ WHERE PNO NOT IN (P3)); 结果如下(截图): (3)求使用了全部零件的工程名称。 具体执行语句如下: SELECT DISTINCT JNAME FROM J,P,SPJ WHERE J.JNO=SPJ.JNO AND P.PNO=SPJ.PNO; 结果(如截图所示): (4)求至少使用了供应商“s1”所供应的全部零
19、件的工程编号jno。 执行语句如下: 1.SELECT DISTINCT PNO FROM SPJ WHERE SNO=’S1’; 2.SELECT JNO FROM SPJ WHERE PNO=’P1’ AND JNO IN( SELECT JNO FROM SPJ WHERE PNO=’P2’); 结果: (5)求项目余额的最大值,最小值,总值和平均值。 执行语句如下: SELECT MAX(BALANCE) MAX,MIN(BALANCE) MIN,AVG(BALANCE) AVG FROM J 结果如下: (6)求供应商s
20、1所供应的全部零件总收入。 执行语句如下: SELECT SUM(PRICE) 总收入 FROM SPJ WHERE SNO=S1; 结果如下: (7)统计上海地区的项目使用零件的种数(超过3种)和零件总数量。要求查询结果按零件的种数升序排列,种数相同时按总数量降序排列。 执行语句如下: SELECT COUNT(DISTINCT PNAME)PNAME,SUM(QTY)QTY FROM P,SPJ WHERE EXISTS ( SELECT PNO FROM SPJ,S WHERE SADDR=上海) GROUP BY PNAME; 结果: (
21、8)求供应商所供应的工程总数大于2类的供应商名称。 执行语句如下: SELECT COUNT(DISTINCT JNO)JNO FROM SPJ GROUP BY SNO HAVING COUNT(*)>2; 结果: (9)求每个供应商所供应工程总数。 SELECT COUNT(JNO)JNO FROM SPJ GROUP BY SNO; 结果如下(截图): (10)统计使用编号为p3零件的工程总数。 执行语句如下: SELECT COUNT(JNO) FROM J WHERE EXISTS (SELECT JNO FROM SPJ WHERE
22、PNO=P3;) 结果如下所示: 4.系统实现 4.1操作系统 适用内存不低于256M配备有Windows2000,Windows2003,WindowsXP系统的计算机,本实验所用系统为windows 7。 4.2 开发环境 本系统使用SQL语言进行开发。开发环境为SQL Server 2005。 4.3关键代码: /*建立供应商关系表S*/ create table S (SNO char(2) primary key, /*SNO是主码*/ SNAME char(10) unique, /*唯一性约束*/ SADDR char(10), );
23、/*建立零件关系表P*/ create table P (PNO char(2) primary key, /*PNO是主码*/ PNAME char(10) , COLOR char(10), WEIGHT int ); /*建立工程关系表J*/ create table J (JNO char(2)primary key, /*JNO是主码*/ JNAME char(10)unique, /*唯一性约束*/ JCITY char(10), BALANCE int ); /*建立供应关系表SPJ*/ create table SPJ (SNO
24、 char(2), PNO char(2), JNO char(2), primary key(SNO,PNO,JNO), /*主码由SNO,PNO,JNO3个属性构成*/ foreign key(SNO) references S(SNO), /*表级完整性约束条件,SNO是外码, 被参照表是S*/ foreign key(PNO) references P(PNO), /*表级完整性约束条件,PNO是外码, 被参照表是P*/ foreign key(JNO) references J(JNO), /*表级完整性约束条件,JNO是外码, 被参照表是J*/ PRICE i
25、nt, QTY int ); 查询语句有关代码如下所示: SELECT SNAME FROM S WHERE SADDR=’上海; SELECT JNO,JNAME FROM J WHERE JNO IN (SELECT JNO FROM SPJ WHERE PNO NOT IN (P3)); SELECT DISTINCT JNAME FROM J,P,SPJ WHERE J.JNO=SPJ.JNO AND P.PNO=SPJ.PNO; SELECT DISTINCT PNO FROM SPJ WHERE SNO=’S1’; 2.S
26、ELECT JNO FROM SPJ WHERE PNO=’P1’ AND JNO IN( SELECT JNO FROM SPJ WHERE PNO=’P2’); SELECT MAX(BALANCE) MAX,MIN(BALANCE) MIN,AVG(BALANCE) AVG FROM J SELECT SUM(PRICE) 总收入 FROM SPJ WHERE SNO=S1; SELECT COUNT(DISTINCT PNAME)PNAME,SUM(QTY)QTY FROM P,SPJ WHERE EXISTS ( SELECT PN
27、O FROM SPJ,S WHERE SADDR=上海) GROUP BY PNAME; SELECT COUNT(DISTINCT JNO)JNO FROM SPJ GROUP BY SNO HAVING COUNT(*)>2; SELECT COUNT(JNO)JNO FROM SPJ GROUP BY SNO; SELECT COUNT(JNO)工程总数 FROM J WHERE EXISTS (SELECT JNO FROM SPJ WHERE PNO=P3); 5.设计体会和今后的改进意见 本实验是在老师的指导下,按照老师给的题目,分
28、组完成实验。通过做课程设计,我不仅了解了SQL语言的开发与使用,还对数据库产生了浓厚的兴趣,并在实验过程中得到一些心得体会。 通过对数据库编程练习思考数据库的使用,比如对多需求查询的深入了解,让我们感受到了数据库管理及其SQL语言的重要。此外还熟悉了各种查询语句及聚集函数等的应用。 通过编程我知道了想要写出好的程序,需要有扎实的基础,这样才会遇到一些基本算法时做的游刃有余。在编程时,我们要有丰富的想象力,不拘泥于固定的思维方式,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,所以我们要通过多个途径来帮助自己建立较丰富的知识结构。 在编程时,我们遇到了很多的困难,这就需要我
29、们多与别人交流。在编程时我们也看到了有良好的编程风格是十分重要的,至少在时间效率上就体现了这一点。 现在自己也能运用数据结构的算法编写小程序了,却没想到的是算法并没想象的那么简单(还有这份文档)。这两周,我们整天为了编程而忙碌,但看到自己的求解程序终于完成了,我们还是觉得很开心。 当一切都完成以后,我们也学会了许多的东西。首先,我们学会了合作。合作,必然会产生分歧;学会去解决分歧,留下更多的是友谊。其次,我们学会了分工。分工是为了更好的合作,分工才能提高合作的效率。最后,我们学会了奋斗。我们相信,通过在安理工的四年学习,我们定能写出更精彩的程序,描绘出更精彩的人生。 在这里,我们要感谢指
30、导我们课程设计的老师,给予我们悉心的指导。老师多次询问我们编写进程,并为我们指点迷津,帮助我们开拓研究思路,精心点拨、热枕鼓励。老师一丝不苟的工作作风,严谨求实的态度以及踏踏实实的精神,不仅授我以文,更教会我做人,给以终生受益无穷之道。我还要感谢我们小组的另外2名同学,在设计中给予我很大的帮助。正是由于我们团结协作,才顺利地完成了课程设计任务。在本实验,由于个人能力有限,是和同学们一起合作完成的。在设计中,我确实感到了团队合作的力量。 课程设计完成之后,留下的必将是美好的回忆。 6.参考文献 [1]王珊,萨师煊编的《数据库系统概论》(第4版)高等教育出版社; [2] 从数据库系统概论网络资源平台上下载的《数据库课程设计指导》; [3]王军号老师提供的《数据库课程设计说明书模板》; 21
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 踏春寻趣 乐享时光——春季旅游踏春出游活动
- 清明假期至安全不缺席风起正清明安全需守护
- 全国党员教育培训工作规划
- XX中小学公共卫生培训树立文明卫生意识养成良好卫生习惯
- 小学生常见传染病预防知识培训传染病的预防措施
- 3月18日全国爱肝日中西医结合逆转肝硬化
- 肝病健康宣教守护您的肝脏健康如何预防肝炎
- 垃圾分类小课堂教育绿色小卫士分类大行动
- 中小学班主任经验交流从胜任到优秀身为世范为人师表 立责于心履责于行
- 教师数字化转型理解与感悟教师数字化转型的策略与建议
- 团建小游戏团建破冰小游戏团队协作破冰游戏多人互动
- 教师使用deepseek使用攻略让备课效能提升
- 办公室会议纪要培训会议内容会议整理公文攥写
- 党员要注重培塑忠诚奋斗奉献的人格力量
- 橙色卡通风儿童春季趣味运动会