数据库原理学习心得

2022-08-25

第一篇:数据库原理学习心得

数据库原理-教案

第一章 绪论

内容概述

阐述数据库的基本概念,介绍数据管理技术的进展情况、数据库技术产生和发展的背景,数据模型的基本概念、组成要素和主要的数据模型,概念模型的基本概念及ER方法,数据库系统的3级模式结构以及数据库系统的组成。

本章目标

本章讲解的数据库基本概念和基本知识是学习后续各个章节的基础。学习本章的目的在于了解基本知识,掌握基本概念,为以后的学习打好扎实的基础。

重点和难点

重点:牢固掌握概念模型的基本概念及其主要建模方法ER方法;掌握关系数据模型的相关概念、数据库系统三级模式和两层映像的体系结构、数据库系统的逻辑独立性和物理独立性等;对于如何通过ER方法描述现实世界的概念模型要做到能够举一反三的程度。

难点:本章的难点是需要掌握数据库领域大量的基本概念。有些概念一开始接触会感到比较抽象,但不要紧,随着学习的逐渐推进,在后续章节中,这些抽象的概念会逐渐变得清晰具体起来。此外,数据模型及数据库系统的体系结构也是本章的难点。

第二章 关系数据库

内容概述

系统地讲解关系数据库的重要概念,并着重对关系模型进行讲解。关系模型包括关系数据结构、关系操作集合、以及关系完整性约束三个组成部分。讲解关系代数、元组关系演算和域关系演算。从具体到抽象,先讲解实际的语言ALPHA(元组关系演算语言)和QBE(域关系演算语言),然后讲解抽象的元组关系演算。 本章目标

掌握关系模型的三个组成部分及各部分所包括的主要内容;牢固掌握关系数据结构及其定义;关系的三类完整性约束的概念。为学习后面关系数据库系统打好基础。

重点和难点

重点:掌握关系数据结构及其定义;关系的三类完整性约束的概念。需要举一反三的是:关系代数(包括抽象的语言及具体的语言);关系代数中的各种运算(包括并、交、差、选择、投影、连接、除、及广义笛卡尔积等)、元组关系演算语言ALPHA及域关系演算语言QBE等,能够使用这些语言完成各种数据操纵。

难点:由于关系代数较为抽象,因此在学习的过程中一定要结合具体的实例进行学习。同时,要注意把握由具体语言到抽象语言的原则,即通过对具体语言如ALPHA和QBE的学习过渡到对抽象的关系演算的把握。

实验内容

实验1 学习安装某一个数据库管理系统,通过对某个商用数据库管理系统的安装使用,初步了解DBMS的工作环境和系统构架,熟悉对DBMS的安装,为后面的实验做准备。

第三章 关系数据库标准语言SQL

内容概述

详细介绍关系数据库语言SQL。SQL是关系数据库的标准语言。它内容十分丰富,功能非常强大。因为关系数据库系统的主要功能是通过SQL来实现的,因此讲解SQL的同时要进一步讲述关系数据库的基本概念。

本章目标 牢固掌握SQL,达到举一反三的掌握SQL的功能。同时通过实践,体会面向过程的语言和SQL的区别和优点。体会关系数据库系统为数据库应用系统的开发提供良好环境,减轻用户负担,提高用户生产率的原因。

重点和难点

重点:关系模型和关系数据库是《数据库系统概论》课程的重点,第3章又是重点中的重点。要熟练正确的使用SQL完成对数据库的查询、插入、删除、更新操作。在使用具体的SQL时,能有意识地和关系代数、关系演算等语言进行比较,了解他们各自的特点。

难点:用SQL语言正确完成复杂查询,掌握SQL语言强大的查询功能。因此在学习过程中一定要多练习,要在安装好的数据库系统上进行实际操作,检查你的答案,你查询的结果是否正确。只有通过大量练习才能真正达到举一反三的熟练程度。

实验内容

实验2 在安装好的数据库系统下创建数据库、创建表、创建索引;使用SQL对数据库进行各类查询操作(单表查询,连接查询,嵌套查询,集合查询)和更新操作(插入数据,修改数据,删除数据)。练习数据定义操作,包括基本表的创建、修改及删除;索引的创建和删除;视图的创建和删除。对视图的查询,更新(注意更新的条件)。完成书后作业的SQL练习

第四章 数据库安全性

内容概述

介绍计算机以及信息安全技术标准的进展。详细讲解数据库安全性问题和实现技术。RDBMS实现数据库系统安全性的技术和方法有多种,本章讲解最重要的存取控制技术、视图技术和审计技术。讲解存取控制机制中用户权限的授权与回收,合法权限检查。数据库角色的概念和定义等。 本章目标

掌握什么是数据库的安全性问题,牢固掌握数据库管理系统实现数据库安全性控制的常用方法和技术。

重点和难点

重点:使用SQL中的GRANT 语句和 REVOKE 语句来实现数据库的实现自主存取控制功能。使用SQL中CREATE ROLE语句创建角色,用GRANT 语句给角色授权。掌握视图机制在数据库安全保护中的作用。

难点:强制存取控制(MAC)机制中确定主体能否存取客体的存取规则,同学们要理解并掌握存取规则为什么要这样规定。

实验内容

实验3 在安装好的数据库系统下对已经建立的数据库创建用户、角色、视图;使用SQL对数据进行安全性控制,包括:授权和权力回收。操作完成后看看已授权的用户是否真正具有授予的数据操作的权力了;权力收回操作之后的用户是否确实丧失了收回的数据操作的权力。本实验可以分小组完成。例如,用户A登录、建表、建视图等,授权一些数据操作权限用户B,然后用户B登录,检查是否具有授予的数据操作权限。也可以一个人建2个用户来完成。

第五章 数据库完整性

内容概述

详细讲解数据库的完整性概念。包括,什么是数据库的完整性,数据库的完整性概念与数据库的安全性概念的区别和联系,RDBMS的数据库完整性实现机制,包括实体完整性、参照完整性和用户自己定义的完整性约束的定义机制、完整性检查机制和违背完整性约束条件时RDBMS采取的预防措施。触发器的概念和在数据库完整性检查中的应用。 本章目标

掌握什么是数据库的完整性,掌握用SQL语言定义关系模式的完整性约束条件。

重点和难点

重点:牢固掌握DBMS完整性控制机制的三个方面,即完整性约束条件的定义、完整性约束条件的检查和违约反应。需要举一反三的:用SQL语言定义关系模式的完整性约束条件。包括定义每个模式的主码;定义参照完整性;定义与应用有关的完整性。

难点:RDBMS如何实现完整性的策略,即当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,RDBMS如何进行处理,以确保数据的正确与有效。其中比较复杂的是参照完整性的实现机制。

实验内容

实验4 在安装好的数据库系统下对已经建立的数据库使用SQL对数据进行完整性控制(三类完整性、CHECK短语、CONSTRAIN子句、触发器)。进行违约操作,用实验证实,当操作违反了完整性约束条件时,系统是如何进行违约处理的

第六章 关系数据理论

内容概述

详细讲解关系数据理论,主要是关系数据库规范化理论。包括关系数据库逻辑设计可能出现的问题,数据依赖的基本概念(包括,函数依赖、平凡函数依赖、非平凡的函数依赖、部分函数依赖、完全函数依赖、传递函数依赖的概念;码、候选码、外码的概念;多值依赖的概念),范式的概念、1NF、2NF、3NF、BCNF、4NF的概念和判定方法。数据依赖的Armstrong公理系统。本章内容分为基本要求部分(《概论》6.1-6.3)和高级部分(《概论》6.4)。前者是计算机大学本科学生应该掌握的内容。后者是研究生应该学习掌握的内容。 本章目标

