Классика баз данных - статьи


         

с прикладными данными соответствующие таблицы


До начала работы с прикладными данными соответствующие таблицы метаданных должны быть проинициализированы. С этой целью разработан CASE инструмент, позволяющий автоматически сгенерировать скрипт инициализации соответствующих таблиц на языке PL/SQL по заданной EXPRESS спецификации прикладной модели. Фрагмент данного скрипта для информационной схемы ActorResource, приведенной на рис. 1, представлен ниже.

declare l_Sch_ID Schemas.sch_id%TYPE; l_Ent_ID Entities.ent_id%TYPE; begin … lb_defined_types.register_defined_type ('Label','string',l_Sch_ID); lb_defined_types.register_defined_type ('ActorRole','Label',l_Sch_ID); lb_defined_types.register_defined_type ('AddressTypeEnum','enumeration',l_Sch_ID); lb_defined_types.save_enum_type('OFFICE'); lb_defined_types.save_enum_type('HOME'); lb_defined_types.save_enum_type('USERDEFINED');

l_Ent_ID := lb_entity.register_entity ('Organization',l_Sch_ID,false); lb_entity.save_attribute('Id','integer',1,'','',0,'E'); lb_entity.save_attribute('Name','Label',2,'','',0,'E'); lb_entity.save_attribute ('Description','string',3,'','',1,'E'); lb_entity.save_attribute ('Roles','aggregate',4,'','',0,'E'); lb_entity.save_attribute ('Addresses','aggregate',5,'','',0,'E'); lb_entity.save_attribute ('IsRelatedBy','OrganizationRelationship', 6,'OrganizationRelationship','RelatedOrganizations',0,'I'); lb_entity.save_attribute ('Relates','OrganizationRelationship', 7,'OrganizationRelationship','RelatingOrganization',0,'I'); lb_entity.save_attribute ('Engages','Person',8,'Person','EngagedIn',0,'I');

l_Ent_ID := lb_entity.register_entity ('Address',l_Sch_ID,false); lb_entity.save_attribute ('Purpose','AddressTypeEnum',1,'','',0,'E'); lb_entity.save_attribute ('UserDefinedPurpose','string',2,'','',1,'E'); lb_entity.save_attribute ('OfPerson','Person',3,'Person','Addresses',0,'I'); lb_entity.save_attribute ('OfOrganization','Organization', 4,'Organization','Addresses',0,'I');

l_Ent_ID := lb_entity.register_entity ('PostalAddress',l_Sch_ID,false); lb_entity.save_inheritance_relations('Address',false); lb_entity.save_attribute ('AddressLines','aggregate',1,'','',0,'E'); … end;


Содержание  Назад  Вперед