收藏 分享(赏)

项目2 学生成绩管理数据库设计.ppt

上传人:dreamzhangning 文档编号:3351778 上传时间:2018-10-17 格式:PPT 页数:55 大小:1.27MB
下载 相关 举报
项目2 学生成绩管理数据库设计.ppt_第1页
第1页 / 共55页
项目2 学生成绩管理数据库设计.ppt_第2页
第2页 / 共55页
项目2 学生成绩管理数据库设计.ppt_第3页
第3页 / 共55页
项目2 学生成绩管理数据库设计.ppt_第4页
第4页 / 共55页
项目2 学生成绩管理数据库设计.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、项目2 学生成绩管理数据库设计,1能根据实际需要准确熟练绘制E-R图。2能将E-R图转换成关系模式。3能根据关系数据模式的规范化理论进行数据库的优化。4能对数据库建立约束,以保证数据的完整性和一致性。5能熟练地分析、设计小型数据库。,能力目标,项目描述,建造大楼需要设计图,创建数据库也一样。所以本项目就是通过设计一个学生成绩管理数据库,学会设计简单数据库。鉴于数据库设计中主要知识点是E-R图、关系模式及各种约束,所以,本项目学习的内容是:首先通过学生成绩管理数据库的分析及E-R图的绘制,了解常用数据库设计的步骤,学会绘制E-R图;其次通过将学生成绩管理数据库的E-R图转换成关系模式及规范化,掌

2、握E-R图转换为关系模式的规则、规范化理论;接下去通过对学生成绩管理数据库建立约束,学会数据库的完整性控制;最后通过课堂实训、课外实训来加强对数据库设计的实作能力。,学习任务,任务2.1:学生成绩管理数据库设计步骤及及概念结构设计 任务2.2:学生成绩管理数据库的逻辑结构设计 任务2.3:学生成绩管理数据库完整性约束设计,项目描述及学习任务,2.1 学生成绩管理数据库设计步骤及概念结构设计,在创建数据库之前,都必须设计好数据库。数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信

3、息要求和处理要求)。本学习任务是了解关系数据库设计步骤及学生成绩管理数据库E-R图的设计。,任务描述,2.1.1关系数据库设计步骤,按照规范化设计方法将数据库设计分为以下6个阶段 需求分析 概念结构设计 逻辑结构设计 数据库物理设计 数据库实施 数据库运行和维护,2.1.1关系数据库设计步骤,1需求分析阶段 准确了解与分析用户需求(包括数据与处理),综合各个用户的应用需求。此阶段是整个设计过程的基础,是最困难、最耗费时间的一步。 2概念结构设计阶段 对用户需求综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,用E-R图表示。此阶段是整个数据库设计的关键。 3逻辑结构设计阶段 将概念结构(

4、E-R图)转换为某个DBMS所支持的数据模型,如关系模型,形成数据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图(View),形成数据的外模式。,2.1.1关系数据库设计步骤,4数据库物理设计阶段 为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。也就说,根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。 5. 数据库实施阶段 运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果,建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 6. 数据库运行和维护阶段 数据库应用系统经过试

5、运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。,2.1.1关系数据库设计步骤,数据库设计思想原则 用户参与 发展眼光:系统不仅要满足用户目前的需求,也应满足近期要求,还要对于远期需求有相应的处理方案。,2.1.2 学生成绩管理系统需求分析,需求分析是设计数据库的起点,需求分析的结果将影响到各个阶段的设计,以及最后结果的合理性与实用性。需求分析要调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界,即分析用户的需求。 需求分析阶段,主要了解和分析的内容包括: 信息需求:用户需要从数据库中获得信息的内容与性质。 处理需求:

6、用户要求软件系统完成的功能,并说明对系统处理完成功能的时间、处理方式的要求。 安全性与完整性要求:用户对系统信息的安全性要求等级以及信息完整性的具体要求。,2.1.2 学生成绩管理系统需求分析,1需求分析的方法 跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录等。 2需求分析的难点 用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此无法一下子准确地表达自己的需求,他们所提出的需求往往不断地变化;设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求;新的硬件、软件技术的出现也会使用户需求发生变化。 为了解决这些问题,设计人员必须采用

