不管你在开发中是否用得到,作为一名程序员,不懂数据库是没法混的,但是会用数据库并不能证明你懂数据库的知识所以小雨建议大家还是抽时间系统的学习一下,今天我给大家简单的介绍一些数据库的基础知识。
一、数据库系统的组成
数据库系统是采用数据库技术的计算机系统,是由数据库(数据)、数据库管理系统(软件)、数据库管理员等组成。
二、数据模型
常见的数据模型有层次模型、网状模型、关系模型,下面分别介绍。
1.层次模型
用树形结构表示实体类型及实体间关系的数据模型称为层次模型,它具有如下特点:
·每棵树有且仅有一个无双亲结点,称为根。
·树中除根外的所有结点有且仅有一个双亲结点。
2.网状模型
用有向图结构表示实体类型及实体间联系的数据模型称为网状模型。用网状模型编写程序极其复杂,数据的独立性差。
3.关系模型
关系模型以二维表来描述数据的数据模型。 关系模型中,每个表有多个字段和记录行,每个字段有固定的属性。关系模型数据结构简单、清晰、具有很高的数据独立性,因此是目前主流的数据库数据模型。
关系模型基本术语:
·关系:一个二维表就是一个关系。
·元组:二维表中的一行,即表中的记录。
·属性:二维表中的一列,用类型和值表示。
·域:每个属性取值变化的范围。
关系中的数据约束:
·实体完整性约束:约束关系的主键中属性值不能为空。
·参照完整性约束:关系之间的基本约束。
·用户定义的完整性约束:反映了具体应用中数据的语义要求。
三、关系数据库的规范化
关系数据库中的每一个关系都要满足一定的规范。根据满足规范的条件的不同,可分为5个等级:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)。其中,NF是Normal Form的缩写。一般情况下,只要把数据规范到第三范式标准即可满足需要。
1.第一范式(1NF)
在一个关系中,消除重复字段,且各自段都是最小的逻辑单位。(无重复属性)
2.第二范式(2NF)
若关系模型属于第一范式,则关系中每一个非主关键字段都完全依赖于主关键字段,不能只依赖于主关键字的一部分。(例如有两个主键时,不能有某个属性只依赖于其中一个)
3.第三范式(3NF)
若关系属于第一范式,且关系中所有非主关键字段都只依赖于主关键字段,第三范式要求消除传递依赖。(例如学生所在系依赖于学号,系地址又依赖于所在系,则学号对系地址的依赖是通过系来实现的)
四、实体与关系
实体是指客观存在并可以互相区别的事物。实体既可以是实际的事物,也可以使抽象的概念。实体之间有如下三种关系。
1.一对一关系:是指表A中的一条记录在表B中有且只有一条相匹配的记录。在一对一关系中,大部分相关信息都在一个表中。
2.一对多关系:是指表A中的行可以在表B中有许多匹配行,但表B中的行只能在表A中有一个匹配行。
3.多对多关系:是指关系中每个表的行在相关表中具有多个匹配行。在数据库中,多对多关系的建立是依靠第3个表即连接表实现的。连接表包含两个表的主键列,然后从两个相关表的主键部分分别创建与连接表中的匹配列的关系。
五、数据库的体系结构
1.数据库三级模式结构
数据库的三级模式结构是指模式、外模式和内模式
(1)模式
模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式,处于三级结构的中间层。
(2)外模式
也称用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据逻辑表示。外模式是模式的子集,一个数据库可以有多个外模式。外模式是保证数据库安全的一个有力措施。
(3)内模式
内模式也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部表示方式。
2.三级模式之间的映射
为了能够在内部实现数据库的三级模式的联系和转换,数据库管理系统在三级模式之间提供了两层映射,分别是外模式/模式映射和模式/内模式映射。
(1)外模式/模式映射
一个模式可以有多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映射。当模式改变时,由数据库管理员对各个外模式/模式映射做相应的改变,可以使外模式保持不变。这样,使数据库外模式编写的应用程序就不用修改,保证了数据与程序的逻辑独立性。
(2)模式/内模式映射
数据库中只有一个模式和内模式,因此模式/内模式映射是唯一的,它定义了数据库的全局逻辑结构与存储结构之间的对应关系。当时数据库的存储结构改变时,由数据库管理员对模式/内模式映射做相应的改变,可以使模式不变,相应的应用程序也不做变动。保证了数据与存储结构的物理独立性。