数据库系统概论_第1页
数据库系统概论_第2页
数据库系统概论_第3页
数据库系统概论_第4页
数据库系统概论_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库系统概论 1天水电大天水电大 杨彩玲杨彩玲联系电话:联系电话:8621863E-mail:数据库系统概论 2目 录v第1章 数据库系统概述数据库系统概述 v第第2章章 数据库建模数据库建模 v第第3章章 关系模型和关系运算关系模型和关系运算 v第第4章章 数据库语言数据库语言SQL v第第5章章 查询优化和并发控制查询优化和并发控制 v第第6章章 关系数据库设计理论关系数据库设计理论 v第第7章章 数据库设计数据库设计 v第第8章章 SQL系统环境系统环境 v第第9章章 面向对象查询语言面向对象查询语言 数据库系统概论 3第1章 数据库系统概述数据库系统概述 1.1 数据管理技术的发展数

2、据管理技术的发展 数据管理:如何对数据进行分类组织储存检索及维护。 数据管理的三个阶段: 人工管理阶段 文件系统阶段 数据库系统阶段 数据库系统概论 4第1章 数据库系统概述数据库系统概述人工管理阶段人工管理阶段 时间:20世纪50年代中期以前 背景: 硬件:外存只有卡片、纸带、磁带 软件:汇编语言 数据批处理 特点: 数据不进行保存 没有专门的数据管理软件 数据面向应用 只有程序的概念 数据库系统概论 5第1章 数据库系统概述数据库系统概述文件系统阶段文件系统阶段 时间:20世纪50年代末到60年代中期 背景: 硬件:磁盘磁鼓等直接存取的外存设备 软件:操作系统高级语言操作系统中的文件系统是

3、专门用于数据管理的软件 文件批处理联机实时处理 特点: 数据可以长期保存在磁盘上 文件系统提供了数据与程序之间的存取方法 数据冗余度大 文件之间缺乏联系,相互孤立 数据库系统概论 6第1章 数据库系统概述数据库系统概述数据库系统阶段数据库系统阶段 时间:20世纪60年代末 背景: 硬件:大容量的磁盘 联机实时处理 特点: 数据的结构化 数据共享性好 数据独立性好 数据存取粒度小 数据库管理系统(DBMS,database management system) 数据库系统概论 7第1章 数据库系统概述数据库系统概述1.2 有关数据库的基本术语有关数据库的基本术语 数据:计算机用来描述事物的记录(

4、文字图形图像声音) 数据模型:是人们对现实世界的数据特征的抽象。(真实性易理解易实现) 数据模型三要素:数据结构数据操作和完整性约束 数据模型类型:层资模型网状模型关系模型 数据库:由DBMS管理的数据的聚集 数据库管理系统DBMS:是数据库系统核心,用户开发的数据库系统是建立在特定的DBMS之上 数据库系统概论 8第1章 数据库系统概述数据库系统概述数据库系统DBS(database system):包括和数据库有关的整个系统:数据库DBMS应用程序数据库管理员和用户等。 数据库系统应该是: 允许用户用一种叫做“数据定义语言“的专用语言建立新的数据库。 允许用户用一种叫做“数据操作语言“或者

5、“查询语言“的专用语言来对数据库中的数据进行查询和更新 支持存储大量的数据,保证对数据的正确及安全使用 控制多用户的并发访问,保证并发方问不相互影响,不损坏数据 数据库系统概论 9第1章 数据库系统概述数据库系统概述数据的完整性 数据的安全性 并发控制 数据库的恢复 为用户提供了友好的接口 数据库系统概论 10第1章 数据库系统概述数据库系统概述1.3 关系数据库系统关系数据库系统 什么是关系?就是一张表 表名表名 属性(域)属性(域) 元组元组 键码键码:根据关系中的某个属性或属性集 能唯一确定一个元组,由把这个属性(集)称为关系的键码。 关系不仅可以用来表示某个实体,也可以用来表示实体和实

6、体之间的联系关系模型 数据以“关系”的形式,也就是二维表的形式来表示,其数据模型就是关系模型。 数据库系统概论 11第1章 数据库系统概述数据库系统概述关系数据库系统关系数据库系统 以关系模型为基础的数据库系统就是关系数据库系统,是当前数据库系统的主流。 1.4 数据库系统的体系结构数据库系统的体系结构 三层模式:外模式、模式、内模式 二层映象功能:外模式/模式映象和模式/内模式映象 三层模式结构三层模式结构 外模式外模式:又称为用户模式,是数据库用户和数据库系统的接口,是数据库用户的数据视图,是数据库用户可以看见和使用的局部数据的逻辑结构和特征的描描述。 一个数据库通常都有多个外模式。一个应

7、用程序只能使用一个外模式,但同一外模式可为多个应用程序所用。 数据库系统概论 12第1章 数据库系统概述数据库系统概述模式模式:可细分为概念模式和逻辑模式,是所有数据库用户的公共数据视而不见衅,是数据库中全部数据的逻辑结构和特征的描述。 一个数据库只有一个模式。模式不但要描友谊赛数据的逻辑结构,还要描述数据之音的联系、数据的完整性、安全性要求。 内模式:内模式:又称为存储模式,是数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。 一个数据库只有一个内模式。内模式并不涉及物理记录,也不涉及硬件设备。三层模式关系:数据库模式是数据库的核心和关键,外模式通常是模式的了集。数据按外模式的描

