GBASE南大通用数据库的对象模式和违反检测

2023-12-22 17:20

本文主要是介绍GBASE南大通用数据库的对象模式和违反检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GBASE南大通用数据库的对象模式和违反检测可帮助您监视数据完整性。在模式更改期间,或当对于短期 内大批量数据执行插入、删除和更新操作时组合这些特性,这些特性特别有效。

在对象模式特性的讨论的上下文之内,数据库对象是约束、索引和触发器,且它们中的每 一个都有不同的模式。请不要将与对象模式特性相关的数据库对象与一般的数据库对象相 混淆。一般的数据库对象是诸如表和同义词之类的对象。

GBASE南大通用数据库对象模式的定义 

您可为约束或唯一索引设置禁用、启用或过滤模式。您可为触发器或重复索引设置启用或 禁用模式。您可使用数据库对象模式来控制 INSERT、DELETE 和 UPDATE 语句的效果。 

GBASE南大通用数据库启用模式

在缺省情况下,约束、索引和触发器是启用的。 当数据库对象是启用的时,数据库服务器识别该数据库对象的存在,并在它执行 INSERT、 DELETE 或 UPDATE 语句时考虑该数据库对象。因此,当触发器事件发生时,强制执行 启用的约束,更新启用的索引,并执行启用的触发器。

当您启用约束和唯一索引时,如果存在违反的行,则该数据处理语句失败(即,不更改行) 且数据库服务器返回错误消息。 当您分析违反表和诊断表中的信息时,您可标识该失败的原因。然后,您可采取更正活动 或回滚该操作。 

GBASE南大通用数据库禁用模式

当数据库对象是禁用的时,在执行 INSERT、DELETE 或 UPDATE 语句时,数据库服务 器不考虑它。当触发器事件发生时,不强制执行禁用的约束,不更新禁用的索引,也不执 行禁用的触发器。当您禁用约束和唯一索引时,违反该约束或唯一索引的限制的任何数据 操纵语句都成功,(即,更改目标行),且数据库服务器不返回错误消息。 

  GBASE南大通用数据库过滤模式 

  当约束或唯一索引处于过滤模式时,该语句成功,且在 INSERT、DELETE 或 UPDATE 语 句期间,通过将失败了的行写到与该目标表相关联的违反表,数据库服务器强制满足约束 或唯一索引需求。将关于该约束违反的诊断信息写到与目标表相关联的诊断表。 

  GBASE南大通用数据库 使用数据操纵语句的模式的示例 

  一个使用 INSERT 语句的示例可说明启用模式、禁用模式与过滤模式之间的差异。请考虑 这样一条 INSERT 语句,其中一个用户试图在表上添加不满足完整性约束的一行。例如, 假设用户 joe 创建了名为 cust_subset 的表,且此表由下列列构成:ssn(客户的社会保险编 号)、fname(客户的名)、lname(客户的姓)以及 city(客户生活的城市)。ssn 列具有 INT 数据类型。其他三列有 CHAR 数据类型。

假设用户 joe 定义了 lname 列为非空,但尚未将名称指定给非空约束,于是,数据库服务器 已隐式地将名称 n104_7 指定给此约束。最后,假设用户 joe 在 ssn 列上创建了名 为 unq_ssn 的唯一索引。

现在,对 cust_subset 有 Insert 权限的用户 linda 在此表上输入下列 INSERT 语句:

  INSERT INTO cust_subset (ssn, fname, city)

 VALUES (973824499, "jane", "los altos");

  要更好地理解启用模式、禁用模式与过滤模式之间的区别,您可在下面三个部分中查看前 面的 INSERT 语句的结果。 

  当约束为启用的时,插入操作的结果 

  如果在 cust_subset 表上的 NOT NULL 约束是启用的,则 INSERT 语句不能在此表中插入 新行。而当用户 linda 输入该 INSERT 语句时,她收到下列错误消息: -292 An implied insert column lname does not accept NULLs. 

这篇关于GBASE南大通用数据库的对象模式和违反检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/524809

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

深入理解数据库的 4NF:多值依赖与消除数据异常

在数据库设计中, "范式" 是一个常常被提到的重要概念。许多初学者在学习数据库设计时,经常听到第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及 BCNF(Boyce-Codd范式)。这些范式都旨在通过消除数据冗余和异常来优化数据库结构。然而,当我们谈到 4NF(第四范式)时,事情变得更加复杂。本文将带你深入了解 多值依赖 和 4NF,帮助你在数据库设计中消除更高级别的异常。 什么是

模版方法模式template method

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/template-method 超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。 上层接口有默认实现的方法和子类需要自己实现的方法

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序