<<
>>

Модификация структуры базы данных

Жизненный цикл создания и сопровождения информационной системы имеет вид спирали. Это означает, что модификация структуры базы данных практически не­избежна. САБЕ-средства позволяют несколько упростить поддержку нескольких

версий структуры и автоматизировать создание сценариев изменения структуры базы данных.

Закончив разработку очередной версии модели базы данных, создайте архив фи­зической модели с помощью команды Database ► Archive Model. Затем вы можете модифицировать модель, и после завершения создания очередной версии запу­стить процесс модификации структуры базы данных с помощью команды Database ► Modify Database. При этом откроется окно диалога Parameters, которое, в отличие от аналогичного окна создания структуры базы данных, содержит поле для ввода имени архивной модели. После задания всех необходимых для модификации па­раметров щелкните на кнопке Generate script. Power Designer сравнит текущую мо­дель базы данных с архивной моделью и создаст сценарий, содержащий команды модификации структуры базы данных.

При этом учитываются особенности вы­бранной СУБД. Например, в ORACLE 7.3, в отличие от некоторых других систем, отсутствует команда удаления поля таблицы. В этом случае создается временная таблица, в которую переписывается вся информация из модифицируемой табли­цы. После этого таблица удаляется и создается вновь — без удаленного столбца. Затем в нее добавляются записи из временной таблицы. Ниже приведен пример удаления столбца QLTY_LEVEL из таблицы BUILDING:

alter table ASSIGNMENT . drop constraint FK_BUILDING_ASSIGNMENT

/

create table tmp_BUILDING

(

BLDGJD NUMBER not null.

BLDG_ADDRESS VARCHAR2(100) null.

BLDGJYPE CHAR(20) not null,

QLTY_LEVEL NUMBER!1) null,

STATUS NUMBER(l) not null

/

insert into tmp_BUILDING (BLDGJD. BLDG_ADDRESS, BLDGJYPE, QLTYJEVEL, STATUS) select BLDGJD, BLDG_ADDRESS.

BLDGJYPE, QLTYJEVEL, STATUS from BUILDING /

drop table BUILDING cascade constraints

/

create table BUILDING (

BLDGJD NUMBER not null,

BLDG_ADDRESS VARCHAR2(100) null ,

BLDGJYPE CHAR(20) default 'Офис' not null constraint CKC_BLDG_TYPE_BUILDING

check (BLDGJYPE in ('Офис'. 'Склад', 'Магазин', 'Іилой дом')),

STATUS NUMBER(l) default 1 not null

constraint CKC_STATUS_BUILDING check (STATUS between 1 and 3), constraint PK_BUILDING primary key (BLDGJD)

)

/

comment on table BUILDING is 'Список строящихся зданий'

/

comment on column BUILDING.BLDG_ID is 'BLDG-ID'

/

comment on column BUILDING.BLDG_ADDRESS is 'BLDG-ADDRESS'

/

comment on column BUILDING.BLDG_TYPE is 'BLDG-TYPE'

/

comment on column BUILDING.STATUS is 'STATUS'

/

insert into BUILDING (BLDGJD. BLDG_ADDRESS. BLDG_TYPE. STATUS) select BLDGJD. BLDG_ADDRESS, BLDGJYPE. STATUS from tmp_BUILDING /

drop table tmp_BUItDING cascade constraints /

alter table ASSIGNMENT

add constraint FK_BUILDING_ASSIGNMENT foreign key (BLDGJD) references BUILDING (BLDGJD) on delete cascade

/

Как можно видеть из данного примера, совсем небольшое изменение в структуре приводит к необходимости создания сценария, который по своим размерам пре­восходит даже сценарий создания таблицы. Создание такого сценария вручную уже затруднительно, так как для этого надо помнить информацию не только о дан­ной таблице, но и обо всех таблицах, с ней связанных.

<< | >>
Источник: Избачков Ю. С., Петров В. Н.. Информационные системы. 2006

Еще по теме Модификация структуры базы данных:

  1. 4.5. Право изготовителя базы данных
  2. Глава 9 Создание экспертной базы данных
  3. 1. Понятие программы для ЭВМ, базы данных и топологии интегральной микросхемы и основные правила их охраны
  4. Модификации линейной организационной структуры.
  5. МОДИФИКАЦИЯ ПОВЕДЕНИЯ
  6. МОДИФИКАЦИЯ
  7. Социологическое обеспечение доказательной базы журналистского текста
  8. Социологическое обеспечение доказательной базы журналистского текста
  9. Григорьев Ю.А., Ревунков Г.И.. Банки данных, 2002
  10. Оценка данных о личности.
  11. 18.4. Права субъекта персональных данных
  12. 2. Регистрация программ, баз данных и охраняемых топологий
  13. Банк данных