《数据库原理及应用》PPT完整全套教学课件.pptx
《《数据库原理及应用》PPT完整全套教学课件.pptx》由会员分享,可在线阅读,更多相关《《数据库原理及应用》PPT完整全套教学课件.pptx(659页珍藏版)》请在冰豆网上搜索。
数据库原理及应用,第一章数据库基础,本章导读,学习目标,目录,数据与信息,数据是对客观事物、事件的记录与描述,也是对客观事物的逻辑归纳。
数据可以是连续的,如声音、图像等;也可以是离散的,如符号、文字等。
数据与其语义密不可分,语义指数据的含义。
例如,“95”是一个数据,被赋予特定的语义后,它可以表示某学生某门课的成绩,这就是信息。
简单来讲,信息是对数据的解释,即,信息=数据+语义,例如,有一条学生成绩信息:
信息学院计算机一班的张三同学在数据库原理及应用考试中取得了95分的成绩,转换成计算机中的数据,可以描述为(张三,信息学院,计算机一班,数据库原理及应用,95)。
数据处理与数据管理,数据管理是数据处理的核心,其过程比较复杂,主要包括数据的分类、组织、编码、存储、维护、检索等操作。
对于这些数据管理操作,人们需要一个通用、高效且使用方便的管理软件,将数据有效地管理起来。
数据库技术正是瞄准这一目标,研究、发展并完善起来的。
数据处理是将数据转换成信息的过程,包括对数据进行采集、管理、加工、变换和传输等一系列活动。
数据处理的目的有两个,其一是从大量的原始数据中抽取和推导出有价值的信息,作为决策的依据;其二是借助计算机科学地保存和管理大量复杂的数据,便于人们能够充分地利用这些信息资源。
数据与信息,数据库(DataBase,DB)是存储在计算机内,有组织的、可共享的相关数据的集合,这种集合按一定的数据模型组织、描述并长期存储,同时能够以安全可靠的方法对数据进行检索。
数据库数据具有冗余度小、独立性高、延展性强、共享性好,以及结构化和永久性等特点。
数据库,数据库管理系统,数据库管理系统(DataBaseManagementSystem,DBMS)是指建立、运用、管理和维护数据库,并对数据库进行统一控制的系统软件。
常见的数据库管理系统,数据库系统,数据库系统(DataBaseSystem,DBS)是指在计算机系统中引入数据库后的系统。
它主要由数据库、数据库用户、计算机硬件系统和计算机软件系统等几部分组成,如右图所示。
有时人们也将数据库系统简称为数据库。
数据库用户指开发、管理和使用数据库的人员,包括系统分析员、数据库设计员、应用程序员、数据库管理员和最终用户等。
系统分析员负责确定应用系统的需求分析和规范说明,他们和最终用户及数据库管理员一起确定系统的硬件配置,参与数据库的概要设计;数据库设计员负责确定数据库中的数据和设计数据库的各级模式;应用程序员负责编写使用数据库的应用程序;数据库管理员负责数据库的总体信息控制;最终用户利用系统的接口或查询语言访问数据库。
随着计算机硬件和软件的发展,数据管理经历3个发展阶段。
人工管理阶段,在20世纪50年代中期以前,计算机主要用于科学计算。
当时的计算机硬件和软件都不完善,硬件存储设备只有卡片、纸带和磁带;软件方面只有汇编语言,没有操作系统和管理数据的软件,因此只能采用人工方式对数据进行管理。
文件系统阶段,在20世纪50年代后期至60年代中期,计算机硬件和软件都有了极大的发展,计算机开始用于数据管理。
这一时期,硬件方面出现了磁盘、磁鼓等直接存储设备;软件方面出现了高级语言和操作系统,操作系统中的文件系统就是专门用来管理数据的软件。
文件系统阶段相较于人工管理阶段有了新的特点:
数据以文件的形式长期存储,文件系统提供文件管理功能及存取方法,应用程序与数据间具有一定的独立性,文件形式多样化,数据间具有一定的共享性等。
数据库系统阶段,到了20世纪60年代后期,硬件方面出现了大容量、存取快速的磁盘;硬件价格下降且软件价格上升,使开发和维护系统软件的成本相对增加。
文件系统的数据管理方法无法适应各种应用程序的需要,于是数据库技术应运而生,出现了统一管理数据的专门软件系统,即数据库管理系统,这标志着数据库系统阶段的开始。
数据库系统在数据处理上有了明显的功能提升。
数据模型的概念,数据模型,数据模型的组成要素,数据模型的类型,相关术语,概念模型中实体型之间的联系,一对一联系(11),多对多联系(mn),一对多联系(1n),概念模型的E-R图表示方法,概念模型的表示方法有很多,其中最著名、最常用的是陈品山(PeterChen)于1976年提出的实体-联系方法(Entity-RelationshipApproach),简称为E-R图。
E-R图提供了表示实体、属性和联系的方法。
在E-R图中,用矩形表示实体,矩形内部写上实体名;用椭圆形表示属性,内部写上属性名,并用无向边与相应的实体相连。
菱形表示联系,内部写上联系名,并用无向边分别与有关实体相连,同时在无向边旁标上联系的类型(11,1n,mn)。
E-R图也可以表示两个以上实体型之间或单个实体型内部的联系。
例如,班级、学生和班干部3个实体型之间的一对多联系,学生、教师和课程3个实体型之间的多对多联系,以及教师实体内部具有管理和被管理的一对多或多对多联系,(a)三个实体型一对多联系(b)三个实体型多对多联系(c)单个实体型内部联系,层次模型,用树形结构表示实体类型及实体间联系的数据模型称为层次模型。
它将实体之间的联系抽象成一种自上而下的层次关系,用树形结构表示出来。
层次模型的优点是数据结构简单清晰、提供了良好的完整性支持、结构间联系简单及数据查询效率高等。
但是这类模型不能直接表示两个以上实体型间的复杂联系,也不能表示实体型间的多对多联系。
模型受限、物理成分复杂等原因,使其不能用于表示非层次性的联系。
网状模型,网状模型在层次模型的基础上去掉了两个限制,可以更直接地描述现实世界。
网状模型具有比层次模型更好的性能和高效率的存储方式,但其数据结构比较复杂,数据模式和系统实现均不理想。
关系模型,面向对象模型,以面向对象的观点描述实体的逻辑组织、对象间限制与联系的模型是面向对象模型。
这类模型具有抽象性、封装性、继承性和多态性等特性,是面向对象的思想与数据库技术相结合的产物,它能更完整地描述现实世界的数据结构,具有丰富的表达能力。
但这类模型相对复杂,涉及知识比较多,目前普及程度不如关系模型。
面向对象模型,数据库系统根据不同的层次和角度可分为外部体系结构和内部体系结构。
从数据库管理系统的角度看,虽然不同的数据库系统实现的方式各不相同,但它们在内部体系结构上均可表示为三级模式结构,并提供二级映像。
基于相对稳定的数据模式实现了数据的独立性。
数据库系统的内部体系结构从逻辑上分为外模式、模式和内模式三级抽象模式结构,并提供外模式/模式、模式/内模式二级映像。
对于用户而言,外模式、模式和内模式分别对应一般用户模式、概念模式和物理模式,它们反映了看待数据库的3个角度。
数据库系统的三级模式结构和二级映像功能如右图所示。
模式,模式也称为概念模式或概念视图,是数据库中全体数据的逻辑结构和特征的描述,处于三级模式结构的中间层,不涉及数据的物理存储和硬件环境,与开发工具及程序设计语言无关。
一个数据库只有一个模式,模式是数据的逻辑表示,它描述了数据库中存储的具体数据及其之间存在的联系。
外模式,外模式又称子模式或用户模式,它是三级结构的最外层,是数据库用户能够看到并允许使用的那部分数据的逻辑结构和特征的描述,是数据库用户的数据视图。
外模式是模式的子集,一个数据库可以有多个外模式。
用户可以根据系统所给的外模式,用查询语言或应用程序去操作部分数据,数据库中的其余数据对于用户来说是不可见的,所以外模式也是保证数据库安全的一种有力措施。
内模式,内模式又称存储模式或物理模式,是三层结构中的最内层,也是最靠近物理存储的一层。
它是对数据库存储结构的描述,是数据在数据库内部的表达方式。
为了在数据库系统中实现3个抽象层次的联系与转换,数据库管理系统在这三级模式之间提供了外模式/模式和模式/内模式的二级映像。
外模式/模式映像,数据库中的同一个模式可以有任意多个外模式,对于每一个外模式,都存在一个外模式/模式映像,它确定了数据库的局部逻辑结构与全局逻辑结构之间的对应关系。
模式/内模式映像,随着计算机软硬件技术的进步,特别是大数据、云计算的出现,数据库技术获得了快速发展,新技术和新系统层出不穷。
云数据库,云数据库(CloudDataBase)是指被优化或部署到一个虚拟计算环境中的数据库。
具有按需付费、按需扩展、高可用性及存储整合等优势。
将一个现有的数据库优化到云环境,有以下好处:
分布式数据库,分布式数据库(DistributedDataBase)是指数据分别存储在计算机网络中的各台计算机上的数据库。
大数据,大数据(BigData)也称海量数据或巨量数据,是指数据量大到无法利用传统数据处理技术在合理的时间内获取、存储、管理和分析的数据集合。
“大数据”一词除用来描述信息时代产生的海量数据外,也用来命名与之相关的技术、创新与应用。
大数据采集,大数据预处理,大数据存储与管理,大数据分析与挖掘,大数据可视化展现,大数据技术是指用非传统的方式对大量结构化和非结构化数据进行处理,以挖掘出数据中蕴含的价值的技术。
根据大数据的处理流程,可以将其关键技术分为右侧展现的技术。
主动数据库,传统数据库一般只根据应用程序的要求对数据库进行基本操作,仅作为一种被动的数据仓库存在。
主动数据库(ActiveDataBase)是指在没有用户干预的情况下,能够主动地对系统内部或外部所发生的事件做出反应的数据库,是数据库技术与人工智能技术相结合的产物。
主动数据库最大的特点就是让数据库系统具有主动服务的功能,并以一种统一的机制来实现各种主动服务需求。
系统提供一个自动监视模块,不时地检查着规划中包含的各种事件是否发生,一旦发现某事件发生,就主动触发执行某个动作。
这样一来,数据库管理系统就可以自动执行由用户预先设定的动作,可把诸如完整性约束、存取控制、例外处理、监督和警告、状态开关自动切换及检索策略的切换,乃至复杂的演绎推理和实时处理等功能以一种统一的机制实施。
虽然主动数据库还有待发展,但其已经在计算机集成制造、网络管理和办公自动化等领域有了广泛的应用。
数据仓库,数据挖掘,数据挖掘(DataMining)是从大量数据中获取有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程,也称为知识发现。
简单来讲,数据挖掘就是从大量数据中提取或“挖掘”知识。
数据,挖掘,数据挖掘是交叉性学科,它是数据库技术、机器学习、统计学、人工智能、可视化分析和模式识别等多门学科的融合。
它把现代企业中的原始数据转换为人工智能的来源,对数据进行操纵,提供可靠的、可以用来决策的信息。
实战目的,
(1)学习使用PowerDesigner建模工具绘制概念模型图(即E-R图)。
(2)学习使用PowerDesigner建模工具生成物理模型图及对应的SQL语句。
实战内容及步骤,下面以订货管理系统(见右图)为例,介绍在PowerDesigner中绘制概念模型图的操作步骤。
启动PowerDesigner,其操作界面如图所示。
新建概念模型图。
在“ObjectBrowser”窗口中右击“Workspace”,在弹出的快捷菜单中选择“New”“ConceptualDataModel”选项,打开“NewConceptualDataModel”对话框,将模块名修改为“订货管理”,单击“OK”按钮,如图所示。
添加客户实体。
在“Toolbox”窗口中选择“Entity”选项,然后在编辑窗口的合适位置单击,即可添加实体。
右击编辑窗口空白处,使鼠标变为形状,然后双击实体打开“EntityProperties”对话框,在“General”选项卡中更改实体名、实体代号及注释等信息,如图所示。
添加属性。
不同于标准的E-R图使用椭圆表示属性,在PowerDesigner中添加属性只需在“Attributes”选项卡中增加信息(见图),最后单击“确定”按钮。
用同样的方法创建商品实体,其属性如图所示。
添加实体之间的关系。
在“Toolbox”窗口中选择“Relationship”选项,然后将鼠标移至客户实体上,按住鼠标左键不放,拖动到商品实体上释放鼠标,即可建立一个默认关系。
双击该关系打开“RelationshipProperties”对话框,在“General”选项卡中定义常规属性,修改关系名称信息,切换到“Cardinalities”选项卡中设置两个实体间的关系,这里选择多对多关系,如图所示。
检查概念模型。
选择“Tools”“CheckModel”菜单项,打开“CheckModelParameters”对话框,选择检查选项(在对应项目前勾选或取消勾选),单击“确定”按钮,打开“ResultList”窗口显示检查结果。
如有错误,将在其中显示错误列表,可根据列表信息进行修改,直到没有错误信息为止,如图所示。
生成物理模型图。
概念模型图绘制好后,可以选择具体的数据库管理系统生成物理模型图。
选择“Tools”“GeneratePhysicalDataModel”菜单项,打开“PDMGenerationOptions”对话框。
在“DBMS”下拉列表中选择对应的数据库管理系统选项(SQLServer数据库2012及以上版本选择“MicrosoftSQLServer2012”选项即可),单击“确定”按钮,如图所示。
生成物理模型后,可对实体间关系添加属性。
双击订购关系,出现“TableProperties”对话框,切换到“Columns”选项卡,在列表中添加属性(见左图),单击“确定”按钮。
生成物理模型如右图所示。
保存。
绘制完成后可对文件进行保存,单击工具栏中“保存”按钮,将其保存为“订单管理.pdm”文件。
生成SQL数据库脚本。
选择“Database”“GenerateDatabase”菜单项,打开“DatabaseGeneration”对话框,选择存储位置,输入SQL脚本文件名,单击“确定”按钮,系统将自动生成对应数据库的SQL脚本,如下页图所示。
谢谢大家,数据库原理及应用,第二章关系数据库基础,本章导读,学习目标,目录,关系,关系模型只包含单一的数据结构关系。
在关系模型中,无论是实体还是实体之间的联系均由关系表示。
表2-1T(教师),通俗地讲,关系(Relation)就是由行和列组成的二维表,二维表的名字就是关系的名字。
例如,表2-1中关系的名字就是T。
属性,域(Domain)是一组具有相同数据类型的值的集合,又称值域(用D表示)。
在关系中用域来表示属性的取值范围,域中所包含的值的个数称为域的基数(用m表示)。
例如,表2-1中属性Sex的域可表示为:
D=男,女,m=2。
二维表中的列称为属性(Attribute)。
每个属性对应表中的一个字段,属性名就是字段名,属性值就是各行的字段值。
二维表中列的个数称为关系的元数。
如果一个二维表有n列,则称其为n元关系。
例如,表2-1中的关系T有TNo,TN,Sex,Prof,Dept,Sal共6个属性,是一个6元关系。
域,元组,二维表中的行称为元组(Tuple),即记录值。
例如,表2-1中(01001,赵乾,女,讲师,计算机,6000)就是一个元组。
分量,一个元组中的每一个属性值,称为一个分量(Component),n元关系的每个元组有n个分量。
例如,元组(01001,赵乾,女,讲师,计算机,6000)中的“01001”为一个分量,此元组共有6个分量。
关系模式,二维表的结构称为关系模式(RelationSchema),或者说,关系模式就是二维表的框架(表头结构)。
设关系名为R,其属性名分别为A1,A2,An,则关系模式可以表示为:
关系数据库,在一个给定的应用领域中,所有实体及实体之间联系所对应的关系的集合,构成一个关系数据库(RelationDatabase)。
在关系数据库中,关系模式是型,关系是它的值。
R(A1,A2,An),例如,表2-1的关系模式为T(TNo,TN,Sex,Prof,Dept,Sal)。
为了给出关系的形式化定义,首先定义笛卡尔积(CartesianProduct)。
给定一组域D1,D2,Dn(它们可以包含部分或全部相同的元素,也可以完全不同),则D1,D2,Dn的笛卡尔积为:
D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n,由定义可以看出,笛卡尔积是一个集合,集合中每一个元素(d1,d2,dn)即为一个元组,元组中的每一个di即为一个分量。
例如,设D1=赵乾,钱坤,孙震,李离,周巽,D2=男,女,则D1与D2的笛卡尔积为D1D2=(赵乾,男),(赵乾,女),(钱坤,男),(钱坤,女),(孙震,男),(孙震,女),(李离,男),(李离,女),(周巽,男),(周巽,女)。
其中,(赵乾,男)为一个元组,“赵乾”“男”等都是分量。
笛卡尔积也可以用二维表表示,本例的笛卡尔积可用如表2-2所示的二维表表示。
表2-2D1D2,关系的形式化定义:
D1D2Dn的任一子集称为定义在D1,D2,Dn上的n元关系。
例如,在上述例子的笛卡尔积中选取一个子集T1=(赵乾,女),(钱坤,男),(孙震,女),(李离,女),(周巽,男)就构成了一个关系,将其用二维表表示时,可按实际属性的含义将第一列属性命名为TN,将第二列属性命名为Sex,如表2-3所示。
表2-3子集T1,如果一个关系的元组个数是无限的,则称为无限关系;如果一个关系的元组个数是有限的,则称为有限关系。
由于计算机存储系统的限制,在实际应用中,一般不去处理无限关系,只考虑有限关系。
在数学上,关系是笛卡尔积的任意子集,但在实际应用中,关系是笛卡尔积中有意义的子集。
例如,在表2-2中选取一个子集(见表2-4),表中数据显然不符合实际情况,该子集是没有意义的,不能称为关系。
表2-4不符合实际意义的关系,关系的形式化定义的两点说明,列是同质的,即每一列中的分量必须来自同一个域且必须是同一类型的数据。
01,不同的属性可来自同一个域,但不同的属性有不同的名字。
02,列的顺序可以任意交换,但交换时应连同属性名一起交换,否则将得到不同的关系。
03,关系可以看成是二维表,但并不是所有的二维表都是关系。
在关系模型中,对关系做了一定的限制。
总的来说,关系具有如下性质。
元组的顺序可任意交换。
在关系数据库中,可以按照各种排序要求对元组的次序重新排列。
04,关系中不允许出现相同的元组。
关系中的一个元组表示现实世界中的一个实体或一个实体间的联系,如果元组重复则表示实体或实体间的联系重复,这样不仅会造成数据库中数据的冗余,也可能造成数据查询与统计的结果出现错误。
05,关系中的每一个分量必须是不可再分的数据项,即所有属性值都是一个单独的值,而不是值的集合。
06,例如,T3(见表2-6)就不满足所有属性值都是一个单独的值,因为在这个表中,属性Sal不是不可再分的数据项,它由属性Basic与Bonus组合而成。
表2-6T3,E-R图与关系模式之间的转换一般是将绘制好的E-R图转换成可用的关系模式,是概念模型向逻辑模型的转换。
转换过程主要包括实体及实体之间联系的转换。
实体的转换非常简单,实体名即关系名,实体的属性即关系的属性。
实体之间联系的转换,
(1)一对一联系。
转换时选择一个合适的实体,在其中加入另一实体的码。
【例2-1】学生与身份证的E-R图如图所示。
每个学生只有一张身份证,每张身份证只属于一个学生,学生与身份证之间为一对一联系。
则转换关系模式如下:
学生(学号,姓名,性别,系别,身份证号)身份证(身份证号,签发机关,有效时间),一般情况下,也可将两个实体合并,即得到一个关系模式:
学生(学号,姓名,性别,系别,身份证号,签发机关,有效时间)。
(2)一对多联系。
转换时在“多”的那端实体中加入“一”的那端实体的码。
【例2-2】班级与学生的E-R图如图所示。
一个班级包含一名或多名学生,同时,一名学生只属于一个班级,即班级与学生之间为一对多联系。
则转换关系模式如下:
学生(学号,姓名,性别,系别,班级编号)身份证(班级编号,学院,系别,人数),(3)多对多联系。
转换时将联系也转换为关系模式,其属性为两端实体的码加上联系自身的属性,新的关系模式的码为两端实体的码的组合。
【例2-3】图为学生选课关系的E-R图。
一名学生可以选修多门课程,一门课程可以被多名学生选修,学生与课程之间是多对多联系。
则转换关系模式如下:
学生(学号,姓名,性别,系别)课程(课程编号,课程名称,学分)学生选课(学号,课程编号,成绩),候选码,如果一个关系中的某属性或属性集的值可以唯一确定一个元组,则称该属性或属性集为候选码。
候选码具有唯一性、最小性的特点。
例如,在学生关系中,学号能够唯一标识每一个学生,则属性“学号”是学生关系的候选码,每一个学生的学号是唯一的,这体现了候选码的唯一性;在选课关系中,只有属性集(学号,课程编号)才能唯一标识每一条选课信息,则属性集(学号,课程编号)为选课关系的候选码,从中去掉任一属性都无法唯一标识每一条选课记录,这体现了候选码的最小性。
主码,如果一个关系中有多个候选码,可以从中选定一个作为元组标识,称为主码或主键。
例如,在没有重名学生的情况下,学生关系中的属性“学号”与“姓名”都是学生关系的候选码。
如果选定属性“学号”作为数据操作的依据,则属性“学号”为主码;如果选定属性“姓名”作为数据操作的依据,则属性“姓名”为主码。
主属性与非主属性,包含在任一候选码中的属性称为主属性,不包含在任一候选码中的属性称为非主属性。
例如,在没有重名学生的情况下,学生关系的属性“学号”与“姓名”都是学生关系的候选码,则它们都是学生关系的主属性。
而属性“性别”与“系别”不包含在任一候选码中,则它们都是学生关系的非主属性。
在最简单的情况下,关系的候选码只包含一个属性;在最极端的情况下,关系的候选码是所有属性的组合,这时称为全码。
例如,设有关系演出(演奏者编号,乐器编号,演播室编号),其中的3个属性分别为演奏者关系、乐器关系及演播室关系的主码,它们共同唯一标识了一个演出,则演出关系的主码为它们的组合,即为全码。
外码,如果一个关系R1中的主码所对应的属性或属性集X还存在于另一个关系R2中,则称这个属性或属性集X为R2的外码,也称外键。
实体完整性是指每个关系都必须具有主码,且主码对应的所有属性值均不可为空。
例如,关系选课(学号,课程编号,成绩)中,主码为(学号,课程编号),则“学号”与“课程编号”两个属性值都不能为空。
空(NULL)值指“不知道”或“不存在”的值。
参照完整性是指如果关系R2的外码X与关系R1的主码相对应,则X的每个值或等于R1的主码的某一个值或取空值。
【例2-4】已知学生、课程与选课的关系如下:
学生(学号,姓名,性别,系别,年龄)课程(课程编号,课程名称,学分)选课(学号,课程编号,成绩),通过分析可知,学生关系的主码为“学号”,课程关系的主码为“课程编号”,选课关系的主码为(学号,课程编号),而属性“学号”与“课程编号”又是选课关系的外码,所以,选课关系中的属性“学号”与“课程编号”只能取学生关系中属性“学号”与课程关系中属性“课程编号”中已经存在的值(根据实体完整性规则主码不可为空)。
关系模型由关系数据结构、关系操作与关系完整性约束3部分组成。
前面介绍了关系数据结构与关系完整性约束,本节重点介绍关系操作。
关系操作采用集合操作的方式,即操作的对象和结果都是集合,通常用代数的方式表示操作过程,称为关系代数。
关系代数是关系模型最重要的数据操作语言,它通过对关系的代数运算来表达查询,是一种抽象的查询语言。
逻辑运算符与比较运算符用于配合专门的关系运算符构造表达式。
关系代数中的运算符,表2-7关系代数常用运算符,对两个关系进行的传统集合运算是二元运算,但并不是任意两个关系都可以进行集合运算。
除广义笛卡尔积运算外,其他的集合运算要求参加运算的关系必须符合相容关系。
相容关系是指两个关系具有相同的列数,且两个关系各自的第i个