در Oracle Database 23c، ما می توانیم Annotations(حاشیه نویسی)را به عنوان یک بسط comments پایگاه داده در نظر بگیریم. با comments ما توانستیم متن آزاد را به اشیایی مانند جداول و ستون ها اضافه کنیم و به ما امکان می دهد هدف و کاربرد آنها را شرح دهیم. Annotations این را یک گام فراتر می برد و به ما امکان می دهد جفت های نام-مقدار را با اکثر اشیاء پایگاه داده مرتبط کنیم، که می تواند برای توصیف یا طبقه بندی آنها استفاده شود. نام ها و مقادیر متن آزاد هستند، بنابراین ما می توانیم هر چیزی را که برایمان معنادار است انتخاب کنیم.
ممکن است یادداشت هایی را مشاهده کنید که به عنوان ” Annotations استفاده از برنامه” توصیف شده اند. این به سادگی تأکید می کند که Annotations برای کمک به مستندات برنامه شما هستند.
مقاله بررسی امکانات جدید اوراکل ۲۳c
اگر یک شی از Annotations پشتیبانی می کند، بند Annotations معمولاً از این قالب پیروی می کند.
ANNOTATIONS ( {ADD|DROP} annotation name {‘annotation value’} {,} )
در اینجا یک مثال ساده از افزودن annotation به جدول آورده شده است. توجه داشته باشید که هنگام افزودن این Annotations از کلمه کلیدی اختیاری ADD استفاده نمیکنیم.
create table fruit (
id number annotations (SurrogateKey, UI_Display ‘Fruit ID’, Classification ‘Fruit Info’),
name varchar2(50) annotations (UI_Display ‘Fruit Name’, Classification ‘Fruit Info’),
description varchar2(50) annotations (UI_Display ‘Description’, Classification ‘Fruit Info’)
)
annotations (UI_Display ‘Fruit Table’, Classification ‘Fruit Info’);
بیایید هر کدام را به ترتیب بررسی کنیم.
SurrogateKey: این annotation به ما می گوید که ستون یک کلید جایگزین است. توجه داشته باشید که این annotation هیچ ارزشی ندارد، زیرا نام برای ارائه معنی کافی است.
UI_Display : این annotation نام نمایشی ترجیحی را در هر UI می دهد.
Classificaton: این annotation به ما اجازه می دهد تا نوع اطلاعات موجود را طبقه بندی کنیم. در این مورد ما آن را به عنوان “اطلاعات میوه” طبقه بندی می کنیم.
به یاد داشته باشید، همه این annotation ها فقط متن آزادی هستند که ما ساختهایم. آنها هیچ معنایی برای پایگاه داده یا ابزار دیگری به جز معنایی که ما با آنها مرتبط می کنیم ندارند. اگر به فاصله در نام کلید نیاز داریم، باید آنها را دوبار نقل قول کنیم. این در مورد کلمات رزرو شده نیز صادق است.
ما می توانیم annotation را با افزودن یا حذف annotation تغییر دهیم. در این مثالها، یک annotation جدید را بدون استفاده از کلمه کلیدی اختیاری ADD به جدول اضافه میکنیم، annotation را با استفاده از کلمه کلیدی DROP از بین میبریم و دوباره آن را اضافه میکنیم، این بار با استفاده از کلمه کلیدی ADD اختیاری می باشد.
alter table fruit annotations (Visibility ‘Everyone’);
alter table fruit annotations (drop Visibility);
alter table fruit annotations (add Visibility ‘Everyone’);
ما می توانیم کار مشابهی را با annotation سطح ستون انجام دهیم
alter table fruit modify (id annotations (Visibility ‘Hidden’));
alter table fruit modify (id annotations (drop Visibility));
alter table fruit modify (id annotations (add Visibility ‘Hidden’));
دو دیدگاه اصلی مرتبط با annotation وجود دارد. آنها نماهای USER_ANNOTATIONS و USER_ANNOTATIONS_USAGE هستند، اما شما احتمالا فقط از نمای USER_ANNOTATIONS_USAGE استفاده خواهید کرد.
set linesize 150
column object_name format a12
column object_type format a12
column column_name format a12
column domain_name format a12
column domain_owner format a12
column annotation_name format a14
column annotation_value format a20
select object_name,
object_type,
column_name,
domain_name,
domain_owner,
annotation_name,
annotation_value
from user_annotations_usage
order by annotation_name, annotation_value;
OBJECT_NAME OBJECT_TYPE COLUMN_NAME DOMAIN_NAME DOMAIN_OWNER ANNOTATION_NAM ANNOTATION_VALUE
———— ———— ———— ———— ———— ————– ——————–
FRUIT TABLE ID CLASSIFICATION Fruit Info
FRUIT TABLE DESCRIPTION CLASSIFICATION Fruit Info
FRUIT TABLE NAME CLASSIFICATION Fruit Info
FRUIT TABLE CLASSIFICATION Fruit Info
FRUIT TABLE ID SURROGATEKEY
FRUIT TABLE DESCRIPTION UI_DISPLAY Description
FRUIT TABLE ID UI_DISPLAY Fruit ID
FRUIT TABLE NAME UI_DISPLAY Fruit Name
FRUIT TABLE UI_DISPLAY Fruit Table
FRUIT TABLE VISIBILITY Everyone
FRUIT TABLE ID VISIBILITY Hidden
۱۱ rows selected.
SQL>