SQL SERVER(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41463006/article/details/79949172
一、数据库设计

1、现实世界数据化、信息化

要求:明确实体、属性、属性值、实例、实体标识符、联系及联系类型的概念。

实体:现实世界中客观存在并可相互区别的事物或概念。
属性:实体所具有的某种特性。
属性值:属性的具体取值。
实例:实体表示的是一类事物,其中的一个具体事物成为实例。
实体标识符:唯一标识实体中的每一行的属性或属性的组合。
联系及联系类型:实体不是孤立存在的,实体间有着相互联系。实体间的联系分为1对1,1对多和多对多的联系类型。

2、画出实体关系图

实体关系图:通常使用E-R图,或称为E-R模型描述现实世界的信息结构。

矩形:表示实体,矩形内标出实体名。
椭圆:表示实体和联系所具有的属性,椭圆内标出属性名。
菱形:表示实体之间的联系,菱形框内标出联系名。
连线:用来表示实体与实体所具有的属性、联系与联系所具有的属性,以及实体和联系。

3、将E-R图转换为关系数据模型

关系数据模型:目前数据库应用系统最普遍采用的数据模型,也是应用最广泛的数据模型。关系数据模型用二维表来表示实体及实体之间的联系。

关系数据模型二维表的特点:
①表中的每列都是不可再细分的基本数据项。
②每行的名称不同,数据类型相同或者兼容。
③行的顺序无关紧要。
④列的顺序无关紧要。
⑤关系中不能存在完全相同的两行。

▲将E-R图转换为关系数据模型:
①将一个实体或实体间的联系转换为表,将实体的属性或联系的属性转换为表的列。
②实体或联系的标识符就是表的主关键字。

4、规范化关系数据模型:

关系模型规范化:为消除存储异常、减少数据冗余,保证数据完整性(数据正确性、一致性)和存储效率,一般将关系数据模型规范到Ⅲ范式。

先了解几个概念:
函数依赖:表中某属性B的值完全能由另一个属性A(主关键字)的值所决定,则称属性B函数完全函数依赖于主属性A,或称属性A决定了属性B,记作 属性A-->属性B。
部分函数依赖:表中某属性B只是函数依赖于主关键字的部分属性。
函数传递依赖:属性之间存在传递的函数依赖关系。


Ⅰ范式:一个关系的每个属性都是不可再分的基本数据项,则该属关系是Ⅰ范式。
Ⅱ范式:Ⅱ范式首先是Ⅰ范式,而且关系中的每一个非主属性完全函数依赖于主关键字,则该关系是Ⅱ范式。

▲将非Ⅱ范式规范为Ⅱ范式的方法:将部分函数依赖关系中的主属性(决定方)和非主属性从关系中提取出来,单独构成一个关系;将关系中余下的其他属性加上主关键字、构成关系。

Ⅲ范式:Ⅲ范式首先是Ⅱ范式,且关系中的任何一个非主属性都不函数传递依赖于主关键字。

特点:Ⅲ范式的表数据基本独立,表和表之间通过公共关键字进行联系。

5、数据完整性:用来保证数据的一致性和正确性,大致可分为列数据完整性,表数据完整性,表和表之间的参照完整型。
列完整性:也被称为域完整性或用户定义完整性。列完整性指表中任一列数据必须在所允许的有效范围内。
表完整性:也被称为实体完整性。表完整性指表中必须有一个主键,且主键值不能为空(NULL)。
参照完整性:也被称为引用完整性,指外键值必须与相应的主键值相互参照。(外键也称为外关键字或外码。一个表的外键不是本表的主键,但它一定是其他表的主键。外键值来源于主键值,主键值可以为空。外键是一个来自两个表的公共键,通过使用主键和外键以建立表和表之间的联系。)

注意
①对外键所在的表执行插入(INSERT)操作时,要保证外键值一定要在主标的主键值中存在。
②更新(UPDATE)外键值时,要保证更新后的外键值在主表的主键值中存在。
③更新(UPDATE)主键值时,要注意外键值中是否存在该值,如果存在,则禁止进行更新或者级联更新与更新的主键值完全相同的所有外键值。
④删除(DELETE)主键的数据行时,一定注意删除的数据行的主键值在外键值中是否存在,若存在,则禁止删除或级联删除与删除的主键值完全相同的外键值。

知识拓展
①关键字:用来唯一标识表中的每一行的属性或属性的组合,通常也称为关键码,码或键。
②候选关键字与主关键字:将那些可以用来做关键字的属性或属性的组合称为候选关键字(亦称为候选键)。将选中的那些关键字称为主关键字,或称为主码、主键。在一个表中只能指定一个主键,它的值是唯一的且不允许为空。
③公共关键字:也成为公共键,是连接两个表的公共属性。
④主表和从表:将主键所在的表称为主表,将外键所在的表称为从表(子表)。
阅读更多

扫码向博主提问

raining_road

非学,无以致疑;非问,无以广识
去开通我的Chat快问
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页