关系数据理论既是关系数据库的重要理论基础也是数据库逻辑设计的理论指南和有力工具。要掌握规范化理论和优化数据库模式设计的方法。

重点和难点

重点:了解什么是一个"不好"的数据库模式。什么是模式的插入异常和删除异常。规范化理论的重要意义。牢固掌握数据依赖的基本概念,范式的概念,从1NF到4NF的定义,规范化的含义和作用。需要举一反三的:四个范式的理解与应用,各个级别范式中存在的问题(插入异常、删除异常、数据冗余)和解决方法。

难点:能够根据应用语义,完整地写出关系模式的数据依赖集合,并能根据数据依赖分析某一个关系模式属于第几范式。各个级别范式的关系及其证明。

本章内容的理论性较强。要通过具体例子和习题练习理解和掌握理论知识

第七章 数据库设计

内容概述

讲解数据库设计方法和技术。数据库设计的特点,数据库设计的基本步骤,数据库设计过程中数据字典的内容,数据库设计各个阶段的设计目标、具体设计内容、设计描述、设计方法等。本章内容的实践性较强,教师可以少讲,让学生多读书并进行实践。

本章目标

了解数据库设计的重要性和数据库设计在信息系统开发和建设中的核心地位。掌握数据库设计方法和步骤,使学生具有设计数据库模式以及开发数据库应用系统的基本能力,能在实际工作中运用这些知识、技术和方法,设计符合应用需求的数据库及其应用系统。 重点和难点

重点:掌握数据库设计步骤和数据库设计过程中的各级模式设计方法。特别是数据库概念结构的设计和逻辑结构的设计,这是数据库设计过程中最重要的两个环节。牢固掌握用E-R图来表示概念模型的方法,掌握E-R图的设计,E-R图向关系模型的转换。

难点: 技术上的难点是E-R图的设计和数据模型的优化,包括对现实世界进行抽象的能力,提取实体、属性、实体型之间的联系,正确划分实体与属性的能力。如何把第6章关系数据理论与本章结合,用关系数据理论指导数据库的逻辑设计。真正的难点是理论与实际的结合。同学们一般缺乏实际经验,缺乏对实际问题解决的能力。特别是缺乏应用领域的知识。而数据库设计需要设计人员对应用环境、专业业务有具体深入的了解,这样才能设计出符合具体领域要求的数据库及其应用系统。要在完成本章习题的基础上认真完成大作业。体会这些要点,从而真正掌握本章讲解的知识、方法和技术。

课程大作业 《数据库设计与应用开发》

在某个RDBMS产品上,选择合适的应用系统开发工具为某个部门或单位开发一个数据库应用系统。通过实践,掌握本章介绍的数据库设计方法,同时培养团队合作精神。要求5~6位同学组成一个开发小组,每位同学承担不同角色(例如:项目管理员、DBA、系统分析员、系统设计员、系统开发员、系统测试员)。具体要求:

* 给出数据库设计各个阶段的详细设计报告;

* 写出系统的主要功能和使用说明;

* 提交运行的系统;

* 写出收获和体会,包括已解决和尚未解决的问题,进一步完善的设想与建议;

每个小组进行60分钟的报告和答辩,讲解设计方案,演示系统运行,汇报分工与合作情况

第八章 数据库编程 内容概述

在数据库应用系统的开发中常常使用编程方法对数据库进行操纵。本章讲解这些编程技术涉及的概念和使用的方法。主要包括嵌入式SQL、游标的概念;SQL的过程化扩展PL/SQL和存储过程;使用ODBC设计开发数据库应用程序的方法。

因为JDBC编程、OLEDB编程与ODBC编程的思路基本相同,限于篇幅本章就不讲解JDBC和OLEDB编程,学生可以通过上机实验了解这些技术。本章内容的实践性较强,教师可以少讲,让学生多读书并进行实践。

本章目标

掌握开发数据库应用系统的各种编程方法,具有正确选择不同的方法和技术开发应用程序的能力。

重点和难点

重点:了解SQL编程技术可以有效克服SQL实现复杂应用方面的不足,提高应用系统和RDBMS间的互操作性。掌握嵌入SQL中游标的概念和使用方法;掌握PL/SQL和存储过程的基本概念,基本结构,语句语法和用法。了解使用ODBC开发应用系统的体系结构,掌握ODBC API和ODBC的应用程序的工作流程。

难点:理论联系实际,能够在实际安装的RDBMS上通过编程的方式开发应用程序,完成对数据库的各种操作。能够使用ODBC来进行数据库应用程序的设计,使设计的应用系统可移植性好,并且能同时访问不同的数据库,共享数据资源。

实验内容

《数据库系统概论》第4版给出了4个实验,教师可以根据情况选择其中部分实验让学生完成。具体实验要求请参见教科书。 实验

5通过嵌入式SQL访问数据库 实验6

使用PL/SQL编写存储过程访问数据库 实验7

通过ODBC访问数据库

实验8

