资源描述
第1章 数据库概论 1.1 基本概念和术语 1.1.1 信息与数据(Information & Data) 信息是现实世界事物的存在方式和运动状态的反映。数据是描述事物的符号记录,是用物理符号记录下来的可以鉴别的信息。 信息与数据的关系为:数据是信息的符号表示,是信息的载体;而信息是数据的内涵,是数据的语义解释。另外,数据也是信息的资源,人们可以从中抽取、推导出对人们有价值信息,以作为行动和决策的依据。,1.1.2 数据处理和数据管理 数据处理是指对各种数据进行收集、存储、加工、和传播的一系列活动的总称。数据管理是指对数据进行分类、组织、编码存储、检索和维护。它是数据处理的中心问题。 数据管理技术经历了以下三个阶段: 1.人工管理阶段(20世纪50年代中期以前) 数据和程序紧密结合为一个整体,一组数据对应一个程序,数据不具有独立性,不能共享。,2.文件管理系统(50年代后-60年代中) 程序和数据分离,数据以文件形式保存于磁盘上,数据文件基本上是对应于一个或几个程序,程序和数据具有一定的独立性,但共享性差,冗余度大,不易扩充。 3.数据库系统(60年代后) 数据由DBMS统一集中管理和控制,DB中的数据高度结构化,数据独立性和共享性高,冗余度小,易扩充。,1.1.3 数据库(DB-DataBase) 简单来讲,数据库就是存放数据的仓库。确切的含义是指长期储在计算机内的、有组织和结构化的、可是共享的相关数据的集合。 数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度,数据间联系密切,而又有较高的数据独立性,并能为不同的用户共享。 1.1.4 数据库管理系统(DBMS-DataBase Management System) 数据库管理系统是位于用户和操作系统之间的数据管理软件。其主要功能包括:,1数据定义功能 通过DBMS提供的数据定义语言,用户可以对数据库中的各种数据对象进行定义。 2数据操纵功能 通过DBMS提供的数据操纵语言,用户可以对数据库进行查询、插入、删除和修改等基本操作。 3数据库的运行管理 数据库在建立、运行和维护时由DBMS统一管理和控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。 4数据库的建立和维护 包括数据库初始数据输入、转换功能,数据库转储、恢复功能,数据库的重组及性能监视、分析功能等。,1.1.5 数据库系统(DBS-DataBase System) 数据库系统是指在计算机系统中引入数据库后所组成的系统。除了计算机的硬件系统外,一般还包括数据库、操作系统、DBMS及开发工具、应用系统、数据库管理员(DBADataBase Administrator)和不同的用户构成。如图表示。,1.2 数据库系统的主要特征 1.2.1 数据结构化 在文件系统中,相互独立的数据文件的内部结构通常采用等长同格式记录的集合。例如,一个存放学生信息的文件,记录的结构格式如图3.1.2所示:,其中前六项数据对于任何学生的信息量差别不大,而后三项相差很大。若采用等长同格式记录存储学生数据,记录的长度应等于信息量最多学生的记录的长度,因而会造成大量存储空间的浪费。,为此我们采用主记录(由前六项数据组成学生基本记录)和详细记录(分别描述学生的学习简历和家庭成员)相结合的形式建立文件。记录的结构格式如图3.1.3所示:,在数据库系统中实现了整体数据的结构化,数据的结构化是数据库的主要特征之一,是数据库系统与文件系统的本质区别。,1.2.2 数据的共享性高、冗余度低和易扩充 由于数据库从整体角度描述数据,数据的组织不再面向某一应用,而是面向整个系统,因此数据库中的数据可以被多个用户,多个应用共享。数据的结构化和数据共享可以大大减小数据的冗余度,既降低数据的重复存储、节省存储空间,同时又可避免数据之间的不相容性和不一致性。另外,还容易增加新的应用,使得数据库系统具有弹性大,易扩充的特点。,1.2.3 数据的独立性高 数据的独立性包括两个方面:数据的物理独立性和数据的逻辑独立性。 数据的物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。由于数据库中的数据在磁盘上怎样存储由DBMS实现和管理,用户程序不涉及数据的存储结构,应用程序面向的是数据的逻辑结构,因此当数据的物理存储改变后,应用程序不用改变。 数据的逻辑独立性是指用户的应用程序与数据逻辑结构是相互独立的。即数据的逻辑结构改变后,应用程序也可以不变。,1.2.4 数据由DBMS统一管理和控制 数据库是共享资源,并且一般采用的是并发共享,即多个用户可以同时存取数据库中的数据甚至可以存取数据库中的同一个数据。因此DBMS必须提供以下四个方面的数据保护和控制功能: 1数据的安全性(Security)保护 数据库的安全性是指保护数据以防止不合法的使用所造成的数据泄密和破坏。使非法用户无法进入数据库,合法用户只能按规定,对某些数据以某些方式进行使用和处理。,2数据的完整性(Integrity)控制 数据的完整性是指数据的正确性、有效性和一致性。DBMS提供了必要的完整性检查功能,保证数据库中的数据在输入和修改时符合原来的定义和规定,使数据在有效范围内,或保证数据之间满足一定的关系。 3数据库的恢复(Recovery) 计算机系统的软硬件故障、操作人员的失误以及故意破坏等,均可能影响数据库的正确性,甚至会造成数据库中的部分或全部数据丢失。因此DBMS必须提供数据库的恢复功能,使数据库从错误状态恢复到某一已知的正确状态。,4并发(Concurrency)控制 当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果或使数据库的完整性遭到破坏,因此DBMS必须对多用户的并发操作加以控制和协调。 综上所述,数据库是长期储在计算机内有组织和结构化的、可共享的相关数据的集合。在一定范围内不仅能满足各种用户共享需求,而且具有较小的冗余度和较高的数据独立性。DBMS在数据库在建立、运行和维护时对数据库进行统一管理和控制,以保证数据的安全性、完整性。同时在多用户使用数据库时进行并发控制,在发生故障后对系统进行恢复。,1.3 数据模型 1.3.1 数据模型的概念 数据库都是基于某种数据模型(Data Model)的,数据模型是数据库系统的核心和基础。 模型是现实世界的模拟和抽象。数据模型也是一种模型,它是对现实世界数据特征的抽象。,数据模型应满足三个方面的要求: 能比较真实的模拟和反映现实世界; 容易为人所理解; 便于在计算机上实现。,根据模型应用目的不同,通常分为两类: 第一类是概念模型(也称为信息模型),它是按照面向用户的观点对数据和信息建模,用于数据库设计。 第二类是结构模型(也直接称为数据模型),它是面向计算机系统的观点对数据建模,主要用于DBMS的设计和实现。,1.3.2 数据模型组成要素 数据模型通常由数据结构、数据操作和数据的约束条件三大要素组成。 1数据结构 数据结构是所研究的对象类型的集合。用于描述系统静态特性。 通常按数据结构的类型来命名数据模型。主要有层次模型、网状模型、关系模型和面向对象的模型。,2数据操作 数据操作是对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括具体的操作及有关操作规则。用于描述系统的动态特性。 数据操作主要有两大类: 检索(或查找) 更新(包括插入、删除和修改) 数据模型必须定义这些操作的确切含义、操作符号、操作规则(例如优先级等)以及实现操作的语言等。,3数据的约束条件 数据的约束条件是一组完整性规则的集合,完整性规则给出了数据模型中数据及其联系应具有的制约、约束和依赖规则。用于限定和约束建立在该数据模型下的数据库的状态及其状态的变化,以保证数据的正确、有效和相容。,1.3.3 概念模型,图3.1.4 现实世界中客观对象的抽象过程,概念模型用于信息世界建模,是现实世界到信息世界的第一层抽象。概念模型是按用户的观点对数据和信息建模,它不涉及信息在计算机中的表示问题,是数据库设计人员进行数据库设计的工具。也是用户和数据库设计人员进行交流的工具。最常用的概念模型是ER模型。,1信息世界的基本概念 实体(Entity):客观存在并可相互区分的事物。实体可以是具体的人、事、物,也可以是抽象的概念或联系。一名学生,一个部门,学生的一次选课,公司的一次订货等都是一个实体。 属性(Attribute):实体所具有的某一特性。一个实体可以由若干个属性来描述。例如,学生实体可以由学号、姓名、性别、年龄、所在系和籍贯等属性描述,如(20020001,张刚,男,20,计算机,天津)这些属性的组合起来表征了一名学生。 码(Key):能唯一识别实体的单一属性或属性集。例如,学号是学生实体的码。,域(Domain):属性取值范围。例如,学号的域由8位数字组成的字符串,性别的域为(男,女)。 实体型(Entity Type):具有相同属性的实体必然具有相同的特征和性质。用实体的名及其属性名的集合来描述同类实体,称为实体的型。例如,学生(学号,姓名,性别,年龄,所在系,籍贯)就是一个学生实体的型。 实体集(Entity Set):同型实体的集合。例如,全体学生就是一个实体集。,联系(Relationship):在现实世界中,事物内部和事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各个属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。 两个实体型之间联系可以分为三种: (1) 一对一联系(1:1) 如果有两个实体集A 、B , 对于实体集A中的每个实体,在实体集B中至多有一个实体与之有联系,反之亦然。则实体集A和B具有一对一的联系。记为1:1 。,(2) 一对多联系(1:n) 如果有两个实体集A、B ,对于实体集A中的每个实体,在实体集B 中有n(n0)个实体与之有联系,反之对于实体集B中的每个实体,在实体集A中至多有一个实体与之有联系。则实体集A和B具有一对多联系。记为1:n 。 (3) 多对多联系(m:n) 如果有两个实体集A、B, 对于实体集A 中的每个实体,在实体集B中有n (n0) 个实体与之有联系,反之亦然。则实体集A 和B之间具有多对多联系。记为m:n 。,2概念模型的表示方法 概念模型用于信息世界建模,因此概念模型应该能够方便、准确地表示出上述信息世界中的常用概念。概念模型有很多中表示方法。最常用的概念模型是P.P.Chen与1976年提出的实体-联系方法(Entity-Relationship Approach)。该方法用E-R图来描述。因此,也称实体-联系模型,简称为E-R模型。 实体-联系模型直接从现实世界中抽象出实体类型及实体间联系,然后用E-R图表示。E-R图提供了表示实体型、属性和联系的方法,具体表示为:,实体型:用矩形框表示,框内写上实体名 。 属性:用椭圆框表示,框内写上属性名,并用无向边与其所属的实体连接起来。 联系:用菱形框表示,框内写上联系名,并用无向边分别与有关的实体连接起来,同时在无向边旁标上联系的类型 ( 1:1,1:n 或 m:n )。 注意:如一个联系具有属性,则这些属性要用无向边与该联系连接起来。,E-R图画法举例,如图3.1.5所示,学生与课程E-R图(两个实体型之间联系),1.3.4 常用数据结构模型 目前数据库领域中常用的数据模型有四种: 1. 层次模型(Hierarchical Model) 2. 网状模型(Network Model) 3. 关系模型(Relational Model) 4. 面向对象的数据模型(Object Oriented Model)。,1.4 数据库系统结构 1.4.1 模式的概念 在数据库中首先要注意区分“型”(Type)和“值”(Value)的概念。型是指对某一类数据的结构和属性的说明,值是指对应该型的一个具体赋值。 例如,描述学生实体的型为:(学号,姓名,性别,年龄,所在系,籍贯)。而(20020001,张刚,男,20,计算机,天津)则是该型的一个值。,模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及型的描述,不涉及具体的值。模式的一个具体的值称为该模式的一个实例(Instance)。同一个模式可有很多实例。 模式是相对稳定的,而实例是相对变动的。因为数据库中的数据是在不断更新的。模式反映的是数据库数据的结构及其联系,而实例反映的是数据库某一时刻的状态。,1.4.2 数据库系统的三级模式结构 数据库系统的三级模式结构是指数据库由外模式、模式和内模式三级构成。如图所示。,1. 模式(Schema) 模式也称为逻辑模式、概念模式或全局模式。它是对数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它位于数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序以及所使用的应用开发工具及高级程序设计语言无关。 一个数据库只有一个模式,数据库模式以某一种数据模型为基础,综合考虑所有用户的需求,从全局和整体角度将这些需求结合成一个逻辑整体。在模式中不仅要定义数据的逻辑结构,例如数据记录由那些数据项构成,数据项的名字,类型、取值范围等,而且还要定义数据之间的联系,定义与数据有关的安全性和完整性要求。,2. 外模式(External Schema) 外模式也称子模式、局部模式或用户模式。它是对数据库用户使用的局部数据的逻辑结构和特征描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 外模式通常是模式的子集。根据用户和应用的不同,一个数据库中可以建立多个外模式。 外模式是保证数据库安全性的一个有力措施,每个用户只能访问所对应外模式中的数据,数据库中的其余数据是不可见的。,3. 内模式(Internal Schema) 内模式也称存储模式或物理模式,它是对数据物理结构和存储方式的描述,是数据库内部的表示方式。例如,数据记录采用什么存储方式,按照什么方式组织索引,数据是否压缩存储,是否加密等。一个数据库只有一个内模式。 1.4.3数据库的二级映像 1. 外模式/模式映像 同一个模式可以对应多个外模式。对于某一个外模式,数据库系统中就有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。,当模式改变时(比如增加新的数据或改变数据的数据类型等),DBA对外模式/模式映像做相应的改变,可以使外模式保持不变。因为应用程序是依据外模式编写的,从而使应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。 2. 模式/ 内模式映像 数据库只有一个模式和一个内模式,因此模式/ 内模式映像是唯一的,它定义了数据库全局逻辑结构与存储结构之间的对应关系。 当内模式改变时(比如数据库的存储结构改变等),DBA对模式/内模式映像做相应的改变,可以使内模式保持不变,从而使应用程序不必修改,保证了数据与程序的物理独立性,简称数据的物理独立性。,1.5 数据库技术的研究领域 数据库技术的研究范围非常广泛,概括起来主要有以下三个研究领域: 1.5.1 数据库管理系统(DBMS)软件的研制 DBMS是数据库系统的基础和核心。DBMS的研制包括其本身以及相关软件的研制(例如数据库开发工具)。研制的目标是扩大系统功能,提高系统性能、可用性和可靠性以及用户的生产率。,1.5.2 数据库设计 数据库设计的主要任务是采用某种DBMS,针对某一部门和组织的应用要求,设计和建立一个结构合理、效率较高的数据库及其使用方便、满足用户需求的应用系统。这其中主要的研究方向是数据库设计方法学和设计工具等。 1.5.3 数据库理论 数据库理论基础可以更好地推动数据库技术的发展,使管理系统的研制更科学化、严密化。数据库理论研究主要集中于关系数据理论、关系的规范化理论和优化查询理论等。,
展开阅读全文