Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

уд6,7

.doc
Скачиваний:
29
Добавлен:
15.03.2015
Размер:
1.34 Mб
Скачать

Санкт-Петербургский государственный университет телекоммуникаций

им. проф. М.А. Бонч-Бруевича

факультет Информационных систем и технологий

Отчёт по лабораторной работе №7

Лабораторная работа №7

Предмет: Управление данными

Выполнил: студент группы ИСТ-03

Санкт-Петербург

2013

A.1. Создать логическую модель базы данных для учета имеющихся в библиотеке книг.

Требования к модели:

  • У книги может быть один или несколько авторов;

  • Автор может издать одну или несколько книг;

  • Книга может быть издана одним или несколькими издательствами;

  • Издательство может издавать одну или несколько книг.

База данных должна содержать следующую информацию:

- об авторах: Фамилию, имя, отчество ;

- о книгах: Название, авторы, год издания, издательство, цена;

- об издательствах: Название, город, телефон.

2. Предусмотреть значения по умолчанию для столбца Цена (0), Телефон (‘111-11-11’) и проверку вводимых пользователем значений - Цена >= 0

3. Создать физическую модель базы данных. Отобразить ключевые поля.

4. Создать представление для отображения Фамилий авторов, Названий книг, Названий издательств.

5. Проверить разработанную модель средствами Validator.

6. Устранить ошибки модели, которые выявил Validator.

7. Провести прямое проектирование – создать объекты базы данных в Oracle.

8. Проверить базу данных в Oracle: Наличие ключевых полей, значений по умолчанию, условий проверки вводимых пользователем значений, связей между таблицами, работу представления и запросов (Для проверки работоспособности базы данных внести в таблицы базы данных по 5 записей)

9. Провести обратное проектирование базы данных из Oracle.

Ход работы

A.1. Создать логическую модель базы данных для учета имеющихся в библиотеке книг.

Требования к модели:

  • У книги может быть один или несколько авторов;

  • Автор может издать одну или несколько книг;

  • Книга может быть издана одним или несколькими издательствами;

  • Издательство может издавать одну или несколько книг.

База данных должна содержать следующую информацию:

- об авторах: Фамилию, имя, отчество ;

- о книгах: Название, авторы, год издания, издательство, цена;

- об издательствах: Название, город, телефон.

Определим сущности:

  1. Книги

  2. Авторы

  3. Издательства

  4. АвторыКниг

  5. Издания

Создадим логическую модель в Erwin.

Добавим сущности Книги, Авторы, Издательства, АвторыКниг и Издания

Предусмотрим значения по умолчанию для столбца Цена (0), Телефон (‘111-11-11’) и проверку вводимых пользователем значений - Цена >= 0

Установим значение по умолчанию для столбца Телефон

Предусмотрим значения по умолчанию для столбца Цена (0), Телефон (‘111-11-11’) и Цена >= 0

Добавим значение по умолчанию для поля Цена.

Логическая модель создана

Создадим физическую модель базы данных с отображением ключевых полей

Создадим представление для отображения Фамилий авторов, Названий книг, Названий издательств.

Издания.ИДкниги=Книги.ИДкниги and

Издания.ИДиздательства=Издательства.ИДиздательства and

Книги.ИДкниги=АвторыКниг.ИДкниги and

АвторыКниг.ИДавтора=Авторы.ИДавтора

Создано представление

Проверим модель с помощью Validator.

Устраним ошибки модели, выявленные Validator.

Изменим название поле Название у таблицы Книги и Издательства

  1. Добавить в таблицу Книги уникальное поле ISBN

Добавим в таблицу Авторы поле КодАвтора и сделать его уникальным

Далее у всех ИД полей изменим тип с NUMBER на INTEGER

Сохраним и проверим в Validator.

Ошибок нет

Проведем прямое проектирование – создадим базу данных Oracle

Выбираем Schema Generation

Нажмем на кнопку Preview и увидим код создания БД

База создана.

Проверим базу данных в Oracle: Наличие ключевых полей, связей между таблицами, работу представлений, выполнение запросов. (Для проверки работоспособности базы данных внести в таблицы базы данных по 5 записей)

Заполним таблицы

insert into Авторы values (1,'Пушкин','Александр','Сергеевич',10001);

insert into Авторы values (2,'Лермонтов','Михаил','Юрьевич',10002);

insert into Авторы values (3,'Гоголь','Николай','Васильевич',10003);

insert into Авторы values (4,'Толстой','Лев','Николаевич',10004);

insert into Авторы values (5,'Тургенев','Иван','Сергеевич',10005);

insert into Книги values (10,'Информатика',4846281062);

insert into Книги values (11,'Физика',8685386011451);

insert into Книги values (12,'Программирование',3293530322);

insert into Книги values (13,'Базы данных',5479006204);

insert into Книги values (14,'Информационные системы',9265914190559);

insert into АвторыКниг values(1,10);

insert into АвторыКниг values(2,11);

insert into АвторыКниг values(3,12);

insert into АвторыКниг values(4,13);

insert into АвторыКниг values(5,14);

insert into Издательства values (100,'Издательство книг','Москва',7231448);

insert into Издательства values (101,'Библиотека книг','Москва',5551198);

insert into Издательства values (102,'Издательство 1','Санкт-Петербург',8732544);

insert into Издательства values (103,'Издательство 2','Санкт-Петербург',22721234);

insert into Издательства values (104,'Издательство 3','Санкт-Петербург',3342244);

