第讲数据库基础自学版.ppt

上传人:本田雅阁 文档编号:3124626 上传时间:2019-07-13 格式:PPT 页数:253 大小:1.30MB
返回 下载 相关 举报
第讲数据库基础自学版.ppt_第1页
第1页 / 共253页
第讲数据库基础自学版.ppt_第2页
第2页 / 共253页
第讲数据库基础自学版.ppt_第3页
第3页 / 共253页
第讲数据库基础自学版.ppt_第4页
第4页 / 共253页
第讲数据库基础自学版.ppt_第5页
第5页 / 共253页
点击查看更多>>
资源描述

《第讲数据库基础自学版.ppt》由会员分享,可在线阅读,更多相关《第讲数据库基础自学版.ppt(253页珍藏版)》请在三一文库上搜索。

1、第3讲 数据库原理,参考文献:萨师煊等主编数据库系统概论 数据库是数据管理的工具。数据管理经历了从手工管理阶段、文件管理阶段到数据库管理阶段的变迁。 几个重要概念: 数据 数据库 数据库管理系统 数据库系统,存放数据的仓库(顾名思义/不准确的含义) 信息的载体/表示 尽管数据库技术已发展成熟,但还没有一个普遍接受的、严格的定义。,数据库(Data Base),数据库应具备的特征/定义: (1)数据库是相互关联的数据的集合 数据库中的数据不是孤立的,数据与数据之间是相互关联的,在数据库中不仅要能够表示数据本身,还要能够表示数据与数据之间的联系。 如:学籍管理学生、课程两类数据。 (2)用综合的方

2、法组织数据 顺序、索引、聚簇Cluster,数据库,例:人事部门有一个职工文件:,教育部门也有一个职工文件:,其中,“职工基本情况”重复存储,浪费空间。可共享存 储类似这样的共同数据,以降低数据的冗余度。,(3)具有较小的数据冗余,可供多个用户共享 低冗余与数据共享:在数据库技术之前,数据文件都是独立的,任何数据文件都必须含有满足某一应用的全部数据。,数据库,(4)具有较高的数据独立性 数据独立性:(包括物理独立性、逻辑独立性。) 指数据的组织和存储方法与应用程序互不依赖,彼此独立的特性。可降低应用程序的开发代价和维护代价。,数据库,在数据库技术之前,数据文件的组织方式和应用程序是密切相关的。

3、数据结构改变,相应的应用程序也必须随之修改=开发/维护代价,数据库,(5)具有安全控制机制,能够保证数据的安全、可靠 数据库要有一套安全机制,以便有效地防止数据库中的数据被非法使用/修改; 数据库还要有一套备份/恢复机制,以保证当数据遭到破坏时将数据立刻完全恢复=继续、可靠地运行。,(6)允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性 一致性:数据库中的数据是共享的,并且允许多个用户同时使用相同的数据。这就要求数据库能够协议一致,保证各个用户之间对数据的操作不发生矛盾和冲突。 正确性、完整性: 保证数据正确的特性数据完整性 可通过建立一些约束条件保证数据库中的数据是

4、正确的。 如:学生年龄20 (2或100则错误),数据库,数据库管理系统(DataBase Management System ,DBMS) 数据库的功能/特性不是数据库中的数据固有的,是靠管理或支持数据库的系统软件DBMS提供的。 DBMS任务: 对数据资源进行管理,使之能为多个用户共享。 保证数据的安全性/可靠性/完整性/一致性/独立性,数据库管理系统,数据库管理系统,2 数据库操纵功能 完成对数据库中数据的操作:插入、删除、修改; 重新组织数据库的存储结构; 完成对数据库的备份/恢复等.,DBMS功能: 1 数据库定义功能 定义数据库结构和存储结构; 定义数据库中数据之间的联系; 定义数

5、据完整性约束条件和保证完整性的触发机制等.,3数据库查询功能 以各种方式提供灵活的查询功能,以便方便使用数据. 4 数据库控制功能 完成对数据库的安全性控制/完整性控制/并发控制 5 数据库通信功能 在分布式数据库或提供网络操作功能的数据库中还必须提供通信功能。,数据库管理系统,1数据库系统 (DataBase System,DBS) 基于数据库的计算机应用系统,包括: 以数据为主体的数据库 管理数据库的系统软件DBMS 支持数据库系统的计算机硬件环境和操作系统环境 管理和使用数据库系统的人,特别是DBA 方便使用和管理系统的技术说明书和使用说明书,数据库系统和数据库管理员,数据库系统和数据库

