实验2.2 参照完整性

合集下载

access实验报告样板

access实验报告样板

access实验报告样板access实验报告样板实验项目一:数据库和表的操作一、实验目的:1.熟悉Access20xx系统集成环境,掌握系统菜单和工具栏的操作方法及功能:2.数据库操作3.表操作二、实验内容:1.Access20xx的启动、菜单栏、工作环境、退出与自定义工具栏;2.数据库的创建、打开和关闭;3.表的定义、记录的操作以及创建表间关联三、实验步骤:1.1启动:单击“开始/程序”项,在程序菜单中选择“Micr osoftO fficeAccess20xx”就可以进入Acess20xx的系统主界面窗口。

由此可以看到Access20xx用户界面由标题栏、菜单栏、工具栏、工作区和状态栏组成;如下图1.2退出:方法一:在Acess20xx系统主界面中,打开“文件”菜单,选择“推出”命令或按X字母键。

方法二:单击右上角的关闭按钮;方法三:按Ctrl+Alt+Del组合键,打开“Windows任务管理器”窗口,选取“应用进程”,单击“结束任务”按钮1.3自定义工具栏操作:视图→工具栏→自定义→新建(我自主命名)→在“自定义”窗口中选择“命令”选项→在”类别“列表框中选择类别→在”命令“列表框中选择操作按钮→拖到新建的工具栏中→在“自定义”选择→属性→工具栏属性框进行(选择工具栏名称)→设置→关闭如下图(1)图(一)2.1创建数据库操作:启动Access→新建(激活“新建文件面板”)→空数据库→命名(存储路径)→创建如图:22.2数据库的打开与关闭打开操作:文件→打开→选择数据名(英才学校数据库)→单击“打开”按钮右侧的向下箭头,选择打开方式关闭操作:文件→关闭;单击”数据库”右上角的关闭按扭;按Ctrl+F43.1表的定义操作:“数据库”(英才学校数据库)窗口→选择“表”→新建→设计视图→确定(逐一定义每个字段名、类型、宽度)→单击“关闭”按钮,保存如图: 3.2表属性的设置操作:“数据库”窗口→选择要修改的表→单击“设计”,打开“表”设置窗口,更改字段、设置字段格式、输入掩码、有效规则等如图:3.3使用表操作:“数据库”窗口→选择要操作的表→单击“打开”,打开“表”浏览窗口,在“编辑”菜单下进行替换操作,在“记录”菜单下进行筛选操作如图: 3.4建立表间关联操作:先为表建立索引→然后为一的一方建立主索引→打开“工具”菜单下“关系”命令→在“显示表”对括框中添加表→将一个表中的相关字段拖到另一个表中相关字段的位置上,设置参照关系,所建立关系如图下:四、实验总结通过这次实验,也通过对比Word20xx,Access20xx应该是对我们管理专业是有极大好处的,通过了几次的上机实验,本人基本熟悉Access20xx的部分工作环境,会数据库的创建、打开与关闭;能进行表的创建、修改、属性设置、索引等基本操作;加深对数据库、表间联系等概念知识的理解。

数据库原理2 关系数据库

数据库原理2 关系数据库

三、用户定义的完整性(User-defined integrity)
实体完整性和参照性适用于任何关系数据 库系统。除此之外,不同的关系数据库 系统根据其应用环境的不同,往往还需 要一些特殊的约束条件。用户定义的完 整性就是针对某一具体关系数据库的约 束条件,它反映某一具体应用所涉及的 数据必须满足的语义要求。关系模型应 提供定义和检验这类完整性的机制,以 便用统一的系统的方法处理它们,而不 要由应用程序承担这一功能。
体和实体间的联系的关系的集合构成一 个关系数据库。同样,关系数据库也有 型和值之分。
型:关系数据库模式 是对关系数据库的描 述。
值:一般就称为关系数据库。
2.3 关系的完整性
关系模型的完整性规则是对关系的某种约 束条件。
关系模型的三类完整性:
1. 实体完整性 2. 参照完整性 3. 用户定义的完整性
2.4 关系代数
本节要求
给定关系和关系代数表达式,要会算。
给定关系模式和查询(语义)要求,要会写 关系代数表达式。
关系代数是一种抽象的查询语言,用对
关系的运算来表达查询,作为研究关系 数据语言的数学工具。
关系代数的运算对象是关系,运算结果
亦为关系。关系代数用到的运算符包括 四类:集合运算符、专门的关系运算符、 算术比较符和逻辑运算符。
第二章 关系数据库
2-5章为本课程重点与难点 关系数据库的理论基础 1970, E.F.Codd “A Relational Model of Data for Shared Data Banks” 现代主流数据库几乎全部支持关系模型 Oracle(甲骨文),Sybase, IBM DB2, MS SQL Server, Ingres
引用的时候,必须取基本表中已经存在的 值。由此引出参照的引用规则。

