版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 数据库系统概论本章学习目标理解数据库的基本术语和概念了解数据管理技术的发展过程掌握数据库系统的组成掌握关系数据库掌握关系数据库的规范化理论掌握数据库设计过程1.1 数据库基础知识1.1.1 数据库基本概念1. 数据数据(Data)是描述事物的符号记录 。用数据描述现实世界中的对象可以是实在的事物 : (B1051211,丁小玲,女,20,计算机系)也可以是抽象的事物: (柳文艳,数据库原理与应用,95)1.1.1 数据库基本概念1. 数据数据和关于数据的解释是不可分的数据的解释是对数据含义的说明,数据的含义称为数据的语义。 1.1.1 数据库基本概念2数据库 通俗地讲,数据库(Data
2、Base)是存放数据的仓库,只不过数据是按一定的存储格式存放在计算机存储设备上。严格地讲,数据库是长期存储在计算机内的、有组织的、可共享的大量数据的集合。 1.1.1 数据库基本概念3. 数据库管理系统位于计算机系统中用户与操作系统之间的一层数据管理软件,它是数据库系统的核心组成部分,用户在数据库系统中的一切操作,包括数据定义、查询、更新及各种控制,都是通过DBMS进行的。DBMS把用户抽象的逻辑数据处理、转换成计算机中的具体的物理数据。1.1.1 数据库基本概念3. 数据库管理系统DBMS的主要功能有以下几个方面:(1)数据定义功能(2)数据操纵功能(3)数据库的事务管理和运行管理(4)数据
3、库的建立和维护功能(5)数据通信1.1.1 数据库基本概念4. 数据库系统数据库系统(DataBase System,DBS)是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成, 1.1.1 数据库基本概念4. 数据库系统用户用户用户应用系统应用开发工具数据库管理操作系统数据库数据库管理员1.1.2 数据管理技术发展数据库技术即数据管理技术,是对数据的分类、组织、编码、存储、检索和维护的技术。 数据管理技术大致经历了如下三个阶段:人工管理阶段文件系统阶段数据库系统阶段1.1.2 数据管理技术发展1人工管理阶段20世纪50年代中期
4、以前 人工管理阶段的特点是:数据不保存数据无专门软件进行管理数据不共享(冗余度大)数据不具有独立性(完全依赖于程序)数据无结构1.1.2 数据管理技术发展2文件系统阶段20世纪50年代后期到60年代中期 文件系统管理数据的特点:数据可以长期保存由文件系统管理数据程序与数据有一定的独立性数据共享性差(冗余度大)数据独立性差记录内部有结构(但整体无结构)1.1.2 数据管理技术发展3数据库系统阶段 20世纪60年代后期 数据库系统管理数据的特点如下 :(1)数据结构化(2)数据共享性高、冗余少,易扩充(3)数据独立性高(4)有统一的数据控制功能1.1.2 数据管理技术发展3数据库系统阶段 数据库管
5、理系统提供下述四方面的数据控制功能。 数据的安全性(Security)控制 数据的完整性(Integrity)控制 并发(Concurrency)控制 数据恢复(Recovery)1.1.2 数据管理技术发展1.1.3 数据模型数据模型是对现实世界数据特征的抽象,是现实世界的模拟。 数据模型应满足三方面要求:能比较真实的模拟现实世界容易为人理解便于计算机实现在数据库系统中针对不同的使用对象和应用目的,采用不同的数据模型。1.1.3 数据模型1两类数据模型根据模型应用的目的不同,可以将这些模型分为两类:概念模型逻辑模型和物理模型1.1.3 数据模型1两类数据模型概念模型也称信息模型,是按用户的观
6、点对数据和信息进行抽象,主要用于数据库设计。1.1.3 数据模型1两类数据模型逻辑模型主要包括层次模型、网状模型、关系模型、面向对象模型和对象关系模型等它是按照计算机系统的观点对数据建模,主要用于DBMS的实现。物理模型是对数据最低层的抽象,它描述数据在计算机系统内部的表示方式和存取方法,以及在存储设备上的存储方式和存取方法,是面向计算机系统的。物理模型由DBMS实现。1.1.3 数据模型1两类数据模型从事物的客观特性到计算机里的具体表示经历了三个数据领域:现实世界、信息世界和机器世界。为了把现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型,常常首先将现实世界抽象为信息世界,然后将信
7、息世界转换为机器世界。1.1.3 数据模型1.1.3 数据模型2数据模型的组成要素(1)数据结构(2)数据操作(3)数据约束1.1.3 数据模型2数据模型的组成要素(1)数据结构数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。(2)数据操作数据模型中的数据操作主要描述在相应的数据结构上的操作类型和操作方式。 1.1.3 数据模型2数据模型的组成要素(3)数据约束数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、它们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。1.1.3 数据模型3概念模型概念模型是按用户的观点对数据和信息进行抽象
8、。 “实体联系方法”是表示概念模型最常用的方法。1.1.3 数据模型3概念模型(1)实体(Entity)(2)属性(Attribute)(3)实体集(Entity Set)(4)实体型(Entity Type)(5)码(Key)(6)域(Domain)1.1.3 数据模型3概念模型(7)联系(Relationship)两个实体型之间的联系可以分为三类:一对一联系(1:1)一对多联系(1:n)多对多联系(m:n)1.1.3 数据模型4概念模型的一种表示方法:实体-联系方法该方法用E-R图来描述现实世界的概念模型,称为实体-联系模型,简称E-R模型。E-R图提供了表示实体型、属性和联系的方法。实体
9、型:用矩形表示,矩形框内写明实体名。属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型。1.1.3 数据模型4概念模型的一种表示方法:实体-联系方法该方法用E-R图来描述现实世界的概念模型,称为实体-联系模型,简称E-R模型。E-R图提供了表示实体型、属性和联系的方法。实体型:用矩形表示,矩形框内写明实体名。属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型。1.1.3 数据模型5最常
10、用的数据模型(1)层次模型(Hierarchical Model)数据库系统中最早出现的数据模型,典型的采用层次模型的数据库系统是美国IBM公司于1968年推出的IMS(Information Management System)数据库管理系统,这个系统在20世纪70年代在商业上得到广泛应用。1.1.3 数据模型5最常用的数据模型(1)层次模型(Hierarchical Model)层次模型是用树型结构来表示各类实体及实体间的联系。这种模型描述数据的组织形式像一棵倒置的树,它由节点和连线组成,其中节点表示实体。根节点只有一个,向下分支,是一种一对多的关系。层次模型的查询效率很高,但它只能表示一
11、对多联系,对数据进行查询和更新操作时则很复杂,所以编写应用程序也很复杂。1.1.3 数据模型5最常用的数据模型(1)层次模型(Hierarchical Model)优点:层次分明、结构清晰、不同层次间的数据关联直接简单。缺点:数据将不得不纵向向外扩展,节点之间很难建立横向的关联。对插入和删除操作限制较多,查询非直系的节点非常麻烦。1.1.3 数据模型1.1.3 数据模型5最常用的数据模型(2)网状模型(Network Model)用有向图结构表示实体类型及实体间联系的数据模型称为网状模型。用节点表示数据元素,节点间连线表示数据间的联系。它允许多个节点没有双亲节点,允许节点有多个双亲节点,还允许
12、两个节点之间有多种联系。节点之间是平等的,无上下层关系。1.1.3 数据模型1.1.3 数据模型5最常用的数据模型(3)关系模型(Relational Model)目前最重要的一种数据模型。用二维表格来表示实体及相互之间的联系。建立在严格的数学基础之上。目前采用关系模型的数据库管理系统:Microsoft SQL Server、Oracle、IBM DB2、Access1.1.3 数据模型5最常用的数据模型(4)面向对象模型(Object-Oriented Model)在面向对象的数据模型中,最基本的概念为对象和类。面向对象的数据模型可完整地描述现实世界的数据结构,比层次、网状、关系数据模型具
13、有更加丰富的表达能力,能表达嵌套、递归的数据结构。1.1.4 数据库系统的体系结构1数据库的三级模式结构数据库结构分为三级:面向用户或应用程序员的用户级面向建立和维护数据库人员的概念级面向系统程序员的物理级。用户级对应外模式,概念级对应模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。1.1.4 数据库系统的体系结构1数据库的三级模式结构(1)模式模式又称概念模式或逻辑模式,对应于概念级。是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。由数据库管理系统提供的数据模式描述语言(Data Description Language,DDL)来描述、
14、定义的,体现、反映了数据库系统的整体观。1.1.4 数据库系统的体系结构1数据库的三级模式结构(2)外模式外模式又称子模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言对这些数据记录进行操作。外模式反映了数据库的用户观。1.1.4 数据库系统的体系结构1数据库的三级模式结构(3)内模式内模式又称存储模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述
15、。描述了数据在存储介质上的存储方式即物理结构,对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义,它是数据库的存储观。1.1.4 数据库系统的体系结构1数据库的三级模式结构在一个数据库系统中,只有唯一的数据库,因而作为定义、描述数据库存储结构的内模式和定义、描述数据库逻辑结构的模式,也是唯一的;但建立在数据库系统之上的应用则是非常广泛、多样的,所以对应的外模式不是唯一的,也不可能是唯一的。1.1.4 数据库系统的体系结构2三级模式间的映射 (1)外模式/模式映像定义了该外模式与模式之间的对应关系。当模式改变时,由数据库管理员对各个外模式/模式映像做相应的改变,就可以使外模
16、式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称为数据的逻辑独立性。1.1.4 数据库系统的体系结构2三级模式间的映射 (2)模式/内模式映像定义了数据库全局逻辑结构与物理存储结构之间的对应关系。当数据库的物理存储结构改变时,由数据库管理员对模式/内模式映像做相应的改变,就可以使模式保持不变。从而应用程序也不必改变。这样就保证了程序与数据的物理独立性,简称为数据的物理独立性。1.1.4 数据库系统的体系结构3数据库的三级模式结构的好处(1)保证了数据的独立性(2)简化用户接口(3)有利于数据共享(4)有利于数据安全保密1.2 关系数据库1.
17、2.1 关系数据模型在关系数据库里,所有的数据都按表(按关系理论的术语,表被称为“关系”)进行组织和管理。实体和联系均用二维表来表示的数据模型称为关系数据模型,二维表由行和列组成。1.2.1 关系数据模型1.2.1 关系数据模型(1)关系(Relation):一个关系可用一个二维表格来表示,常称为表。每个关系(表)都有与其它关系(表)不同的名称。(2)元组(Tuple):表中的一行数据统称为一个元组。一个元组即为一个实体的所有属性值的总称。一个关系中不能有两个完全相同的元组。(3)属性(Attribute):表中的每一列即为一个属性。每个属性都有一个属性名,在每一列的首行显示。一个关系中不能有
18、两个同名属性。1.2.1 关系数据模型(4)域(Domain):一个属性的取值范围就是该属性的域。(5)分量(Component):一个元组在一个属性上的值称为该元组在此属性上的分量,一个n元组是由n个分量组成。(6)候选键(Candidate Key):如果一个属性集能唯一标识元组,且又不含有多余的属性,那么这个属性集称为关系的候选键或候选码。候选码中的所有属性都为主属性。1.2.1 关系数据模型(7)主关键字(Primary Key):如果一个关系中有多个候选键,则选择其中的一个键为关系的主关键字,简称主键或主码。(8)外键(Foreign Key):如果一个关系中某个属性或属性组合并非主
19、关键字,但却是另外一个关系的主关键字,则称此属性或属性组合为本关系的外部关键字或外键。在关系数据库中,用外键表示两个关系间的联系。(9)关系模式:一个关系的关系名及其全部属性的集合,简称为关系模式。一般表示为:关系名(属性1,属性2,属性n)1.2.1 关系数据模型关系模式是型,描述了一个关系的结构。关系是值,是元组的集合,是某一时刻关系模式的状态或内容。关系模式是稳定的、静态的,而关系则是随时间变化的、动态的。在不引起混淆的场合,两者都称为关系。1.2.1 关系数据模型关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件:(1)关系中的每一列都必须是不可分的基本数据项,即不允许表
20、中还有表。(2)一个关系中有唯一确定的属性名,不可重名。(3)任何列中的值必须是同一类型的,各列被指定一个相异的名字。(4)在一个关系中,属性间的顺序、元组间的顺序是无关紧要的。1.2.1 关系数据模型在关系数据库中具有相同属性的记录的集合构成一个“数据表”。一个或多个数据表的集合组成一个“数据库”。隶属于某个数据库的数据表叫“相关表或数据表”。独立存在于任何数据库之外的表叫“自由表”。1.2.2 关系的完整性约束数据库完整性(DataBase Integrity)是指数据库中数据的正确性和相容性。数据库完整性约束可以通过DBMS或应用程序来实现,基于DBMS的完整性约束作为模式的一部分存入数
21、据库中。在关系数据模型中一般将数据完整性分为三类:实体完整性、参照完整性和用户定义完整性。1.2.2 关系的完整性约束1实体完整性实体完整性规定表的每一行在表中是唯一的实体。实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变特性。1.2.2 关系的完整性约束1实体完整性实体完整性规则如下:实体完整性要保证关系中的每个元组都是可识别的和唯一的。实体完整性规则内容:若属性A是关系R的主属性,则属性A不可以为空值。实体完整性是关系模型必须满足的完整性约束条件。关系数据库管理系统可用主关键字实现实体完整性,这是由关系数据库默认支持的。1.2.2 关系的完整性约束2参照完整
22、性参照完整性是指两个表的主关键字和外关键字的数据对应一致。它确保了有主关键字的表中对应其他表的外关键字的数据存在,即保证了表之间的数据的一致性,防止数据丢失或无意义的数据在数据库中扩散。参照完整性是建立在外关键字和主关键字之间或外关键字和唯一性关键字之间的关系上的。1.2.2 关系的完整性约束3用户定义完整性用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。在用户定义完整性中最常见的是限定属性的取值范围,即对值域的约束,所以在用户定义完整性中最常见的是域完整性约束,如某个属性的值必须唯一;某个属性的值必须在某个范围内等。1.2.3 关系运算
23、关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式。它用于关系运算及表达式查询。关系运算符有四类:集合运算符专门的关系运算符算术比较运算符逻辑运算符1.2.3 关系运算1.2.3 关系运算1传统的集合运算传统的集合运算是从关系的水平方向进行的,主要包括:并交差广义笛卡儿积1.2.3 关系运算1传统的集合运算(1)并(Union)运算关系R、S同为n元关系,则R与S的并记作:RStRtS。其结果仍是n元关系,由属于R或属于S的元组组成。(2)交(Intersection)运算关系R、S同为n元关系,则关系R与S的交记作:RStRtS。其结果仍是n元关系,由属于R且属于S的元组组成
24、。1.2.3 关系运算1传统的集合运算(3)差(Difference)运算关系R、S同为n元关系,则关系R与S的差记作:R-StRtS。其结果仍是n元关系,由属于R且不属于S的元组组成。(4)广义笛卡儿积(Extended Cartesian Product) 两个分别为n目和m目的关系R和S,R和S的广义笛卡儿积是一个(n+m)列元组的集合。1.2.3 关系运算1传统的集合运算(4)广义笛卡儿积(Extended Cartesian Product) 元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有K1个元组,S有K2个元组,则R和S的广义笛卡儿积有 K1K2 个元组。记作:
25、RS trts | trRtsS。trts表示由两个元组tr 和ts前后有序连接而成的一个元组。任取元组tr 和ts,当且仅当tr属于R中元组且ts属于S中元组时,tr 和ts前后有序连接即为RS的一个元组。1.2.3 关系运算1传统的集合运算(4)广义笛卡儿积(Extended Cartesian Product) 实际操作时,可从R的第一个元组开始,依次与S的每一个元组组合,然后对R的下一个元组进行相同的操作,直至R的最后一个元组也进行了相同的操作为止,即可得到RS的所有元组。由广义笛卡儿积可得关系的数学定义:设A1,A2,An为任意集合,A1A2An的任意一个子集称为A1,A2,An上的
26、一个n元关系。1.2.3 关系运算2专门的关系运算专门的关系运算可以从关系的水平方向进行运算,也可以从关系的垂直方向运算。(1) 选择运算(Selection)(2)投影运算(Projection)(3)连接运算(Join)(4)除运算(Division)1.2.3 关系运算2专门的关系运算(1) 选择运算(Selection)选择运算又称为限制(Restriction)运算,它是从给定的关系R中选取满足条件的元组,即从数据表中进行选行操作,记作F(R)=t|tRF(t)=真 其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。公式F中的运算对象是常量(用引号括起来)或元组分量(属
27、性名或列的序号),运算符有算术比较运算符和逻辑运算符。1.2.3 关系运算2专门的关系运算(1) 选择运算(Selection)选择运算提供了一种“横向分割关系”的手段。以逻辑表达式为选择条件,筛选满足表达式的所有记录。选择操作的结果构成关系的一个子集,是关系中的部分行,其关系模式不变。选择操作是从二维表中选择若干行的操作。例1-1:在AWLT数据库中,查询颜色为红色的所有产品。Color=Red(Product)1.2.3 关系运算2专门的关系运算(2)投影运算(Projection)这个操作是对一个关系进行垂直分割,消去某些列,并重新安排列的顺序,再删去重复元组。投影是从给定关系的所有字段
28、中按某种顺序选取指定的属性组,即从数据表中进行选择列操作。所选择的若干属性将形成一个新的关系数据表,其关系模式中属性的个数由用户来确定,或者排列顺序不同,同时也可能减少某些元组。1.2.3 关系运算2专门的关系运算(2)投影运算(Projection)例1-2:AWLT数据库中,查询所有产品的产品编号、名称及其颜色。ProductNumber , Name , Color(Product)1.2.3 关系运算2专门的关系运算(3)连接运算(Join)连接运算用来连接相互之间有联系的两个关系,从而形成一个新的关系。连接操作是广义笛卡儿积和选择操作的组合。一般情况下这个连接属性是出现在不同关系中的
29、语义相同的属性,属性名称有可能不同。连接运算也称连接。连接运算形式定义如下:RS=AB(RS) AB1.2.3 关系运算2专门的关系运算(3)连接运算(Join)其中,A和B分别是关系R和S上语义相同的属性或属性组,是比较运算符。连接运算从关系R和S的笛卡儿积RS中选取R关系在A属性组上的值与S关系在B属性组上值满足比较运算的元组。连接运算中最重要也是最常用的两个连接:等值连接自然连接1.2.3 关系运算2专门的关系运算(3)连接运算(Join)如果为等号“=”,那么这个连接操作称为等值连接,它是从关系R与关系S的广义笛卡尔积中选取A与B属性值相等的元组。自然连接是一种特殊的连接,它要求两个关
30、系中进行比较的分量必须是相同的属性组,并且在结果中要去掉重复的属性列,即若关系R和S具有相同的属性组B,则自然连接可形式定义为:RS= trts | trRtsStrB=ts B1.2.3 关系运算2专门的关系运算(3)连接运算(Join)一般的连接运算是从行的角度进行运算自然连接还需要去掉重复的列,所以是同时从行和列的角度进行运算。1.2.3 关系运算2专门的关系运算(4)除运算(Division)给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y 与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S 的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属
31、性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。记作:RS=trX|trRY(S) Yx除操作是同时从行和列角度进行运算。1.2.4 关系数据库的规范化关系数据库理论主要包括三方面的内容:数据依赖范式模式设计方法其中数据依赖起核心作用1.2.4 关系数据库的规范化1数据依赖数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。人们已经提出了许多种类型的数据依赖,其中最重要的是:函数依赖(FD:Functional Dependency)多值依赖(MVD:Multivalued Dependency
32、)1.2.4 关系数据库的规范化2函数依赖(1)函数依赖的定义定义1-1:设R(U)是属性集U上的一个关系模式,X和Y 均为U上的子集,即XU,YU。若对于R的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同(或说对于在X上的每一种取值,在Y上都只有唯一对应的取值),则称“X函数确定Y”或“Y函数依赖于X”。记作XY。1.2.4 关系数据库的规范化2函数依赖(1)函数依赖的定义例1-5:指出学生关系中的函数依赖:U=sno,sname,sage,ssex,sclass现实语义:每个学生只能有唯一的一个学号;学生姓名可能重名;学号确定了,姓名等值都能唯一
33、确定。1.2.4 关系数据库的规范化2函数依赖(1)函数依赖的定义例1-5:指出学生关系中的函数依赖:所以可以得到属性间的函数依赖:F=snosname,snosage,snossex,snosclass若XY,并且Y是X的子集,则称为平凡的函数依赖;否则称为非平凡的函数依赖。1.2.4 关系数据库的规范化2函数依赖(2)完全函数依赖与部分函数依赖定义1-2:设XY是一个函数依赖,并且对于任何X属于X,XY都不成立,则称XY是一个完全函数依赖,即Y完全函数依赖于X。记作X Y。如:(sno,cno)grade,因为每个学生可以选择多门课程,每门课程可由多名学生选修,因此学号和课程号唯一确定成绩
34、。1.2.4 关系数据库的规范化2函数依赖(2)完全函数依赖与部分函数依赖设XY是一个函数依赖,但Y不是完全函数依赖于X,则称XY是一个部分函数依赖或称Y函数依赖于X的某个真子集。记作X Y。如(sno,sage) snamePPP1.2.4 关系数据库的规范化2函数依赖(3)传递函数依赖定义1-3:设R(U)是一个关系模式,X,Y,Z属于U(U的子集),如果XY(Y不是X的子集),Y X, YZ(Z不是Y的子集),则称Z传递依赖于X。如:student关系模式:U=sno,sname,ssex,sage,sdept,mnameF=snosdept,sdeptmname,可以推出mname(系
35、主任)传递依赖于sno。1.2.4 关系数据库的规范化3关系的规范化和范式规范化理论是E.F.Codd首先提出的。一个关系数据库中的关系,都应满足一定的规范,才能构造出好的数据模式。Codd把应满足的规范分成几级,每一级称为一个范式(Normal Form)。范式的等级越高,应满足的条件也越严。 1.2.4 关系数据库的规范化3关系的规范化和范式第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式(BCNF)第四范式(4NF)第五范式(5NF)1.2.4 关系数据库的规范化(1)第一范式关系R中的每个属性(列)都是不可再分的,或每个属性的域都只包含单纯值,而不是一些值的集合,则称关系
36、R满足第一范式。记为R1NF。判断方法:检查关系表中每个属性值是否都是不可再分解的最小数据单位。1.2.4 关系数据库的规范化(1)第一范式将非第一范式规范为第一范式的方法:依次检查每个属性的取值,如果是组合情况,即不是最小单位,就进行属性值的最小化拆分。在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。1.2.4 关系数据库的规范化(2)第二范式若R1NF,并且每个非主属性都完全函数依赖于R的主码,则称为满足第二范式,记为R2NF。规范为第二范式的方法:将能完全依赖于主键的属性从关系中提取出来,同主键一起组成一个关系;将剩余的
37、属性同能完全依赖于主键的一部分组成一个关系。1.2.4 关系数据库的规范化(2)第二范式例1-6:下面以一个学校的学生关系为例分析说明。首先考虑,把所有这些信息放到一个关系中,SelectCourse(学号,学生姓名、年龄、性别、课程、学分、系别、成绩、系主任、系办地址、系办电话)。存在如下的依赖关系。(学号) (姓名,年龄,性别,系别,系主任、系办地址、系办电话)(课程)(学分)(学号,课程)(成绩)主键为(学号,课程),学分等部分依赖于主键,因此不满足第二范式的要求。1.2.4 关系数据库的规范化(2)第二范式按照前面第二范式规范化方法,把选课关系SelectCourse分解为如下三个关系
38、: 学生:Student(学号,姓名,年龄,性别,系别,系主任,系办地址,系办电话); 课程:Course(课程名称,学分); 选课关系:SC(学号,课程,成绩)。 每个关系都属于第二范式。即关系SelectCourse2NF。1.2.4 关系数据库的规范化(3)第三范式若R2NF,并且没有一个非主属性传递函数依赖于候选码,则称R为满足第三范式,记为R3NF。分解为第三范式的方法:设关系模式R中,主键为X,存在函数依赖WZ,W不是候选码,Z是非主属性且Z不包含于X,因此Z传递函数依赖于X,此时,应将R分解成两个关系模式: R1(W,Z),其中W为主键 R2(除Z外的所有属性),X为主键,W为外
39、键1.2.4 关系数据库的规范化(3)第三范式即将传递依赖属性从关系中提取出来,同决定因素一起组成一个关系;将除传递依赖的剩余属性组成一个关系。若R1和R2还不是3NF,则重复上面的方法,一直到数据库模式中的每一个关系模式都是3NF为止。1.2.4 关系数据库的规范化(3)第三范式例1-7:接着看上面的学生表Student(学号,姓名,年龄,性别,系别,系主任、系办地址、系办电话),关键字为:“学号”,因为存在如下函数依赖关系:(学号)(姓名,年龄,性别,系别,系主任、系办地址,系办电话)但是,还存在下面的函数依赖关系:(学号)(系别)(系别)(系主任、系办地址,系办电话)即存在非关键字段“系
40、主任”、“系办地址”、“系办电话”对关键字“学号”存在传递函数依赖。会存在数据冗余、更新异常、插入异常和删除异常的情况。1.2.4 关系数据库的规范化(3)第三范式根据第三范式要求把学生关系表分解为如下两个表,就可以滿足第三范式了:学生(学号,姓名,年龄,性别,系别);系别(系别,系主任、系办地址,系办电话)。1.3 关系数据库的设计1.3.1 数据库设计概述数据库设计(DataBase Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求,包括信息要求和处理要求。1.3.1 数据库设计概述一般来说,好的数据库应
41、该满足以下条件:(1)便于检索所需要的数据:在大型的数据库中,由于表的增加,多表中的数据很难读取和理解,数据之间的关系无法在计算机屏幕或输出页中完整地显示,因此好的数据库应该便于用户检索所需要的数据。(2)具有较高的完整性、数据更新的一致性:好的数据库应该能防止不一致信息的引入,避免因各种问题而出现的数据的不完整和数据之间的不一致。(3)使系统具有尽可能好的性能。1.3.1 数据库设计概述数据库设计过程可分为六个阶段:需求分析概念结构设计逻辑结构设计物理结构设计数据库实施数据库运行和维护1.3.2 需求分析1需求分析任务需求分析的任务是调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种
42、类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户的各种需求。1.3.2 需求分析1需求分析任务在调查过程中着重“数据”和“处理”,通过调查、收集与分析,获得如下要求:(1)信息要求。指用户从数据库中获得信息的内容和性质。由信息要求可以导出数据要求,即数据库中存储什么数据。(2)处理要求。指用户要完成什么样的处理功能,对响应时间、处理方式有什么要求。(3)安全性与完整性要求。1.3.2 需求分析2需求分析基本步骤(1)收集资料(2)分析整理资料(3)绘制数据流图(4)编写数据字典1.3.2 需求分析2需求分析基本步骤(1)收集资料(2)分析整
43、理资料(3)绘制数据流图(4)编写数据字典3阶段成果系统需求说明书,此说明书主要包括数据流图、数据字典、系统功能结构图等。系统需求说明书作为数据库设计的依据文件。1.3.3 概念结构设计将需求分析得到的用户要求抽象为信息世界的概念模型的过程就是概念结构设计。它是整个数据库设计的关键。概念结构设计不依赖具体的计算机系统和DBMS。1.3.3 概念结构设计1概念结构设计任务在需求分析的基础上,确定系统中所包含的实体,分析每个实体所具有的属性,以及实体之间的关系。 2采用E-R方法的数据库概念设计步骤设计局部E-R模型局部视图设计即E-R图设计;对局部视图进行集成得到概念视图。1.3.3 概念结构设
44、计(1)设计局部E-R模型根据系统的具体情况,在多层的的数据流图中选择一个适当层次的数据流图,让这组图中每一部分对应一个局部应用,以这一层次的数据流图为出发点,设计局部E-R图。1.3.3 概念结构设计(2)局部视图设计策略自顶向下由底向上由内向外混合策略1.3.3 概念结构设计(3)视图集成视图集成的实质是将所有的局部视图统一并合并成一个完整的数据模式。在进行视图集成时,最重要的工作便是解决局部设计中的属性冲突、命名冲突、概念冲突、结构冲突、约束冲突。 1.3.3 概念结构设计(3)视图集成属性冲突:属性值的类型、取值单位、取值范围或取值集合不同。命名冲突:同名异义和同义异名两种。概念冲突:
45、同一个对象在不同应用中具有不同的抽象。在一处为实体,而在另一处是属性或联系。结构冲突:同一实体在不同的分E-R图中所包含的属性不同。约束冲突:实体间的联系在不同的分E-R图中表现为不同的类型。1.3.4 逻辑结构设计逻辑结构设计的主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。1.3.4 逻辑结构设计1逻辑结构设计的步骤(1)将概念结构转化为一般的关系、网状、层次模型。(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换。(3)对数据模型进行优化。1.3.4 逻辑结构设计2E-R模型向关系模型转换规则(1)一个
46、实体转换为一个关系模式。实体属性就是关系的属性,实体的码就是关系的码。(2)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。若转换为一个独立的关系模式,则相连的每个实体的码及该联系的属性是该关系的码,每个实体的码是该关系的候选码。(3)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。若转换为一个独立的关系模式,与该联系相连的每个实体的码及该联系的属性是该关系的码,n端实体的码是该关系的码。1.3.4 逻辑结构设计2E-R模型向关系模型转换规则(4)一个m:n联系转换为一个关系模式。与该联系相连的各个实体的码及联系的属性转换为关系的属性
47、,而该关系的码为各实体码的组合。(5)三个或三个以上实体间的一个多元联系转换为一个关系模式。与该联系相连的各个实体的码及联系的属性转换为关系的属性,而该关系的码为各实体码的组合。(6)具有相同码的关系模式可合并。为减少系统中的关系个数,可以将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序。1.3.5 物理结构设计根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等,以提
48、高数据库访问速度及有效利用存储空间,一般由数据库系统自动完成。1.3.6 数据库实施与维护1数据库实施根据逻辑结构设计和物理结构设计的结果,在计算机系统上建立起实际数据库结构、装入数据、测试和试运行的过程称为数据库的实施阶段。实施阶段主要完成以下三项工作:(1)建立实际数据库结构。(2)装入测试数据对应用程序进行调试。(3)装入实际数据,进入试运行状态。1.3.6 数据库实施与维护2数据库运行与维护运行维护阶段的主要任务有四项:(1)维护数据库的安全性与完整性。(2)监测并改善数据库运行性能。(3)根据用户要求对数据库现有功能进行扩充。(4)及时改正运行中发现的系统错误。1.4 T-SQL语言
49、简介结构化查询语言SQL(Structured Query Language)是一种用于数据库查询和编程的语言,SQL语言是一种非过程化的语言,它与一般的高级语言不同,使用SQL时,只要说明做什么,不需要说明怎么做,具体的操作全部由DBMS自动完成。1.4 T-SQL语言简介微软公司在SQL标准的基础上做了大幅度扩充,作为SQL Server的结构化查询语言,并将SQL Server使用的SQL语言称为Transact-SQL语言,简称T-SQL语言。T-SQL不但包含了标准的SQL语言部分,而且还发展了许多新的特性,增强了可编程性和灵活性。T-SQL是使用SQL Server的核心。与SQL
50、 Server实例通信的所有应用程序都通过T-SQL语句发送到服务器。1.4 T-SQL语言简介T-SQL语言也有类似于SQL语言的分类,不过做了许多的扩充。T-SQL语言主要由以下几部分组成:数据定义语言(DDL)数据操纵语言(DML)数据控制语言(DCL)系统存储过程(System Stored Procedure)一些附加的语言元素本章小结数据库基本概念数据数据库数据库管理系统数据库系统本章小结数据库管理技术发展阶段:人工管理阶段文件系统阶段数据库系统阶段数据结构化数据共享性高、冗余少,易扩充数据独立性高有统一的数据控制功能本章小结数据模型是对现实世界数据特征的抽象,是现实世界的模拟。根
51、据模型应用的目的不同,可以将这些模型分为:概念模型逻辑模型和物理模型数据模型由三部分组成:数据结构数据操作数据约束本章小结概念模型是按用户的观点对数据和信息进行抽象,主要用于数据库设计,它是对现实世界的第一层抽象。“实体联系方法”是表示概念模型最常用的方法。 常见的逻辑模型:层次模型、网状模型和关系模型。物理模型是对数据最低层的抽象,它描述数据在计算机系统内部的表示方式和存取方法,以及在存储设备上的存储方式和存取方法,是面向计算机系统的。物理模型由DBMS实现。本章小结数据库的三级模式结构:模式外模式内模式数据库系统三级模式之间的两级映像:外模式/模式映像保证了数据与程序的逻辑独立性模式/内模
52、式映像保证了程序与数据的物理独立性本章小结在关系数据库里,所有的数据都按关系进行组织和管理的。关系数据库系统与非关系数据库系统的区别是,关系系统只有“二维表”这一种数据结构,而非关系数据库系统还有其他数据结构。本章小结数据库完整性(DataBase Integrity)是指数据库中数据的正确性和相容性。实体完整性规定表的每一行在表中是唯一的实体参照完整性指两个表的主关键字和外关键字的数据对应一致用户定义的完整性定义对关系中除主键与外键属性之外的其他属性取值的约束,即对其他属性的值域的约束本章小结传统的集合运算是从关系的水平方向进行的,主要包括:并交差广义笛卡儿积本章小结专门的关系运算可以从关系
53、的水平方向进行运算,也可以从关系的垂直方向运算,主要包括:选择投影连接除本章小结关系规范化主要讨论的就是建立关系模式的指导原则,关系数据库规范化理论称为设计关系数据库的规范化理论。关系数据库理论主要包括三方面的内容:数据依赖范式模式设计方法本章小结函数依赖:完全函数依赖部分函数依赖传递函数依赖本章小结第一范式(1NF)第二范式(2NF)第三范式(3NF)本章小结数据库设计(DataBase Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求,包括信息要求和处理要求。数据库设计过程可分为六个阶段:需求分析、概念结
54、构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。 本章小结结构化查询语言SQL是一种用于数据库查询和编程的语言。包括:数据定义数据操纵数据控制系统存储过程一些附加的语言元素:包括注释、变量、运算符、函数和流程控制语句等。 习题一一、填空题1数据库是长期存储在计算机内的、 、 的大量数据的集合。2数据管理技术经历了 阶段、 阶段和数据库系统阶段。3数据的独立性是指数据的 和 。4数据模型由 、 、 三部分组成。1.6 思考与练习一、填空题5常用的逻辑模型(数据模型)主要有层次模型、 、 和对象模型等几种。6两个实体型之间的联系可以分为: 、 以及 。7在E-R图中,实体用 表示
55、,属性用 表示,联系用 表示。8数据库的三级模式结构包括 、 和内模式。1.6 思考与练习一、填空题9在关系数据模型中一般将数据完整性分为三类: 完整性、 完整性和用户定义完整性。10若对R,S两个关系进行关系代数运算,其结果为R1,若R1中的结果既属于R又属于S,是对关系进行了 运算;若R1中的结果既属于R或属于S,是对关系进行了 运算;若R1中的结果只属于R不属于S,是对关系进行了 运算。 1.6 思考与练习一、填空题9在关系数据模型中一般将数据完整性分为三类: 完整性、 完整性和用户定义完整性。10若对R,S两个关系进行关系代数运算,其结果为R1,若R1中的结果既属于R又属于S,是对关系
56、进行了 运算;若R1中的结果既属于R或属于S,是对关系进行了 运算;若R1中的结果只属于R不属于S,是对关系进行了 运算。 1.6 思考与练习一、填空题11选择运算是从关系的 方向进行运算;投影运算是从关系的 方向进行运算。12对于函数依赖X-Y,如果Y包含于X,则称X-Y是一个 。13如果一个关系不满足2NF,则该关系一定也不满足 (在1NF、2NF、3NF范围内)。1.6 思考与练习一、填空题14概念结构设计是将 得到的 抽象为信息世界的 的过程。15在数据库的概念结构设计阶段,当进行视图集成时要解决的冲突有 、 、 、 和 。16逻辑结构设计是将现实世界的概念模型设计成数据库的一种 。1
57、.6 思考与练习二、选择题1下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是( )。 I人工管理阶段 II文件系统阶段 III数据库系统阶段 AI 和 II B只有 II CII 和 III D只有 I 2下列四项中,不属于数据库系统特点的是( )。 A数据共享 B数据完整性 C数据冗余度高 D数据独立性高 1.6 思考与练习二、选择题3数据库系统的数据独立性体现在( )。 A不会因为数据的变化而影响到应用程序 B不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序 C不会因为存储策略的变化而影响存储结构 D不会因为某些存储结构的变化而影响其他的存储结构 4描述
58、数据库全体数据的全局逻辑结构和特性的是( )。 A模式 B内模式 C外模式 D用户模式 1.6 思考与练习二、选择题5要保证数据库的逻辑数据独立性,需要修改的是( )。 A模式与外模式的映射 B模式与内模式之间的映射 C模式 D三级模式 6现有如下关系: 患者(患者编号,患者姓名,性别,出生日起,所在单位) 医疗(患者编号,患者姓名,医生编号,医生姓名,诊断日期,诊断结果) 其中,医疗关系中的外码是( )。 A患者编号 B患者姓名 C患者编号和患者姓名 D医生编号和患者编号1.6 思考与练习二、选择题7关系模型中实现实体间 m:n 联系是通过增加一个( )。 A关系实现 B属性实现 C关系或一
59、个属性实现 D关系和一个属性实现 8从一个数据库文件中取出满足某个条件的所有记录形成一个新的数据库文件的操作是( )操作。 A投影 B联接 C选择 D复制 9自然连接是构成新关系的有效方法。一般情况下,当对关系R和S是用自然连接时,要求R和S含有一个或者多个共有的( )。 A记录 B行 C属性 D元组 1.6 思考与练习二、选择题10假设有关系R和S,关系代数表达式R(RS)表示的是( )。 ARS BRS CRS DRS 11关系模式R中的属性全是主属性,则R的最高范式必定是( )。A1NF B2NF C3NF DBCNF12关系模式的候选码可以有1个或多个,而主码有( )。A多个 B0个
60、C1个 D1个或多个1.6 思考与练习二、选择题13关系数据库规范化是为了解决关系数据库中( )的问题而引入的。A提高查询速度 B插入、删除异常和数据冗余 C保证数据的安全性和完整性14关系的规范化中,各个范式之间的关系是( )。A1NF2NF3NF B3NF2NF1NF C1NF=2NF=3NF D.1NF2NFBCNF3NF1.6 思考与练习二、选择题15数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,这是数据库设计的( )。 A需求分析阶段 B逻辑设计阶段 C概念设计阶段 D物理设计阶段 16在数据库设计中,将E-R图转换成关系数据模型的过程属于( )。 A需求分析阶
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学计算机协会工作计划
- 2025年幼儿园教研工作计划例文
- 部门工作计划范文
- 数学老师课堂教学任务计划
- 2025德育工作计划小学
- 小学第一学期班主任的教学工作计划范文
- 职高班主任年度工作计划
- 《蜗杆传动改》课件
- 《母亲的教诲胡适》课件
- 2020版 沪教版 高中音乐 必修1 音乐鉴赏 上篇《第四单元 黄钟大吕》大单元整体教学设计2020课标
- 做好计划管理-杜绝虚假繁忙-陈春花老师
- 船舶加油作业安全操作规程
- 重庆市两江新区八年级(上)期末语文试卷(含解析)
- 七人学生小品《如此课堂》剧本台词手稿
- 出境竹木草制品公司不合格产品召回制度
- POWERPOINT教学案例优秀6篇
- RFJ05-2009-DQ人民防空工程电气大样图集
- 建筑物理课后习题参考
- 部编版道德与法治三年级下册第一单元《我和我的同伴》大单元作业设计案例
- 2023届四省联考“谚语看似矛盾”的作文讲评+课件
- 研一考试文件内科学进展习题
评论
0/150
提交评论