数据库实验报告

上传人:大米 文档编号:457995199 上传时间:2024-03-02 格式:DOC 页数:11 大小:44.50KB
返回 下载 相关 举报
数据库实验报告_第1页
第1页 / 共11页
数据库实验报告_第2页
第2页 / 共11页
数据库实验报告_第3页
第3页 / 共11页
数据库实验报告_第4页
第4页 / 共11页
数据库实验报告_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《数据库实验报告》由会员分享,可在线阅读,更多相关《数据库实验报告(11页珍藏版)》请在金锄头文库上搜索。

1、专业名称:2009级统计专业(非师范)实 验 室:1号实验楼203多媒体教室实验课程:数据库原理实验实验名称:数据库原理VFP数据库应用上机实验实验目的与要求:1、了解VFP数据库系统建立的过程2、了解VFP数据库系统应用的方法实验内容:构造一个自己设计的MIS系统:1、这个小系统开发项目的正确建立2、这个小系统数据库的建立及完整性规则的应用3、这个小系统的数据库数据管理方法应用4、这个小系统的查询和应用表单的设计和使用总之这个小系统能比较完善地为数据库应用人员提供方便快捷的信息管理功能实验步骤:一、用VFP DBMS系统建立一个数据库系统项目(项目名为自己的学号)二、在自己的项目下建立一个数

2、据库(库名为XSCJGL)1. 在数据库中建立如下表:学生(学号,姓名,性别,出生日期,助学金) key (学号)教师(教师号,教师名,奖金) key (教师号)课程(课号,课名,学时数,教师号) key (课号)学习(学号,课号,成绩) key (学号,课号)2. 建立有关数据库的完整性规则(自身完整、引用完整、用户自定义完整)3. 在每个表中输入至少3条符合客观现实世界的模拟记录三、编写能完成如下查询功能的查询代码程序1. 查询每个学生的姓名、年龄、助学金额2. 查询每位教师的姓名、奖金金额3. 查询学时数超过50的课名及任课教师的姓名4. 查询获得奖金超过500元的教师的姓名和所教的课程

3、名称5. 查询所学课程平均成绩超过60分的学生名单6. 查询课程班平均成绩(学习了同一门课程的所有学生的学习成绩的平均)超过60分的课程名称和任课教师姓名7. 查询某教师(用户输入教师姓名)担任的所有课程教学的课程名称(要用表单做用户对话界面)8. 查询某学生(用户输入学生姓名)所学的课程的课程名称及成绩(要用表单做用户对话界面)9. 查询每个学生所学的课程名称、学时数、成绩、任课教师名10. 查询每个教师所教的课程名称、学时数、学习该课程的学生人数11. 若所教的课程的学生平均成绩在60分以下就将该教师的奖金修改为50元若所教的课程的学生平均成绩在60分以上就将该教师的奖金再加100元 若所

4、教的课程的学生平均成绩在70分以上就将该教师的奖金再加150元若所教的课程的学生平均成绩在80分以上就将该教师的奖金再加300元若所教的课程的学生平均成绩在90分以上就将该教师的奖金再加500元12. 若所学的课程的平均成绩在60分以下就将该同学的助学金修改为200元若所学的课程的平均成绩在60分以上就将该同学的助学金再加500元若所学的课程的平均成绩在70分以上就将该同学的助学金再加1000元若所学的课程的平均成绩在80分以上就将该同学的助学金再加1500元若所学的课程的平均成绩在90分以上就将该同学的助学金再加2000元13. 统计各门课程学生及格人数14. 统计各学生学习后且获得及格成绩

5、的课程门数四、更改系统菜单使其成为全汉字提示菜单,并能直接点击获得查询结果五、对主程序进行连编产生能脱离VFP系统而直接在Windows平台下运行的应用系统程序六、将你设计的系统应用程序做一个桌面快捷启动方式图标以便用户使用!实验的源代码(主程序):founded语句:para biao,biao_key,zdz/调用形式参数(表,表的属性,查找的字段)if !empt(biao) .and. !empt(zdz)/判断表或字段是否为空dime founded(1)/定义founded变量founded(1)=0/给变量赋值为0sele count(*) from &biao where &b

6、iao_key=zdz into array founded/找到字段则计数并赋给foundedif founded(1)0return .t.elsereturn .f.endif/判断字段是否存在,若不存在就报错endif/结束if语句return/返回值在表格中输入数据以检验表格的完整性。查找语句:1.sele xm as 姓名,int(date()-csrq)/365) as 年龄,zxj as 助学金 from xs/date()是调用系统时间,运用公式计算年龄2.sele jsm as 教师的姓名,jj as 奖金 from js3.sele km as 课名,jsm as 教师名

