收藏 分享(赏)

数据库实验报告 数据库管理系统及其应用开发环境的创建使用.doc

上传人:精品资料 文档编号:11101903 上传时间:2020-02-07 格式:DOC 页数:33 大小:3.07MB
下载 相关 举报
数据库实验报告 数据库管理系统及其应用开发环境的创建使用.doc_第1页
第1页 / 共33页
数据库实验报告 数据库管理系统及其应用开发环境的创建使用.doc_第2页
第2页 / 共33页
数据库实验报告 数据库管理系统及其应用开发环境的创建使用.doc_第3页
第3页 / 共33页
数据库实验报告 数据库管理系统及其应用开发环境的创建使用.doc_第4页
第4页 / 共33页
数据库实验报告 数据库管理系统及其应用开发环境的创建使用.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、1数据库应用实践课程报告学号: 陈泽泽 姓名: 031202110 年级: 2012 级 学院: 数计学院 专业: 计算机实验班 本组其它成员:学号 031202127 姓名 姜晓健 实验时间:20132014 学年第二学期任课教师:白清源2目录数据库应用实践实验一: .3数据库管理系统及其应用开发环境的创建使用 3一、实验目的: .3二、实验环境: .3三、实验内容: .3四实验小结 .12数据库应用实践实验二: .13数据库管理系统的维护与管理 13一、实验目的: .13二、实验环境: .13三、实验内容: .13四、实验小结: 20数据库应用实践实验三:数据库应用系统的开发 21一、实验

2、目的: .21二、实验环境: .21三、实验内容: .21一、系统选题:大学在线考试系统 21二、需求说明 .21三、系统概要设计及概念数据模型(E-R 图)设计 22四、系统详细设计及数据库表结构设计 231.逻辑结构设计: 232.物理结构设计 263.存储过程设计 274.数据访问类设计 28五、系统测试及测试结果 .30六、总结和体会 .323数据库应用实践实验一:数据库管理系统及其应用开发环境的创建使用一、实验目的:了解数据库应用开发环境的建立与使用;掌握 SQL 语言的使用;通过实践理解关系数据模型的相关概念;掌握数据库应用开发环境的使用;掌握创建、删除数据库的方法;掌握创建基本表

3、、查看表属性、修改属性的方法;掌握向表中添加、删除以及修改数据的方法;掌握查询分析器的使用方法;掌握 SELECT 语句在单表查询中的应用;掌握复杂查询、多表查询的方法;掌握视图的使用方法;巩固数据库的基础知识。二、实验环境:操作系统: win7(32 位)数据库管理系统: SQL Server 2012三、实验内容:应用背景:实现对供应商、配件与工程项目之间的数据管理设计的数据库名:SPJ 数据库所设计的各张表结构说明,各表之间关系图说明s(sno,sname,statu,city)p(pno,pname,color)j(jno,name,city)spj(sno,pno,qty)供应商表

4、s 由供应商代码(sno) 、供应商姓名(sname) 、供应商状态(statu) 、供应商所在城市(city)组成。零件表 p 由零件代码(pno) 、零件名(pname) 、颜色(color)重量4(weight)组成。工程项目表 j 由工程项目代码(jno),工程项目名(jname) 、工程项目所在城市(city) 。供应商表 spj 由供应商代码(sno),零件代码(pno) 、工程项目代码(jno) 、供应数量(qty)组成,表示某供应商供应某种零件给某项工程的数量qty。1. 依据前面实验一实验内容(2),(3)的要求,写出实现相应操作的 SQL 语句并给出运行结果的截图。创建数据

5、库:创建 S 表:5创建 P 表创建 J 表:创建 SPJ 表:6创建索引对象:查看索引:7插入数据:8单表查询9多表连接查询并排序输出3、 使用聚集函数的查询。104、 分组查询。5、 嵌套查询。116、 创建并查询视图。12四实验小结本次实验,我从 SQL 安装一步步实践做起,让我对 SQL Server 数据库的基本操作有了进一步的了解,对课堂书本理论知识的理解更深一步。特别是当我遇到表的修改问题时,刚开始自己无法解决,接着我从相关的参考书和网上寻找答案,这种解决问题的能力的养成,为今后的数据库的学习奠定了基础。13数据库应用实践实验二:数据库管理系统的维护与管理学号:031202110