8、述提供用户,按内模式的描述存储在硬盘上,而模式介于外、内模式之间,既不涉及外部的访问,也不涉及内部的存储,从而起到隔离作用,有利于保持数据的独立性,内模式依赖于全局逻辑结构,但可以独立于具体的存储设备。数据库系统概论 13第1章 数据库系统概述数据库系统概述两层映象功能两层映象功能 映象:是一种对应规则,说明映象双方如何进行转换。 外模式/模式映象 作用:把描述局部逻辑结构的外模式与描述全局逻辑结构的模式联系趣来。 当模式改变时,只要对外模式/模式映象做相应的改变,使外模式保持不变,则以外模式为依据的应用程序不受影响,从而保证了数据与程序之间的逻辑独立性,也就是数据的逻辑独立性 模式/内模式映

9、象 数据库系统概论 14第1章 数据库系统概述数据库系统概述作用:把描述全局逻辑结构的模式与描述物理结构的内模式联系起来。 当内模式改变时,比如存储设备或存储方式有所改变,只要模式/内模式映象做相应的改变,使模式保持不变,则应用程序就不受影响,从而保证了数据与程序之的物理独立性。 1.5 DBMS的体系结构的组成概述的组成概述 DBMS的主要组成部分如图示(P10图1.8) 三种类型的DBMS输入:查询、更新、模式更新 数据库系统概论 15第1章 数据库系统概述数据库系统概述查询: 两种生成方式:(1)通过通用的查询接口 (2)通过应用程序的接口 更新:对数据的插入、修改和删除等操作统称为更新

10、(如上的两种生成方式) 模式更新:数据库的模式是指数据的逻辑结构。模式更新命令一般只能由数据库管理员使用。 查询处理程序查询处理程序 任务任务是把用较高级的语言所表示的数据库操作转换成一系列对数据库的请求。它的一个重要任务是“优化”查询,即为给予定的查询找出好的解答算法。 数据库系统概论 16第1章 数据库系统概述数据库系统概述存储管理程序存储管理程序 包括两部分:文件管理程序和缓冲区管理程序。它既管理磁盘存储器上的数据文件,又管理存放数据文件部分内容的内存缓冲区。 事务管理程序事务管理程序 事务是数据库的基本工作单元。典型的DBMS允许用户把一个或多个数据库操作组成“事务”。数据库系统常常允

11、许多个事务并发地执行,事务管理程序的任务任务就是保证这些事务全都能正确执行。 事务的特性: 原子性 一致性 隔离性 数据库系统概论 17第1章 数据库系统概述数据库系统概述持久性 如何实现上述特性: 加锁 日志文件 事务提交 客户程序客户程序/服务程序体系结构服务程序体系结构 数据库管理系统通常支持客户程序/服务程序体系结构,DBMS的核心部分都属于服务程序,而客户程序则负责用户接口。 1.6 数据库系统运行过程数据库系统运行过程 数据库系统运行过程示意图 数据库系统概论 18第第2章章 数据库建模数据库建模 2.1 对象定义语言对象定义语言ODL 对象定义语言对象定义语言:通过给出类的属性、

12、联系和方法来描述面向对象的模型。属性用数据类型来描友谊赛。常用的数据类型包括整型、字符串、枚举型以及结构、集合、数组、包和列表等形式的结构类型。其中集合、数组、包和列表又统称为聚集类型。联系用与之相连的类来描述。联系有单值联系和多值联系之分。 数据库系统概论 19第第2章章 数据库建模数据库建模面向对象的设计面向对象的设计 对象:指某种可观察、可研究的实体。 类:具有相似特性的对象归为一类。 三种特性: 属性(attribute):类型是由基本的数据类型构成的。只有有限的几种。 联系(relationship):类型是对某类对象的引用或是这种引用的集合。 方法(method):是能用于该类对象