第二章数据库的完整性控制数据完整性(DataIntegrity)是指数据的精确

第二章数据库的完整性控制数据完整性(DataIntegrity)是指数据的精确

第二章数据库的完整性控制数据完整性(Data Integrity)是指数据的精确性(accuracy)和可靠性(reliability),它是防止数据库中存在不符合语义规定的数据和防止因错误的信息的输入造成无效操作或错误信息而提出的,保证在一个应用程序更新数据的过程中数据的语义正确性。

数据完整性主要分为三类:实体完整性(Entity Integrity),参照完整性(Referential Integrity)以及用户定义的完整性(User-defined Integrity),其中用户定义的完整性主要包括域完整性(Domain Integrity)和其他自定义完整性。

为维护数据库德完整性,数据库管理系统(DBMS)必须提供一种机制来检查数据库中的数据,看其是否满足语义规定的条件。

这些加在数据库数据上的语义约束条件称为数据库完整性规则,它们作为模式的一部分存入数据库中。

完整性控制是指对数据库进行更新操作,要遵守完整性规则,才能保证数据的语义正确性,防止数据库中存在不符合语义的数据。

目的是在合法用户访问数据库的过程中,保证数据的正确性和准确性。

完整性检查机制是指在DBMS中检查数据是否满足完整性条件的机制。

由DBMS在执行更新动作时,检查是否满足预定的完整性约束条件,来进行控制。

广义的完整性控制包括故障恢复、并发控制。

而一般所指的完整性控制是指基于数据库的完整性约束规则,如:实体完整性、引用完整性等。

SQL中两种主要的数据完整性控制机制是指完整性约束规则的定义和检查以及触发器(Trigger)机制。

完整性控制机制应具有三个功能:(1)定义功能,即提供定义完整性约束条件的机制;(2)检查功能,即检查用户发出的操作请求书否违反了约束条件;(3)如果发现用户操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。

完整性控制机制的工作原理基本上分为两类,一种是定义完整性时就立刻进行检查的,例如实体完整性的定义;另外一种是定义完整性之后进行检查的,例如参照完整性的定义。

学生选课系统设计报告

学生选课系统设计报告

大理学院数学与计算机学院《数据库系统设计》课程设计报告班级:2012级计算机科学与技术1班学号:201211514姓名:刘秀珍系统名称:学生选课系统总分:实验报告内容及撰写要求:一、需求分析程序的主要功能描述,可以用文字、框图、用例等方式。

参考《数据库系统设计任务书》附录中的内容来进行设计报告的撰写。

主要应当包含分析的过程及分析后得到的数据流图和数据字典。

二、数据库设计2.1 数据库概念设计实体关系模型设计,创建分ER图和总体ER图,并描述总体E-R图合并时的问题解决。

2.2数据库的逻辑设计根据概念设计结果,创建数据库的逻辑模型,建立在具体DBMS下(SQL SERVER 2005)的表结构,并根据规范化理论对表结构进行优化调整。

同时,根据应用需求,创建数据库系统所需的外模式(视图)、模式和内模式(索引)等,此外,应当根据需求,建立数据完整性约束(实体完整性,参照完整性和用户自定义完整性)。

三、系统实现3.1 数据库访问1)数据访问类及实现代码2)SQL语句3.2 业务逻辑层类及代码描述业务流程、数据处理功能的模块代码3.3表示层的实现可以用界面截图及其实现类及核心代码描述四、总结一、需求分析1.1背景全校性选修课开设的目的在于扩大学生的知识面、加强学生素质教育、培养复合型高级人才,具有不可替代的重要性。

随着教育改革的不断深入和素质教育的加强,学分制的实施,选修课在一个学生的培养计划中占的比重将越来越大。

网上选课系统的出现使同学们能够更加自主、便捷、准确的进行选课。

但是,由于一般高校中的学生都比较多,因此带来了诸多如信息管理等问题,鉴于需要将学生信息、选课信息等信息数字化以便于管理维护,我们便想到了利用数据库能够比较良好地解决此类问题,由此下面我将设计出一个学生选课系统以供参考。

