第2章关系数据库电子课件 MySQL数据库管理与应用.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第2章关系数据库电子课件 MySQL数据库管理与应用.pptx》由会员分享,可在线阅读,更多相关《第2章关系数据库电子课件 MySQL数据库管理与应用.pptx(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章关系数据库电子课件 MySQL数据库管理与应用第2章 关系数据库主要内容2.1 关系模型2.2 关系代数2.3 关系数据库设计2.4 本章小结2.1 关系模型E.F.Codd,1970关系模型的三要素关系数据结构关系数据操作关系的完整性约束条件2.1.1 关系模型的三要素关系数据结构关系模型的数据结构非常单一,即关系。现实世界中的实体以及实体之间的各种联系统一用关系表示。在用户看来,一个关系就是一张二维表。l行:元组(记录)l列:属性(字段)2.1.1 关系模型的三要素关系数据操作查询和更新(插入、修改、删除)两大类集合操作方式(set-at-a-time)高度非过程化种类2.1.1 关
2、系模型的三要素关系的完整性约束条件实体完整性参照完整性用户定义的完整性实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为关系的两个不变性,应由关系系统自动支持。具体的应用领域还可能存在一些特定的语义约束,用户可以相应地定义一些完整性约束条件,这些完整性约束条件一经用户定义也应由关系系统自动支持。2.1.2 关系数据结构域(Domain)一组具有相同数据类型的值的集合。在关系中,域用来作为属性的取值范围。l学号属性所取的由11位数字组成的字符串集合l年龄属性所取的大于14且小于40的正整数集合l性别属性所取的由“男”和“女”这两个值组成的集合笛卡尔积(Cartesian Produ
3、ct)给定了一组域 ,这些域的笛卡尔积定义为:每一个元素称为一个n-元组(n-tuple),简称元组(Tuple)。元组中的每一个值称为一个分量(Component)。2.1.2 关系数据结构若干域的笛卡尔积可表示成一张二维表,表中的每一行对应于笛卡尔积的每一个元素或元组,表中的每一列对应于笛卡尔积的每一个域。例如,给定了以下三个域:姓名集合(name)=张林,李宏年龄集合(age)=20,21专业集合(major)=计算机科学与技术,软件工程则它们的笛卡尔积为:(张林,20,计算机科学与技术),(张林,20,软件工程),(张林,21,计算机科学与技术),(张林,21,软件工程),(李宏,20
4、,计算机科学与技术),(李宏,20,软件工程),(李宏,21,计算机科学与技术),(李宏,21,软件工程)2.1.2 关系数据结构该笛卡尔积一共有 个元组,可表示成如表2.1所示的一张二维表。显然,如表2.1所示的笛卡尔积中有很多元组是没有任何实际意义的。2.1.2 关系数据结构关系(Relation)从相关域的笛卡尔积中抽取的具有实际意义的若干元组所构成的集合。作为笛卡尔积的子集,关系同样可以表示成二维表的形式。假设所有学生都不会同名,且每名学生只属于一个专业,那么表2.1中只有两个元组具有实际意义。假设张林和李宏的年龄分别是21和20岁,分别是计算机科学与技术和软件工程专业的学生,相应的两
5、个元组就构成了描述学生年龄及其所属专业的一个关系,如表2.2所示。2.1.2 关系数据结构关系(Relation)关系的每一行就是关系的一个元素或元组(Tuple),描述一个具体的实体或实体之间的一个具体联系,通常用t表示。关系的每一列就是关系的一个属性(Attribute)或字段(Field),其值来自相应的域。在关系的所有属性中,可以唯一确定一个元组的属性或属性的最小组合称为该关系的码(键,Key)或候选码(候选键,Candidate Key)。如果候选码多于一个,则选取其中一个候选码作为主码(主键,Primary Key)。包含在任一候选码中的属性称为主属性(Primary Attrib
6、ute)。不包含在任何候选码中的属性称为非主属性(Non-Primary Attribute)或非码属性(Non-Key Attribute)。2.1.2 关系数据结构关系(Relation)关系模型要求关系必须是规范的,即要求关系必须满足一定的规范性条件,满足一定规范性条件的关系模式的集合称为范式(Normal Form,简称NF)。最基本的规范条件就是关系的每一个分量都必须取不可再分的原子值。2.1.2 关系数据结构关系模式(Relation Schema)对关系的结构及其特征的抽象描述,相对稳定。形式化表示为一个五元组R(U,D,dom,F)lR为关系名。lU为组成该关系的属性名集合。l
7、D为U中各属性来自的域集合。ldom为属性到域的映射集合,用来确定U中的每一个属性分别来自D中的哪一个域。lF为属性间的数据依赖集合,用来限定组成该关系的各元组必须满足的完整性约束条件,体现了关系的元组语义。通常简记为:R(U)或R(A1,A2,An)l表2.2中的student关系可抽象描述为:student(name,age,major)关系模式与关系:型(Type)与值(Value)2.1.3 关系的完整性约束条件实体完整性(Entity Integrity)若属性A是关系R的主属性,则属性A不能取空值。所谓空值(null)是指“不知道”或“不存在”的值。由于主属性是用来唯一标识实体的基
8、本属性,若主属性取空值,就说明这个实体不能被唯一标识,这与现实世界的要求和实体能被相互区分是背离的。实体完整性要求所有主属性都不能取空值。lstudent(name,age,major)l选修(学号,课程号,成绩)2.1.3 关系的完整性约束条件参照完整性(Referential Integrity)现实世界中实体与实体之间往往存在着某种联系,表现在关系数据库中就是关系与关系之间的属性引用。学生、专业实体以及它们之间的一对多的属于联系可以用下面两个关系表示:l学生(学号,姓名,性别,年龄,专业号)l专业(专业号,专业名,专业负责人)学生和专业之间的属于联系表现为这两个关系之间的属性引用,即学生
9、关系的“专业号”属性引用了专业关系的主码“专业号”。2.1.3 关系的完整性约束条件参照完整性(Referential Integrity)学生关系中的“专业号”值必须是确实存在的某个专业的专业号,即专业关系中的某个“专业号”值,专业关系中不存在的“专业号”值是毫无意义的。在这样的属性引用中,学生关系中“专业号”属性的取值需要参照专业关系中主码“专业号”的取值。2.1.3 关系的完整性约束条件参照完整性(Referential Integrity)在学生关系中,“专业号”属性虽然不是主码,但它却引用(或参照)了专业关系的主码,这样的属性引用不但可以表达学生和专业之间的属于联系,而且还使它的取值
10、受到了一定的限制,这样的属性称为外码或外键。外码:设F是关系R的一个(或一组)属性,但不是关系R的码,若F引用(或参照)了关系S的主码Ks,则称F是R的外码(外键,Foreign Key)。显然,外码F和主码Ks必须定义在同一个(或同一组)域上。2.1.3 关系的完整性约束条件参照完整性(Referential Integrity)参照完整性:若属性(或属性组)F是关系R的外码,引用(或参照)的是关系S的主码Ks,则R中每个元组在F上的取值l要么为空值;l要么为S中某个元组的Ks值。和实体完整性约束主属性的取值不同,参照完整性约束的是外码的取值,用来保证外码对相应主码的正确引用,以体现客观对象
11、之间的各种联系,从而实现了数据的整体结构。l级联删除l级联修改按照参照完整性,学生关系中的“专业号”属性l要么取空值,表示该生尚未分配专业或者不知道他的专业;l要么取专业关系中的某个“专业号”值,表示该生已属于某个确实存在的专业。2.1.3 关系的完整性约束条件参照完整性(Referential Integrity)学生(学号,姓名,性别,年龄,专业号)课程(课程号,课程名,学分)选修(学号,课程号,成绩)选修关系和学生、课程关系之间都存在属性的引用。因此,选修关系有两个外码:学号和课程号。2.1.3 关系的完整性约束条件参照完整性(Referential Integrity)按照参照完整性l
12、选修关系的“学号”属性要么取空值,要么取学生关系中的某个“学号”值,即某名学生的学号。l选修关系的“课程号”属性要么取空值,要么取课程关系中的某个“课程号”值,即某门课程的课程号。当然,这两个属性都不能取空值。为什么?2.1.3 关系的完整性约束条件用户定义的完整性(User-defined Integrity)除了实体完整性和参照完整性外,具体的应用领域还可能存在一些特定的语义约束。l大学生的年龄限定在1440岁之间l课程名要求不重复l大学生的不及格门次限定在3门以下l成绩的取值范围为0100l 为了使数据能正确反映这些语义约束,从而真实地模拟现实世界,用户可以相应地定义一些完整性约束条件。
13、这些完整性约束条件一经用户定义,也应和实体完整性、参照完整性一样由关系系统自动支持,而不应像文件系统那样由应用程序来承担这一功能。2.2 关系代数用对关系的运算即代数方式来表达查询的一种抽象的查询语言。运算对象是一个或多个关系运算结果也是一个新的关系 运算符:8个2.2.1 传统的集合运算并(Union)交(Intersection)差(Difference)很显然,条件:R和S具有相同的属性个数,并且对应的属性来自同一个域,即它们的结构是兼容的。RS2.2.1 传统的集合运算假设由所有2019级学生构成的关系为student_2019(如表2.5所示),由所有获得一等奖学金的学生构成的关系为
14、student_first(如表2.6所示)。2.2.1 传统的集合运算广义笛卡尔积(Extended Cartesian Product)l 表示R中元组 和S中元组 拼接而成的一个新元组。2.2.2 专门的关系运算选择(Selection)又称限制(Restriction),是一个单目运算,其结果是从参与运算的关系中选择满足给定条件的那些元组所构成的一个新关系。F为选择条件,是由逻辑运算符(and)、(or)或(not)连接各比较表达式组成的一个逻辑表达式。就是从关系R中选择使条件F为真的那些元组。2.2.2 专门的关系运算假设学生选课数据库包括学生关系、课程关系和选修关系。2.2.2 专
15、门的关系运算【例2-1】查询0101号专业所有学生的基本情况。或2.2.2 专门的关系运算【例2-2】查询年龄小于或等于20岁的0101号专业所有学生的基本情况。或 2.2.2 专门的关系运算投影(Projection)单目运算,其结果是从参与运算的关系中选择给定的若干属性所构成的一个新关系。A为R中的属性(或属性组)。和选择操作不同,投影操作是从属性(列)的角度进行运算。【例2-3】查询所有学生的学号和姓名。或 2.2.2 专门的关系运算【例2-4】查询学生表中有哪些专业。或由于只保留了关系的部分列,因此可能会出现重复行,投影结果应消除这些重复行,如表2.19所示。2.2.2 专门的关系运算
16、连接(Join)广义笛卡尔积会产生大量无效元组,为了避免出现无效元组,只有满足一定条件才允许将对应的元组进行拼接,这就是连接操作。连接,也称 连接,是从两个关系的广义笛卡尔积中选择属性间满足一定条件的元组所构成的一个新关系。或者说,两个关系的元组只有相应分量的取值满足一定条件时才能拼接成为新关系中的元组。其中,A和B分别为R和S中可比较的属性(组),是比较运算符。R中元组 在属性(组)A上的取值 和S中元组 在属性(组)B上的取值 只有满足条件 时才能拼接成为 中的元组 。2.2.2 专门的关系运算两种最常用的连接l等值连接(Equi-Join)l自然连接(Natural Join)自然连接是
17、一种特殊的等值连接。自然连接要求两个关系中进行等值比较的属性(组)必须是相同的属性(组)。自然连接的结果要把重复的属性去掉。2.2.2 专门的关系运算【例2-5】设有如图2.4(a)和图2.4(b)所示的两个关系R和S,则不同连接的结果分别如图2.4(c)图2.4(e)所示。2.2.2 专门的关系运算【例2-6】查询选修了课程的学生及其选修课程的基本情况。2.2.2 专门的关系运算除(Division)若要查询选修了某些课程的学生,并且这些课程不能明确地一一列举出来,而只是满足了给定特征(或具有了相同性质)的一组课程,如“刘丽”选修的全部课程,这种情况下仅用选择操作是远远不够的,因为选择条件无
18、法明确给出,这时可以用除运算。给定关系R(X,Y)和S(Y,Z),即R和S具有相同的属性(组)Y,R与S的除运算得到一个新关系P(X),P是R中满足以下条件的元组在属性(组)X上的投影:元组在X上的取值x对应的Y值集合(记作x映射到Y上的象集Yx)包含S在Y上投影的集合。2.2.2 专门的关系运算【例2-7】查询至少选修了101和202两门课程的学生学号。若要用选择运算,需要用到集合的交运算,即有:若要用除运算,需要先将查询条件中的不同课程号组建为一个临时关系(集合)K:2.2.3 综合实例【例2-8】查询选修了“数据结构”课程的学生学号。解法一:解法二:选择哪个?2.2.3 综合实例【例2-
19、9】查询选修了全部课程的学生学号和姓名。【例2-10】查询没有选修202号课程的学生学号。数据库设计是针对一个具体的应用环境,设计优化的数据库逻辑结构和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储、管理和利用数据,满足各种用户的应用需求(包括数据需求、处理需求、安全性和完整性需求等)。数据库设计不但要建立数据库,而且还要建立基于数据库的应用系统,即设计整个数据库应用系统,这是对数据库设计的广义理解。本书主要讨论狭义的数据库设计,即设计数据库本身,或者说,设计数据库的各级模式并据此建立数据库。2.3 关系数据库设计2.3 关系数据库设计结构(数据)设计和行为(处理)设计相结合数据库
20、中存储什么样的数据以及它们以什么样的结构组织在一起决定了应用系统能够实现哪些功能以及它们的执行效率如何。具体应用需求还能用来对数据库的结构进行有针对性的优化。l为提高登录操作的执行效率(它对用户的满意度影响很大),可以把该操作涉及到的用户名和密码这2个属性从用户表中分解出来单独建表。l为经常放在一起查询的不同表中的属性考虑是否能将其合并并存储在同一个节点上。l为经常出现在查询条件中的属性建立索引。2.3.1 数据库设计的步骤按照规范设计法,目前人们通常把数据库设计的全过程分为以下6个基本阶段:需求分析概念结构设计逻辑结构设计物理结构设计数据库实施数据库运行和维护在这六个阶段中,需求分析和概念结
21、构设计可以独立于任何数据库管理系统,因此,在设计的初期,并不急于确定到底采用哪一种数据库管理系统,从逻辑结构设计阶段开始才需要选择一种具体的数据库管理系统。2.3.1 数据库设计的步骤数据库的设计需要多种人员在不同阶段参与进来,包括系统分析人员、数据库设计人员、数据库管理员、应用开发人员和用户。系统分析人员和数据库设计人员是数据库设计的核心人员,他们将自始至终参与数据库的设计,他们的水平直接决定了数据库系统的质量。由于需要对数据库进行全面的管理、控制和维护,数据库管理员也需要参与数据库设计的全过程。应用开发人员(包括程序员和操作员)在数据库实施阶段参与进来,负责编制程序和准备软硬件环境。用户在
22、需求分析阶段和概念结构设计阶段参与进来,使设计人员能准确把握用户的各种需求,并设计出用户认可的概念模型;此外,设计出来的数据库最终还要交给用户正式运行,因此,用户还要参与数据库的运行和维护阶段。2.3.1 数据库设计的步骤需求分析阶段进行数据库设计首先必须准确了解和分析各种用户的应用需求。需求分析是整个设计过程的基础和起点,需求分析做得是否充分与准确,决定了在此基础上建立的数据库能否有效地实现既定目标。通过调查、搜集和分析,获得用户对数据库的以下需求:l数据需求l处理需求l安全性与完整性需求对用户的以上需求进行分析和表达之后,必须提交给用户,征得用户的认可。需求分析阶段的一个重要而困难的任务是
23、搜集将来应用可能涉及到的数据,设计人员应充分考虑到应用的可扩充性,使系统易于扩充。2.3.1 数据库设计的步骤概念结构设计阶段概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳和抽象,形成独立于任何数据库管理系统的概念模型,通常用E-R图表达。在需求分析阶段得到的应用需求首先应抽象为信息世界中的概念模型,这样才能更准确地用某一数据库管理系统支持的数据模型来实现这些需求。l和数据模型相比,概念模型更容易被用户理解,能让用户积极地参与到数据库设计中来,是数据库设计成功的关键。2.3.1 数据库设计的步骤逻辑结构设计阶段逻辑结构设计是将概念模型转换为某一数据库管理系统支持的数据模型(
24、如关系模型),并对其进行优化。除模式外,逻辑结构设计还要根据用户对数据的不同需求建立必要的视图,即外模式。2.3.1 数据库设计的步骤物理结构设计阶段物理结构设计是为数据模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法,这依赖于具体的数据库管理系统。不同的数据库管理系统提供的物理环境、存取方法和存储结构有很大差别,为此,需要对在数据库上运行的各种事务进行详细分析,根据所用数据库管理系统提供的存储结构和存取方法,选取一个最适合应用环境的物理结构,使得在数据库上运行的各种事务的总体(或期望)响应时间小、存储空间利用率高、事务吞吐率大。2.3.1 数据库设计的步骤物理结构设计阶段为了提高
25、数据的存取效率l可以为某些属性(如用于表连接的属性、经常出现在查询条件中的属性以及经常需要排序的属性等)建立必要的索引。l可以通过分区、条带化存储、冗余存储等机制利用并行处理技术来提高数据的存取效率。l根据实际情况将数据的易变部分和稳定部分、经常存取部分和存取频率较低部分分开存放。在物理结构设计过程中,需要对时间效率、空间效率和维护代价这3个方面的因素进行权衡(它们常常是相互矛盾的),可以产生多种方案,数据库设计人员应对其进行细致的评价,从中选取一个较优的方案作为数据库的物理结构。2.3.1 数据库设计的步骤数据库实施阶段根据逻辑结构设计和物理结构设计的结果,开发人员使用数据库管理系统提供的数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章关系数据库电子课件 MySQL数据库管理与应用 关系 数据库 电子 课件 MySQL 管理 应用
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内