通过JDBC访问数据库(注:因为JDBC编程与ODBC编程的思路基本相同,限于篇幅本章没有讲解JDBC,同学可以自学,也可以参考中国人民大学 数据库系统概论精品课程教学网站:http:/// 中的课程实验)。

第九章 关系查询处理和查询优化

内容概述

通过实例讲解关系数据库查询优化的重要性和可能性。讲解RDBMS的查询处理步骤,即查询分析、查询检查、查询优化和查询执行;查询优化的基本概念,查询优化包括代数优化和物理优化;代数优化是指关系代数表达式的优化;物理优化则是指存取路径和底层操作算法的选择,所以先讲解实现查询操作的主要算法,主要是选择操作和连接操作的主要算法思想,然后讲解关系代数表达式等价变换规则,关系代数表达式的优化,物理优化方法(基于启发式规则的存取路径选择优化,操作算法的执行代价估算方法,基于代价的优化方法)。

本章目标

本章并不要求学生掌握RDBMS查询处理和查询优化的内部实现技术,因此没有详细讲解技术细节。

本章的目的是希望学生了解RDBMS查询处理的基本步骤,查询优化的概念、基本方法和技术,为数据库应用开发中利用查询优化技术提高查询效率和系统性能打下基础。

重点和难点

重点:了解关系数据库查询优化的重要性。掌握查询处理各个步骤的主要功能。能够把SQL语句转换成查询树,对查询树进行代数优化,转换成优化的查询树。掌握物理优化的基本方法。 难点:能运用本章学习的查询优化知识,对于比较复杂的查询,尤其是涉及连接和嵌套的查询,写出适合RDBMS自动优化的SQL语句。对于RDBMS不能优化的查询需要重写查询语句,进行手工调整以优化性能。不要把优化的任务全部放在RDBMS上。

实验内容

实验9 查询优化 通过本章实验,了解你安装使用的RDBMS的查询优化方法和查询计划表示,能够利用它分析查询语句的实际执行方案和查询代价,进而通过建立索引或者修改SQL语句来降低查询代价,达到优化系统性能的目标。

具体实验内容:

1 对单表查询

例如以下的查询(可以自己给出查询语句) select * from student

where age>20 ; 2. 连接查询,普通的两表连接查询或多表连接查询

3. 嵌套查询,自己写几个带有子查询的例子,主要考虑带有IN和EXISTS谓词的子查询,包括相关子查询和不相关子查询。也可以使用《数据库系统概论》书上列举的例子。

对以上各种查询,通过建立索引或者删除索引(单表查询语句)、修改连接顺序(连接查询语句)、重写SQL语句即查询重写(嵌套查询);比较不同查询计划执行的性能差异,达到降低查询代价,优化性能的目标。

第十章 数据库恢复技术

内容概述

事务处理技术主要包括数据库恢复技术和并发控制技术。因为事务是数据库恢复和并发控制的基本单位,所以首先讲解事务的基本概念和事务的ACID性质。

本章讲解数据库恢复技术。包括数据库运行中可能发生的故障类型,数据库恢复中最经常使用的技术—数据转储和登录日志文件。讲解日志文件的内容及作用,登记日志文件所要遵循的原则,针对事务故障、系统故障和介质故障等不同故障的恢复策略和恢复方法。具有检查点的恢复技术。数据库镜像功能。

本章目标

掌握事务的基本概念和事务的ACID性质。了解数据库恢复技术的重要性,针对不同的故障类型,掌握恢复数据库的策略和方法。

重点和难点

重点:牢固掌握事务的基本概念和事务的ACID性质。要掌握数据库故障恢复的策略和方法。数据库恢复的基本原理是数据备份,它貌似简单,实际却很复杂。数据库的事务管理策略(不仅有数据库恢复策略,还有并发控制策略)和DBMS缓冲区管理策略、事务一致性级别密切相关,同学们要在学习完这些知识后把这些问题联系起来,提升对这些技术的理解和掌握。

难点:掌握日志文件的使用,系统故障、介质故障的恢复方法。对于刚刚学习数据库的学生来讲并不体会数据库故障恢复的复杂性和重要性。在实际工作中,则必须正确了解所用的DBMS产品提供的恢复技术和恢复方法,并且能够根据这些机制正确制定系统的恢复策略,以保证数据库系统7*24小时正确运行。保证数据库系统在遇到故障时能及时恢复正常运行,提高抗故障抗灾难的能力。

实验内容

在安装好的数据库系统下对已经建立的数据库人为地制造事务内部故障和系统故障,检查系统是否进行了恢复。

第十一章 并发控制

内容概述 数据库管理系统必须提供并发控制机制来协调并发用户的并发操作以保证并发事务的隔离性和一致性,保证数据库的一致性。本章讨论数据库并发控制的基本概念和实现技术。包括封锁技术、封锁协议、活锁和死锁的概念、并发调度的可串行性、冲突可串行化调度、两段锁协议、封锁的粒度、意向锁。

本章目标

了解的数据库并发控制技术的必要性和重要性。牢固掌握并发控制的基本概念。

重点和难点

重点:掌握并发操作产生的数据不一致性(丢失修改、不可重复读、读“脏数据”)的确切含义。封锁协议与数据一致性的关系;并发调度的可串行性概念。

难点:两段锁协议与串行性的关系、与死锁的关系。具有意向锁的多粒度封锁方法的封锁过程。

本章内容有一定的深度和难度,可以通过对实例的学习和习题的练习来正确理解和掌握基本概念

第二篇:数据库原理简答题总结

第一章 数据库概论

1.人工管理阶段数据管理的特点:

(1) 数据不保存在机器中

(2) 无专用的软件对数据进行管理

(3) 只有程序的概念,没有文件的概念

(4) 数据面向程序

2.文件系统阶段数据管理的特点:

(1) 数据可长期保存在外存的磁盘上

(2) 数据的逻辑结构和物理结构有了区别

(3) 文件组织已呈多样化。有索引、链接和散列文件

(4) 数据不再属于某个特定的程序,可重复使用。

3.文件系统显露出三个缺陷:

(1) 数据冗余性

(2) 数据不一致性

(3) 数据联系弱

4.数据库阶段的管理方式具有以下特点:

(1) 采用复杂的数据模型表示数据结构

(2) 有较高的数据独立性

(3) 数据库系统为用户提供方便的用户接口

(4) 系统提供四方面的数据控制功能

(5) 对数据的操作既可以以记录为单位,又可以以数据项为单位

5.数据描述三个领域之间的关系:

从事物的特性到计算机中的数据表示,经历了三个领域:现实世界、信息世界、机器世界。

(1) 现实世界:存在于人们头脑之外的客观世界,称为现实世界。

(2) 信息世界:是现实世界在人们头脑中的反映。

(3) 机器世界:信息世界的信息在机器世界中以数据形式存储。

信息世界中数据描述的术语有:实体、实体集、属性、实体标识符

机器世界中数据描述的术语有:字段、记录、文件、关键码

它们的对应关系是:

在数据库中每个概念都有类型和值之区分,类型是概念的内涵,值是概念的外延

6.数据描述的两种形式:

数据描述有物理描述和逻辑描述两种形式。

物理数据描述指数据在存储设备上的存储方式,物理数据是实际存放在存储设备上的数据。

逻辑数据描述指程序员或用户用以操作的数据形式,是抽象的概念化数据。

数据管理软件的功能之一,就是要把逻辑数据转换成物理数据,以及把物理数据转换成逻辑数据。

7.物理存储介质层次:

8.数据模型的种类:

目前广泛使用的数据模型可分为两种类型:概念数据模型、结构数据模型

概念数据模型:是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构; 它是现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具; 这一类中著名的模型是“实体联系模型”,简称“ER”模型。

结构数据模型:是直接面向数据库的逻辑结构;

它是现实世界的第二层抽象,涉及到计算机系统和数据库管理系统; 这一类中的例子有层次、网状、关系、面向对象等模型。

9.结构数据模型的三个组成部分:

数据结构、数据操作、数据完整性约束是结构数据模型的三个组成部分。

数据结构:是指对实体类型和实体间联系的表达和实现

数据操作:是指对数据库的检索和更新(插、删、改)两类操作的实现

数据完整性约束:给出数据及其联系应具有的制约和依赖规则。

10.层次模型的特点:

用树型结构表示实体类型及实体间联系的数据模型称为层次模型。

层次模型的特点是:记录之间的联系通过指针实现,查询效率较高。

缺点是:(1)只能表示1:N联系

(2)由于树型结构层次顺序的严格复杂,引起数据的查询和更新操作也很复杂,因此编写应用程序也很复杂。

11.网状模型的特点:

用有向图结构表示实体类型及实体间联系的数据模型称为网状模型。

网状模型的特点是:记录之间联系通过指针实现,M:N联系也容易实现,查询效率较高。

缺点是:编写应用程序比较复杂,程序员必须熟悉数据库的逻辑结构。

12.关系模型的特点:

关系模型的主要特征是用二维表格结构表达实体集,用外键表示实体间联系。

特点是:关系模型与层次、网状的最大差别是用关键码而不是用指针导航数据,表格简单,用户易懂,编程时不涉及存储结构、访问技术等细节。

13.数据库体系结构中的三级结构、两级映象:

数据库的体系结构分为三级:内部级、概念级、外部级。

外部级:最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。

概念级:涉及到所有用户的数据定义,是全局的数据视图。全局数据视图的描述称为“概念模式”。

内部级:最接于物理存储设备,涉及到实际数据存储的结构。物理存储数据视图的描述称为“内模式”。

为实现这三个抽象级别的联系和转换,DBMS在级级结构之间提供两个层次的映象:外模式/模式映象,模式/内模式映象。

14.二级数据独立性:

数据独立性是指:应用程序和数据之间相互独立,不受影响。分为物理独立性和逻辑独立性。

(1) 物理数据独立性:如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映象也要进行相应的修改,使概念模式尽可能保持不变。也就是对内模式的修改尽量不影响概念模式。

(2) 逻辑数据独立性:如果数据库的概念模式要进行修改,如增加记录类型或增加数据项,那么外模式/模式映象也要进行相应的修改,使外模式尽可能保持不变。也就是概念模式的修改尽量不影响外模式和应用程序。

15.DBMS的主要功能:

(1) 数据库的定义功能:DBMS提供数据定义语言(DDL)定义数据库的三级结构及其相互之间的映象、完整性、安全控制等约束。

(2) 数据库的操纵功能:DBMS提供数据操纵语言(DML)实现对数据库中数据的操作。

(3) 数据库的保护功能:DBMS对数据库的保护主要通过数据库的恢复、数据库的并发控制、数据库的完整性控制、数据库的安全性控制等四个方面实现。

2 (4) 数据库的存储管理:DBMS的存储管理子系统提供了数据库中数据和应用程序的一个界面,其职责是把各种DML语句转换成低层的文件系统命令,起到数据的存储、检索和更新的作用。

(5) 数据库的维护功能:DBMS中实现数据库维护功能的实用程序主要有数据装载程序、备份程序、文件重组织程序、性能监控程序。

(6) 数据字典(DD):数据库系统中存放三级结构定义的数据库称为数据字典,对数据库的操作都要通过访问DD才能实现。

16.DBMS的组成:

DBMS是由两大部分组成:查询处理器和存储管理器。

(1) 查询处理器有四个主要成分:DDL编译器、DML编译器、嵌入型DML的预编译器、查询运行核心程序。

(2) 存储管理器有四个主要成分:授权和完整性管理器、事务管理器、文件管理器、缓冲区管理器。

17.DBS的组成:

DBS是一个实际可运行的,按照数据库方法存储、维护和向应用系统提供数据支持的系统,它是数据库、硬件、软件、数据库管理员(DBA)的集合体。

(1) 数据库(DB):是与一个特定组织各项应用有关的全部数据的集合,由应用数据的集合(物理数据库)、关于各级数据结构的描述(描述数据库)两部分组成。

(2) 硬件:包括中央处理机、内存、输入输出设备、数据通道等硬件设备。

(3) 软件:包括DBMS、OS、各种宿主语言和应用开发支持软件等程序。

(4) DBA:DBA是控制数据整体结构的人,负责DBS的正常运行。

18.DBS的全局结构:

(1) 数据库用户。可分为四类:DBA、专业用户、应用程序员、终端用户

(2) DBMS的查询处理器。包括四部分:DML编译器、嵌入型DML的预编译器、DLL编译器、查询运行核心程序。

(3) DBMS的存储管理器。包括四部分:授权和完整性管理器、事务管理器、文件管理器、缓冲区管理器。

(4) 磁盘存储器中的数据结构。包括四种形式:数据文件、数据字典、索引文件、统计数据组织。

第二章 关系模型

19. 超键、主键、候选键的定义:

超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键。

候选键(candidate key):不含有多余属性的超键称为候选键。(候选键可以有多个)

主键(primary key):用户选作元组标识的一个候选键称为主键。(主键是候选键中一个)

20. 关系模式、关系子模式和存储模式:

关系模型基本上遵循数据库的三级体系结构。概念模式是关系模式的集合,外模式是关系子模式的集合,内模式是存储模式的集合。

(1) 关系模式:关系模式实际上是记录类型。它的定义包括:模式名,属性名,值域名以及模式的主键。

(2) 关系子模式:是用户所用到的那部分数据的描述。除了指出用户的数据外,还应指出模式与子模式之间的对应性。

(3) 存储模式:关系存储时的基本组织方式是文件,元组是文件中的记录。存储一个关系可以用散列方法或索引方法实现。如果关系中元组数目较少,也可以用堆文件方式实现。

21. 关系模型的三类完整性规则:

(1) 实体完整性规则:这条规则要求关系中元组在组成主键的属性上不能有空值。

(2) 参照完整性规则:这条规则要求“不引用不存在的实体”。

(3) 用户定义的完整性规则:它反映某一具体应用涉及的数据必须满足的语义要求。

22. 参照完整性规则的形式定义:

如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空,或者等于R1关系中某个主键值。

此规则使用时还要注意三点:

(1) 外键和相应的主键可以不同名,只要定义在相同值域上即可。

(2) R1和R2也可以是同一个关系模式,表示了属性之间的联系。

(3) 外键值是否允许空,应视具体问题而定。

上述形式定义中,关系模式R1称为“参照关系”模式,R2称为“依赖关系”模式。

3 23. 关系模型的形式定义:

24. 关系查询语言根据其理论基础的不同分为哪两类:

关系代数语言:查询操作是以集合操作为基础运算的DML语言。(非过程性弱)

关系演算语言:查询操作是以谓词演算为基础运算的DML语言。(非过程性强)

25. 关系代数中的操作有哪些?

关系代数中的操作可分为两类:

传统的集合操作:并、差、交、笛卡尔积

扩充的集合操作:对关系进行垂直分割(投影)、水平分割(选择),关系的结合(联接、自然联接),笛卡尔积的逆运算(除法)等。

其中五个基本操作为:并、差、笛卡尔积、投影、选择。

四个常用组合操作为:交、连接、自然连接、除法

两种扩充的关系代数操作为:外连接和外部并

26. 关系演算有哪两种:

关系演算可分为元组关系演算和域关系演算。前者以元组为变量,后者以属性(域)为变量。

27. 什么是约束变量、自由变量:

28. 什么是安全运算:

在数据库技术中,不产生无限关系和无穷验证的运算称为安全运算,相应的表达式称为安全表达式,所采取的措施称为安全约束。

在关系演算中约定,运算只对表达式中公式在涉及到的关系的值范围内操作。这样就不会产生无限关系和无穷验证问题,关系演算是安全的。

29. 为什么要对关系代数表达式进行优化:

查询优化是由DBMS对关系代数表达式进行优化组合,以提高DBMS的系统效率。要对关系代数进行优化的原因是:由于关系代数表达式是由关系代数操作组合而成。在关系代数操作中,执行笛卡尔积和联接运算最费时间,并且在执行过程中将产生大量的中间结果,以使系统执行效率较低。在执行前,由DBMS查询处理子系统先对关系代数表达式进行优化,尽可能早地执行选择和投影操作,以得到较小的中间关系,减少运算量和读外存块的次数,节省系统的执行时间,提高执行效率。

30. 简述查询优化的优化策略:

(1) 在关系代数表达式中尽可能早地执行选择操作。

(2) 把笛卡尔积和随后的选择操作合并成F联接运算。

(3) 同时计算一连串的选择和投影操作,以免分开运算造成多次扫描文件,从而能节省操作时间。

(4) 如果在一个表达式中多次出现某个子表达式,应该将该子表达式预先计算出结果保存起来。以免重复计算。

(5) 适当的对关系文件进行预处理。

(6) 在计算表达式之前应先估计一下怎么计算合算。

31. 笛卡尔积、等值连接、自然连接三者之间有什么区别:

等值连接中有笛卡尔积运算;

自然连接是一种等值连接,它是两个关系中所有公共属性进行等值连接的结果。 第三章 关系数据库SQL语言

4 32. SQL数据库的体系结构及术语:

SQL数据库的体系结构也是三级,但术语与传统的关系模型不同。

关系模式称为“基本表”,存储模式称为“存储文件”,子模式称为“视图”,元组称为“行”,属性称为“列”。

33. SQL数据库的体系结构要点是什么:

(1) 一个SQL数据库是表(table)的汇集,它用一个或多个SQL模式定义。一个SQL模式是表和授权的表态定义。

(2) 一个SQL表由行集构成,一行是列的序列,每列对应一个数据项。

(3) 一个表或者是一个基本表,或者是一个视图。(视图只保存定义,不保存数据)

(4) 一个基本表可跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储器上一个物理文件对应。

(5) 用户可用SQL语句对视图和基本表进行查询等操作。

(6) SQL用户可以是应用程序,也可以是终端用户。

34. SQL的组成分成几部分:

SQL主要分成四部分:

(1) 数据定义。(SQL DDL)用于定义SQL模式、基本表、视图和索引的创建和撤消操作。

(2) 数据操纵。(SQL DML)数据操纵分成数据查询和数据更新两类。数据更新又分成插入、删除、和修改三种操作。

(3) 数据控制。包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。

(4) 嵌入式SQL的使用规定。涉及到SQL语句嵌入在宿主语言程序中使用的规则。

35. SQL模式的撤消有哪两种方式:

CASCADE(连锁式)方式:执行DROP语句时,把SQL模式及其下属的基本表、视图、索引等所有元素全部撤消。

RESTRICT(约束式)方式:执行DROP语句时,只有当SQL模式中没有任何下属元素时,才能撤消SQL模式,否则拒绝执行DROP语句。

36. SQL提供的基本数据类型有哪些?每种举两个例子:

(1) 数值型:INTEGER长整数、SMALLINT短整数

(2) 字符串型:CHAR(N)长度为N的定长字符串、VARCHAR(N)具有最大长度为N的变长字符串。

(3) 位串型:BIT(N)长度为N的二进制位串、BIT VARYING(N)最大长度为N的变长二进制位串

(4) 时间型:DATE日期、TIME时间

SQL2允许用户使用“CREATE DOMAIN”语句定义新的域。

37. 完整性约束主要有哪三种子句:

完整性约束主要有三种子句:主键子句(PRIMARY KEY),检查子句(CHECK)和外键子句(FOREIGN KEY)

38. 什么是视图,它与表的区别是什么:

在SQL中,外模式一级数据结构的基本单位是视图,视图是从若干基本表和(或)其他视图构造出来的表。我们创建一个视图时,只是把其视图的定义存放在数据字典中,而不存储视图对应的数据,因此,视图被称为“虚表”,这是它与表的主要区别。

39. 对于视图元组的更新操作(INSERT、DELETE、UPDATE)有哪三条规则:

(1) 如果一个视图是从多个基本表使用联接操作导出的,那么不允许对这个视图执行更新操作。

(2) 如果在导出视图的过程中,使用了分组和聚合操作,也不允许对这个视图执行更新操作。

(3) 如果视图是从单个基本表使用选择、投影操作导出的,并且包含了基本表的主键或某个候选键,那么这样的视图称为“行列子集视图”,并且可以被执行更新操作。

SQL2中,允许更新的视图在定义时,必须加上“WITH CHECK OPTION”短语。

40. SQL语言有哪两种使用方式:

一种是在终端交互方式下使用,称为交互式SQL;

另一种是嵌入在高级语言的程序中使用,称为嵌入式SQL,而这些高级语言可以是C、PASCAL、COBOL等,称为宿主语言。

41. 嵌入式SQL的实现有哪两种处理方式:

一种是扩充宿主语言的编译程序,使之能处理SQL语句;

另一种是采用预处理方式。目前多数系统采用后一种。

42. 在宿主语言的程序中使用SQL语句有哪些规定:

(1) 在程序中要区分SQL语言与宿主语句。所有SQL语句前必须加上前缀标识“EXEC SQL”,并以“END_EXEC”作为语句的结束标志。(结束标志在不同的宿主语言中不同)

(2) 允许嵌入的SQL语句引用宿主语言的程序变量(共享变量),但有两条规定:

1) 引用时,这些变量前必须加冒号“:”作为前缀,以示与数据库中变量有区别。

