论文部分内容阅读
摘要:该文介绍了数据库的概念及特点,以及数据库设计中的规范化,并详细介绍了数据库范式的定义及使用,介绍了在数据库范式在数据库设计中的重要性。
关键词:数据库;数据库特点;数据库范式
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)23-0010-02
数据库技术是研究数据库结构、存储、设计和使用的一门软件科学,是进行数据管理和处理的技术。随着互联网 时代的到来,数据库技术在实际生活中得到了广泛的应用,这其中如何设计出合理的数据库结构,以便更规范合理的存放数据就显得尤为重要。
1 数据库
1.1数据库的概念
简单来说,数据库就是存放数据的仓库。就像我们现实中的仓库一样,不同的是这个仓库必须建立在计算机上,而且里面存放的是数据。严格来讲,数据库是长期储存在计算机内、有组织的、可共享的数据集合。
1.2数据库的特点
1)数据存储结构化
结构化数据也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。
2)数据可共享
数据共享指数据库中存放的数据可以被多个用户同时访问和使用。
3)数据冗余度小
数据冗余是指数据之间的重复,也就是说同一数据存储在不同数据文件中的现象,同文件系统相比,由于数据库实现了数据共享,避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
4)数据具有独立性
数据的独立性是数据库系统的最基本的特征之一 。数据独立性是指应用程序和数据结构之间相互独立,互不影响。
2 数据库范式
2.1相关术语
在介紹数据库范式之前,要了解关系数据库中的一些基本概念,这些概念的理解,对下面理解数据库范式理论至关重要。
实体:现实世界中客观存在并可以被区别的事物。比如“一个学生”、“一本书”等。需要注意的是这里所说的“事物”不仅是客观存在的,可以看得见,摸得着“东西”,它也可以是虚拟的,抽象的概念和联系,比如“信息工程系”这样的一个部门。
属性:实体所具有的某一特性称之为属性,属性是个逻辑概念,比如说,“姓名”是“人”的一个属性。
元组:二维表中的一行就是一个元组,一行元组就是一个实体,比如学生表中的一行,就是指一个学生,而现实中的一个学生就是一个实体。
码:表中可以唯一确定一个元组的某个属性(或者属性组),就叫码。此时,该属性中的值是不能出现重复的,否则元法唯一确定一个元组。
外码:表中的一个属性(或属性组)不是码,但是它是另外一个表中的码,它就是外码。
2.2 数据库范式
1971年E.F.Codd提出了规范化理论,在设计关系数据库时,遵守这些规范化理论,是为了设计出结构合理,数据冗余小,存储效率高的数据库模式。
目前,关系数据库常用的范式有:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)。在进行数据库设计时一般能够满足前三个范式就算是比较合理的数据库设计了,本文也着重介绍前三个范式。
1)第一范式
第一范式(1NF):属性不可分。第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库关系模式满足第一范式。
如下图中职工(一)的电话属性中包含两个值,违反了第一范式。
解决方法是,将电话属性拆分成手机和座机两个属性后,每个属性的值就唯一了,因此,职工(二)符合第一范式,如下图所示。
2)第二范式
第二范式(2NF):若关系模式满足1NF,并且每个非码属性均完全依赖于码,则满足第二范式。第二范式在第一范式的基础之上更进一层,第二范式需要确保关系模式中的每一个属性都和码相关,而不能只与码的某一部分相关(主要针对联合码而言)。
如下图中订单(一)的每个属性中的值均为单个,不存在多值现象,满足第一范式。通过分析,发现该关系模式中的码是由订单编号和产品编号构成的联合码,发现订购日期和码是完全相关的,但是价格属性只与码中的产品编号相关,与订单编号无关,价格只部分依赖于码,订单(一)不满足第二范式。
解决方法是,将订单(一)拆分成订单(二)和产品两个关系模式,如下图所示。其中非码属性订购日期完全依赖于码属性订单编号,非码属性价格完全依赖于码属性产品编号,从而满足第二范式。
3)第三范式
第三范式(3NF):如果一个关系模式满足2NF,并且所有非码属性都必须直接依赖于码属性,不能传递依赖,则满足第三范式。首先要满足第二范式,也就是每个非码属性都完全依赖于主码,而不是主码的一部分。其次非码属性之间不存在传递依赖,即不能出现这种情况,若xàz,又存在x→y,y→z,则称z传递依赖于x,这样就不满足第三范式。
如下图中的学生(一),通过分析发现学号为主码,其中的非码属性 :姓名, 出生日期, 系部, 系部地点,系部电话均完全依赖于学号,满足第二范式,但是存在:学号 → 系部 → (系部地点,系部电话),即存在非码属性系部地点、系部电话传递依赖于主属性学号,因此,不满足第三范式。
解决方法是,将学生(一)拆分成学生(二)和系部两个关系模式,如下图所示。其中码属性学号→(姓名,出生日期), 系部 → (系部地点,系部电话),从而消除了传递依赖,满足第三范式。
3 总结
综上所述,只有在数据库设计时遵守数据库的三大范式理论,所设计出的关系模式才会更加合理,才会大大降低数据冗余,解决插入异常,更新异常和删除异常,从而确保了数据的存储规范。
参考文献:
[1] 邹琼.浅谈数据库设计中范式的应用[J].湖北经济学院学报,2011.
[2] 杨学全.SQL Server实例教程[M].电子工业出版社,2011.
[3] 数据库设计三大范式 http://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html
[4] 数据库范式理论.https://baike.baidu.com/item/数据库范式/7309898?fr=aladdin.
【通联编辑:王力】
关键词:数据库;数据库特点;数据库范式
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)23-0010-02
数据库技术是研究数据库结构、存储、设计和使用的一门软件科学,是进行数据管理和处理的技术。随着互联网 时代的到来,数据库技术在实际生活中得到了广泛的应用,这其中如何设计出合理的数据库结构,以便更规范合理的存放数据就显得尤为重要。
1 数据库
1.1数据库的概念
简单来说,数据库就是存放数据的仓库。就像我们现实中的仓库一样,不同的是这个仓库必须建立在计算机上,而且里面存放的是数据。严格来讲,数据库是长期储存在计算机内、有组织的、可共享的数据集合。
1.2数据库的特点
1)数据存储结构化
结构化数据也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。
2)数据可共享
数据共享指数据库中存放的数据可以被多个用户同时访问和使用。
3)数据冗余度小
数据冗余是指数据之间的重复,也就是说同一数据存储在不同数据文件中的现象,同文件系统相比,由于数据库实现了数据共享,避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
4)数据具有独立性
数据的独立性是数据库系统的最基本的特征之一 。数据独立性是指应用程序和数据结构之间相互独立,互不影响。
2 数据库范式
2.1相关术语
在介紹数据库范式之前,要了解关系数据库中的一些基本概念,这些概念的理解,对下面理解数据库范式理论至关重要。
实体:现实世界中客观存在并可以被区别的事物。比如“一个学生”、“一本书”等。需要注意的是这里所说的“事物”不仅是客观存在的,可以看得见,摸得着“东西”,它也可以是虚拟的,抽象的概念和联系,比如“信息工程系”这样的一个部门。
属性:实体所具有的某一特性称之为属性,属性是个逻辑概念,比如说,“姓名”是“人”的一个属性。
元组:二维表中的一行就是一个元组,一行元组就是一个实体,比如学生表中的一行,就是指一个学生,而现实中的一个学生就是一个实体。
码:表中可以唯一确定一个元组的某个属性(或者属性组),就叫码。此时,该属性中的值是不能出现重复的,否则元法唯一确定一个元组。
外码:表中的一个属性(或属性组)不是码,但是它是另外一个表中的码,它就是外码。
2.2 数据库范式
1971年E.F.Codd提出了规范化理论,在设计关系数据库时,遵守这些规范化理论,是为了设计出结构合理,数据冗余小,存储效率高的数据库模式。
目前,关系数据库常用的范式有:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)。在进行数据库设计时一般能够满足前三个范式就算是比较合理的数据库设计了,本文也着重介绍前三个范式。
1)第一范式
第一范式(1NF):属性不可分。第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库关系模式满足第一范式。
如下图中职工(一)的电话属性中包含两个值,违反了第一范式。
解决方法是,将电话属性拆分成手机和座机两个属性后,每个属性的值就唯一了,因此,职工(二)符合第一范式,如下图所示。
2)第二范式
第二范式(2NF):若关系模式满足1NF,并且每个非码属性均完全依赖于码,则满足第二范式。第二范式在第一范式的基础之上更进一层,第二范式需要确保关系模式中的每一个属性都和码相关,而不能只与码的某一部分相关(主要针对联合码而言)。
如下图中订单(一)的每个属性中的值均为单个,不存在多值现象,满足第一范式。通过分析,发现该关系模式中的码是由订单编号和产品编号构成的联合码,发现订购日期和码是完全相关的,但是价格属性只与码中的产品编号相关,与订单编号无关,价格只部分依赖于码,订单(一)不满足第二范式。
解决方法是,将订单(一)拆分成订单(二)和产品两个关系模式,如下图所示。其中非码属性订购日期完全依赖于码属性订单编号,非码属性价格完全依赖于码属性产品编号,从而满足第二范式。
3)第三范式
第三范式(3NF):如果一个关系模式满足2NF,并且所有非码属性都必须直接依赖于码属性,不能传递依赖,则满足第三范式。首先要满足第二范式,也就是每个非码属性都完全依赖于主码,而不是主码的一部分。其次非码属性之间不存在传递依赖,即不能出现这种情况,若xàz,又存在x→y,y→z,则称z传递依赖于x,这样就不满足第三范式。
如下图中的学生(一),通过分析发现学号为主码,其中的非码属性 :姓名, 出生日期, 系部, 系部地点,系部电话均完全依赖于学号,满足第二范式,但是存在:学号 → 系部 → (系部地点,系部电话),即存在非码属性系部地点、系部电话传递依赖于主属性学号,因此,不满足第三范式。
解决方法是,将学生(一)拆分成学生(二)和系部两个关系模式,如下图所示。其中码属性学号→(姓名,出生日期), 系部 → (系部地点,系部电话),从而消除了传递依赖,满足第三范式。
3 总结
综上所述,只有在数据库设计时遵守数据库的三大范式理论,所设计出的关系模式才会更加合理,才会大大降低数据冗余,解决插入异常,更新异常和删除异常,从而确保了数据的存储规范。
参考文献:
[1] 邹琼.浅谈数据库设计中范式的应用[J].湖北经济学院学报,2011.
[2] 杨学全.SQL Server实例教程[M].电子工业出版社,2011.
[3] 数据库设计三大范式 http://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html
[4] 数据库范式理论.https://baike.baidu.com/item/数据库范式/7309898?fr=aladdin.
【通联编辑:王力】