13、的函数。 数据库系统概论 20第第2章章 数据库建模数据库建模数据库建模:在设计数据库时,对现实世界进行分析、抽象、并从中找出内在联系,进而确定数据库的结构,这一过程就称为数据库建军模。它主权包括两部分内容:确定最基本的数 据结构;对约束建模。 数据库模式的两种表示法:实体联系模型(E/R);对象定义语言(ODL)本章导读数据库设计的过程(建模和实现2.2 实体联系模型(E/R图)数据库系统概论 21第第2章章 数据库建模数据库建模 类的说明类的说明 说明一个类的最简单形式: 关键字interface(接口) 类的名字 用花括号括起来的类的特性表 Example: interface 数据库系

14、统概论 22第第2章章 数据库建模数据库建模 的属性的属性 Interface Course Attribute integer CourseNo; /课程号 attribute string CourseName; /课程名 Attribute string Teacher; /任课老师 1.若增加一个结构类型的Date属性,用年月是表示: Attribute Sturct Date integer Year,interger Month,interger DayCourseDate; /开课日期 数据库系统概论 23第第2章章 数据库建模数据库建模 例2:电影类Movie Interfac

15、e Movie attribute string Title; /电影名 attribute integer Year; /电影制作年 attribute integer Length; /电影长度 attribute enum Filmcolor,blackwhiteType;电影类型 ; 注意:type的类型是枚举类型,属性type有两种可能的取值(color,blackwhite)。 数据库系统概论 24第第2章章 数据库建模数据库建模 中的联系和反向联系中的联系和反向联系 注意: 描述一个对象需把属性和对象间的联系都描述出来才更完整 。 例1:course 和student类间建立联系

16、 在course添加代码: Relationship Set students ; /选课学生集合 (注意有无set的区别: Relationship student represent; /课代表 )数据库系统概论 25第第2章章 数据库建模数据库建模在student类的说明中添加: Relationship Set courses; /所选课程集合 一个完整的课程类定义: Interface course attribute integer courseno; attribute string coursename; attribut string Teacher; Relationshi

17、p Set students inverse student: :courses; 数据库系统概论 26第第2章章 数据库建模数据库建模例2:movie 和 actor 在movie中添加: relationship set actor; /演员集合 在actor中添加: relationship set movie; /出演电影集合 数据库系统概论 27第第2章章 数据库建模数据库建模反向联系 例1:students和course并不是两个毫不相干的联系,如果某个学生出现在某门课程的选课学生集合中,那么这门课程就应该在这个学生的所选课程集合中;反之亦然。 相应代语句修改如下: 在course

18、中: relationship set students inverse Student:course; /选课学生集合及其反向联系 在student中: relationship set courses inverse course:students; 数据库系统概论 28第第2章章 数据库建模数据库建模例2:movie和actor类中的语句修改如下: relationship Setactors inverse Actor: :movies; relationship Set movies inverse Movie: :actors; 数据库系统概论 29第第2章章 数据库建模数据库建模

19、联系的三种类型:多对多,多对一或一对多,一对一。联系的三种类型:多对多,多对一或一对多,一对一。 P21-P23(举例讲)2.2 实体联系模型(E/R图)属性:它用某个简单类型的什来描述对象的某个方面。 属性的类型:整型、浮点型、字符类型、字符串类型、布尔类型、枚举类型、结构、集合、数组等类型。 数据库系统概论 30第第2章章 数据库建模数据库建模例1:学生选课数据库(Course) 三个主要部分: 实体集 属性 联系: 与ODL区别:ODL中一对反向的联系在E/R图中用单一的联系来表示,而且ODL中的联系最多只能涉及两个类,而E/R图中的联系可以涉及两个以上的实体集。 学生选课数据库结构的设

20、计(P23 图2.2) 数据库系统概论 31第第2章章 数据库建模数据库建模 电影资料数据库(P24图2.3) 实体和实体集、联系与联系集图中联系的三种类型 一对一、一对多或多对一、多对多 联系中的角色联系中的角色(P25图2.5) 联系的多向性(联系的多向性(P2526) 多元联系转换为二元的联系 2.3 设计原则设计原则真实性真实性 最基本的设计原则:类(实体集)和属性应当是真实的,应当反映客观现实。 数据库系统概论 32第第2章章 数据库建模数据库建模 避免冗余避免冗余 设计过程中注意:任何事物都只表达一次,否则既浪费空间,又容易造成不必要的麻烦。 简单性简单性 设计过程中,要设法避免引

21、入过多的元素,要应该尽量简单明了。 合理选择元素类型合理选择元素类型 思想:假如某个事物具有比名称更多的信息(属性),那么作为类/实体集来实现更加合适;然而,如果它除了名称之外不具有其他信息,那么作为属性可能更合适。 数据库系统概论 33第第2章章 数据库建模数据库建模 2.4 子类子类子类(子类(subclass): 从一个类中取出具有某些附加特性的对象组成一个附属的类,称为子类。子类除了具有原有类的特性以外,还具有自己附加的特性属性和/或联系。用这种类与子类的层次关系往往能更好地反映现实世界的层次结构。ODL和E/R都支持这种层次结构。 数据库系统概论 34第第2章章 数据库建模数据库建模

22、 中的子类中的子类 例1:为研究生定义一个类Student的子类:Postgraduate Interface Postgraduate:Student attribute string Tutor; ; 注意:子类能自动继承其超类的所有特性(属性和联系) 例2:为动画片定义一个Movie的子类cartoon interface Cartoon:Movie relationship Set voices; ; 数据库系统概论 35第第2章章 数据库建模数据库建模 中的多重继承:中的多重继承:一个类可以有多个子类,而子类本身又可以具有子类。一个类还可能有多个超类。 一个类有多个子类: 例:在mo

23、vie中定义了cartoon的子类,假设再定义谋杀片子类Murder: interface Murder:Movie attribute string Weapon; 数据库系统概论 36第第2章章 数据库建模数据库建模 子类又可有子类,一个类可有多个超类 interface Cartoon-Murder:Cartoon,Murder; 注意:如此复杂,易造成混淆,如不同类中不同属性域的相同属性名。 避免由于多重继承而产生的冲突的机制: 指出特性(属性或者联系)的两个定义中哪一个适用于子类。 重新命名有相同名字的另一个特性。 为子类重新定义在它的一个或多个超大型类中已经定义过的某些特性。 数据

24、库系统概论 37第第2章章 数据库建模数据库建模 图中的子类(图中的子类(isa) P30 图2.10 图中的继承图中的继承 P30-31图2.11 2.5 对约束的建模对约束的建模对约束建模对约束建模:反映客观世界的各种数据,一般都不是孤立的,往往有着错综复杂的内在联系,而且对其取什也有一定的限制和要求,要使所建立的数据库准确、全面地反映现实世界,就要对这些内容进行说明、加以规范,这就是对约束建模。对约束建模是数据库建模的重要组成部分。对约束建模最重要的两部分是:说明某个属性或属性集构成键码;说明实体集(或类、关系)之间的引用完整性约束。 数据库系统概论 38第第2章章 数据库建模数据库建模

25、 常见的约束信息: 键码:是在ODL中类的范围内唯一标识一个对象,或者在E/R图中实体集的范围内唯一标识一个实体的属性或属性集。 单值约束要求某个属性的值是唯一的,键码是单值约束的主要来源。 引用完整性约束要求某个对象所引用的值在数据库中确实存在。 域约束要求某个属性的值必须处于特定的范围内或者取自特性值的集合。 一般约束是要求在数据库中保存的任意断言。 数据库系统概论 39第第2章章 数据库建模数据库建模 键码键码 ODL: 一个键码(由一个属性组成) interface studio(key name) ; 一个键码(由属性集组成) interface Movie(key(title,ye

26、ar) ; 多个键码 interface Studio(key name,studioNo) ; 数据库系统概论 40第第2章章 数据库建模数据库建模 E/R(用下划线表示):一个键码(由一个属性组成) 一个键码(由属性集组成) 多个键码:把主键码看成实体集唯一的键码。 单值约束:单值约束: 引用完整性:引用完整性:一个实体中某个特定属性(集)(通常称为外键码)的取值,如果不是空值,则只能引用另一个实体确实存在的键码属性(集)的值,而不能引用该键码属性取值以外的任何值,两个实体之音的这种联系就称为引用完整性。 其他类型的约束其他类型的约束 数据库系统概论 41第第3章章 关系模型和关系运算关系

27、模型和关系运算 3.1 关系模型的基本概念关系模型的基本概念 关系模型:用称为关系的二维表来表示数据,其数据模型就称为关系模型。二维表的行称为元组,列以属性开头,对于每个属性,都有元组的一个分量与之对应。(例如P39图3.1)属性属性:属性就是关系的标题栏中各列的名字,描述了该列各数据项的含义。模式模式:关系的名称和关系的属性集称为关系的模式。例:student(StudentNo,StudentName,Age,Dept)元组元组:除了关系的标题栏外,其他各行统称为“元组”。数据库系统概论 42第第3章章 关系模型和关系运算关系模型和关系运算 元组和对象的联系和区别:可以认为一个元组就表示一

28、个对象,而元组所属的关系就表示对象所属的类。对象具有同一性,而元组没有。域:域: 关系模型要求每个元组的每个分量都是原子的,即必须属于某种基本类型,假设与关系的每个属性相关的特定基本类型称为“域”,那么关系的任何元组的每个分量都必须在对应列的域中取值。关系的等价表示法关系的等价表示法 我们可以重新排和列,而关系并不改变。关系的实例关系的实例 给定关系中元组的集合称为该关系的“实例”。数据库系统概论 43第第3章章 关系模型和关系运算关系模型和关系运算 3.2 从从ODL设计到关系设计设计到关系设计 先用ODL或者E/R图来进行数据库设计,再将该设计转换成关系模型。为什么非要把一步能完成的事情转

29、换成两步?(P41)从从ODL属性到关系属性属性到关系属性 若类的所有特性都是属性,而不是联系或者方法,并且属性都是原子类型。在这种情况下,对类建立对应的关系,类的第个属性对应于该关系的一个属性。而要把类中的对转换成元组,只需把该对象在类的四个属性上的取值作为元组的分量即可。数据库系统概论 44第第3章章 关系模型和关系运算关系模型和关系运算 类中的非原子属性类中的非原子属性 1) 如果某属性是多个值的集合,则针对每个值建立一个元组。(例P42图3.4)2) 如果某属性的类型是定长的数组,则在关系中用带有数组和下标的属性来表示类中的数组类型的属性。(例P43图3.5)单值联系的表示单值联系的表

30、示 方法:只需要建立相关类中构成键码的属性集就可以表示相关类的对象。(例P44图3.6)多值联系的表示多值联系的表示 方法:首先,和单值联系一样,要找出表示每个相关对象的键码;其次,和表示集合类型的属性一样,为相关对象集合的每个元素建立一个元组。(例P44图3.7)数据库系统概论 45第第3章章 关系模型和关系运算关系模型和关系运算 缺点:数据冗余大。联系与反向联系的表示联系与反向联系的表示 同一样联系,无须两者都表示出来,只要在其中一个地方表示就可以了。子类的表示子类的表示 原则:1)每个子类都对应于一个关系;2) 这个关系用相应子类的所有特性(包括从超类继承下来的全部特性)来表示。数据库系

31、统概论 46第第3章章 关系模型和关系运算关系模型和关系运算 3.3 从从E/R图到关系设计图到关系设计 E/R与ODL主要有以下区别:1) 在E/RL图中,联系作为独立的概念存在,而不是像ODL那样作为特性嵌套在类定义中,这有助于避免数据冗余。2) 在ODL中,属性可能是任意的聚集类型,比如集合;而在E/R图中,虽然并没有严格规定允许使用的数据类型,但通常都认为允许使用结构化的数据,而不允许使用集合或者其他聚集类型的数据。3) 在E/R图中,联系可以具有属性,而ODL中没有相应的概念。数据库系统概论 47第第3章章 关系模型和关系运算关系模型和关系运算 实体集到关系的转换实体集到关系的转换

