数据库原理及应用课件_第1页
数据库原理及应用课件_第2页
数据库原理及应用课件_第3页
数据库原理及应用课件_第4页
数据库原理及应用课件_第5页
已阅读5页,还剩630页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章概念模型与数据模型利用模型对事物进行描述是人们在认识改造世界过程中广泛采用的一种方法,如汽车、飞机模型等。模型可更形象直观揭示事物的本质特征,使人们对事物有一个更全面深入的认识,从而帮助人们更好地解决问题。是否在进行数据库系统设计时也可以利用模型来帮助我们完成工作呢?如果可以,我们利用何种模型呢?第2章目录2.1概念模型和ER图2.2数据模型概述2.3层次数据模型2.4网状数据模型2.5关系数据模型2.6面向对象数据模型2.7

数据库工程2.8小结2.9习题2.1概念模型为了能把现实世界的具体事物抽象组织为某一个DBMS支持的数据模型,首先需要对这一管理活动所涉及到的各种资料数据及其关系有一个全面的清晰的认识,并通过采用概念模型来描述。概念模型是现实世界到机器世界的中间层次。概念模型用ER图来描述。2.1概念模型的相关内容2.1.1客观世界的抽象过程2.1.2概念模型的几个概念2.1.3联系(relationship)2.1.4三种联系比较2.1.5三种联系的关系2.1.6实体联系图(Entity-RelationshipApproachER图)表示方法2.1.7不同联系的表示2.1.8ER图的设计方法2.1.9ER图综合实例一2.1.10ER图综合实例二2.1.11学校ER图2.1.12物资管理ER图2.1.13课程管理ER图2.1.1客观世界的抽象过程2.1.2概念模型的几个概念实体(entity)是客观存在并可相互区别的事物。实体可以是具体的人事物,也可以是抽象的概念和联系。属性(attribute)是实体所具有的某一特性。一个实体由若干个属性的描述。码(key)是唯一标识实体的属性或属性集。如学号。域(domain)是属性的取值范围。实体型(entitytype)用实体名及其属性名集合来抽象和描述同类实体,称为实体型。如学生(学号,姓名,性别,出生年份)。实体集(entityset)是同型实体的集合称为实体集。如全体学生,全体职工。2.1.3联系联系(relationship)是现实世界中普遍存在的。在信息世界中,它反映为实体内部和实体之间的联系。实体内部联系通常是指组成实体的各属性之间的联系,如出生年份和年龄,总成绩和各科成绩。两实体型之间的联系可分为三类:1:1联系,例如,班级和班长;1:n联系,例如,班级和学生;m:n联系,例如,课程和学生。2.1.4三种联系比较1:1联系1:n联系m:n联系定

