Uploaded by 79241788002m

SQL электронный конспект

advertisement
Язык SQL
Хранимые и присоединенные процедуры
Операционная среда серверов
Операционная среда серверов
хемы оптимизации работ на языке SQL
Транзакции и целостность БД
Ссылочная целостность реляционных БД
Тезаурусный словарь
 База данных- это совокупность массивов и файлов данных,
организованная по определённым правилам, предусматривающим
стандартные принципы описания, хранения и обработки данных
независимо от их вида.
 SQL (Structured Query Language -- язык структурированных запросов),
так как он удобен для описания логических подмножеств БД.
Язык SQL
Большинство СУБД используют язык SQL (Structured Query Language -- язык
структурированных запросов), так как он удобен для описания логических
подмножеств БД.
Назначение SQL:
o
o
o
создание БД и таблицы с полным описанием их структуры;
выполнение основных операций манипулирования данными (такие как
вставка, модификация и удаление данных из таблиц);
выполнение простых и сложных запросов.
Одна из ключевых особенностей языка SQL заключается в том, что с его
помощью формируются запросы, описывающие, какую информацию из базы
данных необходимо получить, а пути решения этой задачи программа
определяет сама.
Хранимые и присоединенные процедуры
Существуют расширенные версии языка SQL, которые поддерживают такие
расширения, как хранимые и расширенные процедуры, а также управление
ходом программы через ветвления и организацию циклов.
Хранимые
процедуры -это
предварительно
откомпилированные
предложения языка SQL, которые сохраняются на сервере базы данных,
использующей язык SQL. Клиент запускает хранимую процедуру с помощью
команды EXECUTE<имя процедуры>. Таким образом, по сети передаются
только два слова. Поскольку эта процедура уже откомпилирована и
оптимизирована, серверу не нужно тратить время на компиляцию и
оптимизацию.
В качестве хранимых процедур обычно используются часто выполняемые
запросы.
Присоединенные процедуры (триггеры) подобны хранимым процедурам и
исполняются в ответ на события, происходящие в БД. Когда с некоторыми
приложениями языка SQL связана присоединенная процедура, выполнение
этого предложения всегда запускает целую серию команд, входящих в эту
процедуру. Присоединенная процедура автоматически выполняет одно или
более предложений языка SQL, всякий раз, когда выполняет предложения
INSERT, UPDATE или DELETE.
Самое важное применение присоединенных процедур заключается в
обеспечении ссылочной целостности.
Операционная среда серверов
Примеры серверов БД: SQL SERVER (Microsoft), SQL BASE SERVER, Oracle
SERVER (Oracle Corporation), IBM DB2, Informix.Каждый сервер БД может
работать на определенных типах компьютеров и сетей. Операционными
системами серверов могут быть MSDOS, OS/2, Xenix,Unix, Dec VMS/
Рабочие станции пользователей обычно работают под управлением MSDOS,
OS/2, Xenix, Unix.
Существуют возможности смешанного использования различных ОС.
Большая часть SQL-серверов может хранить описание БД в системном
каталоге, который обычно бывает доступен пользователям. Для обращения к
этому каталогу используются SQL-запросы. Реляционные СУБД могут
использовать информацию, хранящуюся в системном каталоге для
оптимизации SQL-запросов.
Ссылочная целостность реляционных БД
Большинство SQL-серверов поддерживают ссылочную целостность
реляционных БД, состоящих из отдельных таблиц, которые могут быть
объединены на основе общей информации.
Рассмотрим на следующем примере: база данных содержит таблицу клиентов
и таблицу заказов, которые связаны полем номера клиента, содержащимся в
обеих таблицах. Поскольку может быть более одного заказа от одного
клиента, соотношение таблиц -- «один-ко-многим». Когда таблицы
соединены, то таблица клиентов является родительской, а таблица заказов -дочерней. Если запись-родитель стирается, а соответствующие ей дочерние
записи -- нет, то говорят, что дочерние записи «осиротели».
Ссылочная целостность означает, что ни в одной таблице не допустимы
записи-«сироты».
Запись может осиротеть тремя способами:
1. родительская запись удалена;
2. родительская запись изменена таким образом, что связь между
«родителем» и «потомками» потеряна;
3. введена дочерняя запись без соответствующей родительской.
Поддержание ссылочной целостности возможно несколькими способами:
1. Через ключи, хранящиеся в таблицах БД (родительские таблицы
содержат первичные ключи, представляющие собой комбинации
внешних ключей, которые могут быть найдены внутри каждой из
дочерних таблиц).
2. Использование присоединенных процедур -- процедурная ссылочная
целостность. Присоединенные программы обеспечивают ссылочную
целостность за счет автоматического выполнения предложений SQL
всякий раз, когда встречается одно из предложений UPDATE/INSERT
или DELETE (либо запрещается удаление родительской записи, либо
стираются все дочерние записи).
Транзакции и целостность БД
Транзакция -- совокупность логически взаимосвязанных запросов,
направленных на согласованное изменение некоторого множества строк в
одной или нескольких таблицах БД. Обычно при выполнении транзакций
обновляется несколько таблиц и индексов, связанных с этими таблицами.
Для того чтобы гарантировать синхронизацию обновления и целостность
данных, в серверах обычно используется принцип «все или ничего»,
означающий, что в БД вносятся либо все обновления или ни одно из них. С
этой целью ведется журнал транзакций, в котором регистрируется
информация обо всех затребованных изменениях. Этот журнал обеспечивает
возможность «прокрутить назад» совершенные транзакции и восстановить
предыдущее состояние БД. Это становится важно, когда изменения в БД,
предусмотренные в одной транзакции, реализованы лишь частично,
например, из-за сбоя аппаратуры.
Схемы оптимизации работ на языке SQL
Цель оптимизации состоит в обеспечении как можно более быстрого
получения ответа на запрос с минимальным числом обращений к БД
Существует два типа оптимизации на языке SQL
o
o
оптимизация по синтаксису;
оптимизация по затратам;
Оптимизация по синтаксису использует тот факт, что в языке SQL
эффективность запроса зависит от того, как он сформулирован. В данном
случае оптимизация зависит от квалификации программиста.
При оптимизации по затратам происходит сбор сведений о БД -- числе
таблиц, числе строк, типе данных в каждой строке, доступности
индексирования для конкретного столбца и т. д. Оптимизатор использует эту
информацию для выработки наилучшего плана обработки запросов.
Преимущества метода оптимизации по затратам: задача определения
наилучшего способа выполнения запроса перекладывается с пользователя на
процессор БД.
Недостаток: нахождение оптимального метода само по себе может занять
много времени.
Ответы на вопросы:
1. Что такое СУБД , и где она применяется?
СУБД (система управления базами данных) представляет собой
комплекс ПО, с помощью которого можно создавать базы данных (БД)
и проводить над ними различные операции: обновлять, удалять,
выбирать, редактировать и т. д. СУБД гарантирует сохранность,
целостность, безопасность хранения данных и позволяет выдавать
доступ к администрированию БД.
СУБД обеспечивает:




работу с данными, размещенными на внешних накопителях;
работу с данными, находящимися в ОЗУ с применением дискового
кэша;
ведение отчетности касаемо: резервирования, редактирования, бэкапа
данных и т. д.;
поддержку различных языков баз данных (для работы и определения
конкретных типов данных).
2. Какие современные СУБД существуют и для каких целей (приведите
несколько примеров)?
В настоящее время для построения информационных систем
применяются различные системы управления базами данных (СУБД),
различающиеся как своими возможностями, так и требованиями к
вычислительным ресурсам. Все многообразие применяемых СУБД,
однако, можно свести к двум основным их классам: персональные и
многопользовательские.
К первому классу относятся СУБД, ориентированные на работу
на персональном компьютере (dBASE, FoxPro, MS Access и т.п.).
Изначально они поддерживали работу с данными только одного
пользователя. Вся СУБД такого класса выполняется как единая
программа, таблицы базы данных представляются отдельными
файлами на диске того же персонального компьютера. С развитием
локальных сетей разработчики СУБД этого класса стали
приспосабливать их к работе в сетевой среде, в которой потенциально
стало возможным организовать доступ к данным с нескольких
персональных компьютеров, включенных в локальную сеть. Файлы
базы данных при этом размещаются на файловом сервере. На каждом
же рабочем месте работает собственная копия программы-СУБД и
прикладная программа, и на их выполнение могут оказывать
существенное влияние характеристики компьютера этого рабочего
места. Таким образом, при наличии в сети N рабочих мест с одними и
теми же данными работают N копий программы-СУБД, одними и теми
же данными управляют сразу N копий СУБД. Ошибка в выполнении
одной из копий не будет замечена другими копиями. При выполнении
запросов к базе данных копия СУБД может либо производить поиск
данных в удаленных файлах на файловом сервере, либо копировать все
файлы, в которых ведется поиск в свою локальную файловую систему.
В первом случае возникают проблемы одновременного доступа к
данным при их изменении. Данные, над которыми производятся
изменения, должны быть заблокированы. Средства файлового сервера
позволяют выполнять блокировку на уровне файлов, но не на уровне
записей, что существенно снижает эффективность параллельной
работы с базой данных многих пользователей. Во втором же случае, вопервых, требуется передача по сети больших объемов информации, а
во-вторых, получается, что разные рабочие места работают с разными
копиями данных и эти копии могут стать неидентичными [4, 7].
СУБД второго класса изначально создавались для выполнения на
больших компьютерах и обеспечения параллельной работы многих
пользователей. Такие СУБД, как правило, состоят из ядра, постоянно
присутствующего в памяти (сервера), и большого количества
программ-агентов, обслуживающих запросы конечных пользователей и
прикладных программ (клиентов). В этом случае и ядро СУБД, и
данные находятся на одном и том же компьютере. Одна копия СУБД
управляет одной копией данных. Единая управляющая система
позволяет эффективно организовать одновременный доступ к данным
многих агентов, предотвращая конфликты между ними. Ошибка в
работе СУБД локализована и может быть эффективно исправлена
самой же СУБД. При работе в условиях сети ядро СУБД выполняет
запросы агентов на выборку данных и передает по сети только
результаты выборки. Поскольку быстродействие современных
дисковых систем обычно выше, чем скорость передачи данных по сети,
уменьшение объема передаваемых данных существенно увеличивает
общую эффективность работы системы. При этом не накладывается
никаких ограничений на масштаб сети, агенты могут быть связаны с
ядром СУБД через любую сеть и любые протоколы передачи данных.
Многопользовательские СУБД обладают также неоспоримыми
преимуществами в таких аспектах, как надежность, безопасность,
доступность. Многопользовательские СУБД с самого начала своей
истории использовали в качестве интерфейса запросов язык SQL,
отсюда произошло одно из их альтернативных названий – SQLсерверы. Хотя в последнее время подмножества SQL становятся
доступными и в персональных СУБД, но в эти подмножества не
включаются средства обеспечения безопасности и параллельного
доступа к данным – те средства, которые персональные СУБД
обеспечить просто не могут
3. Какие языки программирования используются для работы в базах
данных.
Ведущими производителями СУБД являются:
· Microsoft (встроенный язык SQL Server);
· IBM (встроенный язык DB2);
· Oracle (встроенный язык PL/SQL);
· Adabas (встроенный язык Natural);
· Informix (встроенный язык INFORMIX 4GL)
Download