2) 这些变量由宿主语言的程序定义,并用SQL的DECLARE语句说明。

5 43. 用游标机制协调SQL的集合处理方式所用的SQL语句有哪些:

与游标有关的SQL语句有下列四个:

(1) 游标定义语句(DECLARE)

(2) 游标打开语句(OPEN)

(3) 游标推进语句(FETCH)

(4) 游标关闭语句(CLOSE)

44. SQL DML的嵌入使用技术:

(1) 若是INSERT、DELETE、UPDATE语句,则不必涉及游标,只要加上前缀标识和结束标志就能嵌入宿主语言程序中使用。

(2) 若是已知查询结果肯定是单元组的SELECT语句,则不必涉及游标,也可加上前缀标识和结束标志后嵌入宿主语言程序中使用,但此时应该在SELECT语句中增加一个INTO子句,指出找到的值应送到相应的共享变量中去。

(3) 若是已知查询结果为多个元组的SELECT语句,则必须涉及到游标,用游标机制把多个元组一次一个地传送给宿主程序处理。 第四章 关系数据库的模式设计

45. 什么是关系数据库:

关系数据库是以关系模型为基础的数据库,它利用关系来描述现实世界。一个关系既可以用来描述一个实体及其属性,也可以用来描述实体间的联系。关系实质上是一张二维表。