义如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A和实体集B具有一对一联系,记为1:1。如果对于实体集A中的每一个实体,实体集B中有n个实体(n>=0)与之联系,反之,实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A和实体集B具有一对多联系,记为1:n。如果对于实体集A中的每一个实体,实体集B中有n个实体(n>=0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m(m>=0)个实体与之联系。则称实体集A和实体集B具有多对多联系,记为m:n。例

班级和班长班级和学生课程和学生2.1.5三种联系的关系一对一联系是一对多联系的特例,一对多联系是多对多联系的特例。两个以上的实体型之间同样存在一对一、一对多和多对多联系。如教师、课程、参考书。同一实体集内各实体之间也存在一对一、一对多和多对多联系。如职工实体集中存在领导与被领导关系1:n。2.1.6ER图表示方法实体名联系名学生组成班级学生1n属性名出生日期性别姓名学号人数2.1.7不同联系的表示两个不同型实体间的联系两个不同型实体间的多种联系职工与工程间,一个职工可以参加多个工程,一个工程可以有多个职工参加,同时一个工程由一个职工负责,一个职工可以负责多个工程。

两个以上实体间的多元联系施行社和景点及游客三个实体间存在三元联系同一实体内部个体间的二元联系

2.1.8ER图的设计方法大体应遵两条原则:①针对每一用户作出该用户信息的局部ER图,确定该用户的实体、属性、联系。注意,能作为属性的就不作为实体,利于简化ER图。②综合局部ER图,生成总体ER图。在综合过程中,同名实体只能出现一次,还要去掉不必要的联系,以消除冗余。一个系统的ER图不是惟一的,强调不同的侧面作出的E-R图可能有很大不同。2.1.9ER图综合实例一1.学校有若干系,每个系有若干班级和教职室,每个教职室有若干教员,其中有的教授和副教授各带若干研究生.每个班级有若干学生,每个学生选修若干课程,每门课程可由若干学生选修.用E-R图画出该校的概念模型.(参考答案)2.在物资管理中,一个供应商为多个项目供应多种零件,一种零件只能保存在一个仓库中,一个仓库中可保存多种零件,一个仓库有多名员工值班,由一个员工负责管理.画出该物资管理系统的E-R图.(参考答案)2.1.10ER图综合实例二3.在活期存款业务中,设一个储户可在多个储蓄所存取款,画出该E-R图.(参考答案)4.在课程管理系统中,涉及到班级,学生,课程,教师,参考书等实体,假设,一个教师只可上一门课程,一门课程可由多个教师讲授,可使用多本参考书,画出该系统的概念模型。(参考答案)2.1.11学校ER图系部学生教研室教员班级课程选修组成组成组成组成讲授1m1111mmmmmmn指导mn成绩2.1.12物资管理ER图(1)实体及属性图略(2)实体及联系图如下2.1.13课程管理ER图(1)实体属性图(画二个,其余略)(2)实体及联系图如下组成成绩班级选修课程班级学生讲授mn111nnmn学生出生日期性别姓名学号所属系班级号讲授参考书教师2.2数据模型模型分两个不同的层次。第一种是概念模型,也称信息模型,是按用户的观点对数据和信息建模。另一种是数据模型。数据模型应满足三方面的要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。数据模型是数据库系统的核心和基础。各种DBMS软件都是基于某种数据模型。2.2数据模型的内容2.2.1数据模型构成三要素2.2.2数据结构2.2.3数据操作2.2.4完整性约束2.2.5数据模型的种类2.2.1数据模型构成三要素任何一种数据模型一般都是严格定义的概念的集合。这些概念必须能准确是描述系统的静态特征、动态特征和完整性约束条件。数据模型由数据结构、数据操作和完整性约束三个要素组成。2.2.2数据结构数据结构用于描述数据的静态特征。数据结构是所研究的对象类型的集合,是刻画一个数据模型最重要的方面。通常可以按数据结构的类型来命名数据模型,可分为:网状模型、层次模型、关系模型、面向对象模型。2.2.3数据操作数据操作用于描述数据的动态特征。数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则,主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须准确地定义这些操作的确切含义、操作符号、操作规则(优先级)以及实现操作的语言。2.2.4数据的约束条件数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。如:年龄小于38,学生不及格课程少于3门。数据模型应该反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。例如,在关系模型中,任何关系都必须满足实体完整性和参照完整性两个条件。此外,数据模型还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。

实体完整性即指每一实体必须是可分的,它的主码是唯一的,如学号不能重复。

参照完整性是指外码的值要么为空,要么为另一个数据库中已有的值。如一个学生的专业不能是专业库中没有的记录2.2.5数据模型种类按数据结构分,目前可分为:1.层次模型2.网状模型3.关系模型4.面向对象模型2.3层次模型现实中很多实体呈现层次关系,如行政机构,因此,层次模型是数据库系统最早采用的数据模型。层次模型用树状结构表示实体及实体间的联系。层次模型最具代表性的系统是IBM的IMS。本节介绍层次模型的概念、构成和优缺点。2.3层次模型2.3.1基本层次关系2.3.2层次模型的概念和结构2.3.3层次数据模型例2.3.4层次模型的完整性约束2.3.5层次模型的优点2.3.6层次模型的缺点2.3.1基本层次关系非关系模型中,实体用记录表示,实体之间的联系转换为记录间的两两联系,非关系型数据结构的基本单位是基本层次联系。基本层次联系是指两记录以及它们之间的一对多(包括一对一)的联系。RjRi一对多联系名子女结点双亲结点Lij2.3.2层次模型的概念R0R1R21R22R12R11R2根结点为:R0。R0的子结点有:R1,R2。R1,R2为兄弟结点。R11、R12的父结点是:R1。特征:(1)只有一个无双亲的根结点;(2)其他结点有且只有一个双亲。

2.3.3层次数据模型例2.3.4层次模型的完整性约束在插入时,不能插入无双亲的子结点,如新来的教师未分配教研室则无法插入到数据库中。在删除时,如删除双亲结点,则其子女结点也会被一起删除。如删除某个教研室则它的所有教师也会被删除。在更新时,应更新所有相应的记录,以保证数据的一致性。2.3.5层次模型的优点数据模型简单,只需几条命令就能操纵数据,易使用;若实体间的关系固定,性能优于关系模型;具有良好的完整性支持。2.3.6层次模型的缺点1.有一定存取路径,仅允许自顶向下单向查询,查询非对称性。2.适合表示记录间一对多联系,而描述非层次性很笨拙,多对多和多对一联系的表示法会出现数据冗余。3.语义完整性差,数据依赖性强,须通过双亲才能找到子结点。4.同一实体联系模型可以构造出许多层次模型,而对不同的模型同一查询的表达方式就不同,因此用户必须了解模型的结构。5.插入和删除操作限制较多。6.由于结构严密,层次命令趋于程序化。2.4网状模型现实世界中实体间的联系更多的是非层次关系。

最具代表性的网状DBMS:CODASYL系统或DBTG系统。1971年4月CODASYL(ConferenceOnDataSystemLanguage)组织通过DBTG(DataBaseTaskGroup)报告(和其后的修改文件)规范的系统,大部分网状数据库系统在不同程度上实现了DBTG报告。

2.4网状模型2.4.1概念与结构2.4.2网状模型其它结构2.4.3网状模型示例2.4.4完整性约束2.4.5网状模型的优点2.4.6网状模型的缺点2.4.1网状模型的概念与结构网状结构特点:1.允许多个结点无双亲,即根结点可以有多个;2.一个子结点可以有两个或多个父结点。R1R2R3R5R8R4R6R73.两个结点间可有两种或多种联系(复合联系)。4.可能有回路存在。树父母子女种植砍伐养育赡养学生宿舍学生教研室专业系教师(a)(e)(d)2.4.2网状模型其它结构学生课程父亲子女(c)(b)人2.4.3网状数据模型示例2.4.4网状模型的完整性约束操纵特点是:1.允许插入无双亲的子结点。2.允许只删除双亲结点,其子结点仍在。3.更新操作较简单,只需更新指定记录即可。4.查询操作可以有多种方法实现。网状模型没有层次模型那样严格的完整性约束条件,但具体的某一个网状数据库系统提供了一定的完整性约束,对数据操纵加以一些限制。

2.4.3网状模型优点网状模型的优点包括:1.能够直接描述现实世界;2.查询方便,对称结构、查询格式相同;3.操作功能强、速度快,存取效率较高。2.4.3网状模型缺点网状模型的缺点包括:1.数据结构及其对应的数据操作语言极为复杂。2.数据独立性差,由于实体间的联系是通过存取路径来指示的,因此程序访问时要指定存取路径,程序设计困难。

2.5关系模型关系模型由IBM公司的E.F.Codd于1970年在论文“大型共享系统的关系数据库的关系模型”中首次提出。20世纪80年代以来,关系数据库系统(RDBMS)的代表有systemR(IBM)、Ingres、QBE。关系型数据库系统当前已成为数据库系统的主流。现在广泛使用的RDBMS有:Oracle、Sybase、Informix、DB2、SQLServer、Acess、Fox系列数据库等。

2.5关系模型2.5.1关系模型的结构2.5.2关系模型的概念2.5.3数据库中的表/关系2.5.4关系模型的完整性约束2.5.5关系模型的优点2.5.6关系模型的缺点2.5.1关系模型的结构学号姓名性别年龄籍贯9801张明男20江苏9802刘红女19山东9803王明女20北京9839张立男18陕西学生人事记录表关系名关系元组(行)属性(列)主码男女域分量关系模式:学生(学号、姓名、性别、年龄、籍贯)属性名2.5.2关系模型的概念主码:表中可唯一确定一个元组的属性组域:属性的取值范转围分量:元组中的一个值关系:表元组:表中一行属性:表的一列学号姓名性别系别年龄籍贯98001张飞男信息管理20长沙98002李丽女信息管理19岳阳关系模式:对关系的描述关系模式表示:关系名(属性1,属性2,属性3……)2.5.3数据库中的表/关系学号 姓名 专业 选修课程 任课教师9003105 张鹏 计算机应用 计算机系统结构 唐飞9003212 吴俊武 计算机软件 数据结构 王小栋9003223 廖凯 计算机软件 程序设计语言 陆非9003214 李娜 计算机软件 形式语言 蒋涛… … … … … 学生选课登记表表、关系:由关系模式和元组构成值域:列数据的取值范围如,十个汉字以内的文字串关系模式:由表名和属性名构成如,学生选课登记表(学号,姓名,专业,选修课程,任课教师)列、字段、属性、数据项:列有名称(属性名),有值/数据(数据项)如,属性名为“专业”,数据项为“计算机应用”,“计算机软件”行、元组、记录:由数据构成表名:学生选课登记表如,(9003212,吴俊武,计算机软件,数据结构,王小栋)(9003223,廖凯,计算机软件,程序设计语言,陆非)2.5.4关系模型的完整性约束1.域完整性规则。属性取值必须取自于值域;属性是否能取空值由其语义决定。域完整性是最基本的约束。2.实体完整性规则。主关键字值必须是唯一的且任何组成成份都不能是空值。3.引用完整性规则(参照完整性规则)。设D是一个主域,R1是一个关系,它有一个在这个域D上定义的属性A。那么在任何时刻,R1中A的每个值或者为空值,或者为以A为主关键字的某个关系R2中的一个主关键字值(R1和R2可以相同)。4.用户自定义完整性。是RDBMS提供给用户的一种灵活的完整性保护措施。当需要对数据库增、删、改时,用户可通过触发器等措施保证数据的完整性和一致性。

2.5.5关系模型的优点建立在严格数学概念基础上,有严格的设计理论。概念单一、结构简单直观、易理解、语言表达简练。描述一致,实体和联系都用关系描述,查询操作结果也是一个关系,保证了数据操作语言的一致性。利用公共属性连接,实体间的联系容易实现。由于存取路经对用户透明,隐蔽存取路径,数据独立性更高,安全保密性更好。2.5.6关系模型的缺点由于存取路经对用户透明,查询效率不高,速度慢,需要进行查询优化。采用静态数据模型。

2.6面向对象数据模型20世纪90年代来,随着应用需求的不断变化,关系型数据库不断向前发展。在关系型基础上,引入面向对象技术,从而使关系型数据库发展成为一种新型的面向对象关系型数据库。面向对象关系型数据库在信息系统中已广泛应用。2.6面向对象数据模型2.6.1开发信息系统的新要求2.6.2传统数据库技术的缺陷2.6.3面向对象关系模型2.6.4面向对象关系模型优缺点2.6.5四种数据模型比较2.6.1开发信息系统的新要求新应用需求对数据库技术提出了新的要求:缩小信息系统的开发周期;降低开发成本;增强易维护性和开放性;应用发展要求实现数据模拟和行为模拟。2.6.2传统数据库技术的缺陷传统数据库技术开始表现出明显不足:

1.数据对象简单。只能检索一组数值或短符号域,属性组成的记录和由同质记录组成的集合,无复杂的嵌套数据和复杂数据。2.对象之间的关系简单,不能实现实体间聚合、继承等复杂联系。3.一致约束不完全,只能预定时机检查。4.事务短寿,并发控制机制简单。如何克服传统数据库技术的不足,解决方法是引入一种新的数据处理技术,将数据技术与面向对象技术相结合。

2.6.3面向对象关系模型1.对象。是现实世界的实体和概念。由属性和操作(方法)构成。属性表示对象的状态、组成和特征。操作表示对象的行为。每一个对象在系统种都有一个唯一不变的标识(OID)。2.类与实例。由类可生成多个实例。实例继承了类的所有属性及方法,例如所有的学生是一个类,包括学生所有属性及操作方法,如学号、姓名、查询成绩等。具体某个学生是一个实例,如张三,他继承了学生类所有属性和方法。

3.继承与类结构。继承可提高代码可重用性。对于父类或基类的类结构,在其子类或派生类中都可得到有效的继承。2.6.4面向对象关系模型优缺点1.优点:不仅能存储数据,而且存储了定义在数据上的操作;能处理对象之间复杂的引用和约束关系,并能通过复合对象定义嵌套结构的数据类型;提供很强的模型扩展能力,数据模型改变时应用程序仍能正常工作。将对象作为一个整体来存储和检索节省开销。2.缺点:技术尚不成熟,无完全支持的DBMS产品。2.6.5数据模型比较(1)层次模型网状模型关系模型面向对象模型定义满足:(1)只有一个结点没有双亲结点,称为根结点;(2)根以外的其它结点有且只有一个双亲结点允许有一个以上的结点没有双亲结点;允许结点有多个双亲结点,此外,还允许两个结点之间有多种联系。一个列不可再分的二维表。支持类、对象、继承等概念的数据模型。实例行政机构、家族关系广泛存在学生、课程学生类2.6.5数据模型比较(2)层次模型网状模型关系模型面向对象优点1.简单,命令少,易操纵。2.实体间联系固定的应用系统,层次模型性能优于关系模型,不次于网状模型。3.良好完整性支持1.能更直接地描述现实世界。2.具有良好性能,存取效率高。1.建立在严格数学概念基础上。2.概念单一数据结构简单清晰。3.存取路径透明,数据独立性更高。存储数据和操作。能定义嵌套结构。很强的模型扩展能力。节省开销。缺点表示非层次性不利。插入删除限制较多。查询子女结点须通过双亲结点。命令趋于程序化。其DDL语言极其复杂。数据独立性差。查询效率不如非关系型,需要对查询优化。技术尚不成熟,无完全支持的DBMS产品。2.7数据库工程过去信息系统开发的失败率很高,效果不理想。开发数据库应用系统必须按照工程化方法完成。应用软件工程的思想。先规划再按照严格的步骤完成。加强项目管理。本节介绍数据库工程的基础知识。2.7数据库工程2.7.1数据库设计的目标与特点2.7.2数据库设计方法2.7.3规划阶段2.7.3数据库设计步骤2.7.4数据库应用2.7.5数据库管理员(databaseadministrator,DBA)的职责2.7.1数据库设计的目标与特点数据库设计信息需求DBMS特点数据模式应用系统处理需求软硬件环境数据库结构(数据)设计行为(处理)设计1.设计任务:在DBMS的支持下,按照应用系统的要求,为某一部门或组织设计一个结构合理、使用方便、效率较高的数据库及其应用系统。2.设计内容:数据结构设计和行为处理设计3.设计特点:重视数据结构设计和行为处理设计2.7.2数据库设计方法:规范设计法规范设计法即运用软件工程的思想与方法,根据数据库设计的特点,按照相应的设计准则和设计规程进行设计。1.设计核心与关键:逻辑数据库设计和物理数据库设计。2.新奥尔良方法:将数据库设计分为四个阶段需求分析、概念设计、逻辑设计、物理设计3.S.B.Yao的六个步骤:需求分析、模式构成、模式汇总、模式重构、模式分析和物理数据库设计。4.手工设计和计算机辅助设计2.7.3规划阶段确定系统范围系统开发的目标功能和性能系统所需资源估计开发成本确定实施计划和进度分析可能的效益;确定系统设计的原则和技术路线;选择用户环境及网络结构。2.7.4数据库设计步骤应注意问题:(1)注意调动用户积极性。用户积极参与是库设计成功的关键因素之一。(2)充分考虑系统的可扩充性,使设计易于变动。(3)系统的可扩充性最终是有一定限度的。当应用环境和应用需求发生巨大变化时,原设计方案可能最终无法再扩充,必须推倒重来。概念结构设计逻辑结构设计数据库物理设计数据库实施数据库运行维护需求说明概念结构逻辑结构物理结构数据库系统数据说明需求分析2.7.5数据库应用层次

(图)数据库系统中不同用户的数据视图外模式i模式内模式应用系统DB外模式I/模式模式/内模式DBMSOS最终用户应用程序员DBA系统分析员使用对象数据抽象级别软件层次2.7.6数据库管理员(databaseadministrator,DBA)的职责(1)设计与定义数据库系统。(2)帮助最终用户使用数据库系统。(3)监督与控制数据库系统的使用和运行。(4)改进和重组数据库系统,调优数据库系统的性能。(5)转储和恢复数据库。(6)重构数据库。2.8小结概念模型是现实世界在人头脑中的反映。人们用ER图来描述概念模型。

ER图叫实体联系图,分局部ER图和整体ER图。按数据结构,数据模型分四种:层次模型、网状模型、关系模型和面向对象模型。层次和网状是非关系型。关系模型当前最常用。面向对象模型是关系模型中引入面向对象技术。要按数据工程的思想进行数据库设计。开发数据库系统先要进行规划,再进行数据库设计。数据库设计分六步进行:需求分析、概念结构设计、逻辑结构设计、物理结构设计、实施、运行维护。2.9习题2.1一种产品由多种零件组成,画出产品零件的概念模型。(答案)2.2在活期存款业务中,设一个储户可在多个储蓄所存取款,画出该E-R图。2.3在物资管理中,一个供应商为多个项目供应多种零件,一种零件只能保存在一个仓库中,一个仓库中可保存多种零件,一个仓库有多名员工值班,由一个员工负责管理.画出该物资管理系统的E-R图。2.4简述数据模型的构成。(答案)2.5简述四种数据模型的特点。第3章关系数据库1970年IBM公司E.F.Codd的多篇论文提出关系数据库理论。20世纪80年代以来,RDBMS已成为应用主流。RDBMS以关系代数和集合论为基础,有严谨的数学基础。RDBMS有:Oracle、Sybase、Informix、DB2、SQLServer、Acess、Fox系列等。RDBMS仍在向前发展。本章主要介绍关系数据库的基本概念和原理。第3章关系数据库本章分七节:3.1关系数据结构3.2关系数据库的完整性3.3关系数据库操作概述3.4关系代数语言3.5关系数据库管理系统(RDBMS)3.6小结3.7习题3.1关系数据结构关系数据结构是:二维表一个关系数据库可包含多张二维表,表与表间通过属性发生联系。关系数据结构包含很多概念。本节详细介绍关系数据结构的概念。理解这些概念是学习关系数据库的基础。3.1关系数据结构3.1.1关系数据模型回顾3.1.2域3.1.3

笛卡尔积3.1.4关系数据结构--关系3.1.5关系的相关概念3.1.6关系的性质3.1.7关系模式3.1.8关系数据库模式例3.1.1关系模型回顾关系数据库系统是支持关系模型的数据库系统。关系数据结构为二维表。关系操作是集合操作,操作的对象和结果都是集合,一次一集合,而非关系一次一记录。常用操作类型有:查询(选择、投影、连接、除、并、交、差)、增、删、改。关系操作语言有:(1)关系代数语言(如ISBL);(2)关系演算语言(元组关系演算语言,如APLHA、QUEL。域关系演算语言,如QBE);(3)结构化查询语言SQL(structurequerylanguage):包括DDL、DML、DCL。关系完整性约束:实体完整性、参照完整性、用户自定义完整性。3.1.2域(domain)域是一组具有相同数据类型的值的集合。例如:所有整数、实数、。在设置关系属性时,必须指定属性的域。由域可构成域完整性。3.1.3笛卡尔积笛卡尔积:给定一组域D1,D2….Dn,这些域可以完全不同,也可以部分或全部相同,D1,D2….Dn的笛卡尔积为:D1×D2×

….×Dn={(d1,d2….,dn)|di∈Dj,j=1,2…,n}其中每个元素(d1,d2….,dn)叫作一个n元组(n-tuple),元素中的每个值di叫作一个分量(component)。若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×

….×Dn的基数为:

n

m=∏mii=13.1.4关系数据结构--关系故笛卡尔积可表示一个二维表,表中的每行对应一个元组,表中的每列对应一个域.笛卡尔积中许多元组无实际意义,从中取出有实际意义的元组便构成关系。定义:D1×D2×

….×Dn的子集叫作域D1,D2….Dn上的关系,用R(D1,D2….Dn)表示。R表示关系,n是关系的目或度。关系中的每个元素是关系中的元组,通常用t表示。3.1.5关系的相关概念元组:关系是笛卡尔积的子集,是一个二维表,表的每行对应一个元组,属性:每列对应一个域(称为属性)。候选码:关系中能唯一地标识一个元组的属性组。主码:从关系的多个候选码中选定一个为主码,主码的诸属性叫主属性。非码属性:不包含在任何候选码中的属性称为非码属性。全码:关系模式的候选码由所有属性构成,称为全码(all-key)。

关系类型:基本关系(基本表)、查询表和视图表。3.1.6基本关系的性质①列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。②不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名③列的顺序无所谓,即列的顺序可以任意交换。④任意两个元组不能完全相同。⑤行的顺序无所谓,即行的顺序可以任意交换。⑥分量必须取原子值,即每个分量必须是不可再分的数据项。3.1.6关系性质1——同质的列学号姓名性别年龄曾用名9901张三男20张狗子9902李四女18李朋王五9903119王麻子9904赵六21981/2/28赵薇3.1.6关系性质2—不同的属性名学号姓名性别年龄姓名9901张三男20张狗子9902李四女18李朋9903王五男19王麻子9904赵六女20赵薇姓名2曾用名3.1.6关系性质3—属性无序学号姓名性别年龄曾用名9901张三男20张狗子9902李四女18李朋9903王五男19王麻子9904赵六女20赵薇学号姓名曾用名性别年龄9901张三张狗子男209902李四李朋女189903王五王麻子男199904赵六赵薇女203.1.6关系性质4—元组不重复学号姓名性别年龄姓名9901张三男20张狗子9902李四女18李朋9903王五男19王麻子9904赵六女20赵薇9901张三男20张狗子重复的元组重复的元组!3.1.6关系性质5—元组无序学号姓名性别年龄9901张三男209902李四女189903王五男199904赵六女20学号姓名性别年龄9904赵六女209901张三男209903王五男199902李四女183.1.6关系性质6—分量是原子父母孩子李男王男丁女肖女李一李二王一父母孩子大小李男王男丁女肖女李一王一李二父母孩子李男李男王男丁女丁女肖女李一李二王一父母大孩小孩李男王男丁女肖女李一王一李二非规范化关系规范化关系3.1.7关系模式定义:关系模式是对关系的描述,表示为R(U,D,DOM,F)。R为关系名,U为属性的集合,D为属性的域,DOM为属性向域的映象集合。F为属性间数据的依赖关系集合。关系模式可简记为:R(U)或R(A1,A2,….,An)。在一个给定的现实世界领域中,相应的所有实体及实体之间的联系的集合构成一个关系数据库。关系数据库的型称为关系数据库模式,关系数据库的值是关系模式在某一时刻对应的关系的集合。关系是关系模式在某一时刻的状态和内容,关系模式是型,关系是值。关系模式是静态的、稳定的。而关系是动态的、变化的。实际中,常把关系模式和关系统称为关系。3.1.8关系数据库模式例整个数据库某关系的结构某关系的实例3.2关系数据库的完整性完整性是数据模型的一个非常重要的方面。关系数据库从多个方面来保证数据的完整性。在创建数据库时,需要通过相关的措施来保证以后对数据库中的数据进行操纵时,数据是正确的、一致的。关系数据库提供:实体完整性、参照完整性、用户定义的完整性。本节介绍三种完整性最基本的措施。3.2关系数据库的完整性3.2.1实体完整性3.2.2参照完整性3.2.3用户定义的完整性3.2.1实体完整性1.实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。2.注意:是基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。3.如:选修(学号,课程号,成绩)则,(学号,课程号)为主码,则学号和课程号都不能取空值。3.2.1实体完整性示例:关系键学号课程号成绩9901990199029903C1C2C2C390807080学号姓名年龄性别所在系9901990299039904张三李四王五赵六20181920男女女男计算机计算机计算机计算机3.2.2外码--参照完整性外码:设F是基本关系R的一个或一组属性,但不是R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码,并基本关系R为参照关系,基本关系S为被参照关系。关系R和S不一定是不同的关系。参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同关系),则对于R中每一个元组在F上的值必须为:或者取空值(F的每个属性均为空值);或者等于S中某个元组的主码值。3.2.2外码--参照完整性示例1例1:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专)学生关系--专业号-->专业关系例2:学生(学号,姓名,性别,专业号,年龄,班长)。班长必须是存在的学生的学号。3.2.2参照完整性例2:外部关系键学号姓名所在系9901990299039904张三李四王五赵六计算机计算机计算机计算机课程号课程名学时数C01C02C03C04高等数学数据结构操作系统数据库100708060学号课程号成绩99019901990299049904C01C02C04C04C039080908570学生关系课程关系学习成绩关系外部键外部键主键主键3.2.2参照完整性示例3职工号部门编号姓名…9801980298039804980501010203张三李四王五赵六钱七部门编号部门名称…01020304经理办公室人事部公关部技术部职工表(R2)部门表(R1)主关系键外部关系键3.2.3用户定义的完整性1是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。如规定某一属性取值范围在0-100之间。可在定义关系结构时设置,还可通过触发器、规则等来设置。在开发数据库应用系统时,设置用户定义的完整性是一项非常重要的工作。3.2.3用户定义的完整性23.3关系数据库操作概述关系操作采用集合操作方式,操作的对象和结果都是集合,即操作方式是一次一集合(set-at-a-time),非关系数据库的操作是一次一记录(record-at-a-time)。关系数据库操作涉及:操作内容、使用语言及实现方法。3.3关系数据库操作3.3.1关系操作的内容3.3.2RDBS基本操作3.3.3关系数据操作语言3.3.1关系操作的内容关系模型常用的操作包括增、删、改和查询。查询包括选择、投影、连接、除、并、交、差等。关系操作包括五个基本操作:A.关系的属性指定B.关系的元组选择C.两个关系的合并D.关系中元组的插入E.关系中元组的删除。3.3.2RDBS基本操作RDBS一般向用户提供四种基本操作功能。1.数据查询:即查询关系数据库内的数据,包括单表查询和多表查询。查询包括三个基本操作:一个关系内属性的指定、一个关系内元组的选择、两个关系的合并。2.数据插入,即在关系内插入一些新的元组。3.数据删除,即在关系内删除一些元组。4.数据修改,即在关系内修改一些元组的内容并保存。包括两个基本操作,首先删除数据,而后插入数据。3.3.3关系数据操作语言操作语言分为两类:一是查询语句,用于描述用户要进行的各种查询操作;二是非查询语句,用于描述用户要进行的插入、删除、修改等操作。

