《《数据库原理与应用》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库原理与应用》PPT课件.ppt(254页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库原理与应用吉林师范大学计算机学院第一章 绪论 数据库是数据管理的工具。数据管理经历了从手工管理阶段、文件管理阶段到数据库管理阶段的变迁。1.1 1.1 数据库系统概述数据库系统概述1.1.1数据、数据库、数据库管理系统、数据库系统数据、数据库、数据库管理系统、数据库系统 一、数据库(DataBase)存放数据的仓库(顾名思义/不准确的含义)信息的载体/表示尽管数据库技术已发展成熟,但还没有一个普遍接受的、严格的定义。数据库应具备的特征数据库应具备的特征/定义:定义:(1 1)数据库是相互关联的数据的集合数据库是相互关联的数据的集合数据库中的数据不是孤立的,数据与数据之间是相互关联的,在数
2、据库中不仅要能够表示数据本身,还要能够表示数据与数据之间的联系。如:学籍管理学生、课程两类数据。(2 2)用综合的方法组织数据用综合的方法组织数据顺序、索引、聚簇Cluster1.1.1数据、数据库、数据库管理系统、数据库系统数据、数据库、数据库管理系统、数据库系统例:人事部门有一个职工文件:职工基本情况有关人事管理的数据教育部门也有一个职工文件:职工基本情况有关教育培训的数据其中,“职工基本情况”重复存储,浪费空间。可共享存储类似这样的共同数据,以降低数据的冗余度。(3 3)具有较小的数据冗余,可供多个用户共享具有较小的数据冗余,可供多个用户共享低冗余与数据共享:在数据库技术之前,数据文件都
3、是独立的,任何数据文件都必须含有满足某一应用的全部数据。1.1.1数据、数据库、数据库管理系统、数据库系统数据、数据库、数据库管理系统、数据库系统(4 4)具有较高的数据独立性具有较高的数据独立性数据独立性:(包括物理独立性、逻辑独立性。具体见萨师煊等主编数据库系统概论Page11)指数据的组织和存储方法与应用程序互不依赖,彼此独立的特性。可降低应用程序的开发代价和维护代价。1.1.1数据、数据库、数据库管理系统、数据库系统数据、数据库、数据库管理系统、数据库系统在数据库技术之前,数据文件的组织方式和应用程序是密切相关的。数据结构改变,相应的应用程序也必须随之修改=开发/维护代价1.1.1数据
4、、数据库、数据库管理系统、数据库系统数据、数据库、数据库管理系统、数据库系统(5 5)具有安全控制机制,能够保证数据的安全、可靠具有安全控制机制,能够保证数据的安全、可靠数据库要有一套安全机制,以便有效地防止数据库中的数据被非法使用/修改;数据库还要有一套备份/恢复机制,以保证当数据遭到破坏时将数据立刻完全恢复=继续、可靠地运行。(6 6)允许并发地使用数据库,能有效、及时地处理数据,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性并能保证数据的一致性和完整性一致性:数据库中的数据是共享的,并且允许多个用户同时使用相同的数据。这就要求数据库能够协议一致,保证各个用户之
5、间对数据的操作不发生矛盾和冲突。正确性、完整性:保证数据正确的特性数据完整性可通过建立一些约束条件保证数据库中的数据是正确的。如:学生年龄20(2或100则错误)1.1.1数据、数据库、数据库管理系统、数据库系统数据、数据库、数据库管理系统、数据库系统二二、数据库管理系统(DataBaseManagementSystem,DBMS)上节提到的数据库的功能/特性不是数据库中的数据固有的,是靠管理或支持数据库的系统软件DBMS提供的。DBMSDBMS任务:任务:对数据资源进行管理,使之能为多个用户共享。保证数据的安全性/可靠性/完整性/一致性/独立性1.1.1数据、数据库、数据库管理系统、数据库系
6、统数据、数据库、数据库管理系统、数据库系统1.1.1数据、数据库、数据库管理系统、数据库系统数据、数据库、数据库管理系统、数据库系统 2 2数据库操纵功能数据库操纵功能 完成对数据库中数据的操作:插入、删除、修改;重新组织数据库的存储结构;完成对数据库的备份/恢复等.DBMSDBMS功能:功能:1 1数据库定义功能数据库定义功能 定义数据库结构和存储结构;定义数据库中数据之间的联系;定义数据完整性约束条件和保证完整性的触发机制等.3 3数据库查询功能数据库查询功能以各种方式提供灵活的查询功能,以便方便使用数据.4 4数据库控制功能数据库控制功能完成对数据库的安全性控制/完整性控制/并发控制5
7、5数据库通信功能数据库通信功能在分布式数据库或提供网络操作功能的数据库中还必须提供通信功能。1.1.1数据、数据库、数据库管理系统、数据库系统数据、数据库、数据库管理系统、数据库系统三、数据库系统和数据库管理员1 1数据库系统数据库系统(DataBase System,DBS)基于数据库的计算机应用系统,包括:以数据为主体的数据库管理数据库的系统软件DBMS支持数据库系统的计算机硬件环境和操作系统环境管理和使用数据库系统的人,特别是DBA方便使用和管理系统的技术说明书和使用说明书1.1.1数据、数据库、数据库管理系统、数据库系统数据、数据库、数据库管理系统、数据库系统1.1.1数据、数据库、数
8、据库管理系统、数据库系统数据、数据库、数据库管理系统、数据库系统2 2数据库管理和数据库管理员数据库管理和数据库管理员(DataBase Administrator,DBA)从事数据库管理工作的人员,负责数据库的全面管理工作(维护、设计)数据库的使用会改变企事业单位的管理方式,但因为要把众多部门或用户的数据放在同一数据库中,会带来一些问题,如:数据冲突;越权使用数据;重要数据丢失因此需要管理部门:负责和数据管理有关的工作。1.1.1数据、数据库、数据库管理系统、数据库系统数据、数据库、数据库管理系统、数据库系统注注:DBA:DBA工作繁重、重要、关键:工作繁重、重要、关键:除了要掌握一定的数据
9、处理、数据库技术之外,还应有处理好人际关系的素质、能力。在一个企事业中,特别是一个规模较大的数据库,不能指望一两个人来完成管理工作,所以DBA常指数据库管理部门。开发DBS时,一开始就应设置DBA的职位或相应的机构,以明确DBA职责、权限。数据处理是计算机应用领域中最大的一类应用用计算机实现数据管理经历了三个发展阶段:1 1人工管理阶段人工管理阶段数据库管理的初级阶段。在50年代中期以前,计算机采用的是批处理方式,主要用于科学计算。(具体见萨师煊等主编数据库系统概论Page6)1.1.2数据管理技术的产生和发展数据管理技术的产生和发展2 2文件系统阶段(文件系统阶段(5050年代后期年代后期6
10、060年代中期)年代中期)特点:特点:计算机技术有了很大的发展,开始广泛应用于信息处理 存储设备有了磁盘、磁鼓等可直接存取的设备 计算机有了操作系统,包括文件管理系统,用户可将数 据组织成文件体交给系统进行自动管理。数据可长期保存在磁盘等存储设备上 程序和数据有了一定的独立性,且文件有多种形式的组 织结构:顺序、链接、索引、直接1.1.2数据管理技术的产生和发展数据管理技术的产生和发展缺点:缺点:(1)数据冗余较大每个文件都是为特定的用途设计的,同样数据在多个文件中重复存储进能提供以文件为单位的数据共享。(2)程序和数据之间的独立性较差应用程序依赖于文件的存储结构,修改文件存储结构就要修改程序
11、1.1.2数据管理技术的产生和发展数据管理技术的产生和发展(3)对数据的表示和处理能力较差 文件的结构和操作比较单一,不够丰富。(4)数据不一致 由(1)造成,更新时会造成同一数据在不同文件中的不一致。(5)数据联系弱文件与文件之间是独立的,文件之间的联系必须通过程序来构造。尽管如此,文件系统在数据管理技术的发展中仍起着很重要的作用。1.1.2数据管理技术的产生和发展数据管理技术的产生和发展1.1.2数据管理技术的产生和发展数据管理技术的产生和发展3.3.数据库系统阶段数据库系统阶段从60年代后期开始,计算机用于信息处理的规模越来越大,对数据管理的技术提出了更高的要求,此时开始提出计算机网络系
12、统和分布式系统,出现了大容量的磁盘,文件系统已不再能胜任多用户环境下的数据共享和处理。一个新的数据库管理技术DBMS由此而形成,它对所有用户数据实行统一的、集中的管理、操作和维护。特点:(具体见萨师煊等主编数据库系统概论Page9-13)按照数据模型的进展情况,数据库系统的发展可划分为三代:第一代:层次数据库系统和网状数据库系统 主要支持层次和网状数据模型第二代:关系数据库系统 支持关系数据模型,该模型有严格的理论基础,概念简单、清晰,易于用户理解和使用。因此一经提出便迅速发展,成为实力性最强的产品。1.1.2数据管理技术的产生和发展数据管理技术的产生和发展第三代:新一代数据库系统面向对象数据
13、库系统 基于扩展的关系数据模型或面向对象数据模型的尚未完全成熟的一代数据库系统。特点:支持包括数据、对象和知识的管理 在保持和继承第二代技术的基础上引进新技术(如OO)对其他系统开放,具有良好的可移植性、可连结性、可扩充性、互操作性。1.1.2数据管理技术的产生和发展数据管理技术的产生和发展1.2数据模型 模型模型对客观事物、现象、过程或系统的简化描述所有的数据库系统都为它所要描述的世界建立了模型:数据建模:描述了组织数据的框架结构。如:楼房住户-数据;房间规格-数据模型数据建模最后发展成为数据的存储方式(数据字典中的定义)业务功能建模:用户的最终需求。业务功能建模最后发展成为应用程序产生高效
14、的应用程序的前提是良好的数据模型。(正如10平米的房间无法成为会议厅一样,一个糟糕的数据模型也无法产生高质量的应用。1.2数据模型为什么要建立数据模型(DataModel):象盖大楼的设计图一样,DM可使所有的项目参与者都有一个共同的数据标准 避免出现问题再解决(边干便改的方式)可及早发现问题 加快应用开发速度1.2.1数据模型的三要素数据模型的三要素 1数据结构描述数据的静态特征,包括对数据结构和数据建联系的描述。通常按照数据结构的类型来命名数据模型:层次结构层次模型网状结构网状模型关系结构关系模型2数据操作描述数据的动态特征:一组定义在数据上的操作(包括操作的含义、操作符、运算规则及其语言
15、等)主要操作:检索与更新(插入、删除、修改)1.2.1数据模型的三要素数据模型的三要素 33.数据的约束条件完整性规则的集合,数据库中的数据必须满足这组规则。约束条件的主要目的是使数据库与它所描述的现实系统相符合。设计时:时数据模型正确、真实、有效地反映现实 运行时:保证数据库中的数据值真实地体现现实世 界的状态 常见数据模型常见数据模型根据数据模型应用目的不同,数据模型有以下几种:概念(数据)模型(概念(数据)模型(ConceptualDataModel)面向现实世界建模主要用来描述现实世界的概念化结构,与具体的DBMS无关;-现实世界的事物经过人脑的抽象加工,提取出对用 户有用的信息,经过
16、组织整理加工形成结余现实世 界和计算机世界之间的中间模型;-CDM只关心现实世界中的事物、事务特征、联系,完全没有与具体及其相关的任何概念;常见数据模型常见数据模型-CDM是系统分析员、程序设计员、维护人员、用户 之间相互理解的共同语言;-CDM能时数据库的设计人员在设计的初始阶段摆脱 计算机系统及DBMS的具体技术问题,集中精力分析 数据、数据之间的联系;-概念模型必须转换成逻辑模型,才能在DBMS中实现;-最常用的概念模型是E-R模型常见数据模型常见数据模型逻辑(数据)模型(逻辑(数据)模型(LogicalDataModel)面向用户建模用户从数据库所看到的数据模型;-是具体的DBMS所支
17、持的数据模型(网状/层次/关系/面向对象);-既要面向用户,也要面向系统;-LDM表示数据建联系的方法-一般的DBMS支持一种LDM(特殊的DBMS支持多种LDM)常见数据模型 物理(数据)模型(物理(数据)模型(PhysicalDataModel)面向具体的DBMS,面向机器描述数据在存储介质上的组织结构-PDM不仅与具体的DBMS有关,还与操作系统 和硬件有关-每一种逻辑模型在实现时都有其对应的物理模型-PDM加入了概念模型中为考虑的因素:触发器、存储过程、主键、外键、索引等-DBMS为保证其独立性和可以执行,大部分PDM的实现工作由系统自动完成,而设计者只设计索引、聚簇等特殊结构概念模型
18、 实体实体-联系(联系(Entity-Relationship)概念模型)概念模型首先介绍E-R模型中常用的几个重要概念,利用它们可构造出现实世界的数据的抽象描述。1实体、实体型、实体集实体、实体型、实体集实体(实体(Entity)客观存在并能相互区分的事物如:人;数据库课程;正是用的计算机;一场足球赛不能严格地定义实体,正如几何中“点”,“线”一样。关键之处:一个实体能和别的实体区分开。概念模型实体型(EntityType)用实体名及属性名集合来抽象刻画同类实体实体集(EntitySet)同型的实体组成的集合。2属性(属性(Attribute)指实体所具有的某一方面的特性,一个实体可 由若干
19、个属性来刻划。-属性取值在一定的范围,称为该属性的值域/域(Domain)-唯一标识实体的属性集称为码(Key)概念模型3联系(联系(Relationship)实体集合间存在的相互关系为了建立现实世界的完整模型,常常需要对联系分类,根据一个实体集合的实体可以和多少个另一类实体集合的实体相联系,可将联系分为如下几种:(1)一对一联系(1:1)系系主任(2)一对多联系(1:n)班级学生(3)多对多联系(m:n)课程学生概念模型举举例例1:(具具体体见见萨萨师师煊煊等等主主编编数数据据库库系系统统概概论论Page17-18)两个实体型之间的联系(图)三个实体型之间的联系(图)一个实体型之间的联系(图
20、)举例举例2:(具体见萨师煊等主编数据库系统概论:(具体见萨师煊等主编数据库系统概论 Page19-20)、图)、图概念模型4实体实体-联系图联系图(1)确定所有实体集合用矩形方框表示实体集合,方框内标明实体集合名 称;(2)选择实体集应包含的属性用椭圆框表示属性,通过无向边连接到实体集。只有一个属性的实体集可用属性代替,附加到它参加的联系上;(3)确定实体集之间的联系用菱形框表示,框内标明联系的名称,通过无向边(或有向边)连接到参加联系的每个实体集合;概念模型(4)确定实体集的关键字用下划线在属性上标明关键字的属性集合;(5)确定联系的类型在用无向边连接联系到实体集时,在边上注明1或n(多)
21、来知名联系的类型。(在用有向边连接联系到实体集时,让边的箭头指向1的实体集的 一方,多对多因为都是多方,故无箭头)1.2.4三种主要的逻辑数据模型 上节讨论的概念数据模型是“概念上”的,是抽象的,它与具体的数据库管理系统无关。这节要讨论的数据模型将与具体的DBMS有关,与DBMS支持的数据和联系的表示或存储有关。前面提到过,数据库中不仅要存放数据本身,还要存放数据间的联系,可用不同的方法表示数据与数据之间的联系。把表示数据与数据之间联系的方法称为逻辑(数据)模型。1.2.4三种主要的逻辑数据模型一、一、层次模型(层次模型(HierarchicalModel)用树型结构来表示实体之间联系的模型。
22、支持层次模型的典型系统诞生于1970年前后,是IBM公司的IMS(InformationManagementSystem)系统。1.层次模型的数据结构层次模型示例(萨师煊等主编数据库系统概论Page22)举例:Page231.2.4三种主要的逻辑数据模型2层次模型的数据操纵与完整性约束3层次模型的存储结构4层次模型的优缺点优点:结构简单缺点:插入、删除限制多1.2.4三种主要的逻辑数据模型二、二、网状模型(网状模型(NetworkModel)典型代表:DBTG(DataBaseTaskGroup)数据库任务组1网状模型的数据结构2网状模型的数据操纵与完整性约束3网状模型的存储结构4网状模型的优
23、缺点优点:更能直接描述世界缺点:结构复杂1.2.4三种主要的逻辑数据模型三、三、关系模型(关系模型(RelationalModel)1970,IBM,E.F.Codd关系模型源于数学,它把数据看成是二维表(关系)中的元素。(其严格定义下一章给出)用关系表示(不需用指针)实体和实体之间联系的模 型称为关系模型。基本术语:基本术语:萨师煊等主编数据库系统概论Page31举例见教材 对于用户,关系方法应该是很简单的,但RDBMS很 复杂,因为将大量工作都转嫁给了RDBMS。1.2.4三种主要的逻辑数据模型RDBMS的设想在层次、网状数据库诞生的同时产生的,但研制开发RDBMS却花费了比人们想象的要长
24、得多的时间。所以成为商品并投入使用比层次、网状数据库晚了十几年。但一投入使用就显示了旺盛的活力,并逐步取代层次、网状数据库。1.3数据库系统的结构1.3.1数据库系统模式的概念数据库系统模式的概念 当设计数据库时,对数据库的结构感兴趣;即模式(模式(Schema):):数据库中数据的逻辑结构和特征的描述当应用数据库时,关心的是数据库中存在的数据实例(Instance)。数据库中的数据经常变化,而数据库的结构在一定时间范围内不会改变。数据库中结构的定义可以在多个抽象级别进行,形成多个级别的数据库模式。1.3.2数据库系统的三级模式结构数据库系统的三级模式不仅可以使数据具有独立性,而且还可以使数据
25、达到共享,使同一数据满足更多用户的不同要求。一、内模式(InternalSchema)存储模式是数据在数据库系统的内部表示,即对数据的物 理结构/存储方式的描述,是低级描述,一般由DBMS提供的语言或工具完成;1.3.2数据库系统的三级模式结构要修改存储数据库的结构(例如,用倒排文件代替多 链表),那么仅仅需要把这些修改反映在存储模式中;通常我们不关心内模式的具体技术实现,而是从一般组 织的观点(即概念模式)或用户的观点(外模式)来讨 论数据库的描述。但我们必须意识到基本的内模式和存 储数据库的存在。1.3.2数据库系统的三级模式结构二、模式(Schema)逻辑模式是数据库中全体数据的逻辑结构
26、和特性的描述,是所有用户的公共数据视图;DBMS提供数据定义语言DDL来描述逻辑模式,严 格定义数据的名称、特征、相互关系、约束等。1.3.2数据库系统的三级模式结构三、外模式(ExternalSchema)用户模式(视图)是模式的子集或变形,是与某一应用有关的数据 的逻辑表示;不同用户需求不同,看待数据的方式也可以不同,对数据保密的要求也可以不同,使用的程序设 计语言也可以不同,因此不同用户的外模式的描 述可以使不同的。1.3.2数据库系统的三级模式结构举例:民航售票系统包括处理航班程序和处理旅客程序。-程序的使用人员不必知道关于人事档案、丢失的行李、飞行员的航行分配等信息;-调度员可能需要
27、知道关于航班、飞机和人事档案等 信息(如那些飞行员有资格驾驶747),但不必知道雇员的工资、旅客等信息。所以可以为订票部门建立一个数据库视图,为调度部门建立另一个完全不同的部门。1.3.2数据库系统的三级模式结构Note:视图处理的数据并不实际存储在数据库中,而仅可以从逻辑数据库中构造出来。视图比(逻辑)模式的抽象级别更高。举例:“年龄”在人事部门数据库中,但(逻辑)模式重金包含出生年月。当用户希望通过访问视图得到年龄时,DBMS翻译这个要求,在从物理数据库上取出的数据完成计算。注:一个数据库只有一个模式,一个内模式,但可注:一个数据库只有一个模式,一个内模式,但可以有多个外模式。以有多个外模
28、式。1.3.3数据库的二级映象 在三级模式中提供了两级映象,保证了数据库系统的数据独立性,既物理独立性与逻辑独立性。一、外模式/模式映象数据库系统投入使用后,可能有必要修改模式(如增加新关系、属性、改变类型),这时:重新定义外模式/模式映象=现存外模式不变=应用程序不变DBA职责1.3.3数据库的二级映象二、模式/内模式映象当内模式发生变化时:重新定义模式/内模式映象=模式保持不变=外模式保持不变=建立在外模式上的应用程序保持不变1.5数据库技术的研究领域数据库技术的研究领域1.数据库管理系统软件的开发2数据库设计3数据库理论具体见萨师煊等主编数据库系统概论page39-40 第二章关系数据库
29、1关系操作 查询操作:选择/投影/连接/除/并/交/差2.1关系模型概述关系模型概述从数据模型的三要素加以介绍一、一、数据结构数据结构关系二、二、关系操作关系操作增加、删除、修改2.1关系模型概述关系模型概述元组关系演算:谓词变元的基本对象是元组变量域关系演算:谓词变元的基本对象是域变量Note:关系代数和关系演算是抽象的查询语言,与:关系代数和关系演算是抽象的查询语言,与具体的具体的DBMS中实际语言不一样,但彼此等价,是中实际语言不一样,但彼此等价,是从抽象的观点出发学习数据库查询的问题。从抽象的观点出发学习数据库查询的问题。3关系数据语言(具体见萨师煊等主编数据库系统概论page47)2
30、关系操作的表示方法:关系代数:用对关系的运算表达查询要求关系演算:用谓词表达查询要求2.1关系模型概述关系模型概述实体完整性关系模型必须满足的完整性约束条件参照完整性三、关系的完整性约束条件关系的完整性约束条件用户定义的完整性:针对某一具体数据库的约束条件反映某一具体应用所设计的数据必须满足的语义要求。(关系系统自动支持)2.2关系数据结构及形式化定义 2.2.1关系关系一、基本概念(具体见萨师煊等主编数据库系统概论page47-)1域(Domain)2笛卡尔积(Cartesian Product)元组(Tuple)3关系(Relation)分量(Component)候选码CandidateK
31、ey 非码属性Non-keyattribute 主码 Primark Key全码 All-key主属性Prime attribute2.2关系数据结构及形式化定义二、关系的三种类型 基本关系(基本表):实际存在的表,是实际存储数据的逻辑表示三、关系的性质(6条,具体见萨师煊等主编数据库系统概论P50)查询表:查询结果对应的表视图表:由基本表或其它视图标导出的表,虚表,不对应实际存储的数据2.2.2关系模式 值(Value):是型的一个具体赋值关系是值 型(Type):对某一类数据的结构和属性的说明关系模式是型(关系模式是对关 系的描述)2.3关系的完整性(具体见萨师煊等主编数据库系统概论P52
32、-55)2.4关系代数(RelationalAlgebra)关系代数是对关系运算的总和,关系运算分两类:2.4.1传统的集合运算传统的集合运算并交差积(按行)2.4.2专门的关系运算 选择/投影/连接/除(按行、列)一、几个记号和概念元组,分量属性列域,剩余属性组元组的连接象集关系运算定义(具体见萨师煊等主编数据库系统概论P58-64)第三章关系数据库标准语言SQL 关系代数和关系演算是形式化查询语言,商业DBMS使用SQL(Structured Query Language)。1974 年 由 IBM 的 San Jose研 究 室 提 出,最 初 叫SEQUEL(Structured En
33、glish Query Language)关系数据库系统通过SQL对数据库进行查询和更新目前有许多不同版本的SQL语言,有两个不同的主要标准:ANSI(AmericanNationalStandardsInstitute)1986ISO(InternationalStandardsOrganization):SQL-89,SQL-92,SQL2,正在制定SQL33.1SQL语言概貌及特点 一、一、SQL特点特点1一体化一体化SQL是一种一体化的语言,它包括了数据定义、查询、更新、控制四方面功能。可以完成数据库活动中的全部工作以前的非关系模型的数据语言一般包括:内模式描述语言、模式描述语言、外模
34、式描述语言、数据操纵语言等。内容多,操作起来不像SQL那样简单。3.1SQL语言概貌及特点2高度非过程化高度非过程化没有必要一步步地告诉计算机“如何”去做,只需描述清楚用户要“做什么”,SQL就可以将要求交给系统,自动完成全部工作。3面向集合的操作方式面向集合的操作方式操作对象、查询结果是元组的集合;插入、删除、更新操作的对象也可以是元组的集合。3.1SQL语言概貌及特点4两种使用形式,统一的语法结构两种使用形式,统一的语法结构自含式:将SQL作为操作命令独立使用现在许多数据库开发工具都将SQL直接融入到自身的语言中。宿主式:将SQL嵌入到高级语言中使用3.1SQL语言概貌及特点5语言简洁语言
35、简洁SQL虽然功能强且使用两种方式,但只有为数不多的几条命令,另外语法也非常简单,接近自然语言,易掌握、学习。除了以上特点之外,SQL语言还支持数据库的三级模式结构。(具体见萨师煊等主编数据库系统概论Page87)3.1SQL语言概貌及特点二、二、SQL语言组成语言组成SQL同一般的程序设计语言一样,由以下几个部分组成:1常量:文本常量(字符串)、整型常量、数值常量2数据类型:以IBM DB2 SQL为例,具体见萨师煊等主编数据库系统概论P893空值:NULL3.1SQL语言概貌及特点集合运算符:、-算术运算符:+,-,*,/5.函数SQL提供了非常丰富的内部函数聚集函数(详见萨师煊等主编数据
36、库系统概论P100)4.运算符字符串运算符:|(连接)比较运算符:6个逻辑运算符:NOT,AND,OR3.1SQL语言概貌及特点6谓词SQL为了具有强大的查询能力,提供了一系列的谓词:BETWEENAND/NOTBETWEENAND介于两者之间/介于两者之外IN/NOTIN在其中/不在其中LIKE匹配ISNULL/ISNOTNULLEXISTS/NOTEXISTS存在/不存在量词ANY任意一个存在量词ALL全程量词3.1SQL语言概貌及特点7表达式8条件由一个或多个含有比较运算符的表达试及逻辑运算符组合而成。9.命令(具体见萨师煊等主编数据库系统概论P86)3.2数据定义 存储过程定义基本表定
37、义定义功能数据库的定义:和物理数据有关,以后介绍视图定义索引定义规则定义与数据完整性有关,以后介绍 3.2.1定义、删除与修改基本表定义、删除与修改基本表(具体见萨师煊等主编数据库系统概论P88)3.2.2建立与删除索引建立与删除索引(具体见萨师煊等主编数据库系统概论P90)在使用关系数据库系统时,用户所看到和操作的数据好像在简单的二维表中,而实际上数据在磁盘上是如何存储的用户可能不知道。然而数据的物理存储如何却使数据库主要性能的主要因素。索引时最常见的改善数据库性能的技术。nCREATE TABLE 表名(列名数据类型列级完整性约束条件,表级完整性约束条件n例:CREATE TABLE St
38、udent(Sno CHAR(5)NOT NULL UNIQUE,SNAME CHAR(20)UNIQUE,SSEX CHAR(1),SAGE INT,SDEPT CHAR(15);n修改基本表:nALTER TABLE 表名ADD新列名数据类型完整性约束nDROP完整性约束名nALTER 列名数据类型;n例:向学生表增加“入学时间”日期型nALTER TABLE STUDENT ADD Scome date;n修改年龄为半字长整数nALTER TABLE STUDENT ALTER SAGE SMALLINTn删除学生姓名必须取唯一值的约束。nDROP TABLE Student DROP
39、UNIQUE Tag SnamenDROP TABLE 3.2.2建立与删除索引建立与删除索引关于索引关于索引索引的建立和删除由DBA或建表的人负责,用户不必也不能在存取数据是选择索引;作为一般规则,不应该在一个表上建立太多的索引(2-3个)。索引能改善查询效果,但也耗费了磁盘空间。降低了更新操作的性能。因为系统必须花时间来维护这些索引;表中数据越多,索引的优越性才越明显。3.3.1单表查询 指定列消除重复行选择表中若干列全部列经计算的列选择表中若干元组查询满足条件的元组对查询结果排序对查询结果分组3.3.2连接查询 等值/非等值连接自身连接外连接复合条件连接3.3.3嵌套查询 带有IN谓词的
40、查询带有比较运算符的查询带有ANY或ALL谓词的子查询带有EXISTS谓词的查询3.3.4集合查询集合查询具体见萨师煊等主编数据库系统概论P1143.3.5SELECT语句的一般格式语句的一般格式具体见萨师煊等主编数据库系统概论P115 3.4数据更新 插入、修改、删除数据(具体见萨师煊等主编数据库系统概论P117)一、插入数据1插入单个元组2插入子查询结果3.4数据更新二、修改数据1修改一个元组的值2修改多个元组的值3带子查询的修改语句3.4数据更新三、删除数据1删除一个元组的值2删除多个元组的值3带子查询的删除语句4更新操作与数据库的一致性3.5视图 一、关于视图:视图是原始数据库数据的一
41、种变换,是查看表中数据的另外一种方式;可将视图看成是一个移动的窗口,通过它可看到感兴趣的数据;视图可从一个或多个实际表中获得;视图的定义存在数据库中,而数据并没再存一份在数据库中,通过视图看到的数据存放在基本表中;对视图的操作同其它表一样,通过视图修改数据时,实际是修改基本表中的数据,相反,基本表数据的改变也会自动反映在由基本表产生的视图中。3.5视图二、视图的作用1简单性看到的就是用户需要的不仅可简化用户对数据的理解,也可简化它们的操 作。经常使用的查询可以被定义为视图。3.5视图2安全性通过视图用户只能查询和修改他们能见到的数据,数据库其它数据则既看不到也取不到。数据库授权命令可是用户对数
42、据库的检索限制到特定的数据库对象上,但不能授权到数据库特定的行、列上。视图可防止未授权用户查看特定的行/列3逻辑数据独立性3.5视图一、定义视图具体见萨师煊等主编数据库系统概论P121-124二、查询视图具体见萨师煊等主编数据库系统概论P125三、更新视图具体见萨师煊等主编数据库系统概论P1263.6数据控制 SQL数据控制功能对数据库中数据的安全控制提供保护,主要表现在对数据使用的授权(GRANT)和收回授权(REVOKE)。每个用户对自己拥有的资源可以由任意的操作权限,同时也可以把其中的一部分权限授予他人。(具体见萨师煊等主编数据库系统概论P130)3.6数据控制一、授权3.6数据控制二、
43、收回权限注:授权(GRANT)和收回授权(REVOKE)并不是数据库的全部控制功能,只是其中的一小部分,其它功能如安全性、完整性、并发控制和恢复在7、8、9、10章介绍。3.7嵌入式SQL 前面几节介绍的SQL,,是作为独立的数据语言直接由用户在交互环境下使用的。此外,SQL还可以作为子语言嵌入在宿主语言(PASCAL、C等)中使用。SQL作为子语言嵌入在宿主语言中使用必须要解决以下三方面问题:1嵌入识别问题宿主语言的编译程序不能识别SQL语句,所以首要问题要解决如何区分宿主语言的语句和SQL语句。3.7嵌入式SQL2宿主语言与SQL语言的数据通信问题DBMS将SQL语句的查询结果或执行状态必
44、须交给宿主语言/应用程序处理(通过SQLCA);运行时,宿主语言的数据通过变量(称为主变量)也要能够交给SQL使用。3宿主语言的单记录与SQL的多记录的问题宿主语言一般一次处理一条记录;SQL语言常常处理的是记录(元组)的集合,其查询结果通常是含多个记录的一张表。“阻抗不匹配”本节将围绕如何解决这三个问题来介绍。3.7嵌入式SQL一、一、嵌入识别与预编译嵌入识别与预编译解决方法:为SQL语句加一个特殊的前缀。在用宿主语言的编译系统编译源程序之前,首先由预编译系统将SQL语句转换为宿主语言的合法函数调用。3.7嵌入式SQL3.7嵌入式SQL一、一、数据通信区与主变量数据通信区与主变量1数据通信区
45、SQLCASQL Communication Area在嵌入SQL语句的程序中,一般在程序的前部都要有一条语句:EXECSQLINCLUDESQLCA这里SQLCA即是SQL与宿主语言的通信区,它类似于结构变量,各个变量分别反映SQL语句的各种执行状态。3.7嵌入式SQLDBMS:数据库厂商标识 0:成功例如:SQL Anywhere 中SQLCA有16个属性:SQLCode(long):存放执行SQL后返回的代码100:SELECT找不到符合条件的记录-1:SQL操作错误DataBaseUseridDBPassSQLErrText:错误代码SQLDBCode:错误信息3.7嵌入式SQLSQL
46、被执行时,DBMS将产生的各类系统信息(如执行状态信息)写入系统通信区,应用程序在调用SQL后,可通过读取数据通信区中信息来确定语句执行情况。应用通过SQLCA与数据库通信 应用SQLCADBMS连接参数状态信息 3.7嵌入式SQL输出主变量:SQL对其赋值或设置状态信息,返回给应用程序。利用它可得到SQL语句的结果数据和状态。输入主变量:由应用程序赋值,SQL引用。可用于:插入数据、修改值、制定条件(WHERE)2主变量主变量SQL语句使用宿主语言的变量来输入/输出数据主变量(Host Variable)主变量根据作用不同分为:3.7嵌入式SQLNote:所有变量要在BEGINDECLARE
47、SECTIONENDDECLARESECTION之间说明。3.7嵌入式SQL三、游标(Cursor)当查询结果超过一个元组时,不能一次性将结果值赋给宿主语言的变量,因为主变量仅能保存一个数据,而不是一组数据。为此,引进一个特殊的数据结构游标(Cursor)。游标是系统为用户开设的一个数据缓冲区,存放SQL的执行结果。可将其理解为一个指示器,指向数据库中满足条件的元组。游标包含两部分内容:结果集:游标内SELECT语句执行后产生的集合;游标位置:游标指针的当前位置。3.7嵌入式SQL游标的定义和使用分为下面几步:声明游标不可执行的指令,仅定义游标,SELECT语句没有执行(类似于变量说明)打开游
48、标执行SELECT语句,将结果放入结果集中。推进游标 移动指针,该变结果集的当前记录。通过游标更新数据 关闭游标 程序实例(具体见萨师煊等主编数据库系统概论P136-146)第四章关系系统及查询优化 具体见萨师煊等主编数据库系统概论P151-1674.1.3全关系系统的12条基本准则 4.1关系系统关系系统4.1.1关系系统的定义4.1.2关系系统的分类4.2关系数据库系统的查询优化关系数据库系统的查询优化4.2.1关系系统及其查询优化4.2.6优化的一般步骤 4.2.5关系代数表达式的优化算法4.2.4关系代数等价变换规则4.2.3查询优化的一般准则4.2.2一个实例第五章关系数据理论 数据
49、库设计的一个最基本的问题是如何建立一个好的数据库模式。即给出一组数据,如何构造一个适合于它们的数据模式,使数据库系统无论是在数据存储方面,还是在数据操纵方面都有较好的性能。E-R模型方法讨论了实体与实体之间的数据联系,现在来讨论实体内部属性与属性之间的数据关联,目标是要设计一个“好”的数据库模型。5.1问题的提出 1关系模型定义复习2在解决如何设计一个好的数据库模式之前,先看一 看什么是“不好”的数据库设计(关系数据库模式可 能出现的异常)。例:建立一个关系数据库来描述学生的一些情况,该数据库只包含一个关系模式:学生(学号,姓名,系名,系主任,课程,成绩)3.例:具体见萨师煊等主编数据库系统概
50、论P171页 5.1问题的提出(1)存在的问题:)存在的问题:i.i.数据冗余:姓名,系名,系=重复出现。ii.ii.更新异常:某一元组修改系主任,其他不变=同一系,系主任不同,造成了数据潜在的不一致性。iii.iii.插入异常:系刚成立,尚未招收学生,主关键字为空,则系主任、选的课都无法存入数据库,未 选课的学生信息也无法存入。iv.删除异常:一个系的学生毕业了,删除这些学生的记录,则系主任等信息也删除掉了。5.1问题的提出(2)产生异常的原因:)产生异常的原因:这些异常的产生主要是因为关系模式的结构,即关系模式中的属性之间存在过多的数据依赖关系,与现实世界不符合。注:数据依赖关系最重要的一