基本说明
数据库系统原理的系列章节是基于《数据库系统原理》的基础之上,结合自己的心得与体会进行的归纳总结。
由于这些内容都是自己对数据库相关内容学习的最初理解,因此有所不妥的地方欢迎批评指正。
在此,特别感谢侯迪老师的辛勤教学工作以及很高的个人修养,讲课堂内容真的是深入浅出,为人有风格,受益匪浅。
同时,由于实际需要,在实际学习过程中的每次课程的笔记发表在本人CSDN中,账号为williamyi96。
数据管理技术的发展
数据管理历史阶段
数据管理技术经历了三个阶段,分别为:
- 人工管理阶段
- 文件系统阶段
- 数据库系统阶段
数据库系统与文件系统
数据库系统与文件系统的优缺点
由于文件系统的数据记录之间没有联系,同时难以维护数据的完整性,并且较难进行查询,因此利用了结构化的数据存储模式,并且提升了数据的安全性以及维护能力的数据库系统。
就效率而言,显然数据库系统具有较高的开发效率,但是文件系统并不是一无是处,其具有较高的运行效率。
数据库系统与文件系统的本质差异
数据库系统与文件系统的本质差异是数据库系统将数据管理的功能独立出来了,而不是再依附于应用本身,因此其具有较好的数据共享能力,同时防止了其他应用对数据的恶意操作,提升了数据的安全性。
数据库系统
数据库的定义
数据库是长期储存在计算机内,有组织的,可共享的大量数据的集合。
由定义可知,数据库中的数据之间有组织,也就是数据彼此之间相互联系,同时数据之间可以被多个应用共享。
另外值得注意的是,数据库中的数据具有最小的冗余度和较高的独立性。由于数据管理从应用中剥离出来了,因此各个数据管理系统之间的数据采用了集合合并的方式,最大程度地降低了数据的冗余度。同时,正是由于冗余度低,因此数据之间的独立性高。
数据库系统的定义
数据库系统是实现有组织、动态地存储大量相关的结构化数据、方便各类用户访问的计算机软硬件资源的集合。
数据库系统的组成
DBS = DB + DBMS + APP
以上为数据库系统的核心组成,涉及到诸如以DBMS为核心的开发工具等内容不具体考虑。
其结构为:
数据库系统的用户类型
DBA + PROGRAMMER + END USER
数据库系统的特征
- 信息冗余度小,易扩充。其是一种高度的结构化数据
- 支持数据的不同视图。不同类型的用户所看到的数据情况是不一样的。
- 较高的数据独立性。数据彼此之间结构上相互联系,但是逻辑上彼此独立。
- 信息完整且功能通用。其是多种数据管理的最小完备子集合,因此数据信息对应用而言是完整的。又由于其数据由数据库管理系统进行集中管理,而且数据管理结构化,因此其公共具有通用性。
数据模型
数据模型分类
针对不同的使用对象和应用目的,具有以下三种不同层次的数据模型:
概念模型
逻辑模型
- 层次模型
- 网状模型
- 关系模型
物理模型
另外还可以根据数据模型的表达方式(面向语法或者是面向语义),数据模型的应用范围等可以进行多种不同的划分。
数据与信息
数据都有语法和语义两个方面的内涵。
数据是符号化的信息,信息是语义化的数据。以股市中的每个时段的股票价值为例,数字本身是数据,而如果构成一幅表征股票价格变动的图,这就是信息。又如,称黑白点阵为数据,而称其构成的图像则为信息。
数据处理的目的就是要找出有价值的信息。数据处理的过程就是便于更快地找到所需要的信息,来将其作为后期决策的依据。
数据模型的定义
将数据的定义和操作从应用程序中分离出来,交由数据库管理系统进行定义和管理时,数据库管理系统需要采用某种数据结构来定义、存储要管理的数据。这种数据结构相当于是数据库管理系统的数据模型。
在构建数据模型时,有概念数据模型和结构数据模型。两者的本质区别是概念数据模型是面向真实世界的,而结构数据模型是面向计算机世界的。同时,值得注意的是,连接计算机世界与现实世界的桥梁是信息世界。
更为形式化地定义数据模型是:数据模型是规定现实世界数据特征的抽象,是用来描述数据的语法、语义和操作的一组概念组合。
对数据模型的要求
- 能比较真实地模拟现实世界
- 能够被人所理解
- 便于在计算机上进行实现
值得注意的是,前两条与最后一条之间往往是矛盾的,因此我们需要辩证地去思考如何实现数据模型的高效化。
数据模型三要素
数据模型通常由数据结构、数据操作和完整性约束三部分组成。其中,数据结构式指数据的组织形式,数据操作是指查询和更新,完整性约束是指规定数据合理正确的限制性条件。
逻辑数据模型
逻辑数据模型典型的有三种(数据模型分类时已经做具体说明,在此不赘述),其中层次模型可以使用树进行呈现,网状模型可以用图进行呈现,而关系模型则可以通过表来进行呈现。各种逻辑模型之间的区别在于数据之间联系的表示方式不同。
由于网状模型和层次模型在进行实现时,结构往往较为复杂。因此,关系模型被广泛地使用。
关于关系模型的具体内容将在第二章中进行详细介绍。
数据模式
数据模式是数据模型的实例化。相当于数据模型提供了一个书架,而数据模式是根据这个书架将其填满了书。
三级数据模式
现代数据库设计中一般采用上述三级模式结构,其中本质的目的是提升物理数据和逻辑数据的独立性。外模式与模式之间的映射关系提升了逻辑数据的独立性,同时内模式和模式之间的映射关系提升了物理数据的独立性。下面以图书馆的书籍管理为例进行说明: 所有书籍的图书馆编号就是模型,其有且仅有一个,而外模式就是根据书籍的不同类别进行分类之后的索引号,外模式与模式之间构成了一种映射; 而内模式就是对应于编号之后的具体的书籍的物理位置,其与模式之间也是一种映射关系;
当我们需要修改数据库的信息时,无论是修改外模式还是内模式,我们都不需要对内模式进行修改,我们只需要更改对应的映射关系即可。
数据库管理系统
数据库管理系统的主要功能
DBMS提供了数据的定义、操纵、存储、保护和维护功能。
数据库管理系统是数据库系统的核心,由应用程序到数据库的级联结构我们可以看到,所有应用程序访问数据库的请求都是由数据库管理系统来处理的。
对数据库的操作
广义上来说,各种用户对数据库的操作请求有两类,分别为查询和更新。其中更新包括“删”“改”“查”。
数据库管理系统在执行上述对数据库的操作时,主要有两种方式:解释方法和预编译方法。解释方法是将数据库管理系统作为数据库的核心成分,同时将每一次的命令都通过数据库管理系统进行执行;而预编译则是在运行之前,对将要执行的数据库语句进行编译处理,保存为可执行的代码。随着数据库技术的发展,前者已经逐渐被后者取代。
数据目录
数据目录的定义
数据目录时一组关于数据的数据,也被称之为元数据。
数据目录的基本功能
数据目录的基本功能是将数据库中的数据进行统一管理,实现大范围内的数据共享,并且使系统将相关定义和描述进行长期保存。
数据目录与一般数据的区别
与一般数据相比,数据目录只能由系统定义和为系统所有,在初始化时由系统自动生成,而不能够用SQL之类的语句定义,同时往往相对而言是静态的。也就是一般定义了数据的组织形式之后一段时间不会发生改变;而一般的数据可以使用SQL之类的语句进行定义,同时往往是动态的,也就是数据库中的数据可以进行更新。