第二章数据库的完整性控制数据完整性(DataIntegrity)是指数据的精确
- 格式:doc
- 大小:70.50 KB
- 文档页数:8
数据完整性检查要点数据完整性检查要点数据完整性数据完整性(data integrity):是指数据的准确性和可靠性,用于描述存储的所有数据值均处于客观真实的状态。
–并不是计算机化系统实施后才出现的–适用于电子数据和手工(纸质)数据–企业应当处于一种基于数据完整性风险的可接受控制状态数据的属性基本原则A(attributable)—可溯源L(legible)—清晰C(contemporaneous)—同步O(original or true copy)—原始或真实复制A(accurate)—准确数据人工观察填写的纸质记录仪器、设备通过复杂的计算机化系统产生的图谱或电子记录。
纸质记录对文件和记录版本(变更)进行控制对原始空白记录进行控制对空白记录的发放进行控制对已填写记录的修改进行控制图谱或电子记录电子方式产生的原始数据采用纸质或PDF格式保存应当显示数据的留存过程,以包括所有原始数据信息、相关审计跟踪和结果文件、每一分析运行过程中软件/系统设置标准一个给定的原始数据系列重建所需的所有数据处理运行情况(包括方法和审计跟踪),经过确认的复本。
一旦打印或转换成静态PDF,图谱记录则失去了其被再处理的能力,不能对基线或隐藏区域进行更详细的审核或检查。
以数据库格式存在的动态电子记录则可以进行追踪、趋势分析和查询、查看隐藏区域,放大基线以将积分情况查看的更清楚。
数据审计跟踪数据审计跟踪(audit trial):是一系列有关计算机操作系统、应用程序及用户操作等事件的记录,用以帮助从原始数据追踪到有关的记录、报告或事件,或从记录、报告、事件追溯到原始数据。
如果计算机系统用于电子捕获、处理、报告或存贮原始数据,系统设计应能保持提供全面审计追踪的保存,能够显示对数据进行的所有更改。
对数据的所有更改,应可以显示做这些更改的人,更改均应有时间记录,并给出理由。
用户不应具备修订或关闭审计追踪的能力。
不需要包括每个系统活动(例如,用户登录/退出,键盘敲击等)。
数据完整性检查要点数据完整性数据完整性(data integrity):是指数据的准确性和可靠性,用于描述存储的所有数据值均处于客观真实的状态。
–并不是计算机化系统实施后才出现的–适用于电子数据和手工(纸质)数据–企业应当处于一种基于数据完整性风险的可接受控制状态数据的属性基本原则A(attributable)—可溯源L(legible)—清晰C(contemporaneous)—同步O(original or true copy)—原始或真实复制A(accurate)—准确数据人工观察填写的纸质记录仪器、设备通过复杂的计算机化系统产生的图谱或电子记录。
纸质记录对文件和记录版本(变更)进行控制对原始空白记录进行控制对空白记录的发放进行控制对已填写记录的修改进行控制图谱或电子记录电子方式产生的原始数据采用纸质或PDF格式保存应当显示数据的留存过程,以包括所有原始数据信息、相关审计跟踪和结果文件、每一分析运行过程中软件/系统设置标准一个给定的原始数据系列重建所需的所有数据处理运行情况(包括方法和审计跟踪),经过确认的复本。
一旦打印或转换成静态PDF,图谱记录则失去了其被再处理的能力,不能对基线或隐藏区域进行更详细的审核或检查。
以数据库格式存在的动态电子记录则可以进行追踪、趋势分析和查询、查看隐藏区域,放大基线以将积分情况查看的更清楚。
数据审计跟踪数据审计跟踪(audit trial):是一系列有关计算机操作系统、应用程序及用户操作等事件的记录,用以帮助从原始数据追踪到有关的记录、报告或事件,或从记录、报告、事件追溯到原始数据。
如果计算机系统用于电子捕获、处理、报告或存贮原始数据,系统设计应能保持提供全面审计追踪的保存,能够显示对数据进行的所有更改。
对数据的所有更改,应可以显示做这些更改的人,更改均应有时间记录,并给出理由。
用户不应具备修订或关闭审计追踪的能力。
不需要包括每个系统活动(例如,用户登录/退出,键盘敲击等)。
一、选择题1、D2、D3、D4、A5、C6、C二、简答题1、(1)数据完整性的定义:数据完整性是指存储在数据库中的数据的一致性和正确性。
(2)数据完整性的类型:实体完整性、域完整性、参照完整性和用户自定义完整性。
2、约束是附加于表上用以限制数据完整性的一种数据库对象。
约束按照作用不同,分为五种:PRIMARY KEY约束、UNIQUE约束、CHECK约束、DEFAULT约束和FOREIGN KEY 约束。
3、UNIQUE约束与PRIMARY KEY约束的相同点是:都用于强制实体完整性,保证表中行数据的唯一性。
UNIQUE约束与PRIMARY KEY约束的不同点是:(1)UNIQUE约束用于非主键的一列或列组合。
(2)一个表中可以定义多个UNIQUE约束,但只能定义一个PRIMARY KEY约束。
(3)定义UNIQUE约束的列允许空值,但定义PRIMARY KEY约束的列不允许空值。
4、在判断一个列的数据的有效性方面,CHECK约束与FOREIGN KEY约束的区别在于:CHECK约束根据逻辑表达式判断数据的有效性;FOREIGN KEY约束根据另一个表(父表)中的数据判断数据的有效性。
5、规则是一种数据库对象,它的作用类似于CHECK约束.它们的区别表现为:(1)CHECK约束的定义属于表结构定义的一部分。
CHECK约束是在CREATE TABLE或ALTER TABLE语句中定义的。
删除表的时候CHECK约束随之删除。
(2)规则对象的定义是独立于表结构定义的。
规则对象使用CREATE RULE语句定义。
删除表的时候并不能删除规则对象。
6、默认是一种数据库对象,它的作用类似于DEFAULT约束,即在表中插入数据行时,为没有指定数据的列提供事先定义的默认值。
虽然默认对象和默认约束功能类似,但是使用方法不同,它们的区别表现为:(1)默认约束的定义属于表结构定义的一部分。
默认约束是在CREATE TABLE或ALTER TABLE语句中定义的。
第二章数据库的完整性控制数据完整性(Data Integrity)是指数据的精确性(accuracy)和可靠性(reliability),它是防止数据库中存在不符合语义规定的数据和防止因错误的信息的输入造成无效操作或错误信息而提出的,保证在一个应用程序更新数据的过程中数据的语义正确性。
数据完整性主要分为三类:实体完整性(Entity Integrity),参照完整性(Referential Integrity)以及用户定义的完整性(User-defined Integrity),其中用户定义的完整性主要包括域完整性(Domain Integrity)和其他自定义完整性。
为维护数据库德完整性,数据库管理系统(DBMS)必须提供一种机制来检查数据库中的数据,看其是否满足语义规定的条件。
这些加在数据库数据上的语义约束条件称为数据库完整性规则,它们作为模式的一部分存入数据库中。
完整性控制是指对数据库进行更新操作,要遵守完整性规则,才能保证数据的语义正确性,防止数据库中存在不符合语义的数据。
目的是在合法用户访问数据库的过程中,保证数据的正确性和准确性。
完整性检查机制是指在DBMS中检查数据是否满足完整性条件的机制。
由DBMS在执行更新动作时,检查是否满足预定的完整性约束条件,来进行控制。
广义的完整性控制包括故障恢复、并发控制。
而一般所指的完整性控制是指基于数据库的完整性约束规则,如:实体完整性、引用完整性等。
SQL中两种主要的数据完整性控制机制是指完整性约束规则的定义和检查以及触发器(Trigger)机制。
完整性控制机制应具有三个功能:(1)定义功能,即提供定义完整性约束条件的机制;(2)检查功能,即检查用户发出的操作请求书否违反了约束条件;(3)如果发现用户操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。
完整性控制机制的工作原理基本上分为两类,一种是定义完整性时就立刻进行检查的,例如实体完整性的定义;另外一种是定义完整性之后进行检查的,例如参照完整性的定义。
数据完整性检查要点本文通过梳理数据核查全过程,列出GMP 核查中数据完整性检查要点内容,包括:基本原则、数据记录(纸质、图谱或电子记录)、审计跟踪、计算机系统检查 4 个要点。
并附上具体问题和小结,以供读者阅读讨论。
数据完整性数据完整性(data integrity):是指数据的准确性和可靠性,用于描述存储的所有数据值均处于客观真实的状态。
–并不是计算机化系统实施后才出现的–适用于电子数据和手工(纸质)数据–企业应当处于一种基于数据完整性风险的可接受控制状态数据的属性基本原则- ALCOAA(attributable)—可溯源L(legible)—清晰C(contemporaneous)—同步O(original or true copy)—原始或真实复制A(accurate)—准确数据记录数据定义人工观察填写的纸质记录仪器、设备通过复杂的计算机化系统产生的图谱或电子记录纸质记录对文件和记录版本(变更)进行控制对原始空白记录进行控制对空白记录的发放进行控制对已填写记录的修改进行控制图谱或电子记录电子方式产生的原始数据采用纸质或PDF格式保存应当显示数据的留存过程,以包括所有原始数据信息、相关审计跟踪和结果文件、每一分析运行过程中软件/系统设置标准一个给定的原始数据系列重建所需的所有数据处理运行情况(包括方法和审计跟踪),经过确认的复本。
一旦打印或转换成静态PDF,图谱记录则失去了其被再处理的能力,不能对基线或隐藏区域进行更详细的审核或检查。
以数据库格式存在的动态电子记录则可以进行追踪、趋势分析和查询、查看隐藏区域,放大基线以将积分情况查看的更清楚。
数据审计跟踪数据审计跟踪(audit trial):是一系列有关计算机操作系统、应用程序及用户操作等事件的记录,用以帮助从原始数据追踪到有关的记录、报告或事件,或从记录、报告、事件追溯到原始数据。
如果计算机系统用于电子捕获、处理、报告或存贮原始数据,系统设计应能保持提供全面审计追踪的保存,能够显示对数据进行的所有更改。
2025年招聘数据治理工程师笔试题与参考答案(某大型集团公司)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个选项不是数据治理工程师在工作中需要关注的领域?A、数据质量B、数据安全C、数据备份与恢复D、市场营销策略2、在数据治理过程中,以下哪个概念是用来描述数据之间的一致性和正确性的?A、数据完整性B、数据准确性C、数据一致性D、数据隐私性3、某大型集团公司正在实施数据治理项目,以下哪项不是数据治理的关键目标?A、确保数据质量B、提高数据安全性C、优化数据存储架构D、提升数据使用效率4、在进行数据治理时,以下哪种方法论不是数据治理过程中常用的?A、CMMI(能力成熟度模型集成)B、ITIL(信息技术基础设施库)C、TOGAF(开放组架构框架)D、ISO/IEC 27001(信息安全管理标准)5、关于数据治理,以下说法正确的是:A、数据治理是指对数据进行收集、存储、处理和分析的一系列活动。
B、数据治理是指确保数据质量、数据安全和数据合规性的过程。
C、数据治理是指使用大数据技术对海量数据进行挖掘和分析。
D、数据治理是指通过数据仓库实现数据的统一管理和共享。
6、以下关于数据治理流程的描述,错误的是:A、数据治理流程的第一步是数据评估。
B、数据治理流程的第三步是数据质量监控。
C、数据治理流程的第五步是数据安全与合规性检查。
D、数据治理流程的最后一步是数据治理的持续改进。
7、以下哪项不是数据治理工程师在数据质量管理中的主要职责?()A、制定数据质量标准B、监控数据质量变化C、进行数据清洗D、维护公司内部沟通渠道8、在数据治理过程中,以下哪个阶段是数据治理策略和计划的制定阶段?()A、数据治理评估B、数据治理设计D、数据治理监控9、以下哪项不是数据治理工程师在数据质量管理中需要关注的关键方面?A、数据准确性B、数据一致性C、数据安全性D、数据传输速度 10、在数据治理过程中,以下哪项措施不属于数据治理计划的一部分?A、制定数据治理策略B、建立数据治理团队C、实施数据质量监控D、进行数据清洗二、多项选择题(本大题有10小题,每小题4分,共40分)1、以下哪些是数据治理工程师在日常工作中需要关注的数据治理原则?()A、数据质量原则B、数据安全原则C、数据一致性原则D、数据共享原则E、数据标准化原则2、以下哪些工具和技术是数据治理工程师在实施数据治理项目时可能使用的?()A、数据仓库C、数据质量分析工具D、数据治理平台E、业务规则引擎3、以下哪些技术栈或工具通常用于数据治理工程师的工作中?()A. Hadoop Ecosystem (HDFS, Hive, HBase)B. Data Quality Tools (e.g., Talend, Informatica)C. Data Cataloging Solutions (e.g., Alation, Collibra)D. Python for scripting and automationE. SQL for data querying4、数据治理工程师在以下哪些环节中扮演关键角色?()A. 数据策略制定B. 数据标准制定C. 数据模型设计D. 数据存储管理E. 数据安全和隐私保护5、以下哪些工具或技术通常用于数据治理?A、SQLB、Apache HadoopC、Data CatalogD、Oracle EPME、Python6、以下哪些是数据治理过程中常见的挑战?A、数据质量差B、数据访问权限控制C、数据隐私保护D、数据标准化不一致E、缺乏数据治理团队7、以下哪些技术或工具通常用于数据治理工程师的工作中?()A. SQLB. PythonC. HadoopD. KafkaE. Microsoft Power BI8、数据治理工程师在进行数据质量管理时,以下哪些步骤是必要的?()A. 数据清洗B. 数据集成C. 数据质量监控D. 数据标准化E. 数据归档9、以下哪些是数据治理工程师在数据质量管理中需要关注的关键环节?()A. 数据采集B. 数据清洗C. 数据集成D. 数据存储E. 数据安全 10、以下哪些技术或工具是数据治理工程师在实施数据治理时通常会使用的?()A. ETL工具B. 数据库管理系统C. 数据库关系模型D. 数据仓库E. 数据质量管理工具三、判断题(本大题有10小题,每小题2分,共20分)1、数据治理工程师的主要职责是确保数据质量和数据一致性,但不需要关注数据的存储和访问效率。
数据库系统原理复习题第1章一、选择题1.数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是(A )。
A. DBS包括DB和DBMSB. DBMS包括DB和DBSC. DB包括DBS和DBMSD. DBS就是DB,也就是DBMS2.概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是(D )。
A.层次模型B. 关系模型C. 网状模型D. 实体-联系模型3.目前,数据库管理系统最常用的逻辑数据模型是(C)。
A.网状模型B.层次模型C.关系模型D.面向对象模型4.下列四项中,不属于数据库系统特点的是(C)。
A.数据共享B. 数据完整性C. 数据冗余度高D. 数据独立性高5.数据模型的三个要素分别是(B )。
A.实体完整性、参照完整性、用户自定义完整性B.数据结构、数据操作、数据完整性约束条件C.插入数据、修改数据、删除数据D.外模式、模式、内模式6.数据库三级结构从内到外的3个层次依次为(B)。
A.外模式、模式、内模式B. 内模式、模式、外模式C. 模式、外模式、内模式D. 内模式、外模式、模式7.下列关于数据库系统的正确叙述是(A):A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型的一致D.数据库系统比文件系统能管理更多的数据8.数据的逻辑独立性是指(B)。
A.外模式改变时保持应用程序不变B.模式改变时保持外模式不变C.内模式改变时保持模式不变D.数据改变时保持应用程序不变9.数据的物理独立性是指(C)。
A.外模式改变时保持应用程序不变B.模式改变时保持外模式不变C.内模式改变时保持模式不变D.数据改变时保持应用程序不变10.公司有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从部门到职员的联系类型是(D)。
A.多对多B. 一对一C. 多对一D. 一对多11.储蓄所有多个储户,储户在多个储蓄所之间存款,储户与储蓄所之间是(C)。
1 数据的完整性约束是用来确保数据的准确性和一致性。
数据的完整性就是对数据的准确性和一致性的一种保证。
数据完整性(Data Integrity)是指数据的精确(Accuracy)和可靠性(Reliability)。
分为以下四类:1) 实体完整性:规定表的每一行在表中是惟一的实体。
2) 域完整性:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。
3) 参照完整性:是指两个表的主关键字和外关键字的数据应一致,保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。
4) 用户定义的完整性:不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。
用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。
2 完整性约束的类型:可分为三种类型:与表有关的约束、域(Domain)约束、断言(Assertion)1) 与表有关的约束:是表中定义的一种约束。
可在列定义时定义该约束,此时称为列约束,也可以在表定义时定义约束,此时称为表约束。
2) 域(Domain)约束:在域定义中被定义的一种约束,它与在特定域中定义的任何列都有关系。
3) 断言(Assertion):在断言定义时定义的一种约束,它可以与一个或多个表进行关联。
一、与表有关的约束:包括列约束(表约束+NOT NULL)和表约束(PRIMARY KEY、foreign key、check、UNIQUE) 。
(1) not null(非空)约束:只用于定义列约束。
语法如下:Colunm_name datatype | domain not null实例:create table Employee(emp_id int not null, emp_name varchar(10) not null,address varchar(40) , )创建之后,如果往表Employee表中非空约束中插入空值,insert into Employee values(1,null,'neimeng')将会出错。
法名词解释
1、数据的完整性:
数据库完整性是指数据库中存储的数据的准确性、可靠性以及按照给
定的规则彼此之间的关系,以及组成数据库的系统资源具有可靠的完整性、一致性和可用性。
数据完整性指的是数据库中存储的数据是否符合特定的
数据要求,一旦数据不符合要求,则不允许存入数据库。
在实现完整性时,可以采用数据库约束,如唯一性约束、完整性约束等,可以确保数据的准
确性。
2、事务的原子性:
事务的原子性是指所有的操作是不可分割的,一旦开始就要执行所有
的操作,要么全部成功,要么全部失败,不可以中间停止,也不可以做一半。
在数据库设计中,为了保证事务的原子性,可以使用四种操作ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)
和持久性(Durability),以确保事务的原子性。
3、四大金刚:。
第二章数据库的完整性控制数据完整性(Data Integrity)是指数据的精确性(accuracy)和可靠性(reliability),它是防止数据库中存在不符合语义规定的数据和防止因错误的信息的输入造成无效操作或错误信息而提出的,保证在一个应用程序更新数据的过程中数据的语义正确性。
数据完整性主要分为三类:实体完整性(Entity Integrity),参照完整性(Referential Integrity)以及用户定义的完整性(User-defined Integrity),其中用户定义的完整性主要包括域完整性(Domain Integrity)和其他自定义完整性。
为维护数据库德完整性,数据库管理系统(DBMS)必须提供一种机制来检查数据库中的数据,看其是否满足语义规定的条件。
这些加在数据库数据上的语义约束条件称为数据库完整性规则,它们作为模式的一部分存入数据库中。
完整性控制是指对数据库进行更新操作,要遵守完整性规则,才能保证数据的语义正确性,防止数据库中存在不符合语义的数据。
目的是在合法用户访问数据库的过程中,保证数据的正确性和准确性。
完整性检查机制是指在DBMS中检查数据是否满足完整性条件的机制。
由DBMS在执行更新动作时,检查是否满足预定的完整性约束条件,来进行控制。
广义的完整性控制包括故障恢复、并发控制。
而一般所指的完整性控制是指基于数据库的完整性约束规则,如:实体完整性、引用完整性等。
SQL中两种主要的数据完整性控制机制是指完整性约束规则的定义和检查以及触发器(Trigger)机制。
完整性控制机制应具有三个功能:(1)定义功能,即提供定义完整性约束条件的机制;(2)检查功能,即检查用户发出的操作请求书否违反了约束条件;(3)如果发现用户操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。
完整性控制机制的工作原理基本上分为两类,一种是定义完整性时就立刻进行检查的,例如实体完整性的定义;另外一种是定义完整性之后进行检查的,例如参照完整性的定义。
SQL Server提供了一些工具来帮助用户实现数据完整性,其中最主要的是:规则(Rule),默认值(Default),约束(Constraint)和触发器(Trigger)实验报告2.1 实体完整性实验目的:学习实体完整性的建立,以及实践违反实体完整性的结果。
实验原理:1、实体完整性(Entity Integrity)定义实体完整性规定表的每一行在表中是唯一的实体。
SQL语法中,表中的UNIQUE、PRIMARY KEY和IDENTITY约束就是实体完整性的体现。
实体完整性规则:每个关系中主码的任何属性不能取空值。
注意:空值为NULL,不是0,也不是空格,而是一个“不知道”或“不确定”的数据值。
2、实施完整性检查的时机实施完整性规则检查的时机分为立即检查和延迟检查(Immediate or deferred Checking),只有选择正确的检查时机才能保证语义的正确性,即保证数据的完整性。
实体完整性规则检查的时机是立即检查的,而参照完整性和触发器一般都是延迟检查。
3、事务处理事务是一组数据库操作的集合,这些操作要么一起成功,要么一起失败。
操作的提交或回退是一同生效的。
事务处理的概念对维护数据的完整性和一致性是十分重要的。
数据库操作(如INSERT、UPDA TE和DELETE)如果是一个事务中的操作,那么它们要在事务控制之下完成。
数据库对象的begin Transaction、commit Transaction和rollback Transaction方法分别用来启动、提交和回退事务。
实验内容:(1)在数据库School中建立表Stu_Union,进行主键约束,在没有违反实体完整性的前提下插入并更新一条记录。
(2)演示违反实体完整性的插入操作。
(3)演示违反实体完整性的更新操作。
(4)演示事务的处理,包括事务的建立、处理以及出错时的事务回滚。
(5)通过建立Scholarship表,插入数据,演示当与现有的数据环境不等时,无法建立实体完整性以及参照完整性。
实验步骤:代码实现参见数据库实验习题2.1.sql文档心得体会:1、学习了实体完整性的相关内容,加深了对于这部分知识点的认识;(实验课本第59页——思考:为什么sno置为‘’没有违反非空的约束?答:SQL系统默认这里定义的‘’为一个值;如果执行sno=NULL,则将被系统拒绝)实验2.2 参照完整性实验目的:学习建立外键,以及利用FOREIGN KEY---REFERENCES子句以及各种约束保证参照完整性。
实验原理:1)参照完整性(Referential Integrity)参照完整性是指两个表的主关键字和外关键字的数据对应一致。
它确保了有主关键字的表中对应其他表的外关键字的行存在,即保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。
参照完整性是建立在外关键字和主关键之间或外关键字和唯一性关键字之间的关系上的。
参照完整性规则:关系R的外来码取值必须是关系S中某个元组的主码值,或者可以是一个“空值”。
定义外键时定义参照完整性、约束参照表A和被参照表B。
对于违反参照完整性的操作有时候并不是简单拒绝执行,而是接受该操作,同时执行必要的附加操作。
DBMS提供机制来定义是否必须制定外键的具体值而非空值。
主键列和外键列可以有不同的名字,空值的要求也可以不一致,默认值也可以不同,但数据类型必须相同。
2)SL Server中完整性的体现在SQL Server中参照完整性作用表现在如下几个方面:·禁止在从表中插入包括主要中不存在的外关键字的数据行。
·禁止会导致从表中的相应值孤立的主表中的外关键字值改变。
·禁止删除在从表中的有对应记录的主表记录。
3)SQL语句中删除和插入基本关系元组(1)在被参照关系中删除元组的三种控制方式:·级联删除(CASCADES):将参照关系中与被参照关系中要删除的元组主键值相同的元组一起删除。
·受限删除(RESTRICTED):只有参照关系中没有元组与被参照关系中要删除的元组主键值相同时才执行删除操作,否则拒绝。
·置空值删除(SET NULL):删除被参照关系中的元组,同时将参照关系中相应元组的外键值置空。
(2)在参照关系中插入元组。
·受限插入:只是被参照关系中有元组与参照关系中要插入元组外键值相同时,才执行插入操作,否则拒绝。
·递归插入:插入元组外键值在被参照关系中没有相同元组,则首先向被参照关系插入元组,其主键值等于参照关系插入元组的外键值,然后再向参照关系插入元组。
4)DBMS对参照完整性进行检查的四种情况(1)在四种情况下DBMS要进行检查,分别是对参照表进行插入和修改以及对被参照表进行删除和修改。
5)参照完整性的特殊问题(1)表的自参考问题。
问题1:无法定义。
处理方法:先用create table创建主键约束,再用alter table创建外键约束。
问题2:容易造成无法启动的情况。
(系统通过事务完毕后再检查)(2)两张表互相参照的问题。
问题1:无法定义。
处理方法:同表的自参照问题的解决方法相同。
问题2:容易造成无法启动的情况。
(系统通过事务完毕后再检查)(3)既是外键又是主键中的属性。
处理方法:既要遵从实体完整性也要遵从参照完整性。
实验内容:(1)为演示参照完整性,建立表Course,令cno为主键,并在Stu_Union中插入数据。
为下面的实验步骤做预先准备。
(2)建立表SC,令sno和cno分别为参照Stu_Union表以及Course表的外键,设定为级联删除,并令(sno,cno)为其主键。
在不违反参照完整性的前提下,插入数据。
(3)演示违反参照完整性的插入数据。
(4)在Stu_Union中删除数据,演示级联删除。
(5)在Course中删除数据,演示级联删除。
(6)为了演示多重级联删除,建立Stu_Union表,令stu_id为参照Stu_Union表的外键,令card_id为其主键,并插入数据。
(7)为了演示多重级联删除,建立ICBC_Card表,令stu_card_id为参照Stu_Card表的外键,令bank_id为其主键,并插入数据。
(8)通过删除students表中的一条记录,演示三个表的多重级联删除。
(9)演示事务中进行多重级联删除失败的处理。
修改ICBC_Card表的外键属性,使其变为On delete No action,演示事务中通过删除students表中的一条记录,多重级联删除失败,整个事务回滚到事务的初始状态。
(10)演示互参照问题以及其解决方法。
要建立教师授课和课程指定教师停课关系的两张表,规定一个教师可以授多门课,但是每个课程只能指定一个教师去听课,所以要为两张表建立相互之间的参照关系。
实验步骤:代码实现参见数据库实验习题2.2.sql文档心得体会:1、学习了参照完整性的相关内容,加深了对于这部分知识点的认识;(习题:(1)用alter table语句将SC表中的on delete cascade 改为on delete restrict。
重新插入SC 的数据。
重复本实验的实验步骤中(4)(5),观察结果,分析原因。
(2)用alter table语句将SC表中的on delete cascade 改为on delete set NULL。
重新插入SC 的数据。
重复本实验的实验步骤中(4)(5),观察结果,分析原因。
解答:SQL不提供on delete restrict/on delete set NULL,用on delete no action;结果:数据库不允许删除STU_UNION表以及NEW_COUSE表中对应的元组;原因:(1)由于on delete restrict的约束,数据库不允许任何引用关系存在对应元组的删除操作(2)约束on delete set NULL是将要删除的对应元组的外键置空值,如果sno和cno不是SC表的主键,删除操作是可以完成的,但是由于主键不可以取空值,所以删除操作不能进行。
)实验2.3用户自定义完整性实验目的:学习用户自定义约束,并实践用户自定义完整性,利用SQL查询分析器用短语NOT NULL、UNIQUE、CHECK保证用户定义完整性。
实验原理:1)用户自定义完整性(User-defined Integrity)不同的关系数据库系统根据其应用环境的不同,往往需要一些特殊的约束条件。
用户自定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
它主要包括:(1)域完整性(Domain Integrity)[1] 域完整性是指数据库中的列必须满足某种特定的数据类型或约束。