1.2系统设计要求:设计出一个学生选课数据库系统的简要要求如下:1)设计要求①建立相应的数据库及相关的表、属性、约束、规则、默认等;②输入相应的记录(每个表不少于20条记录);③编写进行数据管理的存储过程。

VF实验8—11要点

VF实验8—11要点

实验8:表数据的计算统计1.实验目的:掌握按条件统计记录数掌握按条件求和掌握按条件求平均值掌握按条件分类汇总掌握通过函数进行计算的方法。

2.实验内容:(1) 利用命令统计表学生.dbf中物理系的女生人数。

(2) 利用命令统计学生成绩表中成绩的和。

(3) 利用命令统计学生成绩.dbf中所有学生的平均成绩。

(4) 利用命令对学生成绩.dbf中所有学生,计算每个学生的总成绩,并将结果存入tabel1.dbf。

(5) 利用命令求学生成绩表中课程编号为“C106”的人数、最高成绩、最低成绩、平均成绩,并将结果存入相应变量中,然后显示变量的值。

实验9:多表操作1.实验目的:掌握在不同工作区打开不同的表文件并显示的方法。

掌握利用命令建立表间临时关联掌握使用数据库工作期,建立表间临时关联掌握实现表间的物理连接掌握实现表间的数据更新的方法。

2.实验内容:(1) 分别利用命令和数据工作期两种方法,分别在1,2,3号工作区打开表文件:学生.dbf,课程.dbf,学生成绩.dbf。

并在1号工作区显示课程.dbf的课程名称字段,在2号工作区显示学生成绩.dbf中的课程编号和成绩字段。

○1使用命令○2使用数据工作期(2) 根据表文件学生.dbf、课程.dbf、学生成绩.dbf,使用命令序列建立关联,显示每个学生的选课情况及成绩。

要求显示该学生的学号、姓名、课程编号、课程名称、成绩。

(3) 根据表文件学生.dbf、课程.dbf、学生成绩.dbf,使用数据工作期实现查询选修了大学英语的学生情况。

要求显示该课程的课程编号、课程名称、学生的学号、姓名、成绩。

(4) 查询各个院系开设课程的学生选课情况及成绩,并存入一个新的表文件kaike.dbf。

要求显示开课院系、学生学号、课程名称、成绩。

(5) 按下面的表建立学生年龄.dbf,而年龄字段要求利用学生表中的出生日期字段的值每年更新一次,写出相应的命令。

实验10:数据库的创建与管理1.实验目的:熟练掌握创建数据库的方法。

2.2_关系模型原理-约束

2.2_关系模型原理-约束

二、实体完整性
实体完整性是指在关系表中实施的主键取值约束,以保证关系表中的每 个元组可以被唯一标识。
实体完整性约束规则: ①每个关系表中的主键属性列都不允许为空值(NULL),否则就不可能 标识实体。 ②现实世界中的实体是靠主键来标识,主键取值应该唯一,并区分关系 表中的每个元组。
例 选课注册关系表(Register)的实体完整性定义
例 在下面的出版社、书名关系表中,它们都有相同的“出版社编号”属 性列。
主键
外键
这两个表之间的参照完整性约束是指“书名”关系表的“出版社编号” 列值必须与“出版社”关系表中的“出版社编号”值匹配,即需要维持 它们之间数据一致性。
四、用户自定义完整性
用户自定义完整性是指用户根据具体业务对数据处理规则要求所定义的 数据约束。
设置主键 设置非空
Hale Waihona Puke 三、参照完整性参照完整性是指关系表之间需要遵守的数据约束,以保证关系之间关联列 的数据一致性。
参照完整性约束规则:若关系R中的外键F与关系S中的主键K相关联,则R中 外键F值必须与S中主键K值一致。
外键(Foreign key)——在关联的两个关系中,它们具有一个或多个相 同属性。若关联列在第一个关系中作为主键,则在第二个关系中作为外键。
用户可以定义如下类型的完整性约束: • 定义列的数据类型与取值范围 • 定义列的缺省值 • 定义列是否允许取空值 • 定义列取值唯一性 • 定义列之间的数据依赖性
例 在下面表2-10所示的成绩关系表中,业务要求分数字段Score的取值范 围为0-100或为空值。
本节学习结束!
2.2 关系模型原理
——完整性约束
【本节学习目标】
• 理解关系模型完整性约束 • 理解实体完整性 • 理解参照完整性 • 理解用户自定义完整性

