全套电子课件:数据库原理及应用(第2版)

上传人:工**** 文档编号:568772095 上传时间:2024-07-26 格式:PPT 页数:723 大小:8.31MB
返回 下载 相关 举报
全套电子课件:数据库原理及应用(第2版)_第1页
第1页 / 共723页
全套电子课件:数据库原理及应用(第2版)_第2页
第2页 / 共723页
全套电子课件:数据库原理及应用(第2版)_第3页
第3页 / 共723页
全套电子课件:数据库原理及应用(第2版)_第4页
第4页 / 共723页
全套电子课件:数据库原理及应用(第2版)_第5页
第5页 / 共723页
点击查看更多>>
资源描述

《全套电子课件:数据库原理及应用(第2版)》由会员分享,可在线阅读,更多相关《全套电子课件:数据库原理及应用(第2版)(723页珍藏版)》请在金锄头文库上搜索。

1、数 据 库 原 理 与 应 用26 七月 2024数据库原理与应用第1章 数据库技术概述第2章 关系数据库第3章 关系数据库的标准语言SQL第4章 关系数据库设计第5章 数据库保护第7章 C/S数据库及Web数据库第8章 开放的客户端开发及主流数据库产品内 容课 程 简 介26 七月 2024数据库原理与应用数据库技术是数据管理的技术,是计算机科学的重要组成部分。近年来数据库技术发展迅速,各种应用领域对数据管理的需求越来越多,各种信息系统都离不开数据库的支持。因此,数据库已成为信息社会的重要基础设施。数据库原理与应用是面向非计算机专业学生开设的一门必修的计算机基础课程。它的主要任务是研究如何存

2、储、使用和管理数据。目的是使学生掌握数据库的基本原理、方法和应用技术,能有效使用数据库技术解决数据处理中的实际问题。课 程 学 习 方 法26 七月 2024数据库原理与应用 本课程理论与应用并重,理论指导应用,而应用将加深对理论的理解。 本课程内容由理论和应用两部分组成,理论部分概念多,较难理解与掌握;应用部分命令多,难于记忆但易于掌握。 学习理论部分,注意掌握基本概念与方法。学习应用部分,注意掌握SQL语言基本命令的功能、使用方法及其SQL Server 2000数据库的操作与使用方法。26 七月 2024数据库原理与应用 充分利用章末习题。习题是本课程的重要组成部分,独立认真完成章末习题

3、有助于加深对内容的理解、掌握并巩固概念,同时也是复习、检查、自我考核的一种有效方法。26 七月 2024数据库原理与应用 充分利用章末案例。案例提供了真实的数据库应用场景,认真研究领会案例内容,有助于从实际应用的角度出发,去联系所学理论,掌握所学内容。26 七月 2024数据库原理与应用 充分利用章末实验。实验提供了将理论与实践相结合的具体上机操作途径,是学习数据库的有效手段,通过在计算机上的操作来学习并记忆各类命令、掌握程序设计方法以及操作与使用数据库,往往可以起到事半功倍的效果。26 七月 2024数据库原理与应用第1章 数据库技术概述第1章 数据库技术概述26 七月 2024数据库原理与

4、应用第1章 数据库技术概述内 容1.1 数据库的作用及相关概念数据库的作用及相关概念1.2 数据库技术与发展数据库技术与发展 1.3 数据库系统结构数据库系统结构1.4 数据模型数据模型小结小结26 七月 2024数据库原理与应用第1章 数据库技术概述1.1 数据库的作用及相关概念1.1.1 数据与信息数据与信息1.1.2 数据管理与数据库数据管理与数据库1.1.3 数据库管理系统与管理信息系统数据库管理系统与管理信息系统26 七月 2024数据库原理与应用第1章 数据库技术概述1.1.1 数据与信息1 1. . 信息信息2 2数据数据26 七月 2024数据库原理与应用第1章 数据库技术概述

5、1.信息 概念概念 特征特征 作用作用26 七月 2024数据库原理与应用第1章 数据库技术概述 概念概念 信息泛指通过各种方式传播的,可被感受的数字、文字、图像和声音等符号所表征的某一事物的新的消息、情报和知识。 信息是观念型的东西,是人们头脑对现实事物的抽象反映。它与载体无关。26 七月 2024数据库原理与应用第1章 数据库技术概述 特征特征信息的内容是关于客观事物或思想方面的知识,即信息的内容能反映己存在的客观事实、能预测未发生事物的状态和能用于指挥控制事物发展的决策:信息是有用的,它是人们活动的必需知识,利用信息能够克服工作中的盲目性,增加主动性和科学性,可以把事情办得更好;信息能够

6、在空间和时间上被传递,在空间上传递信息称为信息通信,在时间上传递信息称为信息存储;信息需要一定的形式表示,信息与其表现符号不可分离。26 七月 2024数据库原理与应用第1章 数据库技术概述 作用作用 可以提高人们对事物的认识,减少人们活动的盲目性; 是社会机体进行活动的纽带,社会的各个组织通过信息网相互了解并协同工作,使整个社会协调发展; 是管理活动的核心,要想把事物管理好,就需要掌握更多的信息,并利用信息进行工作。26 七月 2024数据库原理与应用第1章 数据库技术概述2数据 概念概念 特征特征 数据与信息的关系数据与信息的关系26 七月 2024数据库原理与应用第1章 数据库技术概述

7、概念概念数据是记录信息的物理符号,是表达和传递信息的工具。数据是信息的最佳表现形式。在不严格的情况下,对数据和信息两个概念不进行区分。26 七月 2024数据库原理与应用第1章 数据库技术概述 特征特征 有有“型型”和和“值值”之分之分 受数据类型和取值范围的约束受数据类型和取值范围的约束 有定性表示和定量表示之分有定性表示和定量表示之分 具有载体和多种表现形式具有载体和多种表现形式26 七月 2024数据库原理与应用第1章 数据库技术概述 有有“型型”和和“值值”之分之分数据的型:数据的型:指数据的结构,数据的值:数据的值:指数据的具体取值。数据的结构:数据的结构:指数据的内部构成和对外联系

8、。26 七月 2024数据库原理与应用第1章 数据库技术概述 受数据类型和取值范围的约束受数据类型和取值范围的约束数据类型是针对不同的应用场合设计的。数据类型不同,数据表示形式、存储方式及数据能进行的操作运算各不相同。值域:值域:数据的取值范围为数据设置值域是保证数据的有效性及避免数据输入或修改时出现错误的重要措施。26 七月 2024数据库原理与应用第1章 数据库技术概述 有定性表示和定量表示之分有定性表示和定量表示之分定性表示:定性表示:带有模糊因素的粗略表示方式;定量表示:定量表示:描述事物的精确表示方式。职工年龄职工年龄定性表示: “老”、“中”、“青” ;定量表示:具体岁数。26 七

9、月 2024数据库原理与应用第1章 数据库技术概述 具有载体和多种表现形式具有载体和多种表现形式 数据是对客观物体或概念的属性的记录,它必须有一定的物理载体。 载体:载体: 纸张、硬盘、软盘、磁带。 表现形式:表现形式: 报表、图形、语音、不同的语言符号。26 七月 2024数据库原理与应用第1章 数据库技术概述 数据与信息的关系数据与信息的关系 数据是信息的载体,信息则是对数据加工的结果,是对数据的解释。数据数据处理器处理器信息信息存储器存储器请按键请按键26 七月 2024数据库原理与应用第1章 数据库技术概述1.1.2 数据管理与数据库1 1数据处理数据处理2 2数据管理数据管理3 3数

10、据库数据库 26 七月 2024数据库原理与应用第1章 数据库技术概述1数据处理 概念概念 分类分类26 七月 2024数据库原理与应用第1章 数据库技术概述 概念概念 围绕着数据所做的工作均称为数据处理。 数据处理是指对数据的收集、组织、整理、加工、存储和传播等工作。26 七月 2024数据库原理与应用第1章 数据库技术概述 分类分类 数据管理:数据管理:主要任务是收集信息、将信息用数据表示并按类别组织保存,其目的是在需要的时候,为各种应用和数据处理提供数据; 数据加工:数据加工:主要任务是对数据进行变换、抽取和运算,通过数据加工会得到更有用的数据,以指导或控制人的行为或事物的变化趋势; 数

11、据传播:数据传播:指在空间或时间上以各种形式传播信息,而不改变数据的结构、性质和内容,数据传播会使更多的人得到并理解信息,从而使信息的作用充分发挥出来。26 七月 2024数据库原理与应用第1章 数据库技术概述2数据管理 作用作用 内容内容26 七月 2024数据库原理与应用第1章 数据库技术概述 作用作用 在数据处理中,最基本的工作是数据管理工作。 数据管理是其他数据处理的核心和基础。26 七月 2024数据库原理与应用第1章 数据库技术概述 内容内容组织和保存数据组织和保存数据:收集到的数据合理地分类组织,将其存储在物理载体上,使数据能够长期地被保存;数据维护:数据维护:根据需要随时进行插

12、入新数据、修改原数据和删除失效数据的操作;提供数据查询和数据统计功能:提供数据查询和数据统计功能:以便快速得到需要的正确数据,满足各种使用要求。26 七月 2024数据库原理与应用第1章 数据库技术概述3数据库 概念概念 数据库中数据的性质数据库中数据的性质26 七月 2024数据库原理与应用第1章 数据库技术概述 概念概念 数据库是一个长期存储在计算机内、有组织的、可共享的、统一管理的数据集合。它是一个按数据结构来存储和管理数据的计算机软件系统。 26 七月 2024数据库原理与应用第1章 数据库技术概述 数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数

13、据,“数据”和“库”两个概念结合成为“数据库”; 数据库是数据管理的新方法和技术,它能够更合理地组织数据、更方便地维护数据、更严密地控制数据和更有效地利用数据。 26 七月 2024数据库原理与应用第1章 数据库技术概述 数据库中数据的性质数据库中数据的性质 数据整体性数据整体性 数据共享性数据共享性26 七月 2024数据库原理与应用第1章 数据库技术概述 数据整体性数据整体性 数据库是一个单位或一个应用领域的通用数据处理系统,它存储的是属于企业和事业部门、团体和个人的有关数据的集合。 数据库中的数据是从全局观点出发建立的,它按一定的数据模型组织、描述和储存,其结构基于数据间的自然联系,从而

14、可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化。26 七月 2024数据库原理与应用第1章 数据库技术概述 数据共享性数据共享性 数据库中的数据是为众多用户所共享其信息而建立的,它己经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据库中的数据。多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。 数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。26 七月 2024数据库原理与应用第1章 数据库技术概述1.1.3 数据库管理系统与管理信息系统1数据库管理系统数据库管理系统2信息系

15、统信息系统3管理信息系统管理信息系统26 七月 2024数据库原理与应用第1章 数据库技术概述1. 数据库管理系统(DBMS) 是为数据库的建立、使用和维护而配置的系统软件。它建立在操作系统的基础上,对数据库进行统一的管理和控制。 DBMS可以进一步被定义为是可用来管理数据库并与数据库相互作用的工具。 DBMS是提供DB管理的计算机系统软件。DBMS的目标是让用户能够更方便、更有效、更可靠地建立DB和使用DB中的信息资源。26 七月 2024数据库原理与应用第1章 数据库技术概述2信息系统 信息系统概念信息系统概念 信息系统的分类信息系统的分类26 七月 2024数据库原理与应用第1章 数据库

16、技术概述 信息系统概念信息系统概念信息系统(Information System)的涵盖面很宽,输入数据并输出信息的系统都称为信息系统。一个信息系统应携带有足够的信息量。26 七月 2024数据库原理与应用第1章 数据库技术概述 信息系统的分类信息系统的分类( (按实现的功能按实现的功能) )信息传递系统信息传递系统 只具有信息交换功能,系统工作中不改变信息的结构和状态,例:电话、程控交换系统都是信息传递系统。信息处理系统信息处理系统 通过对输入信息进行转换、加工和提取等一系列操作,得出更有价值的新信息,其输出信息在结构和内容方面与输入的源信息相比有较大改变。 信息管理系统信息管理系统 具有数

17、据的保存、维护和检索等功能的系统,其作用主要是数据管理,人们通常所说的事务管理系统就是典型的信息管理系统。26 七月 2024数据库原理与应用第1章 数据库技术概述3. 管理信息系统(MIS) MIS帮助人们完成原来需要手工处理的复杂工作,它不仅能明显地提高工作效率,降低劳动强度,而且能提高信息管理的质量或水平。 MISMIS:更合理地组织数据和更科学地管理数据,为控制事务发展提供控制信息,为预测事务变化的状态提供事务发展趋势信息和变化规律的信息。 MIS以数据库技术为基础,它的核心是数据库。26 七月 2024数据库原理与应用第1章 数据库技术概述1.2 数据管理技术的发展1.2.1 手工管

18、理阶段手工管理阶段1.2.2 文件系统阶段文件系统阶段1.2.3 数据库系统阶段数据库系统阶段26 七月 2024数据库原理与应用第1章 数据库技术概述1.2.1 手工管理阶段20世纪50年代中期以前,计算机主要用于科学计算。硬件存储设备主要有磁带、卡片机、纸带机等,还没有磁盘等直接存取的存储设备。软件上也处于初级的阶段,没有操作系统(OS)和管理数据的工具。数据处理方式是批处理。数据的组织和管理完全靠程序员手工完成。 26 七月 2024数据库原理与应用第1章 数据库技术概述该阶段数据管理效率很低,特点: 数据不保存 没有对数据进行管理的软件系统 没有文件的概念 一组数据对应于一个程序,数据

19、面向应用26 七月 2024数据库原理与应用第1章 数据库技术概述手工管理阶段的特点26 七月 2024数据库原理与应用第1章 数据库技术概述1.2.2 文件系统阶段20世纪50年代后期到60年代中期,计算机应用领域拓宽,不仅用于科学计算,还大量用于数据管理。在文件系统阶段中,计算机外存储器有了磁盘、磁鼓等直接存取的存储设备。计算机软件的OS中己经有了专门的管理数据软件,即所谓的文件系统。文件系统的处理方式不仅有文件批处理,而且还能够联机实时处理。 26 七月 2024数据库原理与应用第1章 数据库技术概述数据管理的特点:数据管理的特点: 数据需要长期保留在外存上供反复使用 程序和数据之间有了

20、一定的独立性 文件的形式已经多样化 数据的存取基本以记录为单位 26 七月 2024数据库原理与应用第1章 数据库技术概述文件系统阶段程序和数据之间的关系26 七月 2024数据库原理与应用第1章 数据库技术概述1.2.3 数据库系统阶段20世纪60年代后期,计算机被越来越多地应用于管理领域,且规模越来越大,因此数据量也急剧增长。人们对数据共享的要求越来越强烈。“数据库”的概念应运而生。 26 七月 2024数据库原理与应用第1章 数据库技术概述用数据库管理数据有如下的特点:用数据库管理数据有如下的特点: 数据结构化数据结构化 数据共享数据共享 减少了数据冗余减少了数据冗余 有较高的数据独立性

21、有较高的数据独立性 方便的用户接口方便的用户接口 统一的数据管理与控制功能统一的数据管理与控制功能 26 七月 2024数据库原理与应用第1章 数据库技术概述 数据结构化数据结构化在文件系统阶段,只考虑了同一文件记录内部数据项之间的联系,而不同文件的记录之间是没有联系的,也就是说,从整体上看数据是无结构的。在数据库中,实现了整体数据的结构化,把文件系统中简单的记录结构变成了记录和记录之间的联系所构成的结构化数据。在描述数据的时候,不仅要描述数据本身,还要描述数据之间的联系。数据之间的联系通过存取路径来实现,把相关的数据有机地组织在一起。26 七月 2024数据库原理与应用第1章 数据库技术概述

22、 数据共享数据共享数据库中的数据是考虑所有用户的数据需求、面向整个系统组织的,而不是面向某个具体应用的。因此数据库中包含了所有用户的数据成分,但每个用户通常只用到其中一部分数据。不同用户所使用的数据可以重叠,同一部分数据也可为多用户共享,如图所示。26 七月 2024数据库原理与应用第1章 数据库技术概述 减少了数据冗余减少了数据冗余在数据库方式下,用户不是自建文件,而是取自数据库中的某个子集,它并非独立存在,而是靠DBMS从数据库中映射出来的,所以叫做逻辑文件。如图所示,用户使用的是逻辑文件,因此尽管一个数据可能出现在不同的逻辑文件中,但实际上的物理存储只可能出现一次,减少了数据冗余。 26

23、 七月 2024数据库原理与应用第1章 数据库技术概述 有较高的数据独立性有较高的数据独立性数据独立性是指数据库中的数据与应用程序之间不存在依赖关系,而是相互独立的。26 七月 2024数据库原理与应用第1章 数据库技术概述 方便的用户接口方便的用户接口用户不仅可以通过数据库系统提供的查询语言交互式命令来操纵数据库,也可以通过程序方式编程来操纵数据库,这样就拓宽了数据库的应用面。26 七月 2024数据库原理与应用第1章 数据库技术概述 统一的数据管理与控制功能统一的数据管理与控制功能数据库中的数据不仅要由数据库管理系统进行统一的管理,同时还要进行统一的控制。主要的控制功能有: 数据的完整性数

24、据的完整性 数据的安全性数据的安全性 并发控制并发控制 数据库的恢复数据库的恢复26 七月 2024数据库原理与应用第1章 数据库技术概述 数据的完整性数据的完整性数据的完整性在DB的应用中是很重要的,为了保证DB的正确性,要使用数据库系统提供的存取方法设计一些完整性规则,对数据值之间的联系进行校验。 26 七月 2024数据库原理与应用第1章 数据库技术概述 数据的安全性数据的安全性要保护DB以防止不合法的使用,避免数据的丢失、被窃取。在实际的应用中,并非每个应用都应该存取DB中的全部数据。它可能仅仅是对DB中的一部分数据进行操作。 26 七月 2024数据库原理与应用第1章 数据库技术概述

25、 并发控制并发控制当多个用户同时存取、修改DB中的数据时,可能会发生相互干扰,使DB中数据的完整性受到破坏,而导致数据的不一致性、DB的并发控制防止了这种现象的发生,提高了DB的利用率。 26 七月 2024数据库原理与应用第1章 数据库技术概述 DB DB的恢复的恢复当出现软硬件的故障,数据库系统应具有恢复能力,能把DB恢复到最近某个时刻的正确状态。 26 七月 2024数据库原理与应用第1章 数据库技术概述1.3 数据库系统结构1.3.1 DB DB体系结构体系结构1.3.2 数据库系统的组成数据库系统的组成1.3.3 DBDB应用系统体系结构应用系统体系结构 26 七月 2024数据库原

26、理与应用第1章 数据库技术概述数据库系统数据库系统(DBS)(DBS):是实现有组织、动态地存储大量相关的结构化数据、方便各类用户访问数据库的计算机软/硬件资源的集合。可从不同的层次或不同的角度来分析DBS结构:从DBMSDBMS的角度来看,DBS通常采用三级模式结构,这是DBMS内部的系统结构,通常称作数据库体系结构;从数据库最终用户最终用户的角度看,DBS结构也可以说就是面向用户的数据库应用系统,它可以分为三个层次和多种类型,这是DBS外部的体系结构,简称DBS体系结构或者数据库应用系统体系结构。26 七月 2024数据库原理与应用第1章 数据库技术概述1.3.1 DB体系结构1 1三级模

27、式结构三级模式结构2 2两级映像两级映像3 3两级数据独立性两级数据独立性4 4DBDB的抽象层次的抽象层次5 5数据库的数据模式与数据模型的关系数据库的数据模式与数据模型的关系 26 七月 2024数据库原理与应用第1章 数据库技术概述 DBDB体系结构:体系结构:DB的总框架。 DBS在总的体系结构上具有:外部级、概念级、内部级外部级、概念级、内部级三级结构的特征 外部级外部级:最接近用户,是单个用户所能看到的数据特性; 概念级概念级:涉及所有用户的数据定义; 内部级内部级:最接近物理存储设备,涉及到物理数据存储的结构; 三级结构称为:DBDB的体系结构的体系结构,也称为“三级模式结构三级

28、模式结构”,或“数据抽象的三个级别数据抽象的三个级别”。26 七月 2024数据库原理与应用第1章 数据库技术概述1三级模式结构模式模式: : 对DB中全体数据的逻辑结构和特征的描述,数据模式是DB的框架,反映的是DB中数据的结构及其相互关系。 DBDB的三级模式:的三级模式: 概念模式概念模式 外模式外模式 内模式内模式 26 七月 2024数据库原理与应用第1章 数据库技术概述DB的三级模式结构26 七月 2024数据库原理与应用第1章 数据库技术概述 概念模式(模式、DB模式、逻辑模式)DBDB中全部数据整体逻辑结构和特征的描述。中全部数据整体逻辑结构和特征的描述。是现实世界中一个组织或

29、部门实体及其联系的抽象模型在具体DBS中的实现。一个DB只有一个概念模式,是DBS三级模式结构的中间层。是DB中全体数据的逻辑描述,而不是DB本身,它是装配数据的一个结构框架。概念模式由DBMS提供的DDL来定义和描述。26 七月 2024数据库原理与应用第1章 数据库技术概述 外模式(子模式、用户模式)是用户观念下局部数据结构的逻辑描述,是DB用户能够看见和使用的局部数据的逻辑结构和特征的描述。是用户与DBS之间的接口。不同用户的外模式不相同。一个DB可以有多个外模式,外模式表示了用户所理解的实体、实体属性和实体间的联系。外模式是概念模式的一个逻辑子集。外模式由DBMS提供的DDL来定义和描

30、述。 26 七月 2024数据库原理与应用第1章 数据库技术概述设置外模式的优点:设置外模式的优点:方便用户使用,简化用户接口;保证数据的独立性;有利于数据共享;有利于数据安全和保密。26 七月 2024数据库原理与应用第1章 数据库技术概述 内模式(存储模式)是对DB中数据物理结构和存储方式的描述,是数据在DB内部的表示形式。一个DB只有一个内模式。在内模式中规定了所有数据的物理组织,以及优化性能、响应时间和存储空间需求等信息。是DBMS管理的最低层,它是物理存储设备上存储数据时的物理抽象。内模式由DBMS提供的DDL来定义和描述。 26 七月 2024数据库原理与应用第1章 数据库技术概述

31、 分层抽象的分层抽象的DBDB结构可归纳为结构可归纳为4 4点:点: 对一个DB的整体逻辑结构和特征的描述,即DB的概念结构是独立于DB其他层次结构即内模式的描述。 当定义DB的层次结构时,应首先定义全局逻辑结构,而全局逻辑结构是根据整体数据规划时得到的概念结构,结合选用的数据模型定义的。 26 七月 2024数据库原理与应用第1章 数据库技术概述 一个DB的内模式依赖于概念模式,它具体地将概念模式中所定义的数据结构及其联系进行适当的组织,并给出具体存储策略,以最优的万式提高时空效率。 内模式独立于外模式,也独立于具体的存储设备。26 七月 2024数据库原理与应用第1章 数据库技术概述 用户

32、逻辑结构即外部模式是在全局逻辑结构描述的基础上定义的,它独立于内模式和存储设备。26 七月 2024数据库原理与应用第1章 数据库技术概述 特定的应用程序是在外模式描述的逻辑结构上编写的,它依赖于特定的外模式。 由于应用程序只依赖于外模式,所以也独立于内模式和存储设备,并且概念模式的改变不会导致相对应的外模式的变化,应用程序也独立于概念模式。26 七月 2024数据库原理与应用第1章 数据库技术概述2两级映像DBS的三级模式是对数据进行三个级别的抽象,使用户能逻辑地抽象地处理数据,而不必关心数据在机器中的具体表示方式和存储方式。为实现三个抽象级别的联系和转换,DBMS提供两个层次的映像: 外模

33、式外模式/ /概念模式映像概念模式映像 概念模式概念模式/ /内模式映像内模式映像 映像映像: :是一种对应规则,它指出了映像双方是如何进行转换的。26 七月 2024数据库原理与应用第1章 数据库技术概述 外模式外模式/ /概念模式映像概念模式映像定义各外模式与概念模式间的映像关系。对应于同一个概念模式可有多个外模式,每个外模式,DBS都有一个外模式/概念模式映像,它定义了该外模式与概念模式间的对应关系。映像定义常在各自的外模式中加以描述。26 七月 2024数据库原理与应用第1章 数据库技术概述 概念模式概念模式/ /内模式映像内模式映像定义DB全局逻辑结构与存储结构间的对应关系。因这两级

34、的数据结构可能不一致,即记录类型、字段类型的命名和组成可能不一样,故该映像说明概念记录和内部记录间的对应性。概念模式/内模式映像一般是在内模式中加以描述。26 七月 2024数据库原理与应用第1章 数据库技术概述3两级数据独立性 物理数据独立性物理数据独立性若修改DB的内模式(DB的物理结构有所变化),则只修改概念模式/内模式映像即可。可使概念模式尽可能保持不变,即对内模式的修改尽量不影响概念模式,对外模式和应用程序的影响则更小。 逻辑数据独立性逻辑数据独立性若修改DB的概念模式(增加记录类型或增加数据项),则只修改外模式/概念模式映像,可使外模式和应用程序尽可能保持不变。 26 七月 202

35、4数据库原理与应用第1章 数据库技术概述DB三级模式体系结构是数据管理的结构框架,按照其组织的数据是DB的内容。设计DB时,主要是定义DB的各级模式;在用户使用DB时,关心的是DB的内容。DB的模式通常是相对稳定的,而DB的数据则是经常变化的。26 七月 2024数据库原理与应用第1章 数据库技术概述4DB的抽象层次DBS的三级模式结构定义了DB的三个抽象层次: 物理物理DBDB 概念概念DBDB 逻辑逻辑DBDBDB的三种不同模式只是提供处理数据的框架,而填入这些框架中的数据才是DB的内容。根据三级模式结构引出的DB抽象层次,是从不同角度观察DB的视图。26 七月 2024数据库原理与应用第

36、1章 数据库技术概述 物理物理DB(DB(系统程序员视图,或数据的存储结构系统程序员视图,或数据的存储结构) )以内模式为框架的DB称为物理DB。DB中最里面的一个层次,是物理存储设备上实际存储着的数据集合(原始数据)。是系统程序员用文件方式组织的一个个物理文件(存储文件)。他们编制专门的存取程序,实现对文件中数据的存取。26 七月 2024数据库原理与应用第1章 数据库技术概述 概念概念DBDB以概念模式为框架的DB称为概念DB。它是DB结构中的中间层次,是DB的整体逻辑表示,它描述每一个数据的逻辑定义及数据间的逻辑联系。概念DB描述了DBS所有对象的逻辑关系,不涉及它们的物理存储情况。概念

37、DB本身并不是一个实际存在的DB,而是实际存在的物理DB的一种逻辑描述。数据库管理员概念下的DB,称DB管理员的视图。26 七月 2024数据库原理与应用第1章 数据库技术概述 逻辑逻辑DBDB以外模式为框架的DB称为逻辑DB。它是DB结构最外一层,是用户所看到和使用的DB,故称为用户DB或用户视图。逻辑DB是某个或某些用户使用的数据集合,即用户看到和使用的那部分数据的逻辑结构(称为局部逻辑结构)。用户根据系统提供的外模式用查询语言或应用程序对DB的数据进行所需的操作。 26 七月 2024数据库原理与应用第1章 数据库技术概述对一个DBS而言,实际存在的是物理DB,它是数据访问的基础。概念D

38、B是物理DB的抽象表示,用户DB是概念DB的部分抽取,是用户与DB的接口。DBMS的中心工作之一就是完成三个层次DB之间的转换,把用户对DB的操作转化成对物理DB的操作。DBMS实现映像的能力,将直接影响该DBS能够达到的数据独立性的程度。26 七月 2024数据库原理与应用第1章 数据库技术概述5DB的数据模式与数据模型的关系概念模式和子模式建立在逻辑数据模型上;概念上的区别:概念上的区别:数据模式是一个DB的基于特定数据模型的结构定义,它是数据模型中有关数据结构及其相互关系的描述,仅是数据模型的一部分。26 七月 2024数据库原理与应用第1章 数据库技术概述1.3.2 DBS的组成1 1

39、硬件支撑环境硬件支撑环境2 2软件系统软件系统3 3DBDB4 4人员人员5 5DBMSDBMS26 七月 2024数据库原理与应用第1章 数据库技术概述1硬件支撑环境硬件是存储DB和运行DBMS的物质基础。DBSDBS对硬件的要求:对硬件的要求:有足够大的内存以存放OS、DBMS例行程序、应用程序、数据库表等;有大容量的直接存取的外存储器,供存放数据和系统副本;有较强的数据通道能力以提高数据处理速度;有些DBS还要求提供网络环境。26 七月 2024数据库原理与应用第1章 数据库技术概述2软件系统 DBMS DBMSDBMS是DBS的核心,用于DB的建立、使用和维护。 支持支持DBMSDBM

40、S运行的运行的OSOSDBMS向OS申请所需的软/硬件资源,并接受OS的控制和调度,OS是DBMS与硬件之间的接口。 具有与具有与DBDB接口的高级语言及其编译系统接口的高级语言及其编译系统为开发DB应用系统,需要各种高级语言及其编译系统。高级语言必须具有与DB的接口,由其编译系统来识别和转换高级语言中存取DB的语句,以实现对DB的访问。 26 七月 2024数据库原理与应用第1章 数据库技术概述以以DBMSDBMS为核心的应用开发工具软件为核心的应用开发工具软件应用开发工具软件是系统为应用开发人员和最终用户提供的功能强、效率高一组开发工具集。这些开发工具基本上都是可视化的第四代语言开发工具,

41、具有友好的图形用户界面、支持客户机/服务器运行模式,具有较高的应用系统开发效率。 为某种应用环境开发的为某种应用环境开发的DBDB应用程序应用程序应用程序是DBS的批处理用户和终端用户借助应用程序、终端命令,通过DBMS访问DB的应用软件。26 七月 2024数据库原理与应用第1章 数据库技术概述3. 3. 数据库数据库是一个单位或组织需要管理的全部相关数据的集合,它是长期存储在计算机内、有组织的、可共享的、统一管理的数据集合。它是DBS的基本成分,通常包括两部分内容: 物理数据库物理数据库 数据字典数据字典(DD)(DD)26 七月 2024数据库原理与应用第1章 数据库技术概述 物理数据库

42、物理数据库其中存放按一定的数据模型组织并实际存储的所有应用需要的工作数据;26 七月 2024数据库原理与应用第1章 数据库技术概述 数据字典数据字典(DD)(DD)其中存放关于DB中各级模式的描述信息,包括所有数据的结构名、意义、描述定义、存储格式、完整性约束、使用权限等信息。因DD包含DBS中的大量描述信息而不是用户数据,故也称为“描述描述信息库信息库”。结构上DD也是一个DB,为了区分物理DB中的数据和DD的数据,通常称DD中的数据为元数据,组成DD文件的属性称为元属性。DD是DBMS存取和管理数据的基本依据,主要由系统管理和使用。在关系在关系DBSDBS中,中,DDDD通常主要包括:通

43、常主要包括:表示DB文件的文件、表示DB中属性的文件、视图定义文件、授权关系文件、索引关系文件等。 26 七月 2024数据库原理与应用第1章 数据库技术概述4. 4. 人员人员 软件开发人员软件开发人员主耍负责DBS的开发设计、程序编制、系统调试和安装工作; 软件使用人员软件使用人员DB最终用户,通过应用系统的用户接口使用DB。主要工作是对DB进行查询和修改。 软件管理人员软件管理人员软件管理人员称为数据库管理员(DBA),他们负责全面地管理和控制DBS。 26 七月 2024数据库原理与应用第1章 数据库技术概述DBADBA其主要职责:其主要职责: 参与DBS的设计与建立; 对系统的运行实

44、行监控; 定义数据的安全性要求和完整性约束条件; 负责DB性能的改进和DB的重组及重构工作。 26 七月 2024数据库原理与应用第1章 数据库技术概述5DBMS DBMS DBMS的工作模式的工作模式 DBMS DBMS的主要功能的主要功能 DBMS DBMS的组成的组成26 七月 2024数据库原理与应用第1章 数据库技术概述 DBMS DBMS的工作模式的工作模式DBMS接受应用程序的数据请求和处理请求,然后将用户的数据请求(高级指令)转换成复杂的机器代码(低层指令),通过其实现对DB的操作,并接受对DB操作而得到的查询结果,同时对查询结果进行处理(格式转换),最后将处理结果返回给用户。

45、请按键请按键应用程序DBMS数据请求数据请求DB数据(处理结果)数据(查询结果) 26 七月 2024数据库原理与应用第1章 数据库技术概述用户对DB进行操作,是由DBMS把操作从应用程序带到外部级、概念级,再导向内部级,进而通过OS操纵存储器中的数据。DBMS为应用程序在内存开辟一个DB的系统缓冲区,用于数据的传输和格式转换。三级模式结构定义存放在DD中。用户访问用户访问DBDB的过程如图所示。的过程如图所示。26 七月 2024数据库原理与应用第1章 数据库技术概述 DBMS DBMS的主要功能的主要功能 DB DB的定义的定义 DB DB的操纵的操纵 DB DB的运行管理的运行管理 数据

