
- •Лабораторная работа №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);