关系数据库基础.pptx
《关系数据库基础.pptx》由会员分享,可在线阅读,更多相关《关系数据库基础.pptx(108页珍藏版)》请在课桌文档上搜索。
1、高级数据库技术 第2讲 关系数据库基础,关系数据库基于关系数据模型 提出和诞生于20世纪70年代 成熟和发展于20世纪80-90年代 进入21世纪,与计算机网络密切结合,焕发新生命活力 建立在关系数学理论之上,技术意义下的数据管理及使 用等具有较高的抽象层次和科学属性,第2讲 关系数据库基础,第2讲 关系数据库基础,第2讲 关系数据库基础,2.1 关系数据模型2.2 关系数据语言SQL2.3 关系模式设计2.5 关系数据事务管理,数据模型:数据结构和数据操作的抽象 数据管理的出发点 数据库原理和技术的基础,2.1 数据模型与数据模式,数据模型发展线条:数据管理技术的演进轨迹关系数据模型:静态数
2、据结构 动态数据操作 语义限制的数据完整性约束关系数据模式:关系模型在一个应用环境中的具体实现,2.1 数据模型与数据模式,2.1.1数据结构 关系数据结构:本质上是一种数学结构 域上笛卡尔乘积的一个子集离散数学中这样子集称为域上一个关系“关系”数据模型中“关系”一词由来域是一组具有相同数据类型的值的集合 例如:整数域、实数域、长度指定的字符串集合、枚举集合male,female和介于某个取值范围的整数等。,2.1 数据模型与数据模式,一组域D1,D2,Dn,其上笛卡尔乘积为集合 D1D2Dn(d1,dn)diDi,i1,n 笛卡尔乘积:表示为一个二维表 表中每一行:对应一个元素(向量)表中每
3、一列:对应一个域,2.1.1 关系数据结构,做为集合,笛卡尔乘积中元素称为元组(Tuple)通常记为t,关系R是元组t的一个集合关系R中元组以行形式出现,从形式上看关系R就相当于一张二维表(table)一个关系也称为一张关系表R 每一行对应一个元组(向量)每一列对应一个属性(域),2.1.1 关系数据结构,关系R需要满足 R D1D2Dn 关系R的最基本语法要求 数据不能没有语义 数据使用和管理的要点是数据的语义 对满足语法要求的关系R应进行相应语义描述 即还需考虑下述问题:,2.1.1 关系数据结构,一.基本语义限制进行如下规范化了的数学“关系”才能是关系模型的数据结构:规范化二维平面关系表
4、 有限性:关系是其元组的有限集合 原子性:关系中的每个列具有不可再分性质 属性列无序性:关系中列不考虑相互顺序,为此,需要 为每个列给出名称,及属性名。,2.1.1 关系数据结构,二.数据关联描述数据关联:同一关系内数据关联和不同关系数据关联。(1)同一关系内数据关联同一关系中各个属性关联通过主键机制实现 能够唯一标识元组的一组属性称为“超键”最小的超键称为“候选键”确定使用的候选键称为主键(关系可有多个候选键),2.1.1 关系数据结构,(2)不同关系间数据关联 不同关系间数据关联通过外键机制实现 设有关系R和S,R中一组属性A若不是R主键,却是S主键则A为R(关于S)的外键。外键的意义:将
5、关系间关联也作为一种“关系”进行描述 统一和简化了关系数据的技术处理,2.1.1 关系数据结构,数据语义描述与处理是数据管理的基本课题:通过“规范化”二维表对关系进行基本语义限定 通过“主键”和“外键”对关系进行语义关联描述但这仅是数据语义的基本要求:只能保证关系数据能够进行计算机管理(合法性)难以保证计算机管理数据的正确性和有效性(合适性),2.1.3 关系数据完整性约束,从应用和技术实现角度还需要对相应数据实体集的范围外延和数据间关系加以约束,这就是 关系数据完整性约束机制关系数据完整性约束机制包括三个组成部分 实体完整性约束 参照完整性约束 用户完整性约束,2.1.3 关系数据完整性约束
6、,实体完整性约束 数据标识是数据语义处理的前提,否则,计算机处理和实际应用过程中将难以进行语义和技术上的识别,需要限定关系数据中元组标识不能为空实体完整性约束:关系主键不能取空值,2.1.3 关系数据完整性约束,参照完整性约束 描述和处理数据语义关联,实现高效数据处理的技术途径,例如通过数据间“引用”可减少存储空间和实现快速查找 参照完整性约束:当属性集A是关系R关于关系S的外键时 A或取空值,或取S中某个元组的主键值。,2.1.2 关系数据完整性约束,用户完整性约束 数据语义与数据所处语境有密切关联,实际用户的应用环境是最重要的数据语境之一。用户完整性约束 用户在应用环境中自行定义的语义约束
7、 实体完整性和参照完整性通常由DBMS实现 用户完整性约束与各样应用背景关联,系统难以统一处理,呈现出复杂多样的特点。,2.1.3 关系数据完整性约束,数据模型 数据管理过程中数据结构、数据操作和完整性约束的抽象 数据模式在给定数据模型框架内对具体应用数据的描述。数据模型:像是一种给定的程序设计语言 数据模式:使用该语言对一个实际问题的具体实现程序应用关系数据模型建立具体数据库就是关系数据数据模式,2.1.4 关系数据模式,美国国家标准协会(ANSI)就将数据模式分为三种级别 内模式(物理模式)概念模式(模式 逻辑模式)外模式(用户模式),2.1.4 关系数据模式,数据库系统三级模式结构意义将
8、一个应用单位所涉及数据的具体组织交由DBMS完成使用户不必具体处理数据在计算机中的表示和存储方式专心在较高的抽象层面上对数据进行有效管理上述三个数据模式可以通过下述两级映射进行相互转换 外模式/概念模式映射 概念模式/内模式映射,2.1.4 关系数据模式,三级模式结构:使得数据在计算机内表述与组织对用户透明 两级映射:提供数据的逻辑独立性与物理独立性 三级模式/两级映射:现今数据模式基本架构 数据库的三级模式/两级映射的体系结构。,2.1.4 关系数据模式,第2讲 关系数据库基础,2.1 关系数据模型2.2 关系数据语言SQL2.3 关系模式设计2.4 关系数据库保护2.5 关系数据事务管理,
9、2.2.1 SQL基本功能,SQL中关系定义就是模式定义,包括 定义数据库模式(数据库)定义关系模式(基本表和视图)此时“定义”实际包括“创建”(CREATE)“撤销”(DROP)“修改”(ALTER),2.2.2 关系定义,SQL数据操作主要分为数据查询和数据更新两种情形数据查询的基本操作是投影、选择和连接。数据更新的基本操作是插入、删除和修改。SQL数据查询功能可看做一种基于关系运算的操作形式。在关系代数当中,许多查询的逻辑实现都可被描述为“选择之后再投影”的常见运算,即可用下面基本表达式表示:a1,ar2,an F(R1 R2 R3 Rn),2.2.2 关系定义,这个表达式中有三组基本参
10、数。查询的目标属性:a1,a2,an。查询所涉及的关系:R1,R2,R3,Rn。查询的逻辑条件:F。在SQL中,上述基本表达式可以被抽象为一个映射块,这个映射块构成SQL查询的基本语句,而上述三组参数实现使用三个子句分别表示。这三个子句是SELECT子句、FROM子句和WHERE子句。,2.2.2 关系定义,SELECT子句:表示查询结果中所需的目标属性,可看作做应于关系代数中投影运算。FROM子句:表示查询所涉及的一个或多个关系,在多个关系情形,可看做对应于关系代数中的连接运算。WHERE子句:表示作用于FROM子句所列关系中相关属性上的逻辑条件,可看做对应于关系代数中的选择运算。,2.2.
11、2 关系定义,由上述三个子句组成的映像语句的一般格式为:SELECTALL|DISTINCT,FROM,WHEREGROUP BY HAVINGORDER BYASC|DESC,2.2.2 关系定义,上述整个映像语句的运算含义描述如下:首先,根据WHERE子句中的条件表达式进行选择;其次,由FROM子句指定的基本表或视图中检索满足条件的元组;最后,按照SELECT子句中的目标属性表达式,选出元组中的属性值形成结果关系表。,设需要定义一个“学生-课程数据库”S-C:学生关系表:S(Sno,Sname,Ssex,Sage,Sdept)课程关系表:C(Cno,Cname,Cpno,Ccredit)学
12、生课程关系表:SC(Sno,Cno,Grade)例1 创建一个学生-课程数据库S-CCREATE SCHEMA“S-C”AUTHORIZATION John;,2.2.2 关系定义,例2 建立一个“学生选课”基本表SCCREATE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES S(Sno),FOREIGN KEY(Cno)REFERENCES C(Cno);,2.2.2 关系定义,例3 建立计算机科学系的学生视图。CREATE VIEW CS_S A
13、S SELECT Sno,Sname,Sage FROM Student WHERE Sdept=IS;,2.2.2 关系定义,关系数据查询分为 基于单表查询 基于连接的多表查询 基于嵌套的多表查询 基于嵌套查询:不相关子查询 相关子查询,2.2.3 数据查询,例4 基于连接多表查询:查询每个学生及其选修课程的情况 SELECT Student.*,SC.*FROM Student,SC WHERE Student.Sno=SC.Sno;,2.2.3 数据查询,例5 基于嵌套的多表查询:查询选修了课程名为“DB”的学生学号和姓名 SELECT Sno,Sname/最后在Student关系中取出
14、Sno 和Sname FROM Student WHERE Sno IN(SELECT Sno/然后在SC关系中找出选修了3号课程的学 生学号 FROM SC WHERE Cno IN(SELECT Cno/首先在C中找出“DB”的课程号3号 FROM C WHERE Cname=DB);,2.2.3 数据查询,例6 设有如下嵌套查询 SELECT Sname FROM Student WHERE EXISTS(SELECT*FROM SC WHERE Sno=Student.Sno AND Cno=1);则可以转换为如下连接查询:SELECT SnameFROM Student,SCWHER
15、E Student.Sno=SC.Sno AND SC.Cno=1;,2.2.3 数据查询,SQL有插入元组和插入子查询结果两种方式例7 对每一个系,求学生平均年龄首先,定义相应关系表Dept_age:CREATE TABLE Dept_age(Sdept CHAR(15)/*系名*/Avg_age SMALLINT);/*学生平均年龄*/向Dept_age插入数据 INSERT INTO Dept_age(Sdept,Avg_age)SELECT Sdept,AVG(Sage)FROM Student GROUP BY Sdept;,2.2.3 数据更新,2.数据删除例8 删除CS中所有学生
16、的选课记录。DELETE FROM SC WHERE CS=(SELETE Sdept FROM Student WHERE Student.Sno=SC.Sno);,2.2.3 数据更新,3.数据修改例9 将计算机科学系全体学生的成绩置零。UPDATE SC SET Grade=0 WHERE CS=(SELETE Sdept FROM Student WHERE Student.Sno=SC.Sno);,2.2.3 数据更新,第2讲 关系数据库基础,2.1 关系数据模型2.2 关系数据语言SQL2.3 关系模式设计2.4 关系数据库保护2.5 关系数据事务管理,关系数据模式设计=关系数据库
17、逻辑设计 针对具体问题构造一个相应数据模式构造原理:关系数据库规范化理论 实际应用问题中需要将客观实体各种特征抽象为属性 然后将这些属性构成相应关系模式实际中抽象出来的多个属性不能简单凑成若干个关系模式“有关联”和“没关联”属性不可组成同一个关系表“强关联”和“弱关联”属性不可组成同一个关系表 否则会产生数据冗余 数据冗余会引发数据异常,2.3 关系模式设计,为了避免由于数据冗余带来的数据不一致只能将有关联的属性子集 以及有较强关联的属性子集放在一起构成相应关系模式 需要研究:如何刻画属性子集之间的语义关联?如何得到属性子集之间的语义关联?,2.3.1 函数依赖,描述属性间语义关联就是研究各类
18、数据依赖数据依赖:关系模式内部属性间约束关系 反映数据内在性质 是数据语义的实际体现。主要数据依赖 函数依赖(Functional Dependency,FD)多值依赖(Multivalued Dependency,MVD)连接依赖(Joined Dependency,JD),2.3 关系模式设计,函数依赖:最基本的数据依赖 设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”记作XY。其中X称为决定因素属性组,Y称为依赖因素属性组,2.3.1 函数依
19、赖,平凡函数依赖 部分函数依赖-“弱”语义关联数据依赖传递函数依赖/非平凡函数依赖完全函数依赖-“强”语义关联数据依赖直接函数依赖/,2.3.1 函数依赖,关系模式设计基本要求:不能将无数据语义关联的属性做成一个关系模式 不能将弱数据语义关联的属性做成一个关系模式基本前提 确定给定属性集合上所有属性子集之间的函数依赖关联,2.3.1 函数依赖,怎样得到所有函数依赖之集:给定属性集合上已知函数依赖集为F 通过基于函数依赖语义推理“逻辑蕴含”得到F的包F+,2.3.1 函数依赖,(1)基本公理与推理规则1)基本公理Armstrong公理系统3条基本公理 A1(自反律,reflexivity)如果Y
20、 是X子集,则XY。A2(增广律,augmentation)如果XY在R(U)上成立,且ZU,则 XZYZ A3(传递律,transitivity)如果XY和YZ成立,则 XZ。,2.3.1 Armstrong公理系统,2)推理规则由基本公理A1、A2和A3为基础,可得下面五条推理规则 A4(合并性规则 union)XY,XZ XYZ。A5(分解性规则 decomposition):XY,ZY XZ。A6(拟传递性规则 pseudotransivity)XY,WYZWXZ。A7(复合性规则 composition rule)XY,WZWXYZ。A8(通用一致性规则 general unific
21、ation rule):XY,WZX(W-Y)YZ。,2.3.1 Armstrong公理系统,范式 符合某一种级别的关系模式的集合 关系数据库中的关系必须满足一定的要求 满足不同程度要求的为不同范式 关系模式R为第n范式,可简记为RnNF 一个低一级范式的关系模式通过模式分解可以转换为若干个高一级范式的关系模式 的集合过程叫规范化,2.3.3 关系模式范式,(1)第一范式如果一个关系模式R所有属性都是不可分的基本数据项 则R1NF。第一范式是对关系模式最基本要求 不满足第一范式数据库模式不能称为关系数据库对于不满足1NF的关系模式,需将不满足要求的属性“分解”为满足原子性的多个属性,2.3.3
22、 关系模式范式,(2)第2范式 若R1NF,且每一个非主属性完全函数依赖于键,则称R满足第2方式,记为R2NF(3)第3范式 关系模式R中若不存在这样的键X、属性组Y 及非主属性 Z(Z Y),使得XY,YZ成立,则称R满足第3范式 记为R 3NFN若R3NF必有R2NF 若R3NF,则每一个非主属性既不部分依赖于键也不传递依赖于键。,2.3.3 关系模式范式,(4)BC范式 关系模式1NF,若XY且Y X时X必含有键,则称R满足BCNF,并记为R BCNF。RBCNF等价于每一个决定因素属性组都包含主键。当若RBCNF时,所有非主属性对键都是完全函数依赖;所有主属性对每一个不包含它的键也是完
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 基础
链接地址:https://www.desk33.com/p-351198.html