46、组织、存储与管理数据组织、存储与管理 DB DB的保护的保护 DB DB的维护的维护 通信通信26 七月 2024数据库原理与应用第1章 数据库技术概述 DB DB的定义的定义DBMS提供DDL,供用户定义:DB的三级模式结构、两级映像;数据的完整性约束、保密限制等约束。26 七月 2024数据库原理与应用第1章 数据库技术概述 DB DB的操纵的操纵DBMS提供DML实现对数据的操作。基本的数据操作有两类:查询(或检索)更新(包括插入、删除、修改)26 七月 2024数据库原理与应用第1章 数据库技术概述 DB DB的运行管理的运行管理是DBMS的运行控制、管理功能。包括:多用户环境下的并发

47、控制安全性检查和存取权限控制完整性检查和执行运行日志的组织管理事务的管理和自动恢复26 七月 2024数据库原理与应用第1章 数据库技术概述 数据组织、存储与管理数据组织、存储与管理分类组织、存储和管理各种数据,包括数据字典(亦称系统目录)、用户数据、存取路径等等; 确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。基本目标:基本目标:是提高存储空间利用率,选择合适的存取方法提高存取(如随机查询、顺序查询、增加、删除、修改)效率。26 七月 2024数据库原理与应用第1章 数据库技术概述 DB DB的保护的保护DB中的数据是信息社会的战略资源,对数据的保护是至关重要的

48、大事。DBMS对DB的保护通过四个方面实现: DBDB的恢复的恢复 DBDB的并发控制的并发控制 数据完整性控制数据完整性控制 数据安全性控制数据安全性控制DBMS的其他保护功能还有系统缓冲区的管理以及数据存储的某些自适应调节机制等。26 七月 2024数据库原理与应用第1章 数据库技术概述 DB DB的维护的维护这一部分包括DB的数据载入、转换、转储,DB的改组以及性能监控等功能。这些功能分别由各个实用程序完成。26 七月 2024数据库原理与应用第1章 数据库技术概述 通信通信 DBMS具有与操作系统的联机处理、分时系统及远程作业输入的相应接口,负责处理数据的传送。对网络环境下的DBS,还

49、应包括DBMS与网络中其他软件系统的通信功能;DB之间的互操作功能。 26 七月 2024数据库原理与应用第1章 数据库技术概述 DBMS DBMS的组成的组成DBMS由数据和元数据、存储管理器、查询处理器、事务管理器、查询、模式更新和更新等部分组成,如图所示。26 七月 2024数据库原理与应用第1章 数据库技术概述1.3.3 DB应用系统体系结构1 1三个层次三个层次2 2结构类型结构类型 26 七月 2024数据库原理与应用第1章 数据库技术概述DBDB应用系统体系结构:应用系统体系结构:指DBS中数据存储层、业务处理层、界面表示层以及网络通讯之间的布局与分布关系。26 七月 2024数

50、据库原理与应用第1章 数据库技术概述1三个层次 数据存储层:数据存储层:主要完成对DB中数据的各种维护操作;这一层的功能一般由DBS来承担。 业务处理层:业务处理层:也可称为应用层,它是DB应用将要处理的与用户紧密相关的各种业务操作;该层次上的工作通常使用有关的程序设计语言的编程来完成; 界面表示层:界面表示层:也称为用户界面层,是用户向DBS提出请求和接收回答的地方,它主要用于DBS与用户之间的交互,它是DB应用系统提供给用户的可视化的、图形操作界面。26 七月 2024数据库原理与应用第1章 数据库技术概述2结构类型 单用户结构单用户结构 集中式结构集中式结构 客户机客户机/ /服务器结构

51、服务器结构 浏览器浏览器/ /服务器结构服务器结构26 七月 2024数据库原理与应用第1章 数据库技术概述 单用户结构单用户结构可以运行在PC机上的DBS称为桌面型DBMS。桌面型DBMS虽在数据的完整性、安全性、并发性等方面存在许多缺陷,但已基本实现了DBMS所应具备的功能。在桌面型DBMS中,数据存储层、业务处理层和界面表示层的所有功能都存在于单台PC机上。适合未联网、个人用户及移动用户使用。26 七月 2024数据库原理与应用第1章 数据库技术概述 集中式结构集中式结构采用大型主机和多个终端相结合的系统。该结构将OS、应用程序、DBS等数据和资源均放在作为核心的主机上,连接在主机上的终

52、端,只作为主机的一种输入/输出设备。在此体系结构中,数据存储层和业务处理层都放在主机上,而界面表示层放在与主机相连接的各个终端上。26 七月 2024数据库原理与应用第1章 数据库技术概述 客户机客户机/ /服务器服务器(C/S)(C/S)结构结构在C/S结构中,客户机提出请求,服务器对客户机的服务请求作出回应。C/S结构的本质在于通过对服务功能的分布实现分工服务。每个服务器都为整个局域网系统提供自己最擅长的服务,让所有客户机来分享;客户机的应用程序借助服务器的服务功能实现复杂的应用功能。在C/S结构中,数据存储层处于服务器上,业务处理层和界面表示层处于客户机上。26 七月 2024数据库原理

53、与应用第1章 数据库技术概述 浏览器浏览器/ /服务器服务器(B/S)(B/S)结构结构该结构的DB应用系统中,客户机端仅安装通用的浏览器软件实现同用户的输入/输出,而应用程序在服务器端安装和运行。服务器端,除了有DB服务器保存数据并运行基本的DB操作外,还有称作应用服务器的服务器来处理客户端提交的处理要求。即C/S结构中客户端运行的程序转移到了应用服务器中。应用服务器充当客户机与DB服务器的中介,架起用户界面同DB之间的桥梁,故也称为三层结构。26 七月 2024数据库原理与应用第1章 数据库技术概述1.4 数据模型1.4.1 概述概述1.4.2 层次数据模型层次数据模型1.4.3 网状数据

54、模型网状数据模型1.4.4 关系数据模型关系数据模型1.4.5 面向对象数据模型面向对象数据模型26 七月 2024数据库原理与应用第1章 数据库技术概述1.4.1 概述1 1数据模型及分类数据模型及分类2 2数据模型的组成数据模型的组成26 七月 2024数据库原理与应用第1章 数据库技术概述1数据模型及分类模型是对现实世界的抽象。在DB技术中,用模型的概念描述DB的结构与语义,对现实世界进行抽象。即数据模型是现实世界数据特征的抽象,是用来描述数据的一组概念和定义。换言之数据模型是能表示实体类型及实体间联系的模型。按照不同的应用层次可将其划分为: 概念数据模型概念数据模型 逻辑数据模型逻辑数

55、据模型26 七月 2024数据库原理与应用第1章 数据库技术概述 概念数据模型概念数据模型( (概念模型,也称信息模型) )是独立于计算机系统的数据模型,不涉及信息在计算机中的表示,只用来描述某个特定组织所关心的信息结构,是对现实世界的第一层抽象;概念模型是按用户的观点对数据建模,强调其语义表达能力,是用户和DB设计人员之间进行交流的语言和工具。26 七月 2024数据库原理与应用第1章 数据库技术概述 逻辑数据模型逻辑数据模型( (也称结构数据模型,简称数据模型) )它直接面向DB的逻辑结构,是对现实世界的第二层抽象。它直接与DBMS有关,有严格的形式化定义,以便在计算机系统中实现。它通常有

56、一组严格定义的无二义性语法和语义的DB语言,人们可以用这种语言来定义、操纵DB中的数据。该类数据模型有层次模型、网状模型、关系模型等。26 七月 2024数据库原理与应用第1章 数据库技术概述2数据模型的组成一个基本数据模型是一组向用户提供的规则,它们规定数据结构如何组织以及允许进行何种操作。数据模型的组成(数据模型的三要素): 数据结构数据结构 数据操作数据操作 数据的约束条件数据的约束条件26 七月 2024数据库原理与应用第1章 数据库技术概述 数据结构数据结构规定如何把基本的数据项组织成较大的数据单位,以描述数据的类型、内容、性质和数据之间的相互关系。它是数据模型最基本的组成部分,规定

57、了数据模型的静态特性。在DBS中通常按照数据结构的类型来命名数据模型。26 七月 2024数据库原理与应用第1章 数据库技术概述 数据操作数据操作是指一组用于指定数据结构的任何有效的操作或推导规则。DB中主要的操作有查询和更新两大类。数据模型要给出这些操作确切的含义、操作规则和实现操作的语言。数据操作规定了数据模型的动态特性。26 七月 2024数据库原理与应用第1章 数据库技术概述 数据的约束条件数据的约束条件是一组完整性规则的集合,它定义了给定数据模型中数据及其联系所具有的制约和依存规则,用以限定相容的DB状态的集合和可容许的状态改变,以保证DB中数据的正确性、有效性和相容性。完整性约束的

58、定义对数据模型的动态特性作了进一步的描述与限定。每种数据模型都规定有: 通用的完整性约束条件通用的完整性约束条件 特殊的完整性约束条件特殊的完整性约束条件26 七月 2024数据库原理与应用第1章 数据库技术概述 通用的完整性约束条件通用的完整性约束条件通常把具有普遍性的问题归纳成一组通用的约束规则,只有在满足给定约束规则的条件下才允许对DB进行更新操作。例如,关系模型中通用的约束规则是实体完整性和参照完整性。26 七月 2024数据库原理与应用第1章 数据库技术概述 特殊的完整性约束条件特殊的完整性约束条件把能够反映某一应用所涉及的数据所必须遵守的特定的语义约束条件定义成特殊的完整性约束条件

59、。例如:关系模型中特殊的约束规则是用户定义的完整性。26 七月 2024数据库原理与应用第1章 数据库技术概述1.4.2 层次数据模型 1 1数据结构数据结构 2 2数据操作数据操作 3 3完整性约束完整性约束 4 4层次模型的优缺点层次模型的优缺点26 七月 2024数据库原理与应用第1章 数据库技术概述1数据结构层次模型用树型结构表示记录类型及其联系。树结构基本特点: 有且只有一个结点没有父结点称根结点;有且只有一个结点没有父结点称根结点; 根以外的其他结点有且只有一个父结点。根以外的其他结点有且只有一个父结点。层次模型中,树的结点是记录型。上层记录型和下层记录型间的联系是1:N,用结点之

60、间的连线表示。这种联系是父子之间的一对多的联系。层次模型中,同一父结点的子结点称为兄弟结点,没有子结点的结点称为叶结点。 26 七月 2024数据库原理与应用第1章 数据库技术概述在现实世界中许多实体集之间的联系呈现出一种自然层次关系。例:学校教学单位层次模型26 七月 2024数据库原理与应用第1章 数据库技术概述2层次模型的数据操作 查询操作查询操作 按给定条件沿一个层次路径查找所需要的记录。 更新操作更新操作 插入插入:先将数据写入系统输入/输出区,再指定由根记录开始的插入层次路径,完成插入操作。 删除删除:先用查询命令定位到要删除的记录上,使待删除的记录变为当前记录,再用删除命令完成删

61、除任务。 修改修改:先用查询语句将要修改的记录定位为当前记录,并将该记录读到系统输入/输出区,在其中对数据进行修改,然后用相应命令将修改后的记录值写回到DB中。26 七月 2024数据库原理与应用第1章 数据库技术概述3层次模型的完整性约束 层次结构规定除根结点外,任何其他结点不能离开其父结点而孤立存在。 层次模型所体现的记录之间的联系只限于二元1:N或1:1的联系,这一约束限制了用层次模型描述现实世界的能力。 由于层次结构中的全部记录都是以有序树的形式组织起来的,当对某些层次结构进行修改时,不允许改变原DB中记录类型之间的父子联系,这使得DB的适应能力受到限制。 26 七月 2024数据库原

62、理与应用第1章 数据库技术概述例如在下图所示的层次DB中,若删除计算机软件教研室,则该教研室所有老师的数据也将全部丢失。26 七月 2024数据库原理与应用第1章 数据库技术概述4层次模型的优缺点 优点优点 结构简单、层次分明,便于在计算机内实现; 为有效地进行数据操纵提供条件; 对层次结构的数据有较高的处理效率; 提供了良好的完整性支持。 26 七月 2024数据库原理与应用第1章 数据库技术概述 缺点缺点 层次数据模型缺乏直接表达现实世界中非层次关系实体集间的复杂联系,如多对多的联系只能通过引入冗余数据或引入虚拟记录的方法来解决; 对插入或删除操作有较多的限制; 查询子结点必须通过父结点。

63、26 七月 2024数据库原理与应用第1章 数据库技术概述1.4.3 网状数据模型1 1数据结构数据结构2 2数据操作数据操作3 3完整性约束完整性约束4 4网状模型的优缺点网状模型的优缺点26 七月 2024数据库原理与应用第1章 数据库技术概述1数据结构网状模型结点间的联系不受层次的限制,可任意发生联系,它的结构是结点的连通图。 26 七月 2024数据库原理与应用第1章 数据库技术概述 网状模型结构的特点:网状模型结构的特点: 有一个以上结点没有父结点;有一个以上结点没有父结点; 至少有一个结点有多于一个的父结点。至少有一个结点有多于一个的父结点。 网状模型可以更直接地描述复杂的现实世界

64、。在具体实现上,只支持1:N联系,对于记录间的M:N联系,可将其转换为1:N联系。 例:例:学生选课DB网状数据模型26 七月 2024数据库原理与应用第1章 数据库技术概述2数据操作 查询操作查询操作 通过查询语句和取数语句配合使用实现的。 更新操作更新操作 网状数据模型的更新操作分为对记录的更新和对系的更新两类。26 七月 2024数据库原理与应用第1章 数据库技术概述3完整性约束网状模型一般没有层次模型那样严格的完整性约束条件,但具体的网状DBS,其数据操纵都加了一些限制,提供了一定的完整性约束。 支持记录键的概念,键即惟一标识记录的数据项的集合;支持记录键的概念,键即惟一标识记录的数据

65、项的集合; 保证一个联系中父记录和子记录间是一对多的联系;保证一个联系中父记录和子记录间是一对多的联系; 可支持父记录和子记录间某些约束条件。可支持父记录和子记录间某些约束条件。26 七月 2024数据库原理与应用第1章 数据库技术概述4网状模型的优缺点 优点优点 能够更为直接地描述现实世界; 具有存取效率高等良好性能。 26 七月 2024数据库原理与应用第1章 数据库技术概述 缺点缺点 数据结构较复杂,且随应用环境的扩大,DB结构变得更复杂,不便于终端用户掌握; 其DDL、DML较杂,用户掌握使用较困难; 由于记录间联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此

66、,用户必须了解系统结构的细节,加重了编写应用程序的负担。26 七月 2024数据库原理与应用第1章 数据库技术概述1.4.4 关系数据模型1 1数据结构数据结构2 2数据操作数据操作3 3完整性约束完整性约束4 4关系模型与非关系模型的比较关系模型与非关系模型的比较26 七月 2024数据库原理与应用第1章 数据库技术概述1数据结构关系数据模型中,称二维表为关系,表中的列称属性,列中的值取自相应的域,域是属性所有可能取值的集合。表中的一行称为一个元组,元组用关键字标识。对二维表框架的描述称为关系模式。关系模型是由若干关系模式组成的集合。关系模型中用二维表表示实体集及其属性,用二维表描述实体集间

67、的联系。26 七月 2024数据库原理与应用第1章 数据库技术概述2数据操作关系模型中常用的关系操作包括查询操作和更新操作两大部分。查询操作是关系操作的主要部分。关系操作的特点是集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一集合的方式。相应地,非关系数据模型的数据操作方式则为一次一记录的方式。26 七月 2024数据库原理与应用第1章 数据库技术概述3完整性约束关系模型允许定义三类完整性约束: 实体完整性、参照完整性、用户定义的完整性实体完整性、参照完整性、用户定义的完整性其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持。用户定义的完整性

68、是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。26 七月 2024数据库原理与应用第1章 数据库技术概述4关系模型与非关系模型的比较 关系数据模型建立在严格的数学基础之上。 关系数据模型的概念单一,容易理解。 关系数据模型的存取路径对用户隐蔽。 关系模型中数据联系是靠数据冗余实现。26 七月 2024数据库原理与应用第1章 数据库技术概述1.4.5 面向对象数据模型面向对象数据模型(OO数据模型)是面向对象程序设计方法与DB技术相结合的产物,用以支持非传统应用领域对数据模型提出的新需求。基本目标:基本目标:以更接近人类思维的方式描述客观世界的事物及其联系,且使描述问题的问题空间和解

69、决问题的方法空间在结构上尽可能一致,以便对客观实体进行结构模拟和行为模拟。 26 七月 2024数据库原理与应用第1章 数据库技术概述在OO数据模型中,基本结构是对象对象而不是记录,一切事物、概念都可以看做对象。一个对象不仅包括描述它的数据数据,还包括对它进行操作方法操作方法的定义。OO数据模型是一种可扩充的数据模型,用户根据应用需要定义新的数据类型及相应的约束和操作,且比传统数据模型有更丰富的语义。一个OO数据模型是用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间限制、联系等的模型。26 七月 2024数据库原理与应用第1章 数据库技术概述0000数据模型与关系数据模型的简单比较:

70、数据模型与关系数据模型的简单比较:关系数据模型中基本数据结构是表,相当于OO数据模型中的类;关系中的数据元组相当于OO数据模型中的实例。在关系数据模型中,对DB的操作都归结为对关系的运算;在OO数据模型中对类层次结构的操作分为两部分:一部分是封装在类内的操作即方法,另一部分是类间相互沟通的操作即消息。在关系数据模型中有域、实体和参照完整性约束,完整性约束条件可以用逻辑公式表示,称完整性约束方法。OO数据模型中用于约束的公式可用方法或消息表示,称完整性约束消息。26 七月 2024数据库原理与应用第1章 数据库技术概述小 结本章介绍了与DB技术相关的概念和术语,回顾了数据管理技术的发展阶段,重点

71、讲述了DB的体系结构以及DBS的基础数据模型。DBDB技术技术主要研究如何科学地组织和存储数据、高效地获取和处理数据,是数据管理的最新技术,是计算机科学与技术的重要分支。到目前为止,数据管理技术主要经历了手工管理手工管理、文件系文件系统统、DBSDBS三个阶段。 26 七月 2024数据库原理与应用第1章 数据库技术概述DBDB是一个长期存储在计算机内、有组织的、可共享的、统一管理的数据集合。DBMSDBMS是为DB的建立、使用而配置的计算机系统软件。它建立在OS的基础上,对DB进行统一的管理和控制。DBSDBS是实现有组织、动态地存储大量相关的结构化数据、方便各类用户访问DB的计算机软/硬件

72、资源的集合。26 七月 2024数据库原理与应用第1章 数据库技术概述从DBMS的角度看,DB体系结构通常采用三级模式结构三级模式结构,即外模式、模式和内模式,它定义了DB的三个抽象层次:物理DB、概念DB和逻辑DB,将DBS抽象为外部级、概念集和内部级三层。为实现三级模式间的联系和转换,采用了两级映像两级映像技术,保证了DBS的数据物理独立性物理独立性和逻辑独立性逻辑独立性。从DB最终用户的角度看,DBS结构是面向用户的DB应用系统,它分为数据存储层数据存储层、业务处理层业务处理层和界面表示层界面表示层三个层次;结构分为单用户、集中式、C/S、B/S结构等多种类型。26 七月 2024数据库

73、原理与应用第1章 数据库技术概述BDS的基础是数据模型数据模型,它是DBS中用于提供信息表示和操作手段的形式构架,由数据结构数据结构、数据操作数据操作和数据约束条数据约束条件件三部分组成。主要有层次层次、网状网状和关系数据模型关系数据模型,其中关系模型是目前最重要的、应用最广泛的一种数据模型。在关系模型中用二维表表示实体集及其属性,用二维表描述实体集间的联系。OOOO数据模型数据模型也在逐步的成熟,并被应用于数据库技术中。一个OO数据模型是用面向对象观点来描述现实世界对象的逻辑组织、对象间限制、联系等的模型。 第3章 关系数据库的标准语言SQL 26 七月 2024数据库原理与应用第3章 关系

74、数据库的标准语言SQL3.1 SQLSQL概述概述 3.2 数据定义语言数据定义语言 3.3 数据更新语言数据更新语言 3.4 数据查询语言数据查询语言 3.5 数据控制语言数据控制语言小结小结内 容 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.1 SQL概述 3.1.1 SQLSQL的发展历程的发展历程 3.1.2 SQLSQL的组成与功能的组成与功能 3.1.3 SQLSQL语言的特点语言的特点 3.1.4 SQLSQL基本知识基本知识 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQLSQL语言1974年被提出,并首先在IBM公司研制的R

75、DB原型系统System R上实现。它具有功能丰富、使用方式灵活、语言简洁易学等突出优点,深受计算机工业界和计算机用户的欢迎。1986年10月,美国国家标准局(ANSI)的DB委员会批准SQL作为RDB语言的美国标准美国标准。同年公布了标准SQL文本。1987年6月,国际标准化组织(ISO)将其采纳为国际标准国际标准(称“SQL86”)。此后出现了“SQL89”、“SQL2”(1992)和“SQL3”(1993)。3.1.1 SQL的发展历程26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQLSQL成为国际标准后,各个DB厂家纷纷推出各自的支持SQL的软件或与SQL接口的软件

76、。趋势:趋势:各种计算机(微机、小型机、大型机)上的DBS,都采用SQL作为共同的数据存取语言和标准接口。成为不同DBS间互操作的基础。SQL对DB以外的领域也产生了很大影响(软件产品将SQL语言的数据查询功能与图形功能、软件工程工具、软件开发工具、人工智能程序结合起来,开发出功能更强的软件产品)。可预见,可预见,在未来一段相当长的时间内, SQL仍将是RDB的主流语言,而且在知识发现、人工智能、软件工程等领域,也具有广阔的应用前景。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.1.2 SQL的组成与功能 数据定义语言数据定义语言 数据操纵语言数据操纵语言 数据控制

77、语言数据控制语言 嵌入式嵌入式SQLSQL26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 数据定义语言数据定义语言称为“SQL DDL”。用来定义RDB的模式、外模式和内模式,以实现对基本表、视图以及索引文件的定义、修改和删除等操作。 数据操纵语言数据操纵语言称为“SQL DML”。包括数据查询和数据更新两类。数据查询:数据查询:对DB中的数据查询、统计、分组、排序等操作;数据更新:数据更新:数据的插入、删除、修改等数据维护操作。 数据控制语言数据控制语言数据控制语言(简称DCL)也称为“SQL DCL”。数据控制包括对基本表和视图的授权,完整性规则的描述,事务控制语句

78、等。 嵌入式嵌入式SQLSQL规定了SQL语句嵌入在宿主语言程序中使用的各种规则。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.1.3 SQL语言的特点 自含式和嵌入式两种形式自含式和嵌入式两种形式 语言简洁、易学易用语言简洁、易学易用 高度非过程化高度非过程化 支持支持RDBRDB三级模式结构三级模式结构26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 自含式和嵌入式两种形式自含式自含式SQLSQL:能够独立地进行联机交互,用户只需在终端键盘上直接键入SQL命令就可以对DB进行操作;嵌入式嵌入式SQLSQL:能够嵌入到高级语言,如C、COBO

79、L、FORTRAN、PL/1程序中来实现对DB的数据存取操作,给程序员设计应用程序提供了很大的方便。在自含式SQL和嵌入式SQL不同的使用方式中,SQL的语法结构基本上一致。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 语言简洁、易学易用尽管SQL语言功能极强又有两种使用方式,但由于设计巧妙,其语言十分简洁,完成核心功能的语句只用了9个动词。SQL语法很简单,容易学习和使用。SQL的命令动词表:26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 高度非过程化SQL是一种第四代语言(4GL),用户只需要提出“干什么”,无需具体指明“怎么干”;像存取路

80、径选择和具体处理操作等,均由系统自动完成。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 支持RDB三级模式结构 全体基本表构成全体基本表构成DBDB的概念模式的概念模式 视图和部分基本表构成视图和部分基本表构成DBDB的外模式的外模式 DB DB的存储文件和它们的索引文件构成的存储文件和它们的索引文件构成RDBRDB的内模式的内模式 图26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 全体基本表构成DB的概念模式基本表是本身独立的表;SQL中的一个关系对应一个基本表;基本表按数据全局逻辑模式建立。 26 七月 2024数据库原理与应用第3章 关系

81、数据库的标准语言SQL视图:视图:由一个或几个基本表导出的表。视图不独立存储在DB中,DB中只存放视图的定义而不直接存放视图对应的数据,这些数据仍存放在与视图相关的基本表中。视图是一个虚表,是根据外模式定义的,能满足用户和应用程序的数据格式要求。当基本表不适合用户直接查询的操作要求时,需要定义视图,以便于用户的查询操作。在数据查询时,SQL对基本表和视图等同对待。 视图和部分基本表构成DB的外模式26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL在SQL中,基本表可以直接被用户操作,被直接使用的基本表也是外模式的一部分。基本表和视图构成了RDB的外模式,SQL支持RDB的外

82、模式结构。用户可用SQL语言对视图和基本表进行查询。在用户眼中,视图和基本表都是关系,而存储文件对用户是透明的。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL一个关系对应一个表;一个或多个表对应一个存储文件;一个表可带若干个索引,索引也存放在存储文件中;存储文件的逻辑结构组成RDB的内模式。 DB的存储文件和它们的索引文件构成RDB的内模式26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQLSQL对RDB模式的支持 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.1.4 SQL基本知识1. 数据类型数据类型2. 表达式与运算

83、符表达式与运算符 3. 函数函数 4. 语法规定与约定语法规定与约定 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL1. 数据类型 数值型数值型 字符型字符型 位串型位串型 日期型日期型26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL数据类型是数据自身的特点,它的属性被放在表的列字段里。数据类型用于给特定的列提供数据规则,它决定着数据在列中的存储方式和给列分配的数据长度,并且决定了此数据是字符、数字还是时间日期数据。每一个具体的SQL的实施方案都有自己特有的数据类型,因此有必要使用与具体的实施方案相关的数据类型。但所有的实施方案中的基本数据类型都是

84、一样的。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 数值型数值型INT:长整数,也可写成INTEGERSMALLINT:短整数REAL:取决于机器精度的浮点数DOUBLE PRECISION:取决于机器精度的双精度浮点数FLOAT(n):浮点数,精度至少为n位数字NUMBERIC(p,q):定点数,由p位数字组成,但不包括符号、小数点,小数点后面有q位数字,也可写成DECIMAL(p,q)或dec(p,q)26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 字符型字符型CHAR(n):长度为n的定长字符串,n是字符串中字符的个数VARCHAR(

85、n):具有最大长度为n的变长字符串26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 位串型位串型BIT(n):长度为n的二进制位串BIT VARYING(n):最大长度为n的变长二进制位串26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 日期型日期型 DATE:日期包含年、月、日格式为 YYYY-MM-DD TIME:时间包含一日的时、分、秒格式为 HHMMSS26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL有的系统可能还会提供货币型货币型、文本型文本型、图像型图像型等类型。SQL支持空值的概念,空值是RDB中的一个重要概念,与

86、空(或空白)字符串、数值0具有不同的含义,不能把它理解为任何意义的数据。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL2. 表达式与运算符 比较运算符比较运算符 谓词谓词 逻辑运算符逻辑运算符 算术运算符算术运算符26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL表达式:表达式:由一个或多个值值、运算符运算符和函数函数组合而成,可计算出一个值,其数据类型一般为它的成分的数据类型。运算符:运算符:是保留的字或字符,主要用于在子句中执行比较和数学运算等操作。在SQL语句中运算符用于确定条件和建立语句中多个条件之间的连接。26 七月 2024数据库原理与

87、应用第3章 关系数据库的标准语言SQL 比较运算符比较运算符其在SQL语句中用于测试单个的值。包括:、! !或、或、用于测试数据相等、不等、小于、大于、小于等于和大于等于的各种情况。当条件满足时,返回True,否则返回False。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 谓词谓词 IS NULL IS NULL和和IS NOT NULLIS NOT NULL BETWEEN BETWEENANDAND和和NOT BETWEENNOT BETWEENANDAND IN IN LIKE LIKE EXISTS EXISTS和和NOT EXISTS NOT EXISTS

88、 UNIQUE UNIQUE ALL ALL和和ANY ANY 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL IS NULL IS NULL 和和 IS NOT NULLIS NOT NULL用于判断字符串的值是否是空值。例如:例如:查询缺少成绩(CJ)的学生的学号。可在WHERE子句中使用的表达式为:CJ IS NULL注意:注意:不能用“”来查找NULL值。若使用“”,则表示要查找的是字符“NULL”,而不是NULL值。例如:例如:查找不属于任何部门的职工。错误的表达式为:BMHNULL 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL BE

89、TWEEN BETWEENANDAND 和和 NOT BETWEENNOT BETWEENANDAND谓词BETWEEN用于判断值是否在给定的两个值之间,注意包括边值。例如:例如:查找成绩(CJ)在90分到100分之间的学生。可在WHERE子句中使用表达式:CJ BETWEEN 90 AND 100 也可使用表达式:CJ90 AND CJ100显然在可读性上谓词BETWEEN更好一些。BETWEEN前面加上NOT表示否定。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL IN IN用于判断值是否属于指定的集合。例如:例如:查找职工表中工资(GZ)是否为以下几个值中的一个:

90、4000,5000,6000。可在WHERE子句中使用表达式:GZ IN(4000,5000,6000)26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL LIKE LIKE可以用来进行字符串的匹配。其一般语法格式如下: NOT LIKE ESCAPE 在指定的关系中查找指定属性列值与相匹配的元组。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL说明说明1 1: 中经常使用通配符(百分号)和_(下划线),且可组合使用。其中:(百分号):代表任意长度(长度可能为0)的字符串;_(下划线):代表任意单个字符。例如:例如: A%B以A开头,以B结尾的任意长度

91、的字符串。 A_B以A开头,以B结尾长度为3的任意字符串。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL说明说明2 2:如果LIKE后面的匹配符中不含通配符,则可以用“” 运算符取代谓词LIKE,用或!运算符取代谓词NOT LIKE。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 说明说明3 3 :若要查询的字符串本身就含有“%”或“_”,则需要使用由ESCAPE指定的换码字符。例如:例如:在WHERE子句中的LIKE谓词为:LIKECOM_cn_ESCAPE(表示以COM_cn开始的最后一个字母任意的字符串)指定的换码字符为,匹配串COM_c

92、n_中的第一个下划线前因为有换码字符,所以将其解释为下划线本身,而不再是通配符;第二个下划线则仍是通配符。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL EXISTS EXISTS 和和 NOT EXISTSNOT EXISTS格式为:EXISTS(子查询)。用于判断在指定的表中是否存在一行符合某种条件的数据。带有EXISTS谓词的子查询不返回任何数据,当子查询结果非空,返回逻辑真值“True”,否则,返回逻辑假值“False”。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL UNIQUE UNIQUE用于在指定的表中判断每一行是否是惟一的。

93、 ALL ALL和和ANYANY用于将某个值同另一数据集中的每个值相比较 。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 逻辑运算符逻辑运算符 NOT NOT AND AND OR OR26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL NOT NOT将它使用的逻辑运算符的意义反转。如NOT BETWEEN、NOT IN、NOT EXISTS、NOT LIKE、NOT UNIQUE等。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL OR OR连接多个查询条件,表示至少有一个查询条件成立。例如:例如:查找年龄(NL)为20岁或

94、25岁的学生。可使用表达式为:NLNL20 OR NL20 OR NL252526 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL AND AND连接多个查询条件,表示所有的查询条件都成立。例如:例如:查找年龄(NL)为25岁,并且家庭住址(ZZ)住在大连的女学生(XB表示性别)。可使用表达式为:NLNL25 AND ZZ25 AND ZZ大连大连AND XBAND XB女女26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 算术运算符算术运算符用于执行数学运算的功能。通常有四种操作符:+、*和。可单独使用,也可组合使用。 26 七月 2024数据库原理与

95、应用第3章 关系数据库的标准语言SQL3. 函数 单行函数单行函数 统计函数统计函数26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 单行函数单行函数单行函数主要分为数值函数、字符函数、日期函数、转换函数等;它对查询的表或视图的每一行返回一个结果行。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL数值函数:数值函数:用于接受数值输入,返回数值。许多函数的返回值可精确到38位十进制数字,三角函数精确到36位十进制数字。单行字符函数:单行字符函数:用于接受字符输入,可返回字符值或数值。日期函数:日期函数:是操作DATE数据类型的值,所有日期函数都返回一个

96、DATE类型的值。转换函数:转换函数:是将一种数据类型的值转换成另一种数据类型的值。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 统计函数统计函数统计函数是用来累加、合计和显示数据极限的函数,它主要用于给SQL语句提供统计信息。常用的统计函数有COUNT、SUM、MAX、MIN和AVG等。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL4.语法规定与约定 语句格式约定符号语句格式约定符号 :其中的内容为必选项,它表示实际语义,不能为空; :其中内容为任选项; 或:必选其中之一项; ,n:表示前面的项可以重复多次。26 七月 2024数据库原理与

