《数据库系统课件汇总整本书电子教案全套课件完整版ppt最新教学教程最全课件.pptx》由会员分享,可在线阅读,更多相关《数据库系统课件汇总整本书电子教案全套课件完整版ppt最新教学教程最全课件.pptx(767页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 1.1 数据库系统概述 订票订票存取款存取款股票股票超市超市日常办公日常办公数据库系统 数据库系统已成为人们提高工作效率数据库系统已成为人们提高工作效率和管理水平的重要手段,已成为企业和管理水平的重要手段,已成为企业提高竞争力有力武器。提高竞争力有力武器。那么,什么是数据库系统?它是如何那么,什么是数据库系统?它是如何构成如何工作的呢?我们怎样才能成构成如何工作的呢?我们怎样才能成功开发出一个高性能的数据库系统呢功开发出一个高性能的数据库系统呢?数据库系统涉及的相关概念(1)数据()数据(DATA)如:)如:“姓名姓名“,12各各(2)数据)数据库库(DATABASE 简简称称DB)如:如:
2、xskc.mdb(ACCESS)(3)数据)数据库库管理系管理系统统(DataBase Management System 简简称称DBMS)如:如:MYSQL可以控制管理数据可以控制管理数据库库(4)数据)数据库库管理管理员员(Database Administrator DBA)(5)数据)数据库库系系统统(DataBase System 简简称称DBS)数据库系统(DataBase System 简称DBS)它是存它是存储介介质、处理理对象和管理系象和管理系统的集合体,一般由的集合体,一般由数据数据库、硬件、硬件、软件、数据件、数据库管理管理员四部分构成。四部分构成。1数据库(DataB
3、ase,简称为DB)数数据据库是是与与一一个个特特定定组织的的各各项应用用相相关关的的全全部部数数据的据的汇集。通常由两大部分集。通常由两大部分组成:成:(1)有有关关应用用所所需需要要的的工工作作数数据据的的集集合合,称称为物物理理数据数据库,它是数据,它是数据库的主体;的主体;(2)关关于于各各级数数据据结构构的的描描述述,称称为描描述述数数据据库,通常是由一个数据字典系通常是由一个数据字典系统管理管理。数据数据库构建主要是通构建主要是通过综合各个用合各个用户的文件,的文件,除去不必要的冗余,使之相互除去不必要的冗余,使之相互联系形成的数据系形成的数据结构,数据构,数据结构的构的实现取决于
4、数据取决于数据库的的类型型。2硬件支持系统硬件是数据库赖以存在的物理设备,包括CPU,内存,外存,数据通道等各种存储、处理和传输数据的设备。3软件支持系统软件支持系统 主主要要包包括括操操作作系系统、数数据据库管管理理系系统、各各种种宿宿主主语言和支持开言和支持开发的的实用程序等。用程序等。WINDOWS WINDOWS,UNIX /UNIX /操作系操作系统 ACCESS ACCESS,ORACLE /ORACLE /数据数据库管理系管理系统 C+,VB,ASP C+,VB,ASP等等等等 /宿主宿主语言言 XXX XXX工工资管理系管理系统 /应用程序用程序 4数据库管理员数据库管理员(D
5、atabase Administrator,简记为简记为DBA)管理、开管理、开发和使用数据和使用数据库系系统的人的人员主要主要有系有系统分析分析员、数据、数据库管管理理员(DBADBA)、)、应用程序用程序员和用和用户。应用系统(超市管理系统)应用系统(超市管理系统)应用开发工具软件应用开发工具软件(C+)数据库管理系统(数据库管理系统(MySQL)操作系统(操作系统(WINDOWS)硬件硬件/数据库数据库数据库用户数据库用户5。数据库系统层次结构图数据库系统层次结构图 1.2 数据库管理系统 数据库管理系统数据库管理系统(DBMS)(DBMS)是数据库系统中对是数据库系统中对数据进行管理的
6、软件,是数据库系统的核心组数据进行管理的软件,是数据库系统的核心组成部分。对数据库的一切操作,包括定义、查成部分。对数据库的一切操作,包括定义、查询、更新及各种控制等都是通过询、更新及各种控制等都是通过DBMSDBMS进行的。进行的。DBMSDBMS是用户与数据库的接口。是用户与数据库的接口。1.1.数据数据库的定的定义功能功能 DBMSDBMS提供数据定提供数据定义语言言(Data Definition(Data Definition Language,Language,简称称DDL)DDL)定定义数据数据库的的结构,包括外构,包括外模式、内模式及其相互之模式、内模式及其相互之间的映像,定的
7、映像,定义数据的数据的完整性完整性约束、保密限制等束、保密限制等约束条件。定束条件。定义工作是工作是由由DBADBA完成的。完成的。一.DBMS的主要功能 2 2.数据数据库操操纵功能功能 DBMSDBMS提供数据操提供数据操纵语言言(Data Manipulation Data Manipulation Language,Language,简称称DML)DML)实现对数据数据库的操作。基本的的操作。基本的数据操作有四种:数据操作有四种:检索、插入、索、插入、删除和修改。除和修改。DBMS的主要功能 3 3.数据数据库运行控制功能运行控制功能 DBMS DBMS对数据数据库的控制主要通的控制主
8、要通过四个方面四个方面实现:数据安全性控制、数据完整性控制、多用数据安全性控制、数据完整性控制、多用户环境境下的并下的并发控制和数据控制和数据库的恢复。的恢复。DBMS的主要功能 3 3.数据数据库运行控制功能运行控制功能 (1 1)数据安全性控制数据安全性控制 数据数据库安全性的控制是安全性的控制是对数据数据库的一种保的一种保护。它的作用是防止未它的作用是防止未经授授权的用的用户蓄意或无意地修蓄意或无意地修改数据改数据库中的数据中的数据,以免数据泄露,更改或破坏,以免数据泄露,更改或破坏,使企使企业蒙受巨大的蒙受巨大的损失。失。DBMS的主要功能 3 3.数据数据库运行控制功能运行控制功能
9、(2 2)数据完整性控制数据完整性控制 数据完整性控制是数据完整性控制是DBMSDBMS对数据数据库提供保提供保护的的另一个重要方面。其目的是保持另一个重要方面。其目的是保持进入数据入数据库中的中的存存储数据的数据的语义的正确性和有效性,防止任何的正确性和有效性,防止任何对数据造成数据造成违反其反其语义的操作。的操作。DBMS的主要功能 3 3.数据数据库运行控制功能运行控制功能 (3 3)并并发控制控制 并并发控制是控制是DBMSDBMS的第三的第三类控制机制。数据控制机制。数据库技技术的一个的一个优点是数据的共享性。但多个点是数据的共享性。但多个应用程用程序同序同时对数据数据库进行操作可能
10、会破坏数据的正确行操作可能会破坏数据的正确性,或者在数据性,或者在数据库内存内存储了了错误的数据,或者用的数据,或者用户读取了不正确的数据取了不正确的数据(称称为脏数据数据)。DBMS的主要功能 3 3.数据数据库运行控制功能运行控制功能 (4 4)恢复机制恢复机制 恢复机制是保恢复机制是保护数据数据库的又一重要方面。在的又一重要方面。在对数据数据库进行操作的行操作的过程中,可能会出程中,可能会出现各种故障,例如停各种故障,例如停电、软硬件各种硬件各种错误、人、人为破坏等,破坏等,导致数据致数据库损坏或者数坏或者数据不正确。此据不正确。此时DBMSDBMS的恢复机制有能力把数据的恢复机制有能力
11、把数据库恢复至恢复至最近的某个正确的状最近的某个正确的状态。为了保了保证恢复工作的正常恢复工作的正常进行,行,系系统要要经常常为数据数据库建立若干建立若干备份副本。份副本。DBMS的主要功能 4 4.数据数据库的的维护功能功能 包括数据包括数据库的初始数据的的初始数据的载入、入、转换、转储、数据数据库的重的重组和性能和性能监视、分析等数据、分析等数据库的的维护功能。功能。DBMS的主要功能 数数 5 5.数数据字典据字典(Data Dictionary(Data Dictionary,记为DD)DD)DD DD中存放着数据中存放着数据库三三级结构的描述,构的描述,对于数于数据据库的操作要通的操
12、作要通过查阅DDDD进行。行。现在有的大型系在有的大型系统中,把中,把DDDD单独抽出来自成一个系独抽出来自成一个系统,成,成为一个一个软件工具,使得件工具,使得DDDD成成为一个比一个比DBMSDBMS更高更高级的用的用户和数据和数据库之之间的接口。的接口。DBMS的主要功能 数据字典的主要作用是:供数据数据字典的主要作用是:供数据库管理系管理系统快速快速查找有关找有关对象的信息。数据象的信息。数据库管理系管理系统在在处理用理用户存取存取时,要,要经常常查阅数据字典中的用数据字典中的用户表、表、外模式表和模式表;供数据外模式表和模式表;供数据库管理管理员查询,以掌,以掌握整个系握整个系统的运
13、行情况;支持数据的运行情况;支持数据库设计与系与系统分析。分析。数据字典的功能 二.DBMSDBMS的工作过程 1.3 数据模型 DBMS都是针对数据模型进行设计的,任何一个数据库都要组织成符合DBMS规定的数据模型。数据模型不仅要能表示存储了哪些数据,更重要的是还要能以一定的结构形式表示出各种不同数据之间的联系。利用这些联系很快找到相关联的数据,完成相关数据的运算处理。因此,数据模型应具有描述数据和数据联系两方面的功能。概念数据模型 它是一种与具体的计算机和数据库管理系统无关的,面向客观世界和用户的模型。(给用户看的)逻辑数据模型 是概念世界的抽象描述到信息世界的转换。它是一种面向数据库系统
14、的模型,直接与DBMS有关。(面向专业人员)物理数据模型。是信息世界模型在机器世界的实现。它是面向计算机物理表示的模型,此模型给出了数据模型在计算机上真正的物理结构的表示(存放在磁盘上的)一.数据模型的三个层次(1)实体(entity)如“学生”,“工人”(2)属性(attribute)如“学号”,“姓名”(3)码(key)如“学号”(4)域(domain)学号取8位(5)实体型(entitytype)学生(学号,姓名,.)(6)实体集(entityset)全体学生(7)联系(relationship)实体对应关系1.1.概念数据模型 一一对一一联系(系(1 1:1 1)例如,一个企业只有一个
15、厂长,而一个厂长只在一个企业中任职,则企业与厂长之间具有一对一联系。一一对多多联系(系(1 1:N N)例如,一个企业聘用多名工人,而一名工人只在一个企业中工作,则企业与工人之间具有一对多联系。多多对多多联系(系(M M:N N)例如,一个企业聘用多名工程师,而一个工程师在多个企业中兼职,则企业与工程师之间具有多对多联系。联系 概念模型的表示方法很多,其中最为常用实体联系方法(Entity-Relationshipapproach)。该方法用E-R图来描述现实世界的概念模型。E-R图提供了表示实体型、属性和联系的方法。(1)实体型(集):用矩形表示,矩形框内写明实体集名。(2)属性:用椭圆形表
16、示,并用无向边将其与相应的实体集连接起来。(3)联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,并且在无向边旁标上联系的类型(1:1,1:N或M:N)。联系本身也是一种实体型,也可以有属性 实体集A联系名实体集B属性名1属性名n属性名1属性名n属性名1属性名nnm 学生选课课程学号课程名课程号课程号学号姓名nm多对多 学生选课学校学号学校名称学校编号姓名n1一对多 校长选课学校编号学校名称学校编号姓名11一对一实体型之间关系 带属性的ER图 层次模型(hierarchical model)网状模型(network model)关系模型(relational model)
17、。2.逻辑数据模型(1)层次模型层次模型用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型(hierarchicalmodel),层次模型的每个父结点可以有多个子结点,但每个子结点只允许有一个父结点 对于描述一种简单的“树”型结构,层次模型非常合适,并且这种模式对于包含大量数据的数据库来说,效率很高。例如,银行的客户系统就很适合层次模型,这是因为每个客户可能包含多个账户,每个账户可能会进行多个交易。网状模型是利用集合理论创造出的一种类似树状层次的结构,与树状层次结构不同的是其中的子结点可以拥有多个父结点。其实,层次模型是网状模型的一个特例。网状数据库系统的典型代表是DBTG数据库
18、管理系统。某一结点可以无父结点,某一结点也可以有多个父结点。(2)网状模型 下图为一个描述网状模型的简图:网状模型的数据库,对于寻找附属于指定的对象的一组记录时,效率非常高。但是在按照某种特定的方式查找数据库记录时,数据库的速度会降低。关系模型是目前最重要的一种模型。在用户看来,一个关系模型的逻辑结构是一张二维表,它由行和列组成。例如,表1-1中的学生人事记录就是一个关系模型,它涉及下列概念。(3)关系数据模型 关系:对应通常说的表,如图1-1中的这张学生人事记录表;元组:表中的一行即为一个元组,如(95001,张三,男,计算机系,北京)属性:表中的一列即为一个属性,如 学号、姓名;候选码(K
19、EY):表中的某个属性组,它可以唯一确定一个元组,如学号,身份证,阅览证号主码或主键(KEY):表中如果有多个候选码,只能选其中唯一一个作为主码 域(domain):属性的取值范围,如人的年龄一般在1-100岁之间。图1-1中学生年龄属性的域应是(1438),性别的域是(男,女),系别的域是一个学校所有系名的集合;分量:元组中的一个属性值;(8)(8)关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,属性N)例如,上面的关系可描述为:学生(学号,姓名,性别,系别,年龄,籍贯)假设上面的5个实体型即学生、班级、课程、教师、参考书分别具有下列属性:学生(学号、姓名、性别、年龄)班级(班级
20、编号、所属专业系)课程(课程号、课程名、学分)教师(职工号、姓名、性别、年龄、职称)参考书(书号、书名、内容提要、价格)逻辑模型的实例 机器世界是计算机硬件和操作系统的总称。信息世界表达的数据模型及其上的数据操纵最终要用计算机世界提供的手段和方法实现,计算机世界对应的是物理模型表示。3.物理数据模型(1)位(bit):一个二进制数。(2)字节(byte):8bit为一个字节,可以存放一个ASCII字符。(3)字(word):若干字节组成一个字。一个字所含的二进制位数称为字长。(4)块(block):是内外存交换数据的基本单位,它又称物理块或磁盘块,它的大小有512字节、1024字节、2048字
21、节等。内外存数据交换由操作系统的文件系统管理。(5)桶(bucket):外存的逻辑单位,一个桶可以包含一个物理块或多个在空间上不一定连续的物理块。(6)卷(volume):一台输入输出设备所能装载的全部有用的信息,称为“卷”。例如磁带机的一盘磁带就是一卷,磁盘的一个盘组也是一卷。3.物理数据模型 1.4 数据库系统的模式结构 模式(schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及到型的描述,不涉及到具体的值。模式的一个具体值称为模式的一个实例(instance)。同一个模式可以有很多实例。模式是相对稳定的,而实例是相对变动的。模式反映的是数据的结构及其关系,而实例反映的是数据
22、库某一时刻的状态。1.4 数据库系统的模式结构 1.模式模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。2.外模式 外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特性的描述,是数据库用户的数据视图,是与某一应用有关的数据逻辑表示。1.4 数据库系统的模式结构 3.内模式 内模式也称存储模式,它是数据物理结构和存储结构的描述,是数据在数据库内部的表示方式。例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定等
23、。一个数据库只有一个内模式。数据数据库三三级模式模式应用A应用B应用C应用D外模式外模式1 1外模式外模式2 2外模式外模式3 3概念模式概念模式内模式内模式数据库外模式/概念模式映象概念模式/内模式映象外模式:用户模式模式:逻辑模式内模式:物理模式 1.5 数据库技术的产生与发展 数据管理经历了三个发展阶段:人工管理阶段;文件系统阶段数据库系统阶段。20世纪50年代中期以前,计算机应用于科学计算。硬件无直接存取设备,软件无操作系统和专门管理数据的软件;数据处理方式是批处理;管理者是人,方式是手工;是低级阶段。特点是:(1)数据无结构化,不在计算机内部保存。(2)要手工管理数据物理存储。(3)
24、数据面向程序不共享。(4)数据无独立性。一个程序只处理一批数据。(5)数据处理的效率很低,编写程序麻烦。1人工管理阶段 20世纪50年代后期和60年代中期,PC应用从科学计算扩大到了数据管理领域。硬件有了磁盘、磁鼓等直接存储设备;软件有了文件系统;处理方式是批处理和联机实时处理。其特点是:(1)文件长期保存。(2)由文件系统对数据进行管理。(3)数据物理结构与逻辑结构有了区别,但较简单。(4)数据共享性差。(5)程序与数据之间只有一定的独立性。缺点:数据冗余大;数据与程序间缺少独立性。2.文件管理阶段 20世纪60年代后期,硬件出现了大容量的磁盘,价格下降,软件出现了数据库管理系统。其特点是:
25、(1)数据结构化,这是数据库与文件系统的根本区别。(2)由DBMS提供统一的管理控制功能(安全性、完整性、并发控制、数据库恢复)。(3)数据的共享性好。(4)数据的独立性高。(5)可控数据冗余度,冗余度低。3.数据库管理阶段 4.数据独立性的比较文件阶段应用程序与数据之间的关系数据库阶段程序与数据之间的关系 人工管理阶段人工管理阶段 文件系统阶段文件系统阶段5.数据库技术的产生应用程序1应用程序2应用程序n数据库系统阶段数据库系统阶段数据1数据2数据n文件文件系统系统物理文件1物理文件2物理文件n数据库数据库管理系统管理系统数据库数据库 1.6 数据库系统的体系结构 从数据库管理系统角度来看,
26、数据库系统是一个三级模式结构,但数据库的这种模式结构对最终用户和程序员是透明的,他们见到的仅是数据库的外模式和应用程序。从最终用户角度来看,数据库系统分为单用户结构、主从式结构、分布式结构和客户/服务器结构。单用户数据库系统是一种早期的最简单的数据库系统。在单用户系统中,整个数据库系统,包括应用程序、DBMS、数据,都装在一台计算机上,由一个用户独占,不同机器之间不能共享数据。1单用户数据库系统DBDBDB 主从式结构是指一个主机带多个终端的多用户结构。在这种结构中,数据库系统,包括应用程序、DBMS、数据,都集中存放在主机上,所有处理任务都由主机来完成,各个用户通过主机的终端并发地存储数据库
27、,共享数据资源。2.主从式结构的数据库系统主机DB 分布式结构的数据库系统是指数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同结点上。网络中的每个结点都可以处理本地数据库中的数据,执行局部应用;也可以同时存储和处理多个异地数据库中的数据,执行全局应用。3.分布式结构的数据库系统主机DB主机DB网络DB主机 主从式数据库系统中的主机和分布式数据库系统中的每个结点机是一个计算机,即执行DBMS功能又执行应用程序。随着工作站功能的增强和广泛使用,人们开始把DBMS功能和应用分开,网络中某个结点上的计算机专门用于执行DBMS功能,称为数据库服务器,简称服务器,其他结点上的计算机安装DB
28、MS的外围应用开发工具,支持用户的应用,称为客户机,这就是客户/服务器机构的数据库系统。4.客户/服务器结构的数据库系统 第一章数据库系统概述SQL数据库入门第1章 数据库入门 数据库系统1.11.11.21.21.31.31.41.41.51.51.61.6知识架构数据库管理系统数据模型数据库系统的模式结构数据库技术的产生与发展数据库系统的体系结构 学习目标掌握数据库系统,数据模型1 13 3了解数据库的产生与发展2 2熟悉数据库的模式与体系结构掌握了解熟悉 2.1 关系数据库概述 关系数据库理论是美国E.F.Codd先生1970首先提出的。关系数据模型的主要特点是数学理论和以结构简单(二维
29、表格)为基础。关系模型由三部分组成:数据结构、关系操作集合和关系的完整性约束条件集合。关系运算理论关系模式设计理论关系代数语言关系代数语言关系演算语言关系演算语言包括数据依赖,范式,模式设计方法 1.2 关系数据结构 一.关系数据结构关系的非形式化定义:满足一定条件的二维表。基本术语1.域:一组具有相同数据类型的值的集合。2.笛卡笛卡尔积(Cartesian Product)给定一定一组域域D1,D2,Dn,这些域中可些域中可以有相同的。以有相同的。D1,D2,Dn的笛卡的笛卡尔积为:D1D2Dn(d1,d2,dn)di Di,i1,2,n 2.1 2.1 关系模型关系模型67元元组(Tupl
30、e):每一个元素(每一个元素(d1,d2,dn)分量:元素中的每一个分量:元素中的每一个值di若若Di(i1,2,n)为有限集,其基数(有限集,其基数(Cardinalnumber)为mi(i1,2,n),),则D1D2Dn的基数的基数为:nM=mii=1 例如:D1=孙悟空,宋江,林黛玉D2=男,女D3=西游记,水浒传,红楼梦D1D2D3=孙悟空,男,宋江,男,林黛玉,男,孙悟空,女,宋江,女,林黛玉,女D3=孙悟空,男,西游记,宋江,男,西游记,林黛玉,男,西游记,孙悟空,女,西游记,宋江,女,西游记,林黛玉,女,西游记,孙悟空,男,水浒传,宋江,男,水浒传,林黛玉,男,水浒传,孙悟空,女
31、,水浒传,宋江,女,水浒传,林黛玉,女,水浒传,孙悟空,男,红楼梦,宋江,男,红楼梦,林黛玉,男,红楼梦,孙悟空,女,红楼梦,宋江,女,红楼梦,林黛玉,女,红楼梦2.1 2.1 关系模型关系模型68 3.关系(关系(Relation)的数学定)的数学定义D1D2Dn的子集叫作在域的子集叫作在域D1、D2、Dn上的关系,用上的关系,用 R(D1,D2,Dn)表示。表示。R:关系的名字:关系的名字n:关系的目或度(:关系的目或度(Degree)。)。2.1 2.1 关系模型关系模型69单元关系(Unaryrelation)n=1二元关系(Binaryrelation)n=2 2.1 2.1 关系模
32、型关系模型70 小说名小说名 人物名人物名 性性 别别西游记西游记孙悟空孙悟空 男男水浒传水浒传宋江宋江 男男红楼梦红楼梦林黛玉林黛玉 女女对于一个笛卡尔积只有取它的子集才有意对于一个笛卡尔积只有取它的子集才有意义,这也和用户看待的二维表一样,只有义,这也和用户看待的二维表一样,只有满足一定条件的二维表才是研究的对象。满足一定条件的二维表才是研究的对象。候选码候选码(Candidate Key)(Candidate Key):在一个关系中,能惟一标:在一个关系中,能惟一标识元组的属性或最小属性集称为关系的候选码。识元组的属性或最小属性集称为关系的候选码。主码主码(Primary KeyPrim
33、ary Key):若一个关系中有多个候选):若一个关系中有多个候选码,则选其中的一个为主码。码,则选其中的一个为主码。包含在任何一个候选码中的属性称为包含在任何一个候选码中的属性称为主属性主属性(Primary AttributePrimary Attribute),不包含在任何候选码中的属),不包含在任何候选码中的属性称为性称为非主属性非主属性(Non-primary AttributeNon-primary Attribute)或)或非码属非码属性性(Non-key AttributeNon-key Attribute)。)。4.码712.1 关系模型关系模型 外码外码(Foreign K
34、ey)(Foreign Key):设:设F F是基本关系是基本关系R R的一个或一的一个或一组属性,但不是组属性,但不是R R的码。的码。KsKs是基本关系是基本关系S S的主码。的主码。如果如果F F与与KsKs相对应,则称相对应,则称F F是是R R的外码。并称基本的外码。并称基本关系关系R R为参照关系为参照关系(Referencing RelationReferencing Relation),基本),基本关系关系S S为被参照关系为被参照关系(Referenced RelationshipReferenced Relationship)。)。4.码722.1 关系模型关系模型 例如:
35、学生关系和专业关系分别为:学生(学生编号,姓名,性别,年龄,专业编号,身份证号码)专业(专业编号,专业名称,专业负责人)4.码73在关系数据库中,表与表的联系就是通在关系数据库中,表与表的联系就是通过过公共属性公共属性实现的,这个公共属性是实现的,这个公共属性是一一个表的主码个表的主码和和另外一个表的外码另外一个表的外码 2.1 关系模型关系模型 5.关系的性质关系的性质1)分量必)分量必须取原子取原子值2)列是同)列是同质的,即每一列的分量是同一的,即每一列的分量是同一类型的数型的数据,来自同一个域。据,来自同一个域。3)表中的列称)表中的列称为属性,属性,给每列起一个名称即属性每列起一个名
36、称即属性名,不同属性要起不同的属性名。名,不同属性要起不同的属性名。4)列的)列的顺序无关序无关5)关系中任意两行不能相同。)关系中任意两行不能相同。6)行的)行的顺序无关。序无关。742.1 关系模型关系模型 1 操作对象是关系操作对象是关系2 基本操作方式基本操作方式属性指定属性指定元祖选择元祖选择关系合并关系合并元组插入元组插入元组删除元组删除 2.关系操作752.1 关系模型关系模型 76关系代数语言关系代数语言关系演算语言关系演算语言具有关系代数和关系具有关系代数和关系演算双重特点的语言演算双重特点的语言域关系数域关系数据语言据语言元组关系元组关系数据语言数据语言ISBLISBLAP
37、LHAAPLHAQUELQUELQBEQBESQLSQL2.1 关系模型关系模型 实体完整性实体完整性参照完整性参照完整性用户自定义完整性用户自定义完整性3.关系完整性约束772.1 关系模型关系模型 实体完整性体完整性规则:若属性:若属性A是基本关系是基本关系R的主属性,的主属性,则属属性性A不能取空不能取空值。782.1 关系模型关系模型 79导师编号导师编号姓名姓名性别性别职称职称1001刘易刘易男男副教授副教授1002张清枚张清枚男男教授教授1003王敏王敏女女教授教授研究生编号研究生编号 姓名姓名性别性别研究方向研究方向导师编号导师编号2004001李勇李勇男男网络安全网络安全100
38、12004002刘晨刘晨女女IPv610022004003张三张三男男数据仓库数据仓库10032004004李立李立男男数据挖掘数据挖掘10022004005赵兵赵兵男男网格安全网格安全导师研究生研究生2.1 关系模型关系模型 80外码:设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码。规则:若F是基本关系R的外码,并与 S的主码Ks相对应,则对于R中每个元组在F上的值必须为:取空值(F的每个属性值均为空值)等于S中某个元组的主码值参照完整性2.1 关系模型关系模型参照完整性参照完整性 例如:例如:学生(学号、姓名、性学生(学号、
39、姓名、性别)课程(程(课程号、程号、课程名、学程名、学时)学学习(学号、(学号、课程号、成程号、成绩)81思考:思考:每个关系的主每个关系的主码哪个关系有外哪个关系有外码2.1 关系模型关系模型 某一具体应用所涉及的数据必须满足的语义要求。82职称(助教,称(助教,讲师,副教授,教授),副教授,教授)性性别(男,女)(男,女)用用户自定自定义的完整性的完整性2.1 关系模型关系模型 2.3 关系代数 关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用关系的运算来表示查询的。任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。所以运算对象、运算符、运
40、算结果是运算的三大要素。关系代数的运算对象是关系,运算结果也为关系。概述传统的集合运算4种专门的关系运算4种集合运算符-并差交广义笛卡尔积比较运算符 大于大于等于小于小于等于等于不等于运算符含义运算符含义表表1关系代数运算符关系代数运算符2.2 关系代数关系代数关系代数运行符关系代数运行符专门的关系运算符 选择投影连接除逻辑运算符 非与或运算符含义运算符含义表表2关系代数运算符(关系代数运算符(续)2.2 关系代数关系代数概述 并RSRSt|tRtSABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1ABCa1b1c1a1b2c2a2b2c1a1b3c2 并示意
41、图RS 交RSRSt|tRtSABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1ABCa1b2c2a2b2c1 交示意图RS 差RSRSt|tRtSABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1ABCa1b1c1 差示意图RSsnosnameSsex Sage Sdept95001李勇男20计算机95002刘晨女19信息95003王敏女18管理95004张立男19信息studentcnocnmaecpnoCcredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL64courseS
42、nocnograde9500119295001285950013889500229095002380sc选择(即限定条件)f(R)=t|tRF(t)=真例1查询信息系全体学生sdept=信息(student)或5=信息(student)(按序号)例2查询年龄小于20的学生Sage20(student)或420(student)snosnameSsexSageSdept95002刘晨女19信息95004张立男19信息snosnameSsexSageSdept95002刘晨女19信息95003王敏女18管理95004张立男19信息投影(即选出若干属性列)A(R)=tA|tR例3查询学生的姓名和所在
43、系sname,sdept(student)或2,5(studnt)(按序号)例2查询学生关系中有哪些系sdept(student)Sdept计算机信息管理信息snameSdept李勇计算机刘晨信息王敏管理张立信息 连接(将两个关系或多个关系按照条件连接)RS=trts|trRtsStrAtsB非等值连接AB,等值连接A=B自然连接:滤掉重复列的连接 非等值连接列1列2,ABCa1b1 5a1b2 6a2b3 8a2b4 12BEb13b27b310b32b52AR.B CS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310RSRSC19801980查询
44、所有学生的数据,结果按出生年份降序排序GET W(GET W(学生学生)DOWNDOWN 出生年份出生年份*2.3.1 元组关系演算元组关系演算 查询所有学生的数据GET W(GET W(学生学生)查询学生表中有哪些院系GET W(GET W(学生学生.学院学院)查询所有1980年以后出生的学生学号和籍贯GETGET W(W(学生学生.学号学号,学生学生.籍贯籍贯):):学生学生.出生年份出生年份19801980查询所有学生的数据,结果按出生年份降序排序GET W(GET W(学生学生)DOWNDOWN 出生年份出生年份*2.3.1 元组关系演算元组关系演算 域关系演算表达式的定域关系演算表达
45、式的定义用域用域变量代替元量代替元组变量量的每一个分量,域的每一个分量,域变量的量的变化范化范围是某个是某个值域而不是域而不是一个关系一个关系域关系演算的域关系演算的查询表达式表达式为:t1,t2,tk|P(t1,t2,tk)其中其中t1,t2,tk代表域代表域变量,量,P是域演算公式。是域演算公式。2域关系演算 109*2.3.1 域关系演算域关系演算 2.5 查询优化 数据管理经历了三个发展阶段:人工管理阶段;文件系统阶段数据库系统阶段。111用用户输入入查询查询的内部表示的内部表示执行行查询步步骤向用向用户报告告查询结果果查询语句的句法分析查询优化处理查询1 1、响响应应用用户户查查询询
46、的的一一般般过过程程 2.4 查询优化查询优化 112例:查询学号为091502的学生选修的课程名称。E1=课程名(课程.学号=学习.学号学习.学号=091502(课程学习)E2=课程名(课程.学号=学习.学号(课程学号=091502(学习)E3=课程名(课程学号=091502(学习)查询效率:E3E2E12.4.1 查询优化的必要性查询优化的必要性 关系代数表达式的等价变换规则1131)连接、笛卡接、笛卡尔积交交换律律E1E2E2E1E1E2E2E1E1E2E2E1FF2)连接、笛卡接、笛卡尔积结合律合律(E1E2)E3E1(E2E3)(E1E2)E3E1(E2E3)(E1E2)E3E1(E
47、2E3)F1F2F1F22.4.1 查询优化的必要性查询优化的必要性 3、投影的串接定律、投影的串接定律(注意条件注意条件)A1,A2,An(B1,B2,Bm(E)A1,A2,An(E)4、选择的串接定律的串接定律F1(F2(E)F1F2(E)5、选择与投影的交与投影的交换律(注意条件)律(注意条件)F(A1,A2,An(E)A1,A2,An(F(E)(F只涉及A1,A2,An)A1,A2,An(F(E)A1,A2,AnF(A1,An,B1,Bm(E)6、选择与笛卡与笛卡尔积的交的交换律律F(E1E2)F(E1)E2F(E1E2)F1(E1)F2(E2)F(E1E2)F2(F1(E1)E2)1
48、14 7、选择与并的交与并的交换F(E1E2)F(E1)F(E2)8、选择与差的交与差的交换F(E1-E2)F(E1)-F(E2)9、投影与笛卡、投影与笛卡尔积的交的交换律律A1,A2,An,B1,B2,Bm(E1E2)A1,A2,An(E1)B1,B2,Bm(E2)10、投影与并的交、投影与并的交换A1,A2,An(E1E2)A1,A2,An(E1)A1,A2,An(E2)1152.4.1 查询优化的必要性查询优化的必要性 5、关系代数表达式的、关系代数表达式的优化算法化算法输入:一个关系表达式的入:一个关系表达式的语法法树输出:出:计算算该表达式的程序表达式的程序方法:方法:1)把把F1
49、F2 .Fn(E)变换为F1(F2(Fn(E)2)对每一个每一个选择尽可能把它移到尽可能把它移到树的叶端。的叶端。3)对每一个投影尽可能把它移到每一个投影尽可能把它移到树的叶端。的叶端。4)合并合并选择和投影或一个和投影或一个选择后跟一个投影。后跟一个投影。5)将得到的将得到的语法法树的内的内节点分点分组。(每一双目运算和它所每一双目运算和它所有的直接祖先有的直接祖先为一一组。6)生成一个程序,每生成一个程序,每组节点的点的计算是程序中的一步。求算是程序中的一步。求值顺序序为先子先子孙,后祖先。,后祖先。116规则4规则3,5,9,10规则4-8规则3-5 1、尽可能早地执行选择操作(减少中间
50、运算结果)2、合并笛卡尔积和其后的选择操作,使之称为一个连接运算 3、合并连续的选择和投影操作,以免分开运算造成多次扫描文件,从而节省了操作时间 4、找出表达式里的公共子表达式。5、适当地对关系文件做预处理1172.4.2 查询优化的策略和算法查询优化的策略和算法 例:求例:求001001号学生所号学生所选修的修的课程名及成程名及成绩 CN,G(SC.S#=001001 SC.C#=C.C#(SC C)118CN,GSC.S#=001001SC.C#=C.C#SCC2.4.2 查询优化的策略和算法查询优化的策略和算法 119CN,GCN,GSC.C#=C.C#SC.C#=C.C#SCSCC C