Федеральное государственное бюджетное образовательное учреждение высшего образования
«Омский государственный технический университет»
Кафедра «Автоматизированные системы обработки информации и управления»
ОТЧЕТ
по лабораторным работам (Oracle Database)
по дисциплине «СУБД»
ВАРИАНТ №38
Проверил преподаватель
________ Малков О. Б
Омск – 2018
Введение 3
Лабораторная работа №1 4
Лабораторная работа №2 8
Лабораторная работа №3 10
13
Лабораторная работа №4 14
Лабораторная работа № 5 17
Лабораторная работа № 6 21
Лабораторная работа №7 23
Лабораторная работа № 8 25
26
27
28
Лабораторная работа № 9 29
29
30
31
Лабораторная работа № 10 32
Лабораторная работа № 11 33
Заключение 35
В ходе выполнения лабораторных работ по дисциплине «СУБД» необходимо освоить основные операции для работы с таким СУБД как Oracle Database. Темой для выполнения последующих лабораторных работ будет: «Деятельность приёмной комиссии униерситета».
Каждый год университет зачисляет новых абитуриентов для возможного их поступления в университет после сдачи вступительных экзаменов. На бюджетную основу могут быть зачислены: абитуриенты, получившие на школьном экзамене высокий балл ЕГЭ и успешно прошедшие собеседование, а так же абитуриенты, имеющие направление от какого-либо государственного предприятия. Все остальные могут поступить в университет на платной основе, набрав необходимое установленное университетом число баллов на вступительных экзаменах.
Рассмотрим базу данных Entrance деятельности приёмной комиссии университета.
База данных должна поддерживать следующую информацию:
Абитуриент (код абитуриента, ФИО, дата регистрации, домашний адрес, школа, возможность оплаты обучения, паспортные данные, средний балл аттестата, код статуса);
Зачисление (код зачисления, код абитуриента, название выбранного факультета, название выбранной специальности, фамилия принявшего документы, основа на которой зачислен);
Предприятие (код предприятия, название предприятия, договор с предприятием, номер договора, условия договора, адрес предприятия, телефон предприятия, платит предприятие);
Аттестат ЕГЭ (код аттестата, предмет, количество баллов);
Логическая модель данных предметной области в стандарте IDEF1X представлена на рис. 1. Выделены сущности АБИТУРИЕНТ, ЗАЧИСЛЕНИЕ, ПРЕДПРИЯТИЕ, АТТЕСТАТ ЕГЭ между которыми установлены неидентифицирующие связи мощностью oдин-ко-многим и один-к-одному, определяемые спецификой предметной области.
Рис. 1. Логическая модель данных предметной области
База данных Entrance состоит из четырёх таблиц:
Student - абитуриент;
Registration – зачисление;
Enterprise_stud – предприятие;
Certificate_stud - Аттестат;
Таблица Student состоит из десяти полей:
Student_id - код абитуриента;
Name - ФИО;
Date_reg – дата регистрации;
Address_stud – домашний адрес;
Phone – телефон;
School – школа;
Money_stud – возможность оплаты обучения;
Passport – паспортные данные;
Middle – средний балл аттестата;
Entrance_type – тип зачисления;
Эти поля должны быть снабжены атрибутом NOT NULL, поскольку неопределенное значение для них недопустимо. Поле student_id является первичным ключом (PK).
Таблица Enterprise_stud состоит из девяти полей:
Student_id - код абитуриента;
Name_enterprise – название предприятия;
Contract_stud – договор с предприятием;
IDContract – номер договора;
ContractAbout – условия договора;
ContAddress – адрес предприятия;
ContPhone – телефон предприятия;
Payment – платит предприятие;
Entrance_type – тип зачисления;
Поле Student_id устанавливает связь между таблицами Enterprise_stud и Student. Это поле должно быть объявлено как внешний ключ (FK) с правилом каскадного удаления и обновления. Удаление района в таблице Student приведет к автоматическому удалению записи в таблице Enterprise_stud, соответствующих коду. Поле Student_id является первичным ключом (PK).
Таблица Certificate_stud состоит из четырёх полей:
Student_id - код абитуриента;
Lesson – предмет;
Score – количество баллов;
Entrance_type – тип зачисления;
Поле Student_id устанавливает связь между таблицами Certificate_stud и Student. Это поле должно быть объявлено как внешний ключ (FK) с правилом каскадного удаления и обновления. Удаление района в таблице Student приведет к автоматическому удалению записи в таблице Certificate_stud, соответствующих коду. Поле Student_id является первичным ключом (PK).
Таблица Registration включает шесть полей:
Registration_id - код зачисления;
Student_id - код абитуриента;
Faculty – факультет;
Speciality - специальность;
Registrar – принял документы;
Type_reg – основание зачисления;
Поле Student_id устанавливает связь между таблицами Student и Registration. Это поле должно быть объявлено как внешний ключ (FK) с правилом каскадного удаления и обновления. Поле Registration_ID является первичным ключом (PK).
Создание новой учетной записи пользователя-разработчика (рис.2):
Рис. 2. Диалоговое окно создания нового пользователя
Назначение системных привилегий пользователю (рис. 3):
Рис. 3. Окно системных привилегий нового пользователя
Назначение квоты новому пользователю (рис. 4):
Рис. 4. Окно изменения квот
Результатом выполнения работы являются скрипты создания таблиц. При написании скрипта следует учитывать, что в первую очередь создаются родительские таблицы, а уже потом – дочерние.
Создание таблицы Student представлено на рисунках 5-6:
Рис. 5. Окно создания таблицы Абитуриент
Рис. 6. SQL представление создаваемой таблицы
Создание таблицы Registration представлено на рисунках 7-9:
Рис. 7. Окно создания таблицы Зачисление
Рис. 8. Создание внешнего ключа
Рис. 9. SQL представление создаваемой таблицы
Рис. 10. Создание таблицы Предприятие
Рис. 11. Создание таблицы Аттестат
Результатом выполнения скриптов создания таблиц является физическая модель данных. Физическая модель данных предметной области в стандарте IDEF1X для целевой СУБД Oracle Database представлена на рисунке 12.
Рис. 12. Физическая модель данных предметной области
Заполнение таблицы Student вручную (рис. 13):
Рис. 13. Окно добавление записей в таблицу
Для подтверждения добавления записи в таблицу необходимо нажать кнопку Commit Changes (F11).
Изменение данных вручную (рис. 14):
Рис. 14. Изменение данных в таблице
После изменения записи в таблице слева от нее появится звездочка. Для подтверждения изменений также необходимо нажать кнопку Commit Changes(F11).
Заполнение таблицы Student с использованием одного оператора INSERT для каждой строки таблицы (рис. 15):
Рис. 15. Заполнение таблицы Student
Заполнение таблицы Registration с использованием одного оператора INSERT для каждой строки таблицы (рис. 15):
Рис. 16. Заполнение таблицы Registration
Заполнение таблицы Certificate_stud с использованием одного оператора INSERT для каждой строки таблицы (рис. 17):
Рис. 17. Заполнение таблицы Certificate_stud
Заполнение таблицы Enterprise_stud с использованием одного оператора INSERT для каждой строки таблицы (рис. 18):
Рис. 18. Заполнение таблицы Enterprise_stud
Создание последовательности (рис. 19):
Рис. 19. Окно создания последовательности
SQL запрос последовательности (рис. 20):
Рис. 20. SQL запрос последовательности
Использование последовательности в запросах (рис. 21):
Рис. 21. SQL запрос на вставку с использованием последовательности
Создание частных синонимов (рис. 21):
Рис. 21. Окно создания частного синонима
SQL код создания синонима (рис. 22):
Рис. 21. SQL код создания синонима
Выполнение запроса с использованием синонима (рис.23):
Рис. 23. Результат запроса
Создание нормального индекса (рис. 24):
Рис. 24. Окно создания нормального индекса
SLQ код создания индекса (рис. 25):
Рис. 25. SQL код создания синонима