数据库实验报告

数据库实验报告

数据库设计实验报告学院: 计算机科学与软件学院班级:姓名:学号:实验一实验1.1 数据定义一、实验目的熟悉SQL的数据定义语言,能够熟练的使用SOL语句来创建和更改基本表,创建和取消索引。

二、实验内容本实验的主要内容包括:使用CREATE语句创建基本表。

更改基本表的定义,增加列,删除列,修改列的数据类型。

创建表的升降序索引、取消表、表的索引或表的约束。

三、习题(1)AGENTS(AID,ANAME,ITY,PERCEN).数据库表PRODUCTS(PID,PNAME)。

其中,CID,AID,PID分别是各表的主键,具有唯一性约束。

创建CUSTOMERS表:CREATE TABLE CUSTOMERS(CID INT NOT NULL,CNAME CHAR(8),CITY CHAR(8),DISCNT CHAR(8),PRIMARY KEY(CID))创建AGENTS表:CREATE TABLE AGENTS(AID INT NOT NULL,ANAME CHAR(8),CITY CHAR(8),PERCEN CHAR(8),PRIMARY KEY(AID))创建PRODUCTS表:CREATE TABLE PRODUCTS(PID INT NOT NULL,ANAME CHAR(8),PRIMARY KEY(PID))(2).创建数据库表ORDERS(ORDNA,MANTH,CID,AID,PID,QTY,DOLLARS).其中,ORDNA是主键,具有唯一性约束。

CID,AID,PID分别是外键引用自表CUSTOMERS,AGENTS,PRODUCTS.CREATE TABLE ORDERS(ORDNA INT NOT NULL,MONTH INT,CID INT,AID INT,PID INT,QTY CHAR(8),DOLLARS CHAR(8),PRIMARY KEY(ORDNA),FOREIGN KEY(CID)REFERENCES CUSTOMERS,FOREIGN KEY(AID)REFERENCES AGENTS,FOREIGN KEY(PID)REFERENCES PRODUCTS)(3).增加数据库表PRODUCTS三个属性列:CITY,QUANTITY,PRICE.ALTER TABLE PRODUCTS ADD CITY CHAR(8)ALTER TABLE PRODUCTS ADD QUANTITY CHAR(8)ALTER TABLE PRODUCTS ADD PRICE CHAR(8)(4).为以上四个表建立各自的按组建增序排列的索引CREATE INDEX XCNO ON CUSTOMERS(CID)CREATE INDEX XCNO ON AGENTS(AID)CREATE INDEX XCNO ON PRODUCTS(PID)CREATE INDEX XCNO ON ORDERS(ORDNA)(5) 取消(4)建立的四个索引DROP INDEX AGENTS.XCNODROP INDEX CUSTOMERS.XCNODROP INDEX PRODUCTS.XCNODROP INDEX ORDERS.XCNO实验1.2 数据查询一、实验目的:熟悉SQL语句的数据查询语言,能够使用SQL语句对数据库进行单表查询、链接查询、嵌套查询和统计查询。

数据库实验报告华北电力大学

数据库实验报告华北电力大学

数据库实验报告华北电⼒⼤学课程设计报告(2014--2015年度第2学期)名称:数据库原理课程设计题⽬:图书管理信息系统院系:计算机系班级:计科1203学号:学⽣姓名:指导教师:熊海军设计周数: 1成绩:⽇期:2015年6⽉25⽇《数据库原理课程设计》课程设计任务书⼀、⽬的与要求1.本实验是为计算机各专业的学⽣在学习数据库原理后,为培养更好的解决问题和实际动⼿能⼒⽽设置的实践环节。

通过这个环节,使学⽣具备应⽤数据库原理对数据库系统进⾏设计的能⼒。

为后继课程和毕业设计打下良好基础。

2.通过该实验,培养学⽣在建⽴数据库系统过程中使⽤关系数据理论的能⼒。

3.通过对⼀个数据库系统的设计,培养学⽣对数据库需求分析、数据库⽅案设计、系统编码、界⾯设计和软件调试等各⽅⾯的能⼒。

是⼀门考查学⽣数据库原理、⾯向对象设计⽅法、软件⼯程和信息系统分析与设计等课程的综合实验。