7、有效的方法,与用户不断深入地进行交流,才能逐步了解并确定用户的实际需求。 3收集整理需求信息 收集到的信息,还需要进一步进行分析和整理,根据需求,把功能进行分类、合并成若干个功能模块。,2.1.2 学生成绩管理系统需求分析,4学生成绩管理系统的需求分析 经过相关人员调查、历史数据查阅、观摩实际的运作流程并进行需求分析,得出学生成绩管理系统的具体需求如下: 学生成绩管理系统主要完成学生选课、查看课程信息及成绩的功能,主要包括学生基本信息管理模块、课程基本信息管理模块、教师基本信息管理模块、学生选课管理模块、教师授课管理模块、成绩管理模块等。学生基本信息管理模块可以实现添加学生基本信息、修改和删除

8、学生信息;课程基本信息管理模块可以实现添加新课程信息、修改和删除课程信息;教师基本信息管理模块可以实现添加教师信息、修改和删除教师信息;学生选课管理模块可以实现学生选课、退改选管理;教师授课管理模块可以实现教师授课信息的添加、修改和删除;成绩管理模块可以实现教师输入成绩、修改成绩,按课程统计学生成绩,学生查看本人成绩等。,2.1.3学生成绩管理数据库的概念设计,1学生成绩管理数据库的E-R模型 E-R模型中有三个基本成份:实体、联系和属性。它是一个概念性模型,描述的是现实中的信息联系,而不涉及数据如何在数据库系统中的存放。,(1)实体:客观存在并相互区别的事物及其事物之间的联系。例如,一个学生

9、、一门课程、一名教师等都是实体。 (2) 属性:实体所具有的某一特性。例如,学生的学号、姓名、性别、出生日期、专业、入学时间等。,2.1.3学生成绩管理数据库的概念设计,(3) 联系:实体与实体之间以及实体与组成它的各属性间的关系,例如:学生和课程间存在“选课”联系、课程和教师间存在着“授课”联系等,联系分为:一对一联系,一对多联系,多对多联系。, 一对一联系(one-to-one):如果两个实体集A、B中的任意一个实体至多与另一个实体集中的一个实体对应联系,则称A、B为一对一联系。记为“1-1”联系。 一对多联系(one-to-many):设有两个实体集A和B,如果A中每个实体与B中任意个实

10、体(包括零个)有联系,而B中的每个实体至多与A中的一个实体有联系,则称该联系为“从A到B的1对多联系”,记为“1”联系。 多对多联系(many-to-many):如果两个实体集A、B中的每个实体都与另一个实体集中的任意个实体(包括零个实体)有联系,则称这两个实体集是多对多联系,记为“”联系。例如:“选课”联系,“学生”实体集中每名学生可选“课程”实体集中的多门课程,“课程”实体集中的每门课程可被“学生”实体集中的多名学生选修,那么“学生”和“课程”两个实体集是多对多的联系。,设计学生成绩管理数据库的E-R图如下:,E-R图的基本符号,矩形表示实体集,矩形框内写明实体名; 椭圆形表示属性,椭圆内

11、写明属性名,用无向边将其与相应的实体集连接起来; 菱形表示联系,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。,2.1.3学生成绩管理数据库的概念设计,2E-R图的设计 E-R图的设计方法有:自顶向下、自底向上、逐步扩张、混合策略。下面以自底向上设计概念结构的方法为例,介绍学生成绩管理数据库E-R图的设计步骤。,(1)设计分E-R图 标定局部应用中的实体集 现实世界中一组具有某些共同特性和行为的对象就可以抽象为一个实体集。对象和实体集之间是分类(is member of )的关系。例如:根据调查,拟建学生成绩管理系统的学校部分学生

