数据库原理与应用第1章数据库系统概述.ppt

上传人:tian****1990 文档编号:11536418 上传时间:2020-04-27 格式:PPT 页数:139 大小:635KB
返回 下载 相关 举报
数据库原理与应用第1章数据库系统概述.ppt_第1页
第1页 / 共139页
数据库原理与应用第1章数据库系统概述.ppt_第2页
第2页 / 共139页
数据库原理与应用第1章数据库系统概述.ppt_第3页
第3页 / 共139页
点击查看更多>>
资源描述
1,数据库原理及应用,主编:陈志泊人民邮电出版社,2,参考书目1.萨师煊,王珊.数据库系统概论(第三版).北京:高等教育出版社,20012.李昭原.数据库原理与应用.北京:科学出版社,20003.张健沛.数据库原理及应用系统开发.北京:中国水利水电出版社,19994.王珊,陈红.数据库系统原理教程.北京:清华大学出版社,19995.(美)PhilipJ.Pratt,JoseJ.Adamski.陆洪毅,杨文波,程华等译.数据库管理系统基础.北京:机械工业出版社.19996.AbrahamSilberschatz,HenryF.Korth,S.Sudarshan.杨冬青,唐世渭等译.数据库系统概念.北京:机械工业出版社.20007.HectorGarcia-Molina,JeffreyD.Ullman,JenniferWidom.杨冬青,唐世渭,徐其钧等译.数据库系统实现.北京:机械工业出版社,20018.章立民.SQLServer2000中文版完全实战.北京:中国铁道出版社,2001,3,第1章数据库系统概述,4,本章概要,在本章中,首先介绍数据库中有关的主要概念,然后回顾数据管理技术的三个发展阶段。要求了解数据库的三个发展阶段及各阶段的主要特点,掌握数据库中的有关的基本概念、数据库系统的组成及各部分的主要功能。重点掌握实体、属性定义和实体型之间的联系类型及特点。了解三种数据模型的特点及区别,为后面各章的学习打下基础。了解面向对象数据模型的基本特征。,5,1.1信息、数据与数据处理,1.1.1数据与信息在数据处理中,我们最常用到的基本概念就是数据和信息,信息与数据有着不同的含义。1.信息(Information)(1)信息的定义信息是关于现实世界事物的存在方式或运动状态的反映的综合,具体说是一种被加工为特定形式的数据,但这种数据形式对接收者来说是有意义的,而且对当前和将来的决策具有明显的或实际的价值。如“2000年硕士研究生将扩招30%”,对接受者有意义,使接受者据此作出决策。,6,(2)信息的特征信息源于物质和能量,它不可能脱离物质而存在,信息的传递需要物质载体,信息的获取和传递要消耗能量。如信息可以通过报纸、电台、电视、计算机网络进行传递。信息是可以感知的,人类对客观事物的感知,可以通过感觉器官,也可以通过各种仪器仪表和传感器等,不同的信息源有不同的感知形式。如报纸上刊登的信息通过视觉器官感知,电台中广播的信息通过听觉器官感知。信息是可存储、加工、传递和再生的。动物用大脑存储信息,叫做记忆。计算机存储器、录音、录像等技术的发展,进一步扩大了信息存储的范围。借助计算机,还可对收集到的信息进行取舍整理。,7,2.数据(Data)(1)数据的定义数据是用来记录信息的可识别的符号,是信息的具体表现形式。(2)数据的表现形式可用多种不同的数据形式表示同一信息,而信息不随数据形式的不同而改变。如“2000年硕士研究生将扩招30%”,其中的数据可改为汉字形式“两千年”、“百分之三十”。数据的概念在数据处理领域中已大大地拓宽了,其表现形式不仅包括数字和文字,还包括图形、图象、声音等。这些数据可以记录在纸上,也可记录在各种存储器中。,8,3.数据与信息的联系数据是信息的符号表示或载体,信息则是数据的内涵,是对数据的语义解释。如上例中的数据2000、30%被赋予了特定的语义,它们就具有了传递信息的功能。1.1.2数据处理数据处理是将数据转换成信息的过程,包括对数据的收集、存储、加工、检索、传输等一系列活动。其目的是从大量的原始数据中抽取和推导出有价值的信息,作为决策的依据。可用下式简单的表示信息、数据与数据处理的关系:信息=数据+数据处理数据是原料,是输入,而信息是产出,是输出结果。“信息处理”的真正含义应该是为了产生信息而处理数据。,9,1.2数据库技术的产生、发展,数据库技术的产生与发展数据处理的中心问题是数据管理。数据管理是指对数据的组织、分类、编码、存储、检索和维护。随着计算机硬件和软件的发展,数据管理经历了人工管理、文件系统和数据库系统三个发展阶段。1.人工管理阶段(50年代中期以前)这一阶段计算机主要用于科学计算。硬件中的外存只有卡片、纸带、磁带,没有磁盘等直接存取设备。软件只有汇编语言,没有操作系统和管理数据的软件。数据处理的方式基本上是批处理。,10,人工管理阶段的特点如下:1)数据不保存因为当时计算机主要用于科学计算,对于数据保存的需求尚不迫切。2)系统没有专用的软件对数据进行管理每个应用程序都要包括数据的存储结构、存取方法、输入方式等,程序员编写应用程序时,还要安排数据的物理存储,因此程序员负担很重。3)数据不共享数据是面向程序的,一组数据只能对应一个程序。多个应用程序涉及某些相同的数据时,也必须各自定义,无法互相利用、互相参照,因此程序之间有大量的冗余数据。,11,4)数据不具有独立性程序依赖于数据,如果数据的类型、格式、或输入输出方式等逻辑结构或物理结构发生变化,必须对应用程序做出相应的修改。在人工管理阶段,程序与数据之间的关系可用图1.1表示。,图1-1人工管理阶段,12,2.文件系统阶段(50年代后期至60年代中期)这一阶段,计算机不仅用于科学计算,还大量用于信息管理。大量的数据存储、检索和维护成为紧迫的需求。硬件有了磁盘、磁鼓等直接存储设备。在软件方面,出现了高级语言和操作系统。操作系统中有了专门管理数据的软件,一般称为文件系统。处理方式有批处理,也有联机处理。,13,文件管理数据的特点如下:数据以文件形式可长期保存下来用户可随时对文件进行查询、修改和增删等处理。由文件系统管理数据程序员只与文件名打交道,不必明确数据的物理存储,而由文件系统提供的存取方法实现数据的存取,从而实现了“按文件名访问,按纪录进行存取”的数据管理技术。程序与数据间有一定独立性由于文件系统在程序与数据文件之间的存取转换作用,使得,14,在文件系统阶段,程序与数据之间的关系可用图1.2表示。,图1-2文件系统阶段,15,与人工管理阶段相比,文件系统阶段对数据的管理有了很大的进步,但一些根本性问题仍没有彻底解决,主要表现在以下三方面:数据共享性差、冗余度大、易造成数据不一致各数据文件之间没有有机的联系,一个文件基本上对应于一个应用程序,及文件仍然是面向应用的。当不同的应用程序所使用的数据具有共同部分时,也必须分别建立自己的数据文件,数据不能共享。同时,由于相同数据的重复存储,各自管理,在对数据进行更新操作时,不但浪费磁盘空间,同时也易造成数据的不一致性。数据独立性差数据和程序相互依赖,一旦改变数据的逻辑结构,必须修改相应的应用程序,修改文件结构的定义。而应用程序发生变化,如改用另一种程序设计语言来编写程序,也将引起文件的数据结构的改变。,16,3.数据库系统阶段(60年代末开始)60年代后期,计算机应用于管理的规模更加庞大,数据量急剧增加;硬件方面出现了大容量磁盘,使计算机联机存取大量数据成为可能;硬件价格下降,而软件价格上升,使开发和维护系统软件的成本增加。文件系统的数据管理方法已无法适应开发应用系统的的需要。为解决多用户、多个应用程序共享数据的需求,出现了统一管理数据的专门软件系统,即数据库管理系统。,17,20世纪60年代末期出现的对数据管理技术有奠基作用的三件大事,标志着以数据库系统为基本手段的数据管理新阶段的开始。(1)1968年,美国IBM公司推出了商品化的基于层次模型的信息管理系统(IMS)。(2)1969年,美国数据系统语言协会(CODASYL)的数据库任务组(DBTG)发布了一系列研究数据库方法的DBTG报告,提出了网状数据模型。(3)1970年,美国IBM公司的E.F.Codd连续发表文章,提出了关系模型,奠定了关系数据库管理系统的理论基础,一直沿用至今。,18,数据库系统阶段管理数据的特点如下:(1)数据结构化按照某种数据模型,将全组织的各种数据组织到一个结构化的数据库中,整个组织的数据不是一盘散沙,可表示出数据之间的有机关联。数据库中的数据不再仅仅针对某个应用,而是面向全组织,不仅数据内部是结构化的,整体也是结构化的;不仅描述了数据本身,也描述了数据间的有机联系,从而较好地反映了现实世界事物间的自然联系。,19,例:要建立学生成绩管理系统,系统包含学生(学号、姓名、性别、系别、年龄)、课程(课程号、课程名)、成绩(学号、课程号、成绩)等数据,分别对应三个文件。若采用文件处理方式,因为文件系统只表示记录内部的联系,而不涉及不同文件记录之间的联系,要想查找某个学生的学号、姓名、所选课程的名称和成绩,必须编写一段不很简单的程序来实现。而采用数据库方式,数据库系统不仅描述数据本身,还描述数据之间的联系,上述查询可以非常容易地联机查到。,20,(2)数据共享性高、冗余度低所谓数据共享是指数据库中的一组数据集合可为多个应用和多个用户共同使用。这是数据库系统阶段的最大改进,数据不再面向某个应用程序而是面向整个系统,当前所有用户可同时存取库中的数据。这样便减少了不必要的数据冗余,节约存储空间,同时也避免了数据之间的不相容性与不一致性。,21,3.数据独立性高数据的独立性是指逻辑独立性和物理独立性。数据的逻辑独立性是指当数据的总体逻辑结构改变时,数据的局部逻辑结构不变,由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必须修改,从而保证了数据与程序间的逻辑独立性。例如,在原有的记录类型之间增加新的联系,或在某些记录类型中增加新的数据项,均可确保数据的逻辑独立性。数据的物理独立性是指当数据的存储结构改变时,数据的逻辑结构不变,从而应用程序也不必改变。例如,改变存储设备和增加新的存储设备,或改变数据的存储组织方式,均可确保数据的物理独立性。,22,4.有统一的数据控制功能数据库为多个用户和应用程序所共享,对数据的存取往往是并发的,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据,为确保数据库数据的正确有效和数据库系统的有效运行,数据库管理系统提供下述四方面的数据控制功能。(1)数据的安全性(security)控制:防止不合法使用数据造成数据的泄露和破坏,保证数据的安全和机密;例如,系统提供口令检查或其他手段来验证用户身份,防止非法用户使用系统;也可以对数据的存取权限进行限制,只有通过检查后才能执行相应的操作。(2)数据的完整性(integrity)控制:系统通过设置一些完整性规则以确保数据的正确性、有效性和相容性。,23,正确性是指数据的合法性,如年龄属于数值型数据,只能含0,1,9,不能含字母或特殊符号;有效性是指数据是否在其定义的有效范围,如月份只能用112之间的正整数表示;相容性是指表示同一事实的两个数据应相同,否则就不相容,如一个人不能有两个性别。(3)并发(concurrency)控制:多用户同时存取或修改数据库时,防止相互干扰而提供给用户不正确的数据,并使数据库受到破坏。,24,(4)数据恢复(recovery):当数据库被破坏或数据不可靠时,系统有能力将数据库从错误状态恢复到最近某一时刻的正确状态。数据库系统阶段,程序与数据之间的关系可用图1.3表示。图1-5程序与数据只见的关系,25,从文件系统管理发展到数据库系统管理是信息处理领域的一个重大变化。在文件系统阶段,人们关注的是系统功能的设计,因此程序设计处于主导地位,数据服从于程序设计;而在数据库系统阶段,数据的结构设计成为信息系统首先关心的问题。数据库技术经历了以上三个阶段的发展,已有了比较成熟的数据库技术,但随着计算机软硬件的发展,数据库技术仍需不断向前发展。,26,1.2.2数据库技术的研究领域数据库学科的研究范围主要包括以下三个领域:1.数据库管理系统软件的研制DBMS是数据库系统的基础。DBMS的研制包括研制DBMS本身及以DBMS为核心的一组相互联系的软件系统,包括工具软件和中间件。研制的目标是提高系统的性能和提高用户的生产率。2.数据库设计数据库设计的研究范围包括:数据库的设计方法、设计工具和设计理论的研究,数据模型和数据建模的研究,计算机辅助数据库设计及其软件系统的研究,数据库设计规范和标准的研究等。,27,3.数据库理论数据库理论的研究主要集中于关系规范化理论、关系数据理论等。近年来,随着人工智能与数据库理论的结合以及并行计算技术的发展,数据库逻辑演绎和知识推理、并行算法等都成为新的研究方向。随着数据库应用领域的不断扩展,计算机技术的迅猛发展,数据库技术与人工智能技术、网络通信技术、并行计算技术等到相互渗透、相互结合,使数据库技术不断涌现新的研究方向。,28,1.3数据库系统的组成,数据库系统的组成数据库系统是指在计算机系统中引入数据库后的系统构成。主要由数据库、数据库用户、计算机软件系统和计算机硬件系统四部分组成。1.数据库数据库是存储在计算机内有组织的共享的数据集合。它可以供用户共享,具有尽可能小的冗余度和较高的数据独立性,使得数据存储最优,数据最容易操作,并且具有完善的自我保护能力和数据恢复能力。,29,数据库特点如下:1)集成性:把某特定应用环境中的各种应用相关的数据及其数据之间的联系全部地集中地并按照一定的结构形式进行存储,或者说,把数据库看成为若干个单个性质不同的数据文件的联合和统一的数据整体。2)共享性:数据库中的数据可为多个不同的用户所共享,即多个不同的用户,使用多种不同的语言,为了不同的应用目的,而同时存取数据库,甚至同时存取同一块数据。,30,2.用户用户是指使用数据库的人,即对数据库的存储、维护和检索等操作。用户分为三类:1)第一类用户,终端用户(EndUser)主要是使用数据库的各级管理人员、工程技术人员、科研人员,一般为非计算机专业人员;2)第二类用户,应用程序员(ApplicationProgrammer)负责为终端用户设计和编制应用程序,以便终端用户对数据库进行存取操作。3)第三类用户,数据库管理员(DadabaseAdministrator,简称DBA)DBA是指全面负责数据库系统的“管理、维护和正常使用的”人员,其职责如下:,31,参与数据库设计的全过程,决定数据库的结构和信息内容;决定数据库的存储结构和存取策略,以获得较高的存取效率和存储空间利用率;帮助终端用户使用数据库系统;定义数据的安全性和完整性,负责分配用户对数据库的使用权限和口令管理;监督控制数据库的使用和运行,改进和重新构造数据库系统。当数据库受到破坏时,应负责恢复数据库;当数据库的结构需要改变时,完成对数据结构的修改。改进和重组重构数据库DBA不仅要有较高的技术专长和较深的资历,并应具有了解和阐明管理要求的能力。特别对于大型数据库系统,DBA极为重要。对于常见的微机数据库系统,通常只有一个用户,常常不设DBA,DBA的职责由应用程序员或终端用户代替。,32,3.软件(Software)系统负责数据库存取、维护和管理的软件系统,即数据库管理系统(DataBaseManagementSystem,简称DBMS),数据库系统的各类人员对数据库的各种操作请求,都由DBMS完成,DBMS是数据库系统的核心软件。4.硬件(Hardware)系统存储和运行数据库系统的硬件设备。包括CPU、内存、大容量的存储设备、外部设备等。,33,数据库系统层次结构图如下图由上图看出:DBMS在操作系统(OS)的支持下工作,应用程序在DBMS支持下才能使用数据库。,34,1.4数据库系统的模式结构,可以从多种不同的角度考查数据库系统的结构。从数据库管理系统的角度看,数据库系统通常采用三级模式结构,这是数据库系统内部的体系结构;从数据库最终用户的角度看,数据库系统的结构分为集中式结构、分布式结构和客户/服务器结构,这是数据库系统外部的体系结构。1.4.1数据库系统的三级模式结构1.数据库系统模式的概念模式(Schema)是数据库中全体数据的逻辑结构和特征的描述。例如:学生记录定义为(学号、姓名、性别、系别、年龄),称为记录型,而(001101,张立,男,计算机,20)则是该记录型的一个记录值。模式只是对记录型的描述,而与具体的值无关。,35,在数据库系统中,对于同一意义下的数据,如:学生数据,从计算机中处理的二进制表示到用户处理的诸如学生姓名、年龄等概念的数据之间,存在着许多抽象和转换。2.数据库系统的三级模式结构通常DBMS把数据库从逻辑上分为三级,即外模式、模式和内模式,它们分别反映了看待数据库的三个角度。三级模式结构如图1.8所示。,36,图1.8数据库系统的三级模式结构,37,1)模式模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,又称概念模式或概念视图。视图可理解为一组记录的值,用户或程序员看到和使用的数据库的内容。模式处于三级结构的中间层,它是整个数据库实际存储的抽象表示,也是对现实世界的一个抽象,是现实世界某应用环境(企业或单位)的所有信息内容集合的表示,也是所有个别用户视图综合起来的结果,所以又称用户共同视图。它表示了数据库的整体数据。由多个“概念记录”组成,包含数据库的所有信息,也称“概念数据库”、“DBA视图”。DBMS提供模式描述语言(模式DDL)来定义模式。,38,2)外模式又称子模式或用户模式或外视图,是三级结构的最外层,个别用户只对整个数据库的一部分感兴趣,所以外视图是个别用户看到和使用的数据库内容,因此也常把外视图称为用户数据库。它由多种外记录值构成,这些记录值是概念视图的某一部分的抽象表示。即个别用户看到和使用的数据库内容,也称“用户DB”。由多个“外记录值”组成,是概念视图的某一部分的抽象表示。从逻辑关系上看,外模式包含于概念模式。DBMS提供子模式描述语言(子模式DDL)来定义子模式。,39,3)内模式又称存储模式或内视图,是三级结构中的最内层,也是靠近物理存储的一层,即与实际存储数据方式有关的一层,由多个存储记录组成,但并非物理层,不必关心具体的存储位置。DBMS提供内模式描述语言(内模式DDL)来定义内模式。在数据库系统中,外模式可有多个,而概念模式、内模式只能各有一个。内模式是整个数据库实际存储的表示,而概念模式是整个数据库实际存储的抽象表示,外模式是概念模式的某一部分的抽象表示。,40,1.4.2数据库系统的二级映象数据库系统的三级模式是对数据的三个抽象级别,它使用户能逻辑地抽象地处理数据,而不必关心数据在计算机内部的存储方式,把数据的具体组织交给DBMS管理。为了能够在内部实现这三个抽象层次的联系和转换,DBMS在三级模式之间提供了二级映象功能。,41,1.模式/内模式映象数据库中的模式和内模式都只有一个,所以模式/内模式映象是唯一的。它确定了数据的全局逻辑结构与存储结构之间的对应关系。例如,存储结构变化时,模式/内模式映象也应有相应的变化,使其概念模式仍保持不变,即把存储结构的变化的影响限制在概念模式之下,这使数据的存储结构和存储方法较高的独立于应用程序,通过映象功能保证数据存储结构的变化不影响数据的全局逻辑结构的改变,从而不必修改应用程序,即确保了数据的物理独立性。,42,2.外模式/模式映象数据库中的同一模式可以有任意多个外模式,对于每一个外模式,都存在一个外模式/模式映象。它确定了数据的局部逻辑结构与全局逻辑结构之间的对应关系。例如,在原有的记录类型之间增加新的联系,或在某些记录类型中增加新的数据项时,使数据的总体逻辑结构改变,外模式/模式映象也发生相应的变化,这一映象功能保证了数据的局部逻辑结构不变,由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必须修改,从而保证了数据与程序间的逻辑独立性。,43,1.4.3三级结构的优点(1)保证数据的独立性。将模式和内模式分开,保证了数据的物理独立性;将外模式和模式分开,保证了数据的逻辑独立性。(2)简化了用户接口。按照外模式编写应用程序或敲入命令,而不需了解数据库内部的存储结构,方便用户使用系统。(3)有利于数据共享。在不同的外模式下可有多个用户共享系统中数据,减少了数据冗余。(4)利于数据的安全保密。在外模式下根据要求进行操作,不能对限定的数据操作,保证了其他数据的安全。,44,1.5数据库系统的外部体系结构,1.单用户结构的数据库系统2.主从式结构的数据库系统3.分布式结构的数据库系统4.客户/服务器结构的数据库系统5.浏览器/服务器结构的数据库系统,45,1.6数据库管理系统(DBMS),数据库管理系统是对数据进行管理的大型系统软件,它是数据库系统的核心组成部分,用户在数据库系统中的一切操作,包括数据定义、查询、更新及各种控制,都是通过DBMS进行的。DBMS就是实现把用户意义下的抽象的逻辑数据处理转换成计算机中的具体的物理数据的处理软件,这给用户带来很大的方便。,46,1.6.1DBMS的主要功能1.数据定义DBMS提供数据定义语言DDL(DataDefineLanguage),定义数据的模式、外模式和内模式三级模式结构,定义模式/内模式和外模式/模式二级映象,定义有关的约束条件,例如,为保证数据库安全而定义的用户口令和存取权限,为保证正确语义而定义完整性规则。2.数据操纵DBMS提供数据操纵语言DML(DataManipulationLanguage)实现对数据库的基本操作,包括检索、插入、修改、删除等。SQL语言就是DML的一种。,47,3.数据库运行管理DBMS对数据库的控制主要通过四个方面实现:数据的安全性控制数据的完整性控制多用户环境下的并发控制数据库的恢复以确保数据正确有效和数据库系统的正常运行。4.数据库的建立和维护功能包括数据库的初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。5.数据通信DBMS提供与其他软件系统进行通信的功能。实现用户程序与DBMS之间的通信,通常与操作系统协调完成。6.数据组织、存储和管理,48,1.6.2DBMS的组成DBMS是许多“系统程序”所组成的一个集合。每个程序都有自己的功能,共同完成DBMS的一件或几件工作。1.语言编译处理程序(1)数据定义语言DDL及其编译程序它把用DDL编写的各级源模式编译成各级目标模式,这些目标模式是对数据库结构信息的描述,而不是数据本身,它们被保存在数据字典中,供以后数据操纵或数据控制时使用。(2)数据操纵语言DML及其编译程序,实现对数据库的基本操作。DML有两类,一类是宿主型,嵌入在高级语言中,不能单独使用;另一类是自主型或自含型,可独立地交互使用。,49,2.系统运行控制程序,主要包括以下几部分:系统总控程序:是DBMS运行程序的核心,用于控制和协调各程序的活动;安全性控制程序:防止未被授权的用户存取数据库中的数据;完整性控制程序:检查完整性约束条件,确保进入数据库中的数据的正确性、有效性和相容性;并发控制程序:协调多用户、多任务环境下各应用程序对数据库的并以操作,保证数据的一致性;数据存取和更新程序:实施对数据库数据的检索、插入、修改、删除等操作;通信控制程序:实现用户程序与DBMS间的通信。,50,3.系统建立、维护程序,主要包括以下几部分:装配程序:完成初始数据库的数据装入;重组程序:当数据库系统性能变坏时(如查询速度变慢),需要重新组织数据库,重新装入数据;系统恢复程序:当数据库系统受到破坏时,将数据库系统恢复到以前某个正确的状态。4.数据字典(DataDictionary,简称DD)用来描述数据库中有关信息的数据目录,包括数据库的三级模式、数据类型、用户名、用户权限等有关数据库系统的信息,起着系统状态的目录表的作用,帮助用户、DBA、DBMS本身使用和管理数据库。,51,1.6.3DBMS的数据存取的过程在数据库系统中,DBMS与操作系统、应用程序、硬件等协同工作,共同完成数据各种存取操作,其中DBMS起着关键的作用。DBMS对数据的存取通常需要以下几步:1.用户使用某种特定的数据操作语言向DBMS发出存取请求;2.DBMS接受请求并解释转换成及其代码指令;3.DBMS依次检查外模式、外模式/模式映象、模式、模式/内模式映象及存储结构定义;4.DBMS对存储数据库执行必要的存取操作;5.从对数据库的存取操作中接受结果;6.对得到的结果进行必要的处理;7.将处理的结果返回给用户。上述存取过程中还包括安全性控制、完整性控制,以确保数据的正确性、有效性和一致性。,52,1.7数据模型,1.7.1数据模型的组成要素数据模型是模型的一种,是现实世界数据特征的抽象。数据模型通常由数据结构、数据操作和数据的约束条件三个要素组成。1.数据结构数据结构用于描述系统的静态特性。数据结构是所研究的对象类型的集合,它是刻画一个数据模型性质最重要的方面。在数据库系统中,人们通常按照其数据结构的类型来命名数据模型。数据结构有层次结构、网状结构和关系结构三种类型,按照这三种结构命名的数据模型分别称为层次模型、网状模型和关系模型。,53,2.数据操作数据操作用于描述系统的动态特性。数据操作是对数据库中各种数据操作的集合,包括操作及相应的操作规则。如数据的检索、插入、删除和修改等。数据模型必须定义这些操作的确切含义、操作规则以及实现操作的语言。3.数据的约束条件数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。数据模型还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。例如,在学生数据库中,学生的年龄不得超过40岁。,54,1.7.2数据之间的联系1.三个世界的划分由于计算机不能直接处理现实世界中的具体事物,所以人们必须将具体事物转换成计算机能够处理的数据。在数据库中用数据模型来抽象、表示和处理现实世界中的数据。数据库即是模拟现实世界中某应用环境(一个企业、单位或部门)所涉及的数据的集合,它不仅要反映数据本身的内容,而且要反映数据之间的联系。这个集合或者包含了信息的一部分(用用户视图模拟),或者包含了信息的全部(用概念视图模拟),而这种模拟是通过数据模型来进行的。,55,为了把现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型,在实际的数据处理过程中,首先将现实世界的事物及联系抽象成信息世界的信息模型,然后再抽象成计算机世界的数据模型。信息模型并不依赖于具体的计算机系统,不是某一个DBMS所支持的数据模型,它是计算机内部数据的抽象表示,是概念模型;概念模型经过抽象,转换成计算机上某一DBMS支持的数据模型。所以说,数据模型是现实世界的两级抽象的结果。在数据处理中,数据加工经历了现实世界、信息世界和计算机世界三个不同的世界,经历了两级抽象和转换。这一过程如图1.6所示。,56,图1.6数据处理的抽象和转换过程,57,2.信息世界中的基本概念在信息世界中,常用的主要概念如下:1)实体(Entity)客观存在并且可以相互区别的“事物”称为实体。实体可以是可触及的对象,如一个学生,一本书,一辆汽车;也可以是抽象的事件,如一堂课,一次比赛等。2)属性(Attributes)实体的某一特性称为属性。如学生实体有学号、姓名、年龄、性别、系等方面的属性。属性有型和“值”之分,型即为属性名,如姓名、年龄、性别是属性的型;“值”即为属性的具体内容,如(990001,张立,20,男,计算机)这些属性值的集合表示了一个学生实体。,58,3)实体型(EntityType)若干个属性型组成的集合可以表示一个实体的类型,简称实体型。如学生(学号,姓名,年龄,性别,系)就是一个实体型。4)实体集(EntitySet)同型实体的集合称为实体集。如所有的学生、所有的课程等。5)键(Key)能唯一标识一个实体的属性或属性集称为实体的键。如学生的学号,学生的姓名可能有重名,不能作为学生实体的键。,59,6)域(Domain)属性值的取值范围称为该属性的域。如学号的域为6位整数,姓名的域为字符串集合,年龄的域为小于40的整数,性别的域为(男,女)。7)联系(Relationship)在现实世界中,事物内部以及事物之间是有联系的,这些联系同样也要抽象和反映到信息世界中来,在信息世界中将被抽象为实体型内部的联系和实体型之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。反映实体型及其联系的结构形式称为实体模型,也称作信息模型,它是现实世界及其联系的抽象表示。,60,两个实体型之间的联系有如下三种类型:(1)一对一联系(1:1)实体集A中的一个实体至多与实体集B中的一个实体相对应,反之亦然,则称实体集A与实体集B为一对一的联系。记作1:1。如:班级与班长,观众与座位,病人与床位。(2)一对多联系(1:n)实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体至多与实体集A中的一个实体相对应。记作1:n。如:班级与学生、公司与职员、省与市。(3)多对多(m:n)实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体与实体集A中的多个实体相对应。记作(m:n)。如:教师与学生,学生与课程,工厂与产品。,61,实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。可以用图形来表示两个实体型之间的这三类联系,如图书1.7所示。ABABAB(a)(b)(c)图1.7不同实体集实体之间的联系,62,3.计算机世界中的基本概念信息世界中的实体抽象为计算机世界中的数据,存储在计算机中。在计算机世界中,常用的主要概念如下:1)字段(Field)对应于属性的数据称为字段,也称为数据项。字段的命名往往和属性名相同。如学生有学号、姓名、年龄、性别、系等字段。2)记录(Record)对应于每个实体的数据称为记录。如一个学生(990001,张立,20,男,计算机)为一个记录。3)文件(File)对应于实体集的数据称为文件。如所有学生的记录组成了一个学生文件。,63,在计算机世界中,信息模型被抽象为数据模型,实体型内部的联系抽象为同一记录内部各字段间的联系,实体型之间的联系抽象为记录与记录之间的联系。现实世界是设计数据库的出发点,也是使用数据库的最终归宿。实体模型和数据模型是现实世界事物及其联系的两级抽象。而数据模型是实现数据库系统的根据。通过以上的介绍,我们可总结出三个世界中各术语的对应关系如图1.8所示。现实世界信息世界计算机世界事物总体实体集文件事物个体实体记录特征属性字段事物间联系实体模型数据模型图1.8三个世界各术语的对应关系,64,1.7.3数据模型的分类数据模型的好坏,直接影响数据库的性能。数据模型的选择,是设计数据库的一项首要任务。目前最常用的数据模型有层次模型(HierarchicalModel)、网状模型(NetworkModel)和关系模型(RelationalModel)。这三种数据模型的根区别在于数据结构不同,即数据之间联系的表示方式不同。层次模型用“树结构”来表示数据之间的联系;网状模型是用“图结构”来表示数据之间的联系;关系模型是用“二维表”来表示数据之间的联系。,65,其中层次模型和网状模型是早期的数据模型,统称为非关系模型。20世纪70年代至80年代初,非关系模型的数据库系统非常流行,在数据库系统产品中占据了主导地位,现在已逐渐被关系模型的数据库系统取代,但在美国等国,由于早期开发的应用系都是基于层次数据库或网状数据库系统,因此目前层次数据库或网状数据库的系统仍很多。20世纪80年代以来,面向对象的方法和技术在计算机各个领域,包括程序设计语言、软件工程、计算机硬件等各方面都产生了深远的影响,出现了一种新的数据模型面向对象的数据模型,66,1.层次模型层次模型是数据库系统中最早出现的数据模型,采用层次模型的数据库的典型代表是IBM公司的IMS(InformationManagementSystem)数据库管理系统,现实世界中,许多实体之间的联系都表现出一种很自然的层次关系,如家族关系,行政机构等。层次模型用一棵“有向树”的数据结构来表示各类实体以及实体间的联系。在树中,每个结点表示一个记录类型,结点间的连线(或边)表示记录类型间的关系,每个记录类型可包含若干个字段,记录类型描述的是实体,字段描述实体的属性,各个记录类型及其字段都必须命名。如果要存取某一记录型的记录,可以从根结点起,按照有向树层次向下查找。,67,图1.9是层次模型有向树的示意图。结点A为根结点,,F,G为叶结点,B,C为兄结点图1.9层次模型有向树的示意图,68,1.层次模型的特征(1)有且仅有一个结点没有双亲,该结点就是根结点;(2)根以外的其他结点有且仅有一个双亲结点,这就使得层次数据库系统只能直接处理一对多的实体关系;(3)任何一个给定的记录值只有按其路径查看时,才能显出它的全部意义,没有一个子女记录值能够脱离双亲记录值而独立存在。例如:以下是一个层次模型的例子,如图1.10所示。,图1.10TS数据库模型,69,层次数据库为TS,它具有四个记录型,分别是:记录型D(系)是根结点,由字段D#(系编号)、DN(系名)、DL(系地点)组成,它有两个孩子结点,:R和S,记录型R(教研室)是D的孩子结点,同时又是T的双亲结点,它由R#(教研室编号)、RN(教研室名)两个字段组成,记录型S(学生)由S#(学号)、SN(姓名)、SS(成绩)三个字段组成,记录型T(教师)由T#(职工号)、TN(姓名)、TD(研究方向)三个字段组成,S与T是叶结点,它们没有子女结点,由D到R,R到T,由D到S均是一对多的关系。,70,对应上述数据模型的一个值,该值是D02系(计算机系)记录值及其所有后代记录值组成的一棵树,D02系有3个教研室子记录值:R01、R02、R03和3个学生记录值:S63871、S63874、S63876,教研室R01有3个教师记录值:T2101、T17090、T3501.,71,2.层次模型的数据操纵与数据完整性约束层次模型的数据操纵主要有查询、插入、删除和修改,进行插入、删除和修改操作时要满足层次模型的完整性约束条件。进行插入操作时,如果没有相应的双亲结点值就不能插入子女结点值;进行删除操作时,如果删除双亲结点值,则相应的子女结点值也被同时删除;修改操作时,应修改所有相应的记录,以保证数据的一致性。,72,3.层次模型的优缺点层次模型的优点主要有:(1)比较简单,只需很少几条命令就能操纵数据库,比较容易使用。(2)结构清晰,结点间联系简单,只要知道每个结点的双亲结点,就可知道整个模型结构。现实世界中许多实体间的联系本来就呈现出一种很自然的层次关系,如表示行政层次,家族关系很方便。(3)它提供了良好的数据完整性支持。,73,层次模型的缺点主要有:(1)不能直接表示两个以上的实体型间的复杂的联系和实体型间的多对多联系,只能通过引入冗余数据或创建虚拟结点的方法来解决,易产生不一致性。(2)对数据的插入和删除的操作限制太多。(3)查询子女结点必须通过双亲结点。,74,2.网状模型现实世界中事物之间的联系更多的是非层次关系的,用层次模型表示这种关系很不直观,网状模型克服了这一弊病,可以清晰的表示这种非层次关系。20世纪70年代,数据系统语言研究会CODASYL(ConferenceOnDataSystemLanguage)下属的数据库任务组DBTG(DataBaseTaskGroup)提出了一个系统方案,DBTG系统,也称CODASYL系统,成为了网状模型的代表。网状模型取消了层次模型的两个限制,两个或两个以上的结点都可以有多个双亲结点,则此时有向树变成了有向图,该有向图描述了网状模型。,75,网状模型的特征(1)有一个以上的结点没有双亲;(2)至少有一个结点可以有多于一个双亲。即允许两个或两个以上的结点没有双亲结点,允许某个结点有多个双亲结点,则此时有向树变成了有向图,该有向图描述了网状模型。网状模型中每个结点表示一个记录型(实体),每个记录型可包含若干个字段(实体的属性),结点间的连线表示记录类型(实体)间的父子关系。,76,如:学生和课程间的关系。一个学生可以选修多门课程,一门课程可以由多个学生选修。如图1.11所示图1.11学生与课程的网状模型,77,2.网状模型的数据操纵与完整性约束网状模型的数据操纵主要包括查询、插入、删除和修改数据。插入数据时,允许插入尚未确定双亲结点值的子女结点值,如可增加一名尚未分配到某个教研室的新教师,也可增加一些刚来报到,还未分配宿舍的学生。删除数据时,允许只删除双亲结点值,如可删除一个教研室,而该教研室所有教师的信息仍保留在数据库中。修改数据时,可直接表示非树形结构,而无需像层次模型那样增加冗余结点,因此,修改操作时只需更新指定记录即可。它没有像层次数据库那样有严格的完整性约束条件,只提供一定的完整性约束。,78,3.网状模型的优缺点网状模型的优点主要有:(1)能更为直接地描述客观世界,可表示实体间的多种复杂联系。(2)具有良好的性能和存储效率网状模型的缺点主要有(1)结构复杂,其DDL语言极其复杂。(2)数据独立性差,由于实体间的联系本质上是通过存取路径表示的,因此应用程序在访问数据时要指定存取路径。,79,3.关系模型关系模型是发展较晚的一种模型,1970年美国IBM公司的研究员E.F.Codd首次提出了数据库系统的关系模型。他发表了题为“大型共享数据银行数据的关系模型”(ARelationModelofDataforLargeSharedDataBanks),在文中解释了关系模型,定义了某些关系代数运算,研究了数据的函数相关性,定义了关系的第三范式,从而开创了数据库的关系方法和数据规范化理论的研究,他为此获得了1981年的图灵奖。此后许多人把研究方向转到关系方法上,陆续出现了关系数据库系统。1977年IBM公司研制的关系数据库的代表SystemR开始运行,其后又进行了不断的改进和扩充,出现了基于SystemR的数据库系统SQL/DB。,80,20世纪80年代以来,计算机厂商新推出的数据库管理系统几乎都支持关系模型,非关系系统的产品也都加上了关系接口。数据库领域当前的研究工作也都是以关系方法为基础。关系数据库已成为目前应用最广泛的数据库系统,如现在广泛使用的小型数据库系统Foxpro、Acess,大型数据库系统Oracle、Informix、Sybase、SQLServer等都是关系数据库系统。,81,1.关系模型的基本概念关系模型的数据结构是一个“二维表框架”组成的集合,每个二维表又可称为关系,所以关系模型是“关系框架”的集合。关系模型与层次模型、网状模型不同,它是建立在严格的数学概念之上的。图1.12给出了教学数据库的关系模型及其实例,包含五个关系:教师关系T、学生关系S、课程关系C、选课关系SC和授课关系TC,分别对应五张表。下面以图1.12为例,介绍关系模型中所涉及的一些基概念。,82,T(教师表),83,S(学生表),84,C(课程表),85,SC(选课表)TC(授课表),86,(1)关系(Relation)一个关系对应一张二维表,如图1.12的五张表对应五个关系。(2)元组(Tuple)表格中的一行,如S表中的一个学生记录即为一个元组。(3)属性(Attribute)表格中的一列,相当于记录中的一个字段,如S表中有五个属性(学号,姓名,性别,年龄,系别)。(4)关键字(Key)可唯一标识元组的属性或属性集,也称为关系键或主码,如S表中学号可以唯一确定一个学生,为学生关系的主码。,87,(5)域(Domain)属性的取值范围,如年龄的域是(1440),性别的域是(男,女)。(6)分量每一行对应的列的属性值,即元组中的一个属性值,如学号、姓名、年龄等均是一个分量。(7)关系模式对关系的描述,一般表示为:关系名(属性1,属性2,属性n),如:学生(学号,姓名,性别,年龄,系别)。,88,在关系模型中,实体是用关系来表示的,如:学生(学号,姓名,性别,年龄,系别)课程(课程号,课程名,课时)实体间的关系也是用关系来表示的,如:学生和课程之间的关系选课关系(学号,课程号,成绩),89,2.关系模型的数据操纵与完整性约束数据操纵主要包括查询、插入、删除和修改数据,这些操作必须满足关系的完整性约束条件,即实体完整性、参照完整性和用户定义的完整性。有关完整性的具体含义将在下一章介绍。在非关系模型中,操作对象是单个记录,而关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合;用户只要指出“干什么”,而不必详细说明“怎么干”,从而大大地提高了数据的独立性,提高了用户的生产率。,90,3、关系模型的优缺点关系模型的优点主要有:(1)与非关系模型不同,它有较强的数学理论根据。(2)数据结构简单、清晰,用户易懂易用,不仅用关系描述实体,而且用关系描述实体间的联系。(3)关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库建立和开发的工作。关系模型的缺点主要有:由于存取路径对用户透明,查询效率往往不如非关系模型,因此,为了提高性能,必须对用户的查询表示进行优化,增加了开发数据库管理系统的负担。,91,1.8数据模型与数据库系统的发展,数据模型是数据库系统的核心和基础,数据模型的发展经历了格式化数据模型(层次数据模型和网状数据模型的统称)、关系数据模型和面向对象的数据模型三个阶段,按照这种划分,数据库技术的发展也经历了三个发展阶段。,92,1.8.1第一代数据库系统层次数据库系统和网状数据库系统的数据模型分别为层次模型和网状模型,但从本质上讲层次模型是网状模型的特例,二者从体系结构、数据库语言到数据存储管理上均具有共同的特征,都是格式化模型,属于第一代数据库系统。第一代数据库系统的特点是:1支持三级模式的体系结构层次数据库和网状数据库均支持三级模式结构,即外模式、模式和内模式,并通过外模式与模式、模式与内模式二级映象,保证了数据的物理独立性和逻辑独立性。2用存取路径来表示数据之间的联系数据库不仅存储数据而且存储数据之间的联系。数据之间的联系在层次和网状数据库系统中是用存取路径来表示和实现的。,93,3独立的数据定义语言第一代数据库系统使用独立的数据定义语言来描述数据库的三级模式以及二级映象。格式一经定义就很难修改,这就要求数据库设计时,不仅要充分考虑用户的当前需求,还要了解需求可能的变化和发展。4导航的数据操纵语言导航的含义就是用户使用某种高级语言编写程序,一步一步的引导程序按照数据库中预先定义的存取路径来访问数据库,最终达到要访问的数据目标。在访问数据库时,每次只能存取一条记录值。若该记录值不满足要求就沿着存取路径查找下一条记录值。,94,1.8.2第二代数据库系统第二代数据库系统是指支持关系数据模型的关系数据库系统。关系模型不仅简单、清晰,而且有关系代数作为语言模型,有关系数据理论作为理论基础。所以在关系模型提出后,很快便从实验室走向了社会,20世纪80年代几乎所有新开发的数据库系统都是关系型数据库系统。这些商用数据库系统的运行,特别是微机RDBMS的使用,使数据库技术日益广泛地应用到企业管理、情报检索、辅助决策等各个方面,成为实现和优化信息系统的基本技术。,95,关系模型之所以能成为深受广大用户欢迎的数据模型,与第一代数据库系统所支持的格式化模型相比,主要具有以下特点:关系模型的概念单一,实体以及实体之间的联系都用关系来表示;关系模型以关系代数为基础,形式化基础好;数据独立性强,数据的物理存取路径对用户隐蔽;关系数据库语言是非过程化的,将用户从编程数据库记录的导航式检索中解脱出来,大大降低了用户编程的难度。,96,1.8.3传统数据库的局限性一般说来,将第一代数据库和第二代数据库称为传统数据库。由于传统数据库尤其是关系数据库系统具有许多优点,人们纷纷采用数据库技术来进行数据管理,数据库技术被应用到了许多新的领域,如计算机辅助设计/计算机辅助制造(CAD/CAM),计算机辅助工程(CASE),图像处理等,这些新领域的应用不仅需要传统数据库所具有的快速检索和修改数据的特点,而且在应用中提出了一些新的数据管理的需求,如要求数据库能够处理声音、图像、视频等多媒体数据。在这些新领域中,传统数据库暴露了其应用的局限性,主要表现在以下几个方面:,97,1面向机器的语法数据模型传统数据库中采用的数据模型是面向机器的语法数据模型,只强调数据的高度结构化,只能存储离散的数据和有限的数据与数据之间的关系,语义表示能力较差,无法表示客观世界中的复杂对象,如声音、图像、视频等多媒体数据,工程、测绘等领域中的非格式化数据。此外,传统数据模型缺乏数据抽象,无法揭示数据之间的深层含义和内在联系。2.数据类型简单、固定传统的DBMS主要面向事务处理,只能处理简单的数据类型,如整数、实数、字符串、日期等,而不能根据特定的需要定义新的数据类型。例如,不能定义包含三个实数分量(x,y,z)的数据类型circle来表示圆,而只能分别定义三个实型的字段。这样对于复杂的数据类型只能由用户编写程序来处理,加重了用户的负担,也不能保证数据的一致性。,98,3结构与行为完全分离从应用程序员的角度来看,在某一应用领域内标识的对象可以包含两方面的内容,即对象的结构和对象的行为。传统的数据库可以采用一定的数据库模式来表示前者,而对于后者,却不能直接存储和处理,必须通过另外的应用程序加以实现。例如,对于多媒体数据,虽然可以在带有前面所提到的缺陷的情况下以简单的二进制代码形式存储其结构,但却无法存储其行为(如播放声音、显示图像等)。这样,这些多媒体数据必须由相应的应用程序来识别,而对于其他不了解其格式的用户来说,数据库中存储的是没有任何意义的二进制数据。由此可见,在传统数据库中,对象的结构可以存储在数据库中,而对象的行为必须由应用程序来表示,对象的结构与行为完全相分离。,99,4被动响应传统数据库只能根据用户的命令执行特定的服务,属于被动响应,用户要求做什么,系统就做什么。而在实际应用中,往往要求一个系统能够管理它本身的状态,在发现异常情况时及时通知用户;能够主动响应某些操作或外部事件,自动采取规定的行动等等。例如,一个仓库管理系统除了希望数据库系统能够正确,高效地存储有关物品的数据,还希望数据库系统能够对仓库库存进行监控,当库存太少或太多时主动向用户发出警告。要完成这样的工作,数据库系统必须更加主动、更加智能化,而传统的数据库显然不能适应这一要求。5事务处理能力较差传统数据库只能支持非嵌套事务,对于较长事务的运行较慢,且中事务发生故障时恢复比较困难。由于存在上述种种缺陷,使得传统数据库无法满足新领域的应用需求,数据库技术遇到了挑战,在这种情况下,新一代数据库技术应运而生。,100,1.8.4第三代数据库系统1.第三代数据库系统的特点第三代数据库系统是指支持面向对象(ObjectOriented,简称OO)数据模型的数据库系统。在数据库面临许多新的应用领域时,1989年9月,一批专门研究面向对象技术的著名学者著文“面向对象的数据库系统宣言”,提出继第一代(层次、网状)和第二代(关系)数据库系统后,新一代DBS将是OODBS。1990年9月,一些长期从事关系数据库理论研究的学者组建了高级DBMS功能委员会,发表了“第三代数据库系统宣言”的文章,提出了第三代DBMS应具有的三个基本特点。,101,1.第三代数据库系统应支持面向对象的数据模型除提供传统的数据管理服务外,第三代数据库系统应支持数据管理、对象管理和知识管理,支持更加丰富的对象结构和规则,以提供更加强大的管理功能,支持更加复杂的数据类型,以便能够处理非传统的数据元素(如超文本、图片、声音等)。90年代成功的DBMS都会提供上述服务。有关OO模型的基本内容,将在下一节“面向对象的数据库技术”中详细介绍。2.第三代数据库系统必须保持或继承第二代数据库系统的优点第三代数据库系统不仅能很好的支持对象管理和规则管理,还要更好地支持原有的数据管理,保持第二代数据库系统的非过程化的数据存取方式和数据独立性。,102,3第三代数据库系统必须具有开放性数据库系统的开放性(o
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!