- •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 |