6、 姓名:陈泽泽 Email: 学院:数计学院 专业:计算机类一、实验目的:1、掌握 DBMS 提供的数据库用户和权限管理机制;2、理解存储过程概念,掌握存储过程与触发器的使用;3、掌握数据库备份与恢复方法。二、实验环境:操作系统: Window7(32 位)数据库管理系统: SQL Server 2012三、实验内容:(1)数据库安全性:1、DBMS 登录帐号管理:添加登陆用户:sp_addlogin 创建新的 Microsoft SQL Server 登录,使用户得以连接使用 SQL Server 身份验证的 SQL Server 实例,并且向该用户授予访问数计库的权限,如下:接着可以用新

7、添加的用户名访问数据库:142、对数据库用户进行权限、收回权限。在 T-SQL 中设置权限可使用 GRANT(授予) 、DENY(拒绝)及 REVOKE(撒销)三个语句,这三个语句的用法非常多,基本形式如下: GRANT ALL 或权限名称 ON 对象 TO 用户或角色名称 WITH 选项 REVOKE ALL 或权限名称 ON 对象 TO 用户或角色名称 CASCADE DENY ALL 或权限名称 ON 对象 TO 用户或角色名称 CASCADE 每 一 语 句 都 有 三 个 元 素 , 分 别 是 权 限 名 称 、 对 象 及 用 户 ( 角 色 ) , 如 下权限授予的管理,把查询

8、 s 表的权限授予用户 zeze,即改用户有权限查询 s 表:回收权限管理,回收查询 s 表的权限,即用户 zeze 不能查询 s 表:由于可用权限非常多,在 T-SQL 中没有选项可供选择,所以使用 GRANT、DENY 及REVOKE 时,必须首先知道权限名称才能进行设置。(2)触发器,存储过程的使用1、存储过程的创建、执行与管理存储过程的优点:(1)执行速度快。存储过程创建是就已经通过语法检查和性能优化,在执行时无需每次编译。15存储在数据库服务器,性能高。(2)允许模块化设计。只需创建存储过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长

9、的人员创建,并可独立于程序源代码而单独修改 。(3)提高系统安全性。可将存储过程作为用户存取数据的管道。可以限制用户对数据表的存取权限,建立特定的存储过程供用户使用,完成对数据的访问。存储过程的定义文本可以被加密,使用户不能查看其内容。(4)减少网络流量:一个需要数百行 Transact-SQL 代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。定义存储过程的语法CREATE PROCEDURE 存储过程名参数 1 数据类型 = 默认值, ,参数 n 数据类型 OUTPUTASSQL 语句GO和 C 语言的函数一样,参数可选参数分为输入参数、输出参数输入参数允许有

10、默认值例如:调用存储过程16EXECUTE(执行)语句用来调用存储过程调用的语法EXEC 过程名 参数修改,更新存储:语法: UPDATE |UPDATA 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值例如:2、触发器的创建与管理。触发器的类型:17INSERT 触发器:当向表中插入数据时触发,自动执行触发器所定义的 SQL 语句。UPDATE 触发器:当更新表中某列多列时触发,自动执行触发器所定义的 SQL语句。DELETE 触发器:当删除表中记录时触发,自动执行触发器所定义的 SQL 语句serted 和 deleted 表触发器触发时:1、系统自动在内存中创建 delet

11、ed 表或 inserted 表2、只读,不允许修改;触发器执行完成后,自动删除inserted 表1、临时保存了插入或更新后的记录行2、可以从 inserted 表中检查插入的数据是否满足业务需求3、如果不满足,则向用户报告错误消息,并回滚插入操作deleted 表1、临时保存了删除或更新前的记录行2、可以从 deleted 表中检查被删除的数据是否满足业务需求3、如果不满足,则向用户报告错误消息,并回滚插入操作创建触发器的语法:CREATE TRIGGER trigger_nameON table_nameWITH ENCRYPTIONFOR DELETE, INSERT, UPDATEA

12、ST-SQL 语句GOWITH ENCRYPTION 表示加密触发器定义的 SQL 文本DELETE, INSERT, UPDATE 指定触发器的类型insert 触发器的工作原理:1.执行 insert 插入语句,在表中插入数据行;2.触发 insert 触发器,向系统临时表 inserted 表中插入新行的备份(副本)3.触发器检查 inserted 表中插入的新行数据,确定是否需要回滚或执行其他操作。例如下,创建触发器:但插入数据时,调用触发器,效果如下:18(3)数据库备份与恢复1、对所创建的数据库进行完整、差异、日志备份(1)完整备份 使用 BACKUP DATABASE 语句实现完

