北京林业大学数据库结课报告_第1页
北京林业大学数据库结课报告_第2页
北京林业大学数据库结课报告_第3页
北京林业大学数据库结课报告_第4页
北京林业大学数据库结课报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、北 京 林 业 大 学2009学年 2009 学年第 一 学期 数据库 实习报告书专 业: 地理信息系统 班 级: 地信07 姓 名: 施敏燕 学 号: 070134121 实习地点: 计算机b8机房 辅导教师: 田萱 实习内容: 数据库教学网站建设 实习环境: sqlserver2000、macromedia dreameweaver8 实习步骤一、 系统需求分析1.1.教学网站主要功能模块有如下。u 电子教案u 实验指导书u 实习指导书u 经典论文u 教学软件u 站内资料查询模块u 登录模块:本模块设置有管理员登录和普通用户入口,用于分级管理。教学网站系统分为两种身份登录:教师和学生。登陆

2、时首先选择身份,然后通过输入用户账号和密码进入相应的页面。不同身份登录实现不同的功能模块,主要是读写功能占很大区别。a) 教师空间的功能模块系统用户的一种身份是管理员,即教师,能够进行资源的管理,页面分模块浏览和站内资源查询功能。b) 学生空间的功能模块系统用户的另一种身份是学生,即普通用户。学生登录网站主要是针对任课教师发布的资源进行浏览、查询(下载)。1.2数据流图顶级数据流图一级数据流图二级数据流图资源上传:资源查询: 二、 系统设计2.1实现编译平台和运行平台介绍vbscript是visual basic script的简称,即 visual basic ,是asp动态网页默认的编程语

3、言,配合asp内建对象和ado对象。目前这种语言广泛应用于网页和asp程序制作,同时还可以直接作为一个可执行程序。用于调试简单的vb语句非常方便。其优点是:由于vbscript由网页浏览器解释执行,不需要增大服务器的负担。 数据库连接采用的是 adodb 的方式,对于数据库的操作都用编程的方式实现。本系统在操作中运用了事务处理的方法,对于被意外终止的操作进行回滚操作,比如说用户在删除数据的时候在对数据库的更新过程中遇到障碍,数据会被恢复到没提交前的状态,保持了数据库的完整性。在编程的过程中采用了对数据库进行直接操作的形式,增加了程序的灵活性,比方对数据库进行更新和查询的程序采用建立数据库连接对

4、象(connection)和记录集(recordset)并对其进行直接操作的方式。2.2功能模块图:2.3 数据库设计2.3.1数据库的概念设计e-r图1)用户登录子模块:2)用户-资源交互子模块:2.3.2 数据库的逻辑设计将e-r图转换为关系模式。1)users(sloginname,password,typeid)2)type(type , typeid)类型表:实现资源类别管理,有利于实现资源类型的添加、修改和删除。3)source(typeid,title,titleid,site,fsize,dateandtimes,downloadtimes,descriptions)资源表:实

5、现资源管理,有利于实现资源的添加、修改和删除。(单下划线标注的属性为主码,双下划线加亮显示部分为外码)2.3.3数据库的逻辑设计生成关系模式图: 2.3.4数据库中各表结构的设计,形式如下:users(用户表)字段名含义数据类型长度空值情况主键或索引约束条件id用户编号int4主键sloginname用户名varchar20password密码varchar20typeid赋予权限int4可为空 type(资源类型表)字段名含义数据类型长度空值情况主键或索引约束条件typeid类型编号varchar10主键type类型名称varchar20唯一值source(资源表)字段名含义数据类型长度空值

6、情况主键或索引约束条件tltleid标题编号varchar20主键title标题varchar80唯一值typeid类型编号varchar10外键,引用了type表中的type字段site资源地址varchar100fsize资源大小varchar10缺省值为未知descriptions简介varchar100缺省值为:无dateandtime上传时间smalldatetime4缺省值为:getdate()editor作者varchar20缺省值为未知downloadtimes下载次数int4缺省值为0users表:type表:source表:2.3.5关系模式的规范化users表,type表

