第一篇:数据库原理与应用课程总结
数据库原理与应用课程总结
两部分内容组成:数据库的理论知识、SQL Sever 2000的使用
数据库的理论知识包括三篇,第1篇:基础篇;第2篇:设计篇;第3篇:系统篇,三部分内容之间的关系是基础篇是基础是重点,必须全面掌握;设计篇是方法论,是应用系统开发过程中的方向指南,对基础篇的应用;系统篇:是对DBMS的四性的详细解释,丰富了基础篇的内容。
一、名词概念
1、信息、数据、数据处理
2、数据库
3、数据库管理系统
4、数据库系统
5、概念模型
6、逻辑模型
7、模式
8、外模式
9、内模式
10、数据库独立性(逻辑独立性、物理独立性)
11、概念模型有关概念:实体、属性、码、域、实体型、实体集、联系、联系方式
12、关系模型的有关概念(元组、属性、主码、域、分量、关系模式)
13、函数依赖
14、完全函数依赖
15、部分函数依赖
16、传递函数依赖
17、码
18、主属性
19、非主属性 20、视图
21、可恢复性
22、并发控制性
23、安全性
24、完整性
25、关系
26、关系模式
27、实体完整性
28、参考完整性
29、自定义完整性 30、游标
二、基本理论
1、计算机数据管理三个阶段的特点(数据组织(保存)与管理、共享、数据与应用程序的独立性、数据冗余等),特别要掌握数据库系统的特点(数据组织结构化、共享性高、数据独立性强,数据由DBMS统一管理和控制)。
2、DBMSE 的数据控制功能
(1)可恢复性(2)并发控制
(3)安全性
(4)数据的完整性
结合第3篇 系统篇,掌握好如下问题
事务的概念和特点、掌握系统发生故障、并发控制出现异常的实质?
可恢复性部分
什么是可恢复性
故障类型
故障恢复实现技术(数据转储与建立日志文件,掌握数据转储的形式和特点,日志文件中包含的内容)
各种类型故障的排除方法
(1)事务故障(Undo处理,反向扫描日志文件)(2)系统故障(对未完成的事务Undo处理,已完成的事务Redo处理)
(3)介质故障()
并发控制
并发操作的三类数据的不一致性
并发控制的主要技术(封锁技术)
锁的类型及特点
封锁协议
并发操作的可串行性(概念、什么样的调度是正确的(所有的串行调度、具有并发操作的可串行化的调度是正确的、如何保证调度是正确的。)
安全性
保证系统安全的途径
存取控制机制的组成(定义权限、合法权限检查)
自主存取控制方法的基本操作(授权和撤销权限)
理解视图机制如何保证数据的安全
完整性
完整性的概念 完整性约束条件
完整性控制(3点:定义、检查和违约反应、完整性五元组定义)
参考完整性的三个问题(外码是否为空、被参考关系中删除和插入元组时)
3、数据模型
(1)数据模型的三要素
(2)计算机信息处理的三大世界(与数据库设计步骤的对应关系)
(3)概念模型及其表示方法()
(4)逻辑模型的三种类型及其特点(数据结构、数据操作和约束条件,特别是关系模型的特点)
4、数据库系统结构(三模式、两映射和数据独立性)
5、关系及关系操作
(1)关系模型组成(数据结构、操作和完整性;关系数据操作表示形式(代数方式、逻辑方式和SQL))
(2)关系数据结构及其有关定义(域、笛卡儿积、关系、关系模式、关系数据库)
(3)关系的完整性
(4)关系代数(传统的集合运算、专门关系运算(投影、选择、连接和除法运算)、关系代数的写法(注意三个问题、7个例题)
(5)SQL 语言
DDL语言(数据库、数据表、索引和视图)
DML语言(查询()、插入、删除和修改)
DCL语言(授权和撤销权限)
嵌入式SQL(存在问题及其对策、共享变量、游标(概念、操作步骤和打开游标的含义、游标的使用)
(6)数据规范化
基本概念(函数依赖、完全函数依赖、部分函数依赖和传递函数依赖、码、主属性和非主属性)
三类数据异常以及好模式的标准
数据规范化的原则、方法和步骤。
三、基本技术数据库设计
1、数据库设计概述
2、数据库设计的基本步骤及每个阶段的任务、方法
3、重点掌握(需求分析阶段、概念设计和逻辑设计三个阶段)
四、基本技能-SQL Server 2000的基本操作 第1部分 基本理论
一、与数据库有关的4个重要概念和1个常识
1、数据
2、数据库
3、数据库管理系统:
DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。
主要功能:数据定义、数据操纵、数据运行管理(4性)
DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、面向对象型DBMS。
4、数据库系统 结构组成与人员组成、理解图1.1 数据库技术 :是一门研究数据库结构、存储、管理和使用的软件学科。
5、一个常识
(1)三个阶段 每个阶段的优缺点
(2)理解数据库系统的特点(数据结构化、数据的共享性、冗余度低以及数据的独立性、数据的统一管理和控制)
二、数据模型
1、计算机信息处理的三大世界、两类模型(概念模型、结构模型),理解计算机信息处理的基本步骤。
2、数据模型(结构模型)的三要素(逻辑模型)
3、概念模型(结合数据库概念设计理解)
(1)特点
(2)基本概念(实体、属性、码、实体型、实体集、联系及联系方式)(3)表示方法 ER模型(画法)
4、常用的模型(数据结构化的基础)
(1)层次、网状和关系
(2)每种模型的数据结构、数据操作、约束和存取特点。(3)重点在关系模型(详细见第2章)
数据结构(从用户的观点:二维表)常用术语:关系、元组、属性、主码、关系模式
关系模式的表示方法
关系模型必须是规范化的数据操纵与完整性
关系数据模型的存储结构
优缺点
三、数据库系统结构
1、不同的角度(从数据库管理系统和从最终用户)
2、三模式(模式、外模式和内模式)
3、二级映象与数据独立性
4、重要概念(模式、外模式、内模式、数据的逻辑独立性与物理独立性)
四、关系数据库及其操作
1、关系模型的数学依据(建立在集合代数的基础上)
2、从集合论的角度谈关系数据结构(笛卡儿积的子集)
3、关系及关系操作
(1)关系数据结构及其有关定义(域、笛卡儿积、关系、关系模式、关系数据库)
(2)关系操作:查询操作和更新
查询操作:关系代数查询、关系演算和具有双重特点的SQL
4、关系的完整性
5、关系代数(传统的集合运算、专门关系运算(投影、选择、连接和除法运算)、关系代数的写法(注意3个问题、7个例题)、关系优化。
6、关系数据库操作的标准-SQL 语言
DDL语言(数据库、数据表、索引和视图) DML语言(查询、插入、删除和修改) DCL语言(授权和撤销权限)
嵌入式SQL(存在问题及其对策、共享变量、游标(概念、操作步骤和打开游标的含义、游标的使用)
7、什么是视图,怎样理解?有什么作用
五、数据规范化
1、基本概念(函数依赖、完全函数依赖、部分函数依赖和传递函数依赖、码、主属性和非主属性)
2、三类数据异常以及好模式的标准
3、数据规范化的原则、方法和步骤。
六、DBMSE的数据控制功能(系统篇)
结合第3篇,掌握好如下问题
1、事务的概念和特点、掌握系统发生故障、并发控制出现异常的实质?
2、可恢复性
什么是可恢复性、故障类型、故障恢复实现技术(数据转储与建立日志文件,掌握数据转储的形式和特点,日志文件中包含的内容)、各种类型故障的排除方法。
(1)事务故障(Undo处理,反向扫描日志文件)(2)系统故障(对未完成的事务Undo处理,已完成的事务Redo处理)(3)介质故障
3、并发控制
并发操作的三类数据的不一致性、并发控制的主要技术(封锁技术)、锁的类型及特点、封锁协议、并发操作的可串行性(概念、什么样的调度是正确的(所有的串行调度、具有并发操作的可串行化的调度是正确的、如何保证调度是正确的)
4、安全性:保证系统安全的途径、存取控制机制的组成(定义权限、合法权限检查)、自主存取控制方法的基本操作(授权和撤销权限)、理解视图机制如何保证数据的安全
5、完整性:完整性的概念、完整性约束条件、完整性控制(3点:定义、检查和违约反应、完整性五元组定义)
参考完整性的三个问题(外码是否为空、被参考关系中删除和插入元组时)
6、区别数据库的一致性、完整性和安全性。
第二部分 基本技术-数据库设计
1、数据库设计概述
2、数据库设计的基本步骤及每个阶段的任务、方法
3、重点掌握(需求分析阶段、概念设计和逻辑设计三个阶段)
第三部分 基本技能-SQL Server 2000的基本操作
1、数据库服务器环境配置
2、数据库及数据库对象的基本操作
3、SQL 2000的安全控制策略
4、数据库备份与还原操作
5、脚本文件
6、数据的导入与导出
需要掌握的概念
1、信息、数据、数据处理
2、数据库
3、数据库管理系统
4、数据库系统
5、概念模型
6、逻辑模型
7、模式
8、外模式
9、内模式
10、数据库独立性(逻辑独立性、物理独立性)
11、概念模型有关概念:实体、属性、码、域、实体型、实体集、联系、联系方式
12、关系模型的有关概念(元组、属性、主码、域、分量、关系模式)
13、函数依赖
14、完全函数依赖
15、部分函数依赖
16、传递函数依赖
17、码
18、主属性
19、非主属性 20、视图
21、可恢复性
22、并发控制性
23、安全性
24、完整性
25、关系
26、关系模式
27、实体完整性
28、参考完整性
29、自定义完整性 30、游标
第二篇:数据库原理与应用课程教学改革研究
数据库原理与应用课程教学改革研究
摘要;数据库课程是计算机及其相关专业的重要课程,具有较强的理论性和实践性。通过对该课程采用传统教学模式存在问题的分析,探索数字媒体技术专业背景下的教学改革措施,包括合理规划课程内容,优化课程体系和丰富实验课教学,以达到调动学生的积极性和动手能力,培养应用型人才的目标。
关键词:数据库课程;数字媒体技术;教学模式;实践教学;教学改革
中图分类号:TP319 文献标识码:A 文章编号:1009-3044(2017)07-0141-02
随着信息技术的发展,数据库技术在计算机应用系统中占据越来越重要的地位。我校数字媒体技术专业根据自身的专业需求,已经开设了多年的数据库教学,总结近年来教学中的经验和不足,结合本专业的特点,对该课程进行了一系列的改革,以适应数字媒体行业人才的需要。
1教学现状和存在问题
我院数字媒体技术专业开设移动媒体和游戏开发两个方向,前者侧重网站和移动端应用开发人才的培养,数据库原理与应用课程主要为该方向学生开设,总计64学时,理论和上机各32学时。教学目标是学生理解数据库的基本原理,能够自己或配合团队进行数??库的设计和开发,从而掌握在实际项目中使用数据库的技术。移动媒体方向主要实践教学任务安排如表1所示:
本专业属于非计算机专业,计算机基础课程较少,侧重于应用型课程。同时结合独立学院学生的实际情况,本课程采用中国人民大学的优秀教材《数据库系统概论》,并未参照国外经典教材,授课内容也有所删减,主要包括数据库原理、设计和应用三个部分。三个部分的主要授课内容为:原理部分包括关系数据库基本概念、关系代数、SOL语句、数据库安全性和完整性。设计和应用包括关系数据理论、数据库设计、查询处理和查询优化、数据库恢复技术和并发控制。总结近几年来教学实践过程,存在的问题有以下几个方面:
1)学生计算机基础薄弱,对理论知识兴趣不大。本专业课程围绕数字媒体的应用设置,所以开设的计算机基础课程较少,学生基础知识较薄弱,编程能力不强,因此对于较抽象的原理知识,如:关系代数等内容,学生掌握存在一定难度;对于SQL语句的学习,学生只是照搬书上简单的例子来操作,对原理、设计和应用三个部分没有融会贯通。后续的项目实践中,不能从应用的整体角度进行规划,导致设计的数据库性能较差,实用性较弱。
2)相关课程缺乏联系,学生解决综合问题能力较弱。本专业的教学任务中,网站开发类课程和数据库课程相互独立,尽管第三学年的综合实践课程将两者结合,由于以学生练习为主,课时较少(16学时),较多学生仍旧不能掌握复杂的数据库设计。总结几年的毕业设计情况,网站开发类题目中,较多学生仍然无法解决数据库整体设计及其如何与前端页面交互的问题。
3)缺乏综合应用的实践平台。由于学时的限制,上机实验只是对理论知识的简单实现,与实际应用中的复杂设计相差甚远。同时,机房中数据库平台的部署基本都是单机环境,与现有实际网站系统中大型数据库的部署和使用存在较大差距,难以培养学生的实际项目开发能力。
2改革措施
根据数字媒体技术专业的特点,结合学生的实际情况,针对上述问题,我们坚持“应用性”和“渐进性”原则,对本课程进行了以下几个方面的教学改革:
2.1合理规划课程内容
对数据库原理中较难理解的概念,如;数据模型、关系模式、范式等,我们采用用案例式教学和验证性实验相结合;对数据库设计以团队实现项目的方式讲解,具体如下:
1)项目案例引入教学,实际案例中的用语和理论知识对应讲解。教学中所用到的项目案例由互联网下常见应用模型的提取,如:购物网站设计。用验证性实验加强对该部分基础知识的理解,即授课过程中边学边练。
2)对数据库设计章节,将复杂的实际应用划分为多个简单需求,鼓励学生从中选择单个或几个简单功能进行项目的模拟化设计和开发,然后在此基础上进行功能的扩展。实际执行时,3-5学生组成团队,以合作方式完成需求分析、E-R图、数据库设计、实施和安全性检测整个流程,采取集中演示和答辩方式进行成绩判定。
3)结合数字媒体的实际应用,讲解大型网站的搭建机制,增加学生兴趣的同时,课本中相关知识点与实际应用也有了较好的结合。
2.2优化课程体系
数据库课程在整个课程体系中并不是孤立的,所以其课程设计应该与网站开发等课程设计有机地结合起来。它们侧重点虽然不同,但是之间又有密切联系,让学生及早了解这种联系,十分必要。我们采取以下措施:
1)第二学年开始开展综合实践,内容是将WEB开发课程内容和数据库结合。教师演示项目案例的实际开发流程,学生以团队合作方式,选择自己感兴趣的应用,与传播学和艺术方向学生合作,分别完成技术实现、策划和艺术设计环节。这种方式与公司的项目运作方式相似,能够更好的锻炼不同专业学生之间的沟通能力。综合实践成绩通过学生答辩方式判定。
2)引入对非关系型数据库系统的介绍,这是应对大规模和高并发数据访问Web2.0网站常用的技术。教师介绍大规模网站架构中的数据存储和访问模块,学生分组了解某个相关的设计思想和开源软件。这有助于学生在掌握基本概念基础上进行扩展式自学,减小互联网应用对学生造成的神秘感。这部分内容属于书本外的扩充知识,以学习汇报方式进行考查。
2.3丰富实验课教学
应用能力的培养是数据库教学的主要目标之一,为此我们采取以下方法:
1)提供MySql和SQLServer软件平台,以及智能手机常用的Sqllite,另外提供实际应用中常见的Memcache、MongoDB等分布式系统,学生可自由选择使用。为了更好的模拟实际的网络环境,实验课上选定某个学生设计的数据库为服务器,其他学生对它进行远程访问。
2)增加大规模网站中分布式数据平台的介绍,开阔学生视野的同时,动手搭建MongoDB等开源系统。选择具有代表性的智能手机应用项目,重点训练其中数据库应用和设计部分,以适应移动互联网的发展,提高学生的动手能力和就业竞争力。
3结束语
我们对数据库原理与应用课程的教学改革取得了较好的效果,体现在学生对数据库的基本理论和实践能力得到了提升,能够独立或者合作完成相关毕业设计人数有了显著提升,毕设质量也有了显著提高。
数据库的发展非常迅速,新的信息技术不断更新,这对教师提出了更高的要求。教师不仅掌握原有的理论知识,还要加强自身研究工作,紧跟信息技术的前沿发展,才能更好地激发学生的学习兴趣。
在今后的教学过程中,我们会根据数据库的发展,结合本专业的特点,继续对本课程进行改进和完善,以适应培养应用型人才的需要。
第三篇:数据库原理及应用课程教学改革与实践
数据库原理及应用课程教学改革与实践
(西安文理学院信息工程学院 7140000)
摘要:根据我国数据库的原理以及应用课程教学的改革与实践的问题进行研究探讨,在实际的数据库原理课程中普遍存在概念化的理论重于实际数据库数据的操作。因此,对于实际的数据库教学进行深入访查的基础上,对于数据库应用原理以及课程教学缺乏实际操作和多样性的教学手段,提出相关建议促使相关部门单位能够实施改革创新,本文分别对于:学习内容、教学手段、教学考核等方面分别进行研究,并且提出对于数据库原理及应用该课程教学的改革和实践的思路。
关键词:数据库原理;教学;改革;实践
引言
根据我国的数据库原理以及应用课程的教学通常分为两部分,第一就是根据数据库的概念形成原理的书面教学,第二种就是根据书面教学让学员们上机操作展开应用开发。在实际的教学中,实施以教学理念为重点,讲述数据库的基本原理和技术实施规范,在系统的教学学习之下,再开展关于程序设计语言的实现过程。最后才是以理念为基础实施擦做,实际上关于我国数据库原理的应用,在学习过程中占很小的一部分。由于学生们无法长时间接触教学,导致学生们的学习缺少直观性,在应用的实际开发教学中,一定要注重的是理论与实际相结合。所以根据我国数据库原理以及应用课程的教学问题进行探讨并且根据问题提出相关的建议。
一、数据库课程的概念
根据数据可原理及应用课程,其实是根据数据结构来组织管理数据建立在计算机的存储设备上的一个信息库,该信息库可共享、有组织、可查询。比如在一个企业内部数据信息库的建立上存在着单位内部人员的基本资料和状况。并且通过信息的传输进入企业的人事部门。此外数据库的建立不仅仅是在人事管理上,通常还可以运用在仓库、生产线、财务部门等等。实现企业内部信息自动化流程。
二、数据库实际教学中的问题
(一)教学内容偏离实际
学生们在书面上的课程可能学习的很好,但是在实际的操作过程中就会显得无所适从。在数据库的设计和实际应用的实施中,没有足够的灵活性,会让学生们在应用考核成绩上会很苦恼。面对当下市场竞争越来越激励的情况下市场要求数据库人才能够对软件应用和设计问题上的灵活操作,让学生们无法适应。
第二,就是过分注意数据库的操作,为了迎合市场大力发扬数据库的开发设计和使用方面,让学生们在数据库的教学侧重开发,并不对数据库的概念、理论进行教学。对于学生们的基础学识非常不看重,如此急功近利的情况下,学生们不明不白的学习各种操作知识,形成只知其一,不知其二的效果,不能够拓展其他应用思维,这两种极端不符合当下对于高等人才的数据库课程培养。
(二)实践环节系统不完善
目前我国对于数据库原理及应用课程教学上是没有系统的进行完善的,对于大部分的教材,基本上都是关于数据库的内容、理论、设计数据库时代背景、数据库模型讲解等等,在实践问题上基本上就像手册一样,让学生根据书本的步骤进行实践,这种方法缺乏系统的实践教学,容易把学生们的思维定性,让设计出来的数据库软件缺乏创新性,学生们的思维千篇一律这是跟实践环节的系统有关系的。教学过程中,教师没有给学生足够的时间,对于实践课程还是像课程讲解一样,并且给学生们的实践时间太少,学生们要赶时间进度自然对于创作的灵活性和多样性有局限。
(三)教学方式单一化
在数据库原理及应用课程教学中,教师的问题也是非常大的,大部分教师对于数据库的原理可能会娓娓道来,对于数据库各个内容、背景、设计思路以及详细讲解数据库的传输、储存数据的原理,学生们也根本没有时间去实施实践工作,注重理论的教学让课程的形式单一且盲目,被动的要求学生们开展思维,让同学们只重视理论内容,在实践教学分析中没有很好的进行思考,而是被各种题目的解题思路困扰。另外还有一小部分的教学是只重视实践,对于理论的教学可有可无,不仅让学生们一头雾水,在实际的考核和单一教学模式下,学生们会惧怕操作,害怕操作中出纰漏,非常局限学生们的创作思维。这也是非常不可以的。
三、解决数据库教学问题的方案
(一)结合实际改变教学内容
对于教学内容偏离实际的问题首先,应该让教学内容能够结合实际来改变目前的现状,传统的教学讲解式学习和盲目的实践实习已经不能符合当代潮流对于人才培养的需求。所以对于数据库的教学问题上,虽然一切还是以数据库的基本原理、数据库系统的概念以中心思想,然后根据原理教学对于数据库的软件实践和开发设计也要同步学习。在数据库的软件系统以及运用数据库的语言SQL等内容进行学习。让同学们在概念中学习实践,在实践中结合概念才是目前教学内容的良策。
(二)多元化教学改善学生兴趣
第二,要运用多元化教学内容改善实践体系,不仅锻炼了同学们的发散思维,更加能够锻炼同学们的操作水平,可以试着让学生们建立一个自己的数据库系统,比如:学校人员的内部管理,图书馆管理系统等等,让书本上的知识得以完善和理解。在实际教学中可以营造欢乐有活力的上课氛围,把数据库的学习带入学生们的生活,激发学生们对于教学过程的见解。教学教材可以在网上进行教学,进行学生们与老师的互动环节,可以由老师带领下进行交流沟通,第三,采用艺术手段对于教学资料进行编辑和侧面教学,多元化的教学方式激发学生们的兴趣,对上课质量有帮助。
(三)改革考核方式
学校和相关的教育部门应该改善关于数据库教学的考核方式,侧面的让学生们开始注重理论和实际相结合。让教师们能够合理安排上课时间,另同学们有充分的时间进行理论的学习以及实践操作。重点培养我国高端数据库信息应用人才,让同学们有自主权,放弃填鸭式缴械,改变课程的考核,不偏离知识和应用的任何一方,激发教学的活力以及同学们对教学的兴趣。不要成为学生们叫苦不迭和老师们对上课质量的无奈。
结论
对于数据库课程的教学内容一般是包括:数据库的原理、设计、应用三个方面。由于目前开设数据库课程的高等院校中容易过分侧重原理的学习或者过分侧重实践导致教学偏离实际,盲目的让同学们根据学习教材进行实践,涉及的相关数据库软件的应用也一笔带过,这是非常不利于学生们能够系统学习实践的。影响学生的综合认知和探索设计。这种填鸭式的教育,让同学们感到枯燥乏味,出现了“学什么讨厌什么”的现象,对于教学和培育数据库高等人才的教育是非常不利的。所以根据以上问题提出三个建议,希望相关的学校和政府部门能够高度重视对于数据库教学的改革和实践问题。
参考文献:
[1]肖锋,辛大欣,耿朝阳.计算思维培养为核心的教学模式研究与实践――以“数据库原理与应用”课程为例[J].现代教育技术,2015,07:49-55.[2]鲁秋菊.基于CDIO理念的任务驱动法在“数据库原理及应用”课程教学中的应用[J].电脑知识与技术,2012,30:7269-7271.[3]胡运玲.基于SSH框架的省级精品课程网站的研究与实现[D].中国海洋大学,2011.[4]邵帅.教育技术学本科专业实践类课程教学改革研究与实践[D].西北师范大学,2011.[5]潘云霞.《单片机原理及应用》课程一体化教学改革研究与实践[J].电脑知识与技术,2015,23:89-90.[6]顾凤梅.应用型本科院校非计算机专业“数据库原理及应用”教学模式改革探索[J].宁波教育学院学?螅?2016,02:70-71+82.[7]刘小春,戚旭衍,朱晓青,侯一凡.测绘专业研究生数据库原理与应用课程教学改革[J].信息与电脑(理论版),2011,08:213-214.
第四篇:数据库原理与应用实验教案
实验报告格式 《数据库原理》实验报告
(实验名称:)
专业
班级级()班 学号 学生姓名 指导老师
攀枝花计算机学院 年月日
一、实验目的
本次实验所涉及并要求掌握的知识点。根据老师实验前的讲授自行撰写。(小四号字,宋体)
二、实验内容:
本次实验的内容及相关题目描述(小四号字,宋体)
三、SQL语句及运行结果 创建数据库:
在数据库节点右键新建数据库,增加和修改数据文件名,设置增长方式以及数据库逻辑名称
文件组添加Slave文件组 修改数据库:
利用SQL语句修改,删除,添加数据库文件
删除数据库:
按照实验内容编写的SQL语句或程序代码与结果显示(小四号字,宋体)
四、实验总结
1 .实验中遇到的问题及解决过程 2 .实验中产生的错误及原因分析 3 .实验体会和收获。
实验一 创建数据库(操作型)1.1 实验目的
(1)理解并掌握数据库的基本概念;
(2)理解并掌握数据文件、日志文件、文件组的基本概念;
(3)熟练掌握和使用SQL Server Management Studio管理器创建、删除、更改(包括文件组、文件大小、文件增长方式等参数)数据库;(4)熟练使用DDL语句来创建、删除、更改(包括文件组、文件大小、文件增长方式等参数)数据库。
1.2 实验内容
件组,分别是主文件组和“Slave”文件组。数据库包含两个数据文件,分别是“mymaster.mdf”和“myslave.ndf”,其中数据文件“mymaster.mdf”属于主文件组,存放在d:data目录下,文件初始大小50M,文件属性为自动增长,每次增长10%。数据文件“myslave.ndf”存放在e:data目录下,属于Slave文件组,文件大小固定为50M。该数据库有一个日志文件,日志文件名称“mylog.ldf”,文件位于c:log目录中,日志文件初始大小为50M,文件属性为自动增长,每次增长10M,最大文件大小为100M(实验时一定要保证c:Log、d:data和e:data目录存在,否则会发生错误,如果计算机d:盘或e:盘不存在,实验时须将路径调整到已存在的磁盘下);(1)创建数据库:待创建的数据库逻辑名称为“MyDB”。该数据库有两个文(2)修改数据库:将刚才创建的数据库“MyDB”的名称修改为“TESTDB”,并删除数据文件“myslave.ndf”,同时增加一个数据文件,该数据文件逻辑名称为“test“,文件名称为“test.ndf”,数据文件位于e:data(在e盘存在的情况下,如果e盘不存在,可指定道其他磁盘位置下),其他参数默认;
(3)删除刚刚创建的“TESTDB”数据库。
1.3 实验步骤
对数据库的管理(包括创建、修改、删除)可以有两种方式完成,使用SQL Server Management Studio管理器可以完成数据库的日常管理,还可以通过查询窗口输入DDL语句完成数据库的管理。
1.3.1 数据库创建
(1)使用SQL Server Management Studio创建数据库(2)使用SQL语句创建数据库
1.3.2 修改数据库
1.3.3 删除数据库“TESTDB”
(1)使用Management Studio删除“TESTDB”(2)使用SQL语句删除数据库
1.4 思考与练习
答:(1)什么是数据库?数据库的组成有哪些?
(2)什么是文件组?如何创建文件组?主文件组可以删除吗?
答:
(3)数据文件,日志文件各有什么作用?
答:
(4)文件增长方式有哪些?如何设置?
答:1)在新建数据库的界面中设置自动增长方式
2)利用SQL语句size设置大小,filegrowth设置增长类型,maxsize设置最大文件.(5)SQL Server Management Studio与数据库的关系是什么
答:
第五篇:数据库原理总结
1关系的范式及规范化
范式是衡量关系模式优劣的标准。范式级别越高,其数据冗余和操作异常现象就越少。第一范式:如果一个关系模式R的所有属性都是不可分的基本数据项,则这个关系属于第一范式。第二范式:若关系模式R属于第一范式,且每个非主属性都完全函数依赖于主键,则R属于第二范式。第三范式:若关系模式R属于第一范式,且每个非主属性都不传递依赖于主关键字,则R属于第三范式。BC范式:若关系模式R属于第一范式,且每个属性都不传递依赖于主关键字,则R属于BC范式。
2对模式的分解显然不是随意的,主要涉及以下两个原则:无损联结:当对关系模式R进行分解时,R的元组将分别在相应属性集进行投影而产生新的关系。如果对新的关系进行自然联接得到的元组的集合与原关系完全一致,则称为无损联结。保持依赖:当对关系模式R进行分解时,R的函数依赖集也将按相应的模式进行分解。如果分解后总的函数依赖集与原函数依赖集保持一致,则称为保持依赖。
3事务的定义:事务是数据库的逻辑工作单位,由用户定义的一组操作序列组成,序列中的操作要么全做要么全不做。
4简述事务所具有的ACID(原子性,一致性,隔离性,持续性)特性:事务的ACID特性是: 原子性:事务是一个不可分割的单位。一致性:事务对数据库操作的结果是将数据库从一个一致性状态变为另一个一致性状态。隔离性:多个事务的并发执行不互相干扰。持续性:事务一旦提交,它对数据库中数据的改变就是永久性的。5事务的调度:事务的执行次序称为调度。若多个事务是按照某一次序串行地执行,则称事务的调度是串行调度。若多个事务同时交叉地并行执行,则称事务的调度为并发调度。
6事务并发执行产生的不一致情况及避免:并发操作可能会产生丢失修改,不能重复读和读”脏”数据这三种不一致情况,采用封锁机制来进行并发控制,可避各种不一致情况。一级封锁协议可以避免丢失修改,二级封锁协议可以避免丢失修改和读”脏”数据,三级封锁协议可以避免丢失修改、不能重复读和读”脏”数据。
7事务的COMMIT语句和ROLLBACK语句的功能是什么?答:COMMIT语句表示事务执行成功地接结束(提交),此时告诉系统,DB要进入一个新的正确状态,该事务对DB的所有更新都已交付实施(写入磁盘)。ROLLBACK语句表示事务执行不成功地结束(应该“回退”)此时告诉系统,已发生错误,DB可能处在不正确的状态,该事务对DB的所有更新必须被撤消,DB应恢复该事务到初始状态。
8活锁和死锁:活锁:在多个事务并发执行的过程中,可能会存在某个总有机会获得锁的事务却永远也没得到锁的现象,可以通过“先来先服务”的策略预防活锁的发生。死锁:在多个事务并发执行过程中,多个并发事务处于相互等待的状态的现象。
9死锁的预防:数据库当中预防死锁的方法有两种。第一种方法是要求每个事务必须一次性地将所有要使用的数据加锁或必须按照一个预定的加锁顺序对使用到的数据加锁。第二种方法是每当处于等待状态的事务由可能导致死锁时,就不再等待下去,强行回滚该事务。
10完整性约束的定义:关系数据库提供的三类完整性约束:实体完整性、参照完整性和用户自定义完整性。实体完整性:实体完整性约束是指任何基本表(关系)的主键(主关键字)中的每一个属性列都不能取空值,即基本表中的每一个元组在主键上的分量都有值。参照完整性:根据参照完整性原则,用户只要定义了某一个关系(基本表)的外键(外部关键字),系统就会控制外键的值要么为空,要么等于被参照关系中某一个主键的值,这就是系统对外键的一种约束。用户定义完整性:用户定义完整性约束条件的作用对象可以是属性列、元组或关系(基本表),其中对属性列的约束可以规定属性列的数据类型、取值范围等;对元组的约束可以规定元组中各属性间的相互关系;而对关系的约束则可以规定各元组间或关系间的相互联系。
11故障恢复的原则:对数据库的影响有两种可能性:一是数据库本身被破坏;二是数据库没有被破坏,但数据可能不正确,这是因为事务的运行被非正常终止造成的。12恢复算法一般由两部分组成:在正常事务处理时采取措施,保证有足够的冗余信息可用于故障恢复。故障发生后采取措施,将数据库内容恢复到某个保证数据库一致性、事务原子性及持久性的状态。
13数据库在运行过程中可能产生的故障有哪几类? 答:1)事务故障:事务在运行过程中由于种种原因,如输入数据的错误,运算溢出,违反了某些完整性限制,某些应用程序的错误,以及并行事务发生死锁等,使事务未能运行到正常中指点之前就被撤消了,这种情况称为“事务故障”。2)系统故障:系统故障是指系统在运行过程中,由于某些原因,如OS和DBMS代码错误,操作员操作事物。特定类型的硬件错误(CPU故障),突然停电等造成系统停止运行,致使事物在执行过程中以非控方式中指。这时。内存中的信息丢失,而存储在外存储上的数据未受影响,这种情况称为“系统故障”。3)介质故障:系统在运行过程中,由于某种硬件故障,如磁盘损坏,磁头碰撞,或由于OS的某种潜在的错误。瞬间强磁场干扰,使存储在外存的数据部分损失或全部损失,称之为“介质故障”。14故障恢复技术:数据转储、日志文件、检查点方法、数据库镜像
15关系的完整性约束:域完整性约束:关系中属性的值应是域中的值,并由语义决定其能否为空值。实体完整性约束:关系中的主键不能为空值。参照完整性约束:关系的外键必须是另一个关系主键的有效值或者是空值。用户自定义完整性约束:正对某一具体数据的约束条件,由应用环境决定。
16故障恢复原理是冗余可分为副本和日志。恢复算法:在正常事物处理时采取措施,保证有足够的冗余信息可用于故障恢复、故障发生后采取措施,将数据库内容恢复到某个保证数据库一致性、事物原子性及持久性的状态。
17事务故障的恢复:事务故障是指事务在运行至正常终止点前被中止,这时恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的,系统的恢复步骤是:⑴ 反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。⑵ 对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。这样,如果记录中是插入操作,则相当于做删除操作(因此时“更新前的值”为空)。若记录中是删除操作,则做插入操作,若是修改操作,则相当于用修改前值代替修改后值。⑶ 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。⑷ 如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。
18系统故障的恢复:系统故障造成数据库不一致状态的原因有两个,一是未完成事务对数据库的更新可能已写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。因此,恢复操作就是要撤销故障发生时未完成的事务,重做已完成的事务。系统恢复步骤如下:正向扫描日志文件,即从头扫描日志文件,找出在故障发证前已经提交的事务,将其事务标示记入重做队列,同时找出故障发证时尚未完成的事务,将其事务标识计入撤销队列、对撤销队列中的各个事务进行撤销处理、对重做队列中的各个事务进行重做扫描
19日志文件作用及建立原因:答:日志文件是用来记录事务对数据库的更新操作的文件。目的是进行事物故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。
20三级模式:三级模式结构:数据库的三级模式由外模式、概念模式和内模式三级模式构成。概念模式:简称模式,又称数据库模式、逻辑模式。一个数据库只有一个概念模式,它是数据库系统三级模式结构的中间层,概念模式是数据库中全体数据的逻辑描述,而不是数据库本身,它是装配数据的一个结构框架。外模式:外模式简称子模式,又称用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是用户与数据库系统之间的接口。一个数据库可以有多个外模式,设置外模式的优点如下:方便用户使用,简化用户接口、保证数据的独立性、有利于数据共享、有利于数据安全和保密。内模式:内模式也称存储模式。是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示形式。一个数据库只能有一个内模式。21两级映像:外模式/概念模式映像:外模式/概念模式映像定义了各个外模式与概念模式间的映像关系。概念模式/内模式映像:概念模式/内模式映像定义了数据库全局逻辑结构与存储结构之间的对应关系。
22两极结构的独立性:物理数据独立性:如果数据库内模式要修改,即数据库的物理结构有所变化,那么只要对概念模式/内模式做相应的修改即可。概念模式/内模式提供了数据的物理数据独立性。逻辑数据独立性:如果概念模式要修改,例如增加记录类型或增加数据项,那么只要对外模式/概念模式映像做相应的修改,就可以使外模式和应用程序尽可能保持不变。这样,就称数据库打到了逻辑数据独立性。外模式/概念模式映像提供了数据的逻辑独立性。
23数据库技术的发展阶段:工管理阶段(数据部保存、没有对数据进行管理的软件系统、没有文件的概念、一组数据对应于一个程序,数据时面向应用的)、文件系统阶段(数据需要长期保存在外存上供反复使用、程序和数据之间有了一定得独立性、文件的形式已经多样化、数据的存取基本以记录为单位)、数据库系统阶段(数据结构化、数据共享、减少数据冗余、具有较高的数据独立性、方便用户接口、统一的数据管理与控制功能)
某校与教学管理相关的3个关系模式的结构如下: 学生(学号、姓名、年龄、性别、所在系)课程(课程号、课程名、开课系、任课教师)学习(学号、课程号、成绩)试进行如下操作:
1.创建“教学”数据库,在“教学”数据库中创建“学生”、“课程”、“学习”这3个基本表,并说明主键和外键。2.使用SQL的查询语句表达下列查询(1)查询刘老师所授课程的课程号和课程名(2)查询年龄大于23岁的男学生的学号和姓名
(3)查询至少修读刘老师所授课程中一门课程的女学生和姓名(4)查询王乐同学不学的课程的课程号(5)查询至少修读两门课程的学生学号
(6)查询全部学生都修读的课程的课程号与课程名(7)查询修读课程中包含刘老师所授课程的学生学号
3)SELECT 姓名 FROM 学生 WHERE 性别=‘女’ AND EXISTS(SELECT * FROM 学习WHERE 学习.学号=学生.学号 AND 课程号 IN(SELECT 课程号 FROM 课程 WHERE 任课教师 LIKE ‘刘%’))4)SELECT 课程号 FROM 课程 WHERE NOT EXISTS(SELECT * FROM 学习WHERE 学习.课程号=课程.课程号 AND 学号 IN(SELECT 学号 FROM 学生 WHERE 姓名=‘王乐’))5)SELECT 学号 FROM 学生 GROUP BY 学号 HAVING COUNT(*)>=2 6)SELECT 课程号,课程名 FROM 课程 WHERE NOT EXISTS(SELECT * FROM 学生 WHERE NOT EXISTS(SELECT * 学号 FROM 学习WHERE 学习.课程号=课程.课程号 AND 学习.学号=学生.学号))7)SELECT 学号 FROM 学习WHERE EXISTS(SELECT * FROM 学习WHERE 课程号 IN(SELECT * FROM 课程号 FROM 课程 WHERE 任课教师 LIKE ‘刘%’))试用SQL查询语句表达下列对教学数据库中3个基本表“学生”、“课程”、“学习”的查询(1)统计有学生修读的课程门数(2)求修读C4课程的学生的平均年龄
(3)求刘老师所授课程的每门课程的学生平均成绩
(4)统计每门课程学生的修读人数(超过10人的课程才统计),要求输出课程号和修读人数,查询结果按人数降序排列,若人数相同,按课程号升序排列(5)查询学号比王乐同学大,而年龄比他小的学生姓名(6)查询姓名以王打头的所有学生的姓名和年龄(7)在“学习”表中检索成绩为空值的学生学号和课程号(8)求年龄大于女同学平均年龄的男学生姓名和年龄(9)求年龄大于所有女同学年龄的男学生姓名和年龄 SELECT COUNT(DISTINCT 课程号)FROM 学习
SELECT AVG(年龄)FROM 学生 WHERE EXISTS(SELECT * FROM 学习WHERE学生.学号=学习.学号 AND 课程号=’C4’)SELECT AVG(成绩)FROM 学习WHERE GROUP BY 课程号 HAVING 课程号 IN(SELECT 课程号 FROM 课程 WHERE 任课教师 LIKE ‘刘%’)SELECT 课程号,COUNT(*)AS C_COUNT FROM 学习HAVING C_COUNT>10 ORDER BY C_COUNT DESC,课程号
SELECT 姓名 FROM 学生 WHERE 学号>ALL(SELECT 学号FROM 学生WHERE 姓名=’王乐’)AND 年龄
(2)在基本表“学生”中查询每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把查询到的值送往另一个已存在的基本表“结果”(学号,姓名,性别)中(3)在基本表“学习”中删除尚无成绩的元组
(4)把王乐同学在“学习”基本表中的课程和成绩全部删除(5)把修读Java课程不及格的成绩全改为空值(6)把低于总平均成绩的女同学成绩提高5%(7)在基本表“学习”中修改C4课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)INSERT INTO 学生 VALUES(‘S009’,’吴’,18)INSERT INTO 结果(学号,姓名,性别)SELECT学号,姓名,性别 FROM 学生 WHERE NOT EXISTS(SELECT * FROM 学习WHERE 学生.学号=学习.学号 AND 成绩<80)DELETE FROM 学习WHERE 成绩 IS NULL DELETE FROM 学习WHERE 学号 IN(SELECT 学号 FROM 学生 WHERE 姓名=’王乐’)UPDATE 学习SET成绩=NULL WHERE 成绩<60 AND 课程号 IN(SELECT 课程号 FROM 课程 WHERE 课程名=’JAVA’)UPDATE 学习SET 成绩=成绩*1.05 WHERE 成绩<(SELECT AVG(成绩)FROM 学生)UPDATE 学习SET 成绩=成绩*1.04 WHERE 成绩>75 AND 课程号=’C4’ UPDATE 学习SET 成绩=成绩*1.05 WHERE 成绩<=75 AND 课程号=’C4’