32、直接把E/R图中的属性对应成相应的属性。(例P46图3.8、图3.9)联系到关系的转换联系到关系的转换 对于一个联系R,它所对应的关系应该具有如下属性:一是联系R所涉及到的每个实体集的键码属性(集),二是R本身的属性。从E/R图转换到关系模式比从ODL转换到关系模式的优点:在ODL中,双向ODL联系会带来大量数据冗余;而从E/R图出发,用单个的关系就可以表示双向的联系。数据库系统概论 48第第3章章 关系模型和关系运算关系模型和关系运算 “属于属于”联系到关系的转换联系到关系的转换 新建立的关系的属性包括被属于的实体集的键码及相应实体集的属性。3.4 关系代数(关系代数(p47p54) 关系代

33、数:是以代数的形式对关系模式进行查询的一种语方,其中要运算并、交、差、选择、投影、笛卡儿积、自然连接、连接和改名。综合使用这些运算可以表达各种各样的查询要求。数据库系统概论 49第第3章章 关系模型和关系运算关系模型和关系运算 关系的集合运算:并、交、差关系的集合运算:并、交、差 关系R和S必须满足条件:1)两者的模式具有相同的属性集;2) 对两者进行集合运算之前,要对两者的属性列进行排序,保证两个关系的属性顺序相同。运算定义如下:1) RS,是R中的元素和S中的元素共同组成的集合。2) RS,是既出现在R中又出现在S中的元素组成的集合。3) RS,是只在R中出现,不在S中出现的元素组成的集合