关系运算体系:所有以关系为运算对象的一组运算符及其对应运算规则的合称。包括关系代数和关系演算,关系演算又包括元组演算和域演算。

3.4关系代数语言关系代数语言是关系运算的数据基础。关系代数语言使用数学公式的形式。本节讲述用它来对关系进行操作。3.4关系代数语言3.4.1关系运算符3.4.2几个特殊符号3.4.3传统的关系运算--并3.4.4传统的关系运算--交3.4.5传统的关系运算--差3.4.6传统关系运算--广义笛卡尔积4.4.7传统集合运算例题3.4.8成绩管理数据库3.4.9专门关系运算:选择3.4.10专门关系运算:投影3.4.11专门关系运算:连接3.4.12专门关系运算:除3.4.13练习:用关系代数完成操作3.4.1关系运算符1.集合运算符:∪并、—(差)、∩(交)2.专门关系运算符:×、δ、∏、∞、÷、3.比较运算符:>、≥、<、≤、=、≠4.逻辑运算符:非、∧与、∨或3.4.2几个特殊符号(1)t[Ai]:设关系模式为R(A1,A2,…,An)。它的一个关系设为R。t∈R表示t是R的一个元组。则t[Ai]表示元组t中相应于属于性Ai的一个分量。(2)t[A]:若A={Ai1,Ai2,…,Ain},其中Ai1,Ai2,…,Aik是Ai1,Ai2,…,Ain中的一部分,则A称为属性列或域列,-A表示—{Ai1,Ai2,…,Ain}中去掉{Ai1,Ai2,…,Aik}后剩余的属性组。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t在属性列A上诸分量的集合。(3)trts:R为n目关系,S为m目关系。tr∈R,ts∈S。trts称为元组的连接。它是一个(n+m)列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。(4)象集Zx:全定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集为:Zx={t[Z]|t∈R,t[X]=x},它表示R中属性组X上值为x的诸元组在Z上分量的集合。3.4.3传统关系运算—并传统关系运算包括:并、交、差、广义笛卡尔积。1.并:设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并由属于R或属于S的元组组成,其结果仍为n目关系。记为:

R∪S={t|t∈R∨t∈S}S

R∪ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1RSR∪S3.4.4传统关系运算—交3.交:设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的交由属既于R又属于S的元组组成,其结果仍为n目关系。记为:

R∩S={t|t∈R∧t∈S}R∩SABCa1b2c2a2b2c1R∩SABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RS3.4.5传统关系运算—差2.差:设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的差由属于R而不属于S的元组组成,其结果仍为n目关系。记为:

R—S={t|t∈R∧-t∈S}R-SABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSABCa1b1c1R—S3.4.6传统关系运算—广义笛卡尔积4、广义笛卡尔积:两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。记为:

R×S={trts|tr∈R∧ts∈S}

R×S3.4.6广义笛卡尔积例ABCABCa1b1c1a1b2c2a1b1c1a1b3C2a1b1c1a2b2C1a1b2c2a1b2c2a1b2c2a1b3C2a1b2c2a2b2C1a2b2c1a1b2c2a2b2c1a1b3C2a2b2c1a2b2C1R×SABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RS3.4.7传统集合运算例题ABCa1b2c2a2b2c1R×SR—SR∩SR∪SABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSABCABCa1b1c1a1b2c2a1b1c1a1b3C2a1b1c1a2b2C1a1b2c2a1b2c2a1b2c2a1b3C2a1b2c2a2b2C1a2b2c1a1b2c2a2b2c1a1b3C2a2b2c1a2b2C1ABCa1b1c1ABCa1b1c1a1b2c2a1b3c2a2b2c13.4.8成绩管理数据库例:在一个学生课程关系数据库中,包括学生关系student,课程关系course,选修关系SC,数据结构如下:1.学生:student(sno,sname,ssex,sage,sdept),依次表示学号,姓名,性别,年龄,示所在系。2.课程:course(cno,cname,cpno,ccredit),依次表示课程号,课程名,先行课程号,学分。3.选修:SC(sno,cno,grade),依次表示学号,课程号,成绩。3.4.9专门的关系运算--选择在关系R中选择满中给定条件的诸记录,记作:

δF(R)={t|t∈R∧F(t)=‘真’}F表示选择条件,为一逻辑表达式,基本形式为X1θY1[фX2θY2]……(1)查询信息管理系(IM)的全体学生:

δsdept=‘IM’(student)(2)查询年龄等于20岁的男生:

δsage=20∧ssex=‘男’(student)3.4.10专门的关系运算--投影关系R中的投影是从R中选择出若干属性列组成新的关系。记作

ПA(R)={t[A]|t∈R}A为R中的属性列。(3)查询学生表中的姓名及所在系:

Пsname,sdept(student)(4)查询学生表中年龄小于20岁的学生的姓名及所在系:

Пsname,sdept(δsage=20(student))3.4.11专门的关系运算--连接从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:

R∞S={trts|tr∈R∧ts∈S∧tr[A]θts[B]}AθB

A和B分别为R和S上度数相等且可比的属性组。Θ为比较运算符。连接运算从R和S的笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上的值满足比较关系θ的元组。3.4.11专门关系运算--连接分类(1)等值连接:R∞S={trts|tr∈R∧ts∈S∧tr[A]=ts[B]}

A=B

(2)自然连接:A和B两属性组相同,并在结果中将重复的值去掉。记作:R∞S={trts|tr∈R∧ts∈S∧tr[A]=ts[B]}3.4.11连接运算示例(已知R和S)ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RSAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310R∞SC<EAR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32R∞SR.b=S.bABCEa1b153a1b267a2b3810a2b382R∞S给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组,R中的Y与S中的Y可以有不同的属性名,但必须出自同一域,R与S的除运算得到一个新关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S中Y上投影的集合。记作:R÷S={tr[X]|tr∈R∧Yx>Пy(S)}其中Yx为x在R中的象集,x=tr[X]除运算同时从行和列的角度进行运算。3.4.12专门的关系运算--除3.4.12专门的关系运算--除例子例:已知R和S,则R÷S的值为在R中,只有a1的象集{(b1,c2),(b2,c3),(b2,c1)}包含了SRSR÷SABCa1b1c2a2b3c7a3b4c6a1b2c3a2b2c3a1b2c1BCDb1c2d1b2c3d1b2c1d2Aa13.4.13练习:用关系代数完成操作对三个关系模式:student(sno,sname,ssex,sage,sdept)course(cno,cname,cpno,ccredit),SCG(sno,cno,grade),1.查询至少选修了2号课程和8号课程的学生姓名。2.查询张红的年龄。3.查询李明同学不及格的课程名称。4.查询选修了“计算机网络”的学生姓名。5.查询“计算机网络”成绩在90分以上的学生姓名。3.5关系数据库管理系统关系数据库管理系统,即RDBMS。RDBMS支持关系模型。当前大部分的DBMS都是RDBMS。RDBMS仍在发展中,性能不断增强。本节讲述的标准要求以及关系数据库管理系统的分类。3.5关系数据库管理系统4.5.1RDBMS的标准4.5.2RDBMS的分类4.5.3表式系统和最小关系系统4.5.4关系完备系统和全关系系统4.5.5当前主要的RDBMS3.5.1RDBMS的标准支持关系模型的数据库管理系统,但并不是必须完全支持。RDBMS要求至少支持:(1)关系数据结构,即数据库是由表构成的关系数据库,数据库中只有表结构;(2)选择、投影和(自然)连接运算,并且这些运算不要求用户定义任何物理存取路径。