6、管理员,数据库管理员 (DataBase Administrator,DBA) 从事数据库管理工作的人员,负责数据库的全面管理工作(维护、设计) 数据库的使用会改变企事业单位的管理方式,但因为要把众多部门或用户的数据放在同一数据库中,会带来一些问题,如:数据冲突;越权使用数据;重要数据丢失 因此需要管理部门:负责和数据管理有关的工作。,数据库系统和数据库管理员,注: DBA工作繁重、重要、关键: 除了要掌握一定的数据处理、数据库技术之外,还应有处理好人际关系的素质、能力。在一个企事业中,特别是一个规模较大的数据库,不能指望一两个人来完成管理工作,所以DBA常指数据库管理部门。 开发DBS时,一

7、开始就应设置DBA的职位或相应的机构,以明确DBA职责、权限。,数据处理是计算机应用领域中最大的一类应用 用计算机实现数据管理经历了三个发展阶段: 1 人工管理阶段 数据库管理的初级阶段。 在50年代中期以前,计算机采用的是批处理方式,主要用于科学计算。,1.1.2 数据管理技术的产生和发展,2 文件系统阶段(50年代后期60年代中期) 特点: 计算机技术有了很大的发展,开始广泛应用于信息处理 存储设备有了磁盘、磁鼓等可直接存取的设备 计算机有了操作系统,包括文件管理系统,用户可将数 据组织成文件体交给系统进行自动管理。 数据可长期保存在磁盘等存储设备上 程序和数据有了一定的独立性,且文件有多

8、种形式的组 织结构:顺序、链接、索引、直接,1.1.2 数据管理技术的产生和发展,缺点: (1)数据冗余较大 每个文件都是为特定的用途设计的, 同样数据在多个文件中重复存储 进能提供以文件为单位的数据共享。 (2)程序和数据之间的独立性较差 应用程序依赖于文件的存储结构,修改文件存储结构就要修改程序,1.1.2 数据管理技术的产生和发展,(3)对数据的表示和处理能力较差 文件的结构和操作比较单一,不够丰富。 (4)数据不一致 由(1)造成,更新时会造成同一数据在不同文件 中的不一致。 (5)数据联系弱 文件与文件之间是独立的,文件之间的联系必须通 过程序来构造。 尽管如此,文件系统在数据管理技

9、术的发展中仍起 着很重要的作用。,1.1.2 数据管理技术的产生和发展,1.1.2 数据管理技术的产生和发展,3.数据库系统阶段 从60年代后期开始,计算机用于信息处理的规模越来越大,对数据管理的技术提出了更高的要求,此时开始提出计算机网络系统和分布式系统,出现了大容量的磁盘,文件系统已不再能胜任多用户环境下的数据共享和处理。一个新的数据库管理技术DBMS由此而形成,它对所有用户数据实行统一的、集中的管理、操作和维护。,按照数据模型的进展情况,数据库系统的发展可划分为三代: 第一代:层次数据库系统和网状数据库系统 主要支持层次和网状数据模型 第二代:关系数据库系统 支持关系数据模型,该模型有严

10、格的理论基础, 概念简单、清晰,易于用户理解和使用。因此一 经提出便迅速发展,成为实力性最强的产品。,1.1.2 数据管理技术的产生和发展,第三代:新一代数据库系统面向对象数据库系统 基于扩展的关系数据模型或面向对象数据模型的尚未 完全成熟的一代数据库系统 。 特点:支持包括数据、对象和知识的管理 在保持和继承第二代技术的基础上引进新技术(如OO) 对其他系统开放,具有良好的可移植性、可连结性、 可扩充性、互操作性。,1.1.2 数据管理技术的产生和发展,1.2 数据模型,模型对客观事物、现象、过程或系统的简化描述 所有的数据库系统都为它所要描述的世界建立了模型: 数据建模:描述了组织数据的框