34、。数据库系统概论 50第第3章章 关系模型和关系运算关系模型和关系运算 投影投影 该运算作用于关系R将产生一个新关系S,S只具有R的某几个属性列。选择选择 该运算作用于关系R也将产生一个新关系S,S的元组集合是R的一个满足某条件C的子集。笛卡儿积笛卡儿积 R X S,其关系模式是R和S的模式的并集,是R和S的元组以所有可能的方式组合起来。当R和S有同名的属性,至少要为其中一个属性重新命名。数据库系统概论 51第第3章章 关系模型和关系运算关系模型和关系运算 自然连接自然连接 其关系模式是R和S模式的并集。假设A1、A2、An是R和S的模式中的公共属性,那么如果R的元组r和S的元组s在这些属性上

35、取值都相同,r和s组合而成的元组就归入该自然连接中。连接连接 先将R和S笛卡儿积,然后从R X S的元组中选择满足条件C的元组集合。改名改名 1) 只改关系名2) 不仅该关系名,且改属性名 数据库系统概论 52第第3章章 关系模型和关系运算关系模型和关系运算 复合运算复合运算 基本运算和导出运算基本运算和导出运算 除了交、连接、自然连接这三种运算可由其他运算导出外,另外六种运算并、选择、投影、笛卡儿积和改名都是基本运算,每一种都不能由另外五种运算导出。3.5关系演算关系演算 关系演算:把数理逻辑中的谓词演算应用到关系中,就是所谓的关系演算。在关系演算中,以元组为变量称为元组关系演算,而以域为变

36、量,则称为域关系演算。关系代数中的8种运算都可用元组关系演算表达式来表达,用关系演算表达查询时,还常用到存在量词不达意和全称量词。 数据库系统概论 53第第3章章 关系模型和关系运算关系模型和关系运算 元组关系演算元组关系演算 什么是原子公式?公式是定义?运算符的优先级?1、 交2、 并3、 差4、 选择5、 投影6、 笛卡儿积7、 自然连接8、 连接9、 复杂的关系代数表达式数据库系统概论 54第第3章章 关系模型和关系运算关系模型和关系运算 域关系演算域关系演算 元组关系演算的表达式中用的是元组变量,而域关系演算表达式中用的是元组分量的变量,简称为域变量。3.6 关系逻辑关系逻辑 关系逻辑

37、:是以逻辑的形式对关系模型进行查询的一种语言,具体用的查询语言称为数据逻辑。在数据逻辑中,用规则来表达查询。规则主要由称为部关系原子和含有一个或多个原子的体组成。体中的原子称为子目标,既可以是关系原子,也可以是算术原子。关系代数中的8种运算也都能用数据逻辑规则来表达。总之,关系代数、关系演算和关系逻辑完全等价。数据库系统概论 55第第3章章 关系模型和关系运算关系模型和关系运算 谓词和原子谓词和原子 规则和查询规则和查询 从关系代数到数据逻辑从关系代数到数据逻辑 1、交2、并3、差4、选择5、投影6、笛卡儿积7、自然连接8、连接10、 复杂的关系代数表达式数据库系统概论 56第第4章章 数据库

