《数据库系统概论》这门课研究的是计算机领域的这样一个问题:在信息时代,如何对于海量的数据进行有效的管理.
于人工管理,文件管理之后,数据库管理系统应运而生,它扬弃了前二者,以其显著的优点而为我们的时代所接纳.
要论其优点,自然是从它对问题的有效解决这个角度出发,即解决对于数据的有效管理.之所以它能够解决好这样一个问题,在于,用它管理数据时,
- 数据呈现出结构化.结构决定功能,有结构的数据自然优于杂乱无章的数据.
- 数据独立性高.这个独立性体现在逻辑层面和物理层面两个方面.(我们经常从这两个方面来研究问题,早在学习数据结构时就有所接触,之后的学习过程中我们仍然要沿用,可以说,这样的一种划分具有某种方法论意味)独立性的好处就在于,我们规避了牵一发而动全身的窘境.
- 数据由DBMS统一管理,其好处在于,从大的来说,专业化分工带来效率.
- 数据的共享性高,冗余度低,易扩充.说白了就是于人而言更好用。
以上四点未按照课本所给顺序排列。之所以自拟顺序于在这于四点之间存在内在逻辑,即由内而外——数据库系统不仅是一个计算机系统,而是一个人机系统(当然,任何科学都不能离开人,归根到底都要为人服务),因此我按照,从机器出发逐步面向人,的逻辑进行排列。
说完了优点,再细致地探讨一下数据库系统。
数据库,顾名思义,数据的仓库。所谓数据,不仅是指我们通常意义上所理解的数值型数据,还包括一切能够数字化的信息。而数据库就是长期存储在计算机内部的大量数据的集合,同时它还具有两个规定性,1,孤立的来看,它的数据是有组织的。2,联系的来看,它的数据是可共享的。而数据库管理系统,就是对数据库进行管理的一个系统软件。
要完成这样的一个数据库,在设计之初首先得建立模型(现代科学的方法论之一)。首先要对现实世界的数据特征进行抽象,即数据模型,其次要对数据库系统进行建模。
数据模型理论上只有一个规定性,那就是有效的模拟现实世界。然而实际中还得具有可操作性,这一点可以从两个方面来看,其一,对于机器而言,要好实现;其二,对于人而言,要好理解。(又涉及到这个问题,即人-机问题)。同样,按照这个标准进行分类,数据模型分为两类:1,于人而言,概念模型。2,于机器而言,逻辑模型和物理模型(再次出现)。
一般而言,数据模型需要具备以下的几个要素:1,静态的来看,数据结构。2,动态的来看,数据操作。3,规则意义上的,完整性约束条件。
分别来看,概念模型中要解决的核心问题是对于实体的抽象。而这个问题又有两个方面。一方面孤立的来看,就实体本身而言,实体是客观存在并可以互相区别的事物,实体型是某一类具有相同质的规定性的实体的总称,实体集是某一实体型的实体的全体集合。此外,实体的规定性还可以划分为各种属性,其中某种属性能够将实体唯一标识,称之为码,域是属性值得取值范围。另一方面联系的来看,就实体之间的联系而言,抽象出“联系”这个概念。至于实体之间的联系,两者之间,从量的角度划分不外乎三种,从略;多者之间,类推。因为概念模型就是由实体和联系所共同规定着的,所以导出一种表达方式:E-R模型。
实际中应用的数据模型有多种。我们重点要探讨的是关系数据模型。关系数据模型具有坚实的数学基础,其模型简洁,操作透明,从而得到广泛应用。
简单的来讲,关系型数据模型的数据结构就是一张二维表,它的表名叫做关系,行叫做元组,列叫做属性。关系型数据模型的数据操作可分为更改性操作和非更改性操作,前者包括插入,删除,修改等;后者包括查询。关系型数据模型的完整性约束包括三种:实体完整性,参照完整性,和用户定义完整性。前两者是语法层面上的约束,后者是语义层面上的约束。
说完了数据模型再来说数据库系统的模型。
数据库系统的模型我们又称之为数据库系统三级模式结构,分别是:1.模式,表征全体数据的逻辑结构。2,外模式,表征数据的局部逻辑结构。3,内模式,表征数据的物理结构,亦即存储结构。(逻辑-存储的划分方法再次出现)。
此外,在数据库系统三级模式结构的基础上,相应的派生出二级映像功能,即外模式/模式映像和模式/内模式映像。
数据库系统三级模式和两级映像的系统结构保证了数据库系统中具有较高的逻辑独立性和物理独立性。