46. 一个关系模型有哪两个方面内容:

一个关系模型包括外延和内涵两个方面的内容。

外延就是通常所说的关系,或实例,或当前值。它与时间有关,随着时间的推移在不断变化。(由于元组的插入、删除、修改引起的)

内涵是与时间独立的,包括关系、属性、及域的一些定义和说明,还有各种数据完整性约束。

47. 数据完整性约束分为哪两类:

数据完整性约束分为静态约束和动态约束。

静态约束:包括各种数据之间的联系(数据依赖),主键的设计和关系值的各种限制等等。这一类约束是如何定义关系的有效数据问题。

动态约束:主要定义如插入、删除、和修改等各种操作的影响。

48. 关系数据库设计理论主要包括哪些内容:

关系数据库设计理论主要包括三个方面的内容:数据依赖、范式、模式设计方法。其中数据依赖起着核心的作用。

49. 数据库使用过程中存在的问题是什么:

数据冗余、更新异常、插入异常、删除异常。

50. 函数依赖(FD)的定义:

设有关系模式R(A1,A2,……,An)(即R(U)),X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X]导致t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y,X→Y为模式R的一个函数依赖。

或者说,对于X的每一个具体值,都有Y惟一的具体值与之对应,即Y值由X值决定,因而

这种数据依赖称为函数依赖。

51. 函数依赖的逻辑蕴涵、FD的闭包F+:

52. 候选键、主属性、非主属性:

设有关系模式R(A1,A2,……,An),F是R的一个函数依赖集,X是{A1,A2,……,An}的一个子集。如果

① X→A1A2……An∈F+,且

② 不存在X真子集Y,使得Y→A1A2……An成立,则称X是R的候选键。

包含在任何一个候选键中的属性称为主属性,不包含在任何一个候选键中的属性称为非主属性。

53. 函数依赖的推理规则:

设有关系模式R(A1,A2,……,An)和属性集U= A1,A2,……,An,X,Y,Z,W是U的一个子集,F是R的一个函数依 6 赖集,推理规则如下:

54. 什么是平凡的FD?平凡的FD可根据哪一条推理规则推出?

55. 关系模式的分解有几个不同的衡量标准:

分解具有无损联接; 分解要保持函数依赖;

分解既要保持依赖,又要具有无损联接。

56. 什么是无损连接:

57. 试叙保持函数依赖的定义:

58. 第一范式(1NF):

如果关系模式R的所有属性的值域中每一个值都是不可再分解的值,则称R是属于第一范式模式。

59. 第二范式(2NF):

如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的候选键,则称R是第二范式模式。

60. 第三范式(3NF):

如果关系模式R是第一范式,且每个非主属性都不传递依赖于R的候选键,则称R是第三范式的模式。

61. BCNF:

如果关系模式R是第一范式,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。从BCNF的定义可明显地得出如下结论:

(1) 所有非主属性对键是完全函数依赖。

(2) 所有主属性对不包含它的键是完全函数依赖。

(3) 没有属性完全函数依赖于非键的任何属性组。

如果模式R是BCNF,则它必定是第三范式,反之,则不一定。

62. 模式设计方法的原则:

关系模式R相对于函数依赖集F分解成数据库模式ρ={R1,R2,……Rk},一般应具有下面三个特性:

(1) ρ中每个关系模式Ri是3NF或BCNF (2) 保持无损联结

7 (3) 保持函数依赖集

(4) ρ中模式个数最少和属性总数最少。

63. 一个好的模式设计方法应符合哪三条原则:

表达性,分离性,最小冗余性。

表达性涉及到两个数据库模式的等价性问题,即数据等价和依赖等价,分别用无损联接和保持函数依赖性来衡量。

分离性是指属性间的“独立联系”应该用不同的关系模式表达。

最小冗余性要求在分解后的数据库能表达原来数据库的所有信息这个前提下实现。

关系模式设计方法基本上可以分为分解与合成两大类。

64. 多值依赖MVD:

设R(U)是属性集U上的一个关系模式,X,Y是U的子集,若对R(U)的任一关系r,对于X的一个给定的值存在着Y的一组值与其对应,同时Y的这组值又不以任何方式与U-X-Y中的属性相关,那么称Y多值依赖于X,记为X→→Y。

65. 平凡多值依赖:

66. 第四范式(4NF):

设关系模式R,D是一个多值依赖集,如果D中存在一个非平凡多值依赖X→→Y,并且X必是R的超键,那么称R是4NF模式。 第五章 数据库设计

67. 什么是软件生存期:

软件生存期是软件工程的一个重要概念。是指从软件的规划、研制、实现、投入运行后的维护,直到它被新的软件所取代而停止使用的整个期间。通常分为六个阶段:

(1) 规划阶段

(2) 需求分析阶段

(3) 设计阶段

(4) 程序编制阶段

(5) 调试阶段

(6) 运行维护阶段

68. 数据库系统的生存期:

一般分为七个阶段,即:

(1) 规划阶段

(2) 需求分析阶段 1)信息要求 2)处理要求 3)安全性和完整性要求

(3) 概念设计阶段

(4) 逻辑设计阶段 两部分:数据库逻辑设计和应用程序设计

(5) 物理设计阶段 两部分:物理数据库结构的选择和逻辑设计中程序模块说明的精确化

(6) 实现阶段

(7) 运行维护阶段

69. 数据库设计过程的输入有哪些内容:

(1) 总体信息需求

(2) 处理需求

(3) DBMS的特征

(4) 硬件和OS特征

70. 数据库设计过程的输出有哪两部分:

一部分是完整的数据库结构,其中包括逻辑结构与物理结构。

另一部分是基于数据库结构和处理要求的应用程序的设计原则。

71. 常见的数据库设计方法有哪几种:

(1) 视图模式化及视图汇总设计方法

(2) 关系模式的设计方法

(3) 新奥尔良设计方法

(4) 基于E-R模型的数据库设计方法

(5) 基于3NF的设计方法

8 (6) 基于抽象语法规范的设计方法

(7) 计算机辅助数据库设计方法

72. 实用的数据库设计方法至少应包括哪些内容:

(1) 设计过程

(2) 设计技术

(3) 评价准则

(4) 信息需求

(5) 描述机制

73. 一种设计方法学需要有三种基本类型的描述机制:

(1) 实现设计过程的最终结果将用DBMS的DDL表示。

(2) 信息输入的描述。

(3) 在信息输入和DDL描述之间的其它中间步骤的结果的描述。

74. 数据库设计中的规划阶段的主要任务:

是进行建立数据库的必要性及可行性分析,确定数据库系统在组织中和信息系统中的地位,以及各个数据库之间的联系。

75. 需求分析阶段的任务:

需求分析阶段应该对系统的整个应用情况作全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,并把这些要求写成用户和数据库设计者都能接受的文档。

76. 需求分析的步骤:

大致可分为三步来完成,即需求信息的收集、分析整理和评审。

77. 数据字典由哪几部分组成:

(1) 数据项

(2) 数据结构

(3) 数据流

(4) 数据存储

(5) 加工过程

78. 数据抽象:

抽象是对实际的人、物、事或概念的人为处理,它抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。

抽象有两种形式,系统状态抽象(抽象对象)和系统转换抽象(抽象运算)。

79. 对象的两种形式:

(1) 聚集:的数学意义就是笛卡尔积的概念。通过聚集,形成对象之间的一个联系对象。

(2) 概括:是从一类其它对象形成一个对象。对于一类对象{O1,O2,……,On}可以概括成对象O,那么Oi称为O的其中一个。

80. 依赖联系:

在现实世界中,常常有某些实体对于另一些实体具有很强的依赖关系,即一个实体的存在必须以另一个实体的存在为前提。我们通常把前者称为弱实体。在ER图中,用双线框表示弱实体,用指向弱实体的箭头表明依赖联系。

81. 子类、超类:

某个实体类型中所有实体同时也是另一实体类型中的实体。此时,我们称前一实体类型是后一实体类型的子类,后一实体类型称为超类。在ER图中,带有子类的实体类型(超类)以两端双线的矩形框表示,并用加圈的弧线与其子类相连,子类本身仍用普通矩形框表示。

子类具有一个很重要的性质:继承性。它可继承超类上定义的全部属性,其本身还可包含其它另外的属性。

82. ER模型的操作:

(1) 实体类型的分裂:垂直分割、水平分割

(2) 实体类型合并:分裂的逆过程。

(3) 联系类型的分裂

(4) 联系类型的合并

83. 采用ER方法的数据库概念设计分成哪三步:

(1) 设计局部ER模式:1)确定局部结构范围 2)实体定义 3)联系定义 4)属性分配

9 (2) 设计全局ER模式:1)确定公共实体类型 2)局部ER模式的合并 3)消除冲突。

(3) 全局ER模式的优化:1)实体类型的合并 2)冗余属性的消除 3)冗余联系的消除

84. 冲突分为哪三种:

属性冲突,包括属性域的冲突、属性取值单位冲突。

结构冲突,包括:

(1) 同一对象在不同应用中的不同抽象。

(2) 同一实体在不同局部ER图中属性组成不同。

(3) 实体之间的联系在不同的局部ER图中呈现不同的类型。

命名冲突,包括属性名,实体名,联系名之间的冲突:同名异义、异名同义

85. ER模型向关系模型的转换:

ER模型中的主要成分是实体类型和联系类型。

对实体类型,将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。

对联系类型,就视1:

1、1:N、M:N三种不同的情况做不同处理。

(1) 对1:1可在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。

(2) 对1:N,则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。

(3) 对M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键盘加上联系类型的属性,而键为两端实体键的组合。

86. 什么是物理设计:

对一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,称为数据库的物理设计。物理结构,主要指数据库在物理设备上的存储结构和存取方法。

87. 物理设计的步骤:

物理设计可分五步完成,前三步涉及到物理数据库结构的设计,后两步涉及约束和具体的程序设计。

(1) 存储记录结构设计

(2) 确定数据存储安排

(3) 访问方法的设计

(4) 完整性和安全性

(5) 程序设计

88. 在数据库系统生存期中,生存期的总开销可分为几项:

规划开销、设计开销、实现与测试开销、操作开销、维护开销。

89. 用户使用和计算机资源的操作开销是:

(1) 查询响应时间

(2) 更新事务的开销

(3) 报告生成的开销

(4) 改组频率和开销

(5) 主存储空间

(6) 辅助存储空间

90. 数据库实现阶段的主要工作:

(1) 建立实际数据库结构

(2) 试运行

(3) 装入数据

91. 数据库的重新组织设计:

对数据库的概念模式、逻辑结构或物理结构的改变称为重新组织,其中改变概念模式或逻辑结构又称为重新构造,改变物理结构则称为重新格式化。

92. 运行维护阶段的主要工作:

(1) 维护数据库的安全性和完整性控制及系统的转储和恢复。

(2) 性能的监督、分析与改进。

(3) 增加新功能。

(4) 发现错误,修改错误。

第三篇:数据库原理上机实验报告

广西科技大学理学院《数据库原理》上机实验报告

实验序号与实验名称:实验九:用户管理和权限管理

姓名:薛亚妮学号:201000901045

专业班级:信计101实验日期:2012年 12月15日

一、实验目的:理解和体会数据库安全性的内容,加强对DBMS功能的认识。

二、实验内容:数据库的用户管理和操作权限管理。

三、程序源代码:

1、对象操作授权

sp_grantdbaccess 201000901035

grant select on 产品1045 to 201000901035

grant create view,create table to 201000901035

grant execute on sp_getgoods to 201000901035

2、在授权过程中体会GRANT命令中WITH GRANT OPTION 短语的作用。

--用户201000901045--

grant select on产品1045 to [201000901035] WITH GRANT OPTION

--用户201000901035--

grant select on 产品1045 to [201000901035]

As [201000901035]

3、分情况收回授权,并体会REVOKE命令中GRANT OPTION FOR和CASCADE

--短语的作用

revoke select on 产品1045 from 201000901035

revoke create view,create table to 201000901035

revoke grant option for select on 产品1045 from 201000901035 CASCADE

四、实验结果分析与总结

安全性控制是数据库管理员(或系统管理员)的一个重要任务,他要充分利用数据库管理系统的安全功能,保证数据库和数据库中数据的安全。

授权登录用户为当前数据库用户 :

sp_grantdbaccess [@loginame =] login

[,[@name_in_db =] name_in_db]

使一个登录用户成为数据库用户只是授权的第一步,数据库管理员可以进一步为能够连接到自己所管理数据库的用户在该数据库上授予所需要的权限.

收回权限:收回语句授权 :REVOKE { ALL | statement_list } FROM name_list

收回对象授权 :

REVOKE [GRANT OPTION FOR]

{ ALL [ PRIVILEGES ] | permission_list }

{[ ( column_list ) ] ON { table | view } | ON { table | view } [ ( column_list ) ]

| ON stored_procedure| ON user_defined_function }

FROM name_list

[ CASCADE ]

[ AS { group | role } ]

禁止语句权限: DENY { ALL | statement_list } TO name_list

禁止对象权限: DENY { ALL [ PRIVILEGES ] | permission_list }

{[ ( column_list ) ] ON { table | view } | ON { table | view } [ ( column_list ) ]

| ON stored_procedure| ON user_defined_function }

TO name_list

[CASCADE]

第四篇:数据库原理实验学期总结

2012-2013学年第1学期《数据库原理实验》学期论文

数据库原理实验学期总结

班级: 学号:

姓名:

摘要:

学习数据库已经一个学期了,经过这一个学期对SQL Server 2005课程的学习,使我受益匪浅。课堂上老师讲课细致入微,内容详细、层次鲜明、易于记忆和理解的教学课件,都使我学会了很多,从数据库的创建,到数据库的一些操作,如:表的更新与修改,还有相关的一些查询,数据库的维护等等。SQL Server 2005是一个关系数据库管理系统,它是Microsoft 公司推出的SQL Server 数据库管理系统的一个版本,具有使用方便,可伸缩性好与相关软件集成程度高等优点。

关键字:实验原理

实验目的

查询

连接

一. 数据库实验的主要意义的目的

数据库是数据管理的最新技术,是计算机科学的重要分支。目前,对数据库各种模型的研究以及理论上的探讨都还在蓬勃开展,其应用也从一般管理扩大到计算机辅助设计,人工智能以及科技计算等领域。数据库实验有利于同学理解书中复杂抽象的理论,让同学建立直观印象,加强实践操作技能,加深对理论的理解。

二.概述本学期的实验内容,目的及原理

本学期总共做了八个实验:1.安装SQL Server; 2.创建数据库及基本表; 3.数据库的基本操作; 4.根据数据模型建立数据库; 5.SQL交互式查询—单表查询; 6.SQL交互式查询---连接和嵌套; 7.创建存储过程与触发器; 8.综合设计

实验一 安装SQL Server

目的是通过安装SQL Server来初步了解应用工具相关的信息,以及掌握相关的操作 巧,通过安装过程相应的问题来掌握一定解决方案,为以后的操作做相应的指导。

原理是通过掌握相关软件所需要计算机系统的基本配置,了解安装的具体步骤,然后 照步骤,安装完成。

实验二 创建数据库及基本表

实验主要让我们掌握如何建表和数据库,以及如何对表中属性进行约束项的设置。其中创建数据库和基本表都有两种方法:一种是新建查询用create命令创建新数据库和基本表;另一种是直接设置法创建。在写属性约束时也如此,通常我们用CHECK命令来对属性列进行约束。此外创建表时,每一个实体有多个属性但表中需要一个主码来唯一表示该实体,且该项不能为空。此外其他属性若有基本约束如性别(男或女)、日期(不大于当前系统日期)等需要进行近一步约束,用户根据需要定义一些约束性条件。

实验三 数据库的基本操作

实验三是数据库的基本操作对数据库进行分离和附加、备份和恢复、导入导出的操作。 其中分离和附加的目的是对数据库的进行分离附加可以将自己所创建的数据库的数据转移 到U盘中随身携带以便下次使用;备份和恢复的目的是对数据库进行备份以及恢复以防数据 丢失可以再次回复继续使用;导入和导出的作用是对数据进行导入到处可以将表内数据与其 他格式的软件外数据相互共用。本次实验主要是对数据库本身进行基本操作,并未涉及数据

1 / 3

2012-2013学年第1学期《数据库原理实验》学期论文

库中表的操作,实验中最主要是数据库的导入导出操作。

实验四 根据数据模型建立数据库

实验目的是学习如何为数据库的表建立关系,并用E-R图表示。