insert into Издания values (10,100,1000,2007,350);

insert into Издания values (11,101,1001,2009,215);

insert into Издания values (12,102,1002,2008,210);

insert into Издания values (13,103,1003,2006,551);

insert into Издания values (14,104,1004,2008,150);

Для отображения Авторов, Названий книг, Названий издательств используем представление

Проведем обратное проектирование базы данных из Oracle

Выбираем Reverse Engineer

Далее выберем файл со скриптом

B.1. Создать логическую модель базы данных поликлиники.

Требования к модели:

  • В поликлинике работают участковые врачи и специалисты.

  • Каждый врач может быть только специалистом или только участковым врачом.

  • Каждый участковый врач обслуживает только один участок.

  • Один участок обслуживает только один участковый врач.

  • Каждый врач-специалист имеет определенную специализацию – хирург, ЛОР и т.д

  • Участок характеризуется перечнем улиц с указанием домов, которые соответствуют данному участку.

  • Расписания врачей стабильны и заданы на неделю.

  • В расписании указаны часы приема, кабинет и день недели.

  • Для приема каждого пациента отводится строго регламентированное время, поэтому весь прием делится на временные интервалы, для приема одного пациента и каждому интервалу назначается номерок, содержащий порядковый номер и время начала приема – время окончания приема.

  • В одном кабинете могут работать разные врачи, но только в разное время.

  • Номерок имеет номер, который является уникальным в день приема к конкретному врачу; т.е. номерки к разным врачам в один и тот же день могут повторяться;

  • При записи к врачу пациент должен указать свой адрес – улицу и дом, по адресу определяется его участок.

  • При записи к врачу пациент указывает также фамилию, имя, отчество, дату рождения, телефон, место работы, перечень хронических заболеваний – гепатит, например.

2. Создать физическую модель базы данных. Отобразить ключевые поля.

3. Создать представление для отображения фамилии больного, фамилии его участкового врача, времени приема врача по дням недели, номера кабинета.

4. Создать представление для отображения фамилии специалиста, его специализации, времени приема врача по дням недели, номера кабинета.

5. Проверить разработанную модель средствами Validator.

6. Устранить ошибки модели, которые выявил Validator.

7. Провести прямое проектирование – создать объекты базы данных в Oracle.

8. Проверить работоспособность базы данных в Oracle: Наличие ключевых полей, связей между таблицами, работу представлений, выполнение запросов. (Для проверки работоспособности базы данных внести в таблицы базы данных по 5 записей)

9. Провести обратное проектирование базы данных из Oracle.

Определим сущности:

Профессии

Доктора

Участки

Улицы

Периоды

Расписания

ЗаписиНаПрием

Клиенты

БолезниКлиентов

Создадим логическую модель

Добавим сущности Профессии, Доктора, Участки, Улицы, Периоды, Расписание, ЗаписиНаПрием, Клиенты, БолезниКлиентов

Физическая модель базы данных с отображением ключевых полей

Создадим представление для отображения фамилии больного, фамилии его участкового врача, времени приема врача по дням недели, номера кабинета.

Создадим представление для отображения фамилии специалиста, его специализации, времени приема врача по дням недели, номера кабинета.

Представления созданы

Проверим созданную модель в Validator.

Устраним ошибки, которые выявил Validator

  1. Изменим название поля ФИО таблицы Доктора и Клиенты

Проверим в Validator

Ошибок нет

Провеем прямое проектирование

Создана база данных

Проверим базу данных в Oracle: Наличие ключевых полей, связей между таблицами, работу представлений, выполнение запросов. (Для проверки работоспособности базы данных внести в таблицы базы данных по 5 записей)

insert into Профессии values (1,'Терапевт');

insert into Профессии values (2,'Хирург');

insert into Участки values (10,'1-а');

insert into Участки values (11,'1-б');

insert into Доктора values (100,'Иванов А.А.','Специалист',1,null);

insert into Доктора values (101,'Петрова Т.В.','Участковый',null,11);

insert into Доктора values (102,'Сидоров М.Н.','Участковый',null,10);

insert into Периоды values (1000,'0800','1200');

insert into Периоды values (1001,'1200','1330');

insert into Периоды values (1002,'1330','1500');

insert into Периоды values (1003,'1200','1430');

insert into Расписание values (10001,'Вторник',121,1000,100);

insert into Расписание values (10002,'Среда',150,1002,100);

insert into Расписание values (10003,'Среда',150,1003,102);

insert into Улицы values (4000,'ул Дыбенко',10);

insert into Улицы values (4001,'Лиговский пр',10);

insert into Улицы values (4002,'пр Большевиков',11);

insert into Клиенты values (1,'Иванов С.А.','3605125845',to_date('03.05.1978','dd.mm.yyyy'),14,'ОАО Ростелеком','123-885-74',4000);

insert into Клиенты values (2,'Петров А.Н.','361098765',to_date('01.10.1985','dd.mm.yyyy'),114,'ИП Иванова','123-001-13',4001);

insert into БолезниКлиентов values (1,'Гепатит',1);

insert into БолезниКлиентов values (2,'Бронхит',1);

insert into ЗаписиНаПрием values (100001,sysdate,1,'0800','0900',10001,1);

insert into ЗаписиНаПрием values (100002,sysdate,2,'0900','1000',10001,2);

Проверим работу представлений

Проведем обратное проектирование базы данных из Oracle

Вывод: базы данных библиотеки и поликлиники были созданы с помощью ERwin

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]