|
|
|
第一章 绪论 |
|
|
|
第一节 数据库系统概述 |
|
|
|
第二节 数据模型(一) |
|
|
|
第三节 数据模型(二) |
|
|
|
第四节 数据模型(三) |
|
|
|
第五节 数据库系统结构 |
|
|
|
第六节 数据库管理系统 |
|
|
|
第七节 习题讲解 |
|
|
|
第二章 关系数据库 |
|
|
|
第一节 关系模型概述 |
|
|
|
第二节 关系数据结构及形式化定义 |
|
|
|
第三节 关系的完整性 |
|
|
|
第四节 关系代数(一) |
|
|
|
第五节 关系代数(二) |
|
|
|
第六节 关系演算(一) |
|
|
|
第七节 关系演算(二) |
|
|
|
第八节 关系演算(三) |
|
|
|
第九节 关系演算(四) |
|
|
|
第十节 习题讲解 |
|
|
|
第三章 关系数据库标准语言SQL |
|
|
|
第一节 SQL概貌及特点 |
|
|
|
第二节 数据定义 |
|
|
|
第三节 查询(一) |
|
|
|
第四节 查询(二) |
|
|
|
第五节 查询(三) |
|
|
|
第六节 查询(四) |
|
|
|
第七节 数据更新 |
|
|
|
第八节 视图 |
|
|
|
第九节 数据控制 |
|
|
|
第十节 嵌入式SQL(一) |
|
|
|
第十一节 嵌入式SQL(二) |
|
|
|
第四章 关系系统及其查询优化 |
|
|
|
第一节 关系系统 |
|
|
|
第二节 关系数据库系统的查询优化(一) |
|
|
|
第三节 关系数据库系统的查询优化(二) |
|
|
|
第五章 关系数据理论 |
|
|
|
第一节 问题的提出 |
|
|
|
第二节 规范化(一) |
|
|
|
第三节 规范化(二) |
|
|
|
第四节 数据依赖的公理系统 |
|
|
|
第五节 模式的分解 |
|
|
|
第六节 习题讲解 |
|
|
|
第六章 数据库设计 |
|
|
|
第一节 数据库设计概要 |
|
|
|
第二节 需求分析(一) |
|
|
|
第三节 需求分析(二) |
|
|
|
第四节 概念结构设计(一) |
|
|
|
第五节 概念结构设计(二) |
|
|
|
第六节 逻辑结构设计 |
|
|
|
第七节 数据库的物理设计 |
|
|
|
第八节 数据库的实施 |
|
|
|
第九节 数据库的运行和维护 |
|
|
|
第十节 小结 |
|
|
|
第十一节 习题讲解 |
|
|
|
第七章 数据库恢复技术 |
|
|
|
第一节 事物的基本概念 |
|
|
|
第二节 数据库恢复概述 |
|
|
|
第三节 故障的种类 |
|
|
|
第四节 恢复的实现技术 |
|
|
|
第五节 恢复策略 |
|
|
|
第六节 具有检查点的恢复技术 |
|
|
|
第七节 数据库镜像 |
|
|
|
第八节 Oracle的恢复技术 |
|
|
|
第九节 小结 |
|
|
|
第十节 习题讲解 |
|
|
|
第八章 并发控制 |
|
|
|
第一节 并发控制概述 |
|
|
|
第二节 封锁(Locking) |
|
|
|
第三节 封锁协议 |
|
|
|
第四节 活锁和死锁 |
|
|
|
第五节 并发调度和可串行性 |
|
|
|
第六节 两段锁协议 |
|
|
|
第七节 封锁的粒度 |
|
|
|
第八节 Oracle的并发控制 |
|
|
|
第九节 小节 |
|
|
|
第十节 习题讲解 |
|
|
|
第九章 数据库安全性 |
|
|
|
第一节 数据库安全性概论 |
|
|
|
第二节 数据库安全性控制 |
|
|
|
第三节 统计数据库安全性 |
|
|
|
第四节 Oracle数据库的安全性措施 |
|
|
|
第五节 小结 |
|
|
|
第六节 习题讲解 |
|
|
|
第十章 数据库完整性 |
|
|
|
第一节 完整性约束条件 |
|
|
|
第二节 完整性控制 |
|
|
|
第三节 Oracle的完整性 |
|
|
|
第四节 小结 |
|
|
|
第五节 习题讲解 |
|
|
|
第十一章 基于对象的数据库 |
|
|
|
第一节 面向对象数据库(一) |
|
|
|
第二节 面向对象数据库(二) |
|
|
|
第三节 对象-关系数据库 |
|
|
|
第十二章 数据库技术新发展 |
|
|
|
第一节 数据库技术三个发展阶段 |
|
|
|
第二节 数据库新技术 |
|
|
|
第十三章 实践课 |
|
|
|
第一节 Visual FoxPro 入门指南(一) |
|
|
|
第二节 Visual FoxPro 入门指南(二) |
|
|
|
第三节 Visual FoxPro 入门指南(三) |
|
|
|
第四节 Visual FoxPro 入门指南(四) |
|
|
|
第五节 对象、属性、事件、方法 |
|
|
|
第六节 常用的对象、属性、事件、方法(一) |
|
|
|
第七节 常用的对象、属性、事件、方法(二) |
|
|
|
第八节 常用编程命令及常用函数 |
|
|
|
第九节 表和索引(一) |
|
|
|
第十节 表和索引(二) |
|
|
|
第十一节 将表加入数据库 |
|
|
|
第十二节 向导 |
|
|
|
第十三节 建立视图(一) |
|
|
|
第十四节 建立视图(二) |
|
|
|
第十五节 创建查询 |
|
|
|
第十六节 设计报表(一) |
|
|
|
第十七节 设计报表(二) |
|
|
|
第十八节 设计报表(三) |
|
|
|
第十九节 编一个软件 |
|
|
|
第二十节 SQL Server简介 |
|
|
|
第十四章 总复习 |
|
|
|
第一节 第一章小结 |
|
|
|
第二节 第二至四章小结 |
|
|
|
第三节 第五至九章小结 |
|
|
|
第四节 第十至十二章小结 |
学习指南一 |
一、课程的地位、作用和任务 数据库技术是计算机科学中发展最快的领域之一,也是应用最广的技术之一,它已成为计算机信息系统与应用系统的核心技术和重要基础。 本课程是计算机专业的必修课程。通过本课程的学习,使学生理解数据库系统的基本原理:包括数据库的一些基本概念,各种数据模型的特点,关系数据库基本概念,SQL语言,关系数据理论,数据库的设计理论。掌握数据库应用系统的设计方法、了解数据库技术的发展动向,以指导今后的应用。 实践方面:要求学生利用数据库的原理知识和实用工具动手开发数据库应用系统。 其最终目的是培养学生运用数据库技术解决问题的能力,激发他们在此领域中继续学习和研究的愿望。 为了达到这个目的,除了对关系数据库系统的基本概念、原理和方法进行介绍之外,本课程的另外一个特点是强调课程的实践性,结合典型实例、关系数据库管理系统SQL Server和开发工具讲解数据库设计的全过程。 二、教学内容 本课程的教学分为三部分:教师课堂讲授、学生上机实验,以及一个数据库项目的完成。也就是说,首先在课堂上讲解数据库系统的基本概念、原理和方法,然后通过大量的上机练习来锻炼学生的编程技能,最后用一个相对独立的数据库项目来培养学生的综合能力。 大作业的完成需要3-5人一组,通过成立3-5人学习小组,培养学生的团队合作精神,变适应性学习为创造性学习。 1. 课堂讲授内容 《数据库系统概论》课程的教材选用萨师煊,王珊编写的面向21世纪课程教材―《数据库系统概论》。全书分为四篇共十五章,较为详细地介绍了数据库系统的基本概念、原理、方法及应用技术。数据库管理系统Visual Foxpro、SQL Server的教材根据自己需要自选,这里推荐清华大学出版社的《SQL Server2000开发指南》一书,具体安排如下: 第一章绪论,概述了数据管理的进展、数据模型和数据库系统构成的一般概念。 第二章至第七章介绍三种重要的数据库系统。鉴于关系数据库具有许多优点并已在应用中日趋成熟,重点放在关系数据库。第二章介绍关系数据库的一般概念;第三章详细介绍关系数据库标准语言SQL,之后增加关系数据库管理系统Visual Foxpro和SQL Server的功能介绍,以便上机实习;第四章概述关系模型的基本概念、关系系统及其查询优化、关系代数和关系演算;第五章讲述关系数据库理论。前五章是第一篇基础篇的内容,作为课堂讲授的基本内容。 第六章数据库设计,介绍数据库设计的全过程,是第二篇设计篇的内容。这一章在课堂讲授的同时,结合关系数据库应用系统的实例,让学生使用、熟悉关系数据库管理系统Visual Foxpro和SQL Server,并亲自动手设计实现一个数据库应用系统。在此基础上,简介第三篇系统篇的内容。其中第七章介绍数据库的恢复技术;第八章介绍数据库的并发控制;第九章和第十章分别介绍数据库的安全性、完整性。 第四篇新技术篇回顾数据库技术的发展历史、综述现状、介绍新的应用、分析面临的挑战并提出新的研究方向。根据需要补充面向对象数据库、网络数据库、空间数据库、分布式数据库和移动数据库的理论和技术内容。具体安排如下: a) a)重点讲授第一章至第五章及第六章内容。其中对于第二章中关系演算和第四章、第五章中理论性较强的内容根据情况适当压缩。 b) b)对于第三篇系统篇的内容,作适当引导让学生自学,以提高学生的工作能力和研究水平,拓宽知识面。 c) c)对于第四篇新技术篇涉及到数据库系统的进一步发展的内容,有针对性地选择某些内容,向学生传授。 d) d)对于关系型数据库管理系统Visual Foxpro、SQL Server课堂作适当引导,主要让学生自学。 2. 上机实验 3. 数据库项目的设计 三、各章安排 第一章绪论 1. 理解数据、数据库、数据库管理系统和数据库系统的概念。 2. 掌握数据库系统的特点,数据库系统的结构,数据库系统的组成。 3. 掌握数据模型的相关概念,了解四种常用的数据模型。 4. 熟练掌握E-R模型的表示方法。 第二章关系数据库 1. 掌握关系模型、关系、关系模式、关系代数、元组关系演算。 2. 理解关系的完整性,了解域关系演算。 第三章关系数据库标准语言SQL 1. 了解SQL的特点。 2. 掌握数据定义、查询、更新,掌握视图定义、查询、更新。 3. 理解视图的作用、数据控制,嵌入式SQL。 第四章 Visual Foxpro和SQL-Server简介 1. 系统的安装过程。 2. 组成结构及其相关工具。 3. 创建用户、数据库表、授予用户数据操作权限、数据定义、查询、更新,掌握视图定义、查询、更新等。 4. 数据库应用系统实例介绍。 第五章关系系统及其查询优化 1. 掌握关系系统的定义、分类,关系系统查询优化的一般准则和优化的一般步骤。 2. 了解关系代数等价变换规则。 第六章关系数据理论 1. 掌握函数依赖、码、范式、2NF、3NF、BCNF。 2. 了解多值依赖、4NF。 第七章数据库设计 1. 理解数据库设计的特点、方法、步骤。 2. 掌握需求分析、概念结构设计、逻辑结构设计。 3. 掌握数据库应用系统的设计。 第八章数据库恢复技术 1. 了解事务的基本概念和数据库系统故障的种类。 2. 掌握数据库恢复的实现技术。 3. 掌握数据库的恢复策略。 第九章并发控制 1. 理解封锁、封锁协议、活锁和死锁。 2. 掌握并发调度的可串行性和两段锁协议。 第十章数据库安全性 1. 理解数据库安全性和计算机安全性的基本概念。 2. 掌握数据库安全性控制。 第十一章数据库完整性 1. 理解完整性概念。 2. 掌握数据库完整性控制。 第十二章基于对象的数据库 1. 了解面向对象数据库概念。 2. 了解对象关系数据库概念。 第十三章数据库技术新发展 1. 了解数据库技术的三个发展阶段和数据库新技术。 2. 了解分布式数据库系统和并行数据库系统的概念。 第一章绪论 【主要内容】 1. 理解数据、数据库、数据库管理系统和数据库系统的概念。 2. 掌握数据库系统的特点,数据库系统的结构,数据库系统的组成。 3. 掌握数据模型的相关概念,了解四种常用的数据模型。 4. 熟练掌握E-R模型的表示方法。 【考试目的】 考核考生对数据、数据库、数据库管理系统和数据库系统、数据模型、以及数据库系统的三级模式结构和数据库系统的组成等基本概念理解的情况。 【考试的知识点】 1. 上述常用的数据库术语。 2. 数据库系统的特点。 3. 概念模型的表示方法:实体-联系模型(E-R图的表示方法)。 4. 四种常用的数据模型。 5. 数据库管理系统的工作过程。 【考试要求】 1. 理解:数据库常用的基本概念。 2. 理解:数据库系统的特点。 3. 理解:数据库系统运行的大致过程。 4. 熟练掌握:实体-联系模型(E-R图的表示方法)。 第二章关系数据库 【主要内容】 1. 掌握关系模型、关系、关系模式、关系代数、元组关系演算。 2. 理解关系的完整性,了解域关系演算。 【考试目的】 考核考生对关系模型中基本概念的理解情况,和用关系代数、关系演算表达查询的能力。 【考试的知识点】 1. 关系模型的基本概念:域、笛卡尔积、元组、关系、侯选码、主码、关系模式、实体完整性,参照完整性。 2. 关系代数:并、差、交,广义笛卡尔积等传统的集合运算;选择、投影、连接,除等专门的关系运算。 3. 关系演算:元组关系演算;域关系演算。 【考试要求】 1. 理解:关系模型的基本概念。 2. 熟练掌握:用关系代数和元组关系演算表达查询要求。 3. 基本掌握:用域关系演算式表达查询要求。 第三章关系数据库标准语言SQL 【主要内容】 1. 了解SQL的特点。 2. 掌握数据定义、查询、更新,掌握视图定义、查询、更新。 3. 理解视图的作用、数据控制,嵌入式SQL。 【考试目的】 考核考生用结构化查询语言SQL表达查询要求、进行数据库更新以及定义关系模式的能力。 【考试的知识点】 1. 了解SQL的特点。 2. 数据定义:定义表、删除表、修改表,建立和删除索引。 3. 单表查询:选择表中的若干列、选择表中的若干元组、查询结果排序、分组。 4. 连接查询:等值连接、自身连接、外连接、复合条件连接。 5. 嵌套查询:带IN谓词的子查询;带比较运算符的子查询,带谓词的子查询。 6. 数据更新:插入、删除、修改。 7. 视图:定义视图、查询视图、更新视图、删除视图。 【考试要求】 1. 熟练掌握:定义基本表、建立索引。 2. 熟练掌握:用SQL语句表达单表查询、连接查询。 3. 熟练掌握:用SQL语句表达涉及查询结果排序、分组处理的查询。 4. 熟练掌握:用SQL语句表达数据的更新。 5. 基本掌握:用SQL语句表达嵌套查询。 6. 基本掌握:定义视图、查询视图。 第四章关系系统及其查询优化 【主要内容】 1. 掌握关系系统的定义、分类,关系系统查询优化的一般准则和优化的一般步骤。 2. 了解关系代数等价变换规则。 【考式目的】 考核考生对关系系统,关系系统查询优化的准则、方法和步骤的理解和掌握情况。 1. 关系系统的定义、分类。 2. 查询优化的一般准则。 3. 关系代数的等价变换规则。 4. 查询优化的主要步骤。 【考式要求】 1. 理解:查询优化的必要性以及优化的一般准则。 2. 基本掌握:用关系代数等价变换规则对查询表达式进行优化。 3. 基本掌握:结合查询优化过程画出原始的和优化的语法树。 第五章关系数据理论 【主要内容】 1. 掌握函数依赖、码、范式、2NF、3NF、BCNF。 2. 了解多值依赖、4NF。 【考式目的】 考核考生对关系模式设计中可能出现的问题及其产生原因以及解决的途径、分解的原则和方法的理解和掌握的情况。 【考式的知识点】 1. 函数依赖:函数依赖的定义;关系码和外码;函数依赖的Armstrong公理系统。 2. 关系模式设计:可能出现的问题;问题产生的根源;解决的途径;分解的原则;分解的方法;1NF、2NF、3NF、BCNF范式。 3. 多值依赖:多值依赖的定义;4NF范式;分解成4NF范式的方法。 【考式要求】 1. 理解:函数依赖、码和外码的概念;主属性、非主属性的概念;部分函数依赖和传递函数依赖的概念。 2. 理解:多值函数依赖的概念。 3. 熟练掌握:用规范化方法对关系模式进行分解,把一个关系模式分解成属于2NF、3NF、BCNF范式的几个模式的方法。 4. 基本掌握:把一个关系模式分解成属于4NF范式的几个模式的方法。 5. 初步掌握:求蕴含于给定函数依赖集的所有非平凡函数依赖的方法。 第六章数据库设计 【主要内容】 1. 理解数据库设计的特点、方法、步骤。 2. 掌握需求分析、概念结构设计、逻辑结构设计。 3. 掌握数据库应用系统的设计。 【考式目的】 考核考生对数据库设计的基本步骤的理解和掌握情况。 【考式的知识点】 1. 数据库设计的特点、方法和基本步骤。 2. 需求分析:需求分析的任务、方法和数据字典。 3. 概念结构设计:概念结构设计的基本方法与步骤。 4. 逻辑结构设计:E-R图向关系模型的转换,数据模型的优化。 5. 物理设计:数据库物理设计的内容和方法,关系模式存取方法选择,数据库存储结构的确定,物理结构的评价。 6. 数据库的实施、运行和维护。 【考式要求】 1. 理解:数据库设计的特点、方法和基本步骤。 2. 初步掌握:用数据流图和数据字典描述用户需求。 3. 基本掌握:概念结构设计和逻辑结构设计的方法。 4. 熟练掌握:E-R图向关系模型的转换。 5. 基本掌握:数据库应用系统的设计。 第七章数据库恢复技术 【主要内容】 1. 了解事务的基本概念和数据库系统故障的种类。 2. 掌握数据库恢复的实现技术。 3. 掌握数据库的恢复策略。 【考式目的】 考核考生对事务的基本概念、数据库恢复技术和的理解和掌握情况。 【考式的知识点】 1. 事务的基本概念和数据库系统故障的种类。 2. 数据库恢复的实现技术。 3. 数据库的恢复策略。 【考式要求】 1. 理解:事务的基本概念和数据库系统故障的种类。 2. 基本掌握:数据库恢复的实现技术和数据库的恢复策略。 第八章并发控制 【主要内容】 1. 理解封锁、封锁协议、活锁和死锁。 2. 掌握并发调度的可串行性和两段锁协议。 【考式目的】 考核考生对并发控制的作用以及并发控制的有关协议的理解情况。 【考式的知识点】 1. 并发操作可能带来的数据不一致现象。 2. 封锁、封锁协议、活锁和死锁。 3. 并发调度的可串行性。 4. 三级封锁协议和两段锁协议。 【考式要求】 1. 理解:并发操作可能带来的数据不一致现象。 2. 初步掌握:用三级封锁协议解决并发操作中的数据不一致问题。 3. 初步掌握:用两段锁协议保证并发操作的可串行化。 第九章数据库安全性 【主要内容】 1. 理解数据库安全性和计算机安全性的基本概念。 2. 掌握数据库安全性控制。 【考式目的】 考核考生对数据库安全性、计算机系统安全性、数据库安全性控制技术的理解和掌握情况。 【考式的知识点】 1. 数据库安全性的基本概念。 2. 计算机系统安全性的基本概念。 3. 数据库安全性控制。 【考式要求】 1. 理解:计算机安全性的基本概念。 2. 基本掌握:几种数据库安全性控制技术。 第十章数据库完整性 【主要内容】 1. 理解完整性概念。 2. 掌握数据库完整性控制。 【考式目的】 考核考生对数据库的完整性概念、完整性约束条件和完整性控制的理解和掌握情况。 【考式的知识点】 1. 数据库的完整性的基本概念。 2. 数据库的完整性约束条件。 3. 数据库的完整性控制。 【考式要求】 1. 理解:数据库的完整性的基本概念。 2. 理解:数据库完整性控制机制的三方面功能。 第十一章数据库管理系统 第十二章基于对象的数据库 【主要内容】 1. 了解面向对象数据库概念。 2. 了解对象关系数据库概念。 【考式目的】 考核考生对基于对象的数据库的了解情况。 【考式的知识点】 1. 面向对象数据库的基本概念。 2. 对象关系数据库的基本概念。 【考式要求】 1. 了解:面向对象数据库的基本概念。 2. 了解:对象关系数据库的基本概念。 【主要内容】 1. 了解数据库技术的三个发展阶段和数据库新技术。 2. 了解分布式数据库系统和并行数据库系统的概念。 【考试目的】 【考试的知识点】 1. 数据库技术的三个发展阶段。 2. 分布式数据库的基本概念。 3. 并行数据库的基本概念。 【考试要求】 初步了解:分布式数据库、并行数据库的基本概念。
|
|
学习指南二 |
四、考核方式、内容和要求 本课程的结业考试用闭卷考试的方式进行,课程的考试方式由笔试、上机实验和数据库项目设计三部分组成。期末总成绩用如下方式计算:期末总成绩 = 上机实验成绩´x % + 期末考试成绩´y % + 数据库项目完成情况´z %。以体现素质教育。 重点与难点: Ø数据库的概念 Ø数据库系统的特点 Ø数据模型的三要素 Ø数据库系统的三级模式结构 Ø数据库管理系统的功能 Ø数据库管理系统的组成 Ø数据库管理系统的工作过程 一、数据库的概念 1. 数据、数据库、数据库管理系统、数据库系统 数据(Data):是描述事物的符号记录,是数据库中存贮的基本对象。 数字,文字、图形、图像、声音、语言等;1、2、3……,学生的档案记录,……,这些都是数据。 2. 数据库(Database,简称DB) 数据库:是存放数据的仓库,是长期存储在计算机内的、有组织、有结构的大量的可共享的数据集合。 3. 数据库管理系统(Database Management System,简称DBMS) 数据库管理系统:是位于用户与操作系统之间的一层数据管理软件。其作用是科学、有效地组织和存储数据,高效地获取和维护数据。 数据库管理系统的主要功能包括: a)数据定义功能 b)数据操纵功能 c)数据库的运行管理 d)数据库的建立和维护功能 4. 数据库系统(Database System,简称DBS) 数据库系统:是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。 5. 数据库系统管理员(Database Administrator,简称DBA) 数据库系统管理员:负责数据库的建立、使用和维护等工作的专门人员。 二、数据库系统的特点 1. 数据管理技术的产生和发展 2. 数据管理三个阶段的比较 3. 数据库系统的特点: a)数据结构化; b)数据库的共享性高、冗余度低、易扩充; c)数据独立性高; d)数据由DBMS统一管理和控制。 三、数据模型的三要素 1. 要点:(1)数据模型、(2)概念模型、(3)数据模型的三要素 2. 模型:是现实世界特征的模拟和抽象。地图、航模飞机。 (1)数据模型分成两个不同的层次: a)概念模型:也称信息模型,它是按用户的观点来对数据和信息建模。 b)数据模型:通俗地讲数据模型就是现实世界数据特征的模拟和抽象。在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。 数据模型的特点: a)较真实地模拟现实世界; b)容易为人理解; c)便于上机实现。 数据模型主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。 (2)概念模型:用于信息世界的建模,是不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一DBMS支持的特定数据模型。 概念模型特点: a)具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。 b)应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。 信息世界中的基本概念: Ø实体(Entity):客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。 Ø属性(Attribute):实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。 Ø码(Key):唯一标识实体的属性集称为码。 Ø域(Domain):属性的取值范围称为该属性的域。 Ø实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。 Ø实体集(Entity Set):同型实体的集合称为实体集。 Ø联系(Relationship):现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。 a)一对一联系(1:1) 如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。记为1:1。 b)一对多联系(1:n) 如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体B有一对多联系。记为1:n。 c)多对多联系(m:n) 如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系。记为m:n。 实体型之间的一对一、一对多、多对多联系不仅存在于两个实体型之间,也存在于两个以上的实体型之间。同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的关系。 表示概念模型的实体-联系方法(Entity-Relationship Approach):该方法用E-R图来描述现实世界的概念模型。 E-R图提供了表示实体型、属性和联系的方法: a)实体型:用矩形表示,矩形框内写明实体名。 b)属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。 c)联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。 注意:联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。 (3)数据模型的三要素 Ø数据结构 数据结构:是所研究的对象类型的集合。这些对象是数据库的组成成分,是对系统静态特性的描述。 Ø数据操作 数据操作:是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。是对系统动态特性的描述。 数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。 Ø数据的约束条件 数据的约束条件:是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依据规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。此外,数据模型还应该提供定义完整性约束条件的机制,反映具体应用所涉及的数据必须遵守的特定的语义约束条件。 Ø数据通信接口 第二章 关系数据库 重点与难点: Ø关系数据结构 Ø关系代数 Ø关系演算 一、关系数据结构 关系模型的数据结构:非常单一,在用户看来,关系模型中数据的逻辑结构是一张二维表。但关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种联系。 关系操作采用集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一集合的方式。 关系模型中常用的关系操作包括二类: Ø查询操作:选择、投影、连接、除、并、交、差等 Ø更新操作:增、删、改操作 表达或描述关系操作的关系数据语言可以分为三类: Ø关系代数 Ø关系演算 Ø关系数据标准语言SQL 二、关系代数 1. 传统的集合运算: Ø并(Union) 设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并由属于R或属于S的元组组成。其结果关系仍为n目关系。记作: R∪S={t|t∈R∨t∈S} Ø差(Difference) 设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。记作: R-S={t|t∈R∧t¬∈S} Ø交(Intersection Referential integrity) 设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的交由既属于R又属于S的元组组成。其结果关系仍为n目关系。记作: R∩S={t|t∈R∧t∈S} Ø广义笛卡尔积(Extended cartesian product) 2. 专门的关系运算: Ø选择(Selection) Ø投影(Projection) Ø连接(Join) Ø除(Division) 3. 关系演算: 关系演算是以数理逻辑中的谓词演算为基础的。按谓词变元的不同,关系演算可分为元组关系演算和域关系演算。 第三章 关系数据库标准语言SQL 重点与难点: Ø单表查询 Ø连接查询 Ø嵌套查询 Ø视图 Ø嵌入式SQL 结构化查询语言SQL(Structured Query Language)是一种介于关系代数与关系演算之间的语言。 一、数据查询 1. 单表查询 2. 连接查询 3. 嵌套查询 4. 集合查询 二、数据定义 1. 定义基本表 2. 修改基本表 3. 删除基本表 4. 建立索引 5. 删除索引 三、数据更新 1. 插入数据 2. 修改数据 3. 删除数据 四、视图 1. 定义视图 2. 查询视图 3. 更新视图 五、数据控制 1. 授权 2. 收回权限 六、嵌入式SQL SQL语言提供了两种不同的使用方式。一种是在终端交互式方式下使用,我们前面介绍的就是作为独立语言由用户在交互环境下使用的SQL语言。另一种是将SQL语言嵌入到某种高级语言如PL/1、COBOL、FORTRAN、C中使用,利用高级语言的过程性结构来弥补SQL语言在实现复杂应用方面的不足,这种方式下使用的SQL语言称为嵌入式SQL(Embedded SQL),而嵌入SQL的高级语言称为主语言或宿主语言。 一般来讲,在终端交互方式下使用的SQL语句也可用在应用程序中。当然这两种方式细节上会有许多差别,在程序设计的环境下,SQL语句要做某些必要的扩充。 第四章 关系系统及查询优化 重点与难点: Ø关系系统的基本概念 Ø查询优化的一般准则 Ø优化的一般步骤 一、关系系统的基本概念 1. 关系系统的定义 关系系统:支持关系模型的数据库管理系统称为关系系统。关系系统和关系模型是两个密切相关而有不同的概念。关系模型中并非每一部分都是同等重要的,所以我们不苛求完全支持关系模型的系统才能称为关系系统。因此,我们给出一个关系系统的最小要求以及分类的定义。 2. 关系系统的分类: Ø表式系统 Ø(最小)关系系统 Ø关系上完备的系统 Ø全关系系统 二、查询优化的一般准则 1. 选择运算应尽可能先做。 在优化策略中这是最重要、最基本的一条。它常常可使执行时节约几个数量级,因为选择运算一般使计算的中间结果大大变小。 2. 在执行连接前对关系适当地预处理。 3. 把投影运算和选择运算同时进行。 如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系。 4. 把投影同其前或其后的双目运算结合起来,没有必要为了去掉某些字段而扫描一遍关系。 5. 把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算,连接(特别是等值连接)运算要比同样关系上的笛卡尔积省很多时间(如4.2.2中的实例)。 6. 找出公共子表达式。 三、优化的一般步骤 各个关系系统的优化方法不尽相同,大致的步骤可以归纳如下: 1. 把查询转换成某种内部表示 2. 把语法树转换成标淮(优化)形式 3. 选择低层的存取路径 4. 生成查询计划,选择代价最小的
|
|
学习指南三 |
第六章 关系数据理论 Ø规范化 Ø数据依赖的公理系统 一、规范化 为了使数据库设计的方法走向完备,人们研究了规范化理论,指导我们设计规范的数据库模式。按属性间依赖情况来区分,关系规范化的程度为1NF范式、2NF范式、3NF范式和BCNF范式等。 1. 函数依赖 2. 码 3. 范式 4. 1NF 5. 2NF 6. 3NF 7. BCNF 8. 多值依赖 9. 4NF 关系模式的规范化过程是通过对关系模式的分解来实现的。把低一级的关系模式分解为若干个高一级的关系模式。这种分解不是唯一的。 二、数据依赖的公理系统 为了求得给定关系模式的码,为了从一组函数依赖求得蕴含的函数依赖,例如已知函数依赖集F,要问X→Y是否为F所蕴含,就需要一套推理规则,这组推理规则是l974年首先由Armstrong提出来的。 Armstrong公理系统:设U为属性集总体,F是U上的一组函数依赖,于是有关系模式R〈U,F〉。 对R〈U,F〉来说有以下的推理规则: Ø自反律(Reflexivity):若YÍXÍU,则X→Y为F所蕴含。 Ø增广律(Augmentation):若X→Y为F所蕴含,且Z Ø传递律(Transitivity):若X→Y及Y→Z为F所蕴含,则X→Z为F所蕴含。 根据这三条推理规则可以得到下面三条很有用的推理规则: Ø合并规则:由X→Y,X→Z,有X→YZ。 Ø伪传递规则:由X→Y,WY→Z,有XW→Z。 Ø分解规则:由X→Y及Z 第七章 数据库设计 重点与难点: Ø数据库设计的步骤 Ø概念结构设计 Ø逻辑结构设计 数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库极其应用系统,有效存储数据,满足用户信息要求和处理要求。 一、需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 1. 需求分析的任务 需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。 2. 需求分析的方法 3. 数据字典 二、概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。 1. 概念结构设计的方法与步骤 设计概念结构通常有四类方法: Ø自顶向下 即首先定义全局概念结构的框架,然后逐步细化。 Ø自底向上 即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。这是最经常采用的策略是自底向上方法。即自顶向下地进行需求分析,然后再自底向上地设计概念结构。 Ø逐步扩张 首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。 Ø混合策略 但无论采用哪种设计方法,一般都以E-R模型为工具来描述概念结构。 2. 数据抽象与局部视图设计 第一步,首先要根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部视图即分E-R图。 第二步,集成局部视图。 集成局部E-R图时都需要两步:(1)合并;(2)修改与重构。 (1)合并分E-R图,生成初步E-R图 各分E-R图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。 Ø属性冲突 a)属性域冲突,即属性值的类型、取值范围或取值集合不同。 b)属性取值单位冲突。 Ø命名冲突 a)同名异义。 b)异名同义(一义多名)。 Ø结构冲突 (2)修改与重构,生成基本E-R图 分E-R图经过合并生成的是初步E-R图。之所以称其为初步E-R图,是因为其中可能存在冗余的数据和冗余的实体间联系,即存在可由基本数据导出的数据和可由其它联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,因此得到初步E-R图后,还应当进一步检查E-R图中是否存在冗余,如果存在则一般应设法予以消除。 修改、重构初步E-R图以消除冗余主要采用分析方法。除分析方法外,还可以用规范化理论来消除冗余。 三、逻辑结构设计阶段 设计逻辑结构应该选择最适于描述与表达相应概念结构的数据模型,然后选择最合适的DBMS。设计逻辑结构时一般要分三步进行: 1. 将概念结构转换为一般的关系、网状、层次模型; 2. 将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型转换; 3. 对数据模型进行优化。 关系模型的逻辑结构是一组关系模式的集合。而E-R图则是由实体、实体的属性和实体之间的联系三个要素组成的。所以将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式,这种转换一般遵循如下原则: 将概念结构转换为某个DBMS所支持的数据模型(例如关系模型),并对其进行优化。 四、数据库物理设计阶段 为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。 五、数据库实施阶段 运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 六、数据库运行和维护阶段 数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。 第八章 数据库恢复技术 重点与难点: Ø事务的基本概念和事务的性质 Ø事务故障的种类 Ø恢复的实现技术 Ø恢复策略 一、事务的基本概念和事务的性质 所谓事务是用户定义的一个操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。 事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这个四个特性也简称为ACID特性。 事务是恢复和并发控制的基本单位。保证事务ACID特性是事务处理的重要任务。事务ACID特性可能遭到破坏的因素有: 1. 多个事务并行运行时,不同事务的操作交叉执行。 2. 事务在运行过程中被强行停止。 二、事务故障的种类 1. 事务内部的故障 事务内部的故障有的是可以通过事务程序本身发现的(见下面转帐事务的例子),有的是非预期的,不能由事务程序处理的。 2. 系统故障 3. 介质故障 4. 计算机病毒 计算机病毒是具有破坏性、可以自我复制的计算机程序。计算机病毒已成为计算机系统的主要威胁,自然也是数据库系统的主要威胁。因此数据库一旦被破坏仍要用恢复技术把数据库加以恢复。 三、恢复的实现技术 恢复机制涉及的两个关键问题是: 1. 如何建立冗余数据 2. 如何利用这些冗余数据实施数据库恢复 建立冗余数据最常用的技术是数据转储和登录日志文件。通常在一个数据库系统中,这两种方法是一起使用的。 四、恢复策略 1. 事务故障的恢复 事务故障是指事务在运行至正常终止点前被中止,这时恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的。系统的恢复步骤是: a)反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。 b)对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。这样,如果记录中是插入操作,则相当于做删除操作(因此时“更新前的值”为空)。若记录中是删除操作,则做插入操作,若是修改操作,则相当于用修改前的值代替修改后的值。 c)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。 d)如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。 2. 系统故障的恢复 系统故障造成数据库不一致状态的原因有两个,一是未完成事务对数据库的更新可能已写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。因此恢复操作就是要撤消故障发生时未完成的事务,重做已完成的事务。 系统故障的恢复是由系统在重新启动时自动完成的,不需要用户干预。 系统的恢复步骤是: a)正向扫描日志文件(即从头扫描日志文件),找出在故障发生前已经提交事务(这些事务既有BEGIN TRANSACTION记录,也有COMMIT记录),将其事务标识记入重做(REDO)队列。同时找出故障发生时尚未完成的事务(这些事务只有BEGIN TRANSACTION记录,无相应的COMMIT记录),将其事务标识记入撤消队列。 b)对撤消队列中的各个事务进行撤消(UNDO)处理。 进行UNDO处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。 c)对重做队列中的各个事务进行重做(REDO)处理。 进行REDO处理的方法是:正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作。即将日志记录中“更新后的值”写入数据库。 3. 介质故障的恢复 第九章 并发控制 重点与难点: Ø并发控制的基本概念 Ø活锁和死锁 Ø封锁协议 Ø两段锁协议 一、并发控制的基本概念 数据库是一个共享资源,可以供多个用户使用。允许多个用户同时使用的数据库系统称为多用户数据库系统。 当多个用户并发地存取数据库时就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。并发控制机制是衡量一个数据库管理系统性能的重要标志之一。 并发操作带来的数据的不一致性问题。 1. 丢失修改(lost update) 2. 不可重复读(non-repeatable read) 3. 读“脏”数据(dirty read) 二、活锁和死锁 1. 活锁 如果事务T1封锁了数据R,事务T2又请求封锁R,于是T2等待。T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。然后T4又请求封锁R,当T3释放了R上的封锁之后系统又批准了T4的请求,…,T2有可能永远等待,这就是活锁的情形。 避免活锁的简单方法是采用先来先服务的策略。 2. 死锁 如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁R2,因T2已封锁了R2,于是T1等待T2释放R2上的锁。接着T2又申请封锁R1,因T1已封锁了R1,T2也只能等待T1释放R1上的锁。这样就出现了T1在等待T2,而T2又在等待T1的局面,T1和T2两个事务永远不能结束,形成死锁。 三、封锁协议 并发控制的主要技术是封锁(Locking)。 封锁是实现并发控制的一个非常重要的技术。所谓封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。 基本的封锁类型有两种: 排它锁(Exclusive locks 简记为X锁)和共享锁(Share locks 简记为S锁)。 排它锁:又称为写锁。若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其它事务在T释放A上的锁之前不能再读取和修改A。 共享锁:又称为读锁。若事务T对数据对象A加上S锁,则事务可以T读A但不能修改A,其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其它事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。 封锁协议:在运用X锁和S锁这两种基本封锁,对数据对象加锁时,还需要约定一些规则,例如应何时申请X锁或S锁、持锁时间、何时释放等。我们称这些规则为封锁协议(Locking Protocol)。对封锁方式规定不同的规则,就形成了各种不同的封锁协议。 三级封锁协议:对并发操作的不正确调度可能会带来丢失修改、不可重复读和读“脏”数据等不一致性问题,三级封锁协议分别在不同程度上解决了这一问题。为并发操作的正确调度提供一定的保证。不同级别的封锁协议达到的系统一致性级别是不同的。 一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。 二级封锁协议是:1级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。二级封锁协议除防止了丢失修改,还可进一步防止读“脏”数据。 三级封锁协议是:1级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。三级封锁协议除防止了丢失修改和不读‘脏’数据外,还进一步防止了不可重复读。 四、两段锁协议 所谓两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁: 1. 在对任何数据进行读、写操作之前,先要申请并获得对该数据的封锁。 2. 在释放一个封锁之后,事务不再申请和获得任何其他封锁。 若并发执行的所有事务均遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。 第十章 数据库安全性 重点与难点: Ø数据库安全性和计算机安全性的基本概念 Ø可信计算机系统评测标准 Ø数据库安全性控制 一、数据库安全性和计算机安全性的基本概念 数据库的安全性:是指保护数据库以防止不合法的使用所造成的数据泄露、更新或破坏。 所谓计算机系统安全性:是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。计算机安全不仅涉及到计算机系统本身的技术问题、管理问题,还涉及法学、犯罪学、心理学的问题。其内容包括了计算机安全理论与策略;计算机安全技术、安全管理、安全评价、安全产品以及计算机犯罪与侦察、计算机安全法律、安全监察等等。概括起来,计算机系统的安全性问题可分为三大类,即:技术安全类、管理安全类和政策法律类。 二、数据库安全性控制 1. 自主存取控制(DAC)方法 2. 强制存取控制(MAC)方法 第十二章 基于对象的数据库 重点与难点: Ø面向对象数据库的基本概念 Ø对象关系数据库的基本概念 第十三章 数据库技术新发展 重点与难点: Ø数据库技术的三个发展阶段 Ø分布式数据库系统的基本概念 Ø并行数据库系统的基本概念
|
|