12、信息如下表2-1所示。,表2-1 部分学生信息,可以把“周建明”、“董明山”、“钱鑫鑫”等对象抽象为“学生”实体集。,2.1.3学生成绩管理数据库的概念设计, 实体集的属性、标识实体集的主键 对象类型的组成成分可以抽象为实体集的属性。组成成分与对象类型之间是“聚集”(is part of)的关系。例如学号、姓名、性别、专业、出生年月、家庭住址、联系电话等可以抽象为学生实体的属性。用E-R图的基本符号设计“学生”实体集如图2-3所示。,2.1.3学生成绩管理数据库的概念设计, 实体集的属性、标识实体集的主键 对象类型的组成成分可以抽象为实体集的属性。组成成分与对象类型之间是“聚集”(is par

13、t of)的关系。例如学号、姓名、性别、专业、出生年月、家庭住址、联系电话等可以抽象为学生实体的属性。用E-R图的基本符号设计“学生”实体集如图2-3所示。,其中学号为标识学生实体集的主键。主键是实体集中唯一标识某一实体的属性,我们将在完整性约束部分详细学习。,2.1.3学生成绩管理数据库的概念设计,根据学生成绩管理数据库的需求分析,同理可得“课程”、“教师”实体集E-R图分别如图2-4、2-5所示。,实体集与属性是相对而言的,很难有截然划分的界限。同一事物,在一种应用环境中作为 “属性”,在另一种应用环境中就必须作为“实体”。,2.1.3学生成绩管理数据库的概念设计, 确定实体之间的联系及其

14、类型(1:1、1:n、m:n)。 根据需求分析,要考察实体之间是否存在联系,有无多余联系。例如:根据学生成绩管理数据库系统的需求分析,学生和课程间存在多对多的“选课”联系,课程和教师间存在着多对多的“授课”联系。其E-R图如图2-6所示。,2.1.3学生成绩管理数据库的概念设计,(2)合并分E-R图,生成初步E-R图 合并图2-3图2-6分E-R图,生成初步E-R图如图2-2。在合并过程中要检查各分E-R图之间是否存在着冲突。各分E-R图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。, 属性冲突(属性冲突分为以下两种情况) 属性域冲突,即属性值的类型、取值范围或取值集合不同。 例如:属性

15、“学号”有的定义为字符型,有的为数值型。 属性取值单位冲突。例如:属性“体重”有的以斤为单位,有的以公斤为单位。 命名冲突 命名冲突分为以下两种情况: 同名异义。不同意义的对象具有相同名称。 异名同义(一义多名)。同意义对象具有不相同名称。例:“员工”和“教工”。,2.1.3学生成绩管理数据库的概念设计, 结构冲突 结构冲突有以下三种情况: 同一对象在不同应用中具有不同的抽象。例如“课程”在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。 同一实体在不同局部视图中所包含的属性不完全相同,或者属性的排列次序不完全相同。 实体之间的联系在不同局部视图中呈现不同的类型。,例如实体E1与E2

16、在局部应用A中是多对多联系,而在局部应用B中是一对多联系;又如在局部应用X中E1与E2发生联系,而在局部应用Y中E1、E2、E3三者之间有联系。解决方法是根据应用的语义对实体联系的类型进行综合或调整。,2.1.3学生成绩管理数据库的概念设计,(3)修改与重构,生成基本E-R图 分E-R图经过合并生成的是初步E-R图。之所以称其为初步E-R图,是因为其中可能存在冗余的数据和冗余的实体间联系,即存在可由基本数据导出的数据和可由其他联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,因此得到初步E-R图后,还应当进一步检查E-R图中是否存在冗余,如果存在,应设法予以消除。

17、修改、重构初步E-R图以消除冗余,主要采用分析方法。除此之外,还可以用规范化理论来消除冗余,规范化理论将在下个任务中详细学习。,2.2 学生成绩管理数据库的逻辑结构设计,上一个任务,我们得到了学生成绩管理数据库的概念模型,根据关系数据库的设计过程,接下去要进行其逻辑结构设计,即将E-R图转换为关系模型。将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式。本学习任务通过将学生成绩管理数据库的E-R图转换为关系模式,掌握E-R图转换为关系模式的规则;同时通过将学生成绩管理数据库关系模式优化,即规范化,从而掌握关系数据模式规范化理论。,任务描述,2.2.1 E-R图