13、整备份。语法格式如下:BACKUP DATABASE 数据库名TO ,.n WITH INIT 或 NOINIT 参数说明:INIT 或 NOINIT:INIT 表示新备份的数据覆盖当前备份设备上的每一项内容;NOINIT表示新备份的数据添加到备份设备上已有内容的后面。完整备份教务管理系统数据库,创建用于存放教务管理系统数据库完整备份的逻辑备份设备 DiskBKJWGL:-完整备份 spj 到 d:/test 中,截图如下:19(2)差异备份使用 BACKUP DATABASE 语句对数据库创建差异备份与创建完整备份类似,除了执行BACKUP DATABASE 语句时需要指定要备份的数据库名称

14、和写入完整备份的备份设备以外,还需使用 WITH DIFFERENTIAL 参数来标明执行的是一个差异备份。创建教务管理系统数据库的差异备份。BACKUP DATABASE 教务管理系统 TO DiskBKJWGL WITH DIFFERENTIAL(3)备份事务日志可以使用 BACKUP LOG 语句实现事务日志备份。语法格式如下:BACKUP LOG 数据库名TO ,.n WITH INIT /NOINIT202、数据库恢复:恢复备份好的数据库,运行如下:四、实验小结:SQL Server 数据库的实验二使我对数据库的有了新的进步,以后再看到也就不至于什么也不懂,其实那么多数据库我觉得学好

15、一门就行,只是他们的语言可能不大一样,学好一门后就可去认识其它的,这样应该有事半功倍的效果。就像我学习 C 语言,当时不能说是学习的棒,但不算差。所以我对以后的语言感觉都不是很困难,了解了 VB、C+ 还有网页中用的 Html 语言、asp 语言都能看懂,起码可以对别人的东西进行了一下修改。因此,我感谢数据库老师给了我有用的知识,以便我在以后学习或认识更多的内容能有新的方法和思维,也能更加有效和快速的去消化吸收新的东西。希望在今后中,SQL Server 能给我更多帮助。感谢学校开设这样一门优秀使用的课程,让我对数据库有了更深的了解。21数据库应用实践实验三:数据库应用系统的开发一、实验目的:

16、初步掌握数据库应用系统分析设计的基本方法;进一步提高分析与解决问题的综合能力;初步掌握数据库建模工具的使用方法;熟悉掌握C/S 或B/S 结构的数据库应用系统开发的整个过程。二、实验环境:操作系统: 32位 Win7数据库管理系统: SQL Server 2005系统设计与开发工具:VS2010 系统开发语言:C#、ASP.NET三、实验内容:运用数据库基础知识,在数据库应用环境下,完成一个具体的数据库应用系统的分析、设计与实现。针对设计任务利用建模工具(Rose、PowerDesigner 等)进行数据库建模,在使用SQLserver 基础上 ,利用一种应用开发工具(PHP、VC、java

17、等)设计实现一个数据库应用系统。要求能实现对数据库中数据的插入、删除、修改、查询、统计等功能,做到界面友好、使用方便。所建的数据库表至少满足第三范式,掌握应用系统与数据库相连方法,掌握程序访问数据库中数据的技术方法,进一步提高分析与解决问题的综合能力。一、系统选题:大学在线考试系统二、需求说明1. 操作简单方便,界面简洁美观。2. 具有实时性,已注册的用户无论身在何地,通过 Internet 游览器,都可登录网络考试系统。223. 系统提供的自动交卷功能使考试到结束时间时,系统自动交卷。4. 提供考试时间倒计时功能,让考生随时了解考试剩余时间。5. 系统自动阅卷,保证成绩真实,准确。6. 考生

18、可以随时查看考试成绩三、系统概要设计及概念数据模型(E-R 图)设计系统功能模块如图:学生用例图:管理员用例图:23四、系统详细设计及数据库表结构设计逻辑结构设计:类和关系模型向关系模式转化:1.考生信息表(学号,姓名,密码,性别,密码问题,答案,专业,加入时间)2.单选题信息表(题目编号,课程编号,题名,选项 A,选项 B,选项 C,选项 D,正确答案)3.多选题信息表(题目编号,课程编号,题名,选项 A,选项 B,选项 C,选项 D,正确答案)4.判断题信息表(题目编号,课程编号,题目,正确答案)5.专业信息表(专业编号,专业名,加入时间)6.考试科目表(课程编号,课程名)7.管理员信息表

