1. Создать именованное представление, выводящее детальную информацию о студентах (номер зачетной книжки, фамилия, имя, отчество, специальность, курс и группа):
– создать представление Students_details:
ф. Oracle – Object Browser; кн. Create; выбр. View → ф. Create View;
View Name ← Students_details;
– ввести программный код:
select stud_id, fam, im, ot, spec, kurs, gr from students
– сохранить представление:
ф. Create Materialized View; кн. Next → ф. Create Materialized View; кн. Create;
– проверить работоспособность представления:
ф. Oracle – Object Explorer; список ← выбр. Materialized Views;
выбр. Students_details; ф. Students_details; кн. Data → результаты на экране
– модифицировать данные с помощью именованного представления:
ф. Students_details; кн. Data; кн. Insert row ► ф. Students_info;
внести данные; кн. Create;
открыть таблицу Students и проверить наличие новой строки.
Аналогичным образом проверить работоспособность представления для операций обновления и удаления данных.
2. Создать материализованное представление для хранения кратких сведений о студентах (идентификатор, номер зачетки, фамилия и инициалы, идентификатор группы) и их успеваемости:
– создать материализованное представление Students_info:
ф. Oracle – Object Browser; кн. Create; выбр. Materialized View ►
ф. Create Materialized View; Materialized View Name ← Students_info;
– ввести программный код:
select stud_id, no_zk,
concat(concat(concat(rtrim(fam),' '),concat(substr(im,1,1),'.')),concat(substr(ot,1,1),'.'))
as FIO,
concat(concat(spec,'-'), concat(kurs,gr)) as GRUPPA, name as Predmet, ocenka, data
from students, uspev, subjects where students.stud_id=uspev.student
and subjects.predm_id=uspev.predmet
– сохранить представление:
ф. Create Materialized View; кн. Next → ф. Create Materialized View; кн. Create;
– проверить работоспособность представления:
ф. Oracle – Object Explorer; список ← выбр. Materialized Views; выбр. Students_info;
ф. Students_info; кн. Data → результаты на экране
3. Создать триггер, проверяющий, что каждый студент может сдавать не более двух предметов в один день.
|
– написать программный код триггера (PL/SQL):
ф. Oracle – Object Browser; кн. Home → ф. Oracle; кн. SQL → кн. SQL Commands; ф. SQL Commands ввести код:
CREATE OR REPLACE TRIGGER Stud_uspev
BEFORE INSERT OR UPDATE ON Uspev
FOR EACH ROW
DECLARE
kurs number;
stud number; data Date; cnt number;
BEGIN
stud:=:new.student;
data:=:new.data;
SELECT COUNT(*) INTO cnt FROM Uspev WHERE Student=stud and Data=data;
if cnt > 1 then
dbms_output.put_line('Больше нельзя');
end if;
END;
/
– проверить работоспособность триггера, вводя данные в таблицу Uspev.
4. Создать хранимую процедуру для вывода информации о количестве студентов в группе по ее номеру:
– создать процедуру Count_group:
ф. Oracle – Object Browser; кн. Create; выбр. Procedure ► ф. Create Procedure;
Procedure Name ← Count_group; уст. Include Arguments; кн. Next
– определить входные и выходные параметры процедуры:
Argument Name ← gr; In/Out ← In; Argument Type ← Varchar2;
перейти на след. cтроку;
Argument Name ← count; In/Out ← Out; Argument Type ← Number; кн. Next
– ввести программный код процедуры:
вкл. Procedure Body ← select count(*) into count from students where gr=gr;
кн. Next;
– сохранить процедуру
ф. Create Procedure; кн. Finish → ф. Create Procedure; кн. Create
– проверить работоспособность процедуры
ф. Oracle – Object Browser; кн. Home ► ф. Oracle;
кн. SQL ► кн. SQL Commands; ф. SQL Commands ввести код:
DECLARE c NUMBER;
BEGIN
COUNT_GROUP('номер группы',c);
DBMS_OUTPUT.PUT_LINE(Число студентов в группе: ' || c);
END;
/
кн. Run → результат на экране
5. Аналогичным образом создать хранимую процедуру, выводящую количество предметов заданной специальности.
6. Создать хранимую процедуру для вывода списка студентов группы по ее номеру:
ф. Oracle – SQL Commands; ввести код:
create or replace procedure printGroup(g in varchar2)
is
cursor c_stud is select fam from students where gr=g;
r_stud c_stud%ROWTYPE;
|
begin
open c_stud;
loop
fetch c_stud into r_stud;
exit when c_stud%NOTFOUND;
DBMS_OUTPUT.put_line(r_stud.fam);
end loop;
close c_stud;
end;
/
кн. Run → Results: Procedure created.
– проверить работоспособность процедуры
DECLARE C INTEGER;
BEGIN
printGroup('номер группы');
END;
/
кн. Run → результат на экране
7. Аналогичным образом создать хранимую процедуру, выводящую список студентов по заданной специальности.
В. Приложения Oracle
1. Создать приложение-отчет для вывода информации о студентах из таблицы Students:
ф. Oracle | кн. Application Builder → ф. Application Builder | кн. Create> ►
ф. Create Application | уст. Create Application; кн. Next ►
Name ← Students_report; кн. Next ► Select Page Type ← уст. Report;
Page Source ← Table; Table Name ← Students; кн. Add Page ►
кн. Next ► Tabs ← One Level of Tabs; кн. Next ►
Copy Shaped Components from Another Application ← No; кн. Next ►
Authentication Scheme← No Authentication; кн. Next ►
Select a theme ← выбрать любой вариант представления; кн. Next ►
кн. Create; кн. Run
2. Аналогичным образом создать приложение-отчет для вывода информации о предметах из таблицы Subjects.
3. Создать приложение-отчет для вывода информации об успеваемости студентов из таблиц Students, Subjects и Uspev:
ф. Oracle | кн. Application Builder ► ф. Application Builder | кн. Create> ►
ф. Create Application | уст. Create Application; кн. Next ►
Name ← Uspev_report; кн. Next ►
Select Page Type ← уст. SQL Query; Page Name ← Uspev_query;
кн. Query Builder ► ф. Query Builder: выбр. Students, Subjects, Uspev;
выделить stud_ID в графическом объекте Students и перетащить его на student
в объекте Uspev; аналогично – для predm_ID из Subjects.
Выбрать поля: Fam, im, ot – из Students; name – из Subjects; ocenka, data – из Uspev;
Кн. Run; просмотреть результат на экране; кн. return; кн. Add Page; кн. Next ►
Tabs ← One Level of Tabs; кн. Next ►
Copy Shaped Components from Another Application ← No; кн. Next ►
|
Authentication Scheme ← No Authentication; кн. Next ►
Select a theme ← выбрать любой вариант представления; кн. Next ►
кн. Create; кн. Run
4. Создать приложение-форму для редактирования информации о студентах из таблицы Students:
ф. Oracle | кн. Application Builder → ф. Application Builder | кн. Create> ►
ф. Create Application | уст. Create Application; кн. Next ► Name ← Students_form;
кн. Next ► Select Page Type ← уст. Form; Table Name ← Students; кн. Add Page;
кн. Next ► Tabs ← One Level of Tabs; кн. Next ► Copy Shaped Components from
Another Application ← No; кн. Next ► Authentication Scheme ← No Authentication;
кн. Next ► Select a theme ← выбрать любой вариант представления; кн. Next ►
кн. Create; кн. Run
5. Аналогичным образом создать приложение-форму для редактирования информации о предметах из таблицы Subjects.
Г. Oracle и ASP.NET
1. Запустить Microsoft Visual Web Developer:
Пуск | Программы | Microsoft Visual Web Developer 2008 Express Edition ►
Start Page – Visual Web Developer 2008 Express Edition
2. Создать директорию для хранения файлов под именем Группа_неделя (например, asoi337_8):
3. Создать новый Web-сайт:
File | New Web Site… ► ф. New Web Site;
Visual Studio installed templates ← выбр. ASP.NET Web Site;
Location ← File System; выбрать директорию для размещения файлов;
Language ← Visual C#; кн. OK
4. Установить соединение с базой данных Oracle:
– настроить соединение:
Tools | Connect to Database… | ф. Add Connection;
Server Name ← 127.0.0.1; User name ← имя пользователя;
– проверить соединение:
кн. Test Connection → сообщение о статусе соединения;
– установить соединение:
кн. OK → вкл. Database Explorer; проверить наличие нового соединения.
5. Изменить заголовок главной страницы сайта:
вкл. Default.aspx; заменить код
<title> Untitled Page</title>
на
<title>Работа с СУБД Oracle </title>
6. Проверить работоспособность созданного приложения сочетанием клавиш [Ctrl + F5].
7. Ввести заголовок списка данных на странице – текст «Список студентов»:
вкл. Default.aspx; между открывающим и закрывающим тегами <div> ввести текст:
Список студентов
8. Перейти на вкладку Design
9. Поместить на страницу таблицу для представления данных:
Панель инструментов Toolbox | выбр. GridView; перетащить на страницу.
10. Связать таблицу с базой данных:
ф. Grid View Tasks | Choose data source | <New data source…> |
ф. Data Source Configuration Wizard; Choose a Data Source Type ← выбр. Database;
Specify an ID for Data Source ← SqlDataSource; кн. OK;
Choose Your Data Connection | выбр. созданное ранее соединение; кн. Next ►
не уст. Yes, save this connection as…; кн. Next;
Configure the Select Statement | Specify columns from a table or view;
Name ← Students; Columns ← выбр. *; кн. Next ►
Test Query | кн. Test Query → результаты на экране
Кн. Finish
11. Проверить работоспособность созданного приложения сочетанием клавиш [Ctrl + F5].
5. Контрольные вопросы
1. К какому классу СУБД относится Oracle?
2. Каковы особенности Oracle?
3. Как реализуются триггеры в Oracle?
4. Что представляют собой хранимые процедуры в Oracle?
5. Какие представления реализуются в Oracle?
Содержание и оформление отчета
Отчет должен содержать:
– титульный лист, название и цель работы;
– скриншоты результатов работы с СУБД Oracle;
– выводы по работе.