18、转换为关系模式的规则,1实体集转换为关系 实体集转换为关系的规则如下: (1)实体集对应于一个关系。 (2)关系名:与实体集同名。 (3)属性:实体集的所有属性。 (4)主键(主码):实体集的主键。,2.2.1 E-R图转换为关系模式的规则,2联系转换为关系 联系转换成为关系模式时,要根据联系方式的不同采用不同的转换方式。联系方式有一对一联系、一对多联系、多对多联系。 这三种不同方式的联系转换为关系的转换方法如下:,(1)一对一联系转换为关系的转换方法 将一对一联系转换为一个独立的关系:与该联系相连的各实体的主键以及联系本身的属性均转换为关系的属性,且每个实体的主键均是该关系的候选键。 将一对

19、一联系与某一端实体集所对应的关系合并,则需要在被合并关系中增加属性,其新增的属性为联系本身的属性和与联系相关的另一个实体集的主键。,2.2.1 E-R图转换为关系模式的规则,【,例2.1】将下图的E-R模型转换为关系模式,图2-7 一对一联系示例,解:联系形成关系独立存在: 班级表(编号,班名,备注),主键:编号; 班长表(学号,姓名,性别),主键:学号; 负责(编号,学号),主键:编号和学号。,将联系与实体集对应的关系合并,合并方案如下: 方案1:“负责”与“班级”两关系合并: 班级表(编号,班名,备注,学号),主键:编号; 班长表(学号,姓名,性别),主键:学号。 方案2:“负责”与“班长

20、”两关系合并: 班级表(编号,班名,备注),主键:编号; 班长表(学号,姓名,性别,编号),主键:学号。,2.2.1 E-R图转换为关系模式的规则,(2)一对多联系转换为关系的转换方法 方法一:将联系转换为一个独立的关系,其关系的属性由与该联系相连的各实体集的主键以及联系本身的属性组成,而该关系的主键为“多”端实体集的主键。 方法二:在“多”端实体集中增加新属性,新属性由联系对应的“一”端实体集的主键和联系自身的属性构成,新增属性后原关系的主键不变。,2.2.1 E-R图转换为关系模式的规则,【,例2.2】将下图的E-R模型转换为关系模式。,解:方法一:联系形成的关系独立存在: 班级表(编号,

21、班名,备注),主键:编号; 学生表(学号,姓名,性别),主键:学号; 属于(编号,学号),主键:学号。 方法二:将联系与实体集对应的关系合并: 班级表(编号,班名,备注),主键:编号; 学生表(学号,姓名,性别,编号),主键:学号。,图2-8 一对多联系示例,2.2.1 E-R图转换为关系模式的规则,(3)多对多联系的转换方法 在向关系模型转换时,一个多对多联系转换为一个关系。转换方法为:与该联系相连的各实体集的主键以及联系本身的属性均转换为关系的属性,新关系的主键为两个相连实体主键的组合(该主键为多属性构成的组合键)。,2.2.1 E-R图转换为关系模式的规则,【,例2.3】将下图的E-R模

22、型转换为关系模式。,解:图2-9为多对多联系的一个示例,该模型包含两个实体集(学生、课程)和一个多对多联系,该模型可转换为三个关系模式: 学生(学号,姓名,性别),主键:学号; 课程(课程号,课程名,学分,学时),主键:课程号; 选课(学号,课程号,成绩),主键:学号和课程号。,图2-9 多对多联系示例,2.2.1 E-R图转换为关系模式的规则,3E-R转换为关系的应用 根据前面介绍的一对一联系、一对多联系、多对多联系转换为关系的转换方法,则图2-2所示的学生成绩管理数据库的E-R图转换为关系模型如下: 学生(学号,姓名,性别,专业,出生年月,家庭地址,联系电话,总学分),主键:学号; 课程(

23、课程号,课程名,学分,学时,备注),主键:课程号; 选课(学号,课程号,课程名,成绩,学分),主键:学号; 教师(教师号,姓名,职称,部门,联系方式),主键:教师号; 授课(教师号,课程号,开课时间),主键:教师号,课程号。,2.2.2关系数据模式的规范化理论,规范化理论是将一个不合理的关系模式转化为合理的关系模式的理论,是围绕范式而建立的。 规范化理论认为,一个关系型数据库中所有的关系,都应满足一定的规范。因此,将关系应满足的规范要求分为几级,满足最低要求的一级叫做第一范式(1NF),在第一范式的基础上提出了第二范式(2NF),在第二范式的基础上又提出了第三范式(3NF),以后又提出了BCN