实验原理:数据模型是一种模型,它是对现实世界数据特征的抽象,即数据模型是用来描述数据、组织数据和对数据进行操作的。数据模型是数据库系统的核心和基础,根据模型应用的目的可分为有两大类:概念模型、逻辑模型和物理模型。它通常由数据结构,数据操作和完整形约束三部分组成。其中数据结构描述数据库的组成对象以及对象之间的联系;数据操作主要有查询和更新两大类操作;数据模型应该反映和规定本数据库必须遵守的基本的通用的完整性约束,例如关系模型中必须满足实体完整性和参照完整性约束。而实体完整性规则是指主码非空且唯一;参照完整性规则是指外码或者取空值,或者等于基本关系中某个元组的主码值等等。

实验五 .SQL交互式查询—单表查询

实验主要目的是掌握基本的单表查询操作包括查询、删除、更新等,掌握一定的更新语句语句,以及相应的约束条件,对于删除需要注意设置的一些约束,采取一定的措施,不然实验中可能会出现一定的错误。

实验六 SQL交互式查询---连接和嵌套

实验主要涉及多表连接查询,实验中应注意表连接的条件以及各表之间的关系,例如删除时需先删除关系表再删除基本表;插入时亦如此。连接查询中有等值连接(含自然连接)、外连接(左外连接和右外连接)。值得注意的是一般连接是从行角度出发,但自然连接需取消重复列,所以需从行和列的角度同时考虑;把舍弃的元组也保存在结果关系中,而其他属性填空值的连接即外连接。

实验七 创建存储过程与触发器 实验原理:触发器是用户定义在关系表上的一类由事件驱动的特殊过程,它的功能非常 强,不仅可以用于数据库完整性的检查,还可以实现数据库系统的其他功能,包括数据库安全性积极更加广泛的应用系统的一些业务流程和控制流程基于规则的数据和业务控制功能。一旦定义,任何用户对表的的更新操作均有服务器自动激活相应的触发器,在DBMS核心层进行集中的完整性控制,可以完成存储过程的功能同时还具有自己的特点。

实验八 综合设计

本实验是个综合题,利用开发工具创建学生选课系统,使二者融合,将学生表、课程表及选课表建立关系,通过对数据库的调用实现选课操作,这个实验同时体现了SQL语言的嵌入式语言的特点,可在一些高级语言中实现相应的查询以及其他一些功能等。

三.小结

1.我的实验完成情况

通过一个学期的实验课程,使我学会了很多的东西,可能是因为喜欢的原因,学的很认真,实验课上听老师的讲解之后,课后实验报告自己差不多都能够完成,遇到一些小的问题自己上网查找以及通过一些资料都能够把不会的问题搞懂,从这个过程学会了很多东西,通过实验把一些理论抽象的东西能够直观的展现出来,使得自己更加有兴趣去学习了。 实验过程中遇到不太懂的地方,上网搜过,书籍查过,当然老师也是问过的,课本中的东西不太懂的许多都是看许多遍,或者是看书上面的例子,许多知识就是在钻研之后懂得的,实验报告都是学会后自己做出来的,所以收获还是很大的。

2.实验中遇到的问题及解决方案

2 / 3

2012-2013学年第1学期《数据库原理实验》学期论文

实验中遇到的问题还是挺多的,下面举两个例子来说一下吧

问题 1:实验六中有两个实验,第一个实验做的查询还是比较简单的,第二个实验的数据量比较大 ,表也特别的多,建立视图中的查询特别复杂,错误很多,做起来特别困难。

方案:通过查找书上所讲到的知识点,把上面的各种连接查询都看了几遍,充分理解其中的应用,然后又按照最基本的方法,逐个表的查看其中涉及到的属性,然后建立多表连接,最终成功执行。

问题 2:实验中涉及到一些小的知识点,包括一些根据出生日期查询年龄,还有就是通过SQL查询语句创建自动编号的功能等。

方案:通过网上查找到的资料知道了相关的操作,求年龄:datediff(year,出生日期,getyear())或者是year(getdate())-year(出生日期);对于自动编号的设置,identity(1,1),从1开始逐个加1,数据类型为int。

四.附录

1.实验成果中较优秀的部分

实验中实验六的第二个实验,通过众多复杂的表,视图的创建以及相关的查询,使得对查询语句的实用性更加的了解,对多表连接查询更加透彻的了解,感觉还不错。

2.参考资料

a. Information on IMS is available from IMB Corporation, Armonk,New York 10504 b. [美]David M.Kroenke.数据库处理—基础、设计与实现(第七版).北京:电子工业出版社,2001 c.周绪等编著. SQL server 2000 入门与提高. 北京:清华大学出版社 ,2001 d. Ryan K .stephens ,Ronald R.Plew著,何玉洁,武欣,邓一凡等译. 数据库设计.北京:机械工业出版社

e.萨思煊,王珊.数据库系统概论.北京:高等教育出版社,1999

3 / 3

第五篇:编译原理 学习心得

国际学院 0802 杨良燕 200819100227

《编译原理》课程学习心得

《编译原理》是计算机专业的一门重要课程,正如教材

第一章的引论所述,“编译程序是现代计算机系统的基本组成部分之一”。“一个编译程序就是一个语言翻译程序,语言翻译程序把一种语言(源语言)书写的程序翻译成另一种语言(目标语言)的等价程序”。

通过这一学期的学习,我觉得编译原理是一门理论性很强的课程,从文法和语言的概念到LL(1)文法和LR(0)文法的分析,几乎都是对具体问题的抽象。因而,我们需要更多的时间来理解、掌握相关的知识,当然在这一过程中也存在很多问题,比如我们后期学习具体文法的分析方法时,对于文法的概念不够清晰,影响了上课的效率,知道老师再次给我们讲解了文法等基础的知识点,我们才慢慢掌握后面所学的LL(1)文法等,也发现了知识点之间的关联。此外,这门课程的课时被安排得很少,一周只有一次,这样很不利于我们对这门重要课程的理解和掌握。但是我觉得我们很幸运,因为老师在有限的课程中尽量将知识点以比较容易接受的方式给我们讲解,教我们用简单的方法理解记忆不同的知识,对于我们提出的问题,无论课上或是课外,老师一直是不厌其烦,甚至利用课余时间为我们讲解重要的难题。

编译原理这门课程不仅仅在于其本身的理论价值,更在于为我们解决问题提供的思维方式和方法。从LL(1)到LR(0),问题不断被解决的同时,又有一个个新的问题提了出来。对计算机语言世界的知识积累,像滚雪球一样越滚越大。这个逐渐递进,逐渐解决问题的过程对我来说是收获很大的。整个过程好像踏着前人研究编译理论的路线,不断感觉他们遇到的问题,更重要的是他们解决问题的思路。编译原理的课程带给我的不只是如何去编译程序这样的理论知识,相信更重要的是一种如何“自动计算”的思路。通过对相关编译问题的具体分析,让我体会最深的是一种“自动计算”的思想,同时完成编译试验后,更是感到了一种“自动计算”的快乐。”然而我明白自己虽然对编译有了一定的了解,我懂得了文法的分析,学会了构造确定和非确定有限自动机,学会了LL(1)文法和LR(0)文法等,但是并没有完全掌握,对于这些知识点的实质性和其他方面,更是认识不深。作为一名学习计算机科学与技术的学生,我明白编译原理是软件工程的基础,课程的结束并不意味着学习的结束,只有通过以后的学习,才能更深入地了解编译原理。

上一篇:世界粮食日竞答题目下一篇:设计师助理实习报告