Модификация структуры базы данных
версий структуры и автоматизировать создание сценариев изменения структуры базы данных.
Закончив разработку очередной версии модели базы данных, создайте архив физической модели с помощью команды 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
/
Как можно видеть из данного примера, совсем небольшое изменение в структуре приводит к необходимости создания сценария, который по своим размерам превосходит даже сценарий создания таблицы. Создание такого сценария вручную уже затруднительно, так как для этого надо помнить информацию не только о данной таблице, но и обо всех таблицах, с ней связанных.
Еще по теме Модификация структуры базы данных:
- 4.5. Право изготовителя базы данных
- Глава 9 Создание экспертной базы данных
- 1. Понятие программы для ЭВМ, базы данных и топологии интегральной микросхемы и основные правила их охраны
- Модификации линейной организационной структуры.
- МОДИФИКАЦИЯ ПОВЕДЕНИЯ
- МОДИФИКАЦИЯ
- Социологическое обеспечение доказательной базы журналистского текста
- Социологическое обеспечение доказательной базы журналистского текста
- Григорьев Ю.А., Ревунков Г.И.. Банки данных, 2002
- Оценка данных о личности.
- 18.4. Права субъекта персональных данных
- 2. Регистрация программ, баз данных и охраняемых топологий
- Банк данных