38、语言数据库语言SQL 4.1 SQL的特点的特点 1) 高度非过程化2) 面向集合的操作方式3) 简洁易学,灵活易用4.2 简单查询简单查询 1) 格式: SELECT * /*表示关系中所有的属性名,可自己按要求罗列几个属性 FROM 关系名数据库系统概论 57第第4章章 数据库语言数据库语言SQL WHERE 选择条件2) 来的结果关系中的属性另个取名SELECT 属性的原名 AS 别名例:(P71) SELECT Studentname as name,清华大学学生 as description, 2000-Age AS BirthYear FROM Student 数据库系统概论 58

39、第第4章章 数据库语言数据库语言SQL选择条件的构成选择条件的构成 字符串的比较字符串的比较 属性名 like 字符串1)% 能和由任意字符组成的任意长度的字符序列匹配,-能和任意一个字符匹配。1) 用两个连续的单引号来表示一个真正的、单独的单引号,而不表示字符串的结束。而在 % 和 - 之前加上转义符表示这里的%和-是一个普通的字符。连续两个就表示一个真正的 。日期和时间的比较日期和时间的比较 YYYY-MM-DD HH:MM:SS(.X)数据库系统概论 59第第4章章 数据库语言数据库语言SQL输出的排序输出的排序 OEDER BY 聚合运算符聚合运算符 11) SUM22) AVG33)

40、 MIN44) MAX55) COUNT分组分组 GROUP BY 分组属性 HAVING 条件数据库系统概论 60第第4章章 数据库语言数据库语言SQL4.3 连接查询连接查询 连接查询:对涉及两个或两个以上的关系进行查询,最本的方法是采用连接查询。其查询语句把关系代数中的自然连接、选择和投影简单地融合在一起。 查询的并、交、差查询的并、交、差 并:UNION交:INTERSECT差:EXCEPT连接与笛卡儿积(连接与笛卡儿积(P77) 元组变量元组变量 数据库系统概论 61第第4章章 数据库语言数据库语言SQL4.4 嵌套查询嵌套查询 嵌套查询:把SELECT-FROM-WHERE查询作为

41、子查询用于另一个查询的WHERE子句中,称为嵌套查询。可把运算符EXISTS、IN、ALL和ANY用于子查询的结果关系来表示布尔值条件;若对表达式求反,可在适当位置加上NOT,如果能确信子查询的结果为单值(仅一个元组、一个分量),就可以在外层查询的WHERE子句中直接用比较运算符。数据库系统概论 62第第4章章 数据库语言数据库语言SQL产生单值的子查询(产生单值的子查询(P79) 涉及到关系的选择条件涉及到关系的选择条件 1) EXIST2) IN3) ALL4) ANY涉及到元组的选择条件涉及到元组的选择条件 数据库系统概论 63第第4章章 数据库语言数据库语言SQL相关子查询相关子查询

42、简单的子查询是在整个嵌套查询过程中只求一次值,并将查询结果用于其外查询。更为复杂的子查询是在整个过程中多次求值,每次对子查询中来自子查询外部元组变量的某一项赋一个值,这一类子查询称为相关子查询。对于相关子查询来说,外层关系有多少个元组,就要做多少次子查询。而对于非相关子查询,子查询只做一次,随后对外层关系的每个元组所作的处理均为此为共同的基础。如果我们不希望得到重复的查询结果,可以在关键字SELECT后面加上关键字DISTINCT。SQL中用包(bag)而不是集合(set)作为关系的数据模型,一个重要的原因就是节省时间。另外还有一个重要原因就是用包更能体现统计特性。数据库系统概论 64第第4章

43、章 数据库语言数据库语言SQL数据库更新数据库更新 插入插入 INSERT INTO R(A1,A2,An) VALUES(V1,V2,V3,Vn)删除删除 DELETE FROM R WHERE修改修改 UPDATE R SET A1=E1,A2=E2,An=En WHERE数据库系统概论 65第第4章章 数据库语言数据库语言SQL4.6 定义关系模式定义关系模式 数据定义:(P98)属性的数据类型1) CHAR(n)2) BIT(n)3) INT4) FLOAT5) DATE数据库系统概论 66第第4章章 数据库语言数据库语言SQL定义表定义表 1)格式:CREATE TABLE( A1数

44、据类型, A2数据类型, An);2)NOT NULL表示某个属性的分量值不能为空;UNIQUE表示对某个属性进行单值约束;DEFAULT用来指定某个属性的分量的默认值。数据库系统概论 67第第4章章 数据库语言数据库语言SQL撤销表撤销表 格式:DROP TABLE R更改关系模式更改关系模式 格式:ALTER TABLE R 具体的更改操作建立和撤销索引建立和撤销索引 索引:就是一种为关系中的给定属性提供存取路径的数据结构。CREATE INDEX索引名ON关系名(属性名);DROP INDEX 索引名;数据库系统概论 68第第4章章 数据库语言数据库语言SQL4.7 视图的定义和查询视图

45、的定义和查询 它们实际上并不存在,只是在逻辑上可以看作是一张表,我们称之为“视图”(view)。我们可以把视图当成是普通的关系一样予以建立,查询、修改或者删除。定义视图定义视图 CREATE VIEW视图名AS子查询;事实上,数据库中只存放视图的定义,实际的数据仍然放在原基本表的物理存放位置上。视图不仅可以建立在一个基本表上,也可以建立在多个基本表上。也可以建立在另一个视图之上。查询视图查询视图 更新视图更新视图 撤消视图撤消视图 DROP VIEW数据库系统概论 69 第第5章章 查询优化和并发控制查询优化和并发控制 查询优化查询优化:对于给定的查询选择代价最小的操作序列,使查询过程既省时间

46、,具有较高的效率,这就是所谓的查询优化。对于关系数据库系统,用户只要提出“做什么”,而由系统解决“怎么做”的问题。具体来说,是数据库管理系统中的查询处理程序自动实现查询优化。数据库系统概论 70 第第5章章 查询优化和并发控制查询优化和并发控制 5.1 查询优化的一般策略查询优化的一般策略 1) 选择运算尽早进行。2) 投影运算与选择运算同时进行。3) 将笛卡儿积与随后的选择运算合并为连接运算。4) 投影运算与其他运算同时进行。5) 寻找公共子表达式并将结果加以存储。6) 对文件进行预处理。数据库系统概论 71 第第5章章 查询优化和并发控制查询优化和并发控制 5.2 关系代数的等价变换关系代

47、数的等价变换 变换规则变换规则 1) 连接或笛卡儿积的交换律2) 连接或笛卡儿积的结合律3) 投影的串接律4) 选择的交换/串接律5) 选择与投影的交换/串接律6) 选择对笛卡儿积的分配律7) 投影对笛卡儿积的分配律8) 选择对并的分配律9) 投影对并的分配律10) 择对差的分配律数据库系统概论 72 第第5章章 查询优化和并发控制查询优化和并发控制 应用举例应用举例 P1055.3 查询优化步骤查询优化步骤 步骤:1)把查询转换成一种内部表示2)利用关系代数等价变换规则以及查询优化的一般策略,将语法树进行优化3)选择适当的低层存取路径4)生成一组查询计划,从中选择一个代价最小的数据库系统概论

48、 73 第第5章章 查询优化和并发控制查询优化和并发控制 5.4 并发调度并发调度 并发调度并发调度:安排事务执行的次序称为调度;利用分时的方法同时处理多个事务,则称为事务的并发调度,也就是并发操作的调度。事务事务 事务事务:是在数据库上的一个或多个操作的序列,它必须以原子的方式执行,也就是说,所有的操作要么都做,要么都不做。在SQL中我们不必给出任何专门的事务开如语句,但是必须明确地结束一个事务。1) SQL语句COMMIT(提交)使事务成功地结束。2) SQL语句ROLLBACK(退回)使事务不成功地终止。数据库系统概论 74 第第5章章 查询优化和并发控制查询优化和并发控制 数据不一致性

49、数据不一致性 并发操作的不正确高度可能会带来三种数据不一致性:1)丢失修改;2)读“脏”数据;3)不可重复读;可串行化调度可串行化调度 可串行化调度可串行化调度:当且仅当多个事务并发执行的结果与按某一次序串行执行其结果相同,则认为并发操作是正确的,并称这种调度策略为可串行化调度。数据库系统概论 75 第第5章章 查询优化和并发控制查询优化和并发控制 5.5 封锁管理封锁管理 封锁机制中的主要概念封锁机制中的主要概念 封锁封锁:指的是某事务在对某数据对象(如关系)进行操作以前,先请求系统对其加锁,成功加锁之后该事务就对该数据对象有了控制权,只有该事务对其进行解锁之后,其他的事务才能更新它。数据库

50、管理系统提供的基本封锁类型:排它锁;共享锁。封锁对象的大小称为封锁的粒度。封锁粒度越大,并发控制的开锁越少;封锁粒度小了,并发控制的开销就要增加了。数据库系统概论 76 第第5章章 查询优化和并发控制查询优化和并发控制 封锁协议封锁协议:封锁是实现并发控制的主要技术。封锁分排它锁(X锁)和共享锁(S锁)两种类型。对X锁或S锁何时申请(加锁)、何时释放(解锁)均有约定的规则,称之为封锁协议。共有三级分锁协议可分别达到系统一致性的不同级别,依次解决不丢失修改、不读脏数据、可重复读等问题。1、 三级封锁协议1) 1级封锁协议2) 2级封锁协议3) 3级封锁协议数据库系统概论 77 第第5章章 查询优

51、化和并发控制查询优化和并发控制 2、 两段锁协议定义:把事务的执行过程分成申请封锁(加锁)阶段和释放封锁(解锁)阶段,这种规则称为两段锁协议。两段锁协议是保证并发调度可串行性的封锁协方。也就是说,凡遵守两段锁协议的任何调度,都是可串行化的调度。数据库系统概论 78第第6章章 关系数据库设计理论关系数据库设计理论6.1 函数依赖函数依赖 函数依赖的定义函数依赖的定义:如果关系R中的两个元组在某个特定的属性集A上一致,则它们在某个其他特定属性B上也一致,我们就称B与A之间的关系称为函数依赖。具体的说,就是B函数依赖于A,或者A函数决定B。数据库系统概论 79第第6章章 关系数据库设计理论关系数据库

52、设计理论关系的键码关系的键码 键码:键码:关系R中能函数决定该关系所有属性的最小属性集称为关系R的键码。即键码的任何真子集都不能函数决定该关系的所有属性。超键码超键码 函数依赖规则函数依赖规则 1 分解/合并规则(P120)数据库系统概论 80第第6章章 关系数据库设计理论关系数据库设计理论2 平凡依赖规则函数依赖A1,A2,AnB1,B2,Bm等价于A1,A2,AnC1,C2,Ck,其中C是B的子集,但不在A中出现。我们称这个规则为“平凡依赖规则”。3 传递规则如果 A1,A2,AnB1,B2,Bm和B1,B2,BmC1,C2,Ck,在关系R中成立,则A1,A2,AnC1,C2,Ck在R中成

53、立。这个规则称为传递规则。数据库系统概论 81第第6章章 关系数据库设计理论关系数据库设计理论计算属性的封闭集计算属性的封闭集 属性的封闭集:属性的封闭集:对于给定的函数依赖集S,属性集A函数决定的属性的集合就是属性集A在依赖集S下的封闭集。(例p122)6.2 模式设计模式设计 问题的提出问题的提出 1) 数据冗余2) 修改异常3) 删除异常4) 插入异常数据库系统概论 82第第6章章 关系数据库设计理论关系数据库设计理论问题的根源问题的根源 1、 完全依赖与部分依赖2、 传递依赖解决途径解决途径 所谓范式就是符合某一种级别的关系模式的集合。通过分解把属于低级范式的关系模式转换为几个属于高级

54、范式的关系模式的集合。这一过程称为规范化。1、 第一范式(1NF):一个关系模式R的所有属性都是不可分的基本数据项。2、 第二范式(2NF):关系模式R属于第一范式,且每个非主属性都完全函数依赖于键码。3、数据库系统概论 83第第6章章 关系数据库设计理论关系数据库设计理论 第三范式(3NF):关系模式R属于第一范式,且每个非主属性都不伟递领带于键码。4、 BC范式(BCNF):关系模式R属于第一范式,且每个属性都不传递依赖于键码。数据库系统概论 84第第6章章 关系数据库设计理论关系数据库设计理论分解的原则分解的原则 1、 无损连接当对关系模式R进行分解时,R的元组将分别在相应属性集进行投影

55、而产生新的关系。如果对新的关系进行自然连接得到的元组的集合与原关系完全一致,则称为无损连接。2、 保持依赖当对关系模式R进行分解时,R的函数依赖集也将按相应的模式进行分解。如果分解后总的函数依赖集与原函数依赖集保持一致,则称为保持依赖。数据库系统概论 85第第6章章 关系数据库设计理论关系数据库设计理论分解的方法分解的方法 模式分解的两个规则:1、 公共属性共享2、 相关属性合一模式分解的三种方法:1、 部分依赖归子集;完全依赖随键码2、 基本依赖为基础,中间属性作桥梁3、 找违例自成一体,舍其右全集归一;若发现仍有违例,再回首如法炮制。数据库系统概论 86第第6章章 关系数据库设计理论关系数

56、据库设计理论关系模式规范化小结关系模式规范化小结 基本思路:从非主属性到主属性逐步消除决定因素不是键码的非平凡函数依赖,从而使每个决定因素都包含键码(而不是键码的一部分)。6.3 多值依赖多值依赖 属性独立性带来的冗余属性独立性带来的冗余 数据库系统概论 87第第6章章 关系数据库设计理论关系数据库设计理论多值依赖的定义多值依赖的定义 设关系模式为R(A,B,C),其中A,B,C均为属性(集)。若B,C相互独立,且对A均有多个取值,我们就把属性B(或C)和A之间的这种多值相关性称为多值领带这时,在R中就会出现B,C取值集合的各种可能组合。当用对象定义语言(ODL)定义的类中含有两个或多个多值属

57、性或多值联系时,所转换的关系模式就会存在多值依赖。第四范式:第四范式:关系模式R中的非平凡多值依赖意味着把只有间接联系的属性放在一个模式中,会产生数据冗余和更新异常。在BC范式基础上消除非平凡多值依赖,则R属于第四范式。用规范的方法分解得到的属于第四范式的模式能实无损连接。 分解成第四范式分解成第四范式 数据库系统概论 88第第7章章 数据库设计数据库设计 7.1 概述概述 数据库设计的任务数据库设计的任务 数据库的生命周期:一是数据库的设计阶段,二是数据库的实施和运行阶段。数据库设计的基本任务:根据一个单位的信息需求、处理需求和数据库的支撑环境(包括DBMS、操作系统和硬件),设计出数据模式

58、(包括外模式、逻辑(概念)模式和内模式)以及典型的应用程序。数据库设计的两种不同的方法:一种是以信息需求为主,兼顾外理需求,这种称为面向数据的设计方法;另一种是以处理需求主主,兼顾信息需求,这种方法称为面向过程的设计方法。数据库设计的成果:一是数据模式,二是以数据库为基础的典型应用程序。数据库系统概论 89第第7章章 数据库设计数据库设计数据库设计的特点数据库设计的特点 1) 反复性2) 试探性3) 分步进行数据库设计的步骤(数据库设计的步骤(P143图图7.1) 1、 需求分析2、 概念设计3、 逻辑设计4、 物理设计数据库系统概论 90第第7章章 数据库设计数据库设计7.2 需求分析需求分

59、析 设计一个数据库,首先必须确认数据库的用户和用途。由于数据库是一个单位的模拟,数据库设计者必须对一个单位的组织机构、各部门的联系、有关事物和活动以及描友谊赛它们的数据、信息流程、政策和制度、报表及其格式和有关的文档等有所了解。收集和分析这些资料的过程称为需求分析。 元数据 数据字典(P145)数据库系统概论 91第第7章章 数据库设计数据库设计应用领域的调查应用领域的调查 两个阶段:第一阶段,对应用领域的组织结构、业务流程和数据流程进行调查,对现行系统的功能和所需信息有一个明确的认识;第二阶估,在第一阶段的基础上进行应用领域的分析,抽象出应用领域的逻辑模型,最后把逻辑模型用数据流图来表示。定

60、义信息与应用(定义信息与应用(P147) 定义数据库系统支持的信息的目的及步骤定义数据库系统支持的应用的目的及步骤数据库系统概论 92第第7章章 数据库设计数据库设计定义操作任务(定义操作任务(DBIPO图)图) 一个应用包括一个或多个数据库操作任务。每个数据库操作任务可属于多个应用。划分数据库操作任务的规则如下:1,2,3,4(P148)定义数据项(定义数据项(DD) 预测未来的改变预测未来的改变 数据库系统概论 93第第7章章 数据库设计数据库设计7.3 概念设计概念设计 概念设计的任务包括数据库概念模式设计和事务设计两个方面。其中事务设计的任务是,考察需求分析阶段提出的数据库操作任务,形

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论