⼆、主要内容针对⼀个具有实际应⽤场景的中⼩型系统(见题⽬附录)进⾏数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。

⼤致分为如下步骤:1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R图:1.分析确定实体的属性和码,完成对该实体的实体完整性、⽤户⾃定义完整性的定义。

2.设计实体之间的联系,包括联系类型和联系的属性。

最后画出完整的E-R图。

2.根据设计好的E-R图及关系数据库理论知识设计数据库模式:1)把E-R图转换为逻辑模式;2)规范化设计。

使⽤关系范式理论证明所设计的关系⾄少属于3NF并写出证明过程;如果不属于3NF则进⾏模式分解,直到该关系满⾜3NF为⽌,要求写出分解过程。

3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。

4)⽤SQL语⾔完成数据库内模式的设计。

3.数据库权限的设计:1)根据系统分析,完成授权操作;2)了解学习收回权限的操作。

4.完成⽤户界⾯的设计,对重要数据进⾏加密。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验截图
实验代码
-8-
软件 C122 彭静 126226
实验截图 (4) 学校学生会的每个部门有一个部长,每个部长领导多个部员,每个部只有 一个部员有监察评测部长的权利。请给出体现这两种关系(即领导和评测)的 两张互参照的表的定义。 实验代码 实验截图 实验代码
实验截图
-9-
(9)演示事务中进行多重级联删除失败的处理。修改 ICBC_Card 表的外键属性, 使其变为 On delete No action,演示事务中通过删除 students 表中的一条记 录,多重级联删除失败,整个事务回滚到事务的初始状态。 实验代码
实验截图 实验代码
实验截图
(10)演示互参照问题以及其解决方法。要建立教师授课和课程指定教师停课关
软件 C122 彭静 126226
消息 547,级别 16,状态 0,第 7 行 INSERT 语句与 FOREIGN KEY 约束"FK__Stu_Card__stu_id__31B762FC"冲突。该冲突发生于数据库"school",表 "dbo.STUDENTS", column 'sid'。 语句已终止。 (1 行受影响) (1 行受影响)
实验截图
2.建立表 Course
-2-
实验截图
软件 C122 彭静 126226
(2)建立表 SC,令 sno 和 cno 分别为参照 Stu_Union 表以及 Course 表的外键, 设定为级联删除,并令(sno,cno)为其主键。在不违反参照完整性的前照完整性的插入数据。 实验代码
-6-
软件 C122 彭静 126226
系的两张表,规定一个教师可以授多门课,但是每个课程只能指定一个教师去 听课,所以要为两张表建立相互之间的参照关系。 实验代码
实验截图 实验代码
实验截图 实验代码
实验截图
-7-
软件 C122 彭静 126226
4.实验步骤: 实现参见数据库实验习题 2.2.sql 文 心得体会: 1、学习了参照完整性的相关内容,加深了对于这部分知识点的认识 5.习题 (1)使用 alter table 语句将 SC 表中的 on delete cascade 改为 on delete restrict,重新插入 SC 的数据,重复操作 实验步骤中的(4)和(5),观察结果, 分析原因。 数据库不允许删除 STUDENTS 表及 COURSE 表中对应元组 原因:由于 on delete restrict 的约束,数据库不允许引用任何关系存在对应 元组时进行删除操作 (2)使用 alter table 语句将 SC 表中的 on delete cascade 改为 on delete set NULL,重新插入 SC 的数据。 重复操作 2.2.3 实验步骤中的(4)和(5), 观察结果,分析原因。 数据库不允许删除 STUDENTS 表及 COURSE 表中对应元组 原因:约束 on delete set NULL 是将要删除的元组的外键置空值,如果 cno 及 sno 不是 SC 表的主键,删除操作可以完成,但由于主键不能取空值,所以删除 操作是不可以的 (3)创建一个班里的学生互助表,规定:包括学生编号、学生姓名、学生的帮助 对象,每个学生有且只有一个帮助对象,帮助对象也必须是班里的学生。 实验代码
(7)为了演示多重级联删除,建立 ICBC_Card 表,令 stu_card_id 为参照 Stu_Card 表的外键,令 bank_id 为其主键,并插入数据。 实验代码
实验截图
(8)通过删除 students 表中的一条记录,演示三个表的多重级联删除。 实验代码
实验截图
-5-
软件 C122 彭静 126226
-3-
软件 C122 彭静 126226
实验截图
(5)在 Course 中删除数据,演示级联删除。 实验代码
实验截图 (6)为了演示多重级联删除,建立 Stu_Union 表,令 stu_id 为参照 Stu_Union 表的外键,令 card_id 为其主键,并插入数据。 实验代码
实验截图
-4-
实验截图
消息 547,级别 16,状态 0,第 2 行 INSERT 语句与 FOREIGN KEY 约束"FK__SC__sno__2739D489"冲突。该冲突发生于数据库"school",表"dbo.Stu_Union", column 'sno'。 语句已终止。
(4)在 Stu_Union 中删除数据,演示级联删除。 实验代码
-1-
软件 C122 彭静 126226
(系统默认的方式 no action) 参照表 拒绝执行 不需要检查 拒绝执行 5)参照完整性的特殊问题 表的自参考问题。 问题 1:无法定义。 处理方法:先用 create table 创建主键约束,再用 alter table 创建外键约 束。 问题 2:容易造成无法启动的情况。(系统通过事务完毕后再检查) (2)两张表互相参照的问题。 问题 1:无法定义。 处理方法:同表的自参照问题的 方法相同。 问题 2:容易造成无法启动的情况。(系统通过事务完毕后再检查) (3) 既是外键又是主键中的属性。 处理方法:既要遵从实体完整性也要遵从参照完整性。 3.实验内容: (1)为演示参照完整性,建立表 Course,令 cno 为主键,并在 Stu_Union 中插入 数据。为下面的实验步骤做预先准备。 1.根据 2.1 建立 Stu_Union 表
软件 C122 彭静 126226
实验 2.2 参照完整性 软件 C122 彭静 126226 1.实验目的: 学习建立外键,以及利用 FOREIGN KEY---REFERENCES 子句以及各种约束保证 参照完整性。 2.实验原理: 1)参照完整性(Referential Integrity) 参照完整性是指两个表的主关键字和外关键字的数据对应一致。它确保了有主 关键字的表中对应其他表的外关键字的行存在,即保证了表之间的数据的一致 性,防止了数据丢失或无意义的数据在数据库中扩散,参照完整性是建立在外 关键字和主关键之间或外关键字和唯一性关键字之间的关系上的。 参照完整性规则:关系 R 的外来码取值必须是关系 S 中某个元组的主码值,或 者可以是一个“空值”。 定义外键时定义参照完整性、约束参照表 A 和被参照表 B。对于违反参照完整 性的操作有时候并不是简单拒绝执行,而是接受该操作,同时执行必要的附加 操作。DBMS 提供机制来定义是否必须制定外键的具体值而非空值。主键列和外 键列可以有不同的名字,空值的要求也可以不一致,默认值也可以不同,但数 据类型必须相同。 2)SQL Server 中完整性的体现 在 SQL Server 中参照完整性作用表现在如下几个方面: ·禁止在从表中插入包括主要中不存在的外关键字的数据行。 ·禁止会导致从表中的相应值孤立的主表中的外关键字值改变。、 ·禁止删除在从表中的有对应记录的主表记录。 3)SQL 语句中删除和插入基本关系元组 (1)在被参照关系中删除元组的三种控制方式: ·级联删除(CASCADES):将参照关系中与被参照关系中要删除的元组主键值相 同的元组一起删除。 ·受限删除(RESTRICTED):只有参照关系中没有元组与被参照关系中要删除的 元组主键值相同时才执行删除操作,否则拒绝。 ·置空值删除(SET NULL):删除被参照关系中的元组,同时将参照关系中相应 元组的外键值置空。 (2)在参照关系中插入元组。 ·受限插入:只是被参照关系中有元组与参照关系中要插入元组外键值相同时, 才执行插入操作,否则拒绝。 ·递归插入:插入元组外键值在被参照关系中没有相同元组,则首先向被参照 关系插入元组,其主键值等于参照关系插入元组的外键值,然后再向参照关系 插入元组。 4)DBMS 对参照完整性进行检查的四种情况 (1)在四种情况下 DBMS 要进行检查,分别是对参照表进行插入和修改以及对 被参照表进行删除和修改。 (2)SQL Server 四种情况违反参照完整性的处理方法如表所示: 相关操作 INSERT DELETE UPDATE 被参照表 不需要检查 ON DELETE…(用户显示定义的 方式,提供两种:cascade 和 no action)OR default(系统默认的方式 no action) ON UPDATE…(用户显示方式,提供两种:cascade 和 no action)OR default
相关文档
最新文档