3.5.2RDBMS的分类根据对关系模型的支持程度的不同,分四类:表式系统、最少关系系统、关系完备系统、全关系系统。表式系统最少关系系统关系完备系统全关系系统3.5.3表式系统和最小关系系统表式系统:仅支持关系数据结构(即二维表),不支持集合级的操作。表式系统实际上不能算关系系统。最小关系系统:必须支持关系数据结构和选择、投影、连接三种关系操作,如小型微机关系系统FoxBASE、FoxPro等就属于这一类。3.5.4完备系统和全关系系统关系完备系统:是指支持关系数据结构和所有的关系代数操作(功能上与关系代数等价)的系统。如DB2、ORACLE等中大型关系系统就属于关系完备系统。全关系系统:支持关系模型的所有特征,特别是数据结构中域的概念,实体完整性和参照完整性。虽然DB2、ORACLE等系统已经接近这个目标,但到目前为止尚无一个系统是全关系系统。3.5.5当前主要的RDBMSAccessVFP.netSQLServer7.0,2000,2002Oracle8i,9i,10gDB2MySQL3.6小结关系运算理论是关系数据库查询语言的理论基础。关系定义为元组的集合,关系具有六条特殊的性质。关系模型必须遵循实体完整性、参照完整性和用户定义的完整性规则。必须理解域、码、候选码、外部码、笛卡尔、元组、属性等概念。关系代数的五个基本操作(构成一个完备集)以及四个组合操作,是本章的重点。要能进行两方面的运用:一是计算关系代数表达式的值;二是根据查询语句写出关系代数表达式的表示形式。查询优化是指系统对关系代数表达式要进行优化组合,以提高系统效率。3.7习题有S,C,SC三个关系,用关系代数表示下列查询:

(1)检索Li老师所授课程的课程号、课程名。(2)检索年龄大于23岁的男学生的学号与姓名。(3)检索学号为S3学生所学课程的课程名与任课教师名。(4)检索至少选修LIU老师所授课程中一门课的女生姓名。(5)检索WANG同学不学的课程的课程号。(6)检索至少选修两门课程的学生学号。(7)检索全部学生郡选修的课程的课程号勺课程名。(8)检索选修课程包含Li老师所授课程的学生学号。

第4章SQL语言SQL语言(结构化查询语言)是当前关系数据库的标准操作语言。大部分的RDBMS都支持SQL。SQL有86,89,92,99版本。本章主要讲述SQL92语言的用法。要求能熟练使用SQL语句在不同的RDBMS中完成数据库的基本操作。第4章SQL语言4.1SQL概述4.2数据定义4.3数据查询4.4数据更新4.5视图4.6数据控制4.7嵌入式SQL4.8小结4.9练习4.1SQL概述SQL经历了一个逐步发展过程。SQL具有不同于其他语言的特点。SQL对关系数据库模式提供支持。SQL语言语句简单,只用几条语句就能完成数据库的基本操作。本节主要介绍SQL的基本知识,要求对SQL有一个全局性的基本了解。4.1SQL概述4.1.1SQL的发展过程4.1.2SQL的特点4.1.3SQL对关系数据库模式的支持4.1.4SQL语言的基本知识4.1.1SQL的发展过程1974年由Boyce和Chamberlin提出;1975-1979年IBM的SanJoseResearchLabortatory研制的RDBMS原型系统SystemR中初次实现;1986年ANSI公布第一个SQL标准;1987、1989、1992….不断扩充;目前有三个标准:SQL86、SQL92、SQL99。4.1.2SQL的特点1.综合统一。2.高度非过程化。3.面向集合操作。4.以同一种语法结构提供两种使用方式(自含式和嵌入式)。5.简洁易学易用。4.1.3SQL对RDBS模式的支持SQL视图2视图1基本表1基本表2基本表3基本表4外模式模式内模式存储文件1存储文件24.1.4SQL语言的基本知识SQL语句的动词只有九条。数据定义DDLCREATE,DROP,ALTER数据查询DQLSELECT数据操纵DMLINSERT,UPDATE,DELETE数据控制DCLGRANT,REVOTE4.2数据定义SQL的数据定义语句(DDL)可定义表结构、索引、视图等,也可进行修改和删除。定义表结构时要注意完整性约束。定义索引时要注意查询的要求和速度。定义视图时要注意用户和应用开发的需要。4.2数据定义4.2.1DDL概述4.2.2基本表的定义、删除和修改4.2.3索引操作(建立和删除)4.2.1DDL概述SQL的数据定义语句(DDL)包括以下语句:创建删除修改表CTEATETABLEDROPTABLEALTERTABLE视图CTEATEVIEWDROPVIEW索引CTEATEINDEXDROPINDEX注意:视图和索引无修改语句!4.2.2基本表操作一:定义语句格式:

CREATETABLE<表名>(<列名><数据类型>[列完整性约束条件][<列名><数据类型>[列完整性约束条件]…])

[,<表级完整性约束条件];例1:建立学生表student1。

CREATETABLEstudent1(snochar(5)notnullunique,

snamechar(20),

ssexchar(2));语句格式:

ALTERTABLE<表名>[ADD<新列名><数据类型>[列完整性约束条件]][DROP<完整性约束名>][MODIFY<列名><数据类型>];例2:修改course表结构增加一个jc属性

altertablecourseaddjcchar(20)notnull;例3:删除course表的jc属性

altertablecoursedropjc;4.2.2基本表操作二:修改4.2.2基本表操作三:删除语句格式:

DROPTABLE<表名>;删除表结构时,表中的数据也一并删除。删除表要慎重!例4:删除课程表。

droptablecourse;4.2.3索引:索引作用建立索引可有效提高查询的速度。如果把一个基本库表比作一本书,索引就好像书的目录,通过查询目录,可找到相关章节的页号,从而可迅速地找到那一节内容。不同的是,基本表可建立不止一个索引,它可按不同的属性或表达式建立多个索引。

4.2.3索引之二:建立语句格式:CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]…);说明:(1)ASC升序,DESC降序,缺省为ASC。(2)CLUSTER为聚族索引(指索引项的顺序与表中记录的物理顺序一致的索引组织)。一个表只有一个。(3)UNIQUE表示唯一索引。例5:按课程表的课程名建立索引。

createuniqueindexcourse_nameoncourse(cname);4.2.3索引之三:删除删除索引语句格式:

DROPINDEX<索引名>;例:

DROPINDEXcourse_name;4.3数据查询语句数据查询是DBS最常用的一项操作。DBS必须提供强大而完善的数据查询功能。对于关系数据库,查询有时可能需要从多个表中取得数据。SQL只用SELECT就能完成各种查询。SELECT用法很灵活。4.3数据查询4.3.1SELECT一般格式4.3.2SELECT查询方式4.3.3单表查询4.3.4多表查询4.3.5连接查询4.3.1SELECT一般格式SELECT[ALL|DISTINCT]<目标列表达式>[别名][,<目标列表达式>[别名]]…FROM<表名或视图名>[,<表名或视图名>]…[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];4.3.1SELECT一般格式说明1.目标列表达式可以有以下格式:(1)*(2)<表名>.*(3)COUNT([ALL|DISTINCT]*)(4)[<表名>.]<属性列名表达式>[别名][,[<表名>.]<属性列名表达式>[别名]]…2.WHERE条件表达式非常灵活3.GROUPBY表示按列名1的值分组,每个组产生结果表中一记录。HAVING<条件表达式>表示符合条件的组才输出。4.[ORDERBY<列名2>[ASC|DESC]]:表示排序。4.3.1SQL语言简易格式SELECT <列名>:投影FROM <表名>:连接WHERE <条件>:选取GROUPBY <列名>:分组HAVING <条件>:去组ORDERBY <列名>:排序4.3.1SQL结果的转向SELECT…FROM…WHERE…缺省:输出到临时窗口TOSCREEN:输出到屏幕TO<FileName>:输出到TXT文件INTOTABLE<TableName>:输出到表4.3.2SELECT查询方式1.单表查询(1)选择若干列:指定列;全部列;经过计算的列(2)选择若干行:消除重复的行;满足条件的行(比较大小,确定范围,确定集合,字符匹配,空值,多条件);(3)对查询结果排序。(4)使用集函数。(5)分组2.连接查询(等值与非等值连接;自身连接;外连接;复合条件连接)3.嵌套查询(用IN子查询;用=;用ANY和ALL;用EXISTS)4.3.3查询:成绩管理数据库在学生成绩管理数据库中,包括基本的三个关系:student,course,sc。(1)student(sno,sname,ssex,sage,sdept),表示学号,姓名,性别,年龄,示所在系。主码为sno。(2)Course(cno,cname,cpno,ccredit),表示课程号,课程名,先行课程号,学分。主码为cno。(3)SC(sno,cno,grade),表示学号,课程号,成绩。主码为(sno,cno)。4.3.4单表查询例6.查询全体学生详细记录

select*fromstudent;例7.查询信息系所有男生的学号、姓名、出生年份

Selectsno,sname,2002-sagefromstudentwheressex=‘男’andsdept=‘IS’;例8.查询选修过课的学生的学号

Selectdistinctsnofromsc;4.3.4查询满足条件的元组查询条件

谓词比较=,>,<,>=,<=,!=,<>,!<,!>,NOT+上述符号确定范围BETWEENAND,NOTBETWEENAND确定集合IN,NOTIN字符匹配LIKE,NOTLIKE(%,_)空值ISNULL,ISNOTNULL多重条件AND,OR4.3.4查询满

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论