首页 > 数据库 > 数据库开发技术 > 分类分级在Oracle 23ai中的应用
作者:Digital Observer(施嘉伟)
Oracle ACE Associate: Database
PostgreSQL ACE Partner
11年数据库行业经验,现主要从事数据库服务工作
拥有Oracle OCM、DB2 10.1 Fundamentals、MySQL 8.0 OCP、WebLogic 12c OCA、KCP、PCTP、PCSD、OCI、PolarDB技术专家、达梦师资认证、数据安全咨询高级等认证
ITPUB认证专家、PolarDB开源社区技术顾问
国内某高校企业实践指导教师
公众号:Digital Observer;CSDN:施嘉伟;ITPUB:sjw1933;PGFans:施嘉伟。
相关政策法规

通过合理的分类分级,可以提高数据管理和利用的效率,增强数据的安全性和隐私保护,推动数据的分析和挖掘,促进数据的共享和协作。在实践过程中,需要遵循一些原则和方法,确保分类分级结果符合实际情况和项目要求。这对于企业来说尤其重要,因为它们需要确保数据的安全性和合规性,同时提高数据的价值和使用效率。

Oracle 23ai 版本我们可以将注释视为数据库注释的扩展。通过评论,我们能够向表和列等对象添加自定义文本,使我们能够描述它们的目的和用法。通俗点讲就是注释更进一步,允许我们将名称-值对与大多数数据库对象相关联,这些对象可用于描述或分类它们。名称和值是自定义文本。


如果对象支持注释,则注释子句通常遵循这种格式。
ANNOTATIONS ( {ADD|DROP} annotation_name {'annotation_value'} {,} )以下是表添加注释的简单示例。注意,在添加这些注释时,我们不使用可选的ADD关键字。
CREATE TABLE animal (
id NUMBER ANNOTATIONS (SurrogateKey, UI_Display 'Animal ID', Classification 'Animal Info'),
name VARCHAR2(50) ANNOTATIONS (UI_Display 'Animal Name', Classification 'Animal Info'),
description VARCHAR2(50) ANNOTATIONS (UI_Display 'Description', Classification 'Animal Info')
) ANNOTATIONS (UI_Display 'Animal Table', Classification 'Animal Info');
SurrogateKey:此注释告诉我们该列是代理键。请注意,此注释没有任何价值,因为名称足以提供含义。
UI_Display:此注释给出了任何 UI 中的首选显示名称。
Classificaton:此注释允许我们对存在的信息类型进行分类。在本例中,我们将其分类为“动物信息”。
需要注意的是所有这些注释都只是我们编写的自定义文本。除了让我们知道它们相关的含义之外,它们对数据库或任何工具都没有任何意义。如果我们在键名中需要空格,我们必须用双引号将它们引起来。
我们可以通过添加或删除注释来修改注释。在这些示例中,我们在不使用「可选」 ADD 关键字的情况下向表中添加新注释,使用 DROP 关键字删除该注释,然后再次添加它,这次使用「可选」 ADD 关键字。
alter table animal annotations (Visibility 'Everyone');
alter table animal annotations (drop Visibility);
alter table animal annotations (add Visibility 'Everyone');
我们可以对列级注释执行类似的操作。
alter table animal modify (id annotations (Visibility 'Hidden'));
alter table animal modify (id annotations (drop Visibility));
alter table animal modify (id annotations (add Visibility 'Hidden'));
有两个与注释相关的主要视图。它们是 USER_ANNOTATIONS 和 USER_ANNOTATIONS_USAGE 视图,但我们可能只会使用 USER_ANNOTATIONS_USAGE 视图。USER_ANNOTATIONS没啥意义。


再建立一张植物表
CREATE TABLE plant (
id NUMBER ANNOTATIONS (SurrogateKey, UI_Display 'Plant ID', Classification 'Plant Info'),
name VARCHAR2(50) ANNOTATIONS (UI_Display 'Plant Name', Classification 'Plant Info'),
description VARCHAR2(50) ANNOTATIONS (UI_Display 'Description', Classification 'Plant Info')
) ANNOTATIONS (UI_Display 'Plant Table', Classification 'Plant Info');查询user_annotations_usage视图:
SELECT * FROM user_annotations_usage

我们如果想要动物分类的信息,那么用以下语句查询即可以查到所有动物分类的信息:
SELECT * FROM user_annotations_usage WHERE ANNOTATION_NAME='CLASSIFICATION' AND ANNOTATION_VALUE='Fruit Info';

大家认为注释新特性是否可以对分类分级工作带来比较大的帮助,欢迎评论区交流,欲知更多精彩内容,请关注下一期公众号!




原文作者:Digital Observer;如有侵权,请联系管理员删除。