97、应用第3章 关系数据库的标准语言SQL 语法规定语法规定 一般语法规定一般语法规定SQL中数据项(列项、表和视图)的分隔符为“,”;字符串常数的定界符用单引号“”表示。 SQL SQL特殊语法规定特殊语法规定SQL的关键词一般使用大写字母表示;SQL语句的结束符为“;”;SQL采用格式化书写方式。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.2 数据定义语言3.2.1 数据库数据库 3.2.2 表表 3.2.3 索引索引 3.2.4 视图视图 3.2.5 存储过程存储过程26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL数据定义语言(DDL)是

98、SQL的一部分,用来定义RDB的模式、外模式和内模式,以实现对RDB的基本表、视图以及索引文件等基本要素的定义、修改和删除等操作。DDL的功能包括:数据库、基本表、索引、视图及存储过程的定义、修改和删除等。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.2.1 数据库1. 创建数据库创建数据库 2. 修改数据库修改数据库 3. 撤消数据库撤消数据库26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQLSQL中,DB被定义为对象(即基本表、视图和索引等)的集合。并包含DB中每一个对象的定义。DB在磁盘上是以文件为单位存储的,由数据文件和日志文件组成。数据

99、文件中实际存放DB所有数据和对象,日志文件用来存放(记录)用户对DB所进行的所有操作,它是维护DB完整性的重要工具。创建一个DB,就是定义了一个存储空间。1. 创建DB26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 语句格式:语句格式:CREATE DATABASE CREATE DATABASE 功能:功能: 定义DB名和DB的存储空间。说明:说明: 使用该语句的用户必须具有DBA的权限; DB的创建者被默认为该DB的所有者; 在创建DB的过程中,要指定DB名称、设计所占用的存储空间和存放文件位置。创建DB至少需要定义数据文件和日志文件, 省略系统选择默认值。对于数据

100、文件和日志文件的定义不同SQL版本规定不同。例例3-13-1:创建学生管理数据库 create database create database 学生管理学生管理26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL语句格式:语句格式:ALTER DATABASE ALTER DATABASE 功能:功能:修改指定的DB。说明:说明: 该语句只有DBA或具有CREATE DATABASE权限的DB拥有者才有权使用; 该语句可以增加或删除DB中的文件,也可以修改DB文件的属性。 2.修改数据库26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL语句格式:语句格式

101、:DROP DATABASE DROP DATABASE 功能:功能:撤消指定的一个或多个DB。说明:说明: 该语句只有DBA或具有CREATE DATABASE权限的DB拥有者才有权使用; 当DB处于正在被使用或正在恢复等非正常状态时,是不能被撤消的; 该语句执行后,系统将无法恢复被撤消的DB,除非事先有DB的备份; 当一个或多个DB被撤消后,其中所有的数据及DB对象都将被删除,所有的数据文件和日志文件也都将被删除,所占用的空间将被释放。 3.撤消数据库26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.2.2 表1. 创建基本表创建基本表 2. 完整性约束完整性约束

102、3. 修改基本表修改基本表 4. 撤消基本表撤消基本表 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL1. 创建基本表语句格式:语句格式:CREATE TABLE CREATE TABLE ( ( , ););功能:功能:定义基本表的表名及其结构。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL说明:说明: 是所要定义的基本表的名字,基本表可以由一列(属性)或多列组成; 创建基本表时必须说明每一列的数据类型; 创建基本表的同时可定义与该基本表有关的完整性约束条件,它们被存入系统的DD中,当用户操作表中数据时由DBMS自动检查该操作是否违背这些完整性

103、约束条件; 若完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可定义在列级也可定义在表级。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-23-2:建立学生管理DB中的基本表:学生(学号,姓名,性别,年龄,班级号)课程(课程号,课称名,学分,周学时)考试(学号,课程号,成绩) create table create table 学生学生 ( (学号学号 char(6)char(6), 姓名姓名 char(10)char(10), 性别性别 char(2),char(2), 年龄年龄 smallint,smallint, 班级号班级号 char(5)

104、char(5));); create table create table 课程课程 ( (课程号课程号 char(6),char(6), 课称名课称名 char(20), char(20), 学分学分 smallintsmallint, 周学时周学时 smallint) smallint) ; create table create table 考试考试 ( (学号学号 char(6), char(6), 课程号课程号 char(6),char(6), 成绩成绩 smallint)smallint);26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL2.完整性约束 PRI

105、MARY KEY PRIMARY KEY约束约束 FOREIGN KEY FOREIGN KEY约束约束 UNIQUE UNIQUE约束约束 CHECK CHECK约束约束 NOT NULL NOT NULL或或NULLNULL约束约束26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL完整性约束的用途是限制输入到基本表中的值的范围。列级完整性约束:列级完整性约束:是行定义的一部分,只能应用在一列上;表级完整性约束:表级完整性约束:它的定义独立于列的定义,可应用在一个基本表中的多列上。当需要在一个基本表中的多列上建立约束条件时,只能建立表级约束。当完整性约束创建之后,它作为基

106、本表定义的一部分,存入DD中。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL PRIMARY KEY PRIMARY KEY约束约束也称主关键字约束主关键字约束,是实体完整性约束。该约束用于定义主关键字主关键字,它能保证主关键字的惟一性惟一性和非空性非空性。该约束可在列级列级或表级表级上进行定义,但不允许同时在两个级别上进行定义。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQLPRIMARY KEYPRIMARY KEY约束定义主关键字方法:约束定义主关键字方法: PRIMARY KEY约束直接写在列名及其类型之后; 按照语法在相应列名及类型后单