24、F范式,4NF,5NF。范式的等级越高,应满足的约束条件也越严格。规范的每一级别都依赖于它的前一级别,例如若一个关系模式满足2NF,则一定满足1NF。在实际的数据库设计过程中,通常需要用到的是前三类范式。第一范式:数据的原子性;第二范式:主键的绝对相关性;第三范式:依赖的传递性。,2.2.2关系数据模式的规范化理论,1第一范式(1NF) 如果关系模式R中不包含多值属性,则R满足第一范式(First Normal Form),记作: R1NF。1NF是对关系的最低要求,不满足1NF的关系是非规范化的关系。 例如,上个任务中学生成绩管理数据库的关系模式“选课”由“学号”、“课程号”、 “课程名”、

25、 “成绩”、“学分”五个属性组成。这个关系模式在实际应用过程中会存在这样问题,一个学生可以同时选择多门课程,现将此关系中“学号”作为关键字,“课程号”、“课程名”、 “成绩”、“学分”等字段中存在了多个值的情况,如下表2-2。,表2-2 选课表,这样的关系即不满足第一范式的要求。实际应用中,在设计表时,都应该满足第一范式要求。解决方法如下表2-3,即:设置关键字为组合键(学号,课程号)。 表2-3 符合第一范式的选课表,2.2.2关系数据模式的规范化理论,2.2.2关系数据模式的规范化理论,2第二范式(2NF)主键的绝对相关性 如果一个关系 R1NF,而且它的所有非主属性都完全依赖于R的候选键

26、(不存在部分依赖),则R属于第二范式,记作:R2NF,2.2.2关系数据模式的规范化理论,表2-4 选课表,在应用中使用这个关系模式可能存在以下问题: (1)更新异常。若调整了“数据库技术”课程的学分,相应的元组“学分”值都要更新,有可能会出现同一门课学分不同的情况。 (2)插入异常。如计划开新课,由于没人选修,没有学号关键字,只能等有人选修才能把课程和学分存入。 (3)删除异常。若学生已经结业,从当前数据库删除选修记录。某些门课程新生尚未选修,则此门课程及学分记录无法保存。 分析其原因,非关键字属性“课程名”、“学分”仅依赖于“课程号”这个字段,也就是“学分”部分依赖组合关键字(学号,课程号

27、)而不是完全依赖。,2.2.2关系数据模式的规范化理论,其解决方法如下:将其原有关系分成两个关系:选课(学号、课程号、成绩)和课程(课程号、课程名、学分),如下表2-5、表2-6。这样,两个关系都满足第二范式的要求。,表2-5 选课表,表2-6 课程表,思考:如果关系模式R1NF,且它的所有候选键为非组合键,则R2NF?,2.2.2关系数据模式的规范化理论,3第三范式(2NF)依赖的传递性 如果关系模式R2NF,且它的每一个非主属性都不传递依赖于任何候选键,则称R是第三范式,记作:R3NF。,例如:关系“教师”由教师号,姓名,职称,联系方式,所在部门编号,部门,部门地址七个属性组成 ,候选键“

