数据库实验报告.doc_第1页
数据库实验报告.doc_第2页
数据库实验报告.doc_第3页
数据库实验报告.doc_第4页
数据库实验报告.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

专业名称:2009级统计专业(非师范)实 验 室:1号实验楼203多媒体教室实验课程:数据库原理实验实验名称:数据库原理VFP数据库应用上机实验实验目的与要求:1、了解VFP数据库系统建立的过程2、了解VFP数据库系统应用的方法实验内容:构造一个自己设计的MIS系统:1、这个小系统开发项目的正确建立2、这个小系统数据库的建立及完整性规则的应用3、这个小系统的数据库数据管理方法应用4、这个小系统的查询和应用表单的设计和使用总之这个小系统能比较完善地为数据库应用人员提供方便快捷的信息管理功能实验步骤:一、用VFP DBMS系统建立一个数据库系统项目(项目名为自己的学号)二、在自己的项目下建立一个数据库(库名为XSCJGL)1. 在数据库中建立如下表:学生(学号,姓名,性别,出生日期,助学金) key (学号)教师(教师号,教师名,奖金) key (教师号)课程(课号,课名,学时数,教师号) key (课号)学习(学号,课号,成绩) key (学号,课号)2. 建立有关数据库的完整性规则(自身完整、引用完整、用户自定义完整)3. 在每个表中输入至少3条符合客观现实世界的模拟记录三、编写能完成如下查询功能的查询代码程序1. 查询每个学生的姓名、年龄、助学金额2. 查询每位教师的姓名、奖金金额3. 查询学时数超过50的课名及任课教师的姓名4. 查询获得奖金超过500元的教师的姓名和所教的课程名称5. 查询所学课程平均成绩超过60分的学生名单6. 查询课程班平均成绩(学习了同一门课程的所有学生的学习成绩的平均)超过60分的课程名称和任课教师姓名7. 查询某教师(用户输入教师姓名)担任的所有课程教学的课程名称(要用表单做用户对话界面)8. 查询某学生(用户输入学生姓名)所学的课程的课程名称及成绩(要用表单做用户对话界面)9. 查询每个学生所学的课程名称、学时数、成绩、任课教师名10. 查询每个教师所教的课程名称、学时数、学习该课程的学生人数11. 若所教的课程的学生平均成绩在60分以下就将该教师的奖金修改为50元若所教的课程的学生平均成绩在60分以上就将该教师的奖金再加100元 若所教的课程的学生平均成绩在70分以上就将该教师的奖金再加150元若所教的课程的学生平均成绩在80分以上就将该教师的奖金再加300元若所教的课程的学生平均成绩在90分以上就将该教师的奖金再加500元12. 若所学的课程的平均成绩在60分以下就将该同学的助学金修改为200元若所学的课程的平均成绩在60分以上就将该同学的助学金再加500元若所学的课程的平均成绩在70分以上就将该同学的助学金再加1000元若所学的课程的平均成绩在80分以上就将该同学的助学金再加1500元若所学的课程的平均成绩在90分以上就将该同学的助学金再加2000元13. 统计各门课程学生及格人数14. 统计各学生学习后且获得及格成绩的课程门数四、更改系统菜单使其成为全汉字提示菜单,并能直接点击获得查询结果五、对主程序进行连编产生能脱离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 &biao_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 教师名 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 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 学时数,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.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 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 group 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. xx.cj60 group by xx.xh实验中注意的问题:自身完整性:在每个表中至少有一个属性(或属性组)K是主码(如:表中的key),且所有元组K的取值唯一并不能取空。而对于某些属性(如:学生表格中“性别”的取值只能为“男”或“女”;为了保证数据库的长期有效,学生表格中的“出生日期”不能用“年龄”替代;学习表格中的“成绩”不得低于零分,一般不超过100分等)。引用完整性:(即参照完整性)现实世界的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系描述的。于是,我们在代码中新建程序,编写founded语句,用以判断表中输入数据是否满足条件(如:课程表格中的“教师号”应该和教师表格中的“教师号”相对应;学习表格中的“学号”和“课号”都应该相应与学生表格中的“学号”,课程表格中的“课号”)。用户自定义完整性:针对某一具体应用的关系数据库所制定的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。实验中发现的问题和遇到的困难:1. 在数据库建立后更改其路径或者任意复制、粘贴数据库,则无法找到数据库的位置;2. 表格建立后更改结构易报错;3. 中文命名的,更改名字比较困难;4. 在建立查询语句(如:where与select不在一行时)经常报错;5. 连编生成可执行程序,无结果。问题及困难的解决:1. 将数据库建立在移动硬盘或者U盘中,在使用时定位文件,避免数据库结构被破坏,无法打开;2. 在表格完整性完全建立前不宜输入数据,导致表格结构无法更改;3. 数据库、表格、表格的属性、表单、代码的命名最好使用英文,可以更改也方便调用;4. 对于select语句的运用不熟练,编写时出现逻辑问题;5. 对菜单的内容,根据自己编写的数据库内容及生成的可执行程序的需求进行修改后再连编。总结:数据库系统的处理对象是信息或表示信息的数据,数据库是用来保存现实世界虚拟化后的数据。对于数据所承载的信息,我们可以通过建立数据库

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论