1、1王珊王珊 萨师煊,萨师煊, 数据库系统概论(第五版)数据库系统概论(第五版) 高等教育出版社高等教育出版社王珊王珊数据库系统简明教程数据库系统简明教程 高等教育出版社高等教育出版社 王亚平王亚平 数据库系统工程师教程数据库系统工程师教程 清华大学出版社清华大学出版社2课程时间安排课程时间安排n理论课:理论课:16周周 ,共,共32学时学时n实验课:共八次,每次一个题目,实验课:共八次,每次一个题目, n考核办法考核办法n 闭卷笔试闭卷笔试3教教学学内内容容基本理论基本理论应用技术应用技术结构化查询语言结构化查询语言SQLSQL(第(第3 3章)章)安全性与完整性(第安全性与完整性(第4 4、
2、5 5章)章)数据库设计(第数据库设计(第7 7章)章) 数据库设计编程、事务管理等数据库设计编程、事务管理等(第(第8 8、9 9、1010章)章)数据库系统概论(第数据库系统概论(第1 1章)章)关系数据库(第关系数据库(第2 2章)章)关系数据库理论(第关系数据库理论(第6 6章)章)4 1.1 数据库系统概述数据库系统概述 1.2 数据模型数据模型 1.3 数据库系统结构数据库系统结构 1.4 数据库系统的组成数据库系统的组成5v数据库是数据管理的最新技术,是计算数据库是数据管理的最新技术,是计算机科学的重要分支机科学的重要分支v数据库技术在信息化社会中的重要作用数据库技术在信息化社会
3、中的重要作用 q信息系统的核心和基础技术q日益广泛的应用 例如:管理信息系统(MIS)、联机事务处理(OLTP)、联机分析处理(OLAP)、计算机辅助设计与制造(CADCAM)、计算机集成制造系统(CIMS)、办公信息系统(OIS)、地理信息系统(GIS).and Internet !61.1.1 数据、数据库、数据库管理系统、数据、数据库、数据库管理系统、数据库系统数据库系统q 数据数据(Data):定义定义描述事物的符号记录种类种类文字、图形、图象、音频、视频特点特点数据的表现形式不能完全表达其内容,与其语义不可分7q 数据数据(Data):例:学生档案中的学生记录(李明,(李明,1972
4、年年5月,江苏,计算机系,月,江苏,计算机系,1990)如果对应语义:学生姓名、出生年月、籍贯、所在系别、 入学时间 则解释为:学生李明,1972年5月出生,是江苏人, 1990年考入计算机系 如果对应语义:学生姓名、毕业年月、工作地点、所在 系别、电子建档日期 则解释为:学生李明,1972年5月毕业于计算机系,现 在江苏工作,1990年建立电子学籍档案8q数据库数据库(DataBase,DB)定义 长期储存在计算机内、有组织的、可共享的 大量数据集合特征数据按一定的数据模型组织、描述和储存可为各种用户共享 冗余度较小数据独立性较高 易扩展9q 数据库管理系统数据库管理系统(DataBase
5、Management System,DBMS) 位于用户与操作系统之间的一层数据管理软件,位于用户与操作系统之间的一层数据管理软件,用于科学组织和存储数据,高效获取和维护数据。用于科学组织和存储数据,高效获取和维护数据。主要功能主要功能1.1.数据定义功能数据定义功能 2.2.数据组织、存储和管理数据组织、存储和管理3.3.数据操纵功能数据操纵功能 4.4.数据库的事物管理和运行管理数据库的事物管理和运行管理5.5.数据库的建立和维护功能数据库的建立和维护功能 6 6 其他功能其他功能10q 数据库管理系统数据库管理系统(DBMS)1.1.数据定义功能:数据定义功能:提供数据定义语言(Data
6、 Definition language)来定义数据对象。2.2.数据组织、存储和管理:数据组织、存储和管理:能分类组织、存储和管理这种数据。确定文件结构、存取方式、数据关系。3.3.数据操纵功能:数据操纵功能:提供数据操纵语言(Data Manipulation language)实现用户对数据操作,如对数据的增、删、改和查询。11q 数据库管理系统数据库管理系统(DBMS)4.4.数据库的事务管理和运行管理:数据库的事务管理和运行管理:数据库在建立、运用和维护时统一由DBMS控制和管理。数据的安全性保护:保护数据,防止泄密和破坏;用户只能按照规定,对某些数据以某些方式进行使用和处理数据的完
7、整性检查:检查数据的正确性、有效性和相容性。将数据控制在有效的范围内,保证数据之间满足一定的关系。并发控制:对多用户的并发操作加以控制和协调数据库恢复:具有将数据库从错误状态恢复到某一已知正确状态的功能。12q 数据库管理系统数据库管理系统(DBMS)5.5.数据库的建立和维护功能:数据库的建立和维护功能:数据库原始数据的输入、转换功能数据库的转储、恢复功能数据库的重组织和性能监视、分析功能13q 数据库管理系统数据库管理系统(DBMS)6.6.其他功能其他功能DBMS与网络中其他软件系统的通信功能一个DBMS与另一个DBMS或文件系统的数据转换功能异构数据库之间的互访和互操作功能14q 数据
8、库系统数据库系统(DataBase System, DBS) 定义:在计算机系统中引入数据库后的系统定义:在计算机系统中引入数据库后的系统 组成:数据库组成:数据库 DBMS( DBMS(以及应用开发工具以及应用开发工具) ) 应用系统应用系统 数据库管理员(数据库管理员(DBADBA)15应用系统应用系统DB用户用户应用开发工具应用开发工具DBMSOS用户用户用户用户DBA图图1 1 数据库系统数据库系统(DBS)图图2 数据库在计算机系统中数据库在计算机系统中的地位的地位16v数据库技术是应数据管理任务的需要而产生数据库技术是应数据管理任务的需要而产生的。的。数据处理数据处理是指对各种数据
9、进行收集、存储、加工和传播的一系列活动的总和。数据管理数据管理则是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。v数据管理技术经历了数据管理技术经历了人工管理人工管理、文件系统文件系统、数据库系统数据库系统三个阶段。三个阶段。17q 人工管理阶段人工管理阶段(20世纪50年代中期以前)背景:背景:应用需求:科学计算硬件水平:无直接存取存储设备软件水平:没有操作系统和管理数据的专门软件处理方式:批处理18q 人工管理阶段人工管理阶段(20世纪50年代中期以前)特点:特点: 1)数据不保存数据不保存 2)应用程序管理数据应用程序管理数据 数据需要由应用程序自己管理,没有相
10、应的软件系统负责数据的管理工作。应用程序中不仅要规定数据的逻辑结构,而且要设计物理结构,包括存储结构、存取方法、输入方式等。因此程序员负担很重。 3)数据不共享数据不共享 数据是面向应用的,一组数据只能对应一个程序。 4)数据不具有独立性数据不具有独立性 数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改。19应用程序1数据集1应用程序2数据集2应用程序n数据集n人工管理阶段应用程序与数据之间的对应关系人工管理阶段应用程序与数据之间的对应关系20q文件系统阶段文件系统阶段(50年代后期年代后期60年代中期)年代中期)背景:背景:应用需求科学计算、管理硬件水平磁盘、磁鼓软件水平有文件
11、系统处理方式联机实时处理、批处理21q 文件系统阶段文件系统阶段(50年代后期60年代中期)特点:特点: (1)数据可长期保存数据可长期保存 (2)由文件系统管理数据由文件系统管理数据 按文件名访问,按记录进行存取 ,实现记录内的结构性而整体无结构。 (3)数据共享性差数据共享性差,冗余度大冗余度大 文件仍然是面向应用的。当不同的应用程序具有部分相同的数据时,也必须建立各自的文件,不能共享相同的数据。 (4)数据独立性差数据独立性差 一旦数据的逻辑结构改变,必须修改应用程序,修改文件结构定义;应用程序的改变,也要引起文件数据结构的改变;文件之间互相独立,不能反映出现实世界的内在联系。22应用程
12、序1文件1应用程序2文件2应用程序n文件n文件系统阶段应用程序与数据之间的对应关系存取方法23q数据库系统阶段数据库系统阶段(20世纪世纪60年代后期年代后期 )背景:背景:应用背景 大规模管理硬件背景 大容量磁盘软件背景 有数据库管理系统处理方式 联机实时处理、分布处理、批处理24q数据库系统阶段数据库系统阶段(20世纪60年代后期 )特点:特点: 1)数据结构化数据结构化 数据结构化是数据库与文件系统的根本区别。n 文件系统中,尽管其记录内部已有了某些结构,但记录之间没有联系。数据的最小存取单位是记录。n 数据库系统实现整体数据的结构化,描述数据时不仅要描述数据本身,还要描述数据之间的联系
13、。数据不再针对其一应用,是面向全组织,具有整体的结构化。数据的最小存取单位是数据项。25学生、课程、学生选课文件结构(关系数据库中的参照完整性;文件系统只能编写应用程序代码实现)26q数据库系统阶段数据库系统阶段(20世纪60年代后期 ) 不仅考虑某个应用的数据结构,还要考虑整个组织的数据结构。因此描述数据时不仅仅描述数据本身,还要描述数据之间的联系。27(2)数据的共享性高,冗余度低,易扩充数据的共享性高,冗余度低,易扩充 数据可以被多个用户、多个应用共享使用。共享导致数据冗余度低,同时可避免数据之间的不相容性与不一致性。通过重新选择不同的操作子集,易于增加新的应用。(3)数据独立性高数据独
14、立性高物理独立性物理独立性指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。逻辑独立性逻辑独立性指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。28应用程序1应用程序2数据库管理阶段程序与数据的对应关系数据库管理阶段程序与数据的对应关系 DBMS 数据库数据库(4)数据由数据由DBMS统一管理和控制统一管理和控制数据的安全性保护 / 数据的完整性检查并发控制 / 数据库恢复 291.2 数据模型数据模型在数据库中如何抽象、在数据库中如何抽象、表示、处理现实世界中表示、处理现实世界中的数据和信息呢?的数据
15、和信息呢?数据模型(数据模型(Data Model)这个工具来对现实世界进行)这个工具来对现实世界进行抽象的。抽象的。301.2 数据模型数据模型模型模型 是现实世界特征的模拟和抽象。数据模型数据模型也是一种模型,是现实世界数据特征 的抽象,表示实体以及实体间的联系。一个用于描述数据、数据间关系、数据 语义和数据约束的概念工具的集合。数据模型应满足三方面要求:数据模型应满足三方面要求:能比较真实地模拟现实世界;容易为人所理解;便于在计算机上实现。 31根据应用的不同目的,数据模型划分为两类:根据应用的不同目的,数据模型划分为两类:v 概念模型(信息模型)概念模型(信息模型) 按用户的观点用户的
16、观点来对数据和信息建模;主要用于数据库设计。v 数据模型(逻辑模型和物理模型)数据模型(逻辑模型和物理模型) 按计算机系统的观点计算机系统的观点对数据建模;逻辑模型逻辑模型主要包括网状模型、层次模型、关系模型等,用于DBMS的实现。物理模型物理模型是描述数据在系统内部的表示方式和存取方法,由DBMS来具体实现。 1.2.1 两类数据模型两类数据模型32现实世界 信息世界信息世界 概念模型概念模型机器世界机器世界 DBMS支持的数据模型支持的数据模型转换转换认识认识 抽象抽象客观对象的抽象过程客观对象的抽象过程现实世界现实世界 概念模型:概念模型: 数据库设计人员概念模型概念模型 逻辑模型逻辑模
17、型 数据库设计人员 &数据库设计工具逻辑模型逻辑模型 物理模型物理模型 DBMS33由数据结构、数据操作和完整性约束三部分组成由数据结构、数据操作和完整性约束三部分组成q 数据结构数据结构 是所研究的对象类型的集合。是所研究的对象类型的集合。 与数据类型、内容、性质有关的对象(例如网状模型中的数据项、记录,关系模型中的域、属性、关系等)。 与数据之间联系有关的对象(例如网状模型中的系型)。 数据结构是对系统静态特性的描述。数据结构是对系统静态特性的描述。 1.2.2 数据模型的组成要素数据模型的组成要素34q数据操作数据操作 是指对数据库中各种对象是指对数据库中各种对象( (型型) )的实例的
18、实例( (值值) )允许允许执行的操作的集合,包括操作及有关的操作规则执行的操作的集合,包括操作及有关的操作规则。数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操作的含义、符号、规则(如优先级)以及实现操作的语言。数据操作是对系统动态特性的描述数据操作是对系统动态特性的描述q数据的约束条件数据的约束条件 是一组完整性规则的集合。是一组完整性规则的集合。 完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容(详见第五章)。35 概念模型是概念模型是现实世界现实世界到到机器世界机
19、器世界的一个中的一个中间层次间层次v 概念模型用于信息世界的建模概念模型用于信息世界的建模q应该具有较强的语义表达能力应该具有较强的语义表达能力q应该简单、清晰、易于用户理解。应该简单、清晰、易于用户理解。 1.2.3 概念模型概念模型1.2 数据模型数据模型36q 信息世界中的基本概念信息世界中的基本概念 (1)实体实体(Entity) 客观存在并可相互区别的事物称为实体。客观存在并可相互区别的事物称为实体。 (2)属性属性(Attribute) 实体所具有的某一特性称为属性。一个实体可以由实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如:若干个属性来刻画。例如: (940
20、02268(94002268,张山,男,张山,男,19761976,计算机系,计算机系,1994)1994) (3)码码(Key) 唯一标识实体的属性集称为码(学号、订单号等)。唯一标识实体的属性集称为码(学号、订单号等)。 1.2.3 概念模型概念模型37 (4)域域(Domain) 属性的取值范围称为该属性的域。属性的取值范围称为该属性的域。 例如,学号的域为例如,学号的域为8 8位整数,姓名的域为字符串集合,性别的域为位整数,姓名的域为字符串集合,性别的域为( (男,女男,女) )。 (5)实体型实体型(EntityType) 用实体名及其属性集合来抽象和刻画同类实体,称为实体型。用实体
21、名及其属性集合来抽象和刻画同类实体,称为实体型。 学生学生( (学号,姓名,出生年份,系,入学时间学号,姓名,出生年份,系,入学时间) ) (6)实体集实体集(Entity Set) 同型实体的集合称为实体集。同型实体的集合称为实体集。1.2.3 概念模型概念模型38(7)联系联系(Relationship) 在现实世界中,事物内部以及事物之间是有联系的,在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体这些联系在信息世界中反映为实体(型型)内部的联系和实内部的联系和实体体(型型)之间的联系。之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系。实体内部的联系
22、通常是指组成实体的各属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。实体之间的联系通常是指不同实体集之间的联系。 1.2.3 概念模型概念模型39q实体联系模型(实体联系模型(-模型)表示方法模型)表示方法-模型的三要素:实体、属性、实体间的联系 1.2.3 概念模型概念模型表示属性表示属性表示实体间联系表示实体间联系表示实体表示实体40q实体联系模型(实体联系模型(-模型)表示方法模型)表示方法实体型之间的联系实体型之间的联系:一对一联系(:)、一对多联系(:N)、 多对多联系(:) 1.2.3 概念模型概念模型班长班长任职任职班级班级1141实体联系模型(实体联系模型(-模型)
23、表示方法模型)表示方法1.2.3 概念模型概念模型1:n班级班级学习学习学生学生1n学生学生选修选修课程课程nmn: m42 1.2.3 概念模型概念模型实体联系模型(实体联系模型(-模型)表示方法模型)表示方法职工领导1n课程课程讲授讲授教师教师1m多个实体型间的多个实体型间的1:n联系联系参考书参考书n单个实体型间的单个实体型间的1:n联系联系 例: 假设一个学生可选多门课程,而一门课程又有多个学生选修,每个学生每选一门课只有一个成绩, 一个教师只能讲一门课程,一门课程也可有多个教师讲授,一门课使用多本参考书。画出ER图。431.2.3 概念模型概念模型实体联系模型(实体联系模型(-模型)
24、表示方法模型)表示方法教师课程学生参考书讲授选修课程号学号姓名性别民族成绩课程名学分职工号姓名职称性别书号书名价格摘要1nmnm使用1教学教学E-R图图 (另:(另:P219工厂物资管理实例)工厂物资管理实例)44数据库领域中最常用的数据模型有四种数据库领域中最常用的数据模型有四种q 层次模型层次模型(Hierarchical Model),如如 IBM的的IMS系统系统q 网状模型网状模型(Network Model),如如DBTG系统系统q 关系模型关系模型(Relational Model),如,如Oracle,Sybaseq 面向对象模型面向对象模型(Object Oriented M
25、odel)1.2.4 最常用的数据模型最常用的数据模型45q层次模型定义层次模型定义 满足下面两个条件的基本层次联系的集合为层次模型。1. 有且只有一个结点没有双亲结点,该结点称为根结点2. 根以外的其它结点有且只有一个双亲结点。1.2.5 层次模型(树型结构)层次模型(树型结构)46q表示方法表示方法实体型:用记录类型描述。 每个结点表示一个记录类型。属性:用字段描述。每个记录类型可包含若干个字段。联系:用结点之间的连线表示记录(类型)之间的一对 多的联系1.2.5 层次模型层次模型47q特点特点l 结点的双亲是唯一的l 只能直接处理一对多的实体联系l 每个记录类型定义一个排序字段,也称为码
26、字段l 任何记录值只有按其路径查看时,才能显出它的全部意义l 没有一个子女记录值能够脱离双亲记录值而独立存在1.2.5 层次模型层次模型48q多对多联系在层次模型中的表示多对多联系在层次模型中的表示 用层次模型间接表示多对多联系,将多对多联系分解成一对多联系。分解方法:分解方法: 冗余结点法 虚拟结点法1.2.5 层次模型层次模型49冗余结点法:冗余结点法:增设冗余结点,将多对多联系转换为两个一对多联系优点:结构清晰,允许结点改变存储位置缺点:需要额外占用存储空间,有潜在的不一致性50虚拟结点法:虚拟结点法:将冗余结点换成虚拟结点,虚拟结点为一个指针,指向替代的节点。优点:减少对存储空间的浪费
27、,避免产生潜在的不一致性缺点:结点改变存储位置可能引起虚拟结点中指针的修改51q层次模型的数据操纵与完整性约束层次模型的数据操纵与完整性约束数据操纵数据操纵:查询、插入、删除、更新完整性约束完整性约束: 无相应的双亲结点值就不能插入子女结点值 如果删除双亲结点值,则相应的子女结点值也被同时删除1.2.5 层次模型层次模型52q层次数据模型的存储结构(邻接法和链接法)层次数据模型的存储结构(邻接法和链接法)邻接法:邻接法:按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序。1.2.5 层次模型层次模型53q层次数据模型的存储结构(邻接法和链接法)层次数据模型
28、的存储结构(邻接法和链接法)链接法:用指针反映数据之间的层次关系链接法:用指针反映数据之间的层次关系。1.2.5 层次模型层次模型每个记录设两个指针,每个记录设两个指针,分别指向最左边的子女分别指向最左边的子女和最近的兄弟和最近的兄弟54q层次数据模型的存储结构(邻接法和链接法)层次数据模型的存储结构(邻接法和链接法) 链接法:用指针反映数据之间的层次关系链接法:用指针反映数据之间的层次关系。按树的前序遍历顺序链接按树的前序遍历顺序链接各记录值各记录值55q层次模型的优缺点层次模型的优缺点优点:优点:l数据结构简单明晰l数据库查询效率高l良好的完整性支持缺点:l多对多联系表示不自然l对插入和删
29、除操作的限制多l查询子女结点必须通过双亲结点l层次命令趋于程序化1.2.5 层次模型层次模型56q典型的层次数据库系统典型的层次数据库系统IMS数据库管理系统l第一个大型商用DBMSl1968年推出lIBM公司研制1.2.5 层次模型层次模型57q定义定义 满足下面两个条件的基本层次联系的集合为网状模型。1. 允许一个以上的结点无双亲;2. 一个结点可以有多于一个的双亲。 层次模型中子女结点和双亲结点的联系是唯一的,而网状模型中这种联系则不唯一。因此要为每个联系命名,指出与该联系有关的双亲记录和子女记录。1.2.6 网状模型网状模型58q网状模型与层次模型的区别网状模型与层次模型的区别l网状模
30、型允许多个结点没有双亲结点l网状模型允许结点有多个双亲结点l网状模型允许两个结点之间有多种联系(复合联系)l网状模型可以更直接地去描述现实世界l层次模型实际上是网状模型的一个特例59q多对多联系在网状模型中的表示多对多联系在网状模型中的表示 用网状模型间接表示多对多联系 方法方法:将多对多联系直接分解成一对多联系q网状数据模型的操纵和完整性约束网状数据模型的操纵和完整性约束 操纵操纵:查询、插入、删除、更新 完整性约束完整性约束:l支持记录码的概念(唯一标识、不许重复)l保证一个记录中双亲记录与子女记录之间是一对多联系l支持双亲记录和子女记录之间某些约束条件,比如允许插入尚未确定双亲结点值的子
31、女结点值;允许只删除双亲结点值等。1.2.6 网状模型网状模型60q网状数据模型的存储结构网状数据模型的存储结构 关键:实现记录之间的联系 常用方法l单向链接l双向链接l环状链接l向首链接1.2.6 网状模型网状模型61单向链接法单向链接法62q网状模型的优缺点网状模型的优缺点优点:l能够更为直接地描述现实世界,如一个结点可以有多个双亲。l具有良好的性能,存取效率较高。缺点l结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。l数据定义语言(DDL)、数据操作语言(DML)复杂,用户不容易使用。1.2.6 网状模型网状模型63q典型的网状数据库系统典型的网状
32、数据库系统 DBTG系统,亦称CODASYL系统。由DBTG提出的一个系统方案,奠定了数据库系统的基本概念、方法和技术。70年代推出。实际系统lCullinet Software Inc.公司的 IDMSlUnivac公司的 DMS1100lHoneywell公司的IDS/2lHP公司的IMAGE1.2.6 网状模型网状模型64l最重要的一种数据模型。也是目前主要采用的最重要的一种数据模型。也是目前主要采用的数据模型数据模型l1970年由美国年由美国IBM公司公司San Jose研究室的研研究室的研究员究员E.F.Codd提出提出l本课程的重点本课程的重点1.2.7 关系模型关系模型65q关系
33、关系数据模型的数据结构(I) 在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。1.2.7 关系模型关系模型66q关系数据模型的数据结构(关系数据模型的数据结构(II)l关系(关系(Relation)一个关系对应通常说的一张表。l元组(元组(Tuple)表中的一行即为一个元组。l属性(属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名。1.2.7 关系模型关系模型67q关系数据模型的数据结构(关系数据模型的数据结构(III)l主码(主码(Key)表中的某个属性组,它可以唯一确定一个元组。l域(域(Domain)属性的取值范围。属性的取值范围。l分
34、量分量元组中的一个属性值。元组中的一个属性值。1.2.7 关系模型关系模型68q关系数据模型的数据结构(关系数据模型的数据结构(IV)l关系模式关系模式对关系的描述关系名(属性1,属性2,属性n)学生(学号,姓名,年龄,性别,系别,年级)69q实体及实体间联系的表示方法实体及实体间联系的表示方法l实体型:直接用关系(表)表示。l属性:用属性名表示。l一对一联系:隐含在实体对应的关系中。l一对多联系:隐含在实体对应的关系中。l多对多联系:直接用关系表示。1.2.7 关系模型关系模型70q实体及实体间联系的表示方法(例)实体及实体间联系的表示方法(例)例1:学生、系、系与学生之间的一对多联系: 学
35、生(学号,姓名,年龄,性别,系号,年级)学生(学号,姓名,年龄,性别,系号,年级) 系系 (系号,系名,办公地点系号,系名,办公地点)例2:系、系主任、系与系主任间的一对一联系: 系系 (系号,系名,系主任姓名系号,系名,系主任姓名)例3:学生、课程、学生与课程之间的多对多联系: 学生(学号,姓名,年龄,性别,系号,年级)学生(学号,姓名,年龄,性别,系号,年级) 课程(课程号,课程名,学分)课程(课程号,课程名,学分) 选修(学号,课程号,成绩)选修(学号,课程号,成绩)1.2.7 关系模型关系模型71q关系必须是规范化的,满足一定的规范条件关系必须是规范化的,满足一定的规范条件 最基本的规
36、范条件:关系的每一个分量必须最基本的规范条件:关系的每一个分量必须是一个不可分的数据项。是一个不可分的数据项。1.2.7 关系模型关系模型72q关系模型的数据操纵查询、插入、删除、更新数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”q关系模型的完整性约束实体完整性 / 参照完整性 / 用户定义的完整性(第5章)1.2.7 关系模型关系模型73q关系数据模型的存储结构 实体及实体间的联系都用表来表示。在关系数据库的物理组织中,有的DBMS一个表对应一个操作系统文件,有的DBMS从操作系统获得若干大的文件,自己设计表
37、、索引等存储结构。1.2.7 关系模型关系模型74q关系数据模型的优缺点优点:l建立在严格的数学概念的基础上l概念单一,数据结构简单、清晰,用户易懂易用。实体和各类联系都用关系来表示。实体和各类联系都用关系来表示。对数据的检索结果也是关系。对数据的检索结果也是关系。l关系模型的存取路径对用户透明具有更高的数据独立性,更好的安全保密性具有更高的数据独立性,更好的安全保密性简化了程序员的工作和数据库开发建立的工作简化了程序员的工作和数据库开发建立的工作1.2.7 关系模型关系模型75q关系数据模型的优缺点缺点:l存取路径对用户透明导致查询效率往往不如非关系数据模型。 为提高性能,必须对用户的查询请
38、求进行优化,增加了开发数据库管理系统的难度。(第9章)1.2.7 关系模型关系模型76q典型的关系数据库系统l ORACLEl SYBASEl INFORMIXl DB/2l COBASEl PBASEl EasyBasel DM/2l OpenBase1.2.7 关系模型关系模型77l数据库系统模式的概念l数据库系统的三级模式结构l数据库的二级映象功能与数据独立性 从数据库管理系统数据库管理系统角度看:数据库系统通常采用三级模式结构;从数据库最终用户数据库最终用户角度看:数据库系统的结构分为单用户结构、主从式结构、分布式结构、客户/服务器、浏览器/应用服务器/数据库服务器多层结构等。1.3
39、数据库系统结构数据库系统结构78q数据库系统 “型” 和“值” 的概念型型(Type)对某一类数据的结构和属性的说明值值(Value)是型的一个具体赋值例如:学生记录记录型:(学号,姓名,性别,系别,籍贯)记录值:(900201,李明,男,计算机,江苏)1.3.1 数据库系统模式的概念数据库系统模式的概念79 “ “型型” 和和“值值”的区别的区别模式(模式(SchemaSchema)l数据库逻辑结构和特征的描述l是型的描述l反映的是数据的结构及其联系l模式是相对稳定的模式的一个实例(模式的一个实例(InstanceInstance)l模式的一个具体值l反映数据库某一时刻的状态l同一个模式可以
40、有很多实例l实例随数据库中的数据的更新而变动1.3.1 数据库系统模式的概念数据库系统模式的概念80 数据库系统由外模式、模式和内模式三级构成1.3.2 数据库系统的三级模式结构数据库系统的三级模式结构81q模式(模式(SchemaSchema)模式(也称逻辑模式)模式(也称逻辑模式)数据库中全体数据的逻辑结构和特征的描述所有用户的公共数据视图,综合了所有用户的需求一个数据库只有一个模式一个数据库只有一个模式模式的地位:模式的地位:是数据库系统模式结构的中间层与数据的物理存储细节和硬件环境无关与具体的应用程序、开发工具及高级程序设计语言无关模式的定义:模式的定义:数据的逻辑结构(数据项的名字、
41、类型、取值范围等)数据之间的联系数据有关的安全性、完整性要求1.3.2 数据库系统的三级模式结构数据库系统的三级模式结构82q外模式(外模式(External SchemaExternal Schema)外模式(也称子模式或用户模式)外模式(也称子模式或用户模式)l 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述l 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示模式与外模式的关系:一对多模式与外模式的关系:一对多通常是模式的子集;一个数据库可以有多个外模式外模式与应用的关系:一对多外模式与应用的关系:一对多同一外模式可以为某一用户的多个应用系统所使用,但一个
42、应用程序只能使用一个外模式1.3.2 数据库系统的三级模式结构数据库系统的三级模式结构83q外模式(外模式(External SchemaExternal Schema)外模式是保证数据库安全性的一个有力措施外模式是保证数据库安全性的一个有力措施 每个用户只能看见和访问所对应的外模式中的数据q内模式(内模式(Internal SchemaInternal Schema)内模式(也称存储模式)内模式(也称存储模式)l是数据物理结构和存储方式的描述是数据物理结构和存储方式的描述l是数据在数据库内部的表示方式是数据在数据库内部的表示方式 记录的存储方式(顺序存储,按照记录的存储方式(顺序存储,按照B
43、 B树结构存储,按树结构存储,按hashhash方方法存储)法存储)/ / 索引的组织方式索引的组织方式 / / 数据是否压缩存储数据是否压缩存储 / / 数据是否数据是否加密加密 / / 数据存储记录结构的规定数据存储记录结构的规定一个数据库只有一个内模式一个数据库只有一个内模式1.3.2 数据库系统的三级模式结构数据库系统的三级模式结构84三级模式是对数据的三个抽象级别,二级映象在三级模式是对数据的三个抽象级别,二级映象在DBMSDBMS内部实现这三个抽象层次的联系和转换。内部实现这三个抽象层次的联系和转换。1.3.3 数据库的二级映像功能与数据独立性数据库的二级映像功能与数据独立性85q
44、外模式外模式/ /模式映像模式映像一个模式可以定义任意多个外模式一个模式可以定义任意多个外模式对每一个外模式,数据库系统都有一个外模式对每一个外模式,数据库系统都有一个外模式/ /模式映射,定模式映射,定义该外模式与模式之间的对应关系义该外模式与模式之间的对应关系映象定义通常包含在各自外模式的描述中映象定义通常包含在各自外模式的描述中保证数据的逻辑独立性保证数据的逻辑独立性l 当模式改变时,数据库管理员修改有关的外模式模式映象,使外模式保持不变l 应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。1.3.3 数据库的二级映像功能与数据独
45、立性数据库的二级映像功能与数据独立性86q模式模式/ /内模式映像内模式映像定义数据全局逻辑结构与存储结构之间的对应关系。例如,说定义数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的明逻辑记录和字段在内部是如何表示的数据库中模式内模式映象是唯一的数据库中模式内模式映象是唯一的该映象定义通常包含在模式描述中该映象定义通常包含在模式描述中保证数据的物理独立性保证数据的物理独立性l 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式内模式映象,使模式保持不变l 应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。1.3.3
46、 数据库的二级映像功能与数据独立性数据库的二级映像功能与数据独立性87应用A应用B应用C应用C外模式2外模式1外模式3模式内模式DB123外模式外模式/ /模式映象模式映象模式模式/ /内模式映象内模式映象图图1-24 数据库系统的模式结构数据库系统的模式结构88优点:优点:v数据库的二级映象保证了数据库外模式的稳定性,数据库的二级映象保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性。从而从底层保证了应用程序的稳定性。v数据和程序之间的独立性使得数据的定义和描述数据和程序之间的独立性使得数据的定义和描述可以从应用程序中分离出去。另外,由于数据的存可以从应用程序中分离出去。另外,由于
47、数据的存取由取由DBMS管理,用户不必考虑存取路径等细节,管理,用户不必考虑存取路径等细节,从而简化了应用程序的编制,大大减少了应用程序从而简化了应用程序的编制,大大减少了应用程序的维护和修改。的维护和修改。1.3.3 数据库的二级映像功能与数据独立性数据库的二级映像功能与数据独立性89 数据库系统一般由数据库、数据库管理系统(及数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统和数据库管理员组成。其开发工具)、应用系统和数据库管理员组成。数据库系统对硬件资源的要求数据库系统对硬件资源的要求足够大的内存,存放操作系统、足够大的内存,存放操作系统、DBMS的核心模的核心模块、数据缓
48、冲区和应用程序。块、数据缓冲区和应用程序。足够大的外存,存放数据库以及做数据备份足够大的外存,存放数据库以及做数据备份较高的通道能力,提高数据传送率较高的通道能力,提高数据传送率1.4 数据库系统的组成数据库系统的组成90软件软件主要包括:l DBMSl 操作系统l 与数据库接口的高级语言及其编译系统l 以DBMS为核心的应用开发工具l 为特定应用环境开发的数据库应用系统1.4 数据库系统的组成数据库系统的组成91人员人员q数据库管理员:数据库管理员: 决定数据库中的信息内容和结构 决定数据库的存储结构和存取策略 定义数据的安全性要求和完整性约束条件 监控数据库的使用和运行周期性转储数据库:数
49、据文件/日志文件系统故障恢复介质故障恢复监视审计文件 数据库的改进和重组重构性能监控和调优数据重组1.4 数据库系统的组成数据库系统的组成92人员人员q系统分析员系统分析员 负责应用系统的需求分析和规范说明 与用户及DBA协商,确定系统的硬软件配置 参与数据库系统的概要设计q数据库设计人员数据库设计人员 参加用户需求调查和系统分析 确定数据库中的数据 设计数据库各级模式1.4 数据库系统的组成数据库系统的组成93 人员人员q应用程序员应用程序员设计和编写应用系统的程序模块设计和编写应用系统的程序模块进行调试和安装进行调试和安装q用户用户偶然用户:企业或组织机构的高中级管理人员偶然用户:企业或组
50、织机构的高中级管理人员简单用户:银行的职员、机票预定人员、旅馆总台服务员简单用户:银行的职员、机票预定人员、旅馆总台服务员复杂用户:工程师、科学家、经济学家、科技工作者等;直复杂用户:工程师、科学家、经济学家、科技工作者等;直接使用数据库语言访问数据库,甚至能够基于数据库管理系接使用数据库语言访问数据库,甚至能够基于数据库管理系统的统的APIAPI编制自己的应用程序编制自己的应用程序1.4 数据库系统的组成数据库系统的组成94小结小结95小结小结96学校中有若干系,每个系有若干学校中有若干系,每个系有若干班级和教研室,每个教研室有若班级和教研室,每个教研室有若干教干教师(不兼职其他部门)师(不