- •1. Методы распределенной обработки данных
- •1.1. Цели распределенной обработки данных
- •1.3. Архитектура удаленного доступа
- •1.5. Многоуровневые модели. Модель сервера приложений
- •1.6. Физическая модель срод
- •Основные понятия сетевой терминологии
- •2. Распределенные базы данных
- •2.2. Режимы работы с бд
- •2.3. Классификация систем по способам обработки данных
- •2.6. Свойства распределенных баз данных
- •2.7. Функции и архитектура сурбд
- •2.8. Распределенная база данных на примере вуЗа
- •3. Параллельные процессы (или процесс транзакций)
- •3.1. Транзакции
- •Свойства транзакций
- •3.2. Параллелизм операций над бд
- •3.3. Проблемы параллельных процессов
- •3.4. Элементы блокировки.
- •3.5. Расписание транзакций Последовательное исполнение транзакции при использовании блокировок элементов замедляет процесс работы с бд, хотя и работает правильно. Т1: lock a; unlock a;
- •3.6. Модели с блокировками для чтения и записи
- •3.7. Блокировки в Visual FoxPro
- •4. Структурированный язык запросов sql
- •5. Безопасность бд
- •5.3. Целостность данных
- •5.4. Шифрование данных
- •6. Хранилище данных
- •6.1. Концепции хранилища данных
- •6.2. Многомерная модель данных
- •6.4. Интеллектуальный анализ данных
- •7. Базы данных в Интернете
- •7.1. Язык html
- •Гипертекстовые ссылки
- •7.3. Средства взаимодействия.
- •8.1. Архитектура сервера
- •8.2. Табличные пространства и файлы данных
8.2. Табличные пространства и файлы данных
Табличное пространство (tablespace) – это набор, состоящий из одного или нескольких файлов данных. В этих файлах размещается информация, относящаяся к базе данных. Каждая база данных Oracle содержит табличные пространства System и SYS (рис.2). Они автоматически создаются, когда создается база данных. Пространство System всегда находится в оперативном состоянии, когда открыта база данных. В нем хранятся таблицы, поддерживающие функциональные возможности ядра базы данных (например, таблицы словаря данных). SYS – вспомогательное по отношению к System табличное пространство. Оно хранит многие компоненты базы данных и должно быть в оперативном состоянии для корректного функционирования базы данных.
Рис.8.2. Табличные пространства System и Sys
В базе данных существуют следующие структуры хранения:
- Логические:
база данных, схема, табличное пространство, сегмент, экстент, блок Oracle,
- Физические:
файлы данных, файлы параметров, журналы и блок ОС.
8.3. PL/SQL ORACLE
Продукты Oracle можно разделить на пять категорий.
-
Oracle database
-
Oracle Application Server (Сервер приложений)
-
Internet Development Suite (Комплект продуктов для Интернет разработок)
-
Data Warehousing and Business Development (Средства для работы с хранилищем данных и организации бизнеса)
-
Oracle E-business Suite (Набор комплексных приложений для электронного бизнеса)
PL/SQL – Procedural Language/Structured Query Language
(Процедурный язык / Язык структурированных запросов)
Впервые PL/SQL появился в шестой версии Oracle в 1988г.
PL/SQL – язык программирования, напоминающий языки ADA и C.
PL/SQL используется для считывания информации, заполнения БД, создания хранимых объектов и даже для отображения Web – страниц.
Oracle – это не просто база данных, она является также и процессором, поддерживающим различные языки программирования. Так Oracle9i содержит процессор Java со встроенной виртуальной машиной Java (Java Virtual Machine – JVM), а также процессор PL/SQL. Oracle самодостаточен и поэтому не требует других программных продуктов. Процессор PL/SQL тесно интегрирован с базой данных.
Рис.8.3. Архитектура PL/SQL
Рис.8.3 демонстрирует процесс работы PL/SQL внутри базы данных и за ее пределами. Центральное положение занимает сервер Oracle, который является основным процессором БД. Он координирует все обращения к базе данных. Когда программа посылает на сервер запрос, БД Oracle загружает откомпилированный код в память, после чего процессоры PL/SQL и SQL выполняют этот код.
Структура программы PL/SQL
[DECLARE]
Переменные, курсоры
BEGIN
- Команды SQL
- Команды PL/SQL
[EXEPTION]
Действия при возникновении ошибок
END;
/
Программы в PL/SQL обычно называют блоками. Фактически блоки представляют собой завершение программы, которые могут быть успешно выполнены. Каждая программная единица PL/SQL состоит из одного или нескольких блоков. Эти блоки могут быть полностью автономными или вложенными один в другой.
Комментарии: -- однострочные, /* --- */ многострочные.
Типы блоков.
Существуют три типа блоков, из которых может быть выстроена программа PL/SQL: анонимные блоки; процедурные; функции (рис.8.4).
Рис.8.4. Типы блоков
Анонимные блоки не имеют имен. Эти блоки не хранятся в базе данных. Они передаются на исполнение машине PL/SQL во время выполнения приложения. Подпрограммы (subprograms) – это именованные блоки PL/SQL, хранимые в базе данных. Они могут быть вызваны из любой точки приложения. Объявлять их можно как процедуры или функции. Обычно процедура используется для выполнения действия, а функция - для вычисления и возврата значений.
Среды программирования на PL/SQL.
Oracle JDeveloper 10g - интегрированная среда разработки.
Позволяет:
- производить навигацию по присоединенной базе данных и доступ к ее объектам;
- создание пользователей и объектов базы данных;
- создание, выполнение и отладка программ на PL/SQL (например, процедур, функций и пакетов).
iSQL*Plus – это интерфейс к SQL*Plus, предоставляемый из браузера.
Рис.8.5. Архитектура iSQL*Plus
Переменные PL/SQL:
-
Скалярные
-
Составные
-
Ссылочные
-
LOB (большие объекты)
Наиболее часто встречаются следующие типы данных:
VARCHAR2, NUMBER, DATE, BOOLEAN
Инициализация переменных производится по следующей схеме:
Имя_переменной тип_переменной := значение;
Также можно определять переменные в теле основной программы:
Имя_переменной := значение;
Примеры
DECLARE
L_name VARCHAR2(30);
L_today DATE := sysdate;
L_counter NUMBER :=0;
L_average_amount NUMBER(12,2);
Flag BOOLEAN := FALSE;
Атрибут %TYPE позволяет объявить переменную на основе уже объявленной переменной или столбца базы данных. Это позволит избежать ошибок, вызванных несоответствием в типах данных или неверной точностью.
Например.
Balance NUMBER(7,2);
Min_balance balance%TYPE:=1000;
В PL/SQL имеются переменные подстановки, которые используются для ввода данных во время выполнения. В блоке перед именем переменной подстановки ставится амперсанд.
Empno NUMBER(6) := &empno;
Команда DEFINE используется для определения пользовательской переменной
DEFINE lname :=Urman
Команды управления:
-
Условные операторы IF
-
Операторы CASE
-
Операторы цикла
Конструкция IF – THEN
IF x = 0 THEN
Y:=1;
END IF;
BEGIN
IF x>y THEN
Max := x;
ELSE
Max := y;
END IF;
END;
Оператор CASE
CASE переменная
WHEN выражение1 THEN значение1
WHEN выражение2 THEN значение2
WHEN выражение3 THEN значение3
ELSE значение5
END;
Циклы:
Имеются три типа циклов: простой цикл LOOP, цикл FOR, цикл WHILE
Цикл LOOP
LOOP
команды;
EXIT [WHEN выражение];
END LOOP;
Для выхода из цикла используется оператор EXIT
Циклы WHILE
WHILE условие LOOP
Команда1;
Команда2;
. . .
END LOOP;
Цикл FOR
FOR I IN m . . n
LOOP
Команда1;
END LOOP
Пример.
DECLARE
m NUMBER :=1;
n NUMBER := 100;
BEGIN
FOR I IN m . . n LOOP
. . .
END LOOP;
END;
Команды SQL в PL/SQL
SELECT – команда выборки данных
Синтаксис:
SELECT список_выборки
INTO {имя_переменной [, имя_переменной] . . .| имя_записи}
FROM таблица
[WHERE условие];
Пример.
Пусть у нас имеется отношение sotrud (ns, name),
Где ns – номер сотрудника, name – имя сотрудника.
SET SERVEROUTPUT ON
DECLARE
fname VARCHAR2(25);
BEGIN
SELECT name INTO fname
FROM sort WHERE ns=126;
DBMS_OUTPUT.PUT_LINE(‘ Name is: ‘ ||fname);
END;
Манипулирование данными в PL/SQL.
Внесение изменений в таблицы базы данных с помощью команд DML:
INSERT, UPDATE, DELETE, MERGE
Оператор MERGE выбирает строки из одной таблицы для изменения или вставки в другую таблицу.
Курсор SQL
Для выборки из базы данных многих записей и последующей обработке их в программе вводится понятие курсора. Курсор может быть неявным или явным. При однострочной выборке, курсор обычно неявный. При многострочной выборке необходимо явно указать курсор.
Синтаксис объявления явного курсора:
CURSOR имя_курсора IS команда_SELECT;
Пример.
DECLARE
CURSOR q IS
SELECT ns, name FROM sort
WHERE otd=40;
Управление явным курсором производится по следующей схеме, см.рис.8.6.
Рис.8.6. Схема управления курсором
Пример. Выборка данных из курсора.
SET SERVEROUTPUT ON
DECLARE
CURSOR q IS
SELECT ns, name FROM sotr
WHERE n_otdela=40;
num sotr.ns%TYPE;
lname sotr.name%TYPE;
BEGIN
OPEN q;
FETCH q INTO num, lname;
DBMS_OUTPUT.PUT_LINE (num || ‘ ‘ || lname);
. . .
END;
Пример. Выборка данных в цикле.
SET SERVEROUTPUT ON
DECLARE
CURSOR q IS
SELECT ns, name FROM sotr
WHERE n_otdela=40;
num sotr.ns%TYPE;
lname sotr.name%TYPE;
BEGIN
OPEN q;
LOOP
FETCH q INTO num, lname;
EXIT WHEN q%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (num || ‘ ‘ || lname);
END LOOP;
. . .
END;
Курсорный цикл FOR
Курсорный цикл FOR включает курсор SELECT и позволяет осуществлять выборку нескольких строк из базы данных. При этом не нужно заботиться об открытии и закрытии курсора. ORACLE сделает это самостоятельно внутри цикла. В цикле FOR объявлять курсор не требуется.
Пример.
SET SERVEROUTPUT ON
BEGIN
FOR q IN ( SELECT ns, name FROM sotr
WHERE n_otdela=40;
LOOP
DBMS_OUTPUT.PUT_LINE (q.ns || ‘ ‘ || q.name);
END LOOP;
END;
Здесь переменная q используется для сохранения результатов выполнения курсора.
8.4. Процедуры и функции
Процедуры и функции – это именованные блоки PL/SQL. Их также называют подпрограммами. Они компилируются и хранятся в базе данных. Анонимные блоки, рассмотренные ранее – это неименованные блоки. Они после выполнения не сохраняются для последующего повторного использования.
Синтаксис процедуры:
CREATE [OR REPLACE] PROCEDURE имя_процедуры
[(аргумент1 [тип_параметра1] тип_данных1,
[(аргумент2 [тип_параметра2] тип_данных2, . . .)]
IS|AS
тело_процедуры;
Вызов процедуры в анонимном блоке можно осуществить по имени:
Begin
Имя_процедуры;
END;
Процедуру можно также вызвать с помощью команды CALL:
CALL <имя_процедуры>
Функция создается следующим образом:
CREATE [OR REPLACE] FUNCTION имя_функции
[(аргумент1 [тип_параметра1] тип_данных1,
[(аргумент2 [тип_параметра2] тип_данных2, . . .)]
RETURN тип_данных
IS|AS
тело_функции;
Вызываемая функция просто вставляется в исполняемую секцию анонимного блока.
База данных Oracle используется в качестве процессора для Интернета. Тот факт, что Интернет функционирует 24 часа в сутки является громадным достоинством Oracle по доступности к базам данных в любое время суток.
Вопросы
-
Назовите 5 основных продуктов ORACLE.
-
Основные блоки программ PL/SQL.
-
В чем отличие анонимных блоков от именованных.
-
Основные переменные PL/SQL.
-
Как производится инициализация переменных.
-
Назовите основные команды управления в PL/SQL.
-
Циклы программ.
-
Как производится однострочная выборка из базы данных.
-
Для чего используется понятие «курсор».
Приложение 1. Пример создания Web – страницы
-
Введите в текстовом редакторе Блокнот (Notepad) основные теги, определяющие структуру любых HTML – файлов.
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
-
На основе, полученной заготовки создадим Web-страницу г.Казани
<html>
<head>
<title>Web-страница г.Казани</title>
</head>
<body bgcolor=blue text =yellow >
<h1 align=center>Добро пожаловать на нашу страничку</h1>
<center><a href=”spisok.html”><img src=logo.gif border=1></a></center>
<p style=”font-weigt: bold; font-style: italic; font-size: 150%; text:align: center”> Здесь Вы узнаете<a href=”spisok.html”> о нашем городе </a></p>
</body>
</html>
Созданный файл сохраните под именем Kazan.html
-
Создадим список наших возможностей
<html>
<head>
<title>Каков наш город</title>
</head>
<body bgcolor=aqua text=navy>
<h1 align=center>Город Казань</h1>
<ul>
<li> Это красивый город на берегу Волги
<li>Городу исполнилось 1000 лет
<li>Богатая история: Толстой, Пушкин, Лобачевский, Бутлеров, Тукай
<li>В городе развита промышленность: авиационная, машиностроительная, химическая, легкая
<li>Город вузов: КГУ, КГТУ-КАИ, КГТУ-КХТИ, КИСИ, ЭУ, Сельхоз-академия и др.
</ul>
<p align=center>Если у Вас есть вопросы или предложения, напишите нам:</p>
<form action=”mailto: kazan@narod.ru” metod=post>
<center><texarea rows=5 cols=40 name=Comments></texarea></center>
<p><center><input type=submit value=”Отправить”></center></p>
<p><center><a href=”kazan.html”>На первую страницу</a></center>
</form>
</body>
</html>
Сохраните данный файл под именем Spisok.html
4.Создадим меню в виде таблицы
<html>
<head>
<title>Меню</title>
</head>
<body bgcolor=silver>
<table border=1 width=140>
<tr><th><a href=”Kazan.html” target=”kadr”>Главная страница</th></tr>
<tr><th><a href=”Spisok.html” target=”kadr”> История города</th></tr>
<tr><th>Промышленность города</th></tr>
<tr><th>Учебные центры</th></tr>
<tr><th>Культурная и спортивная жизнь</th></tr>
</table>
</body>
</html>
Сохраните под именем Menu.html.
В данном файле только две ссылки на Kazan.html и Spisok.html.
Остальные ссылки и соответствующие файлы разработайте самостоятельно.
-
Значительно улучшить внешний вид и функции сайта можно, используя фреймы. Для создания фреймов вместо тегов <body> используется пара тегов <frameset></frameset> с атрибутами rows или cols.
<html>
<head>
<title>Город Казань</title>
</head>
<frameset cols=160,*>
<frame src=”Menu.html”>
<frame src=”Kazan.html” name=”frame”>
</frameset>
</html>
Сохраним под именем index.html, данный файл является исходным
Чтобы убрать полосу прокрутки можно добавить
<frame src=”Menu.html” scrolling=no>
Литература:
-
Дейт К. Введение в системы баз данных. - М.: "Вильямс", 2000.
-
Конноли Т., Бегг К., Страчан А. Базы данных. Проектирование, реализация и сопровождение. - М.- С./П.- К., 2000.
-
Карпова Т., Базы данных: модели, разработка, реализация, СПб: Питер, 2001 – 304с.
-
Фролов А.В., Фролов Г.В. Базы данных в Интернете: практическое руководство по созданию Web – приложений с базами данных., М.: 2000 – 448с.
-
Ризаев И.С., Яхина З.Т. Базы данных: Учебное пособие. Казань, Изд-во Казан.гос.техн.ун-та, 2008 – 240с.
-
Хомоненко и др. Базы данных. Учебник для высших учебных заведений, 2002 – 672с.
-
Кузнецов С.Д. Основы современных баз данных. Электронные информационно-аналитические материалы. http://www.citmgu.ru
ОГЛАВЛЕНИЕ
|
Введение ………………………………………………………………... |
3 |
1. |
Методы распределенной обработки данных ………………………… |
5 |
1.1. |
Цели распределенной обработки данных …………………………. |
8 |
1.2. |
Модель «клиент-сервер» ……………. |
10 |
1.3. |
Архитектура удаленного доступа ………………………………. |
12 |
1.4. |
Модели удаленного доступа ……………….. |
14 |
1.5. |
Многоуровневые модели……………………………………………… |
19 |
1.6. |
Физическая модель распределенной обработки данных |
20 |
|
Вопросы |
21 |
2. |
Распределенные базы данных………………… |
22 |
2.1. |
Режимы работы с базой данных …………… |
22 |
2.2. |
Классификация систем по способам обработки данных ………... |
23 |
2.3. |
Однородные и неоднородные системы |
28 |
2.4. |
Стратегия размещения данных в РБД по узлам сети ………………. |
33 |
2.5. |
Свойства распределенных БД |
35 |
2.6. |
Функции СУРБД |
37 |
2.7. |
Архитектура распределенных СУБД |
40 |
2.8. |
|
41 |
|
Вопросы ………………………………………………………………… |
44 |
3. |
Параллельные процессы (или процессы транзакций) ………………. |
44 |
3.1. |
Транзакции ……………………………………………………………… |
44 |
3.2. |
Параллелизм операций над БД ………………………………………... |
44 |
3.3. |
Проблемы параллельных процессов ………………………………….. |
48 |
3.4. |
Элементы блокировок …………………………………………………. |
49 |
3.5. |
Расписание транзакций ………………………………………………… |
55 |
3.6. |
Модель с блокировками для чтения и записи ……………………….. |
67 |
3.7. |
Блокировки в Visual FoxPro …………………………………………… |
72 |
|
Вопросы ………………………………………………………………… |
72 |
4. |
Структурированный язык запросов SQL …………………………….. |
73 |
4.1. |
Основные операторы ………………………………………………….. |
74 |
4.2. |
Синтаксис оператора SELECT ……………………………………….. |
75 |
4.3. |
Примеры запросов на языке SQL …………………………………….. |
76 |
4.4. |
Встроенный язык SQL ………………………………………………… |
85 |
|
Вопросы ………………………………………………………………… |
89 |
5. |
Безопасность БД ……………………………………………………….. |
90 |
5.1. |
Идентификация и установление подлинности ……………………….. |
90 |
5.2. |
Системы привилегий …………………………………………………... |
92 |
5.3. |
Целостность данных …………………………………………………… |
94 |
5.4. |
Шифрование данных ………………………………………………….. |
96 |
|
Вопросы ………………………………………………………………… |
97 |
6. |
Хранилище данных ……………………………………………………. |
98 |
6.1. |
Концепции хранилищ данных ………………………………………… |
99 |
6.2. |
Многомерная модель данных …………………………………………. |
100 |
6.3. |
OLAP – системы ……………………………………………………….. |
101 |
6.4. |
Интеллектуальный анализ данных …………………………………… |
103 |
|
Вопросы ………………………………………………………………… |
104 |
7. |
Базы данных в Интернете ………………………………………….. |
105 |
7.1. |
Язык HTML ……………………………………………………………. |
106 |
7.2. |
Публикация БД в Интернете …………………………………………. |
119 |
7.3. |
Средства взаимодействия …………………………………………….. |
121 |
|
Вопросы ……………………………………………………………….. |
122 |
8. |
Oracle database |
123 |
8.1. |
Архитектура сервера |
123 |
8.2. |
Табличные пространства и файлы данных |
125 |
8.3. |
PL/SQL Oracle |
126 |
8.4, |
Процедуры и функции |
136 |
|
Приложение 1. Пример создания Web-страницы …………………… |
139 |
|
Литература ……………………………………………………………… |
142 |
|
Оглавление |
143 |