7、,source表关系中的没一个属性都是不可再分的简单项,符合第一范式。users表,type表,source表的关系键均为单主属性,即不存在非主属性对主关系键的部分函数依赖,符合第二范式。users表,type表,source表中,每个非主属性都不传递函数依赖于个表的主关系键,符合第三范式。在users表中,仅存在一个候选键即为主键sloginname;source表中,在允许重名的情况下,也只有titleid可以作为候选码;type表中,但由于是但主属性,也不存在主属性对将的部分函数依赖和传递函数依赖。三、 技术方案 详细设计1)登陆模块admin.asp(登陆模块) sadmin.asp(

8、在此登陆模块)a) 在admin.asp页面和sadmin.asp页面中,管理员用户需要填写的html表单元素名称表单元素类型含义最大长度用户名text管理员登陆名20密码password管理员密码20b) 页面中所涉及到的数据库表信息此页使用了users表。特别说明的是在教师登陆中,包含了三级检验,即用户名、密码和权限。权限值由表中的typeid赋予,若typeid为空,则不具备权限。因此在数据库中必须要为管理员的typeid赋值,即赋予了权限。c) 页面代码分析信息匹配部分代码:if not mm_rsuser.eof or not mm_rsuser.bof then session(m

9、m_username) = mm_valusername if (mm_flduserauthorization ) then session(mm_userauthorization) = cstr(mm_rsuser.fields.item(mm_flduserauthorization).value) else session(mm_userauthorization) = end if if cstr(request.querystring(accessdenied) and false then mm_redirectloginsuccess = request.querystrin

10、g(accessdenied) end if mm_rsuser.close response.redirect(mm_redirectloginsuccess) end if mm_rsuser.close response.redirect(mm_redirectloginfailed)end if首先判断用户名对象中包含记录,进行传值;判断其是否具有权限,若无,结束响应。最后匹配成功,跳转至管理员页面,否则,跳转至再次登陆页面。2)信息分类显示index.asp和adindex.aspclass.asp class1.asp class2.asp class3.asp class4.as

11、p class5.aspa) 在这一系列信息显示分类模块中,采用了超链接方式,无需用户填写的html表单元素。b) 页面中所涉及到的数据库表信息信息显示分类模块中用到了type表和source表利用了source表的typeid进行了信息的分类显示,且source表中的typeid必须与type表中的typeid相一致,由type表进行资源类型的统一管理。另外利用source表显示资源的详细信息。c) 页面代码分析以class1.asp为例利用select语句查询数据库的相关信息select titleid, title, dbo.source.typeid, site, fsize, des

12、criptions, dateandtime, editor, downloadtimes, type from dbo.source, dbo.type where dbo.source.typeid=dbo.type.typeid and dbo.source.typeid = 1 order by dateandtime desc在source表中查询typeid = 1的所有资源的详细信息,利用等值连接在type表中查询出type.typeid=source.typeid的资源的type属性字段。3)资源查询index.asp和adindex.aspqueryresult.aspa)

13、在教师首页和学生首页上,分别都有资源查询模块,用户需要填写的html表单元素名称表单元素类型含义最大长度namestext要查询的相关内容50 b) 页面中所涉及到的数据库表信息在index.asp和adindex.asp页面上仅是数据的输入和接收,尚未涉及到数据库的操作。在queryresult.asp页面中,连接数据库中的source表。这里的查询做的比较简单,是将输入的字段与source表中的descriptions字段做比较。查询出匹配信息。c) 页面代码分析queryresult.asp页面:首先进行传值,将上一个页面中的表单所接受到的信息赋给变量names,names= reque

14、st.form(names)利用数据源的方式连接数据库:set conn = server.createobject(adodb.connection) conn.open db,sa ,sql2000创建记录集: set rs=server.createobject(adodb.recordset)在source表的descriptions字段进行匹配查询,并保存在记录集内: sql = select * from source where descriptions like % & names & % rs.open sql,conn最后输出相应资源的属性信息。4)资源添加 freeadd

15、.aspadminsave.aspaddnew.aspfreeadd.asp为添加资源的表单,adminsave.asp对freeadd.asp的表单信息进行检查和显示,由addnew.asp将记录最后加入数据库中。a) freeadd.asp资源添加页面中,用户需要填写的html表单元素名称表单元素类型含义最大长度types下拉菜单资源类型typeid下拉菜单类型idtitletext资源标题100titleidtext资源编号100sitetext下载地址100editortext作者100fsizetext资源大小100descriptionstext资源简介100 b) 页面中所涉及到

16、的数据库表信息在freeadd.asp页面上仅是数据的输入,尚未涉及到数据库的操作。在adminsave.aspp页面中,连接数据库中的source表。source表中的主码为titleid,需要检验写入的编号是否重复,否则无法写入数据库中。在addnew.asp页面中,将新增资源写入数据库中。c) 页面代码分析freeadd.asp页面关于下拉菜单的设计其中资源类型没有传值作用,仅起修饰作用;以类型编码的下拉菜单为例,以下即为设计出的下拉菜单,5个选项依次所传递的值为1、2、3、4、5,即传递给source表中typeid的值。 (1)电子教案 (2)实验指导书 (3)实习指导书 (4)教学