107、独列出:CONSTRAINT CONSTRAINT PRIMARY KEY PRIMARY KEY其中是PRIMARY KEY约束的名字。 在CREATE TABLE语句列出基本表的所有列之后,再附加一个声明:PRIMARY KEY(PRIMARY KEY(1, 2,) 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-33-3:在创建学生基本表时,将学号定义为主关键字,列级PRIMARY KEY约束。 create table create table 学生学生 ( (学号学号 char(6),primary key,char(6),primary key, 姓名

108、姓名 char(10),char(10), 性别性别 char(2),char(2), 年龄年龄 smallint,smallint, 班级号班级号 char(5)char(5);26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-43-4:在创建课程基本表时,将课程号定义为主关键字,并指定PK_KCH为PRIMARY KEY约束名(列级约束)。 create table create table 课程课程 ( (课程号课程号 char(6) char(6) constraint pk_kch primary key,constraint pk_kch primary

109、 key, 课称名课称名 char(20), char(20), 学分学分 smallint,smallint, 周学时周学时 smallint)smallint);26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-53-5:在创建考试基本表时定义了一个名为PK_KS的表级 PRIMARY KEY约束。create table create table 考试考试( (学号学号 char(6), char(6), 课程号课程号 char(6),char(6), 成绩成绩 smallint,smallint, constraint pk_ks primary key(c

110、onstraint pk_ks primary key(学号学号, ,课程号课程号);26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL FOREIGN KEY FOREIGN KEY约束约束也称为外部关键字或参照表约束,用于定义参照完整性,即用来维护两个基本表之间的一致性关系。外部关键字的建立主要是通过将一个基本表中的主关键字所在的列包含在另一个表中,这些列就是另一个表的外部关键字。FOREIGN KEY约束不仅可以与另一基本表上的PRIMARY KEY约束建立联系,也可以与另一基本表上的UNIQUE约束建立联系。当一行新的数据被加入到表格中,或对表格中已经存在的外部关键

111、字上的数据进行修改时,新数据必须存在于另一基本表的主关键字上,或者为NULL。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL外部关键字的作用不只是对输入自身表格的数据进行限制,同时也限制了对主关键字所在基本表的数据进行修改。当主关键字所在表的数据被另一张表的外部关键字所引用时,用户将无法对主关键字里的数据进行修改或删除,除非事先删除或修改引用的数据。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL FOREIGN KEYFOREIGN KEY约束定义外部关键字方法约束定义外部关键字方法 如果外部关键字只有一列,可在它的列名和类型后面直接用“REF

112、ERENCES”说明它参照了某个基本表的某些列(必须是主关键字),其语法格式为:REFERENCES REFERENCES ()26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL在属性列表后面增加一个或几个外部关键字说明,语法格式为:FOREIGN KEY(FOREIGN KEY()REFERENCES)REFERENCES()其中,第一个“列名”是外部关键字;第二个“列名”是被参照基本表中的列名。在相应列名及其类型后单独列出,并指定约束名,语法格式为:CONSTRAINT CONSTRAINT FOREIGN KEY( FOREIGN KEY()REFERENCES )R

113、EFERENCES ()26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-63-6:在创建考试基本表时,定义相应外部关键字。 create table create table 考试考试 ( (学号学号 char(6), char(6), 课程号课程号 char(6),char(6), 成绩成绩 smallintsmallint, constraint pk_ks1 primary key(constraint pk_ks1 primary key(学号学号, ,课程号课程号) ), constraint pk_ks2 foreign key(constraint

114、pk_ks2 foreign key(学号学号)references )references 学生学生( (学号学号) ), constraint pk_ks3 foreign key(constraint pk_ks3 foreign key(课程号课程号)references )references 课程课程( (课程号课程号);26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL学生、考试和课程三个基本表之间所建立的FOREIGN KEY约束 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL UNIQUE UNIQUE约束约束主要是用来确保不受PR

115、IMARY KEY约束的列上的数据的惟一性。PRIMARY KEYPRIMARY KEY约束与约束与UNIQUEUNIQUE约束区别:约束区别:UNIQUE约束,主要用在非主关键字的一列或多列上要求数据惟一的情况;UNIQUE约束,允许该列上存在NULL值,而主关键字决不允许出现NULL值;可在一个表上设置多个UNIQUE约束,而在一个表上只能设置一个主关键字。UNIQUE约束也可在列级或在表级上设置。若在多于一列的表上设置UNIQUE约束,则必须设置表级约束。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL定义定义UNIQUEUNIQUE约束的方法:约束的方法: 列级

116、列级UNIQUEUNIQUE约束约束CONSTRAINT CONSTRAINT UNIQUE UNIQUE其中是UNIQUE约束的名字 表级表级UNIQUEUNIQUE约束约束CONSTRAINT CONSTRAINT UNIQUE(UNIQUE(,2,) 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-73-7 :在创建学生基本表时,创建一个列级UNIQUE约束。create table create table 学生学生 (学号(学号 char(6)char(6),primary key,primary key, 姓名姓名 char(10)char(10),c

117、onstraint un_xm unique,constraint un_xm unique, 性别性别 char(2),char(2), 年龄年龄 smallint,smallint, 班级号班级号 char(5)char(5)););26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-83-8:在创建课程基本表时,创建一个表级UNIQUE约束。create table create table 课程课程 ( (课程号课程号 char(6),char(6), 课称名课称名 char(20), char(20), 学分学分 smallintsmallint, 周学时周

118、学时 smallintsmallint, constraint un_one unique(constraint un_one unique(课称名课称名, ,学分学分);26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL CHECK CHECK约束约束CHECK约束通过检查输入表列的数据的值来维护值域的完整性,它就像一个门卫,依次检查每一个要进入数据库的数据,只有符合条件的数据才允许通过。CHECKCHECK约束同约束同FOREIGN KEYFOREIGN KEY约束相同点约束相同点都是通过检查数据值的合理性来实现数据完整性的维护。但FOREIGN KEY约束是从另一张表

119、上获得合理的数据,而CHECK约束则是通过对一个逻辑表达式的结果进行判断来对数据进行检查。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL可在一列上设置多个CHECK约束,也可将一个CHECK约束应用于多列(表级约束)。当一列受多个CHECK约束控制时,所有的约束按照创建的顺序,依次进行数据有效性的检查。在SQL中,创建基本表时,定义定义CHECKCHECK约束的语法格式约束的语法格式为:CONSTRAINT CONSTRAINT CHECK( CHECK() 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-93-9:规定学生的年龄在20岁到

120、65岁之间。在创建学生基本表时,可在年龄上设置一个CHECK约束,使满足CHECK约束的数据才被DB接受。 create table create table 学生学生 ( (学号学号 char(6) primary key,char(6) primary key, 姓名姓名 char (10),char (10), 性别性别 char (2),char (2), 年龄年龄 smallint,constraint ch_nl check (smallint,constraint ch_nl check (年龄年龄20 and 20 and 年龄年龄65),65), 班级号班级号 char (5

121、)char (5);26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL NOT NULL NOT NULL或或NULLNULL约束约束NOT NULL约束不允许列值为空,而NULL约束允许列值为空。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3. 修改基本表语句格式:语句格式:ALTER TABLE ALTER TABLE ADD ADD ,nn DROPCONSTRAINTDROPCONSTRAINT|COLUMN|COLUMN,nn MODIFY MODIFY ,nn;功能:功能:修改指定基本表的结构。26 七月 2024数据库原理与应用第3章

122、 关系数据库的标准语言SQL说明:说明: 其中是指要修改的基本表; ADD子句用于在基本表中增加新列和新的完整性约束条件。新增加的列不能定义为“NOT NULL”,因为不论基本表中原来是否有数据,新增加的列一律为空值(NULL); DROP子句用于在表中删除指定的完整性约束或指定的列;26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 当在基本表中删除某一列时,所有引用该列的视图和约束也一起自动被删除。有的系统规定若删除某一列时,只有当没有视图和约束引用该列时,才能进行,否则将被拒绝; MODIFY子句用于修改原有的列的定义,包括修改列名、列的宽度和列的数据类型。但是,有些

123、系统一般不允许对列名和数据类型进行修改,以免丢失原有基本表中的数据。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-103-10:在学生基本表中增加“入学时间”列,其数据类型为日期型 。alter table alter table 学生学生 add add 入学时间入学时间 datetimedatetime; 例例3-113-11:将课程基本表中的“周学时”列删除。alter table alter table 课程课程 drop column drop column 周学时;周学时; 例例3-123-12:删除考试基本表中的学号外部关键字,其名为pk_ks2

124、。alter table alter table 考试考试 drop constraint pk_ks2drop constraint pk_ks2; 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL4. 撤消基本表语句格式:语句格式:DROP TABLE DROP TABLE 功能:功能:撤消指定的基本表。说明:说明: 是所要撤消的基本表的名字; 基本表一旦撤消,表中的数据以及此表上建立的索引和视图都将自动被删除,并且无法恢复,此时系统释放其所占用的存储空间; 只有基本表的拥有者才可使用此语句; 不能使用DROP撤消系统表。 26 七月 2024数据库原理与应用第3章

125、关系数据库的标准语言SQL3.2.3 索引1. 索引的特点索引的特点 2. 索引的用途索引的用途 3. 创建索引的原则创建索引的原则 4. 索引的类型及选择索引的类型及选择5. 索引的创建索引的创建 6. 索引的撤消索引的撤消 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL1.索引的特点 索引:索引:是一个指向表中数据的指针。DB中,索引具有与书籍中目录同样作用。查询被定向于DB中数据在数据文件中的地址。索引是SQL在基本表中列上建立的一种DB对象,也可称其为索引文件。它和建立于其上的基本表是分开存储的。建立索引的主要目的是提高数据检索的性能。索引可被创建或撤消,这对数

126、据毫无影响。当索引被撤消,数据查询的速度可能会变慢。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL索引要占用物理空间,且常比基本表本身占用的空间要大。索引建立后,它便记录了被索引列的每一个取值在表中的位置。当在表中加入新数据时,索引中也增加相应的数据项。当DB中的基本表建立了索引,进行数据查询时,首先在相应的索引中查找。若数据被找到,则返回该数据在基本表中的确切位置。一个基本表,可根据应用环境的需要创建若干索引以提供多种存取途径。通常,索引的创建和撤消由DBA或表的拥有者负责。用户不能也不必在存取数据时选择索引,索引的选择由系统自动进行。 26 七月 2024数据库原理

127、与应用第3章 关系数据库的标准语言SQL2.索引的用途 提高数据查询的速度提高数据查询的速度进行数据查询时,如不使用索引,则需将数据文件分块,逐个读到内存,再进行查找的比较操作(基本表的列和元组较多,数据文件很大)。 使用索引,系统先将索引文件读入内存,根据索引项找到元组的地址,然后再根据地址将元组数据直接读入内存。索引文件只含有索引项和元组地址,文件小,一般可一次读入内存。索引文件索引项是有序的,可很快找到索引项值和元组地址。使用索引大大减少了磁盘的I/O次数,可加快查询速度。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 保证数据的惟一性保证数据的惟一性索引的定义中

128、包括定义数据惟一性的内容。当定义了数据惟一性的功能后,在对相关的索引项进行数据输入或数据更新时,系统要进行检查,以确保其数据惟一性成立。 加快表连接的速度加快表连接的速度在进行基本表连接操作时,系统需要对被连接的基本表的连接字段进行查询,其工作量是非常可观的。若在被连接的基本表的连接字段上创建索引,则可大大提高连接操作的速度。许多系统要求连接文件必须有相应索引,才能执行连接操作。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 例如例如: :要列出学生表中所有学生某门课程的成绩,则要进行学生和考试这两个基本表的连接操作。在考试基本表中学号(外部关键字)列上建立索引,可提高

129、表连接的速度。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3. 创建索引的原则 索引的创建和维护由索引的创建和维护由DBADBA和和DBMSDBMS完成完成索引由DBA或表的拥有者负责创建和撤消,其他用户不能随意创建和撤消索引。索引由系统自动选择和维护。(不需要用户指定使用索引,也不需要用户打开索引或对索引执行重索引操作,这些工作都由DBMS自动完成)。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 是否创建索引取决于表的数据量大小和对查询的要求是否创建索引取决于表的数据量大小和对查询的要求基本表中记录的数量越多,记录越长,越有必要创建索引,

130、创建索引后加快查询速度的效果越明显。记录较少的基本表,创建索引意义不大。索引要根据数据查询或处理的要求而创建(对那些查询频度高、实时性要求高的数据一定要建立索引,否则不必考虑创建索引的问题)。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 一个基本表,不要建过多索引一个基本表,不要建过多索引索引文件占用文件目录和存储空间,索引过多会使系统负担加重。索引需要自身维护,当基本表的数据增加、删除或修改时,索引文件要随之变化,以保持与基本表一致。索引过多会影响数据增、删、改的速度。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL避免使用索引的情形避免使

131、用索引的情形 包含太多重复值的列; 查询中很少被引用的列; 值特别长的列; 查询返回率很高的列; 具有很多NULL值的列; 需要经常插、删、改的列; 记录较少的基本表; 需进行频繁、大批量数据更新的基本表。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL4.索引的类型及选择 单列索引。单列索引。是对基本表的某一单独的列进行索引,是最简单和最常用的索引类型,它是在表的某一列的基础上建立的。 惟一索引。惟一索引。惟一索引不允许在表中插入任何相同的取值。使用惟一索引不但能提高性能,还可以维护数据的完整性。 复合索引。复合索引。针对基本表中两个或两个以上的列建立的索引。由于被索

132、引列的顺序对数据查询速度具有显著的影响,所以创建复合索引时,应当考虑索引的性能。为优化性能,通常将最强限定值放在第一位。不过,那些始终被指定的列更应当放在第一位。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL5.索引的创建 语句格式:语句格式:CREATEUNIQUECLUSTEREDINDEXCREATEUNIQUECLUSTEREDINDEX ONON(,) );功能:功能:为基本表创建索引。 说明:说明: 是要创建索引的基本表名字。索引可建在该表的一列或多列上,各列名间用逗号分隔; 每个后面还可用指定索引值的排列次序,次序可选ASC(升序)或DESC(降序),默认

133、值为ASC; UNIQUE表示该索引的每一个索引值只对应惟一的数据记录;26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL CLUSTERED CLUSTERED表示建立聚簇索引表示建立聚簇索引聚簇索引是SQL Server提供的一种索引形式,它使基本表中数据的物理顺序与索引项的排列顺序一致。创建聚簇索引可提高查询效率,但创建聚簇索引后,在更新索引列数据时,往往会导致表中记录的物理顺序的变更,因而代价是较大的。一个基本表上最多只能建一个聚族索引,对于经常更新的列不宜建立聚簇索引。 SQL SQL中的索引是非显示索引。中的索引是非显示索引。即在索引创建以后,用户在索引撤消前不

134、会再用到该索引名,但是索引在用户查询时会自动起作用。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-133-13:为学生管理DB中的基本表,学生、考试、课程创建索引。学生:学生:按学号升序创建惟一的聚簇索引;create unique clustered index idx_xh on create unique clustered index idx_xh on 学生学生( (学号学号) );考试:考试:按学号降序和课程号升序创建惟一的聚簇索引; create unique clustered index idx_xh_kch create unique clu

135、stered index idx_xh_kch on on 考试考试( (学号学号 desc desc ,课程号,课程号 asc)asc);课程:课程:按课程号升序创建惟一的索引。 create unique index idx_kch on create unique index idx_kch on 课程课程( (课程号课程号) );26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL索引前后的学生与考试基本表索引前后的学生与考试基本表26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL6.索引的撤消语句格式:语句格式:DROP INDEX DROP I

136、NDEX ,nn功能:功能:在DB中撤消指定的索引。说明:说明: 是要撤消的索引的名字; 撤消索引时,系统会同时从DD中删除有关对该索引的描述; 一次可撤消一个或多个指定的索引,索引名间逗号间隔。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-143-14:撤消学生管理DB中课程基本表的idx_kch索引和考试基本表的idx_xh_kch索引。drop index drop index 课程课程.idx_kch.idx_kch,考试,考试.idx_xh_kch.idx_xh_kch; 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.2.

137、4 视图1. 视图的优点视图的优点 2. 视图的创建视图的创建 3. 视图的撤消视图的撤消 4. 视图的查询视图的查询 5. 视图的更新视图的更新26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 视图视图( (窗口窗口) ):存储在DB中的预先定义好的查询,具有基本表的外观,可像基本表一样对其进行存取,但不占据物理存储空间。是一个逻辑表,它允许操作者从其他表或视图存取数据,视图本身不包含数据,所以也称为“虚表”。是RDBS提供给用户以多种角度观察DB中数据的重要机制。在三层DB体系结构中,视图是外部DB,它是从一个或几个基本表(或视图)中派生出来的,它依赖于基本表,不能独

138、立存在。视图是DB对象。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL视图和基本表的主要区别:视图和基本表的主要区别:基本表中的数据要消耗物理空间来存储,而视图并不需要物理存储空间,因为事实上视图中的数据是通过参照表而得到的。在DB中,视图具有和表一样的使用方法(可像从表中查询数据那样从视图中查询数据)。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL1.视图的优点 简化用户操作。简化用户操作。使用户将注意力集中在视图所关联的数据上; 使用户能以多种角度看待同一数据使用户能以多种角度看待同一数据(可使不同的用户以不同的方式看待同一数据); 对机密数

139、据提供安全保护。对机密数据提供安全保护。在设计DB应用系统时,对不同的用户定义不同的视图,使机密数据不出现在不应看到这些数据的用户视图上,自动提供了对机密数据的安全保护功能; 为为DBDB重构提供一定的逻辑独立性。重构提供一定的逻辑独立性。如果只是通过视图来存取DB中的数据,DBA可以有选择地改变构成视图的基本表,而不用考虑那些通过视图引用数据的应用程序的改动。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL2.视图的创建创建视图实际上就是DB执行定义该视图的查询语句。语句格式:语句格式: CREATE VIEW CREATE VIEW (,) AS AS WITH CH

140、ECK OPTIONWITH CHECK OPTION;功能:功能:定义视图名和视图结构,并将得到的元组作为视图的内容。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL说明:说明: 可以是任意复杂的SELECT语句,但通常不允许含有ORDER BY(对查询结果进行排序)和DISTINCT(从查询返回结果中删除重复行)短语; WITH CHECK OPTION表示对视图进行UPDATE、INSERT和DELETE操作时要保证更新、插入和删除的行满足视图定义中的谓词条件,即中WHERE子句的条件表达式。选择该子句,则系统对选择该子句,则系统对UPDATEUPDATE、INSE

141、RTINSERT和和DELETEDELETE操作进行检查;操作进行检查; 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 视图的列名或全部指定或全部省略视图的列名或全部指定或全部省略若省略视图各个列名,则表明该视图各列由中SELECT子句各目标列组成。 下列情况,必须指定组成视图的所有列名:下列情况,必须指定组成视图的所有列名: 目标列不是单纯的列名,而是集函数或列表达式; 中使用多个表或视图,且目标列中含有相同的列名; 需要在视图中改用新的、更合适的列名。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 该语句执行的结果,仅是将视图的定义信息存入

142、该语句执行的结果,仅是将视图的定义信息存入DBDB的的DDDD中,而中,而定义中的定义中的 语句并不执行。语句并不执行。当系统运行到包含该视图定义语句的程序时,根据DD中的视图的定义信息临时生成该视图。程序一旦执行结束,该视图立即被撤销。例例3-153-15:在学生管理DB中,建立01001班学生的视图VIEW_01001,其结构包括学号,姓名,年龄,班级号。 create view view_01001create view view_01001 as select as select 学号学号, ,姓名姓名, ,年龄年龄, ,班级号班级号 from from 学生学生 where wher

143、e 班级号班级号0100101001; 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.视图的撤消语句格式:语句格式:DROP VIEW DROP VIEW 功能:功能:从DB中删除指定的视图。 说明:说明: DROP VIEW是删除视图在DD中的定义信息,而由该视图导出的其他视图的定义却仍存在DD中,但这些视图已失效; 视图创建后,若导出此视图的基本表被删除了,则该视图将失效(一般不会被自动删除),用DROP VIEW语句将其删除。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL4.视图的查询是对基本表的查询,其查询结果是从基本表得到,所以,

144、同样一个视图查询,在不同的执行时间可能得到不同的结果,因为在这段时间里,基本表可能发生了变化。DBMS执行对视图的查询时,首先进行有效性检查,检查查询的基本表、视图等是否存在,如果存在,则从DD中取出视图的定义,把定义中的子查询和用户的查询结合起来,转换成等价的对基本表的查询,然后再执行修正了的查询。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-163-16:在例415创建的01001班学生的视图VIEW_01001中,找出年龄小于21岁的学生。 select select 学号学号, ,年龄年龄 from view_01001from view_01001

145、where where 年龄年龄21 21 ;根据视图消解的原理,本例对视图的查询转换成对基本表的查询语句为: select select 学号学号, ,年龄年龄 from from 学生学生 where where 年龄年龄21 and 21 and 班级号班级号0100101001;26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL5.视图的更新是指通过视图来插入、删除和修改数据。是指通过视图来插入、删除和修改数据。因视图是虚表,故对视图的更新,最终要转化为对基本表的更新。为防止用户通过视图进行更新数据,有意或无意对不属于视图范围内的基本表数据进行操作,可在定义视图时加

146、上WITH CHECK OPTION子句。在视图上更新数据时,DBMS检查视图定义中的条件,若不满足条件,则拒绝执行更新操作。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL一般的DBS只允许对行列子集的视图进行更新操作。行列子集视图是指从单个基本表导出、虽去掉了基本表的某些行和某些列但保留了主关键字的视图。对行列子集进行数据更新操作时,DBMS会把更新数据传到对应的基本表中。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQLDBSDBS不支持对视图进行数据更新的操作:不支持对视图进行数据更新的操作: 由两个以上基本表导出的视图; 视图的列来自列表达式

147、函数; 视图中有分组子句或使用DISTINCT短语; 视图定义中有嵌套查询,且内层查询中涉及与外层一样的导出该视图的基本表; 在一个不允许更新的视图上定义的视图。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.2.5 存储过程1. 存储过程特点存储过程特点 2. 使用存储过程的好处使用存储过程的好处 3. 存储过程的创建与执行存储过程的创建与执行 4. 修改存储过程修改存储过程 5. 存储过程的撤消存储过程的撤消 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL存储过程:存储过程:是指编译之后可以以一种可执行的形式永久地存储在DB中的SQL语句

148、。是一些DB开发商对标准SQL语言开发的扩展版本中新增加的DB对象。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL1.存储过程特点正常情况下,当DB中有SQL发出时,DB必定检查该语句的语法,并进行语法分析,即将其转化为DB内部的可执行形式。经过语法分析的语句驻留在内存中(但不是永久性的)。当其他操作需要内存空间时,该语句将被清除出内存。存储过程中的SQL语句在任何时候都是可执行的,并存在DB中,直到它像其他DB对象那样被撤消为止。对经常需要执行的语句,应当为它们创建存储过程。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL2.使用存储过程的好处

149、 执行速度快。执行速度快。创建时经过语法检查和性能优化,执行时不必再重复这些步骤。经过第一次调用后,驻留内存中,不必再经过编译和优化。 模块化的程序设计。模块化的程序设计。存储过程经过一次创建后,可被无数次调用。用户可独立于应用程序而修改存储过程。可为不同功能模块设计不同存储过程。 减少网络通信量。减少网络通信量。存储过程中包含大量SQL语句。但其作为一独立单元使用,进行调用时,只需使用一条语句就可实现。 保证系统的安全性。保证系统的安全性。可设置用户通过存储过程来对某些关键数据进行访问,但不许用户直接使用SQL来对数据进行访问。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言

150、SQL3.存储过程的创建与执行 创建存储过程创建存储过程 语句格式:语句格式: CREATE PROCEDURE CREATE PROCEDURE RECOMPILE|RECOMPILE| ENCRYPTION|RECOMPILEENCRYPTION|RECOMPILE,ENCRYPTION ENCRYPTION ASAS SQL 功能:功能:在DB中创建存储过程。说明:说明:是指要创建的存储过程;选择RECOMPILE参数,表示每次执行存储过程时,都要对其进行重新编译和优化;选择ENCRYPTION参数,表示隐藏存储过程的文本;指任意合法的SQL语句。 26 七月 2024数据库原理与应用第

151、3章 关系数据库的标准语言SQL 执行存储过程执行存储过程存储过程创建后,可直接使用存储过程名字对其进行调用执行。例例3-173-17:创建能返回01001班全体男生的学号、姓名、年龄信息的存储过程PROC_BOY。 create proc proc_boy recompile,encryptioncreate proc proc_boy recompile,encryption as as select select 学号学号, ,姓名姓名, ,年龄年龄 from from 学生学生 where where 班级号班级号01001and 01001and 性别性别男男;执行存储过程,使用命令

152、:proc_boyproc_boy 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL4.修改存储过程语句格式:语句格式: ALTER PROCEDURE ALTER PROCEDURE RECOMPILE | ENCRYPTION |RECOMPILERECOMPILE | ENCRYPTION |RECOMPILE,ENCRYPTIONENCRYPTION ASAS SQL 功能:功能:修改DB中指定的存储过程。说明:说明: 一般使用该语句的前提是不改变存储过程的使用许可和不改变其名字; 一次只能修改一个存储过程。26 七月 2024数据库原理与应用第3章 关系数据库的

153、标准语言SQL5.存储过程的撤消语句格式:语句格式:DROP PROCEDURE DROP PROCEDURE ,nn功能:功能:在DB中撤消指定的存储过程。说明:说明: 指要撤消的存储过程; 一次可将一个或多个存储过程从DB中删除。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.3 数据更新语言3.3.1 插入数据插入数据3.3.2 修改数据修改数据 3.3.3 删除数据删除数据 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.3.1 插入数据1 1. . 插入单个元组插入单个元组 2 2. . 插入多元组插入多元组 26 七月 2024数

154、据库原理与应用第3章 关系数据库的标准语言SQL1.插入单个元组语句格式:语句格式: INSERT INTO INSERT INTO (1, 2,) VALUES (VALUES (,2,);功能:功能:将一个新元组插入指定的基本表中。说明:说明: INTO子句中的,指出在基本表中插入新值的列,VALUES子句中的, 指出在基本表中插入新值的列的具体值;26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL VALUES子句中各常量的数据类型必须与INTO子句中所对应列的数据类型兼容,VALUES子句中常量的数量必须匹配INTO子句中的列数; INTO子句中没有出现的列,新插入

155、的元组在这些列上取空值; 如果省略INTO子句中的,则新插入元组的每一列必须在VALUES子句中均有值对应; 如果在基本表中存在定义为NOT NULL的列,则该列的值必须要出现在VALUES子句中的常量列表中,否则错误。 这种插入数据的方法一次只能向基本表中插入一行数据,并且每次插入数据都必须输入基本表的名字以及要插入的列的数值。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-183-18:将一个新生的数据(020011,张三,男,19,02005)插入到学生基本表中。insert into insert into 学生学生 Values (020011,Val

156、ues (020011,张三张三,男男,19,02005),19,02005);26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL2.插入多元组语句格式:语句格式: INSERT INTO INSERT INTO (1, 2,) ;功能:功能:一次向基本表中插入多个元组。说明:说明: SQL先处理,得到查询结果,再将结果插入到所指的基本表中; 结果集合中的列数、列序和数据类型必须与所指的基本表中相应各项匹配或兼容。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-193-19:在学生管理中,要求将所有女学生的学号、姓名和年龄单独存放在一个基本表中

157、。 (在学生管理数据库中创建女学生基本表查询插入) create table create table 女学生女学生 ( (学号学号 char(6) not null,char(6) not null, 姓名姓名 char (10),char (10), 年龄年龄 smallint)smallint); insert into insert into 女学生女学生 select select 学号学号, ,姓名姓名, ,年龄年龄 from from 学生学生 where where 性别性别=女女;26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.3.2 修改数据语句格

158、式:语句格式: UPDATE UPDATE SET SET =, =,nn WHERE WHERE ;功能:功能:修改指定表中满足WHERE子句所指定条件的元组。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL说明:说明: 指出要修改数据的基本表的名字; SET子句用于指定修改方法,用的值取代相应的列值,且一次可以修改多个列的列值; WHERE子句指出基本表中需要修改数据的元组应满足的条件,如果省略WHERE子句,则修改基本表中的全部元组; 在WHERE子句中也可以嵌入子查询。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-203-20:将“

159、数据库”的周学时在原来的基础上再加2学时。 update update 课程课程 set set 周学时周学时周学时周学时+2+2 where where 课程名课程名数据库数据库例例3-213-21:将考试基本表中的“数据库”课程的考试成绩乘以难度系数0.8。 update update 考试考试 set set 成绩成绩成绩成绩*0.8*0.8 where where 课程号课程号(select(select课程号课程号 from from 课程课程 where where 课程名课程名数据库数据库);26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.3.3 删除数

160、据语句格式:语句格式:DELETE FROM DELETE FROM WHERE WHERE;功能:功能:删除指定表中满足WHERE子句条件的所有元组。说明:说明: DELETE语句删除的是基本表中的数据,而不是表的定义; 省略WHERE子句,表示删除基本表中的全部元组; 在WHERE子句中也可以嵌入子查询; 数据一旦被删除将无法恢复,除非事先有备份。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-223-22:删除01001班所有学生的考试成绩。 delete from delete from 考试考试 where where 学号学号 in (select

161、in (select 学号学号 from from 学生学生 where where 班级号班级号01001)01001);26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.4 数据查询语言3.4.1 SELECTSELECT语句语句 3.4.2 单表查询单表查询 3.4.3 连接查询连接查询 3.4.4 嵌套查询嵌套查询 3.4.5 集合查询集合查询 3.4.6 函数查询函数查询 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL数据查询:数据查询:DB的核心操作。功能:功能:是指根据用户的需要以一种可读的方式从DB库中提取所需数据,由SQL的数据

162、操纵语言的SELECT语句实现。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.4.1 SELECT语句格式:格式:SELECT ALL|DISTINCTSELECT ALL|DISTINCT,nn FROM FROM , WHERE WHERE GROUP BY GROUP BY 1HAVING HAVING ORDER BY ORDER BY ASC|DESC,2ASC|DESC,;功能:功能:从指定的基本表或视图中,选择满足条件的元组数据,并对它们进行分组、统计、排序和投影,形成查询结果集。 执行过程26 七月 2024数据库原理与应用第3章 关系数据库的标准语

163、言SQL说明:说明: 其中SELECTSELECT和FROMFROM语句为必选子句,其他子句为任选子句; SELECT ALL|DISTINCTSELECT ALL|DISTINCT,nn子句指明查询结果集的目标列。 是指查询结果集中包含的列名,可以是直接从基本表或视图中投影得到的字段、与字段相关的表达式或数据统计的函数表达式,目标列还可是常量。DISTINCTDISTINCT说明要去掉重复的元组。ALLALL表示所有满足条件的元组。省略表示结果集中包含中的所有列,此时可使用* *代替。若目标列中使用了两个基本表或与视图中相同的列名,要在列名前加表名限定,即使用“ ”表示。26 七月 2024

164、数据库原理与应用第3章 关系数据库的标准语言SQL FROM FROM , 子句指明要查询的数据来自哪些基本表或视图。基本表或视图名间用“,”分割。如果查询使用的基本表或视图不在当前DB中,还需要在表或视图前加上DB名加以说明,即使用“ . ”的形式表示。如果在查询中需要一表多用,则每种使用都需要一个表的别名标识,并在各自使用中用不同的基本表别名表示。定义基本表别名的格式为“ ”。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL WHERE WHERE 子句通过条件表达式描述对基本表或视图中元组的选择条件。DBMS处理语句时,以元组为单位,逐个考察每个元组是否满足WHE

165、RE子句中给出的条件,将不满足条件的元组筛选掉,所以WHERE子句中的表达式也称为元组的过滤条件元组的过滤条件。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL GROUP BY GROUP BY 1HAVING HAVING 子句作用是将结果集按的值进行分组,即将该列值相等的元组分为一组,每个组产生结果集中的一个元组,可以实现数据的分组统计。当SELECT子句后的中有统计函数,且查询语句中有分组子句,则统计为分组统计,否则为对整个结果集统计。GROUP BY子句后可以使用HAVING 短语,它用来限定分组必须满足的条件。HAVING必须跟随GROUP BY子句使用。26

166、 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL ORDER BY ORDER BY ASC|DESC,2ASC|DESC,子句该子句的作用是对结果集按的值的升序(ASC)或降序(DESC)进行排序。查询结果集可以按多个排序列进行排序,根据各排序列的重要性从左向右列出。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQLSELECTSELECT语句的执行过程:语句的执行过程:根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式,选出元组中的列值形成结果集。若有GROUP子句,则将结果集按的

167、值进行分组,该属性列值相等的元组为一个组,每个组产生结果集中的一个元组。若GROUP BY子句后带HAVING短语,则只有满足指定条件的组才予以输出。若有ORDER BY子句,则结果集还要按的值的升序或降序排序。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.4.2 单表查询单表查询:单表查询:指在查询过程中只涉及一个表或视图的查询语句。例例3-233-23:在学生表中查询20-22岁之间的学生的学号、姓名和年龄。 select select 学号学号, ,姓名姓名, ,年龄年龄 from from 学生学生 where where 年龄年龄 between 20 a

168、nd 22between 20 and 22;26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-243-24:求修读课程号为A004课程的学生学号和成绩,并将成绩乘以难度系数0.8,结果按学号降序且成绩升序排列。 select select 学号,成绩学号,成绩*0.8*0.8 from from 考试考试 where where 课程号课程号a004a004 order by order by 学号学号 desc desc ,成绩,成绩 ;例例3-253-25:求01001或02001班的姓“王”的学生的所有信息。 select *select * from fr

169、om 学生学生 where where 班级号班级号 in (01001,02001) in (01001,02001) and and 姓名姓名 likelike王王%;例例3-263-26:求学校的班级个数。 select distinct select distinct 班级号班级号 from from 学生学生 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.4.3 连接查询连接查询:连接查询:在一个查询中同时涉及两个以上的基本表的查询。1 1. . 连接条件及其连接查询执行过程连接条件及其连接查询执行过程 2 2. . 等值与非等值连接查询等值与非等值连接查

170、询 3 3. . 自然连接查询自然连接查询 4 4. . 自身连接查询自身连接查询 5 5. . 外部连接查询外部连接查询 6 6. . 无条件查询无条件查询 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL1.连接条件及其连接查询执行过程连接条件或连接谓词:连接条件或连接谓词:用来连接两个表的条件。一般格式:一般格式: .l. .2其中:其中:比较(连接)运算符:、!或。连接字段:连接字段:连接条件中的列名。连接字段类型必须可比,不必相同。连接条件通过WHERE子句表达。在WHERE子句中,有时既有连接条件又有元组选择条件,这时它们间用AND(与)操作符衔接,且将连接条

171、件放在前面。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL连接查询执行过程连接查询执行过程 表1表2结果表26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL2.等值与非等值连接查询 等值连接:等值连接:是指连接运算符为“”时的连接;非等值连接:非等值连接:则是指连接运算符为除“”之外的其他运算符的连接。例例3-273-27:察看每个学生的基本情况及其所选课程情况。 select select 学生学生.*.*,考试,考试.*.* from from 学生,考试学生,考试 where where 学生学生. .学号考试学号考试. .学号;学号; 26

172、 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.自然连接查询自然连接查询:自然连接查询:指等值连接中的连接字段相同,并且在SELECT子句中去除了重复字段的连接。自然连接是连接运算中的特殊情况。例例3-283-28:将例例3-273-27结果集中的重复列“学号”去掉,则表示学生基本表与考试基本表进行的是自然连接查询。 selectselect学生学生. .学号,姓名,性别,年龄,班学号,姓名,性别,年龄,班级号,课程号,成绩级号,课程号,成绩 from from 学生,考试学生,考试 where where 学生学生. .学号考试学号考试. .学号;学号; 26 七月 2

173、024数据库原理与应用第3章 关系数据库的标准语言SQL4.自身连接查询自身连接查询:自身连接查询:基本表自身的连接操作。 例例3-293-29:查询每一门课程的间接先修课(即先修课的先修课)。 select a.select a.课程号,课程号,a.a.课程名,课程名,b.b.先修课先修课 from from 课程课程 a a,课程,课程 b b where a. where a.先修课先修课b.b.课程号;课程号;26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL各门课程直接先修课关系链:A005A004A003A002A001。各门课程间接先修课关系链:A005A00

174、3A001。 A A表与表与B B表关系如下:表关系如下: A A表表 B B表表26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL5.外部连接查询内连接查询:内连接查询:查询结果集中都是满足连接条件的元组。外部连接查询:外部连接查询:在查询结果集中除保留满足条件的元组外,还保留不满足连接条件的元组。SQLSQL的外部连接查询类型的外部连接查询类型分左外部连接查询分左外部连接查询(*(*) ):结果集中将保留连接条件中左边基本表(*所在的一边)的所有行,以及左边基本表中在连接条件中右边基本表中没有匹配值的所有元组。右外部连接查询右外部连接查询( (*)*):与左外部连接查询

175、相似。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-303-30:用SQL表达学生基本表和考试基本表之间的左外部连接查询。 select select 学生学生.*.*,课程号,成绩,课程号,成绩 from from 学生,考试学生,考试 where where 学生学生. .学号学号* *考试考试. .学号;学号; 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL6.无条件查询指两个基本表没有连接条件的连接查询,是两个基本表中的元组做交叉乘积,即其中一个基本表的每一个元组都要与另一个基本表中的每一个元组作拼接。又称为笛卡尔积笛卡尔积,是连

176、接运算中的特殊情况。一般,无条件查询是没有实际意义的。它只是便于理解连接查询各种类型和连接查询过程的一种最基本的查询形式。例例3-313-31:求学生和考试两个基本表的笛卡尔乘积。select * from select * from 学生,考试;学生,考试;26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.4.4 嵌套查询查询块:查询块:一个SELECT-FROM-WHERE语句称为一个查询块。嵌套查询:嵌套查询:一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询。例例3-323-32:察看所有修读课程号为A004课程的学生学号、姓名、性别和

177、班级号。 select select 姓名,姓名,性别,班级号姓名,姓名,性别,班级号 from from 学生学生 where where 学号学号 inin (select (select 学号学号 from from 考试考试 where where 课程号课程号a004)a004);执行顺序:执行顺序:由里向外或由下层向上层处理。即先执行子查询再执行父查询,子查询的结果集用于建立其父查询的查找条件。在嵌套查询中,子查询的结果往往是一个集合集合。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL1 1. . 使用比较符的嵌套查询使用比较符的嵌套查询2 2. . 使用谓

178、词的嵌套查询使用谓词的嵌套查询26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 1.使用比较符的嵌套查询比较符:比较符:用于一个值与另一个值之间的比较。比较符嵌套查询:比较符嵌套查询:是指父查询与子查询之间使用比较运算符进行连接。当比较符后面的值需要通过查询才能得到,并且能确切知道查询返回的是单值时使用的嵌套查询。可使用的比较运算符为:可使用的比较运算符为:、!或。子查询一定要跟在比较符之后,否则错误。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-333-33:求A004号课程的成绩高于刘芳的学生学号和成绩。 select select 学

179、号,成绩学号,成绩from from 考试考试where where 课程号课程号a004and a004and 成绩成绩(select (select 成绩成绩 from from 考试考试 wherewhere课程号课程号a004and a004and 学号学号= =(select(select学号学号 from from 学生学生 where where 姓名姓名刘芳刘芳) ); 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL2.使用谓词的嵌套查询 使用谓词使用谓词ININ的嵌套查询的嵌套查询 使用谓词使用谓词ANYANY或或ALLALL的嵌套查询的嵌套查询 使用

180、谓词使用谓词EXISTSEXISTS的嵌套查询的嵌套查询26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 使用谓词IN的嵌套查询当谓词IN后的数据集需要通过查询得到时,就需要使用IN嵌套查询。参见例例3-323-32:察看所有修读A004课程的学生学号、姓名、性别和班级号。 select select 姓名,姓名,性别,班级号姓名,姓名,性别,班级号 from from 学生学生 where where 学号学号 inin (select (select 学号学号 from from 考试考试 where where 课程号课程号a004)a004);思考:思考:例3-3

181、2的语句的查询条件是否可以不使用谓词进行构造?26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL谓词ANY和ALL的一般格式为: ANY ANY或或ALL ALL 将与谓词ANY或ALL一起使用,可以表达值与查询结果中的一些或所有的值之间的比较关系。使用谓词ANY或ALL时必须与比较符配合使用。 使用谓词ANY或ALL的嵌套查询26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-343-34:求其他班中比01001班某一学生年龄小的学生,即求年龄小于01001班中年龄最大者的学生。 select *select *from from 学生学生whe

182、re where 年龄年龄any any (select (select 年龄年龄 from from 学生学生 where where 班级号班级号01001) 01001) and and 班级号班级号 01001 01001;26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-353-35:求其他班中比01001班学生年龄都小的学生。 select *select *from from 学生学生where where 年龄年龄all all (select (select 年龄年龄 from from 学生学生 where where 班级号班级号01001)

183、01001) and and 班级号班级号 01001 01001;26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL谓词EXISTS的格式为:EXISTS EXISTS 用于判断子查询结果是否存在。带有EXISTS谓词的子查询不返回任何数据,当子查询结果集非空即其中至少有一个元组时,返回逻辑真值“True”,当子查询结果集为空即一个元组也没有,则返回逻辑假值“False”。 使用谓词EXISTS的嵌套查询26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-363-36:将例例3-32(3-32(察看所有修读课程号为A004课程的学生学号、姓名、性

184、别和班级号)使用谓词EXISTS实现。select select 学号,姓名,性别,班级号学号,姓名,性别,班级号from from 学生学生where exists where exists (select * (select * from from 考试考试 where where 学生学生. .学号学号学号学号 and and 课程课程号号=a004)=a004);由EXISTS引出的子查询,其目标列表达式通常都用*,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL与EXISTS谓词相对应的是NOT E

185、XISTS谓词。使用谓词NOT EXISTS后,若内层查询结果集为空,则外层的WHERE子句返回真值,否则返回假值。例例3-373-37:察看没有修读A004的课程的学生学号和姓名。select select 学号,姓名学号,姓名from from 学生学生where not exists where not exists (select * (select * from from 考试考试 where where 学生学生. .学号学号学号学号 and and 课程号课程号=a004)=a004); 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.4.5 集合查询集

186、合查询:集合查询:将SELECT语句的查询结果集再进行集合运算。 1 1. . 集合并操作集合并操作 2 2. . 集合交操作集合交操作 3 3. . 集合差操作集合差操作26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL1.集合并操作并操作(UNION):进行多个查询结果的合并时,系统自动去掉重复元组。参加并操作(UNION)的各列的数目及其数据类型必须相同。例例3-383-38:求修读了A003课程或修读了A004课程的学生学号和成绩。 select 学号,成绩 from 考试 where 课程号=a003 union select 学号,成绩 from 考试 wher

187、e 课程号=a00426 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL2.集合交操作先分别求出参与INTERSECT集合交操作的查询结果集,然后再进行交运算。例例3-393-39:求修读了A003课程,并也修读了A004课程的学生学号和姓名。 select 学号,姓名 from 考试 where 课程号a003 intersect select 学号,姓名 from 考试 where 课程号a004;思考:思考:该集合查询语句是否可以由其他查询语句代替?26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.集合差操作先分别求出参与MINUS集合差操作的查

188、询结果集,然后再进行差运算。例例3-403-40:求修读A003课程但没有修读A004课程的学生学号和姓名。 select 学号,姓名 from 考试 where 课程号a003 minus select 学号,姓名 from 考试 where 课程号a004;思考:思考:该集合查询语句是否可以由其他查询语句代替?26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.4.6 函数查询函数查询函数查询( (聚集查询或统计查询聚集查询或统计查询) ): 基本表中某一列的值经过函数运算得到一个单一值的过程。SQL通过统计函数可进行综合信息的统计。函数可作为列标识符出现在SELEC

189、T子句的目标列或HAVING子句的条件中。查询语句中,若有GROUP BY分组子句,则语句中函数为分组统计函数;若没有GROUP BY分组子句,则语句中函数为全部结果集的统计函数。基本SQL函数及功能中若指定DISTINCT短语,则表示在计算时要取消指定列中的重复值;若不指定DISTINCT短语和ALL短语,则取默认值ALL,表示不取消重复值。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 基本的基本的SQLSQL函数及功能:函数及功能: 函数函数功能功能COUNT(DISTINCT|ALL*)COUNT(DISTINCT|ALL)SUM(DISTINCT|ALL)AV

190、G(DISTINCT|ALL)MAX(DISTINCT|ALL)MIN(DISTINCT|ALL)统计元组个数计算一列中值的个数计算一列值的总和(此列必须是数值型)计算一列值的平均值(此列必须是数值型)求一列值中的最大值求一列值中的最小值 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-413-41:求学生的总人数。 select count(*) select count(*) from from 学生;学生;例例3-423-42:求修读了课程的学生人数。 select count(distinct select count(distinct 学号学号) ) f

191、rom from 考试;考试;例例3-433-43:求课程基本表中所有的课程和修读各门课程的人数。 select select 课程号,课程号,count(count(学号学号) ) from from 考试考试 group by group by 课程号;课程号;例例3-443-44:求修读的课程超过3门的学生学号。 select select 学号,学号,count(count(学号学号) ) from from 考试考试 group by group by 学号学号 having count(*)3having count(*)3;26 七月 2024数据库原理与应用第3章 关系数据库的

192、标准语言SQL3.5 数据控制语言3.5.1 数据控制方法数据控制方法3.5.2 数据控制语句数据控制语句 3.5.3 事务控制语句事务控制语句 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL数据控制也称数据保护。数据控制语言DCL是SQL语言的组成部分。DBDB的完整性:的完整性:DB中数据的正确性与相容性。(完整性约束条件的定义和检查机制)。并发控制:并发控制:当多个用户并发地对DB进行操作时,对他们加以控制、协调,以保证并发操作正确执行,并保持DB的一致性。恢复:恢复:当发生各种类型的故障,使DB处于不一致状态时,将DB恢复到一致状态的功能。DBDB的安全性:的安

193、全性:保护DB,防止不合法的使用所造成的数据泄露和破坏。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.5.1 数据控制方法1 1. DB. DB操作权限操作权限 2 2. . 数据控制方法数据控制方法26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL1.DB操作权限 隐含特权:隐含特权:系统内置权限,是用户不需要进行授权就可拥有的数据操作权。 系统特权系统特权( (语句特权):相当于数据定义语言的语句权限。是允许用户在DB内部实施管理行为的特权,它主要包括创建或删除DB 、创建或删除用户、删除或修改DB对象等。 对象特权:对象特权:类似于DB操作

194、语言的语句权限,它指用户对DB中的表、视图、存储过程等对象的操作权限。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL2.数据控制方法DBMSDBMS实现数据控制的步骤:实现数据控制的步骤: 授权定义。授权定义。首先由具有授权资格的DBA和DB对象的所有者进行授权定义,即通过数据控制语言DCL,将授权决定告知DBMS。 存权处理。存权处理。DBMS把授权的结果编译后存入DD中。DD是由系统自动生成、维护的DB,由一组表组成,其中记录着用户标识、基本表、视图和各表的属性描述及系统授权情况。 查权操作。查权操作。当用户提出操作请求时,系统在DD中查找该用户的数据操作权限,当用

195、户拥有该操作权时才能执行其操作,否则系统拒绝。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.5.2 数据控制语句1 1. . 授予权限授予权限 2 2. . 撤消权限撤消权限 3 3. . 拒绝访问拒绝访问 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL1.授予权限语句格式:语句格式: GRANT GRANT , , ON ON TO TO ,| PCBLIC | PCBLIC WITH GRANT OPTIONWITH GRANT OPTION;功能:功能:将对指定操作对象的指定操作权限授予指定的用户。26 七月 2024数据库原理与应用第

196、3章 关系数据库的标准语言SQL说明:说明: 不同类型的操作对象具有不同的操作权限对属性列和视图的操作权限:SELECT、INSERT、UPDATE、DELETE、ALL PRIVILEGES(前4种权限的总和);对基本表的操作权限:SELECT、INSERT、UPDATE、DELETE、ALTER、INDEX、ALL PRIVILEGES(前6种权限的总和);对DB的操作权限:CREATTAB(属于DBA),但可由DBA授予普通用户。被授予此权限的普通用户可创建基本表,并拥有对该基本表的一切操作权限。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL PUBLIC指DB的

197、所有用户; 授予关于属性列的权限时,必须明确指出相应的属性列名; 若指定WITH GRANT OPTION子句,则获得某种权限的用户还可把该权限再授予别的用户。否则获得某种权限的用户只能使用该权限,不能传播该权限;例例3-453-45:将修改学生年龄和查询学生基本表的权限授予用户张三。grant update(grant update(年龄年龄) ),select on select on 学生学生 to to 张三;张三;26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL2. 撤消权限 语句格式:语句格式: REVOKE REVOKE , , ON ON FROM FRO

198、M ,|PUBLIC|PUBLIC;功能:功能:将指定的用户对指定操作对象的指定操作权限撤消。说明:说明: PUBLIC指DB的所有用户; 撤消关于属性列的权限时,必须明确指出相应的属性列名; 当用户的某一手授权被撤消之后,若没有被再次授权,将不能再对数据进行曾经拥有授权的操作。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL例例3-463-46:撤消用户张三对学生基本表修改年龄的权限。revoke update(revoke update(年龄年龄) on ) on 学生学生 from from 张三;张三; 26 七月 2024数据库原理与应用第3章 关系数据库的标准

199、语言SQL3. 拒绝访问语句格式:语句格式:DENY ALL PRIVILEGES |DENY ALL PRIVILEGES | , , ON ON TO TO ,|PUBLIC|PUBLIC;功能:功能:拒绝被授予相应权限的用户对DB对象的访问。说明:说明: PUBLIC指DB的所有用户; 拒绝关于属性列的权限时,必须明确指出相应的属性列名; 当用户的某一手授权被拒绝之后,若没有被再次授权,将不能再对数据进行曾经拥有授权的操作。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL3.5.3 事务控制语句1 1. . 事务事务 2 2. . 定义事务语句定义事务语句26 七月

200、 2024数据库原理与应用第3章 关系数据库的标准语言SQL1.事务事务是在DB上的一个或多个操作的序列。是基于DB的执行工作单元(是一条DML语旬,或是一组DML语句)。当管理事务的语句是一组时,事务组中的每条语句都必须作为一个整体被执行,要么全部都做,要么全部都不做。也就是说事务必须以原子的方式执行。事务的属性事务的属性: 所有的事务都有一个开始和结束; 一个事务可以被保存和被撤消; 若一个事务在执行过程中失败,则事务中的任何一部分都不会保存到DB中;26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL2.定义事务语句事务的开始与结束可以由用户显式控制。若用户没有显式显式

201、地定义事务,则由DBMS按缺省自动划分事务。 事务开始事务开始语句格式:语句格式:BEGIN TRANSACTIONBEGIN TRANSACTION;功能:功能:表示事务的开始。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL 事务提交事务提交语句格式:语句格式:COMMITCOMMIT;功能:功能:使事务成功地结束。说明:说明:提交当前事务就是把当前事务开始以后SQL语句所造成的DB的任何改变都写到磁盘上,使之永远存放在DB中。在COMMIT语句执行之前,当前事务中SQL语句对DB造成的改变都是暂时的。 26 七月 2024数据库原理与应用第3章 关系数据库的标准语言

202、SQL 事务撤消事务撤消语句格式:语句格式:ROLLBACKROLLBACK;功能:功能:使事务不成功地终止。说明:说明:事务中对DB造成的任何改变都将撤消,也就是说DB不会发生改变。26 七月 2024数据库原理与应用第3章 关系数据库的标准语言SQL小结SQLSQL的发展、组成和特点;的发展、组成和特点;数据定义:数据定义:DB以及DB对象包括基本表、索引、视图以及存储过程的创建、修改和撤消;数据更新:数据更新:数据的插入、修改和删除;数据查询:数据查询:SQL最常用的功能。单表查询、涉及多表的复杂的连接查询、嵌套查询,以及集合查询和函数查询;数据控制:数据控制: 数据控制方法、数据控制语

203、句、事务控制语句。第第4 4章章 关系数据库设计关系数据库设计 26 七月 2024数据库原理与应用第4章 关系数据库设计内内 容容4.1 概念模型概念模型4.2 数据库设计步骤数据库设计步骤4.3 网络环境下的数据库应用规划网络环境下的数据库应用规划小结小结26 七月 2024数据库原理与应用第4章 关系数据库设计4.1 概念模型4.1.1 信息的三个世界信息的三个世界4.1.2 概念模型的基本概念概念模型的基本概念4.1.3 实体实体-联系方法联系方法4.1.4 E-R模型的设计问题模型的设计问题26 七月 2024数据库原理与应用第4章 关系数据库设计模型:模型:是对现实世界的模拟和抽象

204、。数据模型:数据模型:是对现实世界问题的数据特征的描述。数据模型的种类:数据模型的种类:概念模型(即概念数据模型,又称信息模型)数据模型(即逻辑数据模型或结构数据模型)现实世界问题到数据模型经历信息的三个世界:现实世界问题到数据模型经历信息的三个世界:现实世界信息世界数据世界 26 七月 2024数据库原理与应用第4章 关系数据库设计4.1.1 信息的三个世界1 1现实世界现实世界2 2信息世界信息世界3 3数据世界数据世界26 七月 2024数据库原理与应用第4章 关系数据库设计1现实世界现实世界:现实世界:指存在于人们头脑之外的客观世界,其中存在着各种事物,事物间又具有不同的联系。例如:例

205、如:某高校管理系统的教学管理子系统涉及对学生、班级、教师、课程、专业和系的管理。在设计该子系统时,用户肯定会将一些报表或图表提供给设计人员,这些报表或图表都是最原始的数据,它们是存在于人们头脑之外的、客观存在的事物,DB设计者必须仔细分析这些报表或图表所表示的含义,理解它们之间所具有的各种联系。26 七月 2024数据库原理与应用第4章 关系数据库设计2信息世界信息世界:信息世界:是指现实世界在人的头脑中的反应。例如:例如:在设计教学管理子系统时,DB设计者必须对用户所提供的原始数据进行综合,抽象出DBS所要研究的数据,将现实世界中的事物及其联系,转换成信息世界中的实体及其联系。实体及相互间联

206、系:实体及相互间联系:用概念模型描述。概念模型:概念模型:是一种独立于计算机系统的数据模型,它是按用户的观点来描述某个企业或组织所关心的信息结构,是对现实世界的第一层抽象。26 七月 2024数据库原理与应用第4章 关系数据库设计3数据世界数据世界:数据世界:指信息世界中的信息在计算机中的数据存储。信息世界中的实体及其联系将被转换成数据世界中的数据及联系(用数据模型表示)。数据模型:数据模型:是基于计算机系统和DB的数据模型,它直接面向的是DB的逻辑结构,它是对现实世界的第二层抽象。 26 七月 2024数据库原理与应用第4章 关系数据库设计信息的三个世界之间的关系信息的三个世界之间的关系人脑

207、的认识抽象现实世界现实世界信息世界信息世界数据世界数据世界现实世界问题事物及其联系概念模型实体及其联系数据模型数据及其联系转换请按键请按键26 七月 2024数据库原理与应用第4章 关系数据库设计4.1.2 概念模型的基本概念1 1实体实体2 2实体集实体集3 3实体型和实体值实体型和实体值4 4属性属性5 5键键6 6联系联系26 七月 2024数据库原理与应用第4章 关系数据库设计1实体实体:实体:是指客观存在且可区别于其他对象的事物。具体的对象(一个产品、一个仓库、一艘船、一个房子、一个学生、一门课程等);抽象的事件(一次订货、一次购房、一次选课等)。26 七月 2024数据库原理与应用

208、第4章 关系数据库设计2实体集实体集:实体集:是具有相同类型和相同性质的实体的集合。如某公司所有产品、某公司所有仓库、某学校所有学生等。实体集的范围:实体集的范围:取决于要解决的应用问题所涉及环境的大小。例:例:为解决某个学校的应用问题,该校全体学生组成的集合是一个学生实体集,但如果应用问题与某一城市如大连市所有的学校有关,那么学生实体集包含的就是大连市的所有学生。26 七月 2024数据库原理与应用第4章 关系数据库设计实体集是可以相交的实体集是可以相交的例:例:某高校全体教授和副教授分别组成“教授”和“副教授”实体集,而一个“教师”实体可能属于“教授”实体集,也可能属于“副教授”实体集,也

209、可能既不属于“教授”实体集,又不属于“副教授”实体集。 26 七月 2024数据库原理与应用第4章 关系数据库设计3实体型和实体值实体型:实体型:用于描述和抽象同一实体集共同特征的实体名及其属性名的集合。如:如:学生(学号,姓名,年龄,性别,班级)实体值:实体值:实体集中的某个实体的值即为实体值如:如:(“010125”,“曲波”,“男”,19,“01001”)属于同一实体集的实体的实体型是相同的,但实体值是不同的。属于同一实体集的实体的实体型是相同的,但实体值是不同的。26 七月 2024数据库原理与应用第4章 关系数据库设计例:例:8个实体值,分别代表8个不同的学生,但其实体型是相同的。0

210、10125曲波男1901001010126 高天 男 2001002 010138 张新 女 2101001 000234关笑 男 2200011 020308 王乐 女 1802010 001025 李明 男 1800005 020016 张铁 男 1902001 001004 刘芳 女 2000011 26 七月 2024数据库原理与应用第4章 关系数据库设计4属性属性:属性:是实体集中的每个成员所具有的某一特性。如学生实体集中的每个实体都具有学号、姓名、年龄、性别和班级等特性,这些特性就是学生实体的属性。属性的取值范围称为属性的域:属性的取值范围称为属性的域:长度为10的字符串、介于10

211、和100之间的整数、红,黄,蓝、1,2,3,4等。26 七月 2024数据库原理与应用第4章 关系数据库设计实体的属性分类:实体的属性分类: 简单属性简单属性、复合属性复合属性 单值属性、多值属性单值属性、多值属性 Null Null属性属性 派生属性派生属性26 七月 2024数据库原理与应用第4章 关系数据库设计 简单属性、复合属性简单属性:简单属性:不能再划分的属性。复合属性:复合属性:可进一步划分成更小部分的属性。例:例:教师(教师号,姓名,性别,职称,E-mail地址,电话号码,家庭地址家庭地址) 家庭地址家庭地址属性的成员属性:属性的成员属性: (城市、区、街道、邮政编码属性)26

212、 七月 2024数据库原理与应用第4章 关系数据库设计单值属性:单值属性: 若实体集中的每个实体在某属性上的值是单一的。多值属性:多值属性: 实体集中某个具体实体的某个属性的值可能对应一组值。例例:教师(教师号,姓名,性别,职称,E-mailE-mail地址地址,电话号码,家庭地址) 单值属性、多值属性26 七月 2024数据库原理与应用第4章 关系数据库设计当暂时不知某属性的值或属性值尚未确定时,可将属性值设为空(Null)。例例: 新教师的职称还未评定,该教师的“职称”属性的值便可设为Null。 Null属性26 七月 2024数据库原理与应用第4章 关系数据库设计属性的值可从其他相关实体

213、或属性中派生出来。例:例:班级(班级号,班级名,人数人数)“人数人数”属性的值可通过计算该班级学生实体的数目而获得。 派生属性26 七月 2024数据库原理与应用第4章 关系数据库设计5键能惟一标识实体集中每个实体的属性或属性组。例:例:学生学生(学号学号,姓名,性别,年龄,班级号,姓名,性别,年龄,班级号)26 七月 2024数据库原理与应用第4章 关系数据库设计6联系联系:联系:是实体集间的一个关联。每个联系都有一个名字,每个联系都可以具有描述性属性。例:例: 学生学生( (学号学号,姓名,性别,年龄,班级号,姓名,性别,年龄,班级号) ) 考试考试( (学号学号,课程号课程号,成绩,成绩

214、) ) 课程课程( (课程号课程号,课程名,学分,周学时,课程名,学分,周学时) ) 学生实体集和课程实体集之间的联系为“考试考试”。26 七月 2024数据库原理与应用第4章 关系数据库设计 联系的类型联系的类型 联系的实例、参与者、度联系的实例、参与者、度26 七月 2024数据库原理与应用第4章 关系数据库设计 一对一联系一对一联系 一对多联系一对多联系 多对多联系多对多联系 实体集之间的联系实体集之间的联系 联系的类型26 七月 2024数据库原理与应用第4章 关系数据库设计一对一联系如果对于实体集E1中的每个实体,在实体集E2中至多只有一个实体与之相对应,反之亦然,则称实体集E1与E

215、2之间的联系是一对一联系。例:例: 座位和座位号之间,国家与元首等。26 七月 2024数据库原理与应用第4章 关系数据库设计如果对于实体集E1中的每个实体,在实体集E2中有任意个(零个或多个)实体与之相对应,而对于E2中的每个实体却至多和E1中的一个实体相对应,则称实体集E1与E2之间的联系是一对多联系。例:例:公司的部门与其职工之间、班级与学生之间、球队与球员之间。一对多联系26 七月 2024数据库原理与应用第4章 关系数据库设计 如果对于实体集E1中的每个实体,在实体集E2中有任意个(零个或多个)实体与之相对应,反之亦然,则称实体集E1与E2之间的联系是多对多联系。例:例: 教师与课程

216、之间,产品与其客户之间。 多对多联系26 七月 2024数据库原理与应用第4章 关系数据库设计实体集之间的联系实体集之间的联系 a1a2a3a4a5b1b2b3b4b5a1a2a3a4a5b1b2b3b4b5a1a2a3a4a5b1b2b3b4b5一对一联系一对多联系多对多联系实体集E1实体集E2实体集E1实体集E2实体集E1实体集E226 七月 2024数据库原理与应用第4章 关系数据库设计联系的实例:联系的实例:一个给定联系的具体值。例:例:学生实体集学生实体集属于班级实体集班级实体集,“属于属于”联系的实例:联系的实例:“学生曲波属于01001班级”。 联系的实例、参与者、度26 七月

217、2024数据库原理与应用第4章 关系数据库设计联系的参与者:联系的参与者:一个给定联系中的实体。设R是一个联系,E是其中的参与者,若E的每个实例都至少在R的一个实例中出现,那么R中的参与者E被称为是全部的,反之就是部分的。例:例:学生实体集学生实体集属于班级实体集班级实体集,因每个具体的学生都属于某个具体的班级,故参与者学生在“属于”联系中是全部的。26 七月 2024数据库原理与应用第4章 关系数据库设计 联系的度:联系的度: 一个给定联系中参与者的数量。度为2的联系称为2元联系,度为n(n2)的联系称为n元联系。26 七月 2024数据库原理与应用第4章 关系数据库设计4.1.3 实体-联

218、系方法1实体型实体型2属性属性3实体集之间的联系实体集之间的联系26 七月 2024数据库原理与应用第4章 关系数据库设计直接从现实世界抽象出实体型及其相互间的联系,并用实体-联系图(简称E-R图)来表示概念模型。E-R图又称为实体-联系模型(简称E-R模型)。E-R模型是一种语义模型,它旨在表达数据的含义,因此在很多DB设计工具中都采用该种模型。26 七月 2024数据库原理与应用第4章 关系数据库设计1实体型实体型用带有实体名的矩形框表示。学生学生课程课程请按键请按键26 七月 2024数据库原理与应用第4章 关系数据库设计2属性一般属性:一般属性:用带有属性名的椭圆形框表示。多值属性:多

219、值属性:用双椭圆形框表示。派生属性:派生属性:用虚椭圆形框表示。属性与其对应的实体型之间用直线连接。例:例:课程(课程号,课程名,学分,周学时),该实体集及其属性的表示方法如图所示,其中带下划线的属性“课程号”是实体集的键。课程课程名学分课程号周学时学号学号E-mail人数人数请按键请按键26 七月 2024数据库原理与应用第4章 关系数据库设计例:例:教师教师( (教师号,姓名,性别,职称,教师号,姓名,性别,职称,E-mailE-mail地地址,电话号码,家庭地址址,电话号码,家庭地址) )实体集表示方法如图。E-mailE-mail:多值属性家庭地址:家庭地址:复合属性家庭地址城市街道

220、区邮政编码教师性别姓名教师号电话号码e-mail地址职称请按键请按键26 七月 2024数据库原理与应用第4章 关系数据库设计3实体集之间的联系用带有联系名的菱形框表示,并用直线将联系与相应的实用带有联系名的菱形框表示,并用直线将联系与相应的实体相连接,且在直线靠近实体的那端标上体相连接,且在直线靠近实体的那端标上1 1或或n n等,以表明等,以表明联系的类型联系的类型(1:1(1:1、1:n1:n或或m:n)m:n)。若一个联系的某个参与者是全部的,则用双线将联系与该参与者相连。学生姓名性别学号年龄学生班级号人数班级名属于n1请按键请按键26 七月 2024数据库原理与应用第4章 关系数据库

221、设计课程实体集、教师实体集及相互间的多对多联系。课程实体集、教师实体集及相互间的多对多联系。 26 七月 2024数据库原理与应用第4章 关系数据库设计4.1.4 E-R模型的设计问题1确定实体集和属性确定实体集和属性2确定实体集间的联系确定实体集间的联系26 七月 2024数据库原理与应用第4章 关系数据库设计1确定实体集和属性作为属性的事物应符合的原则:作为属性的事物应符合的原则: 除了复合属性,其他属性都不能具有需要描述的特性。 属性不能与其它实体发生联系。符合上述原则的事物应作为属性,其余的应作为实体。26 七月 2024数据库原理与应用第4章 关系数据库设计对课程实体而言,课程号课程

222、号、课程名课程名、学分学分和周学时周学时毫无疑问应该作为它的属性,但是如果课程类型课程类型还与课程的上课周数周数有关,则应该把“课程类型”作为一个实体,而将“周数”作为它的属性。课程实体:课程实体:课程号,课程名,学分,周学时应作为属性;若课程类型课程类型与课程课程的上课周数有关,则应把“课程类型”作为一个实体,而将“周数”作为它的属性。26 七月 2024数据库原理与应用第4章 关系数据库设计课程类型与课程课程类型与课程课程课程名学分课程号周学时课程类型课程课程名学分课程号周学时类型名类型号周数课程类型分类n1课程类型作为属性课程类型作为属性课程类型作为实体课程类型作为实体请按键请按键26

223、七月 2024数据库原理与应用第4章 关系数据库设计2确定实体集间的联系课程、教师和学生实体及及相互之间的联系课程、教师和学生实体及及相互之间的联系增加“上课”多对多联系mp时间教室号上课学生性别学号姓名年龄nmn教授家庭地址城市街道区邮政编码电话号码e-mail地址性别姓名教师号职称教师课程课程名学分课程号周学时请按键请按键26 七月 2024数据库原理与应用第4章 关系数据库设计课程、教师和学生实体及及相互之间的联系课程、教师和学生实体及及相互之间的联系将“教授”和“上课”联系和并为如下的“教授”(冗余)请按键请按键26 七月 2024数据库原理与应用第4章 关系数据库设计课程、教师和学生

224、实体及及相互之间的联系课程、教师和学生实体及及相互之间的联系将学生的考试成绩用“上课”联系中增加的“考试”属性表示出来学生性别学号姓名年龄mp时间教室号上课nmn教授家庭地址城市街道区邮政编码电话号码e-mail地址性别姓名教师号职称教师课程课程名学分课程号周学时成绩请按键请按键26 七月 2024数据库原理与应用第4章 关系数据库设计课程、教师和学生实体及及相互之间的联系课程、教师和学生实体及及相互之间的联系将学生的考试成绩在学生和课程实体间增加的“考试”联系中作为属性表示出来学生性别学号姓名年龄mp时间教室号上课nmn教授家庭地址城市街道区邮政编码电话号码e-mail地址性别姓名教师号职称

225、教师课程课程名学分课程号周学时考试m成绩请按键请按键26 七月 2024数据库原理与应用第4章 关系数据库设计4.2 数据库设计步骤4.2.1 需求分析需求分析4.2.2 概念结构设计概念结构设计4.2.3 逻辑结构设计逻辑结构设计4.2.4 物理设计物理设计4.2.5 数据库实施数据库实施4.2.6 数据库运行和维护数据库运行和维护26 七月 2024数据库原理与应用第4章 关系数据库设计DBDB设计:设计:指对于一个给定的应用环境,构造最优的DB模式,建立DB及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。DBDB设计方法:设计方法:新奥尔良方法:新奥尔良方法:需求分析、概念

226、设计、逻辑设计和物理设计;S.B.YaoS.B.Yao:需求分析、模式构成、模式汇总、模式重构、模式分析和物理DB设计。需求分析、概念结构设计、逻辑结构设计、物理设计、DB实施、DB运行和维护。26 七月 2024数据库原理与应用第4章 关系数据库设计4.2.1 需求分析1 1需求分析的任务及其工作需求分析的任务及其工作2 2高校管理系统的信息需求高校管理系统的信息需求26 七月 2024数据库原理与应用第4章 关系数据库设计1需求分析的任务及其工作 任务任务 工作工作26 七月 2024数据库原理与应用第4章 关系数据库设计 任务对DB应用系统要处理的对象(组织、企业、部门等)进行全面了解,

227、收集用户对DB的以下需求,以数据流程图和DD等书面形式确定下来。 信息需求信息需求 处理需求处理需求 安全性需求安全性需求 完整性需求完整性需求26 七月 2024数据库原理与应用第4章 关系数据库设计信息需求信息需求:应指出未来系统用到的所有的信息及其联系,用户希望从DB中获取什么信息,DB中可能要存放哪些信息等等。26 七月 2024数据库原理与应用第4章 关系数据库设计处理需求:处理需求:应说明用户希望未来系统对数据进行什么样的处理,各种处理有无优先次序、对处理频率和响应时间有无特殊要求、何种处理方式等。26 七月 2024数据库原理与应用第4章 关系数据库设计安全性需求:安全性需求:指

228、对DB中存放的信息的安全保密要求。26 七月 2024数据库原理与应用第4章 关系数据库设计完整性需求:完整性需求:应说明DB中存放的数据应满足怎样的约束条件,即应了解什么样的数据在DB中才算是正确的数据。 26 七月 2024数据库原理与应用第4章 关系数据库设计 调查未来系统所涉及的用户的当前职能、业务活动及其流程。确定系统范围。明确用户业务活动中哪些工作应由计算机系统来做,哪些由人工来做。 工作26 七月 2024数据库原理与应用第4章 关系数据库设计 确定用户对未来系统的各种要求,包括信息要求、处理要求、安全性和完整性要求。重点了解各用户在业务活动中要输入什么数据,对这些数据的格式、范

229、围有何要求。另外还需了解用户会使用什么数据,如何处理这些数据,经过处理的数据的输出内容、格式是什么。还应明确处理后的数据该送往何处,谁有权查看这些数据。26 七月 2024数据库原理与应用第4章 关系数据库设计 深入分析用户的业务处理,用数据流程图表达整个系统的数据的流向和对数据进行的处理,描述数据与处理间的关系。26 七月 2024数据库原理与应用第4章 关系数据库设计 分析系统数据,产生DD,以描述数据流程图中涉及的各数据项、数据结构、数据流、数据存储和处理等。 26 七月 2024数据库原理与应用第4章 关系数据库设计2高校管理系统的信息需求 教学管理子系统的信息需求教学管理子系统的信息

230、需求 工资及福利管理子系统工资及福利管理子系统26 七月 2024数据库原理与应用第4章 关系数据库设计 教学管理子系统的信息需求管理对象与存储信息:管理对象与存储信息:学生:学生:学号学号、姓名、性别、年龄等。班级班级:班级号班级号、班级名、人数等。教师:教师:教师号教师号、姓名、性别、职称、E-mail地址(同一教师可同一教师可有多个有多个E-mailE-mail地址地址)、电话号码和家庭地址(城市、区、街道、城市、区、街道、邮政编码邮政编码)等。课程:课程:课程号、课程名、学分、周学时、课程类型(周数)等。专业:专业:专业号、专业名、选修门数等。系:系:系号、系名等。26 七月 2024

231、数据库原理与应用第4章 关系数据库设计 分析分析 课程:课程:课程号、课程名、学分、周学时、课程类型(周数)等。 其中:其中:课程类型:课程类型:共同限选课、专业选修课(选修人数上限、人数下限)或必修课(课程负责人) 。共同限选课:共同限选课:不分专业、面向全校学生的选修课。专业选修课:专业选修课:面向本专业学生的选修课,某一专业的学生只能选修自己专业的专业选修课。每个专业都规定了学生可以选修的专业选修课的门数,不同专业所规定的选修课门数是不同的。26 七月 2024数据库原理与应用第4章 关系数据库设计教学管理子系统中各对象间的联系教学管理子系统中各对象间的联系:每个学生都属于一个班级,而一

232、个班级可以有多个学生;每个班级属于一个专业,一个专业可以有多个班级;一个专业属于一个系,一个系可以有多个专业;一个教师属于一个系,一个系可以有多个教师;每个教师可教授多门课程,同一门课程可有不同的教师教授。但同一教师不能重复教授某门课程,教师在固定的时间和教室教授某门具体课程;每个学生可修读若干门课程(选修课或必修课),每门课程可有多个学生修读。对任何课程学生都可申请免修不免考;某个具体的学生参加某门课程的学习,应有一个固定的教师。26 七月 2024数据库原理与应用第4章 关系数据库设计主要负责管理教师的工资、岗位津贴、养老金、公积金、课时奖金、住房贷款以及医疗费报销等。管理对象与存储信息:

233、管理对象与存储信息: 教师:教师:教师编号、姓名、性别、工龄、职称、基本工资、养老金、公积金等。 课程:课程:包括课程号、课程名、总课时等。 职称:职称:包括职称号、职称名、岗位津贴和住房贷款额等。 被赡养人:被赡养人:包括姓名以及与教师的关系等。学校负责为被赡养人报销医药费。 工资及福利管理子系统26 七月 2024数据库原理与应用第4章 关系数据库设计工资及福利管理子系统中各对象间的联系:工资及福利管理子系统中各对象间的联系:一个教师的被赡养人可有多个,而一个被赡养人仅被一个教师赡养。如果,夫妻双方都在学校工作,他们的被赡养人信息只能挂靠在其中某一人上;每个教师可教授多门课程,同一门课程可

234、以有不同的教师教授,但同一个教师不能教授两门相同的课程。并假设教师在每个学期末都要接受学生的评估,而教师的课时奖金与评教等级有关;每个教师当前被聘任的职称是惟一的,而不同的教师可被聘同一职称。26 七月 2024数据库原理与应用第4章 关系数据库设计4.2.2 概念结构设计1 1局部局部E-RE-R模型的设计模型的设计2 2全局全局E-RE-R模型的设计模型的设计26 七月 2024数据库原理与应用第4章 关系数据库设计1局部E-R模型的设计 局部局部E-RE-R模型的设计步骤模型的设计步骤 设计教学管理子系统的设计教学管理子系统的E-RE-R模型模型 设计工资及福利管理子系统的设计工资及福利

235、管理子系统的E-RE-R模型模型26 七月 2024数据库原理与应用第4章 关系数据库设计 局部E-R模型的设计步骤需求分析结果确定局部结构的范围还有局部结构要设计?全局E-R模型的设计有无设计局部E-R模型确定局部结构的实体定义局部结构的属性定义局部结构的联系请按键请按键26 七月 2024数据库原理与应用第4章 关系数据库设计 设计教学管理子系统的E-R模型26 七月 2024数据库原理与应用第4章 关系数据库设计 设计工资及福利管理子系统的E-R模型26 七月 2024数据库原理与应用第4章 关系数据库设计2全局E-R模型的设计全局E-R模型的设计过程 合并局部合并局部E-RE-R模型模

236、型 消除冗余数据和冗余联系消除冗余数据和冗余联系 例例局部E-R模型合并两个局部E-R模型检查并消除冲突检查并消除冗余逻辑结构设计无有无还有未合并的局部E-R模型吗?还有冲突吗?还有冗余吗?无有有请按键请按键26 七月 2024数据库原理与应用第4章 关系数据库设计 依次取出所有的局部E-R模型,进行合并,直至所有的局部E-R模型都合并完为止。在合并过程中要检查并消除局部E-R模型间的一些冲突。 冲突的种类:冲突的种类: 属性冲突属性冲突 命名冲突命名冲突 结构冲突结构冲突 合并局部E-R模型26 七月 2024数据库原理与应用第4章 关系数据库设计 属性冲突 包括属性域冲突和属性取值单位的冲

237、突。包括属性域冲突和属性取值单位的冲突。 属性域的冲突:属性域的冲突: 指同一属性在不同局部E-R模型中有不同数据类型、取值范围或取值集合。 26 七月 2024数据库原理与应用第4章 关系数据库设计 命名冲突 同名异义:同名异义: 是指具有不同意义的对象在不同的局部E-R 模型中却使用了相同的名字。 异名同义:异名同义: 是指具有同一意义的对象在不同的局部E-R 模型中却使用了不同的名字。26 七月 2024数据库原理与应用第4章 关系数据库设计 结构冲突 既指同一对象在不同的局部E-R模型中具有不同的抽象,也指同一实体在不同的局部E-R模型中包含不同的属性个数和排列次序,又指实体间的联系在

238、不同的局部E-R模型中具有不同的类型。26 七月 2024数据库原理与应用第4章 关系数据库设计 消除冗余数据和冗余联系 检查合并后的E-R模型中有无冗余数据和冗余联系,如有则根据实际情况消除之。26 七月 2024数据库原理与应用第4章 关系数据库设计教学管理与工资及福利管理子系统中,教师的职工号存在命名冲突;教师实体存在结构冲突。教师实体存在结构冲突。 例26 七月 2024数据库原理与应用第4章 关系数据库设计教师实体存在命名冲突与结构冲突,进行统一与合并。教师教师号工龄养老金公积金基本工资家庭地址城市街道区邮政编码统一与合并后统一与合并后教师电话号码e-mail地址性别姓名教师号职称家

239、庭地址城市街道区邮政编码教学管理子系统教学管理子系统教师教师编号姓名性别工龄公积金养老金基本工资工资及福利子系统工资及福利子系统e-mail地址性别姓名电话号码请按键请按键26 七月 2024数据库原理与应用第4章 关系数据库设计课程实体存在结构冲突,进行合并课程实体存在结构冲突,进行合并课程课程名学分课程号周学时课程课程名课程号总课时教教学学管管理理子子系系统统工工资资及及福福利利子子系系统统合合并并后后课程类型周数类型号类型名分类1n课程课程名学分课程号周学时请按键请按键26 七月 2024数据库原理与应用第4章 关系数据库设计教授联系教授联系的合并的合并教教学学管管理理子子系系统统工工资

240、资及及福福利利子子系系统统教授课程n m教师时间教室号时间评教等级教授课程n m教师时间教室号评教等级教授课程n m教师合合并并后后请按键请按键26 七月 2024数据库原理与应用第4章 关系数据库设计合并后生成的全局合并后生成的全局E-RE-R模型模型 26 七月 2024数据库原理与应用第4章 关系数据库设计4.2.3 逻辑结构设计 任务任务 考虑因素考虑因素 RDBMS RDBMS产品的逻辑结构设计产品的逻辑结构设计 逻辑结构的设计过程逻辑结构的设计过程 全局全局E-RE-R模型转换成初始关系模型的规则模型转换成初始关系模型的规则26 七月 2024数据库原理与应用第4章 关系数据库设计

241、 任务根据E-R模型和需求分析所产生的文挡,并综合考虑所选择的具体DBMS的特点,设计出整个DB的逻辑结构。26 七月 2024数据库原理与应用第4章 关系数据库设计 考虑因素包括DBMS产品的性能和价格,以及所设计的应用系统的功能复杂程度。26 七月 2024数据库原理与应用第4章 关系数据库设计 RDBMS产品的逻辑结构设计指设计DB中所应包含的各个关系模式的结构,包括各关系模式的名称、每一关系模式中各属性的名称、数据类型、取值范围等内容。26 七月 2024数据库原理与应用第4章 关系数据库设计 逻辑结构的设计过程需求分析文档、全局E-R模型、具体DBMS的特性设计初始关系模型取出一关系

242、模式,并对其进行评价还有未被评价的模式吗?模式合理吗?关系模式的规范化否关系模型的反规范化无是有请按键请按键26 七月 2024数据库原理与应用第4章 关系数据库设计 全局E-R模型转换成初始关系模型的规则E-RE-R模型中的一个常规实体集转换为一个关系模式模型中的一个常规实体集转换为一个关系模式E-RE-R模型中的多值属性转换为一个关系模式模型中的多值属性转换为一个关系模式E-RE-R模型中的一个联系模型中的一个联系( (非非ISAISA联系联系) )转换为一个关系模式转换为一个关系模式根据实际情况,将具有相同键的关系模式合并根据实际情况,将具有相同键的关系模式合并26 七月 2024数据库

243、原理与应用第4章 关系数据库设计 E-R模型中的一个常规实体集转换为一个关系模式 该关系模式的属性由原实体集中的各属性组成,关系模式的键也就是原实体集的键。班级(班级号,班级名,人数)学生(学号,姓名,性别,年龄)职称(职称号,职称名,岗位津贴,住房贷款额)课程类型(类型号,类型名,周数)专业(专业号,专业名,选修门数)系(系号,系名)26 七月 2024数据库原理与应用第4章 关系数据库设计 E-R模型中的多值属性转换为一个关系模式该关系模式的属性由多值属性及其相应实体的键组成。教师实体集中的E-mail地址属性转换成的关系模式如下:Email(教师号,E-mail地址) 26 七月 202

244、4数据库原理与应用第4章 关系数据库设计 该关系模式的属性由与该联系相连的各实体集的键和联系的属性组成,该关系模式的键则应根据实体集间的联系的不同类型分别考虑。1:11:1联系:联系:与该联系相连的各实体集的键均可作关系模式的键;1:n1:n联系:联系:关系模式的键应是n端实体集的键;m:nm:n联系:联系:关系模式的键由与该联系相连的各实体集的键组成。 E-R模型中一个联系(非ISA联系)转换为一个关系模式26 七月 2024数据库原理与应用第4章 关系数据库设计分类(课程号,类型号)26 七月 2024数据库原理与应用第4章 关系数据库设计考试(学生号,课程号,成绩)26 七月 2024数

245、据库原理与应用第4章 关系数据库设计班级(班级号,班级名,人数)包括(班级号,专业号)关系模式合并为:班级(班级号,班级名,人数,专业号)学生(学号,姓名,性别,年龄)属于(学号,班级号)关系模式合并为:学生(学号,姓名,性别,年龄,班级号) 根据实际情况,将具有相同键的关系模式合并26 七月 2024数据库原理与应用第4章 关系数据库设计 高校管理系统的全局E-R模型共转换成17个关系模式,且均是规范化程度很高的范式,其中包括: 学生(学号,姓名,性别,年龄,班级号)课程(课程号,课程名,学分,周学时)考试(学号,课程号,成绩)26 七月 2024数据库原理与应用第4章 关系数据库设计4.2

246、.4 物理设计指为给定的一个逻辑数据模型选择最适合应用环境的物理结构。RDB的物理结构:指数据的存取方法存取方法和存储结构存储结构。 1确定确定DBDB的物理结构的物理结构2评价物理结构评价物理结构26 七月 2024数据库原理与应用第4章 关系数据库设计1确定DB的物理结构 设计人员必须了解的问题设计人员必须了解的问题 物理设计的内容物理设计的内容26 七月 2024数据库原理与应用第4章 关系数据库设计 设计人员必须了解的问题 详细了解给定的DBMS的功能和特点,特别是该DBMS所提供的物理环境和功能。 熟悉应用环境,了解所设计的应用系统中各部分的重要程度、处理频率、对响应时间的要求,并把

247、它们作为物理设计过程中平衡时间和空间效率时的依据。 了解外存设备的特性,如分块原则、块因子大小的规定、设备的I/O特性等等。26 七月 2024数据库原理与应用第4章 关系数据库设计确定数据的存储结构。确定数据的存储结构。需考虑存取时间、空间效率和维护代价间的平衡。如在引入冗余数据以加快存取速度时应兼顾系统的空间效率。选择合适的存取路径。选择合适的存取路径。如确定该为哪些关系模式建立索引,索引关键字是什么等等。确定数据的存放位置。确定数据的存放位置。如确定数据存放在一个磁盘上还是多个磁盘上,什么数据应存放在高速存储器上,什么应存放在低速存储器上等。确定存取分布。确定存取分布。许多DBMS都提供

248、了一些存储分配参数供设计者使用。如缓冲区的大小和个数、块的长度、块因子的大小等等。设计者必须规定其中的一些参数的设置。 物理设计的内容26 七月 2024数据库原理与应用第4章 关系数据库设计2评价物理结构由于在物理设计过程中需考虑的因素很多,包括时间和空间效率、维护代价和用户的要求等等,对这些因素进行权衡后,可能会产生多种物理设计方案。该阶段需对各种可能的设计方案进行评价,评价的重点是系统的时间和空间效率,并从多个方案中选出较优的物理结构。 26 七月 2024数据库原理与应用第4章 关系数据库设计4.2.5 数据库实施主要任务:主要任务:是根据DB逻辑结构设计和物理设计的结果,在实际的计算

249、机系统中建立DB的结构、载入数据、测试程序、对DB应用系统进行试运行等等。 1 1DBDB数据的载入和应用程序的编制数据的载入和应用程序的编制 2 2DBDB的试运行的试运行26 七月 2024数据库原理与应用第4章 关系数据库设计1DB数据的载入和应用程序的编制调试指根据DB逻辑结构设计和物理设计结果将原始数据存放到DB中。 建立建立DBDB的结构的结构 将原始数据装入将原始数据装入DBDB 应用程序的编制调试应用程序的编制调试26 七月 2024数据库原理与应用第4章 关系数据库设计 建立DB的结构利用给定的DBMS所提供的命令,建立DB的模式、外模式和内模式。对RDB来说,就是创建DB、

250、建立DB中所包含的各个基本表、视图、索引等等。26 七月 2024数据库原理与应用第4章 关系数据库设计必须将分散在企业的各个不同部门的数据抽取出来,输入计算机,并经过分类转换,使它们的结构与新系统DB的结构一致,然后才能输入到DB中去。程序调试时需要将少部分的、适合程序调试用的数据装入到DB,系统运行正常后则需要将所有的原始数据装入到DB。 将原始数据装入DB26 七月 2024数据库原理与应用第4章 关系数据库设计与数据载入同时进行的工作是应用程序的编制和调试。 应用程序的编制调试26 七月 2024数据库原理与应用第4章 关系数据库设计2DB的试运行所有程序模块都通过调试后,将它们联合起

251、来进行调试。要测试程序的各功能是否正确;考察系统的性能是否符合用户需要(原因:原因:应用程序:修改应用程序的源代码;DB结构不合理:修改物理结构或逻辑结构)。应经常对DB中的数据进行备份(该阶段,系统很不稳定,容易给DB中的数据造成破坏);在整个系统基本运行正常以前,不要将所有的原始数据装入到DB中。 26 七月 2024数据库原理与应用第4章 关系数据库设计4.2.6 数据库运行和维护 DBS投入运行后,由DBA对DBD进行经常性的维护工作。 DB DB的转储和恢复的转储和恢复 DB DB的安全性和完整性控制的安全性和完整性控制 DB DB性能的监督、分析和改造性能的监督、分析和改造 DB

252、DB的重组织与重构造的重组织与重构造26 七月 2024数据库原理与应用第4章 关系数据库设计 DB的转储和恢复DBA应定期对DB进行备份,将其转储到磁带或其它磁盘上。这样,万一DB遭到破坏时可以及时地将其恢复。 26 七月 2024数据库原理与应用第4章 关系数据库设计 DB的安全性和完整性控制随着时间的推移,DBS的应用环境会发生变化,DBA应根据实际情况调整DB的安全性和完整性要求。26 七月 2024数据库原理与应用第4章 关系数据库设计 DB性能的监督、分析和改造在DBS的运行过程中,DBA须密切关注系统的性能,监视系统的运行,并对监测数据进行分析,不断改进系统的性能。26 七月 2

253、024数据库原理与应用第4章 关系数据库设计 DB的重组织与重构造在DBS运行的过程中,经常会对DB进行插入、删除和修改等的更新操作。这些操作会使DB的物理存储变坏,从而影响数据的存取效率和系统的性能。例如例如,逻辑上属于同一记录型或同一关系的数据被分散到了不同的文件或文件的多个碎片上,就会降低数据的存取效率。DBA要负责对DB进行重组织,即按原设计要求重新安排数据的存储位置、回收垃圾、减少指针链等等,以提高数据的存取效率和系统性能。26 七月 2024数据库原理与应用第4章 关系数据库设计另外,DBS的应用环境是不断变化的,常常会出现一些新的应用,也会消除一些旧的应用,这将导致新实体的出现和

254、旧实体的淘汰,同时原先实体的属性和实体间的联系也会发生变化。因此,需要局部地调整DB的逻辑结构,增加一些新的关系、删除一些旧的关系,或在某些关系中增加(或删除)一些属性等等,这就是DB的重构造。当然,DB的重构造是十分有限的,如果应用环境变化太大,就应该淘汰旧的系统,设计新的DB应用系统。 26 七月 2024数据库原理与应用第4章 关系数据库设计4.3 网络环境下的数据库应用规划4.3.1 需求分析需求分析4.3.2 安全问题安全问题4.3.3 体系结构体系结构4.3.4 系统平台的选择系统平台的选择26 七月 2024数据库原理与应用第4章 关系数据库设计4.3.1 需求分析主要任务:主要

255、任务:了解在网络环境下的用户要求。例:例:高校用户对管理信息系统在网络环境下的要求如下:将学校的各部门,如教务处、各院系部和其他行政和教学部门等,联成一个完整的数据整体,实现信息高度共享,加强信息的可靠性和实时性,为教学管理提供及时、准确的数据。各级用户可在校园网上直接通过浏览器输入和查看有关数据。建立各操作人员使用权限,对数据和流程严格控制,保证数据安全性。采取必要的网络安全措施,确保数据的安全性。 26 七月 2024数据库原理与应用第4章 关系数据库设计4.3.2 安全问题1硬件平台的安全问题硬件平台的安全问题2OS和和DBS的安全问题的安全问题3网络系统的安全问题网络系统的安全问题4应

256、用系统的安全问题应用系统的安全问题26 七月 2024数据库原理与应用第4章 关系数据库设计1硬件平台的安全问题硬件是软件的物理基础。必须确保支持DB应用系统运行的所有硬件设施(包括计算机主机、外部设备、网络设备及其它辅助设备)的安全,使其免受自然灾害和人为破坏,并建立完备的安全管理制度,防止非法人员进入计算机控制室进行各种偷窃和破坏活动。26 七月 2024数据库原理与应用第4章 关系数据库设计2OS和DBS的安全问题为保证DB应用系统安全、可靠地运行,在OS和DBS一级也应采取一定的安全保护措施。26 七月 2024数据库原理与应用第4章 关系数据库设计3网络系统的安全问题重要手段:重要手

257、段:网络的访问控制。主要任务:主要任务:保证网络资源不被非法使用和非常访问。访问控制方法:访问控制方法:入网访问控制、网络的权限控制。26 七月 2024数据库原理与应用第4章 关系数据库设计入网访问控制:入网访问控制:为网络访问提供第一层访问控制。它控制哪些用户能够登录到服务器并获取网络资源,控制准许用户入网的时间和准许他们在哪台工作站入网。网络的权限控制:网络的权限控制:针对网络非法操作所提出的一种安全保护措施。用户和用户组被赋予一定的权限,网络能控制用户和用户组可以访问哪些目录、子目录、文件和其他资源,也能指定用户对这些文件、目录、设备可以执行哪些操作。26 七月 2024数据库原理与应

258、用第4章 关系数据库设计防火墙:防火墙:原指建筑物内用来防止火灾蔓延的隔断墙,在计算机网络中,它的作用是保护网络中无危险的部分不受网络中有危险的部分的威胁。防火墙防火墙通常建立在一个企业或组织的内部网络和公共的Internet主干网之间,它通过检测、限制、修改那些试图跨越防火墙的数据流,识别并屏蔽非法的请求,防止超越权限的数据访问,并尽可能地对外屏蔽内部网络的结构、信息和运行情况,保护内部网络的安全性。26 七月 2024数据库原理与应用第4章 关系数据库设计防火墙防火墙InternetInternet防火墙防火墙内部网内部网内部内部WebWeb服务器服务器外部外部WebWeb服务器服务器可信

259、网络可信网络 不可信网络不可信网络26 七月 2024数据库原理与应用第4章 关系数据库设计4应用系统的安全问题网络环境下的DB应用系统的用户数目多、来源杂、操作权限各异,必须防止对应用系统的不合法使用所造成的数据泄密、更改或破坏。 基于角色的应用系统保护措施:基于角色的应用系统保护措施: 用户标识和鉴定用户标识和鉴定 基于角色的权限控制基于角色的权限控制26 七月 2024数据库原理与应用第4章 关系数据库设计 用户标识和鉴定用户在进入DB应用系统前必须输入用户名称和口令,输入正确,则用户登录成功,进入系统;否则,拒绝用户使用系统。26 七月 2024数据库原理与应用第4章 关系数据库设计把

260、DB应用系统中的程序按最终用户的业务需要进行分类,每类称为一个功能组功能组。将最终用户的职责和业务范围进行分类,每类称为一个角色角色。一个用户可同时属于多个角色,每一角色和若干个功能组相对应。属于某一角色的用户可访问若干个功能组中的程序,可查询或更新系统中的信息。反之,如一个用户不属于任何角色,他不能访问系统中任何信息。 基于角色的权限控制26 七月 2024数据库原理与应用第4章 关系数据库设计4.3.3 体系结构1 1. C/S. C/S结构结构2 2. B/S. B/S结构结构( (三层三层C/SC/S结构结构) )3 3. . 高校高校MISMIS中采用中采用B/SB/S结构的优点结构

261、的优点4 4. . 采用采用B/SB/S结构的问题结构的问题5 5. . 建议建议6 6. . 高校高校MISMIS的体系结构图的体系结构图26 七月 2024数据库原理与应用第4章 关系数据库设计1. C/S结构服务器服务器( (一台或多台一台或多台) ):完成数据存取管理、完整性控制、安全性控制、并发控制和DB恢复等DBMS功能,提供查询、更新、事务管理、索引、高速缓存、查询优化等服务;客户机:客户机:完成各种应用功能,如图形界面、数据输入、报表输出等。用户只需在客户机上用标准的SQL访问服务器中的数据,便可很方便地得到所需的各种数据及信息。两层C/S结构实现了功能的分布,但还不均衡。26

262、 七月 2024数据库原理与应用第4章 关系数据库设计客户机客户机( (浏览器浏览器) ):主要提供用户的操作界面;应用服务器:应用服务器:负责接收和处理对DB的查询和操纵请求;DBDB服务器:服务器:用于存放和管理用户数据,支持对数据的各种操作。 2. B/S结构(三层C/S结构)26 七月 2024数据库原理与应用第4章 关系数据库设计 B/S以Internet/Intranet为基础,代表了先进的、符合国际潮流的技术,确保系统开发完成后是代表先进水平的系统。 在客户端可实现零安装和零维护。由于采用流行的Internet技术,使得所有的最终用户无须安装任何应用软件,只要有浏览器即可。 突破

263、地域的局限,可做到移动办公。 由于B/S结构的应用系统以企业内部网络为基础,以国际统一标准的浏览器为界面,因此,只要最终用户具备简单的计算机知识,经过简单的培训,就可使用该系统。 3. 高校MIS中采用B/S结构的优点26 七月 2024数据库原理与应用第4章 关系数据库设计在进行源程序的开发时,B/S结构不如C/S结构方便,特别是对于图形化的界面以及固定格式的报表的生成和打印,直接用面向Web开发的工具开发难度比较大,首次开发成本比较高。而C/S结构首次开发成本比较低,在许多技术上都有比较成熟的应用经验。 4. 采用B/S结构的问题26 七月 2024数据库原理与应用第4章 关系数据库设计高

264、校MIS采用集B/S和C/S技术于一体的体系结构,以B/S结构为主,C/S结构作为辅助结构。这种体系结构突破单纯的C/S或B/S结构的局限性,把客户机、服务器、OS、DB、开发工具等系统软、硬件资源有效地连接在一起,同时又能充分利用校园局域网和Internet资源,用户可在任意时间、以不同的身份通过校园网或Internet访问高校MIS,加强系统数据共享能力,建立一个综合、灵活、安全的运行环境。5. 建议26 七月 2024数据库原理与应用第4章 关系数据库设计6. 高校MIS的体系结构图26 七月 2024数据库原理与应用第4章 关系数据库设计4.3.4 系统平台的选择1OS的选择的选择2D

265、B软件的选择软件的选择3Internet应用开发工具的选择应用开发工具的选择26 七月 2024数据库原理与应用第4章 关系数据库设计1OS的选择较流行的较流行的OSOS主要包括:主要包括:Microsoft公司的Windows NT或Windows 2000;各厂商推出的Unix系统;开放的不同版本的Linux OS(国内使用较普遍:Red Hat版本)。结合高校结合高校MISMIS的应用特点:的应用特点:学校所涉及的部门个数较多,但规模不大,系统应用不像证券交易这样实时性和稳定可靠性要求很苛刻,同时学校各部门用户计算机素质参差不齐,因此建议采用Microsoft Windows 2000

266、OS。 26 七月 2024数据库原理与应用第4章 关系数据库设计2DB软件的选择可选择的可选择的DBMSDBMS软件:软件:SQL Server、Oracle和Informix等。可选择的可选择的DBDB应用系统开发工具:应用系统开发工具:Delphi、PowerBuilder、Visual Basic和Informix NewEra等。根据需要选择相应的软件,选择时除要考虑软件的功能,还要考虑软件的价格与准备投入的资金是否匹配。 26 七月 2024数据库原理与应用第4章 关系数据库设计3Internet应用开发工具的选择开发基于Windows平台、具有B/S结构的MIS,可选用Micro

267、soft ASP 脚本语言,也可使用基于Java标准的J2EE等。ASPASP:成本较低,但系统移植时会出现许多问题。J2EEJ2EE:开发难度较大,但移植时的工作量较小。实际开发时,可根据需要选择相应的开发工具。 26 七月 2024数据库原理与应用第4章 关系数据库设计小结 概念模型:概念模型:是数据库设计过程中所涉及的一个很重要的模型。它是一种独立于计算机系统的数据模型,用于描述某个企业或组织所关心的信息结构,是对现实世界的第一层抽象。与概念模型相关的基本概念有:实体实体、实体集实体集、联系联系等。表示概念模型的方法:实体实体- -联系方法联系方法,用E-R模型来描述概念模型的。 26

268、七月 2024数据库原理与应用第4章 关系数据库设计数据库设计方法:需求分析、概念结构设计、逻辑结构设计、物理设计、数据库实施、数据库运行和维护等步骤。数据库应用系统的设计过程是一个需要不断反复的过程。26 七月 2024数据库原理与应用第4章 关系数据库设计数据库设计是个很复杂的问题,需要考虑的因素很多,在网络环境下需要考虑:需求分析、安全问题、体系结构和系统平台的选择。 第5章 数据库保护26 七月 2024数据库原理与应用第5章 数据库保护内 容5.1 数据库完整性数据库完整性5.2 数据库安全性数据库安全性5.3 数据库并发控制数据库并发控制5.4 数据库恢复数据库恢复小结小结26 七

269、月 2024数据库原理与应用第5章 数据库保护5.1 数据库完整性5.1.1 完整性约束的定义完整性约束的定义5.1.2 完整性约束的检查和处理完整性约束的检查和处理26 七月 2024数据库原理与应用第5章 数据库保护DBDB完整性:完整性:指DB数据的正确性和相容性。由DBMS提供定义完整性约束的机制。完整性约束:完整性约束:指对数据所规定的语义约束条件。26 七月 2024数据库原理与应用第5章 数据库保护5.1.1 完整性约束的定义1 1实体完整性的定义实体完整性的定义2 2参照完整性的定义参照完整性的定义3 3用户定义完整性的定义用户定义完整性的定义26 七月 2024数据库原理与应

270、用第5章 数据库保护1实体完整性的定义实体完整性约束:实体完整性约束:任何基本表(关系)的主键(主关键字)中的每一个属性列都不能取空值(基本表中的每一个元组在主键上的分量都有值),主键取值非空且唯一。保证基本表中的每一具体实体(一个元组代表一具体的实体值)都是可标识且可区分的。该约束是由系统系统规定的、每个基本表都必须满足的约束,用户要做的是定义每个基本表的主键(告诉DBMS该基本表的主键是由哪些属性组成)。使用PRIMARY KEY约束来定义。26 七月 2024数据库原理与应用第5章 数据库保护2参照完整性的定义根据参照完整性规则,用户只要定义了一个关系(基本表)的外键(外部关键字),系系

271、统统就会控制外键的值要么为空,要么等于被参照关系中某一个主键的值(系统对外键的一种约束)。使用FOREIGN KEY约束(外键约束)定义参照完整性。26 七月 2024数据库原理与应用第5章 数据库保护3用户定义完整性的定义由用户根据具体的应用环境自己规定的一些特殊的约束条件。作用对象:作用对象:对属性列的约束:可规定属性列的数据类型、取值范围等;对元组的约束:可规定元组中各属性间的相互关系;对关系的约束:可规定各元组间或关系间的相互联系。使用UNIQUE约束、CHECK约束和NOT NULL/NULL约束来定义。26 七月 2024数据库原理与应用第5章 数据库保护 使用触发器定义用户定义的

272、完整性使用触发器定义用户定义的完整性 触发器的概念触发器的概念 触发器应用举例触发器应用举例26 七月 2024数据库原理与应用第5章 数据库保护 触发器的概念触发器的概念是一种特殊的存储过程存储过程,触发器中规定用户在对DB表(关系)执行插入(INSERT)、删除(DELETE)和 修改(UPDATE)等更新操作时,DBS应该执行什么相关的操作以保证数据的完整性。26 七月 2024数据库原理与应用第5章 数据库保护使用使用Transact-SQLTransact-SQL定义触发器的定义触发器的基本语法:基本语法: CREATE TRIGGER触发器名 ON | FOR|AFTER|INST

273、EAD OF INSERT,UPDATE,DELETE AS ;26 七月 2024数据库原理与应用第5章 数据库保护 触发器应用举例触发器应用举例例例5.15.1:创建触发器ins_student,要求在向“学生”表插入元组(inserted(inserted表表存放要插入的所有元组存放要插入的所有元组) )后引发该触发器,检查所插入的元组中学生的班级号是否出现在“班级”表中,如果在“班级”表中找不到相应的班级号,则提示用户“班级号输入有误”,并且回滚事务。学生(学号,姓名,性别,年龄,班级号),班级(班级号,班级名,人数,专业号) create trigger ins_studentcre

274、ate trigger ins_student on on 学生学生 after insert /*after insert /*触发器在插入元组后被引发触发器在插入元组后被引发*/*/ as as if(select count(*) if(select count(*) from from 班级班级,inserted,inserted where where班级班级. .班级号班级号=inserted.=inserted.班级号班级号)=0)=0 begin begin print print班级号输入有误!班级号输入有误! rollback transaction rollback tr

275、ansaction end end26 七月 2024数据库原理与应用第5章 数据库保护例例5.25.2:建立触发器ins_exam,在向“女生考试”表插入元组后引发该触发器,根据所插入元组的学号检查插入的是否是女生的成绩,若不是则提示用户“输入的不是女学生的成绩”,并且回滚事务。女生考试(学号,课程号,成绩)create trigger ins_examcreate trigger ins_exam on on 女生考试女生考试 after insert after insert as as If(select count(*)If(select count(*) from from 学生,

276、学生,insertedinserted where where 学生学生. .性别性别= =“女女”and and 学生学生. .学号学号=inserted.=inserted.学号学号)=0)=0 begin begin print print 输入的不是女学生的成绩!输入的不是女学生的成绩! rollback transaction rollback transaction end end26 七月 2024数据库原理与应用第5章 数据库保护例例5.35.3:建立名为ins_teacher的触发器,在向“教师”表插入记录时引发该触发器,检查所插入元组中教师的基本工资是否大于1000元且小于

277、10000元,若不是则提示用户“基本工资必须大于1000元,小于10000元”,并且回滚事务。教师(教师号,姓名,性别,电话号码,城市,区,街道,邮政编码,工龄,基本工资,养老金,公积金,系号,职称号) create trigger ins_teachercreate trigger ins_teacher on on 教师教师 after insertafter insert as as If(select count(*)If(select count(*) from inserted from inserted where where 基本工资基本工资=1000 or =10000)0=

278、10000)0 begin begin print print 基本工资必须大于基本工资必须大于10001000元元, ,小于小于1000010000元!元! rollback transaction rollback transaction end end26 七月 2024数据库原理与应用第5章 数据库保护例例5.45.4 为“教师”表定义一个触发器,当用户对“教师”表进行插入操作或修改表中基本工资的值时,可以引发该触发器,根据教师的基本工资自动计算其养老金,并将结果写入养老金字段中。create trigger insertupdate_teachercreate trigger ins

279、ertupdate_teacher on on 教师教师 after insertafter insert,update /*update /*触发器在插入或修改元组后被引发触发器在插入或修改元组后被引发*/*/asas if update(if update(基本工资基本工资) ) update update教师教师 set set 教师教师. .养老金养老金=case=case when( when(教师教师. .基本工资基本工资5000)then 3005000)then 300 when( when(教师教师. .基本工资基本工资3000)then 2003000)then 200 w

280、hen( when(教师教师. .基本工资基本工资2000)then 1502000)then 150 else 100 else 100 end end from inserted from inserted where where 教师教师. .教师号教师号=inserted.=inserted.教师号教师号 26 七月 2024数据库原理与应用第5章 数据库保护5.1.2 完整性约束的检查和处理1 1外键的空值问题外键的空值问题2 2删除被参照关系元组的问题删除被参照关系元组的问题3 3修改被参照关系中主键值的问题修改被参照关系中主键值的问题26 七月 2024数据库原理与应用第5章 数

281、据库保护例:例:考试(学号,课程号,成绩) :参照关系参照关系学生(学号,姓名,性别,年龄,班级号):被参照关系被参照关系当用户对被参照关系“学生”表进行删除操作或修改其中主键“学号”的值时,就有可能对“考试”表产生影响,从而违背参照完整性。26 七月 2024数据库原理与应用第5章 数据库保护1外键的空值问题学生(学号,姓名,性别,年龄,班级号)考试(学号,课程号,成绩)课程(课程号,课程名,学分,周学时)在“考试”表中,“学号”是其外键,而(学号,课程号)是主键,根据主键非空的原则,“学号”就不允许为空,因此“考试”表的外键不允许为空。 26 七月 2024数据库原理与应用第5章 数据库保

282、护2删除被参照关系元组的问题当删除被参照关系的某个元组时,如果参照关系中有若干个元组的外键值与被参照关系删除元组的主键值相同时,可采用三种策略: 级联删除级联删除 受限删除受限删除 置空值删除置空值删除26 七月 2024数据库原理与应用第5章 数据库保护例:例:要删除“学生”表中“学号”为“001004”的元组,而在“考试”表中有2个“学号”为“001004”的元组。 级联方式级联方式 (CASCADES)(CASCADES)允许删除被参照关系的元组,但要将参照关系中所有外键值与被参照关系中要删除元组主键值相同的元组一起删除。如果参照关系同时又是另一个关系的被参照关系,则这种操作会继续级联下

283、去。26 七月 2024数据库原理与应用第5章 数据库保护 受限方式受限方式 (RESTRICT)(RESTRICT)当参照关系中没有任何元组的外键值与被参照关系中要删除元组的主键值相同时,系统才进行删除操作,否则拒绝删除操作。因此对“学生”表的删除操作将被拒绝。如果一定要删除“学生”表中的元组的话,可以由用户先用DELETE语句将“考试”表中相应的元组删除,再删除“学生”表的元组。26 七月 2024数据库原理与应用第5章 数据库保护 置空方式置空方式(SET NULL)(SET NULL)允许删除被参照关系的元组,但参照关系中相应元组的外键值应置空。在删除“学生”表中元组的同时,将“考试”

284、表中2个“学号”为“001004”的元组的“学号”置为空(行不通)。根据实际情况选择相应策略。26 七月 2024数据库原理与应用第5章 数据库保护3修改被参照关系中主键值的问题在允许修改主键的RDBS中,如果要修改主键的值,只能先删除要修改主键的元组,然后再插入具有新主键值的元组。例:例:为了将“学生”表中某一元组“学号”的值从“010125”改为“010130”,可以先用DELETE语句将“学号”为“010125”的元组删除,再插入“学号”为“010130”的元组。在删除元组时,可采用相应的策略以保证参照完整性。对被参照关系的插入操作则不会影响参照完整性。26 七月 2024数据库原理与应

285、用第5章 数据库保护允许修改主键的RDBS,对于修改被参照关系主键的操作,系统可采用以下的策略: 级联方式级联方式(CASCADE)(CASCADE)允许修改被参照关系的主键,但需将参照关系中所有与被参照关系中要修改元组主键值相同的外键值一起修改为新值。26 七月 2024数据库原理与应用第5章 数据库保护 受限方式受限方式(RESTRICT)(RESTRICT)当参照关系中没有任何元组的外键值与被参照关系中要修改元组的主键值相同时,系统才进行修改操作,否则拒绝修改操作。因此对“学生”表的修改操作将被拒绝。26 七月 2024数据库原理与应用第5章 数据库保护 置空方式置空方式(SET NUL

286、L)(SET NULL)允许修改被参照关系的元组,但参照关系中相应元组的外键值应置空。在修改“学生”表中元组的同时,将“考试”表中2个“学号”为“001004”的元组的“学号”置为空。(此策略不可采用) 26 七月 2024数据库原理与应用第5章 数据库保护例例5.55.5:在建立“考试”表时,定义外键“学号”和“课程号”,并规定与“学号”所对应的被参照关系“学生”的主键被删除或修改时采用级联方式,而“课程号”所对应的被参照关系“课程”的主键“课程号”被删除时采用受限方式,被修改时采用级联方式。 create table create table 考试考试 ( (学号学号 varchar(6)

287、references varchar(6)references 学生学生( (学号学号) ) on delete on delete cascadecascade on update on update cascadecascade, 课程号课程号 varchar(4)references varchar(4)references 课程课程( (课程号课程号) ) on delete on delete restrictrestrict on update on update cascadecascade, 成绩成绩 intint, primary key(primary key(学号,课程号

288、学号,课程号);26 七月 2024数据库原理与应用第5章 数据库保护5.2 数据库安全性5.2.1 用户验证用户验证5.2.2 存取控制存取控制26 七月 2024数据库原理与应用第5章 数据库保护DBDB的安全性:的安全性:是指保护数据以防止不合法的使用所造成的数据泄露、更改或破坏。26 七月 2024数据库原理与应用第5章 数据库保护网络环境下网络环境下DBDB应用系统需要考虑的安全问题主要应用系统需要考虑的安全问题主要包括:包括:1.1.硬件平台的安全问题:硬件平台的安全问题:确保支持DBS运行的硬件设施的安全。2.2.网络系统的安全问题:网络系统的安全问题:网络软件内部的安全性。3.

289、OS3.OS的安全问题:的安全问题:防止非法用户直接利用OS访问DB 。4.DBS4.DBS的安全问题:的安全问题:进行用户标识和鉴定、 DB存取控制,只允许合法用户进入系统并进行合法的数据存取操作。5.5.应用系统的安全问题:应用系统的安全问题:防止对应用系统的不合法使用所造成的数据泄密、更改或破坏。26 七月 2024数据库原理与应用第5章 数据库保护5.2.1 用户验证软件验证技术:软件验证技术:口令验证、问/答验证等技术;硬件验证技术:硬件验证技术:指纹验证、声音识别验证、手写签名验证、手型几何验证和身份卡验证等技术。在实际运用中,可根据需要选择其中的一种或多种技术进行用户验证。26

290、七月 2024数据库原理与应用第5章 数据库保护5.2.2 存取控制1 1DBMSDBMS的存取控制机制的存取控制机制2 2DBMSDBMS的存取控制方法的存取控制方法26 七月 2024数据库原理与应用第5章 数据库保护1DBMS的存取控制机制 DBMS规定用户想要操作DB中的数据,必须拥有相应的权限。 DBMS将授权结果存放入数据字典。 当用户提出操作请求时,DBMS会根据数据字典中保存的授权信息,判断用户是否有权对相应对象进行操作,若无权则拒绝执行操作。26 七月 2024数据库原理与应用第5章 数据库保护例:例:为了建立DB中的基本表,必须拥有CREATE TABLE的权限,该权限属于

291、DBA。如果DB中的基本表有很多,为减轻工作强度,DBA也可以将CREATE TABLE的权限授予普通用户,拥有此权限的普通用户就可以建立基本表了。又如,为将数据插入到DB则必须拥有对基本表的INSERT权限,有时可能还需要其它权限。请考虑某个想执行下面语句的用户需要拥有哪些权限。 insert into 女生考试(学号,课程号,成绩) select学号,课程号,成绩 from 考试 where 学号in (select 学号 from 学生 where 性别=“女”);26 七月 2024数据库原理与应用第5章 数据库保护2DBMS的存取控制方法 自主存取控制自主存取控制(DAC)(DAC)

292、 强制存取控制强制存取控制(MAC(MAC 基于角色的存取控制基于角色的存取控制(RBAC)(RBAC)26 七月 2024数据库原理与应用第5章 数据库保护 自主存取控制自主存取控制(DAC)(DAC)DAC方法允许用户将其拥有的权限授予其他用户。典型的DAC授权策略包括以下三种:集中管理策略集中管理策略:只允许某些特权用户授予/收回其他用户对客体(基本表、索引、视图等)的访问权限;基于拥有权的管理策略:基于拥有权的管理策略:只允许客体的创建者授予/收回其他用户对客体(基本表、索引、视图等)的访问权限;非集中管理策略:非集中管理策略:在客体拥有者的认可下,允许一些用户授予/收回其他用户对客体

293、(基本表、索引、视图等)的访问权限。26 七月 2024数据库原理与应用第5章 数据库保护 强制存取控制强制存取控制(MAC)(MAC)在MAC中,DBMS所管理的全部实体被分为主体(用户及其进程)和客体(基本表、索引、视图等)两大类。主体和客体被授予安全级,安全级包括密级和范围两个元素。主体的安全级反映了主体的可信度,客体的安全级反映了客体所含信息的敏感程度。主体对客体的存取必须遵循如下的规则:不准上读:不准上读:主体只能读安全级受其支配的客体;不准下读:不准下读:主体只能写安全级支配其安全级的客体。MAC基于安全等级实现访问控制,能防止特洛伊木马和隐通道等的恶意攻击。26 七月 2024数

294、据库原理与应用第5章 数据库保护 基于角色的存取控制基于角色的存取控制(RBAC)(RBAC)RBAC引入了角色的概念,它是权限的集合,将一个角色授权给某个用户时,该用户就具有了角色中所包含的所有权限。利用RBAC方法,可以定义各种角色,每种角色都具有一定的权限,并根据用户的职责,为其指派一个或多个角色。整个访问控制过程分成两个部分:整个访问控制过程分成两个部分:用户与角色相联系,角色与访问权限相联系,实现了用户与访问权限的逻辑分离。26 七月 2024数据库原理与应用第5章 数据库保护5.3 数据库并发控制5.3.1 事务事务5.3.2 事务的串行调度、并发调度及其可串行化事务的串行调度、并

295、发调度及其可串行化5.3.3 事务并发执行所带来的问题事务并发执行所带来的问题5.3.4 封锁封锁26 七月 2024数据库原理与应用第5章 数据库保护5.3.1 事务1 1事务的定义事务的定义2 2事务的特性事务的特性26 七月 2024数据库原理与应用第5章 数据库保护1事务的定义事务:事务:是DB的逻辑工作单位,由用户定义的一组操作序列组成,序列中的操作要么全做要么全不做。标准标准SQLSQL规定:规定:事务的开始一般是隐含的;事务的开始一般是隐含的;事务的结束一般使用语句:事务的结束一般使用语句:COMMIT TRANSACTIONCOMMIT TRANSACTION表示提交事务,执行

296、后,事务对DB的更新结果将被写入物理磁盘DB;ROLLBACK TRANSACTIONROLLBACK TRANSACTION表示回滚事务,执行后,DBMS将撤消事务对DB所作的全部操作,就象事务没有被执行一样。26 七月 2024数据库原理与应用第5章 数据库保护2事务的特性 原子性原子性 一致性一致性 隔离性隔离性 持续性持续性26 七月 2024数据库原理与应用第5章 数据库保护 原子性原子性一个事务中的所有操作是不可分割的,要么全部执行,要么全部不执行,这就是事务的原子性。保证事务的原子性是DBMS事务管理子系统的职责。26 七月 2024数据库原理与应用第5章 数据库保护 一致性一致

297、性一个被成功执行的事务,必须能使DB从一个一致性状态变为另一个一致性状态。26 七月 2024数据库原理与应用第5章 数据库保护 隔离性隔离性当多个事务并发执行时,任一事务的执行不会受到其它事务的干扰,多个事务并发执行的结果与分别执行单个事务的结果是完全一样的,这就是事务的隔离性。事务的隔离性是由DBMS的并发控制子系统保证的。26 七月 2024数据库原理与应用第5章 数据库保护 持续性持续性事务被提交后,不管DBMS发生什么故障,该事务对DB的所有更新操作都会永远被保留在DB中,不会丢失。事务的持续性是由DBMS的事务管理子系统和恢复管理子系统完成的。26 七月 2024数据库原理与应用第

298、5章 数据库保护5.3.2 事务的串行调度、并发调度及其可串行化调度:调度:事务的执行次序。串行调度:串行调度:若多个事务按照某一次序串行地执行。并发调度:并发调度:多个事务同时交叉地并行执行。事务并发调度的效率比串行调度的效率高,但事务串行调度的结果总是正确的,而并发调度的结果却不一定是正确的。26 七月 2024数据库原理与应用第5章 数据库保护例:例:事务事务T1T1和和T2T2的两种串行调度,的两种串行调度,两种两种串行调度的结果都是串行调度的结果都是正确的。正确的。 26 七月 2024数据库原理与应用第5章 数据库保护并发调度的结果并不总是正确的。给定一个并发调度,当且仅当它是可串

299、行化的,才是正确的调度。可串行化的调度:可串行化的调度:多个事务并发调度的结果与按某一次序串行地执行它们时的结果相同。例:例:事务T1和T2的两种并行调度26 七月 2024数据库原理与应用第5章 数据库保护为保证并发操作的正确性正确性,DBMS的并发控并发控制机制制机制必须提供一定的手段来保证并发调度是可串行化的。26 七月 2024数据库原理与应用第5章 数据库保护5.3.3 事务并发执行所带来的问题1 1丢失更新问题丢失更新问题2 2不一致分析问题不一致分析问题3 3未提交依赖问题未提交依赖问题26 七月 2024数据库原理与应用第5章 数据库保护1丢失更新问题并发事务T1和T2都要读入

300、同一数据X的值并进行更新,但是事务T1先提交,T2后提交,T2提交的结果破坏了T1提交的结果,致使T1对X的修改被丢失了。例:例:26 七月 2024数据库原理与应用第5章 数据库保护2不一致分析问题事务T1和T2在并发执行的过程中,事务T1先读取数据,事务T2随即对数据执行了更新操作,于是T1原来读取的数据就是一个过时的数据。例:例:26 七月 2024数据库原理与应用第5章 数据库保护3未提交依赖问题事务T1、T2在并发运行的过程中,事务T1先修改了某一数据,而后事务T2读取该数据,但此后由于某种原因T1被撤消了,被T1修改过的数据又恢复了原来的值,这样T2读到的就是一个未提交的数据(“脏

301、”数据)。例:例:26 七月 2024数据库原理与应用第5章 数据库保护5.3.4 封锁1 1排它锁和共享锁排它锁和共享锁2 2封锁协议封锁协议3 3活锁和死锁活锁和死锁26 七月 2024数据库原理与应用第5章 数据库保护封锁:封锁:是事务T在对某个数据对象例如关系、元组等进行查询或更新操作以前,应先向系统发出对该数据对象进行加锁的请求,否则就不可以进行相应的操作,而事务在获得了对该数据对象的锁以后,其它的事务就不能查询或更新此数据对象,直到相应的锁被释放为止。封锁的基本类型:封锁的基本类型:排它锁、共享锁排它锁、共享锁(按事务对数据对象的封锁程度进行分类)在利用这两种基本封锁类型对数据对象

302、进行加锁时,需约定一些协议,下面分别介绍两种基本封锁及相应的封锁协议。26 七月 2024数据库原理与应用第5章 数据库保护1排它锁和共享锁排它锁排它锁(记为X锁):如果事务T对数据对象Y加上了排它(X)锁,那么T既可以读取Y,也可以更新Y。共享锁共享锁(记为S锁):如果事务T对数据对象Y加上了共享(S)锁,那么T可以读取Y,但不能更新Y。在给数据对象加排它锁或共享锁时应遵循如下图所示的锁相容矩阵锁相容矩阵。26 七月 2024数据库原理与应用第5章 数据库保护被封锁的数据对象的范围可大可小,可以是属性、元组,也可以是关系、数据库等。封锁粒度封锁粒度:封锁对象的大小。26 七月 2024数据库

303、原理与应用第5章 数据库保护2封锁协议封锁协议:封锁协议:是在对数据对象加锁、持锁和释放锁时所约定的一些规则。不同的封锁规则形成了不同的封锁协议。 一级封锁协议一级封锁协议 二级封锁协议二级封锁协议 三级封锁协议三级封锁协议26 七月 2024数据库原理与应用第5章 数据库保护 一级封锁协议一级封锁协议规定事务T在更新数据对象以前,必须对该数据对象加排它锁,并且直到事务T结束时才可以释放该锁。利用一级封锁协议可以防止丢失更新问题的发生。26 七月 2024数据库原理与应用第5章 数据库保护 例:例:下图中多个事务的并发调度遵守了一级封锁协议,防止了丢失更新问题。26 七月 2024数据库原理与

304、应用第5章 数据库保护一级封锁协议不能防止不一致性分析问题,如下图所示,26 七月 2024数据库原理与应用第5章 数据库保护一级封锁协议也不能防止未提交依赖问题,如下图所示。因为一级封锁协议并没有要求读数据时也要因为一级封锁协议并没有要求读数据时也要加锁。加锁。26 七月 2024数据库原理与应用第5章 数据库保护 二级封锁协议二级封锁协议规定事务T在更新数据对象以前必须对数据对象加X(X(排它排它) )锁锁,且直到事务T T结束时才可以释放该锁,还规定事务T T在读取数据对象以前必须先对其加S(S(共享共享) )锁锁,读完后即可释放S S( (共享共享) )锁锁。二级封锁协议是在一级封锁协

305、议的基础上又增加了一些限制,所以肯定可以防止丢失更新问题,除此之外还可以防止未提交依赖问题,但却不能防止不一致性分析问题。原因:原因:对数据对象的S(共享)锁在读完数据后就被释放了。26 七月 2024数据库原理与应用第5章 数据库保护 三级封锁协议三级封锁协议规定事务T在更新数据对象以前,必须对数据对象加X(X(排它排它) )锁锁,且直到事务T T结束时才可以释放该锁,还规定事务T T在读取数据对象以前必须先对其加S(S(共享共享) )锁锁,该S锁也必须在事务T T结束时才可释放。三级封锁协议是在二级封锁协议的基础上又增加了一些限制,所以肯定可以防止丢失更新和未提交依赖问题,此外还可以防止不

306、一致性分析问题的发生。26 七月 2024数据库原理与应用第5章 数据库保护3活锁和死锁 活锁活锁 死锁死锁 死锁预防死锁预防 死锁检测死锁检测 死锁恢复死锁恢复26 七月 2024数据库原理与应用第5章 数据库保护 活锁活锁在多个事务并发执行的过程中,可能会存在某个尽管总有机会获得锁的事务却永远也没得到锁,这种现象称为活锁。采用“先来先服务”的策略可以预防活锁的发生。26 七月 2024数据库原理与应用第5章 数据库保护 死锁死锁即多个并发事务处于相互等待的状态,其中的每一个事务都在等待它们中的另一个事务释放封锁,这样才可以继续执行下去,但任何一个事务都没有释放自己已获得的锁,也无法获得其它

307、事务已拥有的锁,所以只好相互等待下去。例:例:死锁的情形如下图所示。26 七月 2024数据库原理与应用第5章 数据库保护 死锁预防死锁预防DB中预防死锁的两种方法第一种方法:第一种方法:要求每个事务必须一次性地将所有要使用的数据加锁或必须按照一个预先约定的加锁顺序对使用到的数据加锁。第二种方法:第二种方法:每当处于等待状态的事务有可能导致死锁时,就不再等待下去,强行回滚该事务。26 七月 2024数据库原理与应用第5章 数据库保护采用两种方法来解决并发调度中的死锁问题。采用两种方法来解决并发调度中的死锁问题。26 七月 2024数据库原理与应用第5章 数据库保护 死锁检测死锁检测利用“事务依

308、赖图事务依赖图” 方法(如下图所示),进行死锁的检测。其中,每个结点表示事务,带箭头的线表示事务间的依赖关系。例:例:结点T1T1和T2T2之间的连线就表示事务T1T1所需要的数据对象W已被事务T2T2封锁,其它的连线分别表示事务T2T2所需要的数据对象X X已被事务T3T3封锁,事务T3T3所需要的数据对象Y Y已被事务T4T4封锁,事务T4T4所需要的数据对象Z已被事务T1T1封锁,这样图中的4个事务之间就存在着相互等待的问题,表明死锁发生了,图中沿箭头方向形成了一个回路。因此,只要检测事务依赖图中有无回路就可以判断是否发生了死锁。26 七月 2024数据库原理与应用第5章 数据库保护 死

309、锁恢复死锁恢复当系统中存在死锁时,一定要解除死锁。方法:方法:从发生死锁的事务中选择一个回滚代价最小的事务,将其彻底回滚,或回滚到可以解除死锁处,释放该事务所持有的锁,使其它的事务可以获得相应的锁而得以继续运行下去。26 七月 2024数据库原理与应用第5章 数据库保护5.4 数据库恢复5.4.1 数据库系统的故障数据库系统的故障5.4.2 基于日志文件的数据恢复技术基于日志文件的数据恢复技术5.4.3 数据转储及介质故障的恢复数据转储及介质故障的恢复5.4.4 检查点方法检查点方法26 七月 2024数据库原理与应用第5章 数据库保护5.4.1 数据库系统的故障1 1. . 事务故障事务故障

310、2 2. . 系统故障系统故障3 3. . 介质故障介质故障26 七月 2024数据库原理与应用第5章 数据库保护DBS在运行的过程中,可能会产生各种故障,使DB处于一个不一致的状态,因此 DBMS必须提供一种功能以恢复DB中数据的正确性,这种功能就是DB的恢复,它是由DBMS的恢复子系统实现的。首先分析DBS所遇到的各种故障的种类,再介绍一些数据恢复技术。 26 七月 2024数据库原理与应用第5章 数据库保护1. 事务故障是指由于事务内部的逻辑错误(如运算溢出、数据输入错、记录找不到等)或系统错误(如并发事务发生死锁而被选中撤消等)所引起的、使事务在未达到规定的终点以前就被迫中止的任何事件

311、。26 七月 2024数据库原理与应用第5章 数据库保护2. 系统故障是指由硬件故障、软件故障(操作系统故障、DBMS代码错等)、停电等原因造成的、使系统停止运转、必须重新启动的任何事件。发生了系统故障以后,内存(包括DB缓冲区)的信息就丢失了,所有未完成的事务也被迫中止。26 七月 2024数据库原理与应用第5章 数据库保护3. 介质故障是指用于存放DB的磁盘在物理上受到了损坏,使得DB中的数据无法读出而引起的故障。在三种故障中,事务故障和系统故障都不会破坏外存中DB的数据,而介质故障将破坏存放在外存的DB中的部分或全部数据。因此,事务故障和系统故障可以由系统自动恢复,而介质故障必须借助DB

312、A的帮助,由DBA和系统一起恢复。事务故障和系统故障的恢复可以利用基于日志文件的数据恢复技术。26 七月 2024数据库原理与应用第5章 数据库保护5.4.2 基于日志文件的数据恢复技术1 1日志文件日志文件2 2利用日志文件撤消事务或重做事务利用日志文件撤消事务或重做事务3 3事务故障和系统故障的恢复事务故障和系统故障的恢复26 七月 2024数据库原理与应用第5章 数据库保护1日志文件是记载每个事务对是记载每个事务对DBDB的更新操作的文件。的更新操作的文件。日志文件有许多日志记录组成,如表示事务开始的事务开始记录、表示事务提交(或中止)的事务提交(或中止)记录,另外还有表示更新操作的更新

313、日志记录等,如下图所示。DBS在运行的过程中,DBMS负责将所有事务的更新操作登记到日志文件中。26 七月 2024数据库原理与应用第5章 数据库保护例:例:图1中的事务T1,T2的更新操作在日志文件中登记的日志记录图2所示。 图1 图226 七月 2024数据库原理与应用第5章 数据库保护2利用日志文件撤消事务或重做事务利用日志文件进行故障恢复时有两个基本操作:利用日志文件进行故障恢复时有两个基本操作: UNDO(Ti)UNDO(Ti):撤消事务Ti; REDO(Ti)REDO(Ti):重做事务Ti。26 七月 2024数据库原理与应用第5章 数据库保护UNDO(Ti)UNDO(Ti)的具体

314、步骤:的具体步骤: 反向扫描日志文件,找到需要撤消的事务的更新操作; 对事务Ti的更新操作执行逆操作,即将日志文件中“更新前的值”写入DB。如果日志记录中是插入操作,撤消时做删除操作;如果日志记录中是删除操作,撤消时做插入操作;如果日志记录中是修改操作,撤消时用修改前的值代替修改后的值; 继续反向查找该事务的其它更新操作,并执行相应的逆操作; 重复执行步骤,直至遇到该事务的事务开始记录。26 七月 2024数据库原理与应用第5章 数据库保护REDO(Ti)REDO(Ti)的具体步骤:的具体步骤: 正向扫描日志文件,找到需要撤消的事务的更新操作; 对事务Ti重新执行日志文件登记的操作,即将日志文

315、件中“更新后的值”写入DB; 继续正向查找该事务的其它更新操作,并重新执行,将日志文件中“更新后的值”写入DB; 重复执行步骤,直至遇到该事务的事务提交记录。 26 七月 2024数据库原理与应用第5章 数据库保护3事务故障和系统故障的恢复 事务故障事务故障 系统故障系统故障26 七月 2024数据库原理与应用第5章 数据库保护 事务故障事务故障指某事务在运行过程中由于逻辑或系统错误而在未完成其所有操作以前就被迫中止了,此时该事务中的部分操作已完成,部分操作未完成。但是事务中的所有操作是一个整体,要么全做,要么全部不做,否则就会使DB处于不一致的状态,因此对发生事务故障的事务必须撤消。撤消撤消

316、TiTi事务使用事务使用UNDO(Ti)UNDO(Ti)。26 七月 2024数据库原理与应用第5章 数据库保护 系统故障系统故障此时受影响的可能不止一个事务,而是发生系统故障时正在运行的所有事务。在这些事务中,有的未完成事务内规定的操作,这些事务在日志文件中有BEGIN TRANSACTION记录,而没有COMMIT记录,这些事务应撤消;而有的事务已完成了其中所有的操作,但事务对DB的更新结果可能还留在缓冲区中,未写入物理DB,这些事务在日志文件中既有BEGIN TRANSACTION记录,也有COMMIT记录,这些事务应重做。 26 七月 2024数据库原理与应用第5章 数据库保护例:例:

317、t t5 5时刻发生事务故障,T1T1在日志文件中的记录有开始无结束,则T1T1必须撤消。 t t1111时刻发生系统故障,T1T1必须重做, T2T2必须撤消。26 七月 2024数据库原理与应用第5章 数据库保护系统故障的恢复步骤如下:系统故障的恢复步骤如下: 正向扫描日志文件,找出系统故障发生前未完成的事务,将它们的事务标志记入撤消(UNDO)队列;找出系统故障发生前已完成的事务,将它们的事务标志记入重做(REDO)队列; 对UNDO队列中的各事务实行撤消(UNDO)操作。 对REDO队列中的各事务实行重做(REDO)操作。 26 七月 2024数据库原理与应用第5章 数据库保护5.4.

318、3 数据转储及介质故障的恢复1 1数据转储数据转储2 2介质故障的恢复介质故障的恢复3 3SQL Server 2000SQL Server 2000中数据的备份与恢复中数据的备份与恢复26 七月 2024数据库原理与应用第5章 数据库保护1数据转储是由DBA定期地将物理数据库中的数据复制到另外的磁盘或磁带保存起来的过程。被保存的后备数据文本称为后备副本或后援副本。数据转储分为:数据转储分为:静态转储静态转储:是指在系统中无任何运行事务时所进行的数据转储;动态转储动态转储:是指可以与并发事务同时进行的数据转储。26 七月 2024数据库原理与应用第5章 数据库保护静态转储的静态转储的利弊利弊:

319、简单,且得到的一定是一个正确的后备副本。因为转储开始时DB处于一致性的状态,而静态转储其间没有任何事务在运行,故绝对不存在对DB的更新操作,所以静态转储得到的一定是一个一致性的后备副本。静态转储不能与事务同时进行,影响了系统的可用性。26 七月 2024数据库原理与应用第5章 数据库保护动态转储的利弊动态转储的利弊 : 虽然可以与并发事务同时进行,但却不能保证得到一个正确的后备副本,这是因为在动态转储时DB可以被并行运行的事务更新,转储到后备副本中的数据可能是过时的数据。例:例:系统在转储其间的某时刻titi将数据X(X=200)转储到了另外的磁盘,可是却有事务在titi后的另一时刻tjtj将

320、数据X改为600,这样转储结束数据X已是过时的数据了。在进行动态转储时,必须将转储其间事务对DB的更新操作登记在日志文件中,以备将来发生故障时用该日志文件和后备副本将DB恢复到某一一致性状态。26 七月 2024数据库原理与应用第5章 数据库保护2介质故障的恢复介质故障破坏介质故障破坏:它破坏的是磁盘上的部分(或全部)物理DB,甚至会破坏日志文件,而且也会影响正在存取被破坏的物理数据的所有事务(它与事务故障和系统故障相比,对DB的破坏性可能最大)。用后备副本和日志文件进行用后备副本和日志文件进行DBDB恢复的具体步骤如下:恢复的具体步骤如下: 装入最近一次转储的后备副本,将DB恢复到最近一次转

321、储时的一致性状态。若后备副本是静态转储产生的,则装入该后备副本即可;而若后备副本是由动态转储产生的,还必须同时装入转储开始时刻的日志文件副本,利用系统故障恢复方法(即REDO+UNDO),将DB恢复到最近一次转储时的一致性状态。 装入转储结束时刻的日志文件副本,重做已完成的事务。 26 七月 2024数据库原理与应用第5章 数据库保护3SQL Server 2000中数据的备份与恢复在SQL Server 2000可以将DB备份到很安全的地方,当DB被破坏时,就可以利用备份好的数据恢复DB。SQL Server 2000SQL Server 2000提供了四种提供了四种DBDB备份与恢复数据的

322、备份与恢复数据的方式:方式:全库备份:全库备份:备份整个DB。日志备份:日志备份:备份日志文件。差异备份:差异备份:仅备份自上次全库备份后被修改过的数据页。文件或文件组备份:文件或文件组备份:对组成DB的文件或文件组进行单独的备份。26 七月 2024数据库原理与应用第5章 数据库保护5.4.4 检查点方法利用日志文件技术可以进行DB的恢复,但是效率较低。例:例:在进行系统故障恢复的过程中,系统必须对整个日志文件进行搜索,以决定哪些事务必须重做,哪些必须撤消,而日志文件中记录了事务对DB的所有更新操作,记录数很多,搜索速度很慢;另外,有很多事务实际上已经将更新操作的结果都写入物理DB了,因此不

323、需要再重做了,否则只会浪费系统的时间。为提高日志文件技术的效率,可以采用检查点的方为提高日志文件技术的效率,可以采用检查点的方法。法。26 七月 2024数据库原理与应用第5章 数据库保护检查点的方法:检查点的方法:即在日志文件中再增加一个检查点记录,同时还增加了一个重新启动文件。系统在运行的过程中会周期性地产生一个检查点,以保存DB的状态。26 七月 2024数据库原理与应用第5章 数据库保护检查点的方法系统进行如下操作:检查点的方法系统进行如下操作:将仍在缓冲区的所有日志记录写入物理的日志文件中。在日志文件中写入一个检查点记录,该检查点记录包含了在检查点时刻正在执行的所有事务的最近一个日志

324、记录的地址。将数据缓冲区中的数据写入物理的DB。将所产生的检查点记录在日志文件中的地址存入重新启动文件。 当DB在某一个检查点(如titi时刻)之后、下一个检查点还未来到之前的某时刻(如tjtj时刻)发生故障时,DBMS的恢复子系统就可以根据每一个事务所处的不同状态,进行DB的恢复。 26 七月 2024数据库原理与应用第5章 数据库保护按事务开始和结束的时间可将事务分为如下几种按事务开始和结束的时间可将事务分为如下几种: 在检查点前已结束的事务;(事务T1) 在检查点前开始、在检查点后的故障发生前已结束的事务;(事务T2) 在检查点前开始、在检查点后的故障发生时尚未结束的事务;(事务T3)

325、在检查点后开始、在检查点后的故障发生前已结束的事务;(事务T4) 在检查点后开始、在检查点后的故障发生时尚未结束的事务。(事务T5)26 七月 2024数据库原理与应用第5章 数据库保护DBMSDBMS的的恢复子系统恢复子系统根据事务所处的状态,进行根据事务所处的状态,进行DBDB的恢复的恢复: :检查点前已结束的事务(T1T1),不需要恢复,因为这些事务对DB的更新已在最近的检查点时被写入物理DB中了;在检查点前(或后)开始、在检查点后故障发生前已结束的事务(T2T2、T4T4),必须重做(REDO),因为它们对DB的更新可能还留在缓冲区中,尚未写入物理DB;在检查点前(或后)开始、在检查点

326、后的故障发生时尚未结束的事务(T3T3、T5T5),则必须撤消。26 七月 2024数据库原理与应用第5章 数据库保护小结DBDB的完整性:的完整性:是指数据的正确性和相容性;DBDB的完整性控制包括:的完整性控制包括:完整性约束的定义、检查和处理。当用户对DB进行更新操作时,系统会检查用户的操作是否违反了完整性约束,若违反了完整性约束,就采取一定的措施来保证数据的完整性。DBDB的安全性:的安全性:是指保护数据以防止不合法的使用所造成的数据泄露、更改或破坏。 DBDB的安全性控制主要方法:的安全性控制主要方法:用户验证、存取控制。26 七月 2024数据库原理与应用第5章 数据库保护事务:事

327、务:是DB进行并发控制的基本单位;多个事务的并发调度:多个事务的并发调度:带来丢失更新、不一致分析、未提交依赖等问题,从而影响并发调度的正确性。解决问题的方法:解决问题的方法:封锁封锁,封锁又分为排它锁排它锁和共享锁共享锁。利用封锁进行并发控制时须遵循一定的封锁封锁协议协议。在封锁的过程中,还会发生活锁活锁和死锁死锁现象。DBSDBS在运行过程中常见的故障类型:在运行过程中常见的故障类型:事务故障、系统故障和介质故障。第第7 7章章 C/SC/S数据库及数据库及WEBWEB数据库内容数据库内容26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容7.1 C/SC/S体系结构

328、体系结构7.2 C/SC/S数据库技术数据库技术 7.3 WebWeb数据库与应用数据库与应用 小结小结内内 容容26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容7.1 C/SC/S体系结构体系结构7.1.1 C/SC/S结构结构 7.1.2 C/SC/S结构的主要技术特征结构的主要技术特征 7.1.3 C/SC/S结构的组成结构的组成 7.1.4 三层三层C/SC/S结构结构 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容7.1.1 C/SC/S结构结构计算机的应用结构发展过程:计算机的应用结构发展过程: 集中式结构:集中式结构: 所有的

329、资源(数据)和处理(程序)都在主机上完成,用户输入的信息通过客户终端直接送到主机,由主机返回结果到终端上。 该结构可实现集中管理,安全性好,但由于应用程序和DB都存放在主机上,所以没办法真正划分应用程序的逻辑,开发和维护都非常困难。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容文件服务器结构:文件服务器结构:应用程序在客户终端上运行,而不是在服务器上运行,文件服务器只提供了资源(数据)的集中管理和访问途径。该结构配置灵活,在一个局域网内可以方便地增减客户端工作站,但由于文件服务器只提供文件服务,所有的应用处理都在客户终端完成,要求客户端的个人计算机必须要有足够的能

330、力,以便执行需要的任何程序。可能经常需要将客户终端的计算机升级,否则将无法改进应用程序的功能、提高应用程序的特性。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容C/SC/S结构:结构:以网络环境为基础,将计算机应用有机地分布在多台计算机中。如下图所示。服务器:服务器:负责数据的存储管理及文件服务;客户机:客户机:负责用户对数据或文件提出请求,由服务器把处理后的数据传送给客户机,因此在网络中传输的仅仅是客户需要的那部分数据,而不是全部,大大降低了网络数据的流量,使系统的性能有了较大的提高。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容C/S

331、C/S结构:结构:增加了数据的共享能力,服务器(DB服务器)上存放着大量的数据,用户只需在客户机用标准的SQL访问服务器中的数据,便可很方便地得到所需的各种数据及信息。C/SC/S结构:结构:是一个开放的体系结构,使得DB不仅要支持开放性而且还要开放系统本身,这种开放性包括用户界面、软硬件平台和网络协议。利用开放性在客户机上提供应用程序接口(API)及网络接口,使用户仍可按照他们所熟悉的、流行的方式开发客户机应用。在服务器方面,通过对核心RDBMS的功能调用,使网络接口满足了数据完整性、保密性及故障恢复等要求。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容有了开放性

332、,DB服务器就能支持多种网络协议,运行不同厂家的开发工具,而某一个应用开发工具也可以在不同的DB服务器上使用和存取不同数据源中的数据,从而给应用系统的开发提供了极大的灵活性。C/S的内部结构如下图所示。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容7.1.2 C/SC/S结构的主要技术特征结构的主要技术特征1. 按功能划分按功能划分 2. 共享资源共享资源 3. 不对称协议不对称协议 4. 定位透明性定位透明性 5. 基于消息的交换基于消息的交换 6. 可扩展性可扩展性26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容1. 按功能划分按功能划

333、分服务器是服务的提供者,客户机是服务的消费者。C/S结构根据服务的观点对功能进行了明确的划分。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容2. 共享资源共享资源一个服务器可以在同一时刻为多个客户机提供服务,并且服务器具有并发控制、封锁等能力协调多用户对于共享资源的访。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容3. 不对称协议不对称协议在客户机与服务器之间存在着一种多对一的主从关系。即客户机通过请求与服务器主动对话,而服务器则是被动地等待客户机请求。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容4. 定

334、位透明性定位透明性C/S结构应该向客户机提供服务器位置透明性服务。透明性:透明性: 指某一种实际存在的事物具有看来好像不存在的性质。定位透明性:定位透明性: 指用户不必知道服务器的位置,就可请求服务器的服务。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容5. 基于消息的交换基于消息的交换客户机和服务器是一对耦合的系统,它们通过消息传递机制互相协作。消息:消息:是服务请求与服务响应的媒介。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容6. 可扩展性可扩展性C/S结构可以水平地或垂直地扩展。水平扩展:水平扩展:指添加或移去客户机对系统性能

335、影响很小。垂直扩展:垂直扩展:指移植到更大的或者更快的服务器或多服务器上。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容7.1.3 C/SC/S结构的组成结构的组成1客户机客户机 2服务器服务器 3连接件连接件26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容1客户机客户机客户机:客户机:是一个面向最终用户的接口或应用程序。它通过向一个设备或应用程序(服务器)请求信息,然后将信息显示给用户。客户机把大部分数据处理工作留给服务器,让服务器上的高档硬件和软件充分施展它们的特长。通过将数据分析和图形表示从服务器上分离下来,客户机硬件便能大大地减少

336、网络上的传输事务,使网络能为用户提供更加有效的信息流。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容2服务器服务器服务器:服务器:主要功能是网络服务地址、监听客户机的调用、处理客户机的请求、将结果交给客户机和释放与客户机的连接。服务器可以是大型机、中小型机或高档微机。要求服务器:要求服务器:配有高档的处理器、大容量内存、稳定快速的总线和网络传输以及完整的安全措施。服务器能:服务器能:为客户机的请求提供所要求的服务,包括数据析取、数据加工和数据处理等。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容3连接件连接件客户机与服务器之间的连接是通

337、过网络连接实现的;对应用系统来说,连接更多的是一种软件通信过程(如网络协议等);对应用开发人员来说,客户机与服务器之间的连接主要是它所能使用的软件工具和编程函数。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容开放的开放的DBDB连接连接(ODBC)(ODBC):是一种基于SQL访问组织规范的DB连接应用程序接口,该接口可在应用程序与一个或多个DB服务器之间进行通信。客户应用只需与标准的ODBC函数打交道,采用标准的SQL语言来编程,而不必关心服务器软件的要求及完成方式。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容C/SC/S结构的关键在

338、于任务的分割:结构的关键在于任务的分割:客户机:客户机:完成用户接口任务,主要是输入/输出和任务的提交。服务器:服务器:主要完成数据的存储、访问和复杂的计算任务。连接件:连接件:主要完成客户机与服务器的数据交换。客户机与服务器软件通常要在客户机方屏蔽掉服务器的地址信息,做到定位透明性,因而从应用的观点看它们之间的交互是无缝的。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容7.1.4 三层三层C/SC/S结构结构1 1. B/S. B/S结构的优点结构的优点 2 2. . 三层结构的功能层次三层结构的功能层次26 七月 2024数据库原理与应用第7章 C/S数据库及W

339、EB数据库内容两层C/S结构实现了功能的分布,但还不均衡。客户机:客户机:上都必须安装应用程序和工具,包括它们的公共程序(例Power Builder),使客户机上软件过于庞大、负载太重,从而影响效率。如果连接的客户机数目激增,服务器的性能将会因为无法进行负载均衡而大大下降;每一次应用需求的变化,都需要对客户机和服务器的应用程序进行修改,给应用的维护和升级造成极大的不便。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容三层结构如下图所示:26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容应用服务器:应用服务器:包括从客户机划分出一部分应用和从专

340、用服务器中划分出一部分工作。第一层第一层的客户机主要提供用户的操作界面,并不做任何的计算功能,也经常称之为浏览器,只要具有类似浏览Internet时用的浏览器的功能即可;第二层第二层应用服务器包含了应用系统中完成业务处理的程序(中间件或商业规则组件),负责接收和处理对DB的查询和操纵请求,这些程序是封装起来的、彼此独立的;第三层第三层是DB服务器:用于存放和管理用户数据,支持对数据的各种操作。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 加入中间件的应用服务器,使两层C/S结构中的客户机和服务器都减轻负担。对客户机而言:对客户机而言:只需要完成输入/输出以及和应用

341、服务器的通信即可,由应用服务器选择中间件支持用户的要求;对服务器而言:对服务器而言:可以专心地运行DBMS,无须运行程序,可以更高效地完成工作。 由于应用服务器应用服务器与DBDB服务器服务器总是在同一地点或同一局域网中,大量数据的频繁传送不会影响系统的整体性能。说明:说明:应用服务器层不一定要对应一台具体的计算机,它是一个解决方案,只需要相应的软件支持,该软件可以和DB服务器软件安装在同一台计算机上。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 降低开发的成本降低开发的成本 系统易于维护系统易于维护 系统易于管理系统易于管理1. B/S1. B/S结构的优点结

342、构的优点26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 降低开发的成本降低开发的成本 在B/S结构中,中间层提供的应用程序总是以组件的形式出现,这样在客户机调用相应功能时,所调用的是这种共用的、封装好的、独立性很强的中间件,精心设计的中间件能够很好地保证DB中数据的完整性和一致性。 不仅能够使系统的可靠性和性能得到保证,而且由于对组件的重复使用,可以达到“一次编写,多处使用”的目的,降低开发的成本。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 系统易于维护系统易于维护 B/S结构将应用的实现和用户界面分离,使应用开发人员能专注于应用核

343、心业务的分析、规划和设计,快速建立应用系统核心。界面和业务的明确划分,使应用系统的管理员能更有效地管理应用系统。 对具有百千用户的两层结构,经常性的更新、升级系统是一项十分棘手的工作,尤其是当系统己经投入实际运行后更是如此。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 三层结构体系将用户交互的部分即用户界面放到客户机上,而把内部业务的实现放到了应用服务器上,体现了各层的分工,这样,对实现内部业务的程序修改甚至DB模式的修改通常都不会要求客户机进行改动。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 系统易于管理系统易于管理 B/S结构

344、将实现业务的程序和数据层划分开,可以非常有效地管理应用的运行。 该结构还可以动态地管理服务请求;快速启动和停止服务器、根据变化的负荷复制服务器、撤消服务器中的服务以及将服务从一个服务器转移到另一个服务器等等。 这些对中间层应用上的管理大大增加了分布式应用的伸缩性和灵活性。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 C/S结构,形象的说法:“瘦客户机,胖服务器瘦客户机,胖服务器”。 对客户机的要求越来越少,只需具有很有限的功能就可以了;与此同时,服务器应该承担起更重的任务,既要管理好数据,还需要最大限度地执行程序。 客户机的“瘦”与服务器的“胖”使得应用分布更加合

345、理,能够提高综合效率。B/S结构使“瘦客户机胖服务器”的特征更加明显。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容B/SB/S三层结构的思路:三层结构的思路: 使客户机变“瘦”,即客户机进一步变小,客户机上只安装浏览器就可以访问应用程序; 并不是使服务器变“肥”,而是增加服务器的品种,容易组装。 由于采用“瘦”客户机,在实现系统时对于客户机所要求的计算能力大大降低,低到只要能运行浏览器软件就可以了,这样可以节省投资。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容2. 2. 三层结构的功能层次三层结构的功能层次 表示层表示层负责显示和与

346、用户交互,由客户机实现; 功能层功能层实现应用逻辑,由应用服务器实现; 数据层数据层负责数据管理,由DB服务器实现。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容多层结构:多层结构:系统引入三层以上的结构。在客户机与服务器之间再插入一中间件(例如代理服务器)的四层结构。 一般用在广域网中,应用服务器和DB服务器都是远程服务器,在客户机的本地(同一局域网中)安装一个代理服务器,由代理服务器暂存本地要使用的数据、集合和组件。当本地计算机运行程序时,可以很快地从本地的代理服务器中取得数据和组件,而不需要通过广域网获得。 只有代理服务器中没有客户机需要的数据和组件时才需要直

347、接从远程服务器中获得。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容7.2 C/S C/S数据库技术数据库技术 7.2.1 C/S C/S数据库技术概述数据库技术概述7.2.2 C/S C/S结构的数据库系统结构的数据库系统26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容7.2.1 C/S C/S数据库技术概述数据库技术概述1 1. C/S. C/S结构系统的处理方式结构系统的处理方式 2 2. C/S. C/S数据库的优点数据库的优点 3 3. C/S. C/S数据库的缺点数据库的缺点 4 4. C/S. C/S数据库的平台数据库的平台

348、26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容1. C/S1. C/S结构系统的处理方结构系统的处理方式式 完全分布式处理完全分布式处理 完全完全C/SC/S结构结构 有限有限C/SC/S结构结构 专用专用C/SC/S结构结构 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 完全分布式处理完全分布式处理 数据驻留在多个系统或平台上; 用户访问是透明的:用户连接到一个服务器上,由该服务器访问其他系统; 服务器执行所有的DBMS函数和处理; 用户必须通过运行在服务器上的DBMS来访问数据; 多个前端都提供了查询、数据修改和报告服务。 26 七

349、月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 完全完全C/SC/S结构结构 数据驻留在一个或多个服务器上; 用户或应用显式地连接到每个服务器上; 服务器执行所有的DBMS处理; 用户只能通过运行在服务器上的DBMS来访问数据; 多个前端都提供了查询、数据修改和报告服务。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 有限有限C/SC/S结构结构 服务器提供某些DBMS功能,一般只有数据存储和索引功能; 服务器允许用户不通过运行在服务器上的DBMS的情况下就可访问数据; 大部分处理在客户机上进行; 支持多个前端,但不如完全C/S结构系统多。 2

350、6 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 专用专用C/SC/S结构结构 需要专用的硬件平台和OS; 数据只能通过DBMS厂商提供的前端软件来访问。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 完全分布式处理系统:完全分布式处理系统:实现的很少,正在研制之中。完全完全C/SC/S结构的系统:结构的系统:最常用的C/S结构,常与有限C/S结构的系统提供的服务结合起来应用。有限有限C/SC/S结构的系统:结构的系统: 服务器的功能增加给标准的、基于PC的数据库,它通常用于从PC到C/S结构应用的升级或过渡。专用专用C/SC/S结构的系统:

351、结构的系统:常见于80年代初期,近期已逐步发展成更开放的系统。 但是完全C/S结构、有限C/S结构的系统不排除使用专用的服务器。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容2. C/S2. C/S数据库的优点数据库的优点 有效地延长有效地延长PCPC机的寿命机的寿命 减少工作站网络上的负载减少工作站网络上的负载 工作站的无关性工作站的无关性 数据完整性的维护数据完整性的维护26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 有效地延长有效地延长PCPC机的寿命机的寿命 在C/S数据库中,由于大量的数据库操作是在后端进行的,DBMS的速度不

352、受工作站速度的制约,因此,工作站只要能够运行前端软件即可,从而有效地延长了许多比较老或比较小的、没有复杂DBMS能力的PC机的寿命。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 减少工作站网络上的负载减少工作站网络上的负载 由于把处理任务分开在客户机和DB服务器上进行,所以也减少了工作站的网络上的负载。 采用C/S结构以后,只需把查询的请求发送给DB服务器,并把查询结果从DB服务器传回来,而不必将整个DB在网络线上传来传去,从而使网络传输通信量大大减少。 有些DB服务器甚至可以在服务器自身上存放和运行过程及查询操作,这又进一步减少了网络传输的通信量。 在有很多工作

353、站的大型网络中,网络传输通信量的减少足以弥补转换到C/S结构所增加的费用。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 工作站的无关性工作站的无关性 客户机与服务器分离好处:是工作站的无关性,即用户不再被局限在一种类型的系统或平台上。 在C/S数据库中,工作站可以是与IBM兼容的PC机、 Unix工作站、Macintosh机或它们的组合,它可以在多个OS上运行,如MS/PC-DOS、MS Windows、IBM OS/2或APPLE公司的SYSTEM 7。 工作站无关性的必然结果就是应用的无关性,工作站不必使用相同的DBMS应用软件。 用户可以继续使用他们熟悉的

354、软件来访问数据库,开发人员可以为特殊用户或特定的工作站设计前端。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 数据完整性的维护数据完整性的维护 大多数DB服务器都运行基于关系模型的DBMS,这种DBMS不允许用户不经过DBMS访问数据(有限C/S结构和专用C/S结构除外)。DBMSDBMS可以提供:可以提供:保护数据的操作:保护数据的操作:如:文件加密存储,即数据被加密以防止不经过DBMS就查看数据;实时磁带备份:实时磁带备份:在DB正在被存取时进行磁带备份;磁盘镜像:磁盘镜像:数据自动被写入同一硬盘另一部分上的备份数据;磁盘双工:磁盘双工:数据自动被写入另一硬盘

355、上的备份DB;事务处理的功能:事务处理的功能:跟踪DB的修改并在服务器崩溃时帮助纠正DB中错误。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 事务处理子系统:事务处理子系统:能使DBMS保留系统运行日志,能记录下一段时间内对DB进行的全部修改。主要用于不断被修改的DB,如订票处理系统,以保证数据的修改被正确地记录到DB中。 当DB正在被修改而系统崩溃时,日志可用来将DB尽可能恢复到出错以前的状态。 这些功能使C/S结构适用于大型多用户DB,特别是那些允许多重并发地修改数据的DB。 DBMS负责处理必要的数据锁定,以防止对同一记录或字段进行多重修改,且通过审慎地使

356、用这种锁定(例修改时只锁定一个记录或一个字段而不是整个文件),DBMS可以提供更好的多用户访问。由中央DBMS管理时,用户之间修改同一记录所引起的冲突和死锁会大大地减少。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容3. C/S3. C/S数据库的缺点数据库的缺点 增加维护增加维护DBDB服务器的管理和支持人员的开销服务器的管理和支持人员的开销 增加硬件的开销增加硬件的开销 增加增加DBDB软件费用软件费用 复杂性复杂性 应用无关性优点有减弱趋势应用无关性优点有减弱趋势 有限的互连支持有限的互连支持26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据

357、库内容 增加了维护数据库服务器的管理和支持人员的开销增加了维护数据库服务器的管理和支持人员的开销 在一个小型网络中(一般不足20个用户),网络管理员通常能够维护DB并管理用户对DB的访问,同时还能支持前端应用。 随着用户的增加或DB自身的增长,仅仅为运行DBMS并支持前端可能就需要一个DBA。由于DBMS可能在一个支持人员不熟悉的OS上运行,培训也会增加起步的开销。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 增加硬件的开销增加硬件的开销 虽然许多C/S数据库都运行在通用OS下,如Netware、OS/2或Unix等,且大多数厂商声称DBMS能够同文件服务器软件一

358、起运行在同一硬件上,但是,DB服务器应该运行在它的专用的机器上,以保证性能和数据的完整性。 意味着要购买一套具有大容量的内存和硬盘空间的高性能系统,还要加上后援设备,如用来保护服务器免于停电的不间断电源(UPS)。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 增加增加DBDB软件费用软件费用 C/S数据库软件的全部费用通常比传统的基于PC的DBMS高(不过比小型机或大型机中央系统的价格要低或持平)。 对C/S数据库来说,每个服务器的价格从支持5用户的1000美元以下到支持无限多用户的几万美元不等,还要加上前端应用和开发工具的费用以及为新系统培训程序员的费用,因此,

359、其价格会大大超过传统的基于PC的DBMS。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 复杂性复杂性 C/S数据库还存在一个复杂性问题。由于一个完整的C/S数据库由很多部分组成,因而组成系统的部件越多,可能出问题的部件也就越多。 当系统崩溃时,对这样的系统跟踪查找问题也很困难。而且,这样的系统最初需要花费很长的时间才能使所有的部件建立起来并一起工作。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 应用无关性优点有减弱趋势应用无关性优点有减弱趋势 C/S数据库应用无关性的优点有减弱的趋势,因为如果DB具有多个前端,必然需要更多的程序设

360、计支持,因此必须开发和维护大量种类繁多的程序。 DB结构的改变对每个不同的前端都会产生连锁影响,对各个前端应用进行修改也变得更复杂、花费的时间也更长,而且,在不严重干扰用户访问DB的情况下,保持所有前端应用同步也变得更困难。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 有限的互连支持有限的互连支持 目前,对不同的C/S数据库之间的互连支持极为有限。大多数后端系统只能与类似的系统共享数据,且几乎所有可用的前端都只能有选择地支持某些后端。 建立C/S结构DB可能使大家只能使用某几个厂商提供的前端,且可用来开发定制的前端应用的工具数量也很有限。 把现有的DB导入到C/S

361、数据库中会非常麻烦,甚至根本不可能,且把一个新的C/S结构与现有的DBMS连接起来有时也很困难。 不过,随着C/S数据库的应用逐渐广泛,这些问题正逐步得到解决,前端和后端厂商也正在为访问其他系统提供更多的支持。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容4. C/S4. C/S数据库的平台数据库的平台 硬件平台硬件平台 软件平台软件平台26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容平台:平台:是C/S数据库在其上运行的软件和硬件平台的结合。可分为四种类型:可分为四种类型:PC(C/S计算中使用得最普遍)、Unix工作站、小型机和大型机。

362、 硬件系统的特点和功能差异很大,而OS软件要具有一些共同的特性。OS是硬件与运行在硬件上的应用软件之间起接口作用的主要软件,而应用软件通常是为在某个特定OS下运行而编写的。 常见的OS软件有Windows 95/98、Windows NT、Windows XP、Novell、Linux、Unix变种、DEC公司的VMS以及运行在IBM大型机上的MVS/XA等。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 硬件平台硬件平台 PC PC机机 RISC RISC和其他和其他UnixUnix工作站工作站 小型计算机小型计算机 大型计算机大型计算机26 七月 2024数据库

363、原理与应用第7章 C/S数据库及WEB数据库内容 PC PC机机随着高性能的奔腾系列的出现,以10亿字节(用G表示)计算的硬盘以及稳定的多任务OS,PC机已能够同基于精减指令集计算(RISC)工作站及小型机竞争,而RISC工作站及小型机正是资源集中的DBMS的传统平台。用PC作为DB服务器是目前使用得最普遍的平台,它价格低廉,设备接口标准统一,有很大的第三方附加产品市场,防止用户被局限于一家厂商的产品,且它的硬盘、内存甚至CPU都有较大的扩展余地,可以比较容易地进行升级。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 RISC RISC和其他和其他UnixUnix工

364、作站工作站RISC处理器的工作站主要用于科学或工程应用,因为RISC处理器通常比Intel最先进的奔腾处理器的速度和性能还要高,它通过减少芯片内微码的数量增强了它的性能,微码的数量少意味着处理器执行内部操作更快。获得工作站的额外性能所付出的代价,是不得不依赖于单一厂商来提供大部分扩展设备(内存或磁盘驱动器)。工作站不像PC那样普遍,所以没有很多的第三方附加产品可供选择,虽然低档工作站的价格仅比高性能的PC略高,但从长远观点来看,要把它扩展到服务器的功能,可能要花费比相同的PC高二至四倍的费用。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 工作站:工作站:是那些桌面

365、的、单用户的、基于Unix的多任务系统,这种系统可以通过网络连接作为服务器使用;26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 小型计算机小型计算机小型计算机是DB应用的传统工作平台,小型计算机对多用户应用来说通常是最佳的,可以用小型机作为文件服务器和DB服务器。小型计算机通常是建立在专用CPU和专用的扩充设备上的,专用的CPU一般比前述系统中使用的CPU功能更强,通常有若干连接非智能终端的串行口,而且一般包含有网卡。它们支持比普通PC或工作站要多得多的内存,这使它们更适于那些允许几百个用户同时访问的应用。26 七月 2024数据库原理与应用第7章 C/S数据库及W

366、EB数据库内容C/S结构DBMS可以把数据访问扩展到公司内部的许多PC和局域网上,从而增强了小型机的功能。C/S数据库还将部分数据处理操作转移到前端系统上,从而减少了小型机的工作负荷,使小型机在没有扩充和增加硬件的情况下能够支持更多的用户。但购买和建立C/S结构DBMS所花费的最初成本,往往高于不必购买额外的硬件所节省的开销。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容小型计算机:小型计算机:是那些多用户系统,它们既支持网络连接又能直接连接终端。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 大型计算机大型计算机大型机是功能最强的通用

367、计算机,它支持多个高速处理器、大容量磁盘空间以及数百至数千个并行用户。大型机在数据安全和硬件冗余度两方面为实用系统提供了最大的安全性。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容大型机能够支持数百甚至数千个用户通过终端或网路连接来访问多个应用。一般大型机是用来作为中心数据库应用的主要系统或是作为“数据仓库”使用,但是PC和工作站的快速普及已经使大型机的作用发生了缓慢的变化,那就是用作C/S结构DBMS的宿主机。对DB应用系统来说,如果数据不能使用则可能造成整个系统的崩溃,因此,大型机仍然被当作最重要的中心数据存储系统,并且在今后的若干年内;会继续充当“数据仓库”的

368、角色。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容大型机可以通过终端或带有终端仿真程序的PC机来访问,终端或PC机被连接到“终端控制器”(处理终端的通信网络连接的专用子系统)上,然后连接到大型机上。“拨号进入拨号进入”访问是通过前端处理机完成的,前端处理机是一硬件子系统,不同于用来访问C/S数据库的前端应用。这个处理机用于处理远程终端与中央宿主机之间的通信,网络连接也是通过放在前端处理机里面的内部控制来完成。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容要保证大型机系统的正常运转,需要有一个完整的信息管理服务部门,该部门由系统程序员、

369、通信网络专家和系统操作员组成;因为大多数大型机应用程序都是定制编写的,因此,现在的趋势是把现有的大型机集成到新的C/S结构,而不是安装新的大型机。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 软件平台软件平台 “多任务多任务” “多用户的多用户的” “多线程多线程”26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 “多任务多任务”“多任务多任务”(并发地运行多个应用并发地运行多个应用)该特性通过划分时间片段把CPU的处理时间分给不同的任务和进程,从而使DBMS软件在互不干扰的情况下能适当地处理不同用户的查询和请求。“抢占式的抢占式的”:O

370、S控制每个任务的CPU时间量(系统对于C/S数据库有天然优越性,因它们能防止任何一个任务独占整个系统);“非抢占式的非抢占式的”:应用程序将控制CPU时间,只有当它自己的任务结束运行之后它才会把CPU让给其他任务。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 “多用户的多用户的”即能同时支持多个用户执行不同的任务,特别是当使用多个非智能终端来访问DBMS时,更能形象地说明多用户特性。多用户OS对C/S结构DBMS来说没有特别的优点或缺点。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 “多线程多线程”使得一个应用能在其本身内实现多任务(

371、假设有一个多线程的单用户DBMS,当用户正在前台查询系统时,这个DBMS可以启动一个新的执行线程(进程或任务),以便在后台制作一个复杂的报表。多线程对复杂C/S结构DBMS的设计具有重大意义,因它使应用程序能更好地控制何时启动一个新的任务或者何时停止一个任务。应用程序可以被设计成具有内在智能,以确定哪个进程或任务具有较高的优先级,应该给予比其他任务更多的CPU时间。例如DBMS可以让数据修改的优先级比数据查询的优先级高,从而在不显著影响查询速度的前提下,减少复杂作业所带来的性能损失。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容7.2.2 C/S C/S结构的数据库

372、系统结构的数据库系统1 1. C/S. C/S结构的结构的DBMSDBMS功能划分功能划分 2 2. C/S. C/S结构的结构的DBSDBS实现技术实现技术26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容1. C/S C/S结构的结构的DBMSDBMS功能划功能划分分 C/S C/S体系结构体系结构 RU RU体系结构体系结构 EWS EWS体系结构体系结构 结论结论26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 C/S C/S体系结构体系结构 应用的处理(包括实现用户界面与本身逻辑)由客户机完成,数据访问和事务管理由服务器完成。 实现了

373、功能分布,即由客户机承担了部分处理任务,但数据都集中在服务器中。 在查询处理过程中,客户机提出查询请求,而服务器完成对DB的查询任务,把查询结果返回给客户机。网络上传输的是查询要求和查询结果。 该方案使服务器有更多的能力完成数据访问和事务处理,从而支持更多的客户,提高了系统性能,但由于数据集中在服务器,因而并未解决服务器上的主要问题,如磁盘输入/输出。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 RU RU体系结构体系结构 服务器主要是执行一些底层的操作,如封锁、页面读写,而由客户机完成查询优化和查询处理,客户机执行了DBMS的部分功能。 在查询处理过程中,客户机

374、向服务器申请它所需要的数据,在网络上传输的是页面。 客户机分担了更多的处理任务,数据仍集中在服务器中。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 EWS EWS体系结构体系结构 每个客户机通过对查询结果进行缓存来建立其局部DB,且在客户机上都有一个功能完整的DBMS,它与服务器上的DBMS相互协作来完成DB访问。 该体系结构不仅有功能分布,还有数据分布,因而可避免客户机向服务器再申请相同的数据,从而减少网络传输和服务器的数据输入/输出。 但在这种数据分布环境下,数据更新要通过复杂的协议来保证数据的一致性。26 七月 2024数据库原理与应用第7章 C/S数据库及

375、WEB数据库内容三种体系结构的三种体系结构的DBMSDBMS性能结论:性能结论: RU体系结构的DBMS在一个主要是查询操作的应用环境中性能比CS结构好得多。 EWS体系结构的DBMS比RU结构好一个数量级以上。在EWS结构中由于有数据的分布,所以处理要复杂得多。 从处理上看,C/S结构最简单。 目前大量采用的是第一种方案的功能划分,即CS结构。 在这种体系结构中,DB产品可分为:服务器产品、开发工具产品、连接产品。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容2. C/S C/S结构的结构的DBSDBS实现技术实现技术 开放的数据库访问接口开放的数据库访问接口 存

376、储过程存储过程 分布数据管理分布数据管理26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 开放的数据库访问接口开放的数据库访问接口 在一个包括多个服务器和大量用户的企业C/S结构DBS中,来自不同厂商的客户机软件以及用户开发的客户机应用要访问不同服务器中的数据,这些数据可能存在于不同厂商的关系数据库、非关系数据库、文件系统或其他的系统中。 要对这些数据进行透明的访问需要开放的访问接口。 ODBC ODBC JDBC JDBC26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 ODBC ODBC 是一种用于访问DB的统一界面标准,由Microso

377、ft公司于1991年底宣布,在短短几年之间,被DB界广泛接受,己成为事实上的工业标准。 实际上它是一个DB访问函数库,使应用程序可以直接操纵DB中的数据。 ODBC是基于SQL语言的,是一种在SQL和应用界面之间的标准接口,它解决了嵌入式SQL接口非规范核心,免除了应用软件随DB的改变而改变的麻烦。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 JDBC JDBC 是Java应用对DB访问的API标准。 JDBC保证JDBCAPI可在其他通用SQL级的API(包括ODBC)之上实现。这意味着所有支持ODBC的DB不加任何修改就能够与JDBC协同工作。 在C/S结构

378、的DBS中,ODBC和JDBC标准使得不同的数据源可以提供统一的数据访问界面。 客户机应用通过ODBC接口可以实现对于不同数据源的访问。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 存储过程存储过程 是用SQL语句和DB编程语言编写的,用于完成一定的数据访问功能或一定的服务过程,预先进行编译和优化后,存储在服务器中,客户机程序可以通过远程调用的模式调用它们。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容采用存储过程技术的好处采用存储过程技术的好处 高性能高性能 共享性共享性 简化应用开发过程,提高应用开发效率简化应用开发过程,提高应用

379、开发效率 简化安全性控制简化安全性控制26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 高性能高性能 由于存储过程是以编译和优化后的形式存储的,因此在被调用时可以直接运行,速度较快。而且,存储过程将完成一定功能的一组SQL语句存储在服务器中而不是存储在客户机上,这样,在网络上传输的只是一个远程过程调用和最终的执行结果,而不是一系列的SQL语句和它们的返回结果,从而大大减少了网络上的传输量,提高了系统的性能。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 共享性共享性 存储过程可以被多个用户共享地使用,而且使用时可存放在磁盘缓冲区内,即多个

380、用户可以使用同一个存储过程。 当某个存储过程已存在于磁盘缓冲区中时,别的用户可以直接使用之,而不必再从磁盘中输入。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 简化应用开发过程,提高应用开发效率简化应用开发过程,提高应用开发效率 存储过程把用户和应用程序与数据源、网络和存取路径细节隔离开,使得非专业人员对于DB服务器上的数据访问变得更加方便。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 简化安全性控制简化安全性控制 存储过程可简化对某些操作的权限。例如,可以把一组操作定义成一个存储过程,然后将调用存储过程的权限授给特定的用户。这样

381、,就不需要对每一条命令的执行都进行授权。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 分布数据管理分布数据管理 数据复制和分布数据复制和分布 两阶段提交两阶段提交26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 数据复制和分布数据复制和分布在包括多个DB服务器的C/S结构DBS中,应支持将某一服务器上的某些表中的数据复制和分布到其他远程DB服务器结点上,这样就可以引用复制的数据和本地表,在本地完成分布式查询操作,减少网络通信开销。当一个远程DB发生故障时,某些查询还可以通过本地复制表完成。26 七月 2024数据库原理与应用第7章 C/

382、S数据库及WEB数据库内容 两阶段提交两阶段提交 两阶段提交用来协调参与一个分布式事务的多个服务器的活动,以防止某个服务器出故障时产生数据不一致性。在一个分布式事务所涉及的多个服务器中,有一个作为协调者,其余的作为参与者。服务器之间必须能够相互通信。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容第一阶段:第一阶段: 协调者询问各个参与者能否提交该事务,并等待它们的回答。若有的参与者给出否定的回答,或由于网络系统故障协调者得不到回答,则做出撤消该事务的决定。若收到所有参与者的肯定答复,则做出提交该事务的决定。第二阶段:第二阶段: 各参与者根据收到协调者所做的决定进行

383、事务的提交或回滚,并向协调者做出答复。 协调者在收到所有应答后,该事务结束。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容7.3 Web Web数据库与应用数据库与应用 7.3.1 Web Web数据库的分类数据库的分类 7.3.2 Web Web数据库技术要点数据库技术要点 7.3.3 Web Web数据库应用的构成及一般结构数据库应用的构成及一般结构 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容7.3.1 Web Web数据库的分类数据库的分类1 1. . 以以WebWeb为库使为库使DBMSDBMS与与WebWeb直接接轨直接接

384、轨 2 2. . 用浏览器访问网上数据库用浏览器访问网上数据库 3 3. . 以以WebWeb资源充实本地数据仓库资源充实本地数据仓库 4 4. Web Market. Web Market在在WebWeb上销售数据上销售数据26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容1. 以以WebWeb为库使为库使DBMSDBMS与与WebWeb直接接直接接轨轨厂商:厂商:扩展了DBMS的数据类型,凡在Web上有的数据类型都作为DBMS的内部数据类型。Web页面、HTML、URL、图形图像都存储在同一个集成式DB中。处理Web数据的机制(如HTML和库中数据的互换、页面显示、

385、对Web用户广播DB中的数据等)都成为DBMS的内部功能。用户:用户:一个很理想的模式。在一台单机或一个局域网上安装这种方案的Web数据库系统,关闭它与外界的联系,就自成一个小的Web(即Internet),打开它与外界的联系,它将以整个Web为库。开发者:开发者:难度较大的方案。正在成长期的Web随时都有可能增加新的数据类型、新的信息格式,要想与Web同步成长,DBMS也许需要每月更新版本。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容2. 用浏览器访问网上用浏览器访问网上DBDB用浏览器界面存取Web现有的DB,其体系结构如下图所示。26 七月 2024数据库原

386、理与应用第7章 C/S数据库及WEB数据库内容典型代表:典型代表:以公共网关接口(CGI)及其改进产品FastCGIFastCGI作为中间件。Windows NT中具体体现为HTTPODBC.DLLHTTPODBC.DLL动态链接库。 CGI相关的体系结构如下图所示,其中IDC文件是用户的查询请求(SELECTFROMWHERE),HTX文件是用户为查询结果指定的HTML页面格式。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容优点:优点:易于实现,用户可以明用浏览器,暗用DB。用户在Web页面上交互式地填查询表,即可通过Web进行异地DB存取,并在浏览器上显示结果。

387、缺点:缺点: Web服务器将是一个瓶颈; 在Web服务器和DB服务器中加入中间件会影响C/S结构的性能,特别是当中间件为CGI时,每次访问都需要重新启动一个CGI程序实例,它以进程形式运行,占用资源较多,效率较低,且难于解决连续事务处理。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容3. 以以WebWeb资源充实本地数据仓库资源充实本地数据仓库 利用Web上的数据资源(Web上DB中的内容和非DB形式的网页)来充实本地的DB或数据仓库,以期获取指定专题下的统计性数据或趋势性知识(只从Web读,不向Web写)。 侧重点:侧重点:建立和更新指定专题下Web的资源地址;

388、 粗采Web资源矿藏; 筛选有价值的数据段; 文献索引库; 数据采掘加工; 数据仓库维护。 “从外界读”的任务大多通过第三方软件实现(如CGI或DB厂商的Web接口)。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容4. Web Market Web Market在在WebWeb上销售数据上销售数据信息商:信息商:专门从事收集和出售信息。改用DB存储和出售信息,信息销售方式改“拉拉”(用户自己用“大海捞针”的方式去积零为整),为“推推”(根据用户需求将数据打包装箱,送货上门)。 研究工作包含:研究工作包含: 用户分析。根据用户信息DB,用数据采掘技术找出用户职业、年龄

389、、性别等与信息需求的联系,以便推销。 推销工具的研制。例如微软的IE4.0中的订购功能。 把DB组织成用户喜欢的易于销售的形式。 计费。 捎带广告。在用户喜欢的记录中捎带化妆品、饮料广告,用户对链点的单击次数被累加作为收取广告费的依据等等。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容7.3.2 Web数据库技术要点数据库技术要点WebWeb数据库技术:数据库技术:用Web浏览器界面来存取DB内容。( (以以CGICGI为例为例) ) 用户从浏览器上交互式地提出查询要求,并指定结果输出页面格式(或采用默认的页面格式); 浏览器根据Method的值为“POST”,把

390、Action指定的IDC文件名送到Web服务器,继而再将其内容送到中间件(CGI); 中间件解析出IDC文件的核心语句后,将其转成SQL语句再送到DB服务器; DB服务器执行查询,将结果返回中间件; 中间件根据Test_OutFormat.htx指定格式把结果转为HTML后,送到Web服务器; 再将结果送回浏览器,显示结果。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容7.3.3 Web Web数据库应用的构成及一数据库应用的构成及一般结构般结构1. Web Web应用的构成应用的构成 2. Web Web数据库应用的一般结构数据库应用的一般结构 3. Web W

391、eb网的数据库访问网的数据库访问 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容1. Web Web应用的构成应用的构成 Web Web服务器服务器 服务器组件服务器组件 以服务器为中心的体系结构以服务器为中心的体系结构 “瘦瘦”客户机客户机26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 Web Web服务器服务器 Web服务器是Web环境中的主角,过去主要用于存储及管理公众的网站。现在,它正成为一种独立的应用系统开发及安装环境,用于管理和控制其中的网站及组件,并有一些服务器已从Web服务器中独立开来,主要承担运行应用系统而不是公众网站的

392、任务,这类服务器被称为应用服务器。 变化的着眼点在于把复杂的“胖胖”PC客户机环境改造成为“瘦瘦”客户机,而把复杂的应用程序移到Web服务器上。并且,Web服务器必须有能力在任何时间内同时面向众多的使用者。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容WebWeb服务器产品:服务器产品: IIS IIS NES NES Java Web Server Java Web Server26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 IIS IISIIS通过围绕Windows NT所做的优化使其具有很高的执行效率、出色的安全保密性。易于管理以及

393、启动迅捷等特点。它既可用于集成现有的应用方式,也可用于实施Web应用系统。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 NES NES NES NES的主要功能有:的主要功能有: 带有客户机授权的SSL、Verity的集成式检索器、SNMP、出色的DB联接功能及Web网站内容管理等,以能在众多的不同平台上运行为特长; 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 Java Web Server Java Web Server Java Web Server是由Sun Javasoft公司推出的。 由于它使用Java语言写成,故应用程序

394、不用任何修改就可以从初级的服务器平台移到功能强大的服务器平台,Java Web Server以纯Java服务器组件为特色,真正实现了所谓“在一处设计编写,在任何地方运行”的目标。 与CGI批处理命令,诸如Netscape的NSAPI、微软的ISAPI不同的是,Java Web Server与平台完全无关。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 服务器组件服务器组件 是一种可重复调用的软件块,它把维护及操作某一类信息的程序集中在一起独立成块。应用系统通过预先定义好的界面来调用执行组件。 基于Web的应用系统特征之一是与其他任何第三方软件产品完全互通性。 对象管

395、理小组(OMG)在80年代提出了基于对象的结构,即公共对象请求代理结构(简称CORBA),微软则在最近推出了DCOM/Active X技术。两者都试图解决分布式应用组件的问题。 CORBA在不同语言及OS平台互通方面处于领先地位,微软的Active X只能在Windows NT上运行(市场占有率相当可观 )。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 以服务器为中心的体系结构以服务器为中心的体系结构 以服务器为中心的体系结构对DB服务器提出了新的需求。 随着应用逻辑从客户机中移出,DB服务器必须分担一部分复杂的应用逻辑服务功能。 同时,由于“瘦”客户机方便易学,

396、吸引了更多的用户使用,因而促使DB服务器必须能支持更多的用户数及流通量。 为了适应这种新的需求,产生了对象-关系型数DB。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 “瘦瘦”客户机客户机 利用普遍适用的“瘦”客户机存取位于任何地方的数据信息,这是Web应用系统的一个基本出发点。 关键技术之一是浏览器,它使应用开发者得以与遍布全球的数以百万计的网站相联接。它是一把钥匙,能帮助用户十分方便地打开Web之门。当今最流行的浏览器是Netscape的Navigator和微软的IE。 随着用户对Web应用系统使用界面的要求越来越高,应用开发者正在利用更好的开发工具及环境,诸

397、如面向对象的编程方式以及可重复调用的组件等,来开发可执行的浏览器内容。 流行的开发策略是尽量保留和利用现有的组件,以加快开发速度、降低开发成本。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 在开发Web应用系统时,固定成型的浏览器很难满足多种多样的应用背景需求。硬件制造商需要较为轻便的浏览器,以便安装在“瘦”客户机上,如网络计算机(NC)、便携式数据处理器(PDAS)、带显示屏的电话等。 另一方面,应用软件开发者希望把具有特殊功能的浏览器与应用系统结合成一体。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 目前流行的浏览器并不具备满

398、足上述要求的灵活性。因此,有公司开发出了可由用户自行调整的浏览器,如Sun Javasoft的HotBrowser,它提供了各种可以调整重构浏览器的功能,以适用于不同的客户机硬件,从简单的网络计算机到高档的PC。 同时,通过修改某预定义文件,应用开发者可以方便地改变浏览器的用户界面,如加入自己的菜单、图形化命令等。 目前,浏览器的基本运行硬件环境是PC。但它将很快在许多新的“瘦”客户机装置上运行,例如网络计算机、电视、有线电视转换器以及数字卫星电视等。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 两层结构会出现的问题两层结构会出现的问题 多层应用软件结构多层应用软

399、件结构 2. Web Web数据库应用的一般结构数据库应用的一般结构26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 两层结构会出现的问题两层结构会出现的问题 Web技术是Internet/Intranet上使用最广泛的应用,它为用户提供了一个标准的界面即Web浏览器。目前,Internet/Intranet环境下的应用软件发展方向是以Web浏览器作为标准界面,使用Java等技术进行复杂的实时事务处理。 在Intemet/Intranet环境下,应用中的程序是流动的,这是它与传统C/S结构应用软件的一个重要区别及重要进步。客户机上只需安装一个标准的Web浏览器,其他的

400、应用程序都存储在Web服务器上,需要时才下载。这样,系统中的客户机成为了一个真正的“瘦客户机”。 若在Internet/Intranet环境下将应用软件构建成两层结构,因Internet/ Intranet环境下特有的通信速度和安全性等原因,系统会出现一些问题。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 系统速度下降,可靠性降低系统速度下降,可靠性降低 由于在Internet/Intranet环境下,系统通信信道的质量参差不齐,速度快慢不一,总体来说比单独的局域网信道差得多,因此要求系统间的通信量应尽可能按照两层结构来构建应用软件,所有的应用都集中在客户机上,

401、那么必然导致客户机程序庞大,通过网络下载的Java Applet程序字节数较多,系统速度下降,可靠性降低。如果系统需要访问DB,则客户机还必须下载一个较大的JDBC驱动程序。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 系统的灵活性下降系统的灵活性下降沙箱:沙箱:有着固定边界的保护域实例。保护域:保护域:是一种在保护单元间起着分组和隔离作用的便利机制。 由于Java技术中采用了“沙箱”安全模型,例如,可以将保护域分开以避免它们之间的直接交互作用,于是,任何允许的交互作用必须通过可信系统代码或被有关的域所明确允许,所以Java Applet程序只能与源宿主机即向W

402、eb浏览器传送这个Java Applet程序的机器上的程序通信,通过JDBC访问位于源宿主机上的DBS,这使得系统的灵活性大大下降,很难满足实际的大型应用的要求。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 多层应用软件结构多层应用软件结构系统第一层:系统第一层: 由从Web服务器下载运行在Web浏览器上的Java Applet程序组成,用于处理用户界面。系统系统第二层:第二层: 由一个应用服务器组成,用于处理应用逻辑。系统系统第三层:第三层: 由DB软件组成。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容采用三层结构体系的系统主要优

403、点:采用三层结构体系的系统主要优点: Java Applet程序相对较为简单,程序量小,便于在网络上快速传递; Java Applet程序与网关程序之间只传送请求信息和响应信息,通过网络传送的信息量小; 所有的DB操作都由与DB服务器位于同一主机或同一局域网环境主机上的应用服务程序完成,速度快,可靠性高; 应用服务程序访问DB不存在安全性限制,它可以访问网络上任意主机上的DB,只要它拥有相应的权限即可。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 CGI CGI技术技术 WebAPI WebAPI技术技术 JDBC JDBC技术技术 CORBA CORBA技术技术

404、3. Web Web网的数据库访问网的数据库访问26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 CGI CGI技术技术 CGI主要依靠网关技术把用户通过浏览器对DB的访问协议即超文本传输协议(HTTP)转换成对DB访问的协议。工作步骤如下: 客户机通过浏览器用HTTP以表单向Web服务器发出请求; Web服务器接收客户机对CGI的请求,设置环境变量或命令行参数,用一个子进程启动CGI,把客户机的请求传给CGI程序; CGI应用程序向DBMS(服务器)发出请求,DB执行相应的查询操作; DB服务器把服务请求返回给CGI程序; CGI把DB服务器查询结果返回给Web服务

405、器; Web服务器用HTTP协议将查询结果送客户机浏览器显示。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 WebAPI WebAPI技术技术 WebAPI是Web应用编程接口英文缩写。较著名的WebAPI包括Microsoft公司的ISAPIISAPI、Netscape公司的NSAPINSAPI。以ISAPI为例说明该技术的工作原理。WebAPIWebAPI的工作步骤如下:的工作步骤如下: 客户机上用户以Form格式请求DB操作,并把该请求由浏览器送至服务器; 装载HTTPODBC.DLL动态链接库的Web服务器(IIS),接收URL并读取名为*.IDC的文件;

406、 HTTPODBC.DLL读取*IDC脚本文件,从中获取用户名、HTML模板文件名及申请DBMS的SQL语句; 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 HTTPODBC.DLL连接至ODBC数据库源,执行*.IDC文件中的SQL命令; HTTPODBC.DLL获得查询结果,按*.HTX模板格式合并成HTML页; HTTPODBC.DLL发送己格式化的HTML页至Web服务器(IIS); Web服务器将查询结果返回到客户机浏览器。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容ISAPIISAPI与与CGICGI的最大区别:的最大区

407、别: ISAPI建立的应用程序是以动态链接库(DLL)的形式存在;CGI的应用程序一般都是可执行程序。 ISAPI的工作流程与CGI有一些不同:两者虽都可被用户请求激活,但CGI不能被系统先激活来监视用户输入,且在一个用户离开后就消失;ISAPI在处理一个用户后,继续留在内存中,等待处理别的用户输入,直到没有用户请求为止。 WebAPI比CGI运行速度快,效率高。WebAPIWebAPI的缺点:的缺点:平台兼容性和交互性较差。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 JDBC JDBC技术技术JDBC是JavaSoft公司开发的、作为Java语言的DB访问AP

408、I技术。JDBCJDBC的体系结构分成三层:的体系结构分成三层:Java应用、JDBC管理、驱动。JDBCJDBC实现和实现和DBDB连接的主要方式有:连接的主要方式有:采用JDBC和ODBC桥驱动和采用直接JDBC驱动连接。以直接以直接JDBCJDBC驱动方式为例来说明其工作过程:驱动方式为例来说明其工作过程:客户机首先访问Web服务器,从Java浏览器下载Java Applet和JDBC接口类的字节程序;Applet通过JDBCAPI调用JDBC驱动程序;JDBC驱动程序访问数据库,并将结果返回Applet。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 由于J

409、ava语言能在Java虚拟机上执行,所以JDBC能跨越不同的系统平台,它一次编译后,可以多次在不同系统上执行,它是未来的主要工具之一。 但是,JDBC开销大,速度慢,因为JDBC中所有的应用程序、驱动程序都直接从服务器上下载,所以需要一定的网络传输开销。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容 CORBA CORBA技术技术 是OMG于1991年发布的,任务是构造分布式对象如何实现互操作,使基于对象的软件部分在分布异构环境下可重用、移植和互操作。 CORBA是企业管理异构计算机系统较有前途的技术。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB

410、数据库内容CORBACORBA的模型可分为:的模型可分为:对象请求代理(ORB)软件总线,其作为对象互相通信的介质,可使对象在分布环境中透明地收发请求和响应,它是分布环境互操作的基础;对象服务,用于定义加入ORB的系统服务,它们是基本服务的集合,其中包括名字服务、事件服务;公共设施,是为许多服务用户提供的共享服务集合,如Internet/Intranet服务访问设施、RDB访问设施等;应用对象,用于定义现实世界的对象和实现这些对象的数据用户程序组件,如邮电通信管理、油田管理等。 26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容小小 结结DBSDBS的两个发展方向:的两

411、个发展方向: “分布计算”概念突破了集中式DBS的框架,数据分布使系统走上分布式数据库的道路,功能分布使系统走上C/S结构的道路。C/SC/S结构的系统:结构的系统: 包括一个计算机网络(局域网)。客户机(微机);服务器(小型机、大型机、微机或高档微机)。应用程序在客户机上处理,DBMS和OS的数据管理分放在服务器上。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容C/SC/S结构演变过程:结构演变过程:两层、三层到多层。总趋势客户机越来越“瘦”,变成浏览器;服务器的种类越来越多,容易实现系统的组装。C/S结构的系统使应用与用户更加贴近,为用户提供较好的性能和更复杂的

412、界面。C/SC/S结构的系统有一系列管理问题:结构的系统有一系列管理问题:并行处理、并发控制、完整性、安全性、恢复等。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容C/SC/S数据库的分类:数据库的分类:完全分布式、完全C/S、有限C/S与专用C/S。C/SC/S数据库优点与缺点;数据库优点与缺点;C/SC/S数据库的硬件与软件平台。数据库的硬件与软件平台。C/S DBMSC/S DBMS依据功能划分:依据功能划分:CS结构、RU结构和EWS结构。实现实现C/SDBMSC/SDBMS的技术:的技术:如ODBC与JDBC、存储管理和数据分布管理。 Internet的高速发展对DBS提出了新的挑战,要求系统具有处理并发能力,高可靠性和支持HTML、XML等。26 七月 2024数据库原理与应用第7章 C/S数据库及WEB数据库内容WebWeb数据库系统由四个要素构成:数据库系统由四个要素构成: Web服务器、服务器组件、DB服务器与浏览器。WebWeb网和网和DBDB连接技术:连接技术: CGI技术、WebAPI技术、JDBC技术、CORBA技术。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号