0

0

介绍DB2中执行基于时间的引用完整性

php中文网

php中文网

发布时间:2016-06-07 17:54:39

|

1586人浏览过

|

来源于php中文网

原创

IBM DB2 10 中的新时态特性为基于时间的数据管理提供了丰富的功能。例如,一个日期范围可分配给每行数据以指出您的应用程序或业务何时认为该行有效。支持跟踪此类业务有效性的表称作应用程序周期时态表,而且其业务时间周期可以是过去的、现在的或

对于有外键关系的父表和子表,可扩展引用完整性的概念来考虑传统键值,以及任何给定行的业务时间周期。本文将介绍这种时态引用完整性 (temporal referential integrity),以及如何在 db2 中强制执行基于时间的一致性。本文内容适用于 db2 for z/os® 和 db2 for linux®, unix®, and windows®。所有 sql 样例已在 db2 10.1 for luw® 中进行了测试。

DB2 10 for z/OS 和 DB2 10 for Linux, UNIX, and Windows 引入了基于时间的数据管理,允许您查询和操作过去、现在以及未来的数据,同时保留所有数据更改的完整历史记录。DB2 中的时态特性集合也被称之为 Time Travel Query。

DB2 支持 3 类时态表:

  • 系统周期时态表:DB2 以透明的方式不断地保留已更新或删除行的历史记录。使用 SQL 语言标准的新结构,用户可以 “回到过去” 并查询过去任一选择点的。这是以内部分配的系统时间戳为基础,DB2 使用该时间戳来管理系统时间,也称之为事务处理时间。
  • 应用程序周期时态表:应用程序提供日期或时间戳以描述数据的业务有效性。SQL 的新结构支持应用程序插入、查询、更新和删除过去、现在以及未来的数据。DB2 自动应用约束条件和行分割 (row-split) 来正确地维护应用程序提供的业务时间,也称之为有效时间。
  • 双时态表:管理系统时间和业务时间。双时态表结合了系统周期和应用程序周期时态表的所有功能。这种结合使得应用程序能够管理数据的业务有效性,同时 DB2 可保存所有更新和删除的完整历史记录。

在本文其余部分,我们假设您熟悉 DB2 中应用程序周期时态表的基本知识。时态引用完整性 (RI) 的讨论也适用于双时态表中的业务时间。当您更新或删除业务时间中一个指定部分的数据时,应该了解如何创建和使用这些表,并了解 DB2 如何执行行分割 (row-split)。

什么是时态引用完整性?

一个示例

在本小节中,我们首先重温了关系数据库中传统的引用完整性 (RI),然后对时态 RI 展开讨论。我们的场景涉及一个虚拟业务,该业务从供应商处接收产品,然后将这些产品卖给客户,偶尔也会进行促销活动,在一定时间段内以折扣价格销售选定的产品。为了帮助您理解如何实现和执行时态 RI,我们使用该应用程序场景和样例数据。

高端时尚购物网店
高端时尚购物网店

1、系统基于网上流行被广泛使用的商城平台延续开发,集百家之所长,技术领先、功能完备;不需要懂技术,只要会打字3分钟即可以建立一个功能完备的网上商城; 2、安装方便:只需传到您的虚拟空间即可; 3、界面由专业设计师设计,时尚简约,采用人性化的布局,是一套纯专业高端网上购物平台。应用本系统更能有效地提高产品档次,树立网店及商品品牌! 4、全面优化代码提供系统的执行效率,并且针对搜索引擎做了代码优化,使

下载

传统 RI

清单 1 显示两个涉及管理该业务的表。父表,product_avail,提供的每个产品在其中都有一行,并识别提供该产品的供应商。子表,promotion,每个特价产品都有一行,由一个促销 ID、各自的产品 ID 和折扣价定义。两个表可能还有其他列,但是为了简单起见,这些列目前已经足够了。

清单 1. 父表和子表之间引用完整性的简单示例

				
CREATE TABLE product_avail(
    prodID     INTEGER NOT NULL, 
    supplier   VARCHAR(32),
  PRIMARY KEY(prodID) );

CREATE TABLE promotion(
    promoID    INTEGER NOT NULL, 
    prodID     INTEGER NOT NULL, 
    price      DECIMAL(10,2), 
  PRIMARY KEY(promoID),
  FOREIGN KEY (prodID) REFERENCES product_avail(prodID) );

因为只能对已有产品提供促销,所以 promotion 表中的每一行必须包含一个存在于 product_avail 表中的 prodID。这个条件被称为 引用完整性,由 promotion 表中的外键 (foreign key, FK) 约束声明并执行。有了该约束,任何试图使用 product_avail 表中不存在的 prodID 插入或更新促销表的操作都将被 DB2 拒绝。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

33

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

32

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

36

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

7

2026.01.31

漫画防走失登陆入口大全
漫画防走失登陆入口大全

2026最新漫画防走失登录入口合集,汇总多个稳定可用网址,助你畅享高清无广告漫画阅读体验。阅读专题下面的文章了解更多详细内容。

11

2026.01.31

php多线程怎么实现
php多线程怎么实现

PHP本身不支持原生多线程,但可通过扩展如pthreads、Swoole或结合多进程、协程等方式实现并发处理。阅读专题下面的文章了解更多详细内容。

1

2026.01.31

php如何运行环境
php如何运行环境

本合集详细介绍PHP运行环境的搭建与配置方法,涵盖Windows、Linux及Mac系统下的安装步骤、常见问题及解决方案。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

php环境变量如何设置
php环境变量如何设置

本合集详细讲解PHP环境变量的设置方法,涵盖Windows、Linux及常见服务器环境配置技巧,助你快速掌握环境变量的正确配置。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

php图片如何上传
php图片如何上传

本合集涵盖PHP图片上传的核心方法、安全处理及常见问题解决方案,适合初学者与进阶开发者。阅读专题下面的文章了解更多详细内容。

2

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.6万人学习

React 教程
React 教程

共58课时 | 4.4万人学习

Sass 教程
Sass 教程

共14课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号