19、(管理员编号,管理员名称,密码,加入时间)Course 表tb_TaoTi 表24tb_Student 表tb_Profession 表tb_Administrator 表SingleProblem 表Score 表25MultiProblem 表JudgeProblem 表tb_TaoTiDetail 表类图26物理结构设计(1).为关系模式选择存取方法:选择索引方法(2).确定数据库的存储结构为了提高系统性能,将表和索引放在不同的磁盘上。系统配置使用默认值。完整性设计1.实体完整性:Course 表中 ID 设为主键并且为自增长 identity(1,1) JudgeProblem 表中

20、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_TaoTiDeta

21、il 表中 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 r

22、eferences Course(ID) 27tb_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_JudgeP

23、roblemDetail 判断题详细信息CREATE PROCEDURE dbo.Proc_JudgeProblemDetailID intAS SELECT *FROM dbo.JudgeProblemwhere ID=ID(2)Proc_JudgeProblemModify 判断题修改CREATE PROCEDURE dbo.Proc_JudgeProblemModify(ID int,CourseID int,Title varchar(1000), Answer bit)AS UPDATE Examination.dbo.JudgeProblem SET CourseID = Cour

24、seID,Title = Title, Answer = Answer WHERE ( ID = ID)(3)Proc_MultiProblemDetail 多选题详细信息CREATE PROCEDURE dbo.Proc_MultiProblemDetailID intAS SELECT *FROM dbo.MultiProblemwhere ID=ID4)Proc_MultiProblemModify 多选题修改CREATE PROCEDURE dbo.Proc_MultiProblemModify(ID int,CourseID int,Title varchar(1000),Answe

25、rA varchar(500),AnswerB varchar(500),AnswerC varchar(500),AnswerD varchar(500),Answer varchar(50)AS UPDATE Examination.dbo.MultiProblem SET CourseID = CourseID,Title = Title,AnswerA = AnswerA,AnswerB = AnswerB,28AnswerC = AnswerC,AnswerD = AnswerD,Answer = Answer WHERE ( ID = ID)(5)Proc_PaperDetail

26、试卷信息(6)Proc_PaperModify 试卷修改CREATE PROCEDURE dbo.Proc_PaperModify(PaperID int,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 Examin

27、ation.dbo.Score (UserID, PaperID,Score) VALUES ( UserID, PaperID,Score)(8)Proc_SingleProblemDetail 单选题信息CREATE PROCEDURE dbo.Proc_SingleProblemDetailID intAS SELECT *FROM dbo.SingleProblemwhere ID=ID(9)Proc_SingleProblemModify 单选题修改CREATE PROCEDURE dbo.Proc_SingleProblemModify(ID int,CourseID int,Ti

28、tle varchar(1000),AnswerA varchar(500),AnswerB varchar(500),AnswerC varchar(500),AnswerD varchar(500),Answer varchar(2)AS UPDATE Examination.dbo.SingleProblem SET CourseID = CourseID,Title = Title,AnswerA = AnswerA,AnswerB = AnswerB,AnswerC = AnswerC,AnswerD = AnswerD,Answer = Answer WHERE ( ID = ID

29、)数据访问类设计数据访问类为 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) 29SqlConnecti

30、on 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, Parameter

31、Direction.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 ecDropDo

32、wnList(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; t

33、ry 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.Da

34、taSource = mydataset; gv.DataKeyNames = new string DNK ;gv.DataBind(); cn.Close(); public DataSet GetDataSet(string ProcName, SqlParameter Params) SqlConnection cn = this.getcon();cn.Open(); SqlCommand Cmd = CreateCommand(ProcName, Params);SqlDataAdapter adapter = new SqlDataAdapter(Cmd); DataSet da

35、taset = new DataSet();adapter.Fill(dataset); cn.Close();return dataset; private SqlCommand CreateCommand(string ProcName, SqlParameter Prams) SqlConnection cn = this.getcon(); cn.Open();SqlCommand Cmd = new SqlCommand(ProcName, cn); Cmd.CommandType = CommandType.StoredProcedure;30if (Prams != null)

36、foreach (SqlParameter Parameter in Prams) Cmd.Parameters.Add(Parameter);return Cmd; public int RunProc(string ProcName, SqlParameter Params) SqlConnection cn = this.getcon(); cn.Open();int Count = -1; SqlCommand Cmd = CreateCommand(ProcName, Params);Count = Cmd.ExecuteNonQuery(); cn.Close();return Count; 五、系统测试及测试结果登陆主界面:教师管理:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报