17、软件 (5)经典论文 adminsave.asp页面中1、将前一页面即freeadd.asp页面中表单提交的值均赋为全局变量传值,如typeid:session(typeid)=request.form(typeid),其他同理。2、此页面还需判断前文字框中输入的内容非空:定义变量,利用founerr赋值的变化连续判断各文字框是否为空。dim founerr=false以判断title为例,其余同理:if trim(request.form(title)= then founderr=true errmsg=errmsg+资源名称不能为空end if若某个文字框为空,则变量founerrr=t

18、rue,此时: if founderr=true thenresponse.write 由于以下的原因不能保存数据: response.write errmsg response.endend if输出错误原因后结束响应,需用户重新填写。3、判断数据库中titleid是否已存在,避免记录无法写入数据库的情况。连接数据库,创建记录集dim connset conn=server.createobject(adodb.connection)conn.open db,sa ,sql2000set rs=server.createobject(adodb.recordset)利用select语句查询t

19、itleid,其值现保存在全局变量session(titleid)中,sql=select * from source where titleid = &session(titleid)& rs.open sql,conn,1,1判断重复则结束响应:if not rs.eof thenresponse.write已使用过的资源编号,请重新输入资源编号。 set rs=nothingconn.closeset conn=nothingresponse.endend if全部正确则显示编辑信息等待用户确认。否则返回重新编辑。addnew.asp页面连接数据库,将全句变量对应写入source表的相关

20、字段:其中dateandtime自动返回为系统时间。rs(dateandtime)=now()四 结果1. 实习程序的使用说明书设置数据源名称为db,用户名:sa,密码:sql2000一、登陆界面:有老师和学生两种模式,教师登陆用户名:teacher,密码:teacher,权限由系统自动判别获取。学生用户直接由学生入口进入即可。教师登陆错误,则跳转到如下界面重新登陆: 学生主页二按类别显示信息五大内容模块均可查看详细资源列表,点击标题栏后的more图标:如点击电子教案后的more图标进行查看,详细资源列表出显示主页所显示的标题,作者,文件大小,上传时间外,还显示了更多资源和信息,显示如下:在该

21、页边面上方即可查看其它模块。在主页上(另外在分类查看页面)点击查看详细资源列表,进入资源总显示模块。 此模块分页显示,可上下翻页并返回首页。也可分类查看资源的类别详细信息。三、查询模块主页有资源查询的模块,可搜索查找资源的关键字,进行查询:如输入“一”:查询结果如下显示:如输入“ppt”,则查询结果如下:如输入:“sql”四、教师用户有资源添加模块在教师用户主页右侧有资源添加模块,点击进入。输入相关信息。若信息没有填写完整,出现错误提示,需返回重添,如下所示:若输入的资源编号数据库中已存在,如下所示:修改后,最终提交:出现信息确认页面:检查无误后,单击确认提交。如发现错误,则点击重新添加。添加

22、成功页面:查看资源总表,可发现新添加的信息“课程综述”置顶显示:返回首页查看,“课程综述”的信息也出现在了相应的电子教案的类别里。五分析 总结:一周的数据库实习在忙碌中很快地就结束了。可以说这一周是高强度而又充实有收获的。从网站功能的设计到数据库的设计,再到具体技术方案的实施,甚至直到最后在写这篇实验报告的时候,这一学习实践的过程我都在不断地对整个方案进行着修改和进一步完善。在设计数据库的最初,我在source表中还设计了与type表中type字段相对应的type字段。但在添加文件的技术方案的具体实施过程中,我发现了传值问题,若在添加文件的表单(freeadd.asp)中将值直接传给数据库so

23、urce表type字段,很难保证与type表中的type字段保持一致。反思一下,从数据库设计的角度看,这种设计方案,出现了数据冗余,在添加修改删除数据库数据时,也易出现数据不一致性的问题。从关系模式规范化的思想来看,再source表中,其候选键为title或titleid,而在函数依赖中, typeid函数决定type字段,但决定因素中不包含候选键,不符合bcnf范式,从这个角度也看出了数据库设计不合理的地方。 因此我最终删除了source表中的type字段,通过引入外键的方式,在source表中引用了type表中的typeid字段,从而保证了数据一致性问题。可以说整个实习过程都是理论指导实践,并且在实践中不断反思体会理论的科学意义。作为初学者,学习实践之初较为较为重要的是学习他人设计的精华,不仅仅是技术上的,也包括他人在设计理念上的一些巧妙之处。比如在网页页面中,我学着建了c

温馨提示

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

最新文档

评论

0/150

提交评论