《数据库技术课件.ppt》由会员分享,可在线阅读,更多相关《数据库技术课件.ppt(193页珍藏版)》请在三一办公上搜索。
1、中国科学技术大学网络学院 阚卫华,第一章 绪论,2023年3月13日星期一,2,一、教学目标及要求,数据库技术是计算机(及应用)专业的一门专业基础课。该课程是计算机软件学科的一个重要分支。它的主要任务是研究如何存储、使用和管理数据,有较强的理论性和实用性(主要体现在数据库系统的核心DBMS的内在结构和某些实现方法上)。学生学习数据库技术的基本目的:了解和掌握数据库系统的基本概念、体系结构和全局结构;掌握关系模型的关系运算理论、关系数据库SQL语言的使用技术;了解和掌握关系数据库的规范化理论和数据库设计的方法和应用技术,以便在掌握DBMS的内在结构后,能编写出较好的应用系统。,2023年3月13
2、日星期一,3,二、教学重点和难点,1.基本点:数据库系统的基本概念;2.重、难点:如何用规范化理论设计、优化关系模式;3.重点:数据库的设计(包括概念结构设计和逻辑结构设计部分)。,2023年3月13日星期一,4,三、教材及主要参考书,教材:数据库系统概论(第四版)王珊、萨师煊编著,高等教育出版社主要参考书:1.数据库系统原理 王能斌编著,电子工业出版社2.数据库系统教程 施伯乐、丁宝康等编著,高等教育出版社,2023年3月13日星期一,5,第一章 绪论,1.1数据库系统概述 数据库技术从20世纪60年代中期产生到今天,不过才几十年的发展历史。它的发展速度之快、使用范围之广,是其它技术所不能比
3、的。数据库系统已从第一代的网状、层次数据库系统,第二代的关系数据库系统,发展到第三代以面向对象模型为主要特征的数据库系统。,2023年3月13日星期一,6,数据库是数据管理的最新技术,是计算机科学的重要分支。今天,信息资源已经成为各个部门的重要资源和财富。信息技术的发展极大地推动了社会的进步和发展。作为信息技术主要支柱之一的数据库技术在各个领域中有着广泛的应用。数据库技术可以为各种用户提供及时的、准确的、相关的信息,从而满足不同的需要。因此,数据库技术课程是计算机科学与技术专业、信息管理专业重要课程。,2023年3月13日星期一,7,数据库技术的三个发展阶段,第一代数据库系统(通常指的是层次和
4、网状数据库系统),它们的代表是:(1)1968-1969年,IBM公司研制的层次模型的数据库管理系统IMS(Information Management System);(2)美国数据库系统语言协商会CODASYL(Conference On Data System Language)下属的数据库任务组DBTG(Data Task Group)对数据库方法进行了系统的研究、探讨,在20世纪60年代末70年代初提出了一些报告,称为DBTG报告。,2023年3月13日星期一,8,DBTG报告确定并建立了数据库系统很多概念、方法和技术。DBTG所提议的方法是基于网状结构的。它是数据库网状模型的典型代
5、表。可以这样说,层次型数据库是数据库系统的先驱者,而网状型数据库则是数据库概念、方法和技术的奠基者。它们都是数据库技术中研究得最早的两种数据库系统。,2023年3月13日星期一,9,它们的主要区分是以数据模型为基础,层次数据库的数据模型是分层结构的,网状型数据库的数据模型是网状的,它们的数据结构都可以用有向图来表示。层次数据模型对应于有根定向有序树,而网状模型对应的是有向图。所以,我们称这两种数据模型为格式化数据模型。,2023年3月13日星期一,10,上述两种数据库系统具有下列共同特点:1支持三级模式的体系结构三级模式通常指的是外模式、模式、内模式。模式之间具有转换(或称为映射)的功能。层次
6、型数据库和网状型数据库都支持三级模式的结构,通过外模式和模式、模式和内模式之间的映象,从而保证了数据库系统具有数据和程序的物理独立性和一定的逻辑独立性。,2023年3月13日星期一,11,2用存取路径来表示数据之间的联系 应该说,这个特点是数据库系统和文件系统的主要区别之一。数据库不仅存储数据,而且存储数据之间的联系。数据之间的联系在层次和网状数据库系统中是用存取路径来表示和实现的。3独立的数据定义语言 层次型数据库系统和网状型数据库系统有独立的数据定义语言,用来描述数据库的三级模式以及相互映象。这些模式一经定义后,则就很难修改了。,2023年3月13日星期一,12,如果要修改模式的话,首先必
7、须把数据全部卸出来,然后再重新定义那些模式,并重新生成它们,最后编写实用程序把已经卸出去的数据按新模式的定义装入到新数据库中。因此,在许多实际运行的层次型数据库系统和网状型数据库系统中,模式是不轻易去重构的。这就要求数据库设计人员在建立数据库应用系统时,不仅要充分考虑用户的当前需求,还要充分了解以后需求可能的变化和发展。这对数据库设计的要求比较高。,2023年3月13日星期一,13,4导航的数据操纵语言 所谓导航,就是指用户不仅要了解“要干什么”,而且要指出“怎么干”。用户必须使用某种高级语言去编写程序,一步一步地“引导”程序按照数据库中某一条预先定义的存取路径来访问数据库,最终达到访问数据的
8、目标。这里需要指出的是,在访问数据库时,每次只能存取一条记录值。(若该记录值不满足要求,就应沿着存取路径查找下一条记录值。),2023年3月13日星期一,14,第二代数据库系统:关系数据库系统 1970年IBM公司的E.F.Codd(科德)发表了题为“大型共享数据库数据的关系模型”论文,提出了数据库的关系模型,开创了数据库关系方法和关系数据理论的研究,为关系数据库技术奠定了理论基础。人们之所以把20世纪70年代称之为数据库时代,主要是由于数据库系统从实验室走向了社会,在技术上主要表现为:,2023年3月13日星期一,15,(1)奠定了数据库关系模型理论基础,给出了人们一致接受的关系模型的规范说
9、明;(关系模型由三部分组成:数据结构、关系操作和数据完整性;关系模型的主要特点:关系模型的概念单一,实体以及实体之间的联系都用关系来表示;,2023年3月13日星期一,16,以关系代数为基础,形式化基础好;数据独立性强,数据的物理存储和存取路径对用户屏蔽;关系数据库语言是非过程化的,把用户从编程数据库记录的导航式检索中解脱出来,大大降低了用户编程的难度)。,2023年3月13日星期一,17,(2)研究了关系数据语言,这些描述性的语言有关系代数、关系演算、SQL和QBE等。它们以其易学易懂的优点为最终用户所喜爱(这主要是改变了过去程序设计语言和网状、层次数据库系统中的语言风格),从而为20世纪8
10、0年代数据库语言标准化打下了基础。,2023年3月13日星期一,18,(3)研制了大量的RDBMS的原型,攻克了系统实现中的查询优化、并发控制、故障恢复等关键技术。不仅极大地丰富了DBMS实现技术和数据库关系模型理论,更为重要的是促进了RDBMS的发展和广泛应用。因此,20世纪80年开发的数据库系统大多为关系的,特别是微机RDBMS的使用,使得数据库技术日益广泛地应用到企业管理、情报检索、辅助决策等各个方面,成为实现和优化信息系统的基本技术。,2023年3月13日星期一,19,新一代数据库技术的研究和发展新一代数据库技术的研究和发展,导致了众多的不同于第一、第二代数据库的系统的诞生,构成了数据
11、库系统的大家族。新一代数据库技术的发展,呈现出百花齐放的局面,归纳起来,有如下特点:1面向对象的方法和技术对数据库发展的影响;2数据库技术与多学科技术的有机结合;,2023年3月13日星期一,20,3面向应用领域的数据库技术的研究(经过多年的研究和讨论,人们对第三代数据库系统的基本特征有了如下的认识:第三代数据库系统应该支持数据管理、对象管理和知识管理;第三代数据库系统必须保持或继承第二代数据库系统的技术;第三代数据库系统必须对其它系统开放)。,2023年3月13日星期一,21,1.1.1数据、数据库、数据库管理系统、数据库系统,一、数据(Data)数据:描述事物的符号记录称为数据。数据的概念
12、包括两个方面:1.数据内容是事物特性的反映或描述;2.数据是符号的集合。或者如通常所说的:数据是指用符号记录下来的、可加以鉴别的信息。“符号”是描述事物特性的数据形式,它不仅仅是指数字、字母、文字和其它特殊字符,而且还包括图形、图象、声音等多媒体数据;,2023年3月13日星期一,22,所谓“记录下来”也不仅是指印在纸上,而且包括记录在其它磁介质上、光介质上和半导体存储器里。数据的形式还不能完全表达其内容,需要经过解释。所以数据和关于数据的解释是不可分的,数据的解释是指对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的。需要指出的是:数据的概念在数据处理中比在科学领域中已经大大
13、地拓宽了。数据在空间上的传递称为通信,在时间上的传递称为存储。,2023年3月13日星期一,23,数据举例(见P4.李明的学生记录)学生档案中的学生记录:(李明,男,21,1972,江苏,计算机系,1990)数据的形式不能完全表达其内容;数据的解释:数据是有一定的格式的,例如,学生姓名栏允许4个汉字,性别栏为1个汉字或为逻辑真假值语义:学生姓名、性别、年龄、出生年月、出生地、所在系别、入学时间;解释:李明是个大学生,1972年出生,江苏省人,1990年考入计算机系。,2023年3月13日星期一,24,二、数据库(DataBase,简称DB),人们收集并抽取出一个应用所需要的大量数据之后,应将其
14、保存起来以供进一步加工处理,进一步抽取有用的信息。数据库的定义:数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合。(数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。),2023年3月13日星期一,25,数据库的特征:数据按一定的数据模型组织、描述和储存;可为各种用户共享;冗余度较小;数据独立性较高;易扩展。,2023年3月13日星期一,26,三、数据库管理系统,DBMS 的作用:科学地组织和存储数据、高效地获取和维护数据。什么是DBMS?数据库管理系统(DataBase Managemen
15、t System,简称DBMS)是位于用户与操作系统之间的一层数据管理软件。它的主要功能包括以下几个方面(DBMS的主要功能):,2023年3月13日星期一,27,1.数据定义功能:提供数据定义语言(DDL:Data Definition Language,简称DDL)定义数据库中的数据对象。2.数据操纵功能:提供数据操纵语言(DML:Data manipulation Language,简称DML)操纵数据,实现对数据库的基本操作(查询、插入、删除和修改等)。3数据库的运行管理:保证数据的安全性、完整性、多用户对数据的并发使用以及发生故障后的系统恢复。,2023年3月13日星期一,28,4.
16、数据库的建立和维护功能:它包括数据库初始数据的输入、转换功能,数据库的转储、介质故障恢复、数据库的重组织功能和性能监视、分析功能等(这些功能通常是由一些实用程序来完成的)。,2023年3月13日星期一,29,四、数据库系统,什么是数据库系统?数据库系统(Database System,简称DBS)是指在计算机系统中引入数据库后的系统构成。以教材P.5图1.1和1.2简单介绍数据库系统及其在整个计算机系统中的地位。,2023年3月13日星期一,30,数据库系统的构成:(参看教材P.5图1.1),2023年3月13日星期一,31,图1.1 数据库系统,返回,转下页,2023年3月13日星期一,32
17、,由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。数据库系统在计算机系统中的位置图示(参看教材P.5图1.2)此处见幻灯片下一页P32,继续1.1.2内容 P33,2023年3月13日星期一,33,返回,2023年3月13日星期一,34,1.1.2数据管理技术的产生和发展,什么是数据管理?数据管理是数据处理的中心问题,数据的处理是指对各种数据进行收集、存储、加工和传播的一系列活动的总和。而数据管理主要是指对数据进行分类、组织、编码、存储、检索和维护等,它是数据处理的中心问题。数据管理技术的发展过程:数据管理技术经历了人工管理、文件系统、数据库系统三个阶段。,20
18、23年3月13日星期一,35,人工管理阶段(20世纪40年代中20世纪50年代中)文件系统阶段(20世纪50年代末20世纪60年代中)数据库系统阶段(20世纪60年代末现在)数据管理技术的发展动力:1、应用需求的推动2、计算机技术的发展(包括计算机硬件技术和软件技术的发展),2023年3月13日星期一,36,一、人工管理阶段,时期:40年代中50年代中产生的背景:应用需求:科学计算 硬件水平:没有直接存取存储设备 软件状况:没有操作系统 处理方式:批处理,2023年3月13日星期一,37,20世纪50年代中期以前,计算机主要用于科学计算。当时的硬件状况是,外存只有纸带、卡片、磁带,没有磁盘等直
19、接存取的存储设备 外存储设备的发展状况:20世纪50年代中期以前外存只有纸带、卡片、磁带;1967年,IBM推出32英寸软盘,后又缩小为16英寸软盘;1973年,IBM推出温彻斯特技术(Wenchester)的温氏盘,1976年,i Com推出的8英寸软盘,售价为1200美元;,2023年3月13日星期一,38,1980年,希捷(Seagate Technologies)推出了5.25英寸温氏驱动盘,同年8月,日本的索尼(Sony)推出了3.5英寸的双面软盘,其容量为875KB;到了1983年,3.5英寸的软盘容量已达到1MB;1980年的温氏硬盘的容量为510MB;到了1983年,飞利浦和索
20、尼公司开发出了容量已达640 MB 650 MB的CDROM;软件状况是,没有操作系统,没有管理数据的软件;数据处理方式是批处理。,2023年3月13日星期一,39,人工管理数据具有如下特点:,数据的管理者:用户(程序员)。数据面向的对象:某一应用程序。数据的共享程度:无共享、冗余度极大。数据的独立性:完全依赖于程序(不独立)。数据的结构化:无结构。数据控制能力:应用程序自己控制。,2023年3月13日星期一,40,数据不(需要)保存。应用程序管理数据。应用程序不仅要规定数据的逻辑结构,而且要设计物理结构,包括存储结构、存取方法、输入方式等。数据不共享:一组数据只能对应一个程序。当多个应用程序
21、涉及某些相同的数据时,由于必须各自定义,无法互相利用、互相参照,因此程序与程序之间有大量的冗余数据。,2023年3月13日星期一,41,数据不具有独立性:数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改。程序与数据的对应关系如图1.3。此处见下一页幻灯片P41,继续课程P42,2023年3月13日星期一,42,图1.3人工管理阶段应用程序与数据之间的对应关系,返回,2023年3月13日星期一,43,二、文件系统阶段,20世纪50年代后期到60年代中期,这时硬件方面已有了磁盘、磁鼓等直接存取存储设备;软件方面,操作系统中已经有了专门的数据管理软件,一般称为文件系统;处理方式上不仅有
22、了批处理,而且能够联机实时处理。,2023年3月13日星期一,44,时期:20世纪50年代末20世纪60年代中 产生的背景:应用需求:科学计算、管理 硬件水平:磁盘、磁鼓 软件水平:有文件系统 处理方式:联机实时处理、批处理,2023年3月13日星期一,45,文件系统管理数据有如下特点:,数据的管理者:文件系统(可以长期保存)。文件系统把数据组织成相互独立的数据文件,可以对文件进行增删改的操作。数据面向的对象:某一应用(数据的逻辑结构改变必须修改应用程序)。数据的共享程度:共享性差、冗余度大。数据的独立性:独立性差。程序和数据之间由文件系统提供存取方法进行转换,使应用程序与数据之间有了一定的独
23、立性。但文件系统仍存在数据共享性差,冗余度大和数据独立性差的缺点。数据的结构化:记录内有结构,整体无结构。数据控制能力:应用程序自己控制。,2023年3月13日星期一,46,文件系统中,一个文件基本上对应一个应用程序,不同的应用程序具有部分相同的数据时,也必须建立各自的文件,而不能共享相同的数据,因此数据的冗余度大,浪费存储空间。容易造成数据的不一致性,给数据的修改和维护带来了困难。一旦数据的逻辑结构改变,必须修改应用程序,修改文件结构的定义。应用程序的改变,例如应用程序改用不同的高级语言等,也将引起文件的数据结构的改变。因此数据与程序之间仍缺乏独立性。程序与数据之间的关系如图1.4。Hdp
24、P.46,2023年3月13日星期一,47,图1.4 文件系统阶段应用程序与数据之间的对应关系,返回,转下页,2023年3月13日星期一,48,文件系统中数据的结构:数据的结构是靠程序定义和解释的。尽管记录内部已有了某些结构(整体无结构),但记录之间没有联系;虽然可以间接实现数据整体有结构化,但必须在应用程序中增加对数据间的联系的描述。数据的最小存取单位是记录;数据只能是定长的;虽然可以间接实现数据变长要求,但访问相应数据的应用程序变得复杂了。文件间是独立的,因此数据整体无结构。,2023年3月13日星期一,49,三、数据库系统阶段,20世纪60年代后期以来,计算机应用规模越来越大,数据量急剧
25、增长。这时硬件已有大容量硬盘,硬件价格下降;软件则价格上升,为编制和维护系统软件及应用程序所需的成本相对增加,在各个应用领域,如果一旦改变数据结构,则都要修改应用程序,代价无法计算;在处理方式上,联机实时处理要求更多,并开始提出和考虑分布处理。文件系统管理数据已经不能满足应用的需求,于是为了解决多用户、多应用共享数据的要求,使数据为尽可能多的应用服务,于是数据库技术便应运而生,出现了统一管理数据的专门软件系统:数据库管理系统。,2023年3月13日星期一,50,时期:20世纪60年代末以来 产生的背景(如上所述):应用背景:大规模管理硬件背景:大容量磁盘软件背景:有数据库管理系统处理方式:联机
26、实时处理;分布处理;批处理,2023年3月13日星期一,51,数据库系统的出现,使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,从而提高了数据的利用率和相容性,提高了决策的可靠性。,2023年3月13日星期一,52,1.1.3 数据库系统的特点,数据的管理者:DBMS数据面向的对象:现实世界数据的共享程度:共享性高,冗余度小。数据的独立性:高度的物理独立性和一定的逻辑独立性数据的结构化:整体结构化(用数据模型描述)数据控制能力:由DBMS统一管理和控制(提供数据安全性、完整性、并发控制和恢复能力),2023年3月13
27、日星期一,53,一、数据结构化,在文件系统中,相互独立的文件的记录内部是有结构的,但记录之间没有联系。数据库系统实现整体数据的结构化,是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。数据库中实现的是数据的真正结构化。数据的结构用数据模型来描述,不需要程序定义和解释。数据可以变长。数据的最小存取单位是数据项。,2023年3月13日星期一,54,(数据库系统实现整体数据的结构化,是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。在数据库系统中,数据不再针对某一应用,而是面向全组织,具有整体的结构化。不仅数据是结构化的,而且存取数据的方式也很灵活,可以存取数据库中的某一个数据项
28、、一组数据项、一个记录或一组记录。),2023年3月13日星期一,55,二、数据的共享性高,冗余度低,易扩充,数据的共享性高 降低数据的冗余度,节省存储空间 避免数据间的不一致性 使系统易于扩充,2023年3月13日星期一,56,数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以减少数据冗余,节约存储空间;数据共享还能够避免数据之间的不相容性与不一致性(所谓数据的不一致性是指同一数据不同拷贝的值不一样。人工管理和文件管理由于数据被重复存储,当不同的应用使用和修改不同的拷贝时就很容易造成数据的不一致性)。数据库系统弹性
29、大,易于扩充。,2023年3月13日星期一,57,三、数据独立性高,数据独立性是数据库领域中一个常用的术语,包括数据的物理独立性和逻辑独立性。数据独立性是由DBMS的二级映象功能来保证的。物理独立性:是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。也就是说,数据在(磁盘上的)数据库中怎样存储是由DBMS管理的,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。逻辑独立性:逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。也就是说,数据的逻辑结构改变了,用户程序也可以不变。,2023年3月13日星期一
30、,58,四、数据由DBMS统一管理和控制,数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一数据。为此,DBMS还必须提供以下几方面的数据控制功能:(1)数据的安全性(Security)保护 数据的安全性是指保护数据以防止不合法的使用造成的数据的泄密和损坏。使每个用户只能按规定,对某些数据以某些方式进行使用和处理。(2)数据的完整性(Integrity)检查 数据的完整性指数据的正确性、有效性和相容性。数据的完整性检查,是将数据控制在有效的范围内,或保证数据之间满足一定的关系。,2023年3月13日星期一,59,(3)并发(Concurrency)控制对
31、多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。(当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。),2023年3月13日星期一,60,例如,对于一个定票系统,如果只剩下一张票,但同时有两个用户要定票。由于同时操作,那么这两个进程都将看到还剩下一张票,会产生错误。因此,必须对并发操作加以控制和协调。并发控制的种类和涉及到的概念很多,在这里不作详细介绍,在第八章将详细介绍。(4)数据库恢复(Recovery)将数据库从错误状态恢复到某一已知的正确状态。,2023年3月13日星期一,
32、61,应用程序与数据的对应关系(数据库系统):,返回,2023年3月13日星期一,62,总的来说,数据库是长期存储在计算机内有组织的、大量的、共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。数据库管理系统DBMS在数据库的建立、运用和维护时对数据库进行统一控制,从而保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。,2023年3月13日星期一,63,目前,数据库已经成为现代信息系统的重要组成部分。具有数亿字节信息的数据库已经普遍应用于各行各业;由于在微机上也配置了DBMS,使数据库技术得到更加广泛的应用和普及。数据库技术是计算
33、机领域中发展最快的技术之一。数据库技术发展是沿着数据模型的主线来展开的。下面我们来讨论数据模型。,2023年3月13日星期一,64,1.2 数据模型,模型是现实世界特征的模拟和抽象。在数据库中,人们用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。数据模型是现实世界数据特征的抽象。通俗地讲数据模型就是现实世界的模拟。数据模型应满足三方面要求:一是 能比较真实地模拟现实世界;二是 容易为人所理解;三是 便于在计算机上实现。,2023年3月13日星期一,65,事实上,一种数据模型要很好地满足这三方面的要求是很困难的。一般是在数据库系统中针对不同的使用对象和应用目的,采用不同的数据模型。,
34、2023年3月13日星期一,66,数据模型分成两个不同的层次(1)概念模型:也称信息模型,它是按用户的观点来对数据和信息建模。(2)数据模型:主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。,2023年3月13日星期一,67,不同的数据模型,实际上是提供给我们模型化数据和信息的不同工具。根据模型应用的不同目的,可以将模型划分为两类(两个层次):第一类模型是概念模型,也称信息模型。它是按用户的观点来对数据和信息建模,主要用于数据库设计。另一类模型是数据模型,主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模,主要用于数据库管理系统DBMS的实现。,
35、2023年3月13日星期一,68,现实世界中的客观对象抽象为概念模型;概念模型是现实世界到机器世界的一个中间层次。,说明见下页,2023年3月13日星期一,69,(对于上图:)把概念模型转换为某一种DBMS所支持的数据模型。数据模型是数据库系统的核心和基础。各种机器上实现的DBMS软件都是基于某种数据模型的。,2023年3月13日星期一,70,计算机不可能直接处理现实世界中的具体事物,所以人们必须实现把具体事物转换成计算机能够处理的数据。在数据中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。我们无论处理任何数据,都要先对此数据建立模型,然后在此基础上进行处理。下面我们先讨论数据模
36、型的共性:数据模型的组成要素。,2023年3月13日星期一,71,1.2.1 数据模型的组成要素,数据模型通常由三部分组成:数据结构、数据操作和完整性约束。一、数据结构 什么是数据结构?数据结构是所研究的对象类型的集合。数据结构是对系统静态特性的描述。数据结构是刻画一个数据模型性质最重要的方面。因此在数据库系统中,人们通常按其数据结构的类型来命名数据模型。两类对象:与数据类型、内容、性质有关的对象;与数据之间联系有关的对象。,2023年3月13日星期一,72,二、数据操作,数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据操作是对系统动态特性的
37、描述。数据操作的类型:检索、更新(包括插入、删除、修改)。数据模型必须定义对这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。,2023年3月13日星期一,73,三、数据的约束条件,数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,从而保证数据的正确、有效和相容。数据模型应该反映和规定该数据模型必须遵守的基本的、通用的完整性约束条件。例如:(后面将要讨论的)在关系模型中,任何关系必须满足实体完整性和参照完整性这两个条件。此外,数据模型还应该提供定义完整性约束条件的机制,以反映
38、具体应用所涉及的数据必须遵守的特定的语义约束条件。例如:在学校的数据库中规定,学生的成绩累计不及格的课程不能超过三门。,2023年3月13日星期一,74,1.2.2 概念模型,概念模型的用途:概念模型用于信息世界的建模。(概念模型是现实世界到机器世界的一个中间层次;是数据库设计的有力工具;是数据库设计人员和用户之间进行交流的语言。)对概念模型的基本要求:一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识;另一方面应该具有简单、清晰、易于用户理解。,2023年3月13日星期一,75,一、信息世界中的基本概念,信息世界涉及的概念主要有:(1)实体(Entity):客观存在并
39、可相互区别的事物称为实体。一个实体可以由若干个属性来刻画。可以是具体的人、事、物或抽象的概念。(2)属性(Attribute):实体所具有的某一特性称为属性。例如,学生的学号、姓名。(3)码(Key):唯一标识实体的属性集称为码。例如,学号是学生实体的码。(4)域(Domain):属性的取值范围称为该属性的域。例如,学号的域为8位整数,姓名的域为字符串集合,性别的域为(男,女)等等。,2023年3月13日星期一,76,(5)实体型(Entity Type):具有相同属性的实体必然具有共同的特征和性质。我们用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。即同类实体称为实体型。例如,学生(
40、学号,姓名,性别,出生年份,系,入学时间)就是一个实体型。(6)实体集(Entity Set):同型实体的集合称为实体集。例如,全体学生就是一个实体集。,2023年3月13日星期一,77,(7)联系(Relationship):在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。,2023年3月13日星期一,78,两个实体型之间的联系可以分为三类:,一对一联系(1:1)如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体
41、与之联系,反之亦然,则称实体集A与B具有一对一联系,记为1:1。例如,一个班级只有一个正班长,而一个班长也只在一个班中任职。则班级与班长之间具有一对一联系。,2023年3月13日星期一,79,一对多联系(1:n)如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与B有一对多联系,记为1:n。例如,一个班级中可以有若干名学生,而每个学生只在一个班级中学习。则班级与学生之间具有一对多联系。,2023年3月13日星期一,80,多对多联系(m:n)如果对于实体集A中的每一个实体,实体集B中有n个实体(n
42、0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m0)与之联系,则称实体集A与B具有多对多联系,记为m:n。例如,一门课程同时有若干个学生选修,而一个学生可以同时选修多门课程,则课程与学生之间具有多对多联系。详细介绍三种联系的实例:hdp8384(见教材P17P18)。,2023年3月13日星期一,81,教材P18:图1.10,2023年3月13日星期一,82,多个实体型间的联系(略):多个实体型间的一对多联系 若实体集E1,E2,En存在联系,对于实体集E j(j=1,2,i-1,i+1,n)中的给定实体,最多只和E i中的一个实体相联系,则我们说Ei与E1,E2,E
43、i-1,Ei+1,En之间的联系是一对多的。注1:多个实体型间的一对一联系(略);注2:多个实体型间的多对多联系(略),2023年3月13日星期一,83,实例1 课程、教师与参考书三个实体型 如果一门课程可以有若干个教师讲授,使用若干本参考书,每一个教师只讲授一门课程,每一本参考书只供一门课程使用,则课程与教师、参考书之间的联系是一对多的(见图1.11a)。实例2 三个实体型:供应商、项目、零件 一个供应商可以供给多个项目多种零件,而每个项目可以使用多个供应商供给的零件,每种零件可由不同供应商供给,由此可以看出:三个实体型供应商、项目、零件之间是多对多的联系(见图1.11b)。继续讲课,202
44、3年3月13日星期一,84,图1.11a三个实体型间的1:n联系,图1.11b,返回,2023年3月13日星期一,85,图1.11b三个实体型间的m:n联系,返回,2023年3月13日星期一,86,同一实体集内各实体间的联系:一对一联系、一对多联系和多对多联系 实例 同一实体集内的一对多联系 职工实体集内部具有领导与被领导的联系,即某一职工(管理者)“领导”若干名职工,而一个职工仅被另外一个职工直接领导,这是一对多的联系(见图1.12),继续课程,2023年3月13日星期一,87,同一实体型内部的1:n联系,返回,2023年3月13日星期一,88,二、概念模型的表示方法,实体联系方法(E-R
45、方法):E-R 方法也称为E-R 模型;用E-R 图来描述现实世界的概念模型。概念模型是对信息世界建模,所以概念模型应该能够方便、准确地表示出上述信息世界中的常用概念。概念模型的表示方法很多,其中最为著名的是P.P.S.Chen于1976年提出的实体联系方法(Entity-Relationship Approach)。该方法用E-R图来描述现实世界的概念模型。,2023年3月13日星期一,89,E-R图提供了表示实体型、属性和联系的方法:实体型:用矩形表示,矩形框内写明实体名。属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体
46、连接起来,同时在无向边旁标上联系的类型(1:1;1:n;m:n)。,2023年3月13日星期一,90,需要注意的是:如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。课后阅读:E-R图实例 结合教材上的例子(P19P20),详细了解“某工厂物资管理”E-R图 是如何用E-R图来描述现实世界中的实体及其之间的联系。,2023年3月13日星期一,91,1.2.3 最常用的数据模型,回顾:数据结构、数据操作和完整性约束条件,这三个方面的内容完整地描述了一个数据模型,其中数据结构是刻划模型性质的最基本的方面。目前,数据库领域中最常用的数据模型有四种:非关系模型:层次模型(Hierarchi
47、cal Model)、网状模型(Network Model);数据结构:以基本层次联系为基本单位。,2023年3月13日星期一,92,关系模型(Relational Model)数据结构:表面向对象模型(Object Oriented Model)数据结构:对象 注意:这里所讨论的数据模型都是逻辑上的,也就是说,是用户所看到的数据范围;同时,它们又都能用某种语言描述,使计算机系统能够理解,被数据库管理系统支持的数据视图。这些数据模型将以一定的方式存储在数据库系统中。这是DBMS的功能,是DBMS中的存储模型。,2023年3月13日星期一,93,在非关系模型中,实体用记录表示,实体的属性对应记录
48、的数据项(或字段)。实体之间的联系在非关系模型中转换成记录之间的两两联系。非关系模型中数据结构的单位是基本层次联系。所谓基本层次联系是指两个记录以及它们之间的一对多(包括一对一)的联系。,继续课程,2023年3月13日星期一,94,基本层次联系图,R i,R j,双亲结点,子女结点,1:n(包括1:1)的联系名,L i j,图1.16 基本层次联系,返回,2023年3月13日星期一,95,1.2.4 层次模型,一、层次数据模型的数据结构 层次数据模型是数据库系统中最早出现的。层次数据库系统的典型代表是IMS 1968-1969年,IBM公司研制的层次模型的数据库管理系统IMS(Informat
49、ion Management System),这是一个大型的商用数据库管理系统,曾经得到广泛的使用。,2023年3月13日星期一,96,在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型。层次模型用树形结构来表示各类实体以及实体间的联系。有且只有一个结点没有双亲结点,这个结点称为根结点。根以外的其它结点有且只有一个双亲结点。,2023年3月13日星期一,97,一个层次模型的示例,转下页,2023年3月13日星期一,98,层次模型中的几个术语(见上页):根结点,双亲结点,兄弟结点,叶结点。根据层次模型的定义我们可以看到,这是一个典型的树状结构。在层次模型中,每个结点表示一个记录类型,记
50、录(类型)之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系。现实世界中的联系靠父子之间的一对多联系来体现。这就使得层次数据库系统只能处理一对多的实体联系。,2023年3月13日星期一,99,层次模型的一个基本特点是:任何一个给定的记录值只有按其路径查看时,才能显示出它的全部意义,没有一个子女记录值能够脱离双亲记录值而独立存在。可参见教材P22P23的例子及图1.18和1.19介绍层次模型。,2023年3月13日星期一,100,表示方法:实体型:用记录类型描述。每个结点表示一个记录类型。属性:用字段描述。每个记录类型可包含若干个字段。联系:用结点之间的连线表示记录(类)