版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章绪论1.1数据管理技术的发展1.2数据库系统1.3数据模型与数据模式1.4数据库管理系统1.1数据管理技术的发展人工管理阶段(20世纪50年代中期以前)文件系统阶段(20世纪50年代后期60年代中期)数据库系统阶段(20世纪60年代后期之后)人工管理阶段时期20世纪40年代中--50年代中背景应用需求:科学计算 硬件条件:无直接存取存储设备软件水平:没有操作系统 处理方式:批处理 人工管理阶段特点数据管理者:用户(程序员)数据应用范围:单一应用程序数据共享程度:无共享、冗余度极大数据独立性:不独立,完全依赖于程序数据结构化:无结构数据控制:应用程序负责人工管理阶段程序与数据之间的关系图程序与数据之间的关系(人工管理阶段)应用程序1数据1数据2数据n应用程序2应用程序n…………访问访问访问文件系统阶段时期20世纪50年代末--60年代中背景应用需求:科学计算+数据管理 硬件条件:磁盘、磁鼓(直接存取设备)
软件水平:有文件系统 处理方式:联机分时处理+批处理 文件系统阶段特点数据管理者:文件系统,数据可长期保存数据应用范围:某些应用程序数据共享程度:共享性差、冗余度大数据结构化:记录内有结构,无整体结构数据独立性:较差,数据的逻辑结构改变必须修改应用程序数据控制:应用程序负责文件系统阶段图程序与数据之间的关系(文件系统阶段)应用程序1文件1文件2文件n应用程序2应用程序n…………文件系统存取方法
程序与数据之间的关系文件系统是操作系统用于管理辅存(磁盘/磁带)数据的子系统,提供数据的物理存储和存取方法在文件系统中,一个命名的数据集合称为文件文件是操作系统管理数据的基本单位文件系统文件管理方式本质上是把数据组织成文件形式存储在磁盘上用户通过编程,定义数据的逻辑结构和输入输出(I/O)格式应用程序由于必须直接访问所使用的数据文件,所以完全依赖于数据文件的存储结构当数据文件修改时,应用程序必须作相应修改文件系统文件系统的数据结构记录内有结构数据结构由应用程序定义和解释数据项一般是定长的可以间接实现数据变长要求,但访问相应数据的应用程序变复杂文件是孤立的,数据整体无结构可以间接实现数据整体结构,但必须在应用程序中描述文件之间的联系数据的最小存取单位是记录数据库系统阶段从20世纪60年代末开始,数据管理技术进入数据库系统阶段,其标志是:
(1)1968年,美国IBM公司推出层次模型的IMS系统(2)1969年,美国CODASYL组织发布了DBTG报告,对当时各式各样的数据库进行了总结,提出网状模型
(3)1970年,美国IBM公司的E.F.Codd连续发表论文,提出关系模型,奠定了关系数据库的理论基础
数据库系统阶段时期20世纪60年代末之后背景应用需求:大规模数据管理 硬件条件:大容量磁盘、磁盘阵列 软件水平:数据库管理系统 处理方式:联机实时处理+分布处理
数据库系统阶段图程序与数据之间的关系(数据库系统阶段)
程序与数据之间的关系应用程序1应用程序2应用程序n……数据库管理系统DBMS数据库数据管理各阶段的比较人工管理阶段文件系统阶段数据库系统阶段产生背景应用需求科学计算科学计算机/数据管理大规模数据管理硬件水平无直接存储设备磁盘/磁鼓大容量磁盘软件水平没有操作系统和数据管理软件高级语言+操作系统(文件系统)数据库管理系统(DBMS)处理方式批处理联机实时处理+批处理联机实时处理+分布式处理特点数据的管理者应用程序文件系统数据库管理系统应用范围单个应用程序单个或少量应用程序多个应用整个企业数据管理各阶段的比较特点数据共享程度无共享共享性差共享性好数据独立性不独立,完全依赖于程序记录内有结构,整体无结构,独立性差高度的物理独立性和一定的逻辑独立性数据结构化无结构若数据的逻辑结构改变则必须修改应用程序采用数据模型表示复杂的数据结构,整体结构化数据控制完全由应用程序控制基本由应用程序控制由DBMS统一管理和控制,提供数据库的并发控制,数据库的恢复,数据的完整性和数据安全性等支持 用户接口无物理存取数据库系统为用户提供方便的用户接口1.2数据库系统数据库的定义数据库系统的定义数据库系统的组成数据库系统的特征数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合数据库是相互关联的数据集合,其中的数据能够为特定组织(如企事业单位)的多种应用服务数据库中的数据具有以下特点:描述了现实世界的某些方面数据间有密切联系具有最小的冗余度和较高的独立性可服务于多个应用可被多用户共享使用数据库的定义数据库系统(DatabaseSystem/DBS)是实现有组织、动态地存储大量相关的结构化数据、方便各类用户访问的计算机软/硬件资源的集合DBS是由数据库(DB)、数据库管理系统(DBMS)以及应用程序等组合构成的完整系统有时也将与数据库系统有关的人员添加到数据库系统中,形成广义的数据库系统数据库系统的定义数据库系统的组成硬件平台软件平台数据库(DB)数据库管理系统(DBMS)开发工具应用程序用户构成数据库系统的主要软件成分:数据库管理系统(DBMS):为建立、使用和维护数据库而配置的通用软件系统,是整个数据库系统的核心具有与数据库接口的高级语言及编译系统以DBMS为核心的应用开发工具为满足特定应用需求开发的应用程序数据库系统的组成数据库管理员(DBA)全面负责数据库系统的管理、维护和正常使用的人员应用程序员负责设计和编写应用系统的程序模块,并进行调试、安装和维护终端用户(EndUser)又称为最终用户,通过应用系统的用户接口使用数据库。常用的接口方式有浏览器、菜单驱动、表格操作、图形显示、报表书写等,给用户提供简明直观的数据表示数据库系统的用户
数据库
应用系统应用开发工具
操作系统
数据库管理系统
数据库管理员用户用户用户
数据库系统的组成数据库系统的特征(1)面向全组织的数据结构数据反映了客观事物间的本质联系,是有结构的数据集合而文件只是记录的有序集合,不同文件中的记录之间缺少逻辑联系这是数据库系统的主要特征之一,也是数据库系统与文件系统的根本区别之一数据库系统的特征(2)信息完整且功能通用数据库系统的通用性是由于将数据的定义和描述(即所谓“元数据”)从应用程序中分离并统一存储管理所谓元数据(MetaData)是指数据的描述信息,包括数据的逻辑结构、存储格式、数据类型、数据的完整性约束等应用程序如果要访问数据库,首先通过DBMS取得有关元数据,然后根据这些信息存取数据库中的数据在文件系统中,元数据分散在不同的应用程序中,故文件只能与访问这些文件的应用程序形成特定关系,其它的应用程序由于不了解元数据而无法访问文件数据库系统的特征(3)数据冗余度小、易扩充强调数据集中统一管理,尽量对数据进行共享,因此冗余度降低不仅节省存储空间、减少存取时间,而且避免数据之间的不相容和不一致每个应用选用数据库的一个子集,只要重新选取不同子集或者加上一小部分数据,就可以满足新的应用要求,即易扩充数据库系统的特征(4)面向实际应用的数据抽象(又称数据模型化)数据库系统提供了面向现实世界数据的抽象概念表示,使得用户不必了解数据库文件的存储结构、存储位置、存取方法等细节就能访问数据库不同类型的数据库系统使用不同的数据模型实现数据的抽象概念表示数据模型屏蔽了数据存放的物理细节,这种方法表达的数据更容易被用户理解数据库系统的特征(4)面向实际应用的数据抽象(又称数据模型化)在数据库系统中,数据存储结构、存取方法等细节完全由系统负责访问数据库时,用户只须引用数据的抽象概念表示,DBMS负责提取数据的存储结构、存取方法等细节,把用户引用的抽象概念转换为物理表示,完成用户的访问要求数据库系统的特征(5)支持数据的不同视图所谓视图(View)是指从不同视角观察数据库中数据的机制一个视图是一个或多个数据库的子集按某种方式构成的虚拟数据库(不是实际存储的数据库)数据库系统提供了定义、维护和操纵视图的功能各个用户可以根据需要为自己的应用程序定义视图并维护和操纵它数据库系统的特征(6)较高的数据的独立性由于数据库系统对所有元数据作统一存储和管理,从而实现了应用程序与数据的独立性即当文件结构改变时,应用程序不必改变,这是因为通过DBMS完成对元数据相应修改,即可适应变化数据的存取由系统管理,用户不必考虑存取路径等细节,简化了应用程序开发而在文件系统中,元数据嵌套在应用程序中,文件结构的任何改变将引起所有访问该文件的应用程序的改变数据库系统的特征(6)较高的数据的独立性数据描述是分级的(全局逻辑、局部逻辑、物理存储),实现了两级数据独立性物理独立性指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变逻辑独立性指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变数据库系统的特征(7)支持多种用户界面不同的用户具有不同的技术背景和不同的使用要求数据库系统针对不同用户的情况,提供多种界面:数据库查询语言:面向具有数据库系统知识的用户程序设计语言界面:面向应用程序员菜单、图形和自然界面:面向终端用户数据库系统的特征(8)完善的数据管理控制功能数据的安全性控制(Security)保护数据以防止不合法的使用所造成的数据泄露和破坏措施:用户标识与鉴定,存取控制数据的完整性控制(Integrity)数据的正确性、有效性、相容性措施:完整性约束条件定义和检查并发控制(Concurrency)对多用户的并发操作加以控制、协调,防止其互相干扰而得到错误的结果并使数据库完整性遭到破坏措施:锁(Lock)1.3数据模型与数据库模式数据(Data)与信息(Information)数据模型(DataModel)数据模式(DataSchema)
数据模型使用数据库技术,首先必须把现实世界中的事物表示为计算机能够处理的数据在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息数据的语法和语义任何数据都有语法、语义两个方面语法(Syntax)是指数据的格式规定,如规定数据是数值型、字符型、日期型等语义(Semantic)是指数据本身的含义例:数据:10000000一千万10Million语义1:某人银行帐户上的存款余额语义2:某企业年销售额…数据举例数据:(200805301,李明,男,19900607,陕西省西安市,软件学院,2008)语义:学号、姓名、性别、出生日期、籍贯、所在院系、入学时间解释:李明是大学生,男生,1990年6月7日出生,陕西省西安市人,2008年考入软件学院数据模型数据模型是规定现实世界数据特征的抽象,是用来描述数据的语法、语义和操作的一组概念的集合数据模型是对现实世界某方面的抽象和模拟数据模型应满足三方面要求能比较真实地反映现实世界容易为人所理解便于在计算机上实现
三类数据模型概念模型也称信息模型,它是按用户的观点对数据和信息建模,用于数据库概念设计和建模逻辑模型也称数据模型(狭义),它是按计算机系统的观点对数据建模,主要包括网状模型、层次模型、关系模型、面向对象模型等,用于数据库系统实现物理模型也称存储模型,它是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法三类数据模型DBMS支持的数据模型概念模型认识抽象信息世界机器世界现实世界中客观对象的抽象过程现实世界现实世界概念模型数据库设计人员完成逻辑模型物理模型由DBMS完成概念模型逻辑模型数据库设计人员完成
数据模型三要素数据结构数据操作完整性约束条件
数据结构描述数据库的组成对象,以及对象之间的联系描述内容与数据类型、内容、性质有关的对象与数据之间联系有关的对象数据结构是对系统静态特性的描述
数据操作
对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则数据操作的类型查询更新(包括插入、删除、修改)
数据操作
数据模型对操作的定义操作的确切含义操作符号操作规则(如优先级)实现操作的语言数据操作是对系统动态特性的描述完整性约束条件
一组完整性规则的集合完整性规则:给定的数据模型中数据及其联系所具有的制约和储存规则用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容概念模型概念模型用于信息世界的建模是现实世界到机器世界的一个中间层次是数据库设计的工具是数据库设计人员和用户之间进行交流的语言工具概念模型对概念模型的基本要求较强的语义表达能力能够方便、直接地表达应用中的各种语义知识简单、清晰、易于用户理解实体-联系(ER)模型最常用的概念模型的表示方法是实体-联系方法(Entity-RelationshipApproach)1976年,P.P.S.Chen提出E-R模型,用E-R图来描述概念模型观点:客观世界是由一组称作实体的基本对象和这些对象之间的联系构成的ER模型与DBMS所支持的数据模型相独立,是各种数据模型的共同基础信息世界中的基本概念(1)实体(Entity)
客观存在并可相互区别的事物称为实体,可以是具体的人、事、物或抽象的概念实体集(entityset):具有共同属性的所有实体的集合;实体实例(entityinstance):实体集中的单个实体;例:学生,职工,部门,课程,…都是实体(集),而“王英”,“张凡”都是“学生”实体集中的实体实例(值)实体的表示:
E={e1,e2,…,en}(外延法)E(A1,…,An)(内涵法)信息世界中的基本概念(2)属性(Attribute)实体(或联系)所具有的某方面特征称为属性一个实体可以由若干个属性来刻画值集:属性的取值范围,也称为域(Domain)根据属性的取值方式,可以将属性进一步区分为::简单属性与复合属性:单值属性与多值属性:标识性属性与描述性属性:固有属性与导出属性:属性的表示:一般属性:A:E→ρ(V1)×ρ(V2)……×ρ(Vn)简单属性:A:E→ρ(V)(3)码(Key)唯一标识实体的属性集称为码信息世界中的基本概念(4)联系(Relationship)
现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系将发生在实体之间具有特定含义的对应关系称为联系注意,与实体一样,也存在联系集(型)与联系值的区别两个实体型之间的联系(8/30)实体型A联系名实体型B111:1联系实体型A联系名1n1:n联系实体型A实体型B联系名mnm:n联系实体型B用图形来表示两个实体型之间的三类联系
两个实体型之间的联系
一对一联系(1:1)定义:如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1
实例:一个班级只有一个正班长一个班长只在一个班中任职班级班级-班长班长111:1联系两个实体型之间的联系一对多联系(1:n)定义:如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n实例:一个班级中有若干名学生,每个学生只在一个班级中学习班级组成学生1n1:n联系两个实体型之间的联系多对多联系(m:n)定义:如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系,记为m:n实例:一门课程同时有若干个学生选修一个学生可以同时选修多门课程课程选修学生mnm:n联系两个以上实体型之间的联系两个以上实体型之间一对多联系若实体集E1,E2,...,En存在联系,对于实体集Ej(j=1,2,...,i-1,i+1,...,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1,E2,...,Ei-1,Ei+1,...,En之间的联系是一对多的两个以上实体型之间的联系实例
课程、教师与参考书三个实体型一门课程可以有若干个教师讲授使用若干本参考书每一个教师只讲授一门课程每一本参考书只供一门课程使用课程讲授教师1m两个以上实体型间1:n联系参考书n两个以上实体型之间的联系两个以上实体型间的多对多联系例:供应商、项目、零件三个实体型一个供应商可以供给多个项目多种零件每个项目可以使用多个供应商供应的零件每种零件可由不同供应商供给两个以上实体型之间的联系供应商供应项目mp两个以上实体型间m:n联系零件n单个实体型内的联系一对多联系实例
职工实体型内部具有领导与被领导的联系某一职工(干部)“领导”若干名职工一个职工仅被另外一个职工直接领导这是一对多的联系一对一联系请举例职工领导1n单个实体型内部1:n联系单个实体型内的联系实体型1联系名mn单个实体型内的m:n联系多对多联系E-R图实体型用矩形表示,矩形框内写明实体名属性用椭圆形表示,并用无向边将其与相应的实体连接起来学生教师学生学号年龄性别姓名E-R图联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)联系的表示方法实体型A联系名实体型B111:1联系实体型A联系名1n1:n联系实体型A实体型B联系名mnm:n联系实体型B联系的表示方法示:例班级班级-班长班长111:1联系课程选修学生mnm:n联系班级组成学生1n1:n联系联系的属性课程选修学生mn成绩联系的属性:联系本身也是一种实体型,也可以有属性如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来例:ER图:实例用E-R图表示某个工厂物资管理的概念模型实体仓库:仓库号、面积、电话号码零件:零件号、名称、规格、单价、描述供应商:供应商号、姓名、地址、电话号码、帐号项目:项目号、预算、开工日期职工:职工号、姓名、年龄、职称ER图:实例实体之间的联系如下:
(1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系(3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员(4)供应商、项目和零件三者之间具有多对多的联系ER图:实例经典逻辑数据模型经典逻辑数据模型有三类:层次模型(HierarchicalModel)(树)网状模型(NetworkModel)(图)关系模型(RelationalModel)(表)各种经典逻辑数据模型之间的区别在于数据之间联系的表示方式不同格式化模型层次模型层次模型是数据库系统中最早出现的数据模型层次数据库系统的典型代表是IBM公司的IMS(InformationManagementSystem)数据库管理系统层次模型用树形结构来表示各类实体以及实体间的联系
层次模型的数据结构记录(record)
:描述事物或事物间关系的命名的数据单位,也是数据的存储单位字段(field)
:记录的构成部分系系名系号系主任名地点图记录的型计算机系9xxx西一楼图记录的一个实例层次模型的数据结构双亲子女关系(PCR)层次数据模型的基本关系,表示两个记录型间的1:N关系。双亲记录子女记录PCR型与PCR实例系班1N计算机系61班62班63班64班层次模型的数据结构
满足下面两个条件的基本层次联系的集合为层次模型1.有且只有一个结点没有双亲结点,这个结点称为根结点2.根以外的其它结点有且只有一个双亲结点层次模型中的几个术语根结点,双亲结点,兄弟结点,叶结点层次模型的数据结构
R1
根结点
R2
兄弟结点
R3
叶结点
R4
兄弟结点
R5
叶结点
叶结点层次模型示例层次模型的数据结构层次模型的特点:结点的双亲是唯一的只能直接处理一对多的实体联系每个记录类型可以定义一个排序字段,也称为码字段任何记录值只有按其路径查看时,才能显出它的全部意义没有一个子女记录值能够脱离双亲记录值而独立存在层次模型的数据结构教员学生层次数据库模型
根结点记录型系的子女结点记录型教员的双亲结点叶结点叶结点字段层次模型的数据结构教员学生层次数据库的一个值
多对多联系在层次模型中的表示用层次模型间接表示多对多联系方法将多对多联系分解成一对多联系分解方法冗余结点法虚拟结点法层次模型的数据操纵层次模型的数据操纵查询插入删除更新层次模型的完整性约束无相应的双亲结点值就不能插入子女结点值如果删除双亲结点值,则相应的子女结点值也被同时删除更新操作时,应更新所有相应记录,以保证数据的一致性层次模型的存储结构邻接法按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序层次模型的存储结构图层次数据库及其实例…A1A2C8C6C4B6C9C2B4C14C7C5C3B1A1邻接法按邻接法存放图1.20(b)中以根记录A1为首的层次记录实例集按邻接法存放图中以根记录A1为首的层次记录实例集
层次模型的存储结构链接法用指引来反映数据之间的层次联系子女-兄弟链接法层次序列链接法层次模型的存储结构子女-兄弟链接法每个记录设两类指针,分别指向最左边的子女(每个记录型对应一个)和最近的兄弟层次模型的存储结构层次序列链接法按树的前序穿越顺序链接各记录值层次模型的优缺点优点层次模型的数据结构比较简单清晰查询效率高,性能优于关系模型,不低于网状模型层次数据模型提供了良好的完整性支持缺点多对多联系表示不自然对插入和删除操作的限制多,应用程序的编写比较复杂查询子女结点必须通过双亲结点由于结构严密,层次命令趋于程序化网状模型美国CODASYL(ConferenceOnDataSystemLanguages)委员会的DBTG(DataBaseTaskGroup)提出了网状数据模型和数据库语言报告基于此报告研制的网状数据库系统也为DBTG系统实际系统CullinetSoftwareInc.公司的IDMSUnivac公司的DMS1100Honeywell公司的IDS/2HP公司的IMAGE网状模型的数据结构记录(Record):数据的存储单位,可包含若干数据项;
注意记录有记录型/记录值的区别数据项(DataItem):相当于字段,但与层次模型不同,数据项可以是简单数据类型,也可以是多值或复合的数据简单多值数据项称为向量(vector),复合多值数据项称为重复组(repeatinggroup)数据库码(databasekey,DBK):记录的逻辑地址网状模型的数据结构网状模型:满足下面条件的基本层次联系的集合:1.允许一个以上的结点无双亲2.一个结点可以有多于一个的双亲3.允许两个结点之间有多种关系(称为复合关系)特点:取消了层次数据模型数据结构的限制,是对层次数据模型的扩展,更具有普遍性适用网状模型的数据结构表示方法(与层次数据模型相同)实体型:用记录类型描述,每个结点表示一个记录类型(实体)属性:用字段描述每个记录类型,可包含若干个字段联系:用结点之间的连线表示记录(实体)类型之间的一对多父子联系网状模型的数据结构网状模型中子女结点与双亲结点的联系可以不唯一要为每个联系命名,并指出与该联系有关的双亲记录和子女记录R1与R3之间的联系L1R2与R3之间的联系L2
93网状模型的数据结构系(set)两个记录型之间的1:N联系(首记录,属记录)
系型和系值班级学生一班王一李红丁杰网状模型的数据结构网状模型的例子
网状模型的数据结构多对多联系在网状模型中的表示用网状模型间接表示多对多联系方法:将多对多联系直接分解成一对多联系网状模型的数据结构例:一个学生可以选修若干门课程,某一课程可以被多个学生选修,学生与课程之间是多对多联系引进一个学生选课的联结记录,由3个数据项组成学号课程号成绩表示某个学生选修某一门课程及其成绩网状模型的数据结构学生/选课/课程的网状数据模型
98网状模型的数据结构不允许一个记录型同时作为一个系的首记录和属记录为表示同一记录型之间的联系引入“连接记录”例:图中的联系表示职工之间的领导关系S1EMPLINK111NS299网状模型的数据结构奇异系(无首系/单值系)多元联系的表示系的链式(chain)实现:向前指针、向后指针、首记录指针OS2S1S3网状模型与层次模型的区别网状模型允许多个结点没有双亲结点网状模型允许结点有多个双亲结点网状模型允许两个结点之间有多种联系(复合联系)网状模型可以更直接地描述现实世界层次模型实际上是网状模型的特例网状模型的存储结构关键实现记录之间的联系常用方法单向链接双向链接环状链接向首链接网状模型的存储结构
学生/选课/课程的网状数据库实例
学生记录课程记录选课记录网状模型的完整性约束网状数据库系统(如DBTG)对数据操纵加了一些限制,提供了一定的完整性约束码(Key):唯一标识记录的数据项的集合一个联系中双亲记录与子女记录之间是一对多联系支持双亲记录和子女记录之间某些约束条件网状模型的完整性约束成员约束:一个记录(值)不能出现在同一系型的多个系值中;插入约束:插入新记录的插入系籍(setmembership)类别:AUTOMATIC(自动连接)MANUAL(人工连接)成员存在方式约束:已插入到某个系值中的属记录的留置系籍类别:OPTIONAL(任意的)MANDATORY(强制的)FIXED(固定的)网状模型的完整性约束成员记录序约束——删除系的首记录时对相关属记录值的处理规则:留置系籍类别为OPTIONAL留置系籍类别为MANDATORY留置系籍类别为FIXED网状模型的数据操作导航式(navigational)数据库:在操作数据库时,不但说明做什么,还要说明如何做存取路径:操作的对象所在的物理位置网状模型的数据操作基本概念运行单位(rununit):程序工作区(UWA):记录模板(RecordTemplates)当前指示字表(Currencypointers)
:运行单位当前值:系的当前值:当前系值:记录当前值:网状模型系统的逻辑结构主语言+DMLUWA主语言+DMLUWA主语言+DMLUWA主语言+DMLUWA主语言+DMLUWA子模式A子模式B模式存储模式数据库DBMS应用程序1应用程序2应用程序3应用程序4应用程序5主要的DML语句FIND(查找):按照指定的条件在数据库中查找一个记录,并设置适当的当前值;GET(读入):将指定的记录或数据项读入内存;STORE(保存):将一个记录插入到数据库中,并按照插入系籍约束加入到有关的系值中;MODIFY(修改):修改指定记录中的数据项;ERASE(删除):从数据库中删除指定的记录;CONNECT(加入):将一个属记录值加入指定的系值中;RECONNECT(转移):将一个属记录值转移到一个新的指定的系值中;DISCONNECT(撤离):将一个属记录值从所在的系值中撤离;网状数据模型的优缺点优点能够更为直接地描述现实世界,如一个结点可以有多个双亲具有良好的性能,存取效率较高缺点结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握DDL、DML语言复杂,用户不容易使用关系模型采用关系模型作为数据组织方式的系统称为关系数据库系统(RDBS)1970年美国IBM公司SanJose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型目前数据库软件厂商推出的DBMS几乎都支持关系模型
关系模型的数据结构主码整数字符串1,2,3,4,5域属性名元组(行)关系属性列在用户观点下,关系模型中数据的逻辑结构是“二维表”,由行和列组成。关系模型的数据结构关系(Relation)一个关系对应通常说的一张表(Table)元组(Tuple)表中的一行(Row)即为一个元组属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名关系模型的数据结构主码(Key)表中的某个属性组,它可以唯一确定一个元组域(Domain)属性的取值范围分量元组中的一个属性值关系模式对关系的描述,相当于“表头”部分表示形式:关系名(属性1,属性2,…,属性n)例:学生(学号,姓名,年龄,性别,系,年级)关系模型的数据结构关系必须是规范化的,满足一定的规范条件最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,不允许“表中套表”例:图中工资和扣除是可分的数据项,因此不符合关系规范化要求
职工号姓名职称工资扣除实发基本津贴职务房租水电86051陈平讲师13051200501601122283图一个工资表(表中套表)实例关系模型的数据结构关系术语一般表格的术语关系名表名关系模式表头(表格的描述)关系(一张)二维表元组记录或行属性列属性名列名属性值列值分量一条记录中的一个列值非规范关系表中有表(大表中嵌有小表)术语对比
关系模型的数据操纵集合操作用户对数据的检索操作就是从原来的表中得到一张新的表即操作对象和操作结果都是若干元组的集合,而不象非关系模型中那样单记录的操作方式存取路径对用户隐藏,提高了数据的独立性关系模型的完整性约束域完整性实体完整性参照完整性用户定义的完整性关系模型的优缺点优点建立在严格的数学概念的基础上概念单一实体和各类联系都用关系来表示对数据的检索结果也是关系关系模型的存取路径对用户透明具有更高的数据独立性,更好的安全保密性简化了程序员的工作和数据库开发建立的工作关系模型的优缺点缺点存取路径对用户透明导致查询效率往往不如非关系数据模型为提高性能,必须对用户的查询请求进行优化增加了开发DBMS的难度数据库模式和实例模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及类型的描述,不涉及具体的值模式的一个具体值称为模式的一个实例(Instance)型和值型(Type)是指对某一类数据的结构和属性的说明值(Value)是型的一个具体赋值例:类型—学生(学号,姓名,年龄)值——(PB00001001,张三,20)模式和实例举例学生表(学号,姓名,年龄)课程表(课程号,课程名,学分)选课表(学号,课程号,成绩)1个模式2个实例实际中的模式描述比本例要详细得多模式的分级为了提高数据的物理独立性和逻辑独立性,使数据库的用户观点,即用户看到的数据库,与数据库的物理方面,即实际存储的数据库区分开来,数据库系统的模式是分级的三级模式结构CODASYL(ConferenceOnDataSystemLanguage,美国数据系统语言协商会)提出模式、外模式、内模式三级模式的概念三级模式之间有两级映象三级模式结构数据库内模式模式外模式2外模式3外模式1应用A应用B应用C应用D应用E外模式/模式映象模式/内模式映象模式模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,属于逻辑层抽象(LogicalLevel)模式是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序以及所使用的应用开发工具及高级程序设计语言无关模式一个数据库只有一个模式数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体定义模式时不仅要定义数据的逻辑结构,而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求外模式外模式也称子模式(Subschema)或用户模式(Userschema),属于视图层抽象(ViewLevel)外模式是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据逻辑表示外模式通常是模式的子集,一个数据库可以有多个外模式内模式内模式也称存储模式(StorageSchema),属于物理层抽象(PhysicalLevel)一个数据库只有一个内模式内模式是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式内模式内模式描述的内容包括:记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定…两层映象数据库系统在三级模式之间提供了两层映象:外模式/模式映象模式/内模式映象正是这两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性外模式/模式映象对于每一个外模式,数据库系统都有一个外模式/模式映象,它定义了该外模式与模式之间的对应关系当模式改变时,对各个外模式/模式的映象作相应改变,可以使外模式保持不变应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性模式/内模式映象定义数据逻辑结构与存储结构之间的对应关系存储结构改变时,修改模式/内模式映象,使模式保持不变,从而应用程序可以保持不变,称为数据的物理独立性数据库模式与人员的关系图各种人员的数据视图不同的人员涉及不同的数据抽象级别,具有不同的数据视图,如下图所示1.4数据库管理系统数据库管理系统(DBMS)是指数据库系统中对数据进行管理的软件系统,是数据库系统的核心组成部分DBMS介于用户和操作系统之间,是一种通用的系统软件DBMS的主要功能数据库的定义功能数据库的操纵功能数据库的存储功能数据库的保护功能数据库的维护功能数据库定义功能DBMS一般提供数据定义语言(DDL)定义数据库的三级结构,包括外模式、模式和内模式及相互之间的映象;定义数据的完整性、安全控制等约束这些定义存于数据字典中,是DBMS存储和管理数据的依据DBMS根据这些定义,从物理记录导出全局逻辑记录,再从全局逻辑记录导出用户所检索的记录DDL——DataDefinitionLanguage数据操纵功能DBMS一般提供数据操纵语言(DML)实现对数据库数据的基本操作检索和更新(插入、修改和删除)DML——DataManipulationLanguageDML有两类:过程性DML:嵌入在主语言中使用非过程性DML:交互式命令语言,语法简单,可以独立使用数据存储功能DBMS存储管理子系统的功能是把各种DML语句转换为低层的文件系统命令,起到数据的存储、检索和更新的作用数据保护功能DBMS一般提供对数据的保护,包括数据库的恢复,并发控制、存取控制、完整性约束条件的检查和执行所有的操作都要在这些控制程序的统一管理下进行,保证数据库的正确有效数据库的维护功能包括数据库的装载、数据库的转储、恢复、重组织、系统性能监视、分析等功能由DBMS的实用程序来完成DBMS体系结构DBMS作为数据库系统的核心,所有访问数据库的请求都由DBMS来处理考察用户访问数据的过程,可以简单了解DBMS的主要组成部分与高级程序设计语言相似,作为数据库语言的一个实现的DBMS也有编译和解释两种实现方法下图表示一个解释执行的DBMS的结构解释执行的DBMS结构DBMS运行过程程序工作区返回状态DB的系统缓冲区数据库DBMS应用程序A对应的外模式模式内模式数据字典应用程序AOS运行日志12345678910用户访问数据的过程DBMS运行过程(9/1)Step1用户向DBMS发出调用数据库数据的命令Step2DBMS对命令进行语法检查、语义检查、存取权限检查,决定是否执行该命令Step3DBMS执行查询优化,把命令转换为一串单记录的存取操作序列DBMS运行过程Step4执行存取操作序列(反复执行以下各步,直至结束)Step5DBMS首先在缓冲区内查找记录,若找到转10,否则转6Step6DBMS查看存储模式,决定从哪个文件存取哪个物理记录DBMS运行过程Step7DBMS根据6的结果,向操作系统发出读取记录的命令Step8操作系统执行读取数据的命令Step9操作系统将数据从数据库存储区送到系统缓冲区DBMS运行过程Step10DBMS根据用户命令和数据字典的内容导出用户所要读取的数据格式Step11DBMS将数据记录从系统缓冲区传送到用户工作区Step12DBMS将执行状态信息返回给用户DBMS运行过程以上说明的是DBMS读取数据的过程,其它一些操作,如插入、删除、修改,其过程是类似的对于插入、删除操作,先找到相应记录所在位置,然后执行插入、删除操作对于修改操作,先要找到要修改的记录,进行完修改后,再把修改后的记录存储起来DBMS运行过程从DBMS执行的过程可以看出,解释方法具有灵活、应变性强的特点能保持较高的数据独立性,对在解释过程中发生的数据结构、存储结构的变化能够适应由于每次执行都要经过以上所有步骤,开销会很大,效率比较低。随着数据库技术的发展,这种方法已逐步被预编译方法所取代DBMS的预编译方法
预编译方法的基本思想,在运行以前,对将要执行的数据库语句进行编译处理,保存生成的可执行代码,需要运行时,取出保存的可执行代码加以执行当数据库中某些成分发生改变,使部分编译结果无效时,再对它们执行一次编译实践证明,预编译方法的主要优点在于执行效率高,系统开销小DBMS的进程结构
DBMS是管理数据库的软件系统,必须要在操作系统的支持下才能工作早期的计算机系统内存容量有限,DBMS常按功能划分为多个进程,但进程管理的开销较大随着计算机内存越来越大,DBMS进程的划分不再受内存限制,更多考虑的是结构是否合理以及性能否提高线程的概念
现代操作系统中引入线程的概念,作为程序并发执行的单位,分享CPU时间一个进程中可以创建多个可以切换的线程,为进程本身的并发执行提供了基础线程是比进程更小的运行单位,称为轻量进程(lightweightprocess),而进程则称为重量进程(heavyweightprocess)线程的优点
一个进程可划分为多个线程线程的创建、切换、通信等开销远比进程少线程为进程本身的并发执行提供了手段多线程DBMS
在单进程多线程结构的DBMS中,系统只创建一个DBMS进程当有用户申请数据库服务时,DBMS分配至少一个线程为之服务,多个线程并行工作,共享资源在支持多线程的系统中,线程管理功能可以由操作系统提供,也可以由DBMS进程扩充,最好由DBMS进程管理线程多线程DBMS
因为线程作为DBMS的调度单位,可以按照DBMS的需要按一定的调度算法调度用户请求由于调度算法是由DBMS设计与执行,因此比操作系统直接对这些请求进行调度高效,提高了DBMS的性能和可移植性多线程DBMS
由DBMS进程管理线程增加了DBMS的复杂性,还对操作系统提出以下两方面的新要求:提供非阻塞I/O(nonblockingI/O)和异步I/O(asynchronousI/O)功能支持“公平”调度(fairschedule)数据目录DBMS的功能是管理大量的、共享的、持久的数据,有关这些数据的定义和描述(即元数据)也需要长期保存在系统中数据目录(Catalog或Directory)是一组关于数据的数据,也称为元数据(meta-data)数据目录数据目录中存储下列信息关系:包括关系名、每个关系的属性名、属性的类型和长度视图:包括视图名字以及定义、完整性约束等用户:包括用户名、帐号、密码、访问权限等索引:包括索引名、被索引的关系名、索引涉及的属性、构造的索引类型等统计和描述数据:包括每个关系中元组的总数、存储方法、存储组织方式、存储的位置等数据目录数据目录的特点数据目录通常是自描述的,即还包括自身的定义和描述关系数据库中数据目录的组织通常与数据本身的组织相同数据目录按不同的内容在逻辑上组织为若干张表数据目录数据目录和一般数据的区别数据目录由系统定义并为系统所有,在初始化时由系统自动生成,而不可能用SQL之类的语句定义,因为在数据目录还未定义时,任何SQL语句都无法执行一般数据可以用SQL之类的语句定义,为用户所有
相对一般数据,数据目录的数据量较少,使用更频繁DBMS一般不允许用户对数据目录进行更新操作,而只允许用户有控制的访问数据目录作业P161.11.61.101.13第2章关系模型2.1基本概念2.2关系代数2.3关系演算2.1基本概念关系模型是以集合论中的关系(relation)概念为基础发展起来的数据模型,由IBM公司SanJose研究实验室E.F.Codd率先提出早期代表系统SystemR:由IBM研制INGRES:由加州Berkeley分校研制目前主流的关系数据库管理系统软件产品包括:IBMDB2UDB,Oracle,Informix,Sybase,MSSQLServer,MySQLAccess,Foxpro,Foxbase定义2.1:域(domain)是一组值的集合,同一个域中的所有值均应具有相同的数据类型例2-1:D1={袁玲,吴丹,刘杰}D2={男,女}D3={18,19}其中:D1(姓名)、D2(性别)和D3(年龄)为域名,分别表示“人员”关系中姓名、性别和年龄的可取值范围D1的基数m1=3,D2的基数m2=2,D3的基数m3=2域中元素一般无排列次序,如:D2={男,女}={女,男}关系的定义(9/8)定义2.2:域D1,D2,…,Dn上的笛卡儿积是一个集合:
D1×D2×…×Dn={(d1,d2,…dn)|di∈Di,1≤i≤n}
其中允许Di=Dj且i≠j,将该集合中的每一个元素(d1,d2,…dn)称为一个元组(tuple),元组中的每一个值di称为一个分量(component),有n个分量的元组称为n元组关系的定义关系的定义则D1、D2和D3的笛卡尔积可以表示成一张二维表,如表2-1所示。D1D2D3袁玲男18袁玲男19袁玲女18袁玲女19吴丹男18吴丹男19吴丹女18吴丹女19刘杰男18刘杰男19刘杰女18刘杰女19该笛卡尔积的基数为3×2×2=12,即共有12个元组,(袁玲、男、18)和(吴丹、女、19)就是元组,“袁玲”、“女”、“吴丹”、“19”就是分量。有时一个元组也被称为一条记录例2-2:已知三个域:D1={袁玲,吴丹,刘杰}D2={男,女}D3={18,19}定义2.3:D1×D2×…×Dn上的任意一个子集均是定义在域D1,D2,…Dn上的一个关系(relation),记为R由n个域构成的关系通常称为n元关系,关系中的每个元素即是这个关系的元组
关系的定义由于域可以相同,为了加以区分,必须为每列起一个名字,称为属性(Attribute)定义2.4:为关系的每个列所起的名字称为关系的属性,一般可表示为A,B,C…n目关系必有n个属性,表的任意一列对应一个属性,属性的名称称为“属性名”,具体元组的属性取值称为“属性值”
关系的定义定义2.5:如果一个关系中的某个属性或属性集能够唯一的确定一个元组,则称该属性(集)是这个关系上的超键(superkey,SK);如果将超键中的任一属性去掉后剩余的属性集不能唯一标识一个元组,则称该属性集是关系上的候选键(candidatekey,CK);通常从候选键中选择一个使用,这个候选键称为关系的主键(primarykey,PK)
关系的定义一般情况下,如不加特别说明,键即指主键。如果关系R1中的某个属性集是另外一个关系R2的候选键,那么该属性集对于关系R1而言是它的外键(foreignkey,FK)
关系的定义定义2.6:关系模式(relationschema)是对关系的型的描述,可以表示为:R(U,D,DOM,I,F)其中,U是R的属性集合{A1,A2,…,An},D是属性的取值范围,即域的集合{D1,D2,…,Dn},DOM是U到D的映射集合{A1→D1,A2→D2,…,An→Dn},I是完整性约束规则集,F是函数依赖集合习惯上将关系简记为R(A1/D1,A2/D2,…,An/Dn)或者R(A1,A2,…,An)
关系模式关系模式与关系关系可看作是关系模式在某一时刻的状态或内容,也就是说,关系模式是型,关系是值关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据
关系的特征(1)关系中不允许出现相同的元组(2)关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序(3)关系中属性的顺序是无关紧要的,即属性的顺序可以任意交换。交换时应连同属性名一起交换,否则将得到错误的关系(4)同一属性名下的各个属性值必须来自同一个域,是同一类型的数据(5)关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即他们的分量可以取自同一个域(6)关系中每个分量必须是不可分的数据项,或者说所有属性值都是原子的,是一个确定的值,而不是值的集合。属性值可以为空值,表示“未知”或“不可使用”,即不可“表中有表”关系的类型在关系数据库中,关系有以下三种类型:(1)基本表:实际存在的表,对应实际存储数据的逻辑表示(2)查询表:对基表查询得到的结果表(3)视图表:从基本表或其他视图中导出的表返回目录关系数据库在一个给定的应用领域中,所有关系的集合构成一个关系数据库关系数据库的型与值关系数据库的型:关系数据库模式对关系数据库的描述。关系数据库模式包括若干域的定义在这些域上定义的若干关系模式关系数据库的值:关系模式在某一时刻对应的关系的集合,简称为关系数据库关系模型的完整性(integrity)规则是为了保证数据的正确性和相容性而在关系上施加的约束条件
关系的完整性(1)域完整性约束元组分量在某个属性上的取值应在其值域之内;元组是否能在某个属性上取空值null,由该属性的语义决定
关系的完整性(2)实体完整性约束元组在键上的取值不可重复,且不能为null按照键的定义,如果不同的元组在键上取相同值或空值,则将无法区分两个不同的元组
关系的完整性(3)参照完整性约束属性集FK是关系R上的外键,属性集PK是关系S上的主键,FK引用PK,R和S可以是不同的关系,也可以是相同的关系。参照完整性约束要求R上的元组t在FK属性上的取值t[FK]必须是如下两种情况之一:
关系的完整性等于关系S中某个元组在主键PK上的值;取空值null;(4)用户定义的完整性约束用户定义的完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能
关系的完整性关系模型
关系模型(RelationModel)由一组相互联系的关系组成,是用二维表结构来表示实体与实体间的联系的模型关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成,如图所示:关系完整性约束关系数据库关系数据结构关系操作集合域-笛卡尔积-关系关系模式关系代数关系演算关系逻辑图
关系模型的组成部分
关系模型关系操作集合是指关系模型提供的一组完备的高级关系运算,这些关系运算支持对数据库的各种操作。关系运算通常分成关系代数和关系演算为简化分析,有时候也使用简化的关系模型,如图所示图
简化的关系模型数据定义语言(DDL)数据操纵语言(DML)数据控制语言(DCL)基本表、关系模式提供数据的存放格式提供数据库、表结构的定义、数据完整性提供对数据库、表结构的查询、修改等操作提供对数据库、表结构的授权等安全操作+++关系模型的优点单一的数据结构形式,具有高度的简明性和精确性逻辑结构和相应的操作完全独立于数据存储方式,具有高度的数据独立性关系模型使数据库的研究建立在比较坚实的数学基础上关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统的研究提供了方便关系数据语言一体化一般关系系统的数据语言都同时具有数据定义、数据操纵和数据控制语言,而不是分为几个语言。对象单一,都是关系,因此操作符也单一。而非关系型系统,如DBTG,有对记录的操作,有对系的操作非过程化用户只需提出“做什么”,无须说明“怎么做”,存取路径的选择和操作过程由系统自动完成面向集合的存取方式操作对象是一个或多个关系,结果是一个新的关系(一次一关系);非关系系统是一次一记录的方式关系数据语言抽象的查询语言关系代数用对关系的运算来表达查询,需要指明所用操作关系演算用谓词来表达查询,只需描述所需信息的特性元组关系演算谓词变元的基本对象是元组变量域关系演算谓词变元的基本对象是域变量关系数据语言具体系统中的实际语言SQL介于关系代数和关系演算之间,由IBM公司在研制SystemR时提出QUEL基于Codd提出的元组关系演算语言ALPHA,在INGRES上实现QBE基于域关系演算,由IBM公司研制2.2关系代数关系运算是关系数据库的数学基础,分为关系代数和关系演算两大类关系代数中运算对象是关系,运算结果也是关系,运算符包括四类:(1)集合运算符:∪(并),-(差),∩(交),×(广义笛卡尔积)(2)专门的关系运算符:σ(选择),π(投影),∞(连接),÷(除)(3)算术比较符:>(大于),≥(大于等于),<(小于),≤(小于等于),=(等于),≠(不等于)(4)逻辑运算符:∧(与),∨(或),┐(非)关系代数--记号给定关系模式R(A1,A2,…,An),设R是它的一个具体的关系,t
R是关系的一个元组分量设t
R,则t[Ai]表示元组t中相应于属性Ai的一个分量属性列Ai={Ai1,Ai2,…,Aik}{A1,A2,…,An},称A为属性列A表示{A1,A2,…,An}中去掉A后剩余的属性组t[Ai]=(t[Ai1],t[Ai2],…,t[Aik])选择运算定义在关系R中选择满足给定条件的元组(从行的角度)
F(R)={t|tR,F(t)=‘真’}F是选择的条件,
tR,F(t)要么为真,要么为假F的形式:由逻辑运算符连接算术表达式而成 逻辑表达式:,, 算术表达式:XY X,Y是属性名、常量、或简单函数 是比较算符,{,,,,,≠}选择运算:例ABC367257723443R
A<5(R)
ABC367257443
A<5
C=7(R)
ABC367257选择运算:例找年龄不小于20的男生
AGE≥20∧
SEX=‘male’(S)投影定义从关系R中取若干列组成新的关系(从列的角度)
A(R)={t[A]|tR},AR投影的结果中要去掉相同的行cbcfedcbaCBABCbcef
R
B,C(R)投影给出所有学生的姓名和年龄
SN,AGE(S)找001号学生所选修的课程号
C#(S#=001
(SC))并运算定义所有至少出现在两个关系中之一的元组集合R
S={r|r
R
r
S}R
S两个关系R和S若进行并运算,则它们必须是相容的:关系R和S必须是同元的,即它们的属性数目必须相同对
i,R的第i个属性的域必须和S的第i个属性的域相同并运算ABC367257723443RABC345723SABC367257723443345R∪S并运算示例求选修了001号或002号课程的学生号 方案1:∏S#(C#=001∨
C#=002(SC))
方案2:∏S#(C#=001(SC))∪∏S#(C#=002(SC))差运算定义所有出现在一个关系而不在另一关系中的元组集合R
S={r|r
R
r
S}R和S必须是相容的R
S差运算ABC367257723443RABC345723SABC367257443R-SABC367S-R差运算示例求选修了001号而没有选002号课程的学生号∏S#(C#=001(SC))-∏S#(C#=002(SC))交运算定义所有同时出现在两个关系中的元组集合R
S={r|r
R
r
S}交运算可以通过差运算来重写R
S=R
(R
S)=S-(S-R)R
S交运算ABC367257723443RABC345723SABC723R∩S交运算示例求同时选修了001号和002号课程的学生号错误的写法:∏S#(C#=001
C#=002(SC))正确的写法:∏S#(C#=001(SC))∩∏S#(C#=002(SC))广义笛卡尔积运算元组的连串(Concatenation)若r=(r1,…
,rn),s=(s1,…,sm),则定义r与s的连串为:定义两个关系R,S,其度分别为n,m,则它们的笛卡尔积是所有这样的元组集合:元组的前n个分量是R中的一个元组,后m个分量是S中的一个元组R
S的度为R与S的度之和,R
S的元组个数为R和S的元组个数的乘积rs=(r1,…
,rn,s1,…
,sm)R
S={rs|r
R
s
S}广义笛卡尔积运算AB
12rCD
10102010EaabbsAB
11112222CD
1019201010102010Eaabbaabbrx
s广义笛卡尔积运算
A=C(rxs)rxs
A=C(rxs)AB
11112222CD
1019201010102010EaabbaabbABCDE
122
102020aab广义笛卡尔积运算示例求数学成绩比王红同学高的学生89数学张军86数学王红93物理张军成绩课程姓名∏S.姓名(
R.成绩S.成绩R.课程=数学S.课程=数学R.姓名=王红
(R
S(R))R86数学王红86数学王红86数学王红R.成绩R.课程R.姓名89数学张军86数学王红93物理张军S.成绩S.课程S.姓名连接定义从两个关系的广义笛卡儿积中选取给定属性间满足一定条件的元组
A,B为R和S上度数相等且可比的属性列为算术比较符,为等号时称为等值连接
RS=
r[A]
S[B](
R×S)A
BA
BRS={rs|r
R
s
S
r[A]
S[B]}连接求数学成绩比王红同学高的学生。987654321CBADE3162ABCDE123311236245662
RSB<D
R
S∏S.姓名((课程=数学姓名=王红(R))(
课程=数学
S(R)))R.成绩<S.成绩自然连接定义从两个关系的广义笛卡儿积中选取在相同属性列B上取值相等的元组,并去掉重复的行自然连接与等值连接的不同自然连接中相等的分量必须是相同的属性组,并且要在结果中去掉重复的属性,而等值连接则不必。当R与S无相同属性时,RS=R×SRS={rs[B]|r
R
s
S
r[B]=S[B]}自然连接AB
12412CD
aababrB13123DaaabbE
s
11112
aaaab
ABCDErs自然连接(9/11)示例求001号学生所在系的名称∏DN(S#=001(S)DEPT)987654321CBACD3162
R
SABCD12314562
RS外连接例:列出所有教师的信息,包括姓名、工资、所教授的课程∏P#,PN,SAL,C#,CN((PROF)PCC)500李三P04600700800SAL孙立P03钱广P02赵明P01PNP#化学C03数学C02物理C01CN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《建设项目环境监察》课件
- 嘉峪关公路护栏施工方案
- 哈尔滨预制楼梯施工方案
- 呼和浩特房屋地基施工方案
- 减速路拱拆除施工方案
- 亳州别墅锌钢护栏施工方案
- 中专学校教学工作计划范文
- 2024年下半年商业计划书范文
- 某隧道工程施工组织设计方案
- 2024年四月份教学计划范文
- 顶管专项施工方案审查意见
- 高效数控机床加工一致性评价方法
- 2023北京西城初三(上)期末英语试卷参考答案
- 道路绿化养护投标方案(技术方案)
- 物业写字楼品质检查表(写字楼4个模块)
- 贲门失弛缓症
- 【基于双减背景下小学数学作业优化文献综述4500字】
- 读书分享读书交流会《中国民间故事》
- 国家开放大学电大中国古代文学(B)(2)形考任务4答案
- 跨省户口网上迁移告知单
- 重大消防安全风险管控责任清单(消防给水及消火栓系统、用电管理、用火、动火管理)
评论
0/150
提交评论