《数据库系统原理教程.ppt》由会员分享,可在线阅读,更多相关《数据库系统原理教程.ppt(51页珍藏版)》请在金锄头文库上搜索。
1、教材教材: 王珊、陈红,王珊、陈红,数据库系统原理教程数据库系统原理教程,清华大学出版社,清华大学出版社,1998参考书籍参考书籍:萨师煊萨师煊、王珊,、王珊,数据库系统概论(第三版)数据库系统概论(第三版),高,高等教育出版社,等教育出版社,2000C.J.Date(孟小峰等译),(孟小峰等译),数据库系统导论数据库系统导论,机械,机械工业出版社,工业出版社,2000数据库系统原理1课程讲授的内容课程讲授的内容 第一章 绪论 1.1引言 1.2数据模型 1.3 数据库系统结构第二章 关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系数据库管理
2、系统 第三章 关系数据库标准语言SQL 3.1SQL的数据定义 3.2SQL的查询语句 3.3SQL的更新语句 3.4SQL的视图第四章第四章 关系数据库设计理论关系数据库设计理论 4.1数据依赖 4.2范式(1NF,2NF,3NF,BCNF) 4.3关系模式的规范化第五章第五章 数据库设计数据库设计 5.1数据库设计的步骤 5.2需求分析 5.3概念结构设计 5.4逻辑结构设计 5.5数据库物理设计2 1.1引言引言1.2数据模型数据模型1.3数据库系统结构数据库系统结构第第 1章章 绪论绪论3v数据库是数据管理的最新技术,是计算机科学的重数据库是数据管理的最新技术,是计算机科学的重要分支要
3、分支v数据库技术在信息化社会中的重要作用数据库技术在信息化社会中的重要作用 q信息系统的核心和基础技术q日益广泛的应用 例如:管理信息系统(MIS)、联机事务处理(OLTP)、联机分析处理(OLAP)、计算机辅助设计与制造(CADCAM)、计算机集成制造系统(CIMS)、办公信息系统(OIS)、地理信息系统(GIS).and Internet!数据库技术的重要地位数据库技术的重要地位41.1引言引言1.1.1数据、数据库、数据库管理系统、数据库系统数据、数据库、数据库管理系统、数据库系统q 数据数据(Data): 描述事物的符号记录。描述事物的符号记录。数据与其语义是不可分的。q 数据库数据库
4、(DataBase,DB) 长期储存在计算机内的、有组织的、可共享的数据集合长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。5qq数据库管理系统数据库管理系统数据库管理系统数据库管理系统(DataBaseManagementSystem(DataBaseManagementSystem,DBMS)DBMS)位于用户与操作系统之间的一层数据管理软件。主要功能位于用户与操作系统之间的一层数据管理软件。主要功能包括以下几个方面:包括以下几个方面:1.1.数据定义功能:数据定义功能:数据
5、定义语言(Data Definition Language,DDL)2.数据操纵功能数据操纵功能: : 数据操纵语言(Data Manipulation Language,DML)3.数据库的运行管理数据库的运行管理: : 统一管理、统控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。4.数据库的建立和维护功能:数据库的建立和维护功能:数据库初始数据的输入、转换功能,重组织、性能监视、分析功能等6qq数据库系统数据库系统数据库系统数据库系统(DataBaseSystem(DataBaseSystem,DBS)DBS)指在计算机系统中引入数据库后的系统,指在计算机系
6、统中引入数据库后的系统,一般由数据库、一般由数据库、数据库管理系统数据库管理系统( (及其开发工具及其开发工具) )、应用系统、数据库管理、应用系统、数据库管理员和用户构成。员和用户构成。数据库管理员(DataBase Administrator,DBA) 7应用系统应用系统DB用户用户应用开发工具应用开发工具DBMSOS用户用户用户用户DBA图图1 1 数据库系统数据库系统(DBS)图图2 数据库在计算机系统中的地位数据库在计算机系统中的地位81.1.2 数据管理技术的产生和发展数据管理技术的产生和发展v数据库技术是应数据管理任务的需要而产生的。数据库技术是应数据管理任务的需要而产生的。数据
7、的处理数据的处理是指对各种数据进行收集、存储、加工和传播的一系列活动的总和。数据管理数据管理则是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。v数据管理技术经历了数据管理技术经历了人工管理人工管理、文件系统文件系统、数据库系数据库系统统三个阶段。三个阶段。9q人工管理阶段人工管理阶段(20世纪50年代中期以前)特点:特点:(1)数据不保存数据不保存(2)应用程序管理数据应用程序管理数据 数据需要由应用程序自己管理,没有相应的软件系统负责数据的管理工作。应用程序中不仅要规定数据的逻辑结构,而且要设计物理结构,包括存储结构、存取方法、输入方式等。因此程序员负相很重。(3)
8、数据不共享数据不共享 数据是面向应用的,一组数据只能对应一个程序。(4)数据不具有独立性数据不具有独立性 数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改。10应用程序1数据集1应用程序2数据集2应用程序n数据集n图1-3 人工管理阶段应用程序与数据之间的对应关系11q文件系统阶段文件系统阶段(50年代后期60年代中期)特点:特点:(1)数据可长期保存数据可长期保存(2)由文件系统管理数据由文件系统管理数据 相互独立的数据文件; “按文件名访问,按记录进行存取”的管理技术;记录内的结构性而整体无结构;存取方法转换使应用程序与数据之间有了一定的独立性;数据在存储上的改变不一定反映在
9、程序上。(3)数据共享性差数据共享性差,冗余度大冗余度大 文件仍然是面向应用的;数据的冗余度大;数据的修改和维护困难(4)数据独立性差数据独立性差 不容易扩充;数据与程序之间仍缺乏独立性;是一个无弹性的无结构的数据集合。12应用程序1文件1应用程序2文件2应用程序n文件n图1-4 文件系统阶段应用程序与数据之间的对应关系存取方法13q数据库系统阶段数据库系统阶段(60年代 )特点:特点:(1)数据结构化数据结构化数据结构化是数据库与文件系统的根本区别。n文件系统中,尽管其记录内部已有了某些结构,但记录之间没有联系。数据的最小存取单位是记录。n 数据库系统实现整体数据的结构化,描述数据时不仅要描
10、述数据本身,还要描述数据之间的联系。数据不再针对其一应用,是面向全组织,具有整体的结构化。数据的最小存取单位是数据项。14学生记录格式示例学生记录格式示例主记录详细记录格式示例主记录详细记录格式示例(a)15主记录详细记录格式示例主记录详细记录格式示例(b)面向组织面向组织(多个应用)的学生数据组织多个应用)的学生数据组织16(2)数据的共享性高,冗余度低,易扩充数据的共享性高,冗余度低,易扩充 面向整个系统的数据库系统中的数据可以被多个用户、多个应用共享使用。共享导致数据冗余度低,同时可避免数据之间的不相容性与不一致性。容易增加新的应用,这就使得数据库系统弹性大,易于扩充。(3)数据独立性高
11、数据独立性高n 物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。也就是说,数据在磁盘上的数据库中怎样存储是由DBMS管理的、用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。n逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不变。 数据独立性是由数据独立性是由DBMSDBMS的的二级映象功能二级映象功能来保证的。来保证的。17(4)数据由数据由DBMS统一管理和控制统一管理和控制n 数据库的共享是并发的(Concurrency) 。n DBMS还必须提供的数据控制
12、功能: (1)数据的安全性(Security) (2)数据的完整性(Integrity) 正确性、有效性和相容性 (3)并发(Concurrency)控制 (4)数据库恢复(Recovery)18应用程序1应用程序2图图1-5数据库管理阶段程序与数据的对应关系数据库管理阶段程序与数据的对应关系 DBMS 数据库数据库19表表1-11-1数据管理三个阶段的比较数据管理三个阶段的比较数据库系统的出现使信息系统从以加工数据的数据库系统的出现使信息系统从以加工数据的程序程序为中心为中心转向围绕共享的转向围绕共享的数据库为中心数据库为中心的新阶段。的新阶段。201.1.3 数据库技术的研究领域数据库技术
13、的研究领域1.数据库管理系统软件的研制数据库管理系统软件的研制2.数据库设计数据库设计3.数据库理论数据库理论21数据收集和数据库创建数据收集和数据库创建(20世纪世纪60年代和更早)年代和更早)原始文件处理原始文件处理数据库管理系统数据库管理系统 (70年代)年代)层次和网状数据库系统层次和网状数据库系统关系数据库系统关系数据库系统数据建模工具:数据建模工具:E-RE-R模型等模型等索引和数据组织技术:索引和数据组织技术:B+B+树,树,HashHash等等查询语言查询语言:SQL:SQL等等用户界面:表单、报告等用户界面:表单、报告等查询处理和查询优化查询处理和查询优化事务管理:恢复和并发
14、控制等事务管理:恢复和并发控制等联机事务处理联机事务处理(OLTP)OLTP)数数据据库库技技术术的的演演化化22数据仓库和数据挖掘数据仓库和数据挖掘( 8080年代后期现在)年代后期现在)数据仓库和数据仓库和OLAPOLAP技术技术数据挖掘和知识发现数据挖掘和知识发现高级数据库系统高级数据库系统 (80年代中期现在)年代中期现在)高级数据模型:高级数据模型: 扩充关系、面向对象、 对象关系、演绎面向应用:面向应用: 空间的、时间的、多媒体的、 主动的、科学的、知识库基于基于Web的数据库系统的数据库系统(9090年代现在)年代现在)基于基于XMLXML的数据库系统的数据库系统 WebWeb挖
15、掘挖掘新一代综合信息系统新一代综合信息系统( 2000)23新一代数据库系统及其相互关系新一代数据库系统及其相互关系241.2数据模型数据模型(DataModel)数据库技术的发展是沿着数据库技术的发展是沿着数据模型数据模型的主线展开的。的主线展开的。数据模型是现实世界数据特征的抽象。数据模型是现实世界数据特征的抽象。数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。数据模型应满足三方面要求:一是能比较真实地模拟现实世数据模型应满足三方面要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。界;二是容易为人所理解;
16、三是便于在计算机上实现。25根据应用的不同目的,数据模型划分为两类:根据应用的不同目的,数据模型划分为两类:v概念模型(信息模型)概念模型(信息模型)按用户的观点来对数据和信息建模;主要用于数据库设计。v数据模型数据模型按计算机系统的观点对数据建模;主要包括网状模型、层次模型、关系模型等,主要用于DBMS的实现。 26现实世界 信息世界信息世界概念模型概念模型机器世界机器世界DBMS支持的数据模型支持的数据模型转换转换认识认识 抽象抽象图图图图1-101-10对象的抽象过程对象的抽象过程对象的抽象过程对象的抽象过程271.2.1数据模型的三个要素数据模型的三个要素1. 数据结构数据结构是所研究
17、的对象类型的集合。是所研究的对象类型的集合。与数据类型、内容、性质有关的对象(例如网状模型中的数据项、记录,关系模型中的域、属性、关系等)。 与数据之间联系有关的对象(例如网状模型中的系型)。数据结构是对系统数据结构是对系统静态特性静态特性的描述。数据结构是刻画一个数据的描述。数据结构是刻画一个数据模型性质最重要的方面。模型性质最重要的方面。28 2.数据操作数据操作 是指对数据库中各种对象是指对数据库中各种对象( (型型) )的实例的实例( (值值) )允许允许执行的操作的集合,包括操作及有关的操作规则执行的操作的集合,包括操作及有关的操作规则。数据库主要有检索和更新(包括插入、删除、修改)
18、两大类操作。数据操作是对系统动态特性的描述3.数据的约束条件数据的约束条件 是一组完整性规则的集合。是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。291.2.2概念模型概念模型v概念模型是概念模型是现实世界现实世界到到机器世界机器世界的一个的一个中间层次中间层次v概念模型用于信息世界的建模概念模型用于信息世界的建模q应该具有较强的语义表达能力应该具有较强的语义表达能力q应该简单、清晰、易于用户理解。应该简单、清晰、易于用户理解。301. 信息世界中的基本概念信息世界中的基本概
19、念(1)实体实体(Entity)客观存在并可相互区别的事物称为实体。客观存在并可相互区别的事物称为实体。(2)属性属性(Attribute)实体所具有的某一特性称为属性。一个实体可以由实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如:若干个属性来刻画。例如: (94002268(94002268,张山,男,张山,男,19761976,计算机系,计算机系,1994)1994)(3)码码(Key)唯一标识实体的属性集称为码。唯一标识实体的属性集称为码。31(4)域域(Domain)属性的取值范围称为该属性的域。属性的取值范围称为该属性的域。例如,学号的域为例如,学号的域为8 8位
20、整数,姓名的域为字符串集合,年龄的域为位整数,姓名的域为字符串集合,年龄的域为小于小于3838的整数,性别的域为的整数,性别的域为( (男,女男,女) )。(5)实体型实体型(EntityType)用实体名及其属性集合来抽象和刻画同类实体,称用实体名及其属性集合来抽象和刻画同类实体,称为实体型。为实体型。学生学生( (学号,姓名,出生年份,系,入学时间学号,姓名,出生年份,系,入学时间) )(6)实体集实体集(EntitySet)同型实体的集合称为实体集。同型实体的集合称为实体集。32(7)联系联系(Relationship)在现实世界中,事物内部以及事物之间是有联系的,在现实世界中,事物内部
21、以及事物之间是有联系的,这些联系在信息世界中反映为这些联系在信息世界中反映为实体实体(型型)内部的联系内部的联系和和实实体体(型型)之间的联系之间的联系。实体内部的联系通常是指组成实体。实体内部的联系通常是指组成实体的各属性之间的联系。实体之间的联系通常是指不同实的各属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。体集之间的联系。两个实体型之间的联系可以分为三类:两个实体型之间的联系可以分为三类:一对一联系一对一联系(1:1),如,如“班级班长班级班长”一对多联系一对多联系(1:n),如,如“班级学生班级学生”多对多联系多对多联系(m:n),如,如“课程学生课程学生”33实体型A实
22、体型B实体型B实体型A实体型A实体型B联系名联系名联系名两个实体型之间的三类联系两个实体型之间的三类联系11mnn11:1联系 1:n联系 m:n联系34 多个实体型之间的联系也可以分为三类:多个实体型之间的联系也可以分为三类:一对一联系一对一联系(1:1)一对多联系一对多联系(1:n)若实体集E1,E2,En存在联系,对于实体集Ej(j=1,2,i-1,i+1,n)中的给定实体,最多只和Ei中的一个实体相联系,则说Ei与E1,E2,Ei-1,Ei+1,En之间的联系是一对多的。多对多联系多对多联系(m:n)例如:例如:“供应商、项目和零件供应商、项目和零件”35v 同一个实体集内的各实体之间
23、也可以存在一对一、一同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。对多、多对多的联系。职工职工领导领导1n36 2.概念模型的表示方法概念模型的表示方法 实体联系方法(Entity-Relationship approach) 由P.P.SChen于于1976年提出年提出 实体型 矩形 属性 椭圆形 联系 菱形 37工厂物资管理工厂物资管理E-RE-R图图381.2.2数据模型数据模型数据库领域中最常用的数据模型有四种数据库领域中最常用的数据模型有四种q层次模型层次模型(HierarchicalModel),如如IBM的的IMS系系统统q网状模型网状模型(NetworkMo
24、del),如如DBTG系统系统q关系模型关系模型(RelationalModel),如,如Oracle,Sybaseq面向对象模型面向对象模型(ObjectOrientedModel)391.3数据库系统结构数据库系统结构v数据库系统结构的两种考察角度数据库系统结构的两种考察角度 从数据库管理系统角度看,数据库系统通常采用三级模式结构,这是数据库管理系统内部的系统结构。从数据库最终用户角度看,数据库系统的结构分为集中式结构(又可有单用户结构、主从式结构)、分布式结构、客户服务器结构和并行结构。这是数据库系统外部的体系结构。401.3.1数据库系统模式的概念数据库系统模式的概念v “型型”(Ty
25、pe)和和“值值”(Value) 型型是指一类数据的结构和属性的说明,是指一类数据的结构和属性的说明,值值是型的一个具是型的一个具体赋值。体赋值。 例:记录型 (学号,姓名,性别,系别,年龄,籍贯) 记录值 (90020l ,李明,男,计算机,22,江苏) 41v模式(schema):是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及到型的描述,不涉及到具体的值。v模式的一个具体值称为模式的一个实例(instance)。 同一个模式可以有很多实例;模式是相对稳定的,而实例是相对变动的;模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。v不同的DBMS在体系结构上通常都具有相
26、同的特征,即采用三级模式结构三级模式结构并提供两级映象功能。421.3.2数据库系统的三级模式结构数据库系统的三级模式结构1)模式(模式(Schema) 也称也称逻辑模式逻辑模式,是数据库中,是数据库中全体全体数据的逻辑结构和特数据的逻辑结构和特征的描述,是所有用户的征的描述,是所有用户的公共公共数据视图数据视图。它是数据库系统模式结构的中间层模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一个模式。数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。模式定义包括数据的逻辑结构定义、数据之间的联系定义以及安全性、完整性要求的定义。 DB
27、MS提供模式定义语言模式定义语言(模式模式DDL)来严格地定义模式。432)外模式(外模式(ExternalSchema) 也称也称子模式子模式(Subshema)或或用户模式用户模式,它是数据库用户,它是数据库用户( (包包括应用程序员和最终用户括应用程序员和最终用户) )能够看见和使用的能够看见和使用的局部局部数据的数据的逻辑结构和特征的描述,逻辑结构和特征的描述, 是数据库用户的数据视图,是是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。与某一应用有关的数据的逻辑表示。外模式通常是模式的子集。一个数据库可以有多个外模式。 外模式是保证数据库安全性的一个有力措施。 DBMS提供子
28、模式定义语言(子模式DDL)来严格地定义子模式。443)内模式(内模式(InternalSchema)也称也称存储模式存储模式(Storageschema),一个数据库只有,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。数据在数据库内部的表示方式。 例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定等。DBMS提供提供内模式描述语言内模式描述语言(内模式内模式DDL,或者存储,或者存储模式模式DDL)来严格
29、地定义内模式。来严格地定义内模式。45应用A应用B应用C应用C外模式2外模式1外模式3模式内模式DB123外模式外模式/ /模式映象模式映象模式模式/ /内模式映象内模式映象图图1-24数据库系统的模式结构数据库系统的模式结构461.3.2数据库系统的二级映象功能与数据独立性数据库系统的二级映象功能与数据独立性三级模式之间的二级映象:三级模式之间的二级映象:1.外模式外模式/模式映象模式映象 对于对于每一个每一个外模式,数据库系统都有一个外模式外模式,数据库系统都有一个外模式/ /模式映模式映象,它定义了该外模式与模式之间的对应关系象,它定义了该外模式与模式之间的对应关系( (这些映象定这些映
30、象定义通常包含在各自外模式的描述中义通常包含在各自外模式的描述中) )。 当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),DBA对各个外模式模式的映象作相应改变,可以使外模式保持不变。 数据的逻辑独立性47 2.模式模式/内模式映象内模式映象存在一个唯一的模式内模式映象,它定义了数据库全局存在一个唯一的模式内模式映象,它定义了数据库全局逻辑结构与存储结构之间的对应关系(该映象定义通常包含逻辑结构与存储结构之间的对应关系(该映象定义通常包含在模式描述中)。在模式描述中)。例如,说明逻辑记录和字段在内部是如何表示的。 当数据库的存储结构改变了(例如选用了另一种存储结构),由DBA
31、对模式内模式映象作相应改变,可以使模式保持不变。 数据的物理独立性48模式模式是数据库的中心与关键,它独立于数据库的其他层次。是数据库的中心与关键,它独立于数据库的其他层次。设计数据库模式结构时应首先确定数据库的模式。设计数据库模式结构时应首先确定数据库的模式。内模式内模式依赖于它的全局逻辑结构,但独立于数据库的用户依赖于它的全局逻辑结构,但独立于数据库的用户视图即外模式,也独立于具体的存储设备。视图即外模式,也独立于具体的存储设备。外模式外模式面向具体的应用程序,它定义在模式之上,但独立面向具体的应用程序,它定义在模式之上,但独立于存储模式和存储设备。设计外模式时应充分考虑到应用于存储模式和
32、存储设备。设计外模式时应充分考虑到应用的扩充性。的扩充性。1.3.3小结小结49优点:优点:v数据库的二级映象保证了数据库数据库的二级映象保证了数据库外模式的稳定性外模式的稳定性,从而从,从而从底层保证了底层保证了应用程序的稳定性应用程序的稳定性。v数据和程序之间的数据和程序之间的独立性独立性使得数据的定义和描述可以从应使得数据的定义和描述可以从应用程序中用程序中分离分离出去。另外,由于数据的存取由出去。另外,由于数据的存取由DBMS管理,管理,用户不必考虑存取路径等细节,从而简化了应用程序的编用户不必考虑存取路径等细节,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。制,大大减少了应用程序的维护和修改。50n作业作业:习题9 (教材 page 36)作作业业1351