




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库应用实践课程报告学号: 陈泽泽 姓名: 031202110 年级: 2012级 学院: 数计学院 专业: 计算机实验班 本组其它成员:学号 031202127 姓名 姜晓健 实验时间:20132014学年第二学期任课教师:白清源目录数据库应用实践实验一:3数据库管理系统及其应用开发环境的创建使用3一、实验目的:3二、实验环境:3三、实验内容:3四实验小结12数据库应用实践实验二:13数据库管理系统的维护与管理13一、实验目的:13二、实验环境:13三、实验内容:13四、实验小结:20数据库应用实践实验三:数据库应用系统的开发21一、实验目的:21二、实验环境:21三、实验内容:21一、系统选题:大学在线考试系统21二、需求说明21三、系统概要设计及概念数据模型(E-R 图)设计22四、系统详细设计及数据库表结构设计231.逻辑结构设计:232.物理结构设计263.存储过程设计274.数据访问类设计28五、系统测试及测试结果30六、总结和体会32数据库应用实践实验一:数据库管理系统及其应用开发环境的创建使用一、实验目的:了解数据库应用开发环境的建立与使用;掌握SQL语言的使用;通过实践理解关系数据模型的相关概念;掌握数据库应用开发环境的使用;掌握创建、删除数据库的方法;掌握创建基本表、查看表属性、修改属性的方法;掌握向表中添加、删除以及修改数据的方法;掌握查询分析器的使用方法;掌握SELECT语句在单表查询中的应用;掌握复杂查询、多表查询的方法;掌握视图的使用方法;巩固数据库的基础知识。 二、实验环境:操作系统: win7(32位)数据库管理系统: SQL Server 2012三、实验内容:应用背景:实现对供应商、配件与工程项目之间的数据管理设计的数据库名:SPJ数据库所设计的各张表结构说明,各表之间关系图说明s(sno,sname,statu,city)p(pno,pname,color)j(jno,name,city)spj(sno,pno,qty)供应商表s由供应商代码(sno)、供应商姓名(sname)、供应商状态(statu)、供应商所在城市(city)组成。零件表p由零件代码(pno)、零件名(pname)、颜色(color)重量(weight)组成。工程项目表j由工程项目代码(jno),工程项目名(jname)、工程项目所在城市(city)。供应商表spj由供应商代码(sno),零件代码(pno)、工程项目代码(jno)、供应数量(qty)组成,表示某供应商供应某种零件给某项工程的数量qty。1. 依据前面实验一实验内容(2),(3)的要求,写出实现相应操作的SQL语句并给出运行结果的截图。创建数据库:创建S表:创建P表创建J表:创建SPJ表:创建索引对象:查看索引:插入数据:单表查询多表连接查询并排序输出3、使用聚集函数的查询。4、分组查询。5、嵌套查询。6、创建并查询视图。四实验小结 本次实验,我从SQL安装一步步实践做起,让我对SQL Server数据库的基本操作有了进一步的了解,对课堂书本理论知识的理解更深一步。特别是当我遇到表的修改问题时,刚开始自己无法解决,接着我从相关的参考书和网上寻找答案,这种解决问题的能力的养成,为今后的数据库的学习奠定了基础。33数据库应用实践实验二:数据库管理系统的维护与管理学号:031202110 姓名:陈泽泽 Email: 学院:数计学院 专业:计算机类一、实验目的:1、掌握DBMS提供的数据库用户和权限管理机制;2、理解存储过程概念,掌握存储过程与触发器的使用;3、掌握数据库备份与恢复方法。二、实验环境:操作系统: Window7(32位)数据库管理系统: SQL Server 2012三、实验内容:(1)数据库安全性:1、DBMS登录帐号管理: 添加登陆用户:sp_addlogin创建新的 Microsoft® SQL Server 登录,使用户得以连接使用 SQL Server 身份验证的 SQL Server 实例,并且向该用户授予访问数计库的权限,如下: 接着可以用新添加的用户名访问数据库:2、对数据库用户进行权限、收回权限。在 T-SQL 中设置权限可使用 GRANT(授予)、DENY(拒绝)及 REVOKE(撒销)三个语句,这三个语句的用法非常多,基本形式如下: GRANT ALL 或权限名称 ON 对象 TO 用户或角色名称 WITH 选项 REVOKE ALL 或权限名称 ON 对象 TO 用户或角色名称 CASCADE DENY ALL 或权限名称 ON 对象 TO 用户或角色名称 CASCADE 每 一 语 句 都 有 三 个 元 素 , 分 别 是 权 限 名 称 、 对 象 及 用 户 ( 角 色 ), 如 下权限授予的管理,把查询s表的权限授予用户zeze,即改用户有权限查询s表:回收权限管理,回收查询s表的权限,即用户zeze不能查询s表:由于可用权限非常多,在 T-SQL 中没有选项可供选择,所以使用 GRANT、DENY 及REVOKE 时,必须首先知道权限名称才能进行设置。(2)触发器,存储过程的使用1、存储过程的创建、执行与管理存储过程的优点:(1)执行速度快。存储过程创建是就已经通过语法检查和性能优化,在执行时无需每次编译。存储在数据库服务器,性能高。(2)允许模块化设计。只需创建存储过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改 。(3)提高系统安全性。 可将存储过程作为用户存取数据的管道。可以限制用户对数据表的存取权限,建立特定的存储过程供用户使用,完成对数据的访问。 存储过程的定义文本可以被加密,使用户不能查看其内容。(4)减少网络流量:一个需要数百行Transact-SQL代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。定义存储过程的语法 CREATE PROCEDURE 存储过程名 参数1 数据类型 = 默认值, , 参数n 数据类型 OUTPUT AS SQL语句 GO 和C语言的函数一样,参数可选 参数分为输入参数、输出参数 输入参数允许有默认值例如:调用存储过程 EXECUTE(执行)语句用来调用存储过程 调用的语法 EXEC 过程名 参数修改,更新存储:语法:UPDATE |UPDATA 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值例如:2、触发器的创建与管理。触发器的类型:INSERT触发器:当向表中插入数据时触发,自动执行触发器所定义的SQL语句。UPDATE触发器:当更新表中某列多列时触发,自动执行触发器所定义的SQL语句。DELETE触发器:当删除表中记录时触发,自动执行触发器所定义的SQL语句serted 和deleted 表 触发器触发时: 1、系统自动在内存中创建deleted表或inserted表 2、只读,不允许修改;触发器执行完成后,自动删除 inserted 表 1、临时保存了插入或更新后的记录行 2、可以从inserted表中检查插入的数据是否满足业务需求 3、如果不满足,则向用户报告错误消息,并回滚插入操作 deleted 表 1、临时保存了删除或更新前的记录行 2、可以从deleted表中检查被删除的数据是否满足业务需求 3、如果不满足,则向用户报告错误消息,并回滚插入操作创建触发器的语法:CREATE TRIGGER trigger_nameON table_nameWITH ENCRYPTIONFOR DELETE, INSERT, UPDATEAST-SQL语句GOWITH ENCRYPTION表示加密触发器定义的SQL文本DELETE, INSERT, UPDATE指定触发器的类型insert触发器的工作原理:1.执行insert插入语句,在表中插入数据行;2.触发insert触发器,向系统临时表inserted表中插入新行的备份(副本)3.触发器检查inserted表中插入的新行数据,确定是否需要回滚或执行其他操作。例如下,创建触发器:但插入数据时,调用触发器,效果如下:(3)数据库备份与恢复1、对所创建的数据库进行完整、差异、日志备份(1)完整备份 使用BACKUP DATABASE语句实现完整备份。语法格式如下:BACKUP DATABASE 数据库名TO ,.n WITH INIT或NOINIT 参数说明:INIT或NOINIT:INIT表示新备份的数据覆盖当前备份设备上的每一项内容;NOINIT表示新备份的数据添加到备份设备上已有内容的后面。完整备份教务管理系统数据库,创建用于存放教务管理系统数据库完整备份的逻辑备份设备DiskBKJWGL:-完整备份 spj到d:/test中,截图如下:(2)差异备份使用BACKUP DATABASE语句对数据库创建差异备份与创建完整备份类似,除了执行BACKUP DATABASE语句时需要指定要备份的数据库名称和写入完整备份的备份设备以外,还需使用WITH DIFFERENTIAL参数来标明执行的是一个差异备份。创建教务管理系统数据库的差异备份。BACKUP DATABASE 教务管理系统 TO DiskBKJWGL WITH DIFFERENTIAL(3)备份事务日志可以使用BACKUP LOG语句实现事务日志备份。语法格式如下:BACKUP LOG 数据库名TO ,.n WITH INIT /NOINIT2、数据库恢复:恢复备份好的数据库,运行如下:四、实验小结: SQLServer数据库的实验二使我对数据库的有了新的进步,以后再看到也就不至于什么也不懂,其实那么多数据库我觉得学好一门就行,只是他们的语言可能不大一样,学好一门后就可去认识其它的,这样应该有事半功倍的效果。就像我学习C语言,当时不能说是学习的棒,但不算差。所以我对以后的语言感觉都不是很困难,了解了VB、C+还有网页中用的Html语言、asp语言都能看懂,起码可以对别人的东西进行了一下修改。因此,我感谢数据库老师给了我有用的知识,以便我在以后学习或认识更多的内容能有新的方法和思维,也能更加有效和快速的去消化吸收新的东西。希望在今后中,SQLServer能给我更多帮助。感谢学校开设这样一门优秀使用的课程,让我对数据库有了更深的了解。数据库应用实践实验三:数据库应用系统的开发一、实验目的:初步掌握数据库应用系统分析设计的基本方法;进一步提高分析与解决问题的综合能力;初步掌握数据库建模工具的使用方法;熟悉掌握C/S 或B/S 结构的数据库应用系统开发的整个过程。二、实验环境:操作系统: 32位 Win7数据库管理系统: SQL Server 2005系统设计与开发工具:VS2010 系统开发语言:C#、ASP.NET三、实验内容:运用数据库基础知识,在数据库应用环境下,完成一个具体的数据库应用系统的分析、设计与实现。针对设计任务利用建模工具(Rose、PowerDesigner 等)进行数据库建模,在使用SQLserver 基础上,利用一种应用开发工具(PHP、VC、java 等)设计实现一个数据库应用系统。要求能实现对数据库中数据的插入、删除、修改、查询、统计等功能,做到界面友好、使用方便。所建的数据库表至少满足第三范式,掌握应用系统与数据库相连方法,掌握程序访问数据库中数据的技术方法,进一步提高分析与解决问题的综合能力。一、系统选题:大学在线考试系统二、需求说明1. 操作简单方便,界面简洁美观。2. 具有实时性,已注册的用户无论身在何地,通过Internet游览器,都可登录网络考试系统。3. 系统提供的自动交卷功能使考试到结束时间时,系统自动交卷。4. 提供考试时间倒计时功能,让考生随时了解考试剩余时间。5. 系统自动阅卷,保证成绩真实,准确。6. 考生可以随时查看考试成绩三、系统概要设计及概念数据模型(E-R 图)设计系统功能模块如图:学生用例图:管理员用例图:四、系统详细设计及数据库表结构设计逻辑结构设计:类和关系模型向关系模式转化:1.考生信息表(学号,姓名,密码,性别,密码问题,答案,专业,加入时间)2.单选题信息表(题目编号,课程编号,题名,选项A,选项B,选项C,选项D,正确答案)3.多选题信息表(题目编号,课程编号,题名,选项A,选项B,选项C,选项D,正确答案)4.判断题信息表(题目编号,课程编号,题目,正确答案)5.专业信息表(专业编号,专业名,加入时间)6.考试科目表(课程编号,课程名)7.管理员信息表(管理员编号,管理员名称,密码,加入时间)Course表tb_TaoTi表tb_Student表tb_Profession表tb_Administrator表SingleProblem表Score表MultiProblem表JudgeProblem表tb_TaoTiDetail表类图物理结构设计(1).为关系模式选择存取方法:选择索引方法(2).确定数据库的存储结构为了提高系统性能,将表和索引放在不同的磁盘上。系统配置使用默认值。 完整性设计1.实体完整性:Course表中 ID设为主键并且为自增长identity(1,1) JudgeProblem表中 ID设为主键并且为自增长identity(1,1) MultiProblem 表中 ID设为主键并且为自增长identity(1,1) Sorce表中 ID设为 主键并且为自增长identity(1,1) SingleProblem表中 ID设为主键并且为自增长identity(1,1) tb_Administrator表中 ID设为主键tb_Profession表中 ID设为主键并且为自增长identity(1,1) tb_Student表中 ID设为主键tb_TaoTi表中 ID设为主键并且为自增长identity(1,1) tb_TaoTiDetail表中ID设为主键并且为自增长identity(1,1) 2.,参照完整性:JudgeProblem表中: foreign key CourseID references Course(ID) MultiProblem 表中:foreign key CourseID references Course(ID) Sorce表中: foreign key UserID references tb_Student(ID) foreign key PaperID references tb_TaoTi(ID) SingleProblem表中:foreign key CourseID references Course(ID) tb_Student表中: foreign key profession references tb_Profession(Name) tb_TaoTi表中: foreign key CourseID references Course(ID) tb_TaoTiDetail表中:foreign key PaperID references tb_TaoTi(ID) 用户定义完整性:列值非空(not null)如上表图所示CHECK(Sex IN(男,女) 用户权限设计1.创建成绩视图供管理员和考生查看成绩 存储过程设计(1)Proc_JudgeProblemDetail 判断题详细信息CREATE PROCEDURE dbo.Proc_JudgeProblemDetailIDintAS SELECT *FROM dbo.JudgeProblemwhere ID=ID(2)Proc_JudgeProblemModify 判断题修改CREATE PROCEDURE dbo.Proc_JudgeProblemModify(IDint, CourseIDint, Title varchar(1000), Answerbit)AS UPDATE Examination.dbo.JudgeProblem SET CourseID= CourseID, Title= Title, Answer= Answer WHERE ( ID = ID)(3)Proc_MultiProblemDetail 多选题详细信息CREATE PROCEDURE dbo.Proc_MultiProblemDetailIDintAS SELECT *FROM dbo.MultiProblemwhere ID=ID4)Proc_MultiProblemModify 多选题修改CREATE PROCEDURE dbo.Proc_MultiProblemModify(IDint, CourseIDint, Title varchar(1000), AnswerA varchar(500), AnswerB varchar(500), AnswerC varchar(500), AnswerD varchar(500), Answervarchar(50)AS UPDATE Examination.dbo.MultiProblem SET CourseID= CourseID, Title= Title, AnswerA= AnswerA, AnswerB= AnswerB, AnswerC= AnswerC, AnswerD= AnswerD, Answer= Answer WHERE ( ID = ID)(5)Proc_PaperDetail 试卷信息(6)Proc_PaperModify 试卷修改CREATE PROCEDURE dbo.Proc_PaperModify(PaperIDint, PaperState bit)AS UPDATE Examination.dbo.tb_TaoTi SET PaperState= PaperStateWHERE ( PaperID = PaperID)(7)Proc_ScoreAdd 分数插入CREATE PROCEDURE dbo.Proc_ScoreAdd(UserID varchar(20), PaperID int, Score int)AS INSERT INTO Examination.dbo.Score (UserID, PaperID, Score) VALUES ( UserID, PaperID, Score)(8)Proc_SingleProblemDetail 单选题信息CREATE PROCEDURE dbo.Proc_SingleProblemDetailIDintAS SELECT *FROM dbo.SingleProblemwhere ID=ID(9)Proc_SingleProblemModify 单选题修改CREATE PROCEDURE dbo.Proc_SingleProblemModify(IDint, CourseIDint, Title varchar(1000), AnswerA varchar(500), AnswerB varchar(500), AnswerC varchar(500), AnswerD varchar(500), Answervarchar(2)AS UPDATE Examination.dbo.SingleProblem SET CourseID= CourseID, Title= Title, AnswerA= AnswerA, AnswerB= AnswerB, AnswerC= AnswerC, AnswerD= AnswerD, Answer= Answer WHERE ( ID = ID)数据访问类设计数据访问类为Datacon.cs,包括getcon(),bind()等方法,用于数据连接和数据绑定。public class Datacon public SqlConnection getcon() string strCon = server=JW-PC;database=Examination;Integrated Security=True; SqlConnection sqlCon = new SqlConnection(strCon); return sqlCon; public bool eccom(string sqlstr) SqlConnection cn = this.getcon(); cn.Open(); SqlCommand cmd = new SqlCommand(sqlstr, cn); try cmd.ExecuteNonQuery(); return true; catch return false; finally cn.Close(); public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value) return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value); public void bind(GridView gv, string sqlstr) SqlConnection cn = this.getcon(); cn.Open(); SqlDataAdapter mydata = new SqlDataAdapter(sqlstr, cn); DataSet mydataset = new DataSet(); mydata.Fill(mydataset); gv.DataSource = mydataset; gv.DataBind(); cn.Close(); public bool ecDropDownList(DropDownList DDL, string sqlstr, string DTF, string DVF) SqlConnection cn = this.getcon(); cn.Open(); SqlDataAdapter mydata = new SqlDataAdapter(sqlstr, cn); DataSet mydataset = new DataSet(); mydata.Fill(mydataset); DDL.DataSource = mydataset; DDL.DataTextField = DTF; DDL.DataValueField = DVF; try DDL.DataBind(); return true; catch return false; finally cn.Close(); public void bindinfostring(GridView gv, string sqlstr, string DNK) SqlConnection cn = this.getcon(); cn.Open(); SqlDataAdapter mydata = new SqlDataAdapter(sqlstr, cn); DataSet mydataset = new DataSet(); mydata.Fill(mydataset); gv.DataSource = mydataset; gv.DataKeyNames = new string DNK ; gv.DataBind(); cn.Close(); public DataSet GetDataSet(string ProcName, SqlParameter Params) SqlConnectio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年 楚雄州楚雄市紧密型医共体编制外职工招聘考试笔试试题附答案
- 2025年 百色市那坡县特岗教师招聘考试笔试试题附答案
- 2025年中国对焊机行业发展运行现状及投资潜力预测报告
- 山东新建使用片碱润滑油项目环评报告
- 中国滑轮支架行业市场发展前景及发展趋势与投资战略研究报告(2024-2030)
- 2025年中国螺旋锥形混合机行业发展监测及市场发展潜力预测报告
- 中国玻璃装饰窗项目投资可行性研究报告
- 2022-2027年中国APP营销市场运行动态及行业投资潜力预测报告
- 2025年中国六轴联动混联数控机床行业发展前景预测及投资战略研究报告
- 2024-2030年中国社群商业行业发展监测及投资战略研究报告
- 《聪明人和傻子和奴才》 课件
- 化工安全考试题库
- Fleischner指南解读
- 建筑工地安全生产百日攻坚行动实施方案
- 电厂度电机维修技术规范书正式
- 肥槽回填施工方案
- 年产40万吨甲醇合成工艺设计
- 国家开放大学《管理英语3》章节测试参考答案
- DDS307电导率以说明书
- 满语语法入门拉丁版
- 钢琴键盘大谱表对照表-直接打印版(共6页)
评论
0/150
提交评论