7、 from kc,js where kc.jsh=js.jsh .and. kc.xss50/运用自然连接,减少查找时间4.sele jsm as 教师名,km as 课名 from js,kc where js.jsh=kc.jsh .and. js.jj5005.sele xm as 姓名 from xs,xx where xs.xh=xx.xh group by xx.xh having avg(xx.cj)=606.sele km as 课程名,jsm as 教师名 from kc,xx,js where kc.kh=xx.kh .and.js.jsh=kc.jsh group by

8、xx.kh having avg(xx.cj)=607.xx=allt(thisform.text1.value)/将text1的内容赋给xxsele km as 课程名 from kc where jsh in (sele jsh from js where jsm=xx)8.xx=allt(thisform.text1.value)sele km as 课程名,cj as 成绩 from kc,xx where kc.kh=xx.kh .and. xx.xh in(sele xh from xs where xm=xx)9.sele xm as 姓名,km as 课程名,xss as 学时

9、数,cj as 成绩,jsm as 教师名 from xs,kc,xx,js where xs.xh=xx.xh .and. kc.kh=xx.kh .and. kc.jsh=js.jsh10.sele jsm as 教师名,km as 课程名,xss as 学时数,count(xx.xh) as 学习该课程的学生人数 from js,kc,xx where js.jsh=kc.jsh .and. kc.kh=xx.kh group by xx.kh11.update js set jj=50 where js.jsh in(sele jsh from kc,xx where kc.kh=xx

10、.kh group by xx.kh having avg(cj)60)update js set jj=jj+150 where js.jsh in(sele jsh from kc,xx where kc.kh=xx.kh group by xx.kh having avg(cj)70)update js set jj=jj+300 where js.jsh in(sele jsh from kc,xx where kc.kh=xx.kh group by xx.kh having avg(cj)80)update js set jj=jj+500 where js.jsh in(sele

11、 jsh from kc,xx where kc.kh=xx.kh group by xx.kh having avg(cj)90)12.update xs set zxj=200 where xs.xh in (sele xh from xx group by xh having avg(cj)60)update xs set zxj=zxj+1000 where xs.xh in (sele xh from xx group by xh having avg(cj)70)update xs set zxj=zxj+1500 where xs.xh in (sele xh from xx g

12、roup by xh having avg(cj)80)update xs set zxj=zxj+2000 where xs.xh in (sele xh from xx group by xh having avg(cj)90)13.sele kc.kh as 课号,km as 课名,count(xx.xh) as 各门课程学生及格人数 from kc,xx where kc.kh=xx.kh and cj=60 group by xx.kh14.sele xm as 姓名,count(kc.kh) as 及格的课程门数 from xs,xx where xs.xh=xx.xh .and.

13、 xx.cj60 group by xx.xh实验中注意的问题:自身完整性:在每个表中至少有一个属性(或属性组)K是主码(如:表中的key),且所有元组K的取值唯一并不能取空。而对于某些属性(如:学生表格中“性别”的取值只能为“男”或“女”;为了保证数据库的长期有效,学生表格中的“出生日期”不能用“年龄”替代;学习表格中的“成绩”不得低于零分,一般不超过100分等)。引用完整性:(即参照完整性)现实世界的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系描述的。于是,我们在代码中新建程序,编写founded语句,用以判断表中输入数据是否满足条件(如:课程表格中的“教师号”应该和

14、教师表格中的“教师号”相对应;学习表格中的“学号”和“课号”都应该相应与学生表格中的“学号”,课程表格中的“课号”)。用户自定义完整性:针对某一具体应用的关系数据库所制定的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。实验中发现的问题和遇到的困难:1. 在数据库建立后更改其路径或者任意复制、粘贴数据库,则无法找到数据库的位置;2. 表格建立后更改结构易报错;3. 中文命名的,更改名字比较困难;4. 在建立查询语句(如:where与select不在一行时)经常报错;5. 连编生成可执行程序,无结果。问题及困难的解决:1. 将数据库建立在移动硬盘或者U盘中,在使用时定位文件,避免数据库结构被破坏,无法打开;2. 在表格完整性完全建立前不宜输入数据,导致表格结构无法更改;3. 数据库、表格、表格的属性、表单、代码的命名最好使用英文,可以更改也方便调用;4. 对于select语句的运用不熟练,编写时出现逻辑问题;5. 对菜单的内容,根据自己编写的数据库内容及生成的可执行程序的需求进行修改后再连编。总结:数据库系统的处理对象是信息或表示信息的数据,数据库是用来保存现实世界虚拟化后的数据。对于数据所承载的信息,我们可以通过建立数据库将其存放在有组织的数据集合中,用一个大型系统软件DBMS进行管理,方便用户

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 小学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号