Организация Web-доступа к базам данных с использованием SQL-запросов
Поставки UPDATE Наличие
SET ПР = 20 SET ПР = 20
WHERE ПР = 13; WHERE ПР = 13;
К сожалению в единственным запросе невозможно обновить более одной
таблицы, а так как код продукта входит в четыре таблицы, то пришлось выдать
четыре сходных запроса. Это может привести к противоречию базы данных
(нарушению целостности по ссылкам), поскольку после выполнения первого
предложения таблицы Состав, Поставки и Наличие ссылаются на уже
несуществующий продукт. База становится непротиворечивой только после
выполнения четвертого запроса.
О конструировании предложений модификации
Для тех, кто достаточно хорошо понял предложение SELECT, несложно
овладеть конструированием предложений DELETE, INSERT и UPDATE. Но в
процессе такого конструирования следует учитывать, что:
1. Если в WHERE фразе предложений DELETE и UPDATE используется вложенный
подзапрос, то во фразе FROM этого подзапроса не должна упоминаться
таблица, из которой удаляются (в которой обновляются) строки.
Аналогично, в подзапросе предложения INSERT не должна упоминаться
таблица, в которую загружаются данные.
Так, SQL отвергнет предложение
INSERT
INTO Выбрано
SELECT (33), Т, БЛ
FROM Выбрано
WHERE СМ = 17;
позволяющее ввести информацию о том, что отдыхающий, сидящий на 33-м
месте, выбирает тот же набор блюд, что и отдыхающий, сидящий на 17-м
месте. Ввод придется осуществить через какую-либо промежуточную
таблицу, например, таблицу Выбор:
DELETE
FROM Выбор;
INSERT
INTO Выбор (СМ, Т, БЛ)
SELECT (33), Т, БЛ
FROM Выбрано
WHERE СМ = 17;
INSERT
INTO Выбрано
SELECT СМ, Т, БЛ
FROM Выбор;
2. Составляя предложения модификации данных, необходимо все время помнить
о сохранении непротиворечивости базы данных. Об этом упоминалось ранее
и подробно говорилось в литературе.
2.3. Обзор основных SQL-серверов.
2.3.1. SQL-сервер Oracle.
Общая характеристика продуктов Oraсle
Все продукты Oracle (СУБД, средства разработки, средства для конечного
пользователя, сетевые компоненты) являются открытыми, масштабируемыми и
программируемыми. Они позволяют разрабатывать приложения, как уровня
небольшой рабочей группы, так и уровня огромного предприятия с тысячами
пользователей, террабайтными базами, размещенными в различных зданиях и
даже странах.
Средства Oracle позволяют надежно защитить эти данные, обеспечить их
целостность и непротиворечивость. Продукты Oracle работают более чем на ста
вычислительных платформах (компьютер + операционная система), поддерживают
все основные промышленные сетевые протоколы и графические оконные среды.
Это позволяет с минимальными затратами переносить готовые приложения с
одной платформы на другую. Например, разработав приложение на
однопроцессорном персональном компьютере с MS Windows, Вы можете далее
выполнять его на Unix – машинах, больших IBM машинах, SMP и MPP
архитектурах, высоко надежных и кластерных архитектурах.
При повышении нагрузки на приложение, можно заменить сервер на более
мощный, добавить еще один сервер, вынести часть обработки в другой узел и
т. д. Если клиент работал через терминал, а затем решил перейти к
архитектуре клиент – сервер или даже переместился в другой город, он сможет
продолжать работать с теми же БД Oracle. Все это не потребует модификации
кода приложений.
С помощью средств Oracle можно реализовать оперативную обработку (OLTP –
системы), системы поддержки принятия решений (DSS – системы) и системы
накопления и анализа больших объемов данных (Data Warehouse и OLAP –
системы). Oracle поддерживает все основные стандарты:
FIPS 127-2, ANSI X3-135.1992 – для БД;
NCSC TDI C2, B1, ITSEC F – C2/E3, F – B1/B3 – по защите данных;
OSI, DNSIX (MaxSix), SNMP – для сети;
ODBC, TSIG, X/Open, DCE, DDE, OLE, OCX, VBX – для взаимодействия
приложений.
Классификация продуктов Oracle
Все многообразие продуктов фирмы Oracle можно разделить на следующие
группы:
Oracle7 Server – ядро СУБД и дополнительные компоненты ядра (опции). Они
необходимы для хранения, поиска, извлечения, обработки и администрирования
данных;
инструментальные средства разработки приложений. Это, в первую очередь,
набор средств разработчика Developer/2000, а также прекомпиляторы с языков
3GL и библиотека CALL-интерфейса;
средства автоматизации проектирования и разработки (CASE-средства) –
Designer/2000;
средства для конечных пользователей. Это набор средств Descoverer/2000,
офисная система Oracle Office, средства хранения и обработки текстов Text
Server (c Context и CoAutor);
средства для анализа данных и создания OLAP (online analyse processing)
приложений – Express – продукты;
средства для обеспечения работы продуктов Oracle в компьютерной сети. Это
SQL*Net с драйверами различных сетевых протоколов, средства управления
сетью, кодирования данных, преобразования протоколов;
средства для взаимодействия с пакетами других фирм. Это шлюзы по данным
(Transparent Gateway) к различным СУБД и процедурные шлюзы; ODBC драйвер,
Oracle Objects for OLE, универсальный пакет связи Oracle Glue;
продукты для рабочих групп – Workgroup/2000. К этой группе относится
нерасширяемое ядро Oracle для персональных компьютеров,
однопользовательский персональный Oracle, средства разработки небольших
приложений-Oracle Power Objects. Продукты для рабочих групп отличаются
компактностью, простотой установки и использования, а так же низкими
ценами;
готовые прикладные системы – Oracle Applications. Среди них наиболее
известными являются: Oracle Financial – финансовые, Oracle Manufacturing –
управление производством, Oracle Human Resources – кадры, бухгалтерия;
новые направления. К этой группе можно отнести продукты для работы с
мультимедиа (Media Server, Media Net, Media Objects), средства для работы с
БД по медленным и ненадежным сетям (радиомодемы, телефоны, сотовая связь) –
Oracle Mobile Agents, средства для работы с БД по Internet (WWW Viewer и
WWW сервер).
Oracle7 Server
Универсальный сервер Oracle позволяет хранить и обрабатывать самые
разные типы данных. Кроме привычных структурированных данных (числа,
строки, дата, время) можно работать с неструктурированными данными, такими
как тексты, многомерные пространственные данные, изображения, видео, аудио.
При этом Oracle обеспечивает надежность хранения и быстроту доступа к этим
данным, а так же возможность создания приложений, работающих со всеми этими
данными в комплексе.
Сегодня Oracle – это реляционная СУБД, поддерживающая язык SQL и его
расширения для работы с различными типами данных, а так же механизм
транзакций. Особенности архитектуры Oracle Server обеспечивают очень
высокое быстродействие системы в многопользовательском режиме. Оригинальный
механизм многоверсионной записи позволяет получать согласованные результаты
при выполнении запросов без блокировки данных. Автоматически выполняется
блокировка данных на уровне записи при модификации данных. Это позволяет
увеличивать число пользователей системы без снижения ее производительности.
Встроенные оптимизаторы запросов, использование алгоритмов
хеширования, битовых индексов и B-деревьев, возможность тонкой настройки
СУБД на возможности среды эксплуатации также позволяют обеспечить очень
высокое быстродействие. Дополнительная компонента ядра Parallel Query
Option позволяет ускорить работу существующих приложений за счет
использования возможностей многопроцессорных машин. Эта компонента резко
снижает время выполнения отдельного запроса, загрузки данных, построения
индекса и т. д. За счет разбиения операций (например, оператора Select) на
части и выполнения этих частей параллельно на разных процессорах.
Увеличение числа процессоров с 1 до 10 позволяет ускорить выполнение
запроса в 8 раз, что очень важно для работы с очень большими БД.
Компоненты Oracle Parallel Server позволяет СУБД Oracle и приложениям
работать на МРР и кластерных архитектурах. Наиболее часто кластер
реализуется на базе компьютеров фирм DЕC, Sequent, HP, Sun, IBM (RS 6000).
При этом все машины кластера могут работать с одной и той же БД (что
ускоряет и распараллеливает работу), а при выходе из строя одного из узлов
кластера, другие узлы аккуратно отработают отказ и возьмут на себя
дальнейшую обработку данных. Использование Oracle на кластере компьютеров
позволяет относительно недорого обеспечить высоконадежное и быстрое решение
задач.
Oracle Server позволяет реализовать как односерверную, так и
многосерверную архитектуру БД. В случае многосерверной архитектуры узлы
могут отстоять на большое расстояние, размещаться на разных ОС и
компьютерах, связываться по разным сетевым протоколам. На основе
многосерверной архитектуры Oracle позволяет реализовать как распределенную
базу данных, так и репликацию.
Компонента Distributed Option позволяет приложению работать с
распределенной БД так же, как с локальной. Автоматически реализуемый
протокол 2х-фазной фиксации позволяет одновременно модифицировать данные в
разных узлах БД. Узлы
| | скачать работу |
Организация Web-доступа к базам данных с использованием SQL-запросов |