28、教师号”决定各个属性,满足2NF,如表2-7所示。,2.2.2关系数据模式的规范化理论,表2-7 教师表,但这样的关系肯定会使数据有大量的冗余,有关教师“所在部门编号”,“部门名称”,“部门地址”三个属性将重复插入、删除和修改。分析其原因,关系中存在传递依赖造成的。即“教师号”决定“所在部门编号”,“所在部门编号”决定“部门地址”,但“教师号”不能直接决定“部门地址”,而是通过“所在部门编号”传递依赖实现的,所以不满足第三范式。,因此,其解决方法如下:将其分为两个关系: 教师表(学号,姓名,所在部门编号),部门表(所在部门编号,部门名称,部门地址),如下表2-8、表2-9。,表2-8 教师表表

29、2-9 部门表,2.2.2关系数据模式的规范化理论,思考1:如果关系模式R1NF,且它的每一个非主属性既不部分依赖、也不传递依赖于任何候选键,则R3NF? 思考2:不存非主属性的关系模式一定为3NF?,优化后的学生成绩管理数据库关系模型,根据上述分析,优化后的学生成绩管理数据库关系模型如下: 学生(学号,姓名,性别,专业,出生年月,家庭地址,联系电话,总学分),主键:学号; 课程(课程号,课程名,学分,学时,备注),主键:课程号; 选课(学号,课程号,成绩),主键:学号,课程号; 教师(教师号,姓名,职称,部门,联系方式),主键:教师号; 部门(部门编号,部门名称,部门地址),主键:部门编号;

30、 授课(教师号,课程号,开课时间),主键:教师号,课程号。,综上所述,规范化的过程就是在数据库表设计时移除数据冗余的过程。随着规范化的进行,数据冗余越来越少,但数据库的效率也越来越低。这就要求在数据库设计中,能结合实际应用的性能要求,规范到合适的范式。目前的计算机技术,空间不是问题,但对查询速度要求极高。因此,在充分利用关系数据库的完整性约束条件,保证数据完整性的基础上,达到3NF已经足够了,有的甚至只到2NF也没有问题的。从而减少多表连接查询,加快查询速度,大幅度提高数据库的性能。,2.3 学生成绩管理数据库的完整性约束设计,完成学生成绩管理数据库逻辑结构设计后,接下去要在关系模型的基础上,

31、确定其数据表和表中的字段,并建立约束,以保证数据的完整性和一致性。本学习任务是通过对学生成绩管理数据库完整性约束的设计,实现理解数据完整性的概念以及实现完整性约束的方法。,任务描述,2.3.1学生成绩管理数据库完整性约束设计概述,1实体集转换为关系 实体集转换为关系的规则如下: (1)实体集对应于一个关系。 (2)关系名:与实体集同名。 (3)属性:实体集的所有属性。 (4)主键(主码):实体集的主键。,确定数据表和表中的字段,表2-10 学生表:用来存储学生的基本信息,表2-11 课程表:用来存储课程信息,表2-12 选课表:用来存储学生的选课情况及成绩,表2-13 教师表:用来存储教师的基

32、本信息,表2-14 部门表:用来存储部门基本信息,表2-15 授课表:用来存储教师授课的基本信息,表2-10表2-15中“字段名称”对应于关系模型中的“属性”,“数据类型”和“长度”可根据需求调研并结合具体的数据库管理系统进行分析得到,“说明”部门为完整性约束的内容。下面将介绍什么是数据完整性?数据库的完整性约束有哪些?,2.3.1学生成绩管理数据库完整性约束设计概述,1. 数据完整性的定义 数据的完整性是指存储在数据库中的数据的正确性和可靠性,它是衡量数据库中数据质量好坏的一种标准。数据完整性要确保数据库中数据一致、准确,同时符合业务单位规则。因此,满足数据完整性要求的数据应具有以下特点:

33、数据类型准确无误。 数据的值满足范围设置。 同一表格数据之间不存在冲突。 多个表格数据之间不存在冲突,2.3.1学生成绩管理数据库完整性约束设计概述,2数据完整性类型 数据的完整性分为实体完整性、区域完整性、参照完整性和用户自定义完整性。 (1)实体完整性(Entity Integrity) 功能: 实体完整性的目的是确保数据库中所有实体的唯一性,也就是不应使用完全相同的数据记录。 方法:设定主键(Primary Key)、唯一键(Unique Key)、唯一索引(Unique Index)和标识列(Identity Column)等,其中最常用的是使用主键。 (2)区域完整性(Domain

34、Integrity) 功能:要求数据表中的数据位于某一个特定的允许范围内。 方法:使用默认值(Default)、检查(Check)、外键(Foreign Key)、数据类型(Data Type)和规则(Rule)等多种方法来实现区域完整性。 例:如果限制“性别”字段的数据值可以是“0”或“1”,那么,输入的其他数值将被SQL Server 2008拒绝。,2.3.1学生成绩管理数据库完整性约束设计概述,(3)参照完整性(Referential Integrity) 作用:用来维护相关数据表之间数据一致性的手段,通过实现参照完整性,可以避免因一个数据表的记录改变而造成另一个数据表内的数据变成无效

35、的值。 方法:外键(Foreign Key)、检查(Check)、触发器(Trigger)和存储过程(Stored Procedure)。 例:在学生表和选课表中,如果要删除学生表中的一条记录,而同时在选课表中存在需要参考该记录的记录集,那么该删除操作将会失败,这样就避免了选课表中的数据失去关联。 (4)用户定义完整性 功能:这种数据完整性由用户根据实际应用中的需要自行定义。 方法:规则(Rule)、触发器(Trigger)、存储过程(Stored Procedure)和数据表创建时可以使用的所有约束(Constraint)。 例:在学生表、选课表和课程表中,如果某学生某门课程的成绩大于等于6

36、0分,则该学生的总学分为在原总学分上加上此门课程的学分。,2.3.2 完整性约束,从应用范围来讲,约束可分为两种:字段级约束和数据表级约束。字段级约束是数据表中字段定义的一部分,它只能应用于数据表中的一个字段;数据表级约束独立于数据表的字段定义之外,它可以应用于数据表中的多个字段。常用的约束有以下几种:,1主键(PRIMARY KEY)约束 主键约束使用数据表中的一列数据或多列数据来唯一地标识一行数据。也就是说,在数据表中不能存在主键相同的两行数据。而且,位于主键约束下的数据应使用确定的数据,不能输入NULL来代替确定的数值。在管理数据表时,应确保每一个数据表都拥有自己唯一的主键,从而实现数据

37、的实体完整性。,2.3.2 完整性约束,2外键(FOREIGN KEY)约束 外键约束主要用来实现数据的区域完整性和引用完整性。如果确定了数据表中某一个字段将作为该数据表与其他数据表关联时使用的外键,那么,该字段的取值范围将决定于关联数据表中该字段的取值。 3唯一(UNIQUE)约束 唯一约束主要用来确保非主键字段中数据的唯一性。唯一约束同主键约束主要区别在于:在同一个数据表中,唯一约束可以用来同时约束一个或多个非主键字段中数据的唯一性,而主键约束只允许约束一个字段数据的唯一性或多个字段组合在一起的唯一性。在使用唯一约束的字段中允许出现NULL值,而在使用主键约束时,字段中不允许出现NULL值

38、。,2.3.2 完整性约束,4检查(CHECK)约束 检查约束通过检查输入数据表字段的数值来维护数据的完整性,以确保只有符合条件的数据才能够进入数据表。它通常是通过检查一个逻辑表达式的结果是否为真来判断数据是否符合条件的。 5非空(Not Null)约束 非空约束用于设定某列值能不能为空。如果指定某列不能为空,则在添加记录时,必须为此列添加数据。例如在学生表中的姓名为非空,则在输入数据时,姓名一定要输入数据,不能为空。 6默认(DEFAULT)约束 默认约束为表中的某列建立一个默认值。当用户插入记录时,如果没有为该列提供输入值,则系统会自动将默认值赋予该列。例如,对于学生表中的总学分字段,默认为0,则对于输入的记录如果总学分为0,则可以不用输入总学分数据,由此提高效率。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报