已阅读5页,还剩160页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库基础知识,蒋望东副教授,湖南财政经济学院信息管理系,1概论1.1数据、信息、数据处理1.2计算机数据管理技术的发展1.3数据库、数据库管理系统、数据库系统1.4数据库系统的系统结构1.5数据库技术的发展,1.1数据、信息、数据处理(1)数据:描述事物的符号记录。数据与语义(含义)密不可分。举例:数字、文字、图形、图像、声音、语言等。例如:(200505101,张三,男,21,上海,计算机专业)(2)信息:经加工处理后获取的有价值的数据。数据与信息的关系?(3)数据处理:指对各种数据进行收集、存储、加工和传播的一系列活动总和。数据管理:指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。信息=数据+数据处理,现实世界:客观存在的世界中的事物及其联系。数据库方法中:客观事物及联系抽象实体(信息世界)转换记录(计算机世界),信息世界(或概念世界):现实世界在人脑中的反映,是对客观事物及其联系的一种抽象描述。描述方法:常用E-R模型来描述(以后介绍)。,计算机世界(又称数据世界):是在信息世界基础上的进一步抽象。描述方法:数据模型。常用术语:数据项(Field)(字段):标记实体属性的符号集。(描述属性)数据库中可以命名及存取的最小逻辑数据单位。记录(Record):数据项的有序数据集合。(描述实体)注:关系数据库系统中称为元组。,字段、属性、列,记录、元组、行,学生基本信息表,学,号,姓,名,年,龄,性,别,系,名,年,级,95004,王小明,19,女,社会学,95,95006,黄大鹏,20,男,商品学,95,95008,张文斌,18,女,法律学,95,1.2计算机数据管理技术的发展(1)人工管理阶段:20世纪50年代中期以前。特点:a、数据不能长期保存。b、数据不共享与程序不具有独立性。c、系统中无对数据进行管理的软件。,图1-2人工管理阶段应用程序与数据的关系,(2)文件系统阶段:20世纪50年代后期60年代中后期。特点:a、数据可以长期保存,多次访问。b、由文件系统管理相应的数据(无集中管理)。c、程序和数据有了一定的独立性,存储分开。d、数据共享差,冗余度大。,应用程序1,数据组1,数据组2,应用程序2,数据组N,应用程序N,文件系统,图1-3文件系统阶段应用程序与数据的关系,(3)数据库系统阶段:20世纪60年代后期开始。例:学生基本信息记录表:,这个表格的缺点:有些同学的奖惩记录很多,但大部分没有,因此“奖惩情况”这一栏该留多大的位置很难确定。而且很难统计奖励的次数,修改后的记录表:将学生基本信息和奖惩情况分开来,奖惩情况表,修改后的学生基本信息记录表,特点:描述数据时不仅描述数据本身,还描述了数据间的联系。,特点:a、数据结构化,信息完整,功能通用。b、实现数据共享,减少数据冗余,易扩充。c、采用了特定的数据模型。d、数据独立性高。物理独立性:应用程序的处理与数据物理结构无关。逻辑独立性:数据的逻辑结构的改变,用户程序可以不改变。,e、数据由DBMS统一管理和控制。,返回,应用程序1,应用程序2,应用程序N,数据库管理系统DBMS,数据库,图1-4数据库系统阶段应用程序与数据的关系,数据管理技术三个发展阶段的详细比较,应用背景科学计算科学计算、管理大规模管理,硬件背景无直接存取存储设备磁盘、磁鼓大容量磁盘,软件背景没有操作系统有文件系统有DBMS,处理方式批处理实时处理、批处理,数据的管理者用户(程序员)文件系统数据库管理系统,数据面向的对象某一应用程序某一应用现实世界,数据的共享程度无共享,冗余度很大共享性差,冗余度大共享性高,冗余度小,独立性差,实时处理、分布处理、批处理,具有高度的物理独立性和一定的逻辑独立性,数据的独立性,不独立,完全依靠于程序,记录内有结构、整体无结构,整体结构化,用数据模型描述,数据控制能力应用程序自己控制文件系统数据库管理系统,1.3数据库、数据库管理系统、数据库系统(1)数据库(DataBase,简称DB)定义:长期存放在计算机存储设备上有组织的、可共享的、相关的数据集合。特征:数据按一定的数据模型组织、描述和储存;可为各种用户共享;冗余度较小;数据独立性较高;易扩展。(数据库系统DBS的核心,是被管理的对象)(2)数据库管理系统(DataBaseManagementSystem,简称DBMS)功能:负责对DB进行管理与维护。,图1-5数据库管理系统在计算机系统中的地位,DBMS应包含的功能:数据定义功能:数据定义语言(DataDefinitionLanguage,简称DDL)数据操纵功能:数据操纵语言(DataManipulationLanguage,简称DML)如:插入、查找、修改和删除等操作。数据库的运行管理:数据控制语言(DataControlLanguage,简称DCL)数据库的建立和维护功能,DBMS须提供的数据控制功能:数据安全性(Security)保护。数据完整性(Integrity)检查。完整性:数据的正确性、有效性、一致性。并发(Concurrency)控制:能实现多个用户同时对数据库库中的数据或同一数据进行合理存取。数据库恢复(Recovery)。注:目前典型的关系数据库管理系统(RDBMS)有Oracle、Sybase、DB2、Informix、SQLserver、Foxpro、access。,(3)数据库系统(DataBaseSystem,简称DBS)即具有管理和控制数据库功能的计算机系统。注:常将数据库系统简称为数据库。a、数据库系统的5个组成部分:硬件系统数据库DB数据库管理系统DBMS相关软件(支持软件,如操作系统等;应用开发工具软件等)数据库系统用户:数据库管理员(DBA):负责数据库管理的和维护操作。,数据库设计者:负责数据库中数据的确定、存取方式、数据库最后的定义等。最终用户:数据库的主要用户,对数据库提出查询和更新等操作要求。最终用户分三类:偶然用户、简单用户、复杂用户。系统分析员和应用程序员。系统分析员:负责分析最终用户需求,对这些需求做出数据库事务的准确的定义。应用程序员:把系统分析员提供的数据事务定义编制成计算机软件,并进行编码、测试、维护。,b、数据库系统的主要特征:实现数据共享减少数据冗余度保持数据的一致性数据的独立性安全保密性并发控制故障恢复,应用系统,应用开发工具,操作系统,数据库管理系统,用户,用户,用户,数据库,图1-6数据库系统,本小结结束,DBA,1.5数据库系统的系统结构(1)模式(Schema)是数据库中全体数据的逻辑结构和特征的描述。(不涉及到具体的值)例:学生选课数据库模式:学生(学号,姓名,性别,专业班级,出生年月)课程(课程号,课程名,学分)选课(学号,课程号,成绩)注意:模式中不包含具体的记录数据模式的实例:模式的具体值称为模式的实例。,学生表实例,模式与实例的关系:1)、模式相对稳定。2)、同一个模式,可以有很多实例,实例是相对变动的。3)、模式反映的是数据结构及其联系,而实例反映的是数据库某一时刻的状态值。数据库中的模式:用数据描述语言精确定义数据模型的全部语句。,()数据库系统的三级模式两级映射结构:1)、外模式(ExternalSchema)(子模式Subschema、用户模式):用子模式数据描述语言(子模式DDL)来定义外模型的全部语句。2)、概念模式(简称模式,Schema)又称逻辑模式:用模式数据描述语言(模式DDL)来定义概念模型的全部语句。3)、内模式(InternalSchema)也称物理模式、存储模式(StorageSchema):用设备介质语言(内模式DDL)来定义内模型的模式。(是对数据物理结构和存储方式的描述。),实例,(3)三类模式之间的关系与区别:(重点)1)、子模式是概念模式的子集。2)、一个数据库只有一个概念模式,只有一个内模式,可以有多个外模式。3)、外模式是保证数据库安全性的一个有力措施。4)、一个外模式可以对应多个应用,但一个应用只能对应一个外模式。(4)数据库管理系统三级模式之间的两级映射:1)、子模式模式映射:保证了逻辑数据独立性:用户数据独立于全局逻辑数据的特性(模式变,子模式可以不变)。2)、模式物理模式映射:保证了物理数据独立性:全局逻辑数据独立于物理数据的特性。,图1-15数据库系统的三级模式结构图,逻辑独立性,物理独立性,外模式(子模式)面向用户,人事登记表,科研登记表,工资卡片,基本文件,职工信息表,项目表,工资表,第一层,第二层,第三层,(概念)模式(面向系统整体),内模式(物理模式)(面向计算机存储),主数据文件扩展名为.mdf,物理组织最佳的形式,全校数据库,教务处:教务管理系统,学生处:学生信息管理系统,现代化教学中心:一卡通管理系统,。,数据库的物理存储模式,外模式,模式,内模式,逻辑独立性,物理独立性,例:,全校数据库,教务处:教务管理系统,学生处:学生信息管理系统,现代化教学中心:一卡通管理系统,。,数据库的物理存储模式,学生(学号,姓名,性别,专业班级,出生年月,籍贯,家庭地址,联系方式)课程(课程号,课程名,学分,开课单位)奖惩信息(学号,奖惩记录)选课(学号,课程号,成绩)一卡通(。),学生(学号,姓名,性别,专业班级)课程(课程号,课程名,学分,开课单位)选课(学号,课程号,成绩),学生(学号,姓名)一卡通(。),学生(学号,姓名,性别,专业班级,出生年月,籍贯,家庭地址,联系方式)奖惩信息(学号,奖惩记录),数据库文件的存储形式,如文件名,是否索引等。,思考:1、学生表中增加一个字段,对3个系统有影响吗?2、将字段名“专业班级”改名为“班级”,对3个系统有影响吗?,1.5数据库技术的发展,第一代数据库的代表是1969年IBM公司研制的层次模型的数据库管理系统IMS和70年代美国数据库系统语言协商CODASYL下属数据库任务组DBTG提议的网状模型。层次数据库的数据模型是有根的定向有序树,网状模型对应的是有向图。这两种数据库奠定了现代数据库发展的基础。这两种数据库具有如下共同点:1.支持三级模式(外模式、模式、内模式)。保证数据库系统具有数据与程序的物理独立性和一定的逻辑独立性;2.用存取路径来表示数据之间的联系;3.有独立的数据定义语言;4.导航式的数据操纵语言,第二代数据库的主要特征是支持关系数据模型。这一理论是在20世纪70年代由时任IBM研究员的E.F.Codd博士提出的。关系数据库系统管理的数据,其结构较为简单,数据本身以二维表的形式进行存储;表之间的数据联系是通过一个表的码与另一个表的码的连接来实现。关系数据库系统为其管理的数据提供并发控制、应急恢复和可伸缩性等功能。值得注意的是关系数据库最重要的特征不是其存储和读取数据的能力,而是关系数据库系统提供的强大的查询功能以及提供的十分方便、易于使用的非过程化查询语言SQL,这些优点使得关系型数据库得到广泛的应用。,第三代数据库产生于80年代,随着科学技术的不断进步,不同领域的数据库应用提出了更多新的数据管理的需求,关系型数据库已经不能完全满足需求,于是数据库技术的研究和发展进入了新时代。主要有以下特征:1.支持数据管理、对象管理和知识管理;2.保持和继承了第二代数据库系统的技术;3.对其它系统开放,支持数据库语言标准,支持标准网络协议,有良好的可移植性、可连接性、可扩展性和互操作性等。第三代数据库支持多种数据模型(比如关系模型和面向对象的模型),并和诸多新技术相结合(比如分布处理技术、并行计算技术、人工智能技术、多媒体技术、模糊技术),广泛应用于多个领域(商业管理、GIS、计划统计等),由此也衍生出多种新的数据库技术。,2数据模型,2.1数据模型的概念,2.1.1数据的三个范畴数据需要人们的认识、理解、整理、规范和加工,然后才能存放到数据库中。也就是说数据从现实生活进入到数据库实际经历了若干个阶段。一般分为三个阶段,即现实世界阶段、信息世界阶段和机器世界阶段,也称为数据的三个范畴。,1.现实世界2.信息世界术语:实体(Entity):客观存在的、可以相互区别的事物称为实体。实体可以是具体的对象,例如,一个学生、一辆汽车等。也可以是抽象的事件,例如,一次借书、一次足球赛等。实体集(EntitySet):性质相同的同类实体的集合,称为实体集。例如,所有的学生、全国足球联赛的所有比赛等。属性(Attribute):实体有很多特性,每一个特性称为属性。每个属性有一个值域,其类型可以是整数型、实数型或字符串型等。例如,学生有学号、姓名、年龄、性别等属性,相应值域为字符串、字符串、整数和字符串型。码(Key):能唯一标识每个实体的属性或属性集,称为码。,3.机器世界术语:字段(Field):标记实体属性的命名单位称为字段或数据项。它是可以命名的最小信息单位。字段的命名往往和属性名相同,例如,学生有学号、姓名、年龄、性别等字段。记录(Record):字段的有序集合称为记录。一般用一个记录描述一个实体,例如,一个学生记录由有序的字段集组成:(学号,姓名,年龄,性别)。文件(File):同一类记录的汇集称为文件。文件是描述实体集的,例如,所有学生记录组成了一个学生文件。码(Key):能惟一标识文件中每个记录的字段或字段集,称为记录的码。这个概念与实体的码相对应。例如,学生的学号可以作为学生记录的码。,机器世界和信息世界术语的对应关系:信息世界机器世界实体记录属性字段(数据项)实体集文件码.码,以学生数据为例表示了信息在三个世界中的有关术语及其联系:,2.1.2数据模型的组成要素及分类,数据模型通常由数据结构、数据操作和完整性约束三要素组成。数据结构描述的是系统的静态特性,即数据对象的数据类型、内容、属性,以及数据对象之间的联系。数据操作描述的是系统的动态特性,是对各种对象的实例允许执行的操作集合。完整性约束是一组完整性规则的集合,它是对数据模型中数据及其联系所具有的制约和依赖性规则,用来保证数据的正确性、有效性和相容性。,2.2E-R模型,2.2.1基本概念(1)实体实体是现实世界中客观存在并可相互区别的事物。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如一个员工、一个部门、物资设备等等都是实体。(2)属性实体所具有的某一特性称为属性。将一个属性赋予某实体集,则表明该实体集中每个实体都有相似信息,但每个实体在自己的每个属性上都有各自的值。例如,实体集员工可能具有EmployeeID、EmployeeName属性,对于某个特定的Employee实体,它的EmployeeID为20100012,EmployeeName为Jack。(3)码(key)唯一表示实体的属性集称为码,例如EmployeeID为Employee实体的码。,(4)域(Domain)属性的取值范围称为域。例如,EmployeeID的域为8位整数,EmployeeName的域为字符串集。(5)实体集实体集是具有相同特征或能用同样特征描述的实体集合。例如,某个单位的所有员工的集合可被定义为实体集Employee。组成实体集的各实体称为实体集的外延,例如某单位所有员工称为实体集Employee的外延。(6)实体型实体型是指具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如,员工(员工编号、姓名、部门、性别、年龄、职称)就是一个实体型。(7)联系现实世界中,事物内部或事物之间总是有联系的,联系反映了实体之间或实体内部的关系。,两个实体间的联系集可分为3种:一对一联系(1:1)如果对于实体集A至少和实体集B中的一个实体有联系,反之亦然,则称实体集A和实体集B具有一对一联系,记为1:1.一对多联系(1:n)如果实体集A中每个实体与实体集B中任意多个(含零个或多个)实体有联系,而实体集B中每个实体至多与实体集A中一个实体有联系,就称实体集A和实体集B具有一对多联系,记为1:n。多对多联系(m:n)如果实体集A中每个实体与实体集B中任意多个(含零个或多个)实体有联系,而实体集B中每个实体与实体集A中任意多个(含零个或多个)个实体有联系,就称实体集A和实体集B具有多对多联系,记为m:n。,例:假设每个部门只能有一个负责人,每个负责人只能负责一个部门,则部门与负责人这两个实体之间是一对一的联系。每个部门可能有多个员工,而每个员工只能属于一个部门,则部门实体集Depart和员工实体集Employee之间是一对多联系。一个工程项目可能需要多个员工参与,而每个员工还可以参与其它项目,则工程项目与员工之间就是多对多联系。,同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。例:实体集员工Employee各具体实体之间具有领导与被领导关系,即某一员工“领导”若干名员工,而一个员工仅被另外一个员工直接领导,这就是一对多的联系。员工与员工之间还有配偶联系,由于一个员工只能有一个配偶,所以员工之间的“配偶”联系就是一对一的联系,两个以上实体型之间也存在一对一、一对多、多对多的联系。例:学生选课系统中,有教师、学生、课程三个实体,并且有语义:同样一门课程可能同时有几位教师开设,而每位教师都可能开设几门课,学生可以在选课的同时选择教师。,(8)弱实体集在描述实体的过程中,有些实体集的属性可能不足以形成主码,需要依赖其他实体集中的部分属性。这样的实体集叫做弱实体集,不需要依赖其他的实体的实体集称为强实体集。例如一个单位的员工实体集Employee与工作履历实体集Career,则工作履历实体集Career是以职工存在为前提的,即工作履历实体集Career是弱实体集。,2.2.2E-R图设计,1、E-R图基本元素和表示方法E-R图提供了表示实体集、属性和联系的方法,在E-R图中:(1)实体集:用矩形表示,矩形框内写明实体名。(2)属性:用椭圆形表示,并用无向边将其与相应的实体集连接起来。(3)联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体集连接起来,同时在无向边上表明联系的类型(1:1,1:n或m:n)。如果联系具有属性,则该属性仍用椭圆框表示,仍需要用无向边将属性与对应的联系连接起来。(4)用虚边矩形和虚边菱形分别表示弱实体和弱实体之间的联系。,例如:学生实体及属性,完整的学生选课ER图,综合实例,【例2.1】某电力公司的配电物资存放在仓库中,假设一个仓库可以存放多种物资,一种配电物资只能存放在一个仓库中;一个配电抢修工程可能需要多种配电物资,一种配电物资可以应用到多个抢修工程中。仓库包含仓库编号、仓库名称仓库面积等属性,配电物资包含物资编号、物资名称、单价、规格、数量等属性,抢修工程包含工程编号、工程名称、工程开始日期、工程结束日期、工程状态(工程是否完工)等属性,某一抢修工程领取某配电物资时,必须标明领取数量、领取日期、领取部门。,【例2.2】某工厂有若干车间及仓库,一个车间可以生产多种零件,每种零件只能在一个车间生产,一种零件可以组装在不同产品中,一种产品需要多种零件,每种零件和产品都只能存放在一个仓库中;车间有工人,工人有家属。各实体的属性为:车间:车间号、车间主任姓名、地址和电话;工人:工号、姓名、年龄、性别、工种;工厂:工厂名、厂长名;产品:产品号、产品名、价格;零件:零件号、零件规格、价格;仓库:仓库号、仓库负责人、电话;家属:姓名、亲属关系。,实体及其联系图,实体及其属性图,实体及其属性图,【例2.3】某学校有若干名教师和学生,并且教师和学生不能跨系;每个教师可以教授若干门课程,每门课程只能由一个教师任课;每个学生可以同时选修多门课程。请设计某学校的教学管理的E-R模型。其中实体有:系、教师、学生、课程。系属性有:系编号、系名、系主任。教师属性有:教师编号、教师姓名、职称。学生属性有:学号、姓名、性别、班号。课程属性有:课程编号、课程名、学分。,答:E-R模型如下:,系,学生,课程,教师,系编号,系主任,系名,教师编号,职称,教师姓名,学号,性别,姓名,课程号,学分,课程名,选修,从属,任课,从属,1,m,m,n,m,1,m,1,班号,学时,返回,成绩,3关系数据库,主要讲述:关系模型的数据结构关系的定义和性质关系数据库的基本概念关系运算,3.1关系模型,关系模型就是用二维表格结构来表示实体及实体之间联系的模型。关系模型是各个关系的框架的集合,即关系模型是一些表格的格式,其中包括关系名、属性名、关键字等。例如,教学数据库中教师与课程的关系模型如图。教师关系课程关系C授课关系SC图3.1教师课程数据库的关系模型,3.1关系模型,由上例可以看出,在一个关系中可以存放两类信息:一类是描述实体本身的信息一类是描述实体(关系)之间的联系的信息在层次模型和网状模型中,把有联系的实体(元组)用指针链接起来,实体之间的联系是通过指针来实现的。而关系模型则采用不同的思想,即用二维表来表示实体与实体之间的联系,这就是关系模型的本质所在。所以,在建立关系模型时,只要把的所有的实体及其属性用关系框架来表示,同时把实体之间的关系也用关系框架来表示,就可以得到一个关系模型。,关系模型具有以下特点:(1)描述的一致性。(2)利用公共属性连接。(3)结构简单直观。(4)有严格的理论基础。(5)语言表达简练。关系模型的缺点是在执行查询操作时,需要执行一系列的查表、拆表、并表操作,故执行时间较长,但是采用优化技术的当代关系数据库系统的查询操作的效率,完全不逊色于建立在其他数据模型上的数据库系统。,3.2关系的定义,在关系模型中,数据是以二维表的形式存在的,这个二维表就叫做关系。关系理论是以集合代数理论为基础的,因此,我们可以用集合代数给出二维表的“关系”定义。为了从集合论的角度给出关系的定义,我们先引入域和笛卡尔积的概念。,3.2.1域(Domain),域是一组具有相同数据类型的值的集合,又称为值域。(用D表示)例如整数、实数、字符串的集合。域中所包含的值的个数称为域的基数(用m表示)。关系中用域表示属性的取值范围。例如:D1=李力,王平,刘伟m1=3D2=男,女m2=2D3=47,28,30m3=3其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。域名无排列次序,如D2=男,女=女,男,3.2.2笛卡尔积(CartesianProduct),给定一组域D1,D2,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,Dn的笛卡尔积为D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n。由定义可以看出,笛卡尔积也是一个集合。其中:1.元素中的每一个di叫做一个分量(Component),来自相应的域(diDi)2.每一个元素(d1,d2,d3,dn)叫做一个n元组(n-tuple),简称元组(Tuple)。但元组不是di的集合,元组的每个分量(di)是按序排列的。如:(1,2,3)(2,3,1)(1,3,2);而集合中的元素是没有排序次序的,如(1,2,3)=(2,3,1)=(1,3,2),3.2.2笛卡尔积(CartesianProduct),3.若Di(i=1,2,n)为有限集,Di中的集合元素个数称为Di的基数,用mi(i=1,2,n)表示,则笛卡尔积D1D2Dn的基数M(即元素(d1,d2,dn)的个数)为所有域的基数的累乘之积,即M=例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为:D1D2=(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)其中:李力、王平、刘伟、男、女都是分量(李力,男),(李力,女)等是元组其基数M=m1m2=3*2=6;元组的个数为6,4.笛卡尔积可用二维表的形式表示。例如,上述的6个元组可表示成表3.1。表3.1D1和D2的笛卡尔积由上例可以看出,笛卡尔积实际是一个二维表,表的框架由域构成,表的任意一行就是一个元组,表中的每一列来自同一域,如第一个分量来自D1,第二个分量来自D2。,3.2.3关系(Relation),笛卡尔积D1D2Dn的任一子集称为定义在域D1,D2,Dn上的n元关系(Relation),可用R(D1,D2Dn)表示如上例D1D2笛卡尔积的子集可以构成教师关系T1,如下表:,几点说明:1.R为关系名,n称为关系的目或度(Degree)。当n=1时,称为单元关系。当n=2时,称为二元关系。当n=n时,称为n元关系。如上例为二元关系,关系名为T。,几点说明:2.该子集中的元素是关系中的元组,用r表示,关系中元组个数是关系的基数。如(李力,男),(王平,女),(刘伟,男)为三个元组,关系的基数为3。如果一个关系的元组个数是无限的,则称为无限关系;如果一个关系的元组个数是有限的,则称为有限关系。由于计算机存储系统的限制,我们一般不去处理无限关系,而只考虑有限关系。,几点说明:3.同样可以把关系看成一个二维表。其中,(1)表的框架由域Di(i=1,2,n)构成;(2)表的任意一行对应一个元组;(3)表的每一列来自同一域;(4)域可以相同,为了加以区别,每列起一个名字,称为属性,n目关系有n个属性,属性的名字唯一,属性的取值范围Di(i=1,2,n)称为值域(5)具有相同关系框架的关系成为同类关系,例如,有另一个关系T2,如表3.3所示:T1和T2是同类关系。,几点说明:4.数学上关系是笛卡尔积的任意子集,但在实际应用中关系是笛卡尔积中所取的有意义的子集。例如在表3.1中选取一个子集构成如下关系,显然不符合实际情况,在关系模型中,关系可进一步定义为:定义在域D1,D2,Dn(不要求完全相异)上的关系由关系头(Heading)和关系体(Body)组成。关系头:由属性名A1,A2,An的集合组成,每个属性Ai正好对应一个域Di(i=1,2,n),关系头,也称关系框架,相对固定,是关系的数据结构的描述。关系体:是指关系结构中的内容或者数据,并非固定不变,它随元组的建立、删除或修改而变化。,3.3关系的性质,尽管关系与二维表格、传统的数据文件是非常类似的,但它们之间又有重要的区别。严格地说,关系是种规范化了的二维表中行的集合,为了使相应的数据操作简化,在关系模型中,对关系作了种种限制,关系具有如下特性:1.关系中不允许出现相同的元组。因为数学上集合中没有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的。2.关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。因为集合中的元素是无序的,所以作为集合元素的元组也是无序的。根据关系的这个性质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。,3.关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。例如:关系T1作如下交换时,无任何影响,如下表所示,4.同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。5.关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域。例如,有如下表中关系,职业与兼职是两个不同的属性,但它们取自同一个域职业教师,工人,辅导员,6.关系中每一分量必须是不可分的数据项,或者说所有属性值都是原子的,即是一个确定的值,而不是值的集合。属性值可以为空值,表示“未知”或“不可使用”,即不可“表中有表”。满足此条件的关系称为规范化关系,否则称为非规范化关系。,例如,在表3.2中,籍贯含有省、市县两项,出现了“表中有表”的现象,则为非规范化关系,而把籍贯分成省、市县两列,将其规范化,如表3.3所示,表3.2表3.3,3.4关系的键,2.4.1候选键与关系键能唯一标识关系中元组的属性或属性集,则称该属性或属性集为候选键(CandidateKey),也称候选关键字或候选码。如:“学生关系”中的学号能唯一标识每一个学生,则属性学号是学生关系的候选键。在“选课关系”中,只有属性的组合“学号+课程号”才能唯一地区分每一条选课记录,则属性集“学号+课程号”是选课关系的候选键,下面给出候选键的形式化定义:设关系R有属性A1,A2,An,其属性集K=(Ai,Aj,Ak),当且仅当满足下列条件时,K被称为候选键:1.唯一性(Uniqueness):关系R的任意两个不同元组,其属性集K的值是不同的。2.最小性(Minimally):组成关系键的属性集(Ai,Aj,Ak)中,任一属性都不能从属性集K中删掉,否则将破坏唯一性的性质,例如:“学生关系”中的每个学生的学号是唯一的,“选课关系”中“学号+课程号”的组合也是唯一的对于属性集“学号+课程号”去掉任一属性,都无法唯一标识选课记录。,如果一个关系中有多个候选键,可以从中选择一个作为查询、插入或删除元组的操作变量,被选用的候选键称为主关系键(PrimaryKey),或简称为主键、主码、关系键、关键字。例如,假设在学生关系中没有重名的学生,则“学号”和“姓名”都可作为学生关系的候选键。如果选定“学号”作为数据操作的依据,则“学号”为主关系键。,主关系键是关系模型中的一个重要概念。每个关系必需选择一个主关系键,选定以后,不能随意改变。每个关系必定有且仅有一个主关系键,因为关系的元组无重复,至少关系的所有属性的组合可作为主关系键,通常用较小的属性组合作为主关系键。,3.4.2主属性与非主属性,主属性(PrimeAttribute):包含在主码中的的各属性称为主属性。非主属性(Non-PrimeAttribute):不包含在任何候选码中的属性称为非主属性。在最简单的情况下,一个候选码只包含一个属性,如学生关系中的“学号”,教师关系中的“教师号”。在最极终端的情况下,所有属性的组合是关系的候选码,这时称为全码(all-key)。,下面是一个全码的例子:假设有教师授课关系TCS,分别有三个属性教师(T)、课程(C)和学生(S)。一个教师可以讲授多门课程,一门课程可以为多个教师讲授,同样一个学生可以选听多门课程,一门课程可以为多个学生选听。在这种情况下,T,C,S三者之间是多对多关系,(T,C,S)三个属性的组合是关系TCS的候选码,称为全码,T,C,S都是主属性。,3.4.3外部关系键,如果关系R2的一个或一组属性X不是R2的主码,而是另一关系R1的主码,则该属性或属性组X称为关系R2的外部关系键或外键(Foreignkey)。并称关系R2为参照关系(referencingrelation),关系R1为被参照关系(referencedrelation)。由外部关系键的定义可知,被参照关系的主码和参照关系的外码必须定义在同一个域上。,习题1,学校,校长,聘用,姓名,校名,聘期,1,1,电话,地址,职称,性别,学校(校名,电话,地址,校长名,聘期)校长(姓名,职称,性别),习题2,商店(商店编号,商店名,地址)职工(职工编号,姓名,性别,商店编号,聘期),商店,职工,聘用,职工编号,商店编号,聘期,1,N,商店名,地址,姓名,性别,习题3,设某商业集团数据库中有3个实体集,一是“商店”实体集,属性有商店编号、商店店名、地址等;二是“商品”实体集,属性有商品号、商品名、规格、单价;三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。商店与商品之间存在“销售”联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品,有月销售量;商店与职工之间存在着“聘用”联系,每个商店有多名职工,每个职工只能在一个商店工作,商店聘用制共有聘期和月薪。试画出该系统的E-R模型;并将其转化为关系模型。,习题3参考答案,E-R图转换为关系模式,商店(商店编号,商店名,地址)职工(职工编号,姓名,性别,业绩,商店编号,聘期,月薪)商品(商品号,商品名,规格,单价)销售(商店编号,商品号,月销售量),习题4,设某商业集团数据库中有3个实体集,一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址;三是“职工”实体集,属性有职工编号、姓名、性别等。公司与仓库之间存在“隶属”联系,每个公司管辖多个仓库,每个仓库只能属于一个公司管辖;仓库与职工之间存在着“聘用”联系,每个仓库可聘用多名职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和月薪。试画出该系统的E-R模型;并将其转化为关系模型。,习题4参考答案,E-R图转换为关系模式,公司(公司编号,公司名,地址)职工(职工编号,姓名,性别,仓库编号,聘期,月薪)仓库(仓库编号,仓库名,地址,公司编号),3.4.4关系模型的完整性,为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这就是关系模型的三类完整性:1.实体完整性(EntityIntegrity)指主关系键的值不能为空或部分为空。关系模型中的一个元组对应一个实体,一个关系则对应一个实体集。例如,一条学生记录对应着一个学生,学生关系对应着学生的集合。,2.参照完整性(Referentialintegrity)如果关系R2的外部关系键X与关系R1的主关系键相符,则X的每个值或者等于R1中主关系键的某一个值,或者取空值。如图3.3所示,学生关系中某个学生(如s1)“系别”的取值,必须在参照的系别关系中主关系键“系别”的值中能够找到,否则表示把该学生分配到一个不存在的部门中,显然不符合语义。如果某个学生(如s11)“系别”取空值,则表示该学生尚未分配到任何一个系。否则,它只能取专业关系中某个元组的专业号值,S(学生关系)D(系别关系)图3.3学生表和系别表,3.用户定义完整性(User-definedIntegrity)用户定义完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。例如,属性值根据实际需要,要具备一些约束条件,如选课关系中成绩不能为负数;某些数据的输入格式要有一些限制等关系模型应该提供定义和检验这类完整性的机制,以便用统一的、系统的方法处理它们,而不要由应用程序承担这一功能。,3.5.1关系模式和关系数据库模式,一个关系的属性名的集合R(A1,A2,An)叫做关系模式。其中:R为关系名,A1,A2,An为属性名(i=1,2,n)。由定义可以看出,关系模式是关系的框架,或者称为表框架,指出了关系由哪些属性构成,是对关系结构的描述。一组关系模式的集合叫做关系数据库模式,关系数据库模式是对关系数据库结构的描述,或者说是对关系数据库框架的描述,也就是前面所讲过的关系头,可以看作是关系的型。与关系数据库模式对应的数据库中的当前值就是关系数据库的内容,称为关系数据库的实例,即前面所讲过的关系体,可以看作是关系的值。例如,在下图所示的教学数据库中,共有五个关系,其关系模式分别为:学生(学号,姓名,性别,年龄,系别)教师(教师号,姓名,性别,年龄,系别)课程(课程号,课程名,课时)选课(学号,课程号,成绩)授课(教师号,课程号),在每个关系中,又有其相应的数据库的实例例如:与学生关系模式对应的数据库中的实例有如下6个元组:,3.5.2关系数据库,关系数据库是“一组随时间变化,具有各种度的规范化关系的集合”。因为关系是由关系头和关系体组成的,所以关系数据库也可以看作是一组关系头和关系体的集合。由此可见,关系数据库也有型和值的概念,其型就是关系数据库模式,相对固定;其值就是关系数据库内容,代表现实世界中的实体,而实体是随着时间不断变化的,所以其值在不同的时刻会有所变化。比如,学生和教师的年龄随时间而增长,教师的工资和岗位津贴也会发生变化,3.6关系代数,关系模型与其他模型相比,最有特色的是它的数据库语言。目前关系数据库所使用的语言一般都具有定义、查询、更新和控制一体化的特点,而查询是最主要的部分。所以说,关系数据库的核心部分是查询,故又称为查询语言,而查询的条件要使用关系运算表达式来表示。因此,关系运算是设计关系数据语言的基础。按表达查询的方法不同,关系运算可分为关系代数和关系演算两大类。,3.6.1关系代数的分类及其运算符,关系代数是对关系进行集合代数运算,是基于关系代数的操作语言,称为关系代数语言,简称关系代数。它是由IBM在一个实验性的系统上实现的,称为ISBL(InformationSystemBaseLanguage)语言。关系代数的运算对象是关系,运算结果也是关系,关系代数用到的运算符主要包括四类:集合运算符:(并),-(差),(交),X(广义笛卡尔积);专门的关系运算符:(选择),(投影),(连接),(自然连接),(除);算术比较运算符:(大于),(大于等于),(小于),(小于等于),=(等于),(不等于);逻辑运算符:(与),(或),(非),关系代数运算按运算符的不同主要分为两类:传统的集合运算:把关系看成元组的集合,以元组作为集合中元素来进行运算,其运算是从关系的“水平”方向即行的角度进行的。包括并、差、交和笛卡尔积等运算。专门的关系运算:不仅涉及行运算,也涉及列运算,这种运算是为数据库的应用而引进的特殊运算。包括选取、投影、连接和除法等运算。,3.6.2传统的集合运算,对两个关系的集合运算传统的集合运算是二目运算,是在两个关系中进行的。但是并不是任意的两个关系都能进行这种集合运算,而是要在两个满足一定条件的关系中进行运算。设给定两个关系R、S,若满足:()具有相同的度n;()R中第i个属性和S中第i个属性必须来自同一个域。则说关系R、S是相容的。除笛卡尔积外,要求参加运算的关系必须满足上述的相容性定义。,1.并(Union)关系R和关系S的并由属于R或属于S的元组组成,即R和S的所有元组合并,删去重复元组,组成一个新关系,其结果仍为n目关系。记作:RS=t|tRtS对于关系数据库,记录的插入和添加可通过并运算实现。,并运算范例,R,S,RS,2.差(Difference)关系R与关系S的差由属于R而不属于S的所有元组组成,即R中删去与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:R-S=t|tRtS通过差运算,可实现关系数据库记录的删除,RS,差运算范例,R,S,RS,SR,3.交(Intersection)关系R与关系S的交由既属于R又属于S的元组组成,即R与S中相同的元组,组成一个新关系,其结果仍为n目关系。记作:RS=t|tRtS如果两个关系没有相同的元组,那么它们的交为空。交运算可以用差运算来表示:RS=R-(R-S),RS,交运算范例,R,S,RS,4.广义笛卡尔积(ExtendedCartesianProduct)两个分别为n目和m目关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1*k2个元组,记作RS=trts|trRtsS关系的广义笛卡尔积可用于两关系的连接操作。,广义笛卡尔积运算,A,B,11112222,C,D,1019201010102010,E,aabbaabb,rxs,【Example3.4】如图(a)、(b)所示的两个关系R与S为相容关系,(c)为R与S的并(d)为R与S的交,(e)为R与S的差,(f)为R与S的广义笛卡尔积。RS(a)(b),RSR-S(c)(d)RS(e),RS,图3.4传统的集合运算,3.6.3专门的关系运算,1、选择(Selection)-水平分割F(R)=ttRF=TrueF(R)表示从关系R中挑选出满足条件表达式F的那些元组所构成的关系。F的形式:由逻辑运算符连接算术表达式而成逻辑表达式:,算术表达式:XYX,Y是属性名、常量、或简单函数是比较算符,,选择运算,R,AD)等值连接(C=D)(c)(d),等值连接(R.B=S.B)自然连接(e)(f)图3.5连接运算举例,结合上例,可以看出等值连接与自然连接的区别:1.等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有在同名属性才能进行自然连接。如上例R中的C列和S中的D列可进行等值连接,但因为属性名不同,不能进行自然连接。2.等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接。如上例R中的B列和S中的B列进行等值连接时,结果有两个重复的属性列B,而进行自然连接时,结果只有一个属性列B。,3.6.3专门的关系运算,5除法(Division)RS=tt=tk1tk2“如果tk2S,则R”R能被S除的充分必要条件是:R中的属性包含S中的所有属性;R中有一些属性不出现在S中。,3.6.3专门的关系运算,RS的运算步骤是:T=1,2,r-s(R)W=(TS)R(计算TS中不在R中的元组);V=1,2,r-s(W)RS=T-V。即RS=1,2,r-s(R)1,2,r-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 远程指导下狗狗骨盆骨折家庭护理要点
- 老年人腰疼护理安全须知与辅助器具
- 儿童睡眠障碍护理与改善课件
- 肿瘤患者化疗恶心呕吐防治护理查房
- 新生儿抚触实操:促进发育、增进亲子关系技巧
- 2025年-2026年钢轨探伤工(高级)技能理论考试参考题库【附答案】
- 2024年临汾市卫生健康委员会“市招县用”招聘医生真题
- 分娩期常见护理操作(胎心监护、产钳使用)详解
- 医学职业卫生医院家庭病床感控案例教学课件
- 5年(2021-2025)黑吉辽蒙高考生物真题分类汇编:专题08 生物与环境(解析版)
- 辽宁葫芦岛历年中考语文现代文阅读真题11篇(含答案)(2003-2023)
- 人教版一年级上册《劳动教育》-全册课件
- 2022-2023年度广东省养老照护(中职组)竞赛规程
- 2024年中国老年糖尿病诊疗指南解读(2024年版)
- 2024年上海市中考语文备考之现代文阅读作家明前茶及梁晓声相关阅读训练
- 产品推广效果分析方案
- 浅谈质谱的检测器:电子倍增器(CEM)
- 生物多样性与气候变化课件
- ABC自闭症行为检查量表标准版
- 2023年苏教版四年级数学下册全册教学反思
- 五年级小数带方程综合练习(宁波实验学校)
评论
0/150
提交评论