数据库系统概论
建议多做几套三级数据库试题以加深理解,便于理论记忆。
第一章. 绪论
一、 数据库系统概述:
(一) 数据、数据库、数据库管理系统和数据库系统相关概念:
1. 数据(Data):描述事物的符号记录。数据与其语义密不可分。(P4)
2. 数据库(DataBase,简称DB):数据库是长期存储在计算机内、有组织、可共享的大量数据的集合。因此,永久存储、有组织、可共享是数据库的三个基本特点。(P4)
3. 数据库管理系统(DataBase Management System,简称DBMS):数据库管理系统是位于用户与操作系统之间的一层数据管理软件,其任务是科学、高效地管理数据库中的数据。(P5)数据库管理系统的主要功能有:
1) 数据定义功能:DBMS提供数据定义语言(Data Definition Language,DDL)允许用户对数据库中的数据对象进行定义。
2) 数据操纵功能:DBMS提供数据操纵语言(Data Manipulation Language,DML)允许用户对数据库中的额数据对象进行基本操作。
3) 数据组织、存储和管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存储路径等。数据组织和存储的基本目标是提高存储空间利用率和方便存取,提供多种存取方法(如索引查、Hash查、顺序查等)来提高存取效率。
4) 数据库的事务管理和运行管理:DBMS对数据库进行统一管理、控制,以保证数据的安全性、完整性,以及处理多用户并发控制和发生故障后的系统恢复。
5) 数据库的简历和维护功能:如数据库原始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视,分析功能等。这些功能的实现通常是由一些实用程序或管理工具来完成的。
6) 其他功能:如DBMS与网络中其他软件系统的通信功能、异构数据库之间的互访和互操作
功能、多个DBMS之间的数据转换功能等。
4. 数据库系统(DataBase System,DBS):在计算机系统中引入数据库后的系统,由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(DataBase Administrator,DBA)构成。
(二) 数据管理技术的发展:(P7)
1. 人工管理阶段:主要出现于20世纪50年代中期以前,数据处理方式为批处理。其特点为:
1) 数据不保存:由于当时计算机主要用于科学计算,一般不对数据进行长期保存。
2) 应用程序管理数据:此阶段没有操作系统,更没有管理数据的相应的软件系统(如后来的DBMS),而是由应用程序自己设计、管理,加重了程序员的负担。
3) 数据库系统包括db dbms dba数据不共享:这里的共享是指数据不能被多个应用程序共享。即数据是面向应用程序的,一组数据只能被一个应用程序使用,而多个应用程序使用相同数据时,必须各自定义。因此,程序与程序之间存在大量冗余数据。
4) 数据不具有独立性:当数据的逻辑结构或物理结构发生改变时,应用程序必须修改,再次加重了程序员的负担。
2. 文件系统阶段:20世纪50年代后期到60年代中期,其特点是:
1) 数据可以长期保存:由于此阶段计算机大量用于数据处理,数据需要长期保存在外存上。
2) 由专门的软件系统(文件系统)管理数据:此阶段出现了操作系统和数据管理软件,即文件系统。文件系统实现了记录内的结构性,但整体无结构(即文件内部的记录有结构,但文件与文件之间无结构);更重要的是,文件系统使得应用程序与数据之间有了一定的独立性,减轻了程序员的负担。但文件系统仍然存在以下不足:
✧ 数据共享性差、冗余度大:在文件系统中,文件仍然是面向应用程序的。当多个应用程序使用相同文件时,也必须建立各自文件。这除了导致数据冗余以外,由于数据的重复存储,还会导致数据不一致现象,使数据修改和处理难度加大。(数据不一致是指同一数据不同拷贝的值不一样。)
✧ 数据独立性差:由于文件是面向应用程序的,当文件系统中文件的逻辑结构发生改变后,
必须修改应用系统中对文件结构的定义。
3. 数据库系统阶段:20世纪60年代至今。其特点是:
1) 数据结构化:文件系统只实现了文件内部的结构化,但文件与文件之间却是孤立的。而数据库系统阶段则实现了整体数据的结构化,即文件之间也是有结构的,这种结构可以通过参照完整性来表述。
2) 数据的共享性高,冗余度低,易扩充:在数据库系统阶段,数据面向整个系统,而不是某一应用程序,实现了不同应用程序对数据的共享。数据共享不仅消除了数据冗余,也解决了数据不一致问题,为数据的修改和维护带来方便。
3) 数据的独立性高:由于数据不再面向某一应用程序,使得数据的定义从程序中分离出来,大大减小了程序员的负担。在DBMS中,数据的独立性是由二级映像来保证的。
4) 数据由DBMS同一管理和控制:数据不再由应用程序管理,而是交给DBMS。DBMS通过以下几方面实现数据控制功能:数据的安全性保护、数据的完整性检查、并发控制、数据库恢复。
二、 数据模型:
(一) 两类数据模型:第一类是概念模型,第二类是逻辑模型和物理模型。(P12)
1. 概念模型:脱离计算机的、按用户的观点来对数据建模,应用于数据库设计。表示方法为E-R图。
2. 逻辑模型:按计算机系统的观点对数据建模,用于DBMS的实现。逻辑模型有五种,分别为层次模型、网状模型、关系模型、面向对象模型和对象关系模型。
3. 物理模型:按计算机系统的观点描述数据在系统内部的表示方法和存取方法。
(二) 数据模型的三大组成要素:(P13)
1. 数据结构:描述数据库的组成对象以及对象之间的联系,是数据模型最重要的方面。如层次结构、网状结构、关系结构等。
2. 数据操作:对数据库中各种对象的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据操作分查询和更新(插入、删除、修改)两大类。
3. 数据完整性约束条件:数据的完整性约束条件是一组完整性规则。完整性规则是给定的数据模型中数据及其联系所具有的制约和一寸规则,用以限定附和数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。如关系数据库中的外键约束。
(三) 三大类(逻辑)数据模型:
层次模型、网状模型、关系模型是常用的三大逻辑数据模型。其中,层次模型、网状模型属于格式化模型,在20世纪70年代至80年代初非常流行,现基本已被关系模型取代,但美国、欧洲等地区仍有不少该类模型在使用(P18)。
在格式化模型中,实体用记录表示,实体的属性对应记录的数据项,实体之间的联系在格式化模型中转换成记录之间的两两联系。格式化模型中数据结构的基本单位是基本层次联系。所谓基本层次联系,是指两个记录以及它们之间的一对多(包括一对一)的联系(P20)。
1. 层次模型:
1) 数据结构:有且只有一个结点没有双亲结点,这个结点称为根节点;根以外的其他结点有且只有一个双亲结点。因此,层次模型数据库更适合处理一对多联系。(P20)
2) 数据操作和完整性约束条件:层次模型中的数据操作主要有插入、删除、更新。在插入时,如果没有相应的双亲结点值就不能插入它的子女结点值;在删除时,如果删除双亲结点值,则相应的子女结点值也被同时删除。(P22)
3) 存储结构:P23.
4) 层次模型优缺点:优点:层次模型数据结构比较简单清晰;层次数据库的查询效率高;提供了良好的完整性支持。缺点:真实世界中有很多联系是非层次的,如多对多联系,此时层次模型表达比较困难;当一个结具有多个双亲时,层次模型表示这类联系的方法很笨拙,只能通过引入冗余数据(产生数据不一致)或创建非自然的数据结构(引入虚拟结点)来解决,对插入和删除操作的限制较多,应用程序的编写比较困难;查询子女结点必须通过双亲结点;由于结构严密,层次命令趋于程序化。(P25)
2. 网状模型:
1) 数据结构:允许一个以上的结点无双亲;一个结点可以有多个双亲结点。(P25)
2) 数据操作和完整性约束:网状模型一般没有层次模型那样严格的完整性约束条件,但具体
的网状数据库还是加了一些限制:码唯一标识记录项;保证一个联系中双亲记录和子女记录之间是一对多的联系;可以支持双亲记录和子女记录之间某些约束条件,如有些子女记录要求双亲记录存在时才能插入。(P26)
3) 存储结构:P26;
4) 网状模型的优缺点:优点:比层次模型更为直观地描述现实世界,如可以表示多对一、多对多联系;具有良好的性能,存取效率高。缺点:结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂;网状模型的DDL、DML复杂,而且要嵌入某一种高级语言(如C)中,用户不易掌握;编写应用程序时,用户必须了解系统结构的细节(访问数据时必须选择适当的存取路径),加重了编写程序的负担。(P30)
3. 关系模型:详见第二章《关系数据库》。
三、 概念模型的表示方法:E-R图。
(一) 相关概念:(P14)
1. 实体(Entity):客观存在并可相互区别的事物。在E-R图中,实体用码(码的定义见下)来区分。
2. 属性(Attribute):实体所具有的某一特性。
3. 码(Key):唯一标识实体的属性集。
4. 域(Domain):一组具有相同数据类型的值的集合。如性别的域为(男,女)。
5. 实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。如学生(学号,姓名,性别,出生年月,所在院系)就是一个实体型。
6. 实体集(Entity Set):同一类型实体的集合。如全体学生就是一个实体集。
7. 联系(Relationship):在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。联系包括1:1联系、1:n联系(一对多)、m:n联系(多对多)。
(二) E-R图的表示方法:
四、 数据库系统结构:
(一) 数据库系统的三级模式:
1. 模式(Schema):数据库中全体数据的逻辑结构和特征的描述。(P31)
2. 三级模式:外模式、模式、内模式。
3. 外模式:又称子模式、用户模式等,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是鱼与某一应用有关的数据的逻辑表示。外模式一般是模式的子集。一个数据库可以有多个外模式。一个外模式可以被多个应用程序使用,但一个应用程序只能使用一个外模式。外模式是保证数据库安全性的一个有力措施(每个用户只能看到和访问对应的外模式中的数据,数据库中的其他数据是不可见的)。(P32)
4. 模式:也成逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。(P32)
5. 内模式:又称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。(P33)
(二) 数据库系统的二级映像:(P34)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论