- •Лабораторная работа №5 по курсу субд oracle
- •Введение
- •Справочные материалы
- •Модели данных и нотации моделей в PowerDesigner
- •Знакомство с PowerDesigner
- •Создание концептуальной модели данных
- •Генерация физическоймодели данных для субдoracle
- •Генерация sql сценария базы данных
- •Проверка и запуск sql сценария на субдoracle
Генерация sql сценария базы данных
На основе созданной физической модели данных PowerDesigner может автоматически сгенерироватьSQL сценарий базы данных
При генерации SQL сценария необходимо учитывать ограничения целевой СУБД, в частности в СУБДORACLE(8.1.6i) длина идентификаторов ограничена 30 символами.
Для генерации SQL сценария базы данных перейдите к физической модели и в выберите командуDatabase\GenerateDatabase…:
Проверьте параметры генерации SQL сценария, укажите имя файла в который следует сохранитьSQL сценарий и нажмитеOk.
В результате будет создан следующий сценарий:
/*==============================================================*/
/* DBMS name: ORACLE Version 8 */
/* Created on: 05.08.2004 12:39:11 */
/*==============================================================*/
alter table BOOK
drop constraint FK_BOOK_TOOKBOOK_PERSON;
alter table PERSON
drop constraint FK_PERSON_WORKSATLI_LIBRARY;
alter table REGISTEREDINLIBRARY
drop constraint FK_REGISTER_REGISTERE_LIBRARY;
alter table REGISTEREDINLIBRARY
drop constraint FK_REGISTER_REGISTERE_PERSON;
alter table STOREDINLIBRARY
drop constraint FK_STOREDIN_STOREDINL_LIBRARY;
alter table STOREDINLIBRARY
drop constraint FK_STOREDIN_STOREDINL_BOOK;
drop index TOOKBOOK_FK;
drop index WORKSATLIBRARY_FK;
drop index REGISTEREDINLIBRARY2_FK;
drop index REGISTEREDINLIBRARY_FK;
drop index STOREDINLIBRARY2_FK;
drop index STOREDINLIBRARY_FK;
drop table BOOK cascade constraints;
drop table LIBRARY cascade constraints;
drop table PERSON cascade constraints;
drop table REGISTEREDINLIBRARY cascade constraints;
drop table STOREDINLIBRARY cascade constraints;
/*==============================================================*/
/* Table: BOOK */
/*==============================================================*/
create table BOOK (
ISBN VARCHAR2(30) not null,
PASSPORTNUMBER VARCHAR2(20),
NAME VARCHAR2(150),
AUTHOR VARCHAR2(70),
PUBLISHER VARCHAR2(50),
CITY VARCHAR2(20),
YEAR NUMBER(4,0),
constraint PK_BOOK primary key (ISBN)
);
/*==============================================================*/
/* Index: TOOKBOOK_FK */
/*==============================================================*/
create index TOOKBOOK_FK on BOOK (
PASSPORTNUMBER ASC
);
/*==============================================================*/
/* Table: LIBRARY */
/*==============================================================*/
create table LIBRARY (
LIBNUMBER INTEGER not null,
ADDRESS VARCHAR2(150),
PHONE VARCHAR2(20),
constraint PK_LIBRARY primary key (LIBNUMBER)
);
/*==============================================================*/
/* Table: PERSON */
/*==============================================================*/
create table PERSON (
PASSPORTNUMBER VARCHAR2(20) not null,
LIBNUMBER INTEGER,
FULLNAME VARCHAR2(70),
ADDRESS VARCHAR2(150),
PHONE VARCHAR2(20),
DATEOFBIRTH DATE,
PHOTO LONG RAW,
constraint PK_PERSON primary key (PASSPORTNUMBER)
);
/*==============================================================*/
/* Index: WORKSATLIBRARY_FK */
/*==============================================================*/
create index WORKSATLIBRARY_FK on PERSON (
LIBNUMBER ASC
);
/*==============================================================*/
/* Table: REGISTEREDINLIBRARY */
/*==============================================================*/
create table REGISTEREDINLIBRARY (
LIBNUMBER INTEGER not null,
PASSPORTNUMBER VARCHAR2(20) not null,
constraint PK_REGISTEREDINLIBRARY primary key (LIBNUMBER, PASSPORTNUMBER)
);
/*==============================================================*/
/* Index: REGISTEREDINLIBRARY_FK */
/*==============================================================*/
create index REGISTEREDINLIBRARY_FK on REGISTEREDINLIBRARY (
LIBNUMBER ASC
);
/*==============================================================*/
/* Index: REGISTEREDINLIBRARY2_FK */
/*==============================================================*/
create index REGISTEREDINLIBRARY2_FK on REGISTEREDINLIBRARY (
PASSPORTNUMBER ASC
);
/*==============================================================*/
/* Table: STOREDINLIBRARY */
/*==============================================================*/
create table STOREDINLIBRARY (
LIBNUMBER INTEGER not null,
ISBN VARCHAR2(30) not null,
constraint PK_STOREDINLIBRARY primary key (LIBNUMBER, ISBN)
);
/*==============================================================*/
/* Index: STOREDINLIBRARY_FK */
/*==============================================================*/
create index STOREDINLIBRARY_FK on STOREDINLIBRARY (
LIBNUMBER ASC
);
/*==============================================================*/
/* Index: STOREDINLIBRARY2_FK */
/*==============================================================*/
create index STOREDINLIBRARY2_FK on STOREDINLIBRARY (
ISBN ASC
);
alter table BOOK
add constraint FK_BOOK_TOOKBOOK_PERSON foreign key (PASSPORTNUMBER)
references PERSON (PASSPORTNUMBER);
alter table PERSON
add constraint FK_PERSON_WORKSATLI_LIBRARY foreign key (LIBNUMBER)
references LIBRARY (LIBNUMBER);
alter table REGISTEREDINLIBRARY
add constraint FK_REGISTER_REGISTERE_LIBRARY foreign key (LIBNUMBER)
references LIBRARY (LIBNUMBER);
alter table REGISTEREDINLIBRARY
add constraint FK_REGISTER_REGISTERE_PERSON foreign key (PASSPORTNUMBER)
references PERSON (PASSPORTNUMBER);
alter table STOREDINLIBRARY
add constraint FK_STOREDIN_STOREDINL_LIBRARY foreign key (LIBNUMBER)
references LIBRARY (LIBNUMBER);
alter table STOREDINLIBRARY
add constraint FK_STOREDIN_STOREDINL_BOOK foreign key (ISBN)
references BOOK (ISBN);