1、11/11/2022制作人:张宇敬数据库系统原理第1章 数据库系统基本概念第2章 数据模型与概念模型第3章 数据库设计第4章 关系数据库第5章 关系数据库标准语言SQL第7章 关系数据库理论第8章 数据库保护11/11/2022制作人:张宇敬第1章 数据库系统基本概念1.1 数据库的作用及相关概念数据库的作用及相关概念一.数据、数据库、数据库管理系统(1)数据(Data)数据实际上就是描述事物的符号记录。数据的形式本身并不能完全表达其内容,需要经过语义解释。数据与其语义是不可分的。(2)数据库(DB)数据库是长期存储在计算机内有结构的大量的共享的数据集合。它可以供各种用户共享、具有最小冗余度和
2、较高的数据独立性。(3)数据库管理系统(DBMS)数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库管理系统使用户能方便地定义数据和操纵数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。11/11/2022制作人:张宇敬(4)数据库系统(DBS)数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。(5)数据库系统管理员(DBA)数据库系统管理员负责数据库的建立、使用和维护的专门的人员。二.数据库管理系统 DBMS是数据库系统的核心。它建立在操作系统的基础上,是位于操作
3、系统与用户之间的一层数据管理软件,负责对数据库进行统一的管理和控制。1、DBMS的功能(1)数据定义 定义数据库的模式、存储模式和外模式,定义各个外模式与模式之间的映射,定义模式与存储模式之间的映射,定义有关的约束条件。11/11/2022制作人:张宇敬(2)数据操纵 数据操纵包括对数据库数据的检索、插入、修改和删除等基本操作。(3)数据库运行管理 包括对数据库进行并发控制、安全性检查、完整性约束条件的检查和执行数据库的内部维护(如索引、数据字典的自动维护)等。(4)数据组织、存储和管理 对数据字典、用户数据、存取路径等数据进行分门别类地组织、存储和管理,确定以何种文件结构和存取方式物理地组织
4、这些数据,如何实现数据之间的联系,以便提高存储空间利用率以及提高随机查找、顺序查找、增、删、改等操作的时间效率。(5)数据库的建立和维护 建立数据库包括数据库初始数据的输入与数据转换等。维护数据库包括数据库的转储与恢复、数据库的重组织与重构造、性能的监视与分析等。(6)数据通信接口 DBMS需要提供与其他软件系统进行通信的功能。例如提供与其他DBMS或文件系统的接口,从而能够将数据转换为另一个DBMS或文件系统能够接受的格式,或者接收其他DBMS或文件系统的数据。11/11/2022制作人:张宇敬2、DBMS的组成(1)数据定义语言及其翻译处理程序(2)数据操纵语言及其翻译解释程序 数据操纵语
5、言(Data Manipulation Language,简称DML)用来实现对数据库的检索、插入、修改、删除等基本操作。(3)数据运行控制程序 数据定义语言(Data Definition Language,简称DDL)供用户定义数据库的模式、存储模式、外模式、各级模式间的映射、有关的约束条件等。系统运行控制程序负责数据库运行过程中的控制与管理(包括系统初启程序、文件读写与维护程序、存取路径管理程序、缓冲区管理程序、安全性控制程序、完整性检查程序、并发控制程序、事务管理程序、运行日志管理程序等)。(4)实用程序 包括数据初始装入程序、数据转储程序、数据库恢复程序、性能监测程序、数据库再组织程
6、序、数据转换程序、通信程序等。11/11/2022制作人:张宇敬3DBMS的工作过程(1)应用程序A向DBMS发出从数据库中读数据记录的命令;(2)DBMS对该命令进行语法检查、语义检查,并调用应用程序A对应的子模式,检查A的存取权限,决定是否执行该命令。如果拒绝执行,则向用户返回错误信息;(3)在决定执行该命令后,DBMS调用模式,依据子模式模式映象的定义,确定应读入模式中的哪些记录;(4)DBMS调用物理模式,依据模式物理模式映象的定义,决定应从哪个文件、用什么存取方式、读入哪个或哪些物理记录;(5)DBMS向操作系统发出执行读取所需物理记录的命令;(6)操作系统执行读数据的有关操作;(7
7、)操作系统将数据从数据库的存储区送至系统缓冲区;(8)DBMS依据子模式模式映象的定义,导出应用程序A所要读取的记录格式;(9)DBMS将数据记录从系统缓冲区传送到应用程序A的用户工作区;(10)DBMS向应用程序A返回命令执行情况的状态信息。11/11/2022制作人:张宇敬12 数据库技术的产生与发展数据库技术的产生与发展 11/11/2022制作人:张宇敬1.3 数据库系统结构数据库系统结构 数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。11/11/2022制作人:张宇敬(1)模式 模式是数据库中全体数据的逻辑结构和特征的描述。数据库模式以某一种数据模型为基础。
8、定义模式时不仅要定义数据的逻辑结构(例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。(2)外模式 外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。(3)内模式 内模式也称存储模式,它是数据物理结构和存储结构的描述,是数据在数据库内部的表示方式(例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定)
9、。一个数据库只有一个内模式。11/11/2022制作人:张宇敬 3、数据库的二级映象功能与数据独立性 对于每一个外模式,数据库系统都有一个外模式/模式映象,它定义了该外模式与模式之间的对应关系。当模式改变时,由数据库管理员对各个外模式/模式的映象作相应改变,可以使外模式保持不变,从而应用程序不必修改,保证了数据的逻辑独立性。数据库中只有一个模式,也只有一个内模式,所以模式/内模式映象是唯一的,它定义了数据 全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变了,由数据库管理员对模式/内模式映象作相应改变,可以使模式保持不变,从而保证了数据的物理独立性。11/11/2022制作人:张宇敬
10、4数据库系统的体系结构 (1)单用户数据库系统 整个数据库系统,包括应用程序、DBMS、数据,都装在一台计算机上,为一个用户独占,不同机器之间不能共享数据。(2)主从式结构的数据库系统 指一个主机带多个终端的多用户结构。在这种结构中,数据库系统,包括应用程序、DBMS、数据,都集中存放在主机上,所有处理任务都由主机来完成,各个用户通过主机的终端并发地存取数据库,共享数据资源。(3)分布式结构的数据库系统 分布式结构的数据库系统是指数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同结点上。网络中的每个结点都可以独立处理本地数据库中的数据,执行局部应用;同时也可以同时存取和处理多个异
11、地数据库中的数据,执行全局应用。(4)客户服务器结构的数据库系统 服务器:网络中某个(些)结点上的计算机专门用于执行DBMS功能,称为数据库服务器。客户机:其他结点上的计算机安装DBMS的外围应用开发工具,支持用户的应用,称为客户机。回首页11/11/2022制作人:张宇敬第2章 数据模型与概念模型 21 信息的三种世界信息的三种世界1.数据模型基本概念 数据模型用来抽象、表示和处理现实世界中的数据和信息。即数据模型就是现实世界的模拟。数据模型应满足三个方面的要求:比较真实的模拟现实世界;容易为人们理解;便于计算机表达。数据模型分成两个不同的层次:(1)概念模型,它是按用户的观点来对数据和信息
12、建模。(2)数据模型,主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。2 数据模型的三要素(1)数据结构(2)数据操作(3)数据的约束条件 11/11/2022制作人:张宇敬2.2概念模型及其特点概念模型及其特点1.概念模型:概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一DBMS支持的特定数据模型。概念模型特点:(1)具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识.(2)应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。2 实体型(Entity Type)用实体名及其属性
13、名集合来抽象和刻画同类实体,称为实体型。3实体集(Entity Set)同型实体的集合称为实体集。4联系(Relationship)现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。5 表示概念模型的实体联系方法(Entity-RelationshipApproach,E-R方法)E-R图提供了表示实体型、属性和联系的方法:实体型:用矩形表示,矩形框内写明实体名。属性:用椭圆形表示,并用无向边将其与相应的实体连接起来 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。11/11/2
14、022制作人:张宇敬2.3常见的三种模型常见的三种模型1层次数据模型(1)数据结构 用树形结构表示各类实体以及实体之间的联系。只有一个根结点;除结点外的其它结点只有一个双亲结点。(2)操纵及完整性约束 层次数据模型的操纵主要有查询、插入、删除和更新。进行插入、删除、更新操作时要满足层次模型的完整性约束条件。进行插入操作时,如果没有相应的双亲结点值就不能插入子女结点值。进行删除操作时,如果删除双亲结点值,则相应的子女结点值也被同时删除。进行更新操作时,应更新所有相应记录,以保证数据的一致性。(3)层次数据模型的存储结构邻接法:按照层次树的一定顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻
15、来实现层次顺序。链接法:用指针来反映数据之间的层次联系。11/11/2022制作人:张宇敬2 网状数据模型(1)数据结构 网状数据模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的两个限制,允许多个结点没有双亲结点,允许结点有多个双亲结点,允许两个结点之间有多种联系(称之为复合联系)。(2)操纵及完整性约束 网状数据模型的操纵主要包括查询、插入、删除和更新数据。插入操作允许插入尚未确定双亲结点值的子女结点值。删除操作允许只删除双亲结点值。更新操作时只需更新指定记录即可。(3)存储结构 网状数据模型的存储结构依具体系统不同而不同,常用的方法是链接法,包括单向链接、双向链接、环状链接等。11
16、/11/2022制作人:张宇敬3 关系数据模型(1)数据结构 一个关系模型的逻辑结构是一张二维表,它由行和列组成。表中的一行即为一个元组;表中的一列即为一个属性。(2)操纵及完整性约束 关系数据模型的操纵主要包括查询、插入、删除和更新数据这些操作必须满足关系的完整性约束条件。关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。关系模型把存取路径向用户隐蔽起来,用户只要指出“干什么”,不必详细说明“怎么干”,从而大大地提高了数据的独立性。关系数据库标准操作语言是SQL语言。(3)存储结构 关系数据模型中,实体及实体间的联系都用表来表示。在数据库的物理组织中,表以文件形式
17、存储,每一个表通常对应一种文件结构。后首页11/11/2022制作人:张宇敬第3章 数据库设计 3.1 数据库设计的步骤数据库设计的步骤1.数据库设计的基本步骤(1)需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求和数据流图描述的处理需求。(2)概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。(3)逻辑结构设计阶段 将概念结构转换为某个DBMS所支持的数据模型,例如关系模型,并对其进行优化。(4)数据库物理设计阶段 为逻辑数据模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法。11/11/2022制作人:张宇
18、敬(5)数据库实施阶段 运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。(6)数据库运行和维护阶段 数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。3.2 需求分析需求分析 1.需求分析的任务 .详细调查现实世界要处理的对象 .充分了解原系统工作概况 .明确用户的各种需求 .确定新系统的功能 11/11/2022制作人:张宇敬2.需求分析的方法 (1)调查组织机构情况 (2)调查各部门的业务活动情况 (3)协助用户明确对新系统的各种要求
19、(4)确定新系统的边界 3.数据流图数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。4.数据字典 数据字典是进行数据收集和数据分析所获得的主要成果。数据字典是各类数据描述的集合。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。11/11/2022制作人:张宇敬3.3 概念结构设计概念结构设计 1.概念结构设计的方法 自顶向下:先定义全局概念结构的框架,然后逐步细化。自底向上:先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。逐步扩张:先定义最重要的核心概念结构,然后向外扩充,直至总体概念结构
20、。无论采用哪种设计方法,一般都以E-R模型为工具来描述概念结构。2.数据抽象与局部视图设计 以自底向上设计方法为例,它通常分为两步:第一步,根据需求分析的结果,对现实世界的数据进行抽象,设计各个局部视图即分E-R图。第二步,集成局部视图。3.视图的集成 集成分E-R图时都需要两步:1)合并;2)修改与重构。11/11/2022制作人:张宇敬3.4 逻辑结构设计逻辑结构设计 设计逻辑结构时一般要分三步进行:将概念结构转换为一般的关系、网状、层次模型 将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型转换 对数据模型进行优化 1.E-R图向数据模型的转换 转换原则:(1)一个实体型转换为
21、一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。(2)一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。(3)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。(4)一个1:1联系可转换为一个独立的关系模式,也可与任一端对应的关系模式合并。(5)三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性。
22、而关系的码为各实体码的组合。(6)同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n 和 m:n 三种情况分别处理。(7)具有相同码的关系模式可合并。11/11/2022制作人:张宇敬2.数据模型的优化(1)确定数据依赖。(2)按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。(3)按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解。(4)对关系模式进行必要的分解。3.设计用户子模式 局部应用视图是概念模型,用E-R图表示。在将概念模型转换为
23、逻辑模型后,即生成了整个应用系统的模式后,还应该根据局部应用需求,结合具体DBMS的特点,设计用户的外模式。11/11/2022制作人:张宇敬3.5 数据库物理设计数据库物理设计一、确定数据库的物理结构(1)确定数据的存储结构(2)设计数据的存取路径(3)确定数据的存放位置(4)确定系统(参数)配置 二、评价物理结构 评价物理数据库的方法完全依赖于所选用的DBMS,主要是从定量估算各种方案的存储空间、存取时间和维护代价入手,对估算结果进行权衡、比较,选择出一个较优的合理的物理结构。如果该结构不符合用户需求,则需要修改设计。11/11/2022制作人:张宇敬3.6 数据库实施、运行与维护数据库实
24、施、运行与维护一、定义数据库结构 确定了数据库的逻辑结构与物理结构后,就可以用所选用的DBMS提供的数据定义语言(DDL)来严格描述数据库结构。二、数据装载 数据库结构建立好后,就可以向数据库中装载数据了。组织数据入库是数据库实施阶段最主要的工作。对于数据量不是很大的小型系统,可以用人式方法完成数据的入库,其步骤为:(1)筛选数据:需要装入数据库中的数据通常都分散在各个部门的数据文件或原始凭证中,所以首先必须把需要入库的数据筛选出来。(2)转换数据格式 筛选出来的需要入库的数据,其格式往往不符合数据库要求,还需要进行转换。这种转换有时可能很复杂。(3)输入数据 将转换好的数据输入计算机中。(4
25、)校验数据 检查输入的数据是否有误。三、编制与调试应用程序 数据库应用程序的设计应该与数据设计并行进行。调试应用程序时由于数据入库尚未完成,可先使用模拟数据。四、数据库试运行 回首页11/11/2022制作人:张宇敬第 4 章 关系数据库 4.1 关系数据库概述关系数据库概述一.关系模型的组成 关系模型是关系数据库系统的基础模型。关系模型由关系数据结构、关系操作和完整性约束三部分组成。关系数据结构:关系模型的数据结构其逻辑形式是一张二维表。这种二维表的结构可描述现实世界的实体以及实体间的各种联系,且结构单一。关系操作:关系操作采用集合操作方式,即操作的对象和结果都是集合。常用的关系操作包括:查
26、询、选择、投影、连接、除、并、交、差、增加、删除、修改等。完整性约束:关系模型定义了三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束,由关系数据库系统强制执行。11/11/2022制作人:张宇敬二描述关系操作的语言描述关系操作的语言可以分为三类:三 关系数据结构 在关系模型中,实体和实体之间的联系均由关系(二维表)来表示。11/11/2022制作人:张宇敬1.基本概念域:域是一组具有相同数据类型的值的集合。例如:非负整数、长度等于3的字符串。笛卡尔积:给定一组域 D1,D2,Dn。D1,D2,Dn的笛卡尔积定义为:D1D2Dn(
27、d1,d2,dn)diDj,j1,2,n 其中每一个元素(d1,d2,dn)叫作一个元组。元素中的每一个值di叫作一个分量。若 Di(i1,2,n)为有限集,其基数为mi(i1,2,n),则D1D2Dn的基数为:n m=mi i=1 11/11/2022制作人:张宇敬2关系 D1D2Dn的一个子集叫作域D1、D2、Dn上的一个关系,用 R(D1,D2,Dn)表示。这里R表示关系的名字,n是关系的目或度。关系中的每个元素是关系中的元组,通常用t表示。关系是笛卡积的子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性名
28、。候选码:能唯一地标识一个元组的一组属性。3关系的性质:同一列中的分量是同一类型的数据。不同列可以取相同的数据类型。关系中的列又称为属性,并赋予属性名。不同列的属性名不同。列的次序可以任意交换。任意两个元组不能完全相同。行的次序可以任意交换。列具有原子性,即每一列值是不可分的数据项11/11/2022制作人:张宇敬4.关系模式 关系模式是对关系的描述。一个关系模式是一个五元组。可表示为R(U,D,DOM,F)其中R为关系名,U为属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的映象集合,F为属性间数据的依赖关系集合。5.关系数据库 在关系模型中,实体以及实体间的联系都是用关系来表示。
29、在一个给定应用中,所有实体及实体之间联系的关系的集合构成一个关系数据库。四关系的完整型1.实体完整性 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。2.参照完整性 定义 设 F 是基本关系R的一个或一组属性,但不是关系R 的码,如果 F 与基本关系 S 的主码 Ks 相对应,则称 F 是基本关系 R 的外码,并称基本关系 R 为参照关系,基本关系S 为被参照关系。11/11/2022制作人:张宇敬参照完整性规则:若属性或属性组 F 是基本关系 R 的外码,它与基本关系 S 的主码 Ks 相对应,则对于 R 中每个元组在 F 上的值必须为:或者取空值(F 的每个属性值均为空值
30、);或者等于 S 中某个元组的主码值。3.用户定义的完整性 用户定义的完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。例如:某个属性的取值不能为空;某个属性的取值范围在0100之间。11/11/2022制作人:张宇敬4.2 关系代数关系代数 1.关系代数运算符 11/11/2022制作人:张宇敬几个记号(1)设关系模式为 R(A1,A2,An)。它的一个关系设为 R。t R表示 t 是 R 的一个元组。tAi 则表示元组 t 中相应于属性 Ai 的一个分量。(2)设 A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是 A1,A2,An中的一部分
31、,则 A 称为属性列。A 则表示 A1,A2,An 中去掉 Ai1,Ai2,Aik 后剩余的属性组。tA=(tAi1,tAi2,tAik)表示元组 t 在属性列 A 上诸分量的集合。(3)R为n目关系,S为m目关系。称为元组的连接。它是一个(n+m)列的元组,前 n 个分量为 R 中的一个 n 元组,后 m 个分量为 S 中的一个 m 元组。3.传统的集合运算(1)并(Union)RS=t|tRtS 11/11/2022制作人:张宇敬(2)差(Difference)RS=t|tRtS(3)交(Intersection Referential integrity)RS=t|tRtS(4)广义笛卡
32、尔积(Extended cartesian product)4.专门的关系运算 专门的关系运算包括选择、投影、连接、除等。(1)选择(Selection)它是在关系 R 中选择满足给定条件的诸元组.(2)投影(Projection)关系R上的投影是从R中选择出若干属性列组成新的关系。记作:A(R)=tA|tR 11/11/2022制作人:张宇敬(3)连接(Join)它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组.。有两种常用的连接,一种是等值连接,另一种是自然连接。为“”的连接运算称为等值连接。它是从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组。自然连接是一种特殊的等值连接。需
33、在等值连接的结果中把重复的属性去掉。一般的连接操作是从行的角度进行运算。但自然连接还需要取消了重复列,所以是同时从行和列的角度进行运算。11/11/2022制作人:张宇敬4.3 关系演算关系演算 关系演算是以数理逻辑中的谓词演算为基础的。按谓词变元的不同,关系演算可分为元组关系演算和域关系演算。以下以ALPHA语言为例,介绍元组关系演算的思想。1.元组关系演算ALPHA ALPHA语言主要有GET、PUT、HOLD、UPDATE、DELETE、DROP六条语句。语句的基本格式是:操作语句工作空间名(表达式):操作条件 其中表达式用于指定语句的操作对象,它可以是关系名或属性名。操作条件是一个逻辑
34、表达式,用于将操作对象限定在满足条件的元组中。2、检索操作:用GET语句实现。3、更新操作 (1)修改操作 修改操作用UPDATE语句实现。(2)插入操作 插入操作用PUT语句实现。(3)删除 删除操作用DELETE语句实现。回首页11/11/2022制作人:张宇敬第 5 章 关系数据库标准语言 SQL 5.1 SQL概述概述1.SQL 的特点(1)综合统一 SQL语言集DDL、DML、DCL的于一体,包括定义关系模式、录入数据、建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列功能。(2)非过程化 用户无需了解存取路径,用户只需提出“做什么”,而不必指明“怎么做”。存取路径的
35、选择以及SQL语句的操作过程由系统自动完成。(3)面向集合的操作方式 SQL语言采用集合操作方式,不仅查找结果可以是元组的集合。(4)以同一种语法结构提供两种使用方式 SQL语言可采用交互式和嵌入式两种使用方式。(5)语言简洁SQL语言功能强,语言简洁。11/11/2022制作人:张宇敬2.SQL语言的基本概念 SQL语言支持关系数据库三级模式结构。外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件。基本表是本身独立存在的表,在SQL中一个关系就对应一个表。一个存储文件中可有多个基本表。存储文件的逻辑结构组成了关系数据库的内模式。存储文件的物理文件结构是任意的。视图是从基本表
36、或其他视图中导出的表,它不独立存储在数据库中,数据库只存放视图的定义,因此视图是一个虚表。11/11/2022制作人:张宇敬5.2 数据定义数据定义 1.定义基本表 CREATE TABLE (列级完整性约束条件 ,列级完整性约束条件.),;建表时可定义完整性约束条件,当用户操作表中数据时系统自动检查该操作是否违背这些完整性约束条件。如果完整性约束条件涉及多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。2.修改基本表 ALTER TABLE ADD 完整性约束DROP MODIFY;ADD子句用于增加新列和新的完整性约束条件,DROP子句用于删除指定的完整性约束条件,MO
37、DIFY子句用于修改原有的列定义。11/11/2022制作人:张宇敬3.删除基本表DROP TABLE 基本表定义一旦删除,表中的数据、在此表上建立的索引都将自动被删除掉,而建立在此表上的视图虽仍然保留,但已无法引用。4.建立索引 CREATE UNIQUE CLUSTER INDEX ON (,.);索引可以建在表的一列或多列上。可在每个后面 指定索引值的排列次序。ASC表示升序,DESC表示降序,缺省值为ASC。UNIQUE表明建唯一性索引。CLUSTER表示建聚簇索引。所谓聚簇索引是指索引项的顺序与表中记录的物理顺序一致的索引。5.删除索引 DROP INDEX;11/11/2022制作
38、人:张宇敬5.3 查询查询 SELECT ALL|DISTINCT,.FROM,.WHERE GROUP BY HAVING ORDER BY ASC|DESC;SELECT语句的含义:根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。如果有GROUP子句,则将结果按的值进行分组,该属性列值相等的元组为一个组,每个组产生结果表中的一条记录。如果GROUP子句带HAVING短语,则只有满足指定条件的组才予输出。如果有ORDER子句,则结果表还要按的值的升序或降序排序。11/11/2022制作人
39、:张宇敬1.单表查询(1)查询指定列 例1 查询全体学生的学号与姓名 SELECT Sno,Sname FROM Student;(2)查询全部列 例3 查询全体学生的详细记录 SELECT*FROM Student;(3)消除取值重复的行 例6 查所有选修过课的学生的学号 SELECT distinct Sno FROM SC;(4)查询满足条件的元组 查询满足指定条件的元组可以通过WHERE子句实现。WHERE子句常用的查询条件如表:11/11/2022制作人:张宇敬11/11/2022制作人:张宇敬(5)对查询结果排序 例 查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列
40、 SELECT Sno,Grade FROM SC WHERE Cno=3 GROUP BY Grade DESC;(6)使用集函数 COUNT(DISTINCT|ALL*)统计元组个数 COUNT(DISTINCT|ALL)统计一列中值的个数 SUM(DISTINCT|ALL)计算一列值的总和 AVG(DISTINCT|ALL)计算一列值的平均值 MAX(DISTINCT|ALL)求一列值中的最大值 MIN(DISTINCT|ALL)求一列值中的最小值 例 查询学习1号课程的学生最高分数 SELECT MAX(Grade)FROM SC WHERE Cno=1;(7)对查询结果分组 GROU
41、P BY子句可以将查询结果表的各行按一列或多列取值相等的原则进行分组。11/11/2022制作人:张宇敬2.连接查询 若一个查询同时涉及两个以上的表,则称之为连接查询。连接查询主要包括等值连接、非等值连接查询、自身连接查询(自身连接)、外连接查询(外连接)和复合条件连接查询(复合条件连接)。(1)等值与非等值连接查询 用来连接两个表的条件称为连接条件,其一般格式为:.其中比较运算符主要有:=、=、=、!=、!=此外连接谓词词还可以使用下面形式:.BETWEEN.AND.当连接运算符为=时,称为等值连接。使用其它运算符称为非等值连接。连接谓词中的列名称为连接字段。连接条件中的各连接字段类型必须是
42、可比的。11/11/2022制作人:张宇敬(2)自身连接 连接操作不仅可以在两个表之间进行,也可以是一个表与其自己进行连接,这种连接称为表的自身连接。(3)外连接 在通常的连接操作中,只有满足连接条件的元组才能作为结果输出。有时我们想以 Student 表为主体列出每个学生的基本情况及其选课情况,若某个学生没有选课,则只输出其基本情况信息,其选课信息为空值即可,这时就需要使用外连接(Outer Join)。外连接的运算符通常为*。有的关系数据库中也用+。回首页11/11/2022制作人:张宇敬第7章 关系数据库设计理论 7.1 函数依赖函数依赖1.关系模式中的数据依赖 一个关系模式应当是一个五
43、元组。R(U,D,DOM,F)R是关系名;U是一组属性;D是属性组U中属性所来自的域;DOM是属性到域的映射;F是属性组U上的一组数据依赖关系的集合。属性间数据的依赖关系集合 F 实际上是描述关系的元组定义,限定组成关系的各个元组必须满足的完整型约束条件。在实际应用中,这些约束或者通过对属性的取值范围限定,或者通过属性间的相互关连反映出来。后者称为数据依,这是数据库模式设计的关键。由于D和DOM对模式设计关系不大,因此我们把关系模式看作是一个三元组:R U,F 当且仅当U上的一个关系 r 满足 F 时,r 称为关系模式RU,F的一个关系。11/11/2022制作人:张宇敬2.数据依赖对关系模式
44、的影响 数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。现在人们已经提出了许多种类型的数据依赖,其中最重要一个数据依赖是:函数依赖(Functional Dependency简记为FD)函数依赖极为普遍地存在于现实生活中。如学生关系,可有学号(SNO),姓名(SNAME),系名(SDEPT)等几个属性。由于一个学号只对应一个学生,一个学生只在一个系学习。因而当“学号”值确定之后,姓名和该生所在系的值也就被唯一地确定了。3.有关概念(1)函数依赖 定义 设R(U)是属性集U上的关系模式。X,Y是U的子集。若对
45、于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XY。若XY,则X叫做决定因素(Determinant)。若XY,YX,则记作XY。11/11/2022制作人:张宇敬(2)平凡的函数依赖与非平凡的函数依赖)平凡的函数依赖与非平凡的函数依赖 定义定义 在关系模式在关系模式R(U)中,对中,对U中的子集中的子集X,Y,如果,如果XY,但,但Y X,则,则称称XY是非平凡的函数依赖。若是非平凡的函数依赖。若Y X,则称,则称XY是平凡的函数依赖。是平凡的函数依赖。对于任一关系模式,平凡的函数依赖都是必然存在的。对
46、于任一关系模式,平凡的函数依赖都是必然存在的。(3)完全函数依赖与部分函数依赖)完全函数依赖与部分函数依赖 定义定义 在在R(U)中中,如果如果XY,并且对于,并且对于X的任何一个真子集的任何一个真子集X,都有都有X Y,则称则称Y对对X完全函数依赖完全函数依赖,记作记作:X Y。若若XY,但但Y不完全函数依赖于不完全函数依赖于X,则称则称Y对对X部分函数依赖部分函数依赖,记作记作X Y(4)传递依赖)传递依赖 定义定义 在在R(U)中中,如果如果XY,YZ,且,且(Y X),Y X,则称则称Z对对X传递函传递函数依赖。数依赖。在关系在关系Std(Sno,Sdept,Mname)中,有中,有S
47、no Sdept Sdept MnameMname传递依赖传递依赖Sno。(5)码)码 定义定义 设设K为为RU,F中的属性或属性组合,若中的属性或属性组合,若K U,则称,则称K为为R的一个候选码。若的一个候选码。若R中有多个候选码,则选定其中的一个作为主中有多个候选码,则选定其中的一个作为主码。码。11/11/2022制作人:张宇敬7.2 范式范式 范式是满足一定函数依赖的关系模式的集合。目前主要有多种范式:第一范式、第二范式、第三范式、BC范式等。满足最低要求的的叫第一范式,简称1NF。在第一范式基础上进一步码组一些要求的为第二范式,简称2NF。其余以次类推。1NF 2NF 3NF BC
48、NF1.第一范式(1NF)定义 如果一个关系模式R的所有属性都是不可分的基本数据项,则 R 1NF。SLC(Sno,Sdept,Sloc,Cno,Grade)1NF 不满足1NF的数据库模式不能称为关系数据库。2.第二范式(2NF)定义 若RlNF,且每一个非主属性完全函数依赖于码,则R2NF。3.第三范式(3NF)定义 关系模式 RU,F中若不存在侯选码X、属性组Y及非主属性Z(Z Y),使得XY,YZ 和(Y X)成立,则R3NF。上述定义说明,若R3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。11/11/2022制作人:张宇敬7.3 关系模式的规范化关系模式的规范化 一个关系
49、只要其分量都是不可分的数据项,它就是规范化的关,但这是最基本的规范化。规范化程度有多个个级别,一个低一级范式的关系模式,通过分解可以转换为若干高一级范式的关系模式集合,这种过程就叫关系模式的规范化。1.关系模式规范化的步骤 规范化程度过低的关系可能会存在插入异常、删除异常、修改复杂和数据冗余等问题,需要对其进行规范化,转换成高级范式。但在现实世界中,设计数据库模式结构时,应对用户需要做进一步的分析,确定一个合适的模式。2.关系模式的分解 关系模式的分解必须保证分解后的关系模式与原关系模式等价。设关系模式RU,F被分解为若干关系模式 R1U1,F1、R2U2,F2,RnUn,Fn若R与R1,R2
50、,。,Rn的自然连接的结果相等,则称关系R的这个分解具有无损连接性。具有无损连接性的分解才能保证不丢失信息 后首页11/11/2022制作人:张宇敬第8章 数据库保护 8.1 安全性安全性 计算机系统安全性,是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。计算机系统的安全性问题可分为三大类,即:技术安全类、管理安全类和政策法律类。(1)技术安全是指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的