11、架结构。 如:楼房住户-数据;房间规格-数据模型 数据建模最后发展成为数据的存储方式(数据字典 中的定义) 业务功能建模:用户的最终需求。 业务功能建模最后发展成为应用程序 产生高效的应用程序的前提是良好的数据模型。(正如10 平米的房间无法成为会议厅一样,一个糟糕的数据模型也无法产生高质量的应用。,1.2 数据模型,为什么要建立数据模型(Data Model): 象盖大楼的设计图一样,DM可使所有的 项目参与者都有一个共同的数据标准 避免出现问题再解决(边干便改的方式) 可及早发现问题 加快应用开发速度,1.2.1 数据模型的三要素,1数据结构 描述数据的静态特征,包括对数据结构和数据 建联

12、系的描述。 通常按照数据结构的类型来命名数据模型: 层次结构层次模型 网状结构网状模型 关系结构关系模型 2数据操作 描述数据的动态特征:一组定义在数据上的操作(包括操作的含义、操作符、运算规则及其语言等) 主要操作:检索与更新(插入、删除、修改),1.2.1 数据模型的三要素,33. 数据的约束条件 完整性规则的集合,数据库中的数据必须满足 这组规则。 约束条件的主要目的是使数据库与它所描述的现实系 统相符合。 设计时:时数据模型正确、真实、有效地反映现实 运行时:保证数据库中的数据值真实地体现现实世 界的状态,1.2.2常见数据模型,根据数据模型应用目的不同,数据模型有以下几种: 概念(数

13、据)模型(Conceptual Data Model) 面向现实世界建模 主要用来描述现实世界的概念化结构,与具 体的DBMS无关; - 现实世界的事物经过人脑的抽象加工,提取出对用 户有用的信息,经过组织整理加工形成结余现实世 界和计算机世界之间的中间模型; - CDM只关心现实世界中的事物、事务特征、联系, 完全没有与具体及其相关的任何概念;,1.2.2常见数据模型,CDM是系统分析员、程序设计员、维护人员、用户 之间相互理解的共同语言; - CDM能时数据库的设计人员在设计的初始阶段摆脱 计算机系统及DBMS的具体技术问题,集中精力分析 数据、数据之间的联系; - 概念模型必须转换成逻辑

14、模型,才能在DBMS中实 现; - 最常用的概念模型是E-R模型,1.2.2常见数据模型, 逻辑(数据)模型(Logical Data Model) 面向用户建模 用户从数据库所看到的数据模型; - 是具体的DBMS所支持的数据模型(网状/层次 /关系/面向对象); - 既要面向用户,也要面向系统; - LDM表示数据建联系的方法 - 一般的DBMS支持一种LDM(特殊的DBMS支 持多种LDM),1.2.2常见数据模型, 物理(数据)模型(Physical Data Model) 面向具体的DBMS,面向机器 描述数据在存储介质上的组织结构 - PDM不仅与具体的DBMS有关,还与操作系统

15、和硬件有关 - 每一种逻辑模型在实现时都有其对应的物理模型 - PDM加入了概念模型中为考虑的因素:触发器、 存储过程、主键、外键、索引等 - DBMS为保证其独立性和可以执行,大部分PDM 的实现工作由系统自动完成,而设计者只设计索 引、聚簇等特殊结构,1.2.3概念模型,实体-联系(Entity-Relationship)概念模型 首先介绍E-R模型中常用的几个重要概念,利用它们可 构造出现实世界的数据的抽象描述。 1实体、实体型、实体集 实体(Entity) 客观存在并能相互区分的事物 如:人;数据库课程;正是用的计算机;一 场足球赛不能严格地定义实体,正如几何中“ 点”,“线”一样。

16、关键之处:一个实体能和别的实体区分开。,1.2.3概念模型, 实体型(Entity Type) 用实体名及属性名集合来抽象刻画同类实体 实体集(Entity Set) 同型的实体组成的集合。 2属性(Attribute) 指实体所具有的某一方面的特性,一个实体可 由若干个属性来刻划。 - 属性取值在一定的范围,称为该属性的值域/域 (Domain) - 唯一标识实体的属性集称为码(Key),1.2.3概念模型,3联系(Relationship) 实体集合间存在的相互关系 为了建立现实世界的完整模型,常常需要对联系 分 类,根据一个实体集合的实体可以和多少个另一类 实体集合的实体相联系,可将联系

17、分为如下几种: (1) 一对一联系(1:1) 系系主任 (2) 一对多联系(1:n) 班级学生 (3) 多对多联系(m:n) 课程学生,1.2.3概念模型,4 实体-联系图 (1) 确定所有实体集合 用矩形方框表示实体集合,方框内标明实体集合名 称; (2) 选择实体集应包含的属性 用椭圆框表示属性,通过无向边连接到实体集。只 有一个属性的实体集可用属性代替,附加到它参加 的联系上; (3) 确定实体集之间的联系 用菱形框表示,框内标明联系的名称,通过无向边 (或有向边)连接到参加联系的每个实体集合;,1.2.3概念模型,( 4)确定实体集的关键字 用下划线在属性上标明关键字的属性集合; (5

18、) 确定联系的类型 在用无向边连接联系到实体集时,在边上注明1或 n(多)来知名联系的类型。(在用有向边连接 联系到实体集时,让边的箭头指向1的实体集的 一方,多对多因为都是多方,故无箭头),1.2.4 三种主要的逻辑数据模型,上节讨论的概念数据模型是“概念上”的,是抽象的,它与具体的数据库管理系统无关。这节要讨论的数据模型将与具体的DBMS有关,与DBMS支持的数据和联系的表示或存储有关。 前面提到过,数据库中不仅要存放数据本身,还要存放数据间的联系,可用不同的方法表示数据与数据之间的联系。 把表示数据与数据之间联系的方法称为逻辑(数据)模型。,1.2.4 三种主要的逻辑数据模型,一、 层次

19、模型(Hierarchical Model) 用树型结构来表示实体之间联系的模型。 支持层次模型的典型系统诞生于1970年前后,是IBM 公司的IMS(Information Management System)系统。 优点:结构简单 缺点:插入、删除限制多,1.2.4 三种主要的逻辑数据模型,二、网状模型(Network Model) 典型代表:DBTG(Data Base Task Group)数据 库任务组 1 网状模型的数据结构 2 网状模型的数据操纵与完整性约束 3 网状模型的存储结构 4网状模型的优缺点 优点:更能直接描述世界 缺点:结构复杂,1.2.4 三种主要的逻辑数据模型,三

20、、 关系模型(Relational Model) 1970,IBM,E.F.Codd 关系模型源于数学,它把数据看成是二维表(关系) 中的元素。(其严格定义下一章给出) 用关系表示(不需用指针)实体和实体之间联系的模 型称为关系模型。 对于用户,关系方法应该是很简单的,但RDBMS很 复杂,因为将大量工作都转嫁给了RDBMS。,1.2.4 三种主要的逻辑数据模型,RDBMS的设想在层次、网状数据库诞生的同时产生的,但研制开发RDBMS却花费了比人们想象的要长得多的时间。所以成为商品并投入使用比层次、网状数据库晚了十几年。但一投入使用就显示了旺盛的活力,并逐步取代层次、网状数据库。,1.3 数据

21、库系统的结构,1.3.1 数据库系统模式的概念 当设计数据库时,对数据库的结构感兴趣; 即模式(Schema):数据库中数据的逻辑结 构和特征的描述 当应用数据库时,关心的是数据库中存在的数据 实例(Instance)。 数据库中的数据经常变化,而数据库的结构在一定时 间范围内不会改变。 数据库中结构的定义可以在多个抽象级别进行,形成 多个级别的数据库模式。,1.3.2 数据库系统的三级模式结构,数据库系统的三级模式不仅可以使数据具有独立性,而且还可以使数据达到共享,使同一数据满足更多用户的不同要求。 一、 内模式(Internal Schema) 存储模式 是数据在数据库系统的内部表示,即对

22、数据的物 理结构/存储方式的描述,是低级描述,一般由 DBMS提供的语言或工具完成;,1.3.2 数据库系统的三级模式结构, 要修改存储数据库的结构(例如,用倒排文件代替多 链表),那么仅仅需要把这些修改反映在存储模式中; 通常我们不关心内模式的具体技术实现,而是从一般组 织的观点(即概念模式)或用户的观点(外模式)来讨 论数据库的描述。但我们必须意识到基本的内模式和存 储数据库的存在。,1.3.2 数据库系统的三级模式结构,二、 模式(Schema) 逻辑模式 是数据库中全体数据的逻辑结构和特性的描述, 是所有用户的公共数据视图; DBMS提供数据定义语言DDL来描述逻辑模式,严格定义数据的

23、名称、特征、相互关系、约束等。,1.3.2 数据库系统的三级模式结构,三、 外模式(External Schema) 用户模式(视图) 是模式的子集或变形,是与某一应用有关的数据的逻辑表示; 不同用户需求不同,看待数据的方式也可以不同 ,对数据保密的要求也可以不同,使用的程序设计语言也可以不同,因此不同用户的外模式的描述可以使不同的。,1.3.2 数据库系统的三级模式结构,举例: 民航售票系统包括处理航班程序和处理旅客程序。 - 程序的使用人员不必知道关于人事档案、丢失的行 李、飞行员的航行分配等信息; - 调度员可能需要知道关于航班、飞机和人事档案等 信息(如那些飞行员有资格驾驶747),但

24、不必知道雇员的工资、旅客等信息。 所以可以为订票部门建立一个数据库视图,为调度部门建立另一个完全不同的部门。,1.3.2 数据库系统的三级模式结构,Note:视图处理的数据并不实际存储在数据库中,而仅可以从逻辑数据库中构造出来。视图比(逻辑)模式的抽象级别更高。 举例:“年龄”在人事部门数据库中,但(逻辑)模式重金包含出生年月。当用户希望通过访问视图得到年龄时,DBMS翻译这个要求,在从物理数据库上取出的数据完成计算。,注:一个数据库只有一个模式,一个内模式,但可以有多个外模式。,1.3.3 数据库的二级映象,在三级模式中提供了两级映象,保证了数据库系统的数据独立 性,既物理独立性与逻辑独立性

25、。 一、 外模式/模式映象 数据库系统投入使用后,可能有必要修改模式(如增加新关系、属性、改变类型),这时: 重新定义外模式/模式映象=现存外模式不变=应用程序不变,1.3.3 数据库的二级映象,二、 模式/内模式映象 当内模式发生变化时: 重新定义模式/内模式映象=模式保持不变=外模式保持不变=建立在外模式上的应用程序保持不变,1.5 数据库技术的研究领域,1数据库管理系统软件的开发 2数据库设计 3数据库理论,第二章 关系数据库,1关系操作,查询操作:选择/ 投影/ 连接/ 除/ 并/ 交/ 差,2.1 关系模型概述 从数据模型的三要素加以介绍 一、数据结构 关系 二、 关系操作,增加、删

26、除、修改,2.1 关系模型概述,元组关系演算:谓词变元的基本对象是元组变量 域关系演算:谓词变元的基本对象是域变量,Note:关系代数和关系演算是抽象的查询语言,与具体的DBMS中实际语言不一样,但彼此等价,是从抽象的观点出发学习数据库查询的问题。 3关系数据语言,2关系操作的表示方法: 关系代数:用对关系的运算表达查询要求 关系演算:用谓词表达查询要求,2.1 关系模型概述,实体完整性,关系模型必须满足的完整性约束条件,参照完整性,三、关系的完整性约束条件,用户定义的完整性:针对某一具体数据库的约束条件 反映某一具体应用所设计的数据 必须满足的语义要求。,(关系系统自动支持),2.2 关系数

27、据结构及形式化定义,2.2.1 关系 一、 基本概念 1 域(Domain) 2 笛卡尔积(Cartesian Product),元组(Tuple),3 关系(Relation),分量(Component),候选码 Candidate Key,非码属性Non-key attribute,主码 Primark Key,全码 All-key,主属性Prime attribute,2.2 关系数据结构及形式化定义,二、关系的三种类型,基本关系(基本表):实际存在的表,是实际存 储数据的逻辑表示,查询表:查询结果对应的表 视图表 :由基本表或其它视图标导出的表, 虚表,不对应实际存储的数据,2.2.2

28、 关系模式,值(Value):是型的一个具体赋值 关系是值,型(Type):对某一类数据的结构和属性的说明,关系模式是型(关系模式是对关 系的描述),2.3 关系的完整性,(具体见萨师煊等主编数据库系统概论P52-55),2.4 关系代数(Relational Algebra),关系代数是对关系运算的总和,关系运算分两类:,2.4.1 传统的集合运算 并交差积(按行),2.4.2 专门的关系运算,选择/ 投影/ 连接/ 除(按行、列) 一、 几个记号和概念 元组,分量 属性列域,剩余属性组 元组的连接 象集 关系运算定义,第三章 关系数据库标准语言SQL,关系代数和关系演算是形式化查询语言,商

29、业DBMS使用SQL(Structured Query Language)。 1974 年由IBM 的San Jose研究室提出,最初叫SEQUEL(Structured English Query Language) 关系数据库系统通过SQL对数据库进行查询和更新 目前有许多不同版本的SQL语言,有两个不同的主要标准: ANSI(American National Standards Institute) 1986 ISO(International Standards Organization): SQL-89,SQL-92,SQL 2,正在制定SQL 3,3.1 SQL语言概貌及特点,一

30、、SQL特点 1 一体化 SQL是一种一体化的语言,它包括了数据定义、查询、 更新、控制四方面功能。 可以完成数据库活动中的全部工作 以前的非关系模型的数据语言一般包括:内模式描述语 言、模式描述语言、外模式描述语言、数据操纵语言等 。内容多,操作起来不像SQL那样简单。,3.1 SQL语言概貌及特点,2 高度非过程化 没有必要一步步地告诉计算机“如何”去做,只需描述清楚用户要“做什么”,SQL就可以将要求交给系统,自动完成全部工作。 3 面向集合的操作方式 操作对象、查询结果是元组的集合; 插入、删除、更新操作的对象也可以是元组的集合。,3.1 SQL语言概貌及特点,4 两种使用形式,统一的

31、语法结构,自含式:将SQL作为操作命令独立使用,现在许多数据库开发工具都将SQL直接融入到自身的语言中。,宿主式:将SQL嵌入到高级语言中使用,3.1 SQL语言概貌及特点,5 语言简洁 SQL虽然功能强且使用两种方式,但只有为数不多的几条命令,另外语法也非常简单,接近自然语言,易掌握、学习。 除了以上特点之外,SQL语言还支持数据库的三级模式结构。,3.1 SQL语言概貌及特点,二、SQL语言组成 SQL同一般的程序设计语言一样,由以下几个部分组成: 1 常量:文本常量(字符串)、整型常量、数值常量 2 数据类型:以IBM DB2 SQL为例,具体见萨师煊等主 编数据库系统概论P89 3 空

32、值:NULL,3.1 SQL语言概貌及特点,集合运算符:、-,算术运算符:+,-,*,/,5 . 函数 SQL 提供了非常丰富的内部函数聚集函数 (详见萨师煊等主编数据库系统概论P100),4. 运算符,字符串运算符:| (连接),比较运算符:6个,逻辑运算符:NOT,AND,OR,3.1 SQL语言概貌及特点,6 谓词 SQL为了具有强大的查询能力,提供了一系列的谓词: BETWEEN AND / NOT BETWEEN AND 介于两者之间 /介于两者之外 IN / NOT IN 在其中/不在其中 LIKE 匹配 IS NULL / IS NOT NULL EXISTS/ NOT EXIS

33、TS 存在/不存在量词 ANY 任意一个存在量词 ALL 全程量词,3.1 SQL语言概貌及特点,7 表达式 8 条件 由一个或多个含有比较运算符的表达试及逻辑运算符组合而成。 命令(具体见萨师煊等主编数据库系统概论P86 表3.1),3.2 数据定义,存储过程定义,基本表定义,定义功能,数据库的定义:和物理数据有关,以后介绍,视图定义,索引定义,规则定义,与数据完整性有关,以后介绍,3.2.1 定义、删除与修改基本表,(具体见萨师煊等主编数据库系统概论P88) 3.2.2 建立与删除索引 (具体见萨师煊等主编数据库系统概论P90) 在使用关系数据库系统时,用户所看到和操作的数据好像在简单的二

34、维表中,而实际上数据在磁盘上是如何存储的用户可能不知道。然而数据的物理存储如何却使数据库主要性能的主要因素。 索引时最常见的改善数据库性能的技术。,CREATE TABLE 表名(列名数据类型列级完整性约束条件,表级完整性约束条件 例:CREATE TABLE Student (Sno CHAR(5) NOT NULL UNIQUE,SNAME CHAR(20) UNIQUE,SSEX CHAR(1),SAGE INT,SDEPT CHAR(15);,修改基本表 ALTER TABLE 表名ADD新列名数据类型完整性约束 DROP完整性约束名 ALTER 列名数据类型; 例:向学生表增加“入学

35、时间”日期型 ALTER TABLE STUDENT ADD Scome date; 修改年龄为半字长整数 ALTER TABLE STUDENT ALTER SAGE SMALLINT,删除学生姓名必须取唯一值的约束。 DROP TABLE Student DROP UNIQUE Tag Sname DROP TABLE ,3.2.2 建立与删除索引,关于索引 索引的建立和删除由DBA或建表的人负责,用户不必也不能在存取数据是选择索引; 作为一般规则,不应该在一个表上建立太多的索引(2-3个)。索引能改善查询效果,但也耗费了磁盘空间。降低了更新操作的性能。因为系统必须花时间来维护这些索引;

36、表中数据越多,索引的优越性才越明显。,3.3.1 单表查询,指定列,消除重复行, 选择表中若干列,全部列,经计算的列, 选择表中若干元组,查询满足条件的元组, 对查询结果排序, 对查询结果分组,3.3.2 连接查询, 等值/非等值连接 自身连接 外连接 复合条件连接,3.3.3 嵌套查询, 带有IN谓词的查询 带有比较运算符的查询 带有ANY或ALL谓词的子查询 带有EXISTS谓词的查询,3.3.4 集合查询,具体见萨师煊等主编数据库系统概论P114,3.3.5 SELECT 语句的一般格式 具体见萨师煊等主编数据库系统概论P 115,3.4 数据更新,插入、修改、删除数据(具体见萨师煊等主

37、编数据库 系统概论P117) 一、插入数据 1 插入单个元组 2 插入子查询结果,3.4 数据更新,二、修改数据 1 修改一个元组的值 2 修改多个元组的值 3 带子查询的修改语句,3.4 数据更新,三、删除数据 1删除一个元组的值 2删除多个元组的值 3带子查询的删除语句 4更新操作与数据库的一致性,3.5 视 图,一、关于视图: 视图是原始数据库数据的一种变换,是查看表中数据 的另外一种方式; 可将视图看成是一个移动的窗口,通过它可看到感兴 趣的数据; 视图可从一个或多个实际表中获得; 视图的定义存在数据库中,而数据并没再存一份在数 据库中,通过视图看到的数据存放在基本表中; 对视图的操作

38、同其它表一样,通过视图修改数据时, 实际是修改基本表中的数据,相反,基本表数据的改 变也会自动反映在由基本表产生的视图中。,3.5 视 图,二、视图的作用 1 简单性 看到的就是用户需要的 不仅可简化用户对数据的理解,也可简化它们的操 作。经常使用的查询可以被定义为视图。,3.5 视 图,2 安全性 通过视图用户只能查询和修改他们能见到的数据, 数据库其它数据则既看不到也取不到。 数据库授权命令可是用户对数据库的检索限制到特 定的数据库对象上,但不能授权到数据库特定的行 、列上。 视图可防止未授权用户查看特定的行/列 3 逻辑数据独立性,3.5 视 图,一、 定义视图 具体见萨师煊等主编数据库

39、系统概论P121-124 二、 查询视图 具体见萨师煊等主编数据库系统概论P125 三、 更新视图 具体见萨师煊等主编数据库系统概论P126,3.6 数据控制,SQL数据控制功能对数据库中数据的安全控制提供保护,主要表现在对数据使用的授权(GRANT)和收回授权(REVOKE)。 每个用户对自己拥有的资源可以由任意的操作权限,同时也可以把其中的一部分权限授予他人。 (具体见萨师煊等主编数据库系统概论P130),3.6 数据控制,一、授权,3.6 数据控制,二、收回权限 注:授权(GRANT)和收回授权(REVOKE)并不是数据库的全部控制功能,只是其中的一小部分,其它功能如安全性、完整性、并发

40、控制和恢复在7、8、9、10章介绍。,3.7 嵌入式SQL,前面几节介绍的SQL,,是作为独立的数据语言直接由用户在交互环境下使用的。此外,SQL还可以作为子语言嵌入在宿主语言(PASCAL、C等)中使用。 SQL作为子语言嵌入在宿主语言中使用必须要解决以下三方面问题: 1嵌入识别问题 宿主语言的编译程序不能识别SQL语句,所以首要问题要解决如何区分宿主语言的语句和SQL语句。,3.7 嵌入式SQL,2 宿主语言与SQL语言的数据通信问题 DBMS将SQL语句的查询结果或执行状态必须交给宿主语言/应用程序处理(通过SQLCA);运行时,宿主语言的数据通过变量(称为主变量)也要能够交给SQL使用

41、。 3 宿主语言的单记录与SQL的多记录的问题 宿主语言一般一次处理一条记录;SQL语言常常处理的是记录(元组)的集合,其查询结果通常是含多个记录的一张表。“阻抗不匹配” 本节将围绕如何解决这三个问题来介绍。,3.7 嵌入式SQL,一、 嵌入识别与预编译 解决方法:为SQL语句加一个特殊的前缀。 在用宿主语言的编译系统编译源程序之前,首先由预编译系统将SQL语句转换为宿主语言的合法函数调用。,3.7 嵌入式SQL,3.7 嵌入式SQL,一、 数据通信区与主变量 1数据通信区SQLCA SQL Communication Area 在嵌入SQL语句的程序中,一般在程序的前部 都要有一条语句: E

42、XEC SQL INCLUDE SQLCA 这里SQLCA即是SQL与宿主语言的通信区,它 类似于结构变量,各个变量分别反映SQL语句 的各种执行状态。,3.7 嵌入式SQL,DBMS:数据库厂商标识,0:成功,例如:SQL Anywhere 中SQLCA有16个属性:,SQLCode (long): 存放执行SQL后返回的代码,100:SELECT找不到符合条件的记录,-1:SQL操作错误,DataBase,Userid,DBPass,SQLErrText:错误代码,SQLDBCode:错误信息,3.7 嵌入式SQL,SQL被执行时,DBMS将产生的各类系统信息(如执行状态信息)写入系统通信

43、区,应用程序在调用SQL后,可通过读取数据通信区中信息来确定语句执行情况。,应用通过SQLCA与数据库通信,3.7 嵌入式SQL,输出主变量:SQL对其赋值或设置状态信息,返回给应 用程序。 利用它可得到SQL语句的结果数据和状态。,输入主变量:由应用程序赋值,SQL引用。 可用于:插入数据、修改值、制定条件 (WHERE),2 主变量 SQL语句使用宿主语言的变量来输入/输出数据,主变量(Host Variable),主变量根据作用不同分为:,3.7 嵌入式SQL,Note:所有变量要在 BEGIN DECLARE SECTION END DECLARE SECTION 之间说明。,3.7

44、嵌入式SQL,三、 游标(Cursor) 当查询结果超过一个元组时,不能一次性将结果值赋给宿主语言的变量,因为主变量仅能保存一个数据,而不是一组数据。为此,引进一个特殊的数据结构游标(Cursor)。 游标是系统为用户开设的一个数据缓冲区,存放SQL的执行结果。可将其理解为一个指示器,指向数据库中满足条件的元组。 游标包含两部分内容:,结果集:游标内SELECT语句执行后产生的集合;,游标位置:游标指针的当前位置。,3.7 嵌入式SQL,游标的定义和使用分为下面几步: 声明游标 不可执行的指令,仅定义游标,SELECT语句没有执行 (类似于变量说明) 打开游标 执行SELECT语句,将结果放入

45、结果集中。 推进游标 移动指针,该变结果集的当前记录。 通过游标更新数据 关闭游标 程序实例(具体见萨师煊等主编数据库系统概论 P136-146),第四章 关系系统及查询优化,具体见萨师煊等主编数据库系统概论P151-167,4.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 一个实例,第五章 关系数据理论,数据库设计的一个

46、最基本的问题是如何建立一个好的数据库模式。 即给出一组数据,如何构造一个适合于它们的数据模式,使数据库系统无论是在数据存储方面,还是在数据操纵方面都有较好的性能。 E-R模型方法讨论了实体与实体之间的数据联系,现在来讨论实体内部属性与属性之间的数据关联,目标是要设计一个“好”的数据库模型。,5.1 问题的提出,1关系模型定义复习 2在解决如何设计一个好的数据库模式之前,先看一 看什么是“不好”的数据库设计(关系数据库模式可 能出现的异常)。 例:建立一个关系数据库来描述学生的一些情况, 该数据库只包含一个关系模式: 学生(学号,姓 名,系名,系主任,课程,成绩) 3. 例:具体见萨师煊等主编数

47、据库系统概论P171 页,5.1 问题的提出,(1)存在的问题: i. 数据冗余:姓名,系名,系=重复出现。 ii. 更新异常:某一元组修改系主任,其他不变= 同一系,系主任不同,造成了数据潜在的不一致 性。 iii. 插入异常:系刚成立,尚未招收学生,主关键字 为空,则系主任、选的课都无法存入数据库,未 选课的学生信息也无法存入。 删除异常:一个系的学生毕业了,删除这些学生的记录,则系主任等信息也删除掉了。,5.1 问题的提出,(2)产生异常的原因: 这些异常的产生主要是因为关系模式的结构,即关系模式中的属性之间存在过多的数据依赖关系,与现实世界不符合。 注:数据依赖关系最重要的一类是函数依赖。 主关键字(学号+课程)一定,元组就确定了, 元组分量也就确定了,即所有其它属性都依赖于 “学号”和“课程”。 但实际:学号姓名,不需选课。 系名系主任。,5.1 问题的提出,(3)解决: 分解为三个新的关系模式: 学生(学号,姓名,系名) 成绩(学号,课程,成绩) 系(系名,系主任) 这样上面提到的问题不存在了,将学生、成绩和系三个相对独立的实体划分开来,使之更符合现实世界的实际。,5.2 规范化(Normalization),5.2.1 函数依赖(Functional Dep

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1