论文部分内容阅读
摘要:本文重点阐述如何运用技术手段通过关系型数据库管理系统进行数据库表格的创建及数据维护。
关键词:关系型数据库管理系统;数据库;表;技术
关系型的数据库管理系统在各种不同的业务应用系统中得到了广泛的运用,它不僅提供了大量数据的存储及检索功能,还提供了数据的安全与管理功能。在进行业务系统的数据库设计时,一般都要从数据库的概念设计开始,然后进行数据库的逻辑设计,最后进行数据库的物理设计三个步骤。本文仅探讨如何通过不同的技术手段进行有效的数据库表格的物理设计,从而提高数据库数据的完整性及有效性。
一、数据库表格创建的依据
在系统的设计中,有一部分是数据库设计,数据库的设计通常分为概念设计、逻辑设计和物理设计三个部分,每个步骤需要循序渐进,根据项目分析做好概念设计后,才能根据概念设计进行逻辑设计,而物理设计则是根据逻辑设计的结果进行。数据库表格主要作用是用来进行数据存储的,属于数据库设计的一部分内容,数据库表格创建属于物理设计阶段的工作,因此表格的创建需要根据逻辑设计展开。在进行数据库物理设计时,需要在逻辑设计的基础之上充分考虑不同类型的数据库,如:Oracle和SQL Server它们在表示表格中列的数据类型就存在差异,它们数据存储设计也不一样。
二、数据库表格创建的技术要点
(一)属性的原子性
在创建数据库表时,需要根据逻辑设计中的每个实体建立,这些实体需要确定含有哪些属性,属性对应数据库表中的列,每个属性的划分建议是原子性,即属性最小化,不可再分解;属性的多少建议与项目实用性关联综合考虑。另外,属性不可以乱分,例如不能将属于A实体的属性划分给B,将B的属性划分给A或其他。
(二)数据类型约束
在创建数据表对应E-R图中的实体,表中的列对应实体中的属性,在建立数据库表时,需要确定属性对应的列的数据类型,如果数据类型选择错误,会导致意想不到的后果。例如:员工实体中,存在属性工号,在设置的工号属性列选择的数据类型建议使用varchar(10),如果用户建表时采用int类型,结果将无法达到用户想要的结果。假定张三的工号为004,如果是varchar类型,数据按照用户要求进行,如果采用int类型存储,结果数据只能以4的形式存在,显然这不是用户想看到的结果。
自定义的数据类型也是维护数据完整性的一个手段,例如在员工表中,有性别属性列,可以采用nchar(1)来存储,用户可以输入性别男或女的值,但是却无法控制输入男或女之外的值,如果是之外的值,显然不符合客观事实要求。针对这种问题,用户可以采用自定义性别数据类型,确保用户只能输入性别男和女,先定义一种规则:
create rule sexRule as @value in (‘男’, ‘女’)
定义完规则后,创建性别数据类型:
create type sex from nchar(1)
将创建好的数据类型sex与定义好的sexRule规则进行绑定,然后将性别一列设置成数据类型为sex,这样将确保性别列的数据正确有效,只能是“男”或者“女”中的任何一个值。
(三)Check条件约束
在数据的有效性控制方面,光靠数据类型约束控件是不够的,例如,如果有学生信息表中存在入学年龄一列,在数据类型的选择是整型,可是年龄不能是任何整数,不能太大,也不太小,必须是一个有效的范围,例如:17-30年龄范围内,要做到这点,使用check约束条件可以实现,在年龄列设置check约束,输入SQL代码:
([NianLing]>=(17) AND [NianLing]<=(30))
设置完成后,年龄的约束会自动应用,您只要在输入年龄列数据时,数据只能在17-30之间,包含17和30。
(四)主键技术
主键(primary key) 是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。也就是说,在一张表格记录中,每行记录的数据如果出现重复,只要存在一列数据的不同,这是用来实体之间不同的唯一标识。例如在学生表中,“学号”可以是主键,姓名可以一样,但“学号”不一样;在教师表中,教师的“工号”可以是主键。在创建数据库表时,建议每张表至少设置一个主键。
(五)参照完整性
数据库设计中,为了数据的完整有效,且减低数据的冗余度,一般要求做到实体的完整性、用户定义的完整性和参照的完整性。例如有班级和学生两张表,学生表中,存在“班级”列,该列如果存班级的名称,在数据管理中会出现难以预料的严重后果,例如库中有几万名学生,出现某个的班级信息错误,这时需要对这些记录进行修改,一是工作量大,二是容易出现错误。为了解决类似于这样的问题,建议将班级表与学生表中的“班级”列进行关联,在学生表中的“班级”列中存放班级表的主键值,这样在设计要求将班级表中的班级“编号”列主键作为学生表“班级”列的外键(外键:某表的主键作为其他表的列),学生表“班级”列的数据类型、长度要求和班级表中的“编号”列的数据类型、长度一致。例如前面提到的学生表班级名称错误,只需要修改班级表中的班级“名称”列即可,无需修改学生表中的“班级”列信息,这样维护的数据量大大减少,且容易控制,如果需要查看学生表中的完整班级信息,只需要参照班级表即可。在关联的表格中建立主外键就是参照完整性的技术应用体现。
作者简介:王平华,江西波阳,江西现代职业技术学院研究生,研究方向:软件工程。
关键词:关系型数据库管理系统;数据库;表;技术
关系型的数据库管理系统在各种不同的业务应用系统中得到了广泛的运用,它不僅提供了大量数据的存储及检索功能,还提供了数据的安全与管理功能。在进行业务系统的数据库设计时,一般都要从数据库的概念设计开始,然后进行数据库的逻辑设计,最后进行数据库的物理设计三个步骤。本文仅探讨如何通过不同的技术手段进行有效的数据库表格的物理设计,从而提高数据库数据的完整性及有效性。
一、数据库表格创建的依据
在系统的设计中,有一部分是数据库设计,数据库的设计通常分为概念设计、逻辑设计和物理设计三个部分,每个步骤需要循序渐进,根据项目分析做好概念设计后,才能根据概念设计进行逻辑设计,而物理设计则是根据逻辑设计的结果进行。数据库表格主要作用是用来进行数据存储的,属于数据库设计的一部分内容,数据库表格创建属于物理设计阶段的工作,因此表格的创建需要根据逻辑设计展开。在进行数据库物理设计时,需要在逻辑设计的基础之上充分考虑不同类型的数据库,如:Oracle和SQL Server它们在表示表格中列的数据类型就存在差异,它们数据存储设计也不一样。
二、数据库表格创建的技术要点
(一)属性的原子性
在创建数据库表时,需要根据逻辑设计中的每个实体建立,这些实体需要确定含有哪些属性,属性对应数据库表中的列,每个属性的划分建议是原子性,即属性最小化,不可再分解;属性的多少建议与项目实用性关联综合考虑。另外,属性不可以乱分,例如不能将属于A实体的属性划分给B,将B的属性划分给A或其他。
(二)数据类型约束
在创建数据表对应E-R图中的实体,表中的列对应实体中的属性,在建立数据库表时,需要确定属性对应的列的数据类型,如果数据类型选择错误,会导致意想不到的后果。例如:员工实体中,存在属性工号,在设置的工号属性列选择的数据类型建议使用varchar(10),如果用户建表时采用int类型,结果将无法达到用户想要的结果。假定张三的工号为004,如果是varchar类型,数据按照用户要求进行,如果采用int类型存储,结果数据只能以4的形式存在,显然这不是用户想看到的结果。
自定义的数据类型也是维护数据完整性的一个手段,例如在员工表中,有性别属性列,可以采用nchar(1)来存储,用户可以输入性别男或女的值,但是却无法控制输入男或女之外的值,如果是之外的值,显然不符合客观事实要求。针对这种问题,用户可以采用自定义性别数据类型,确保用户只能输入性别男和女,先定义一种规则:
create rule sexRule as @value in (‘男’, ‘女’)
定义完规则后,创建性别数据类型:
create type sex from nchar(1)
将创建好的数据类型sex与定义好的sexRule规则进行绑定,然后将性别一列设置成数据类型为sex,这样将确保性别列的数据正确有效,只能是“男”或者“女”中的任何一个值。
(三)Check条件约束
在数据的有效性控制方面,光靠数据类型约束控件是不够的,例如,如果有学生信息表中存在入学年龄一列,在数据类型的选择是整型,可是年龄不能是任何整数,不能太大,也不太小,必须是一个有效的范围,例如:17-30年龄范围内,要做到这点,使用check约束条件可以实现,在年龄列设置check约束,输入SQL代码:
([NianLing]>=(17) AND [NianLing]<=(30))
设置完成后,年龄的约束会自动应用,您只要在输入年龄列数据时,数据只能在17-30之间,包含17和30。
(四)主键技术
主键(primary key) 是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。也就是说,在一张表格记录中,每行记录的数据如果出现重复,只要存在一列数据的不同,这是用来实体之间不同的唯一标识。例如在学生表中,“学号”可以是主键,姓名可以一样,但“学号”不一样;在教师表中,教师的“工号”可以是主键。在创建数据库表时,建议每张表至少设置一个主键。
(五)参照完整性
数据库设计中,为了数据的完整有效,且减低数据的冗余度,一般要求做到实体的完整性、用户定义的完整性和参照的完整性。例如有班级和学生两张表,学生表中,存在“班级”列,该列如果存班级的名称,在数据管理中会出现难以预料的严重后果,例如库中有几万名学生,出现某个的班级信息错误,这时需要对这些记录进行修改,一是工作量大,二是容易出现错误。为了解决类似于这样的问题,建议将班级表与学生表中的“班级”列进行关联,在学生表中的“班级”列中存放班级表的主键值,这样在设计要求将班级表中的班级“编号”列主键作为学生表“班级”列的外键(外键:某表的主键作为其他表的列),学生表“班级”列的数据类型、长度要求和班级表中的“编号”列的数据类型、长度一致。例如前面提到的学生表班级名称错误,只需要修改班级表中的班级“名称”列即可,无需修改学生表中的“班级”列信息,这样维护的数据量大大减少,且容易控制,如果需要查看学生表中的完整班级信息,只需要参照班级表即可。在关联的表格中建立主外键就是参照完整性的技术应用体现。
作者简介:王平华,江西波阳,江西现代职业技术学院研究生,研究方向:软件工程。