Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб_БД в ИГ_2012_1

.pdf
Скачиваний:
5
Добавлен:
02.05.2015
Размер:
714.38 Кб
Скачать

Data Manipulation Language — язык, содержащий набор операторов для поддержки основных операций манипулирования содержащимися в базе данными.

Язык манипулирования данными, позволяющий выполнять операции с данными

(добавление, удаление, извлечение, модификация)

Процедурный язык DML — язык, который позволяет сообщить системе о том, какие данные необходимы, и точно указать, как их можно извлечь.

С помощью процедурного языка DML программист, указывает на то, какие данные ему необходимы и как их можно получить. Это значит, что программист должен определить все операции доступа к данным (осуществляемые посредством вызова соответствующих процедур), которые должны быть выполнены для получения требуемой информации. Обычно такой процедурный язык DML позволяет извлечь запись,

обработать ее и, в зависимости от полученных результатов, извлечь другую запись,

которая должна быть подвергнута аналогичной обработке, и т.д. Подобный процесс извлечения данных продолжается до тех пор, пока не будут извлечены все запрашиваемые данные. Обычно операторы процедурного языка DML встраиваются в программу на языке программирования высокого уровня, которая содержит конструкции для обеспечения циклической обработки и перехода к другим участкам кода. Языки DML сетевых и иерархических СУБД обычно являются процедурными.

Непроцедурный язык DML — язык, который позволяет указать лишь то, какие данные требуются, но не то, как их следует извлекать.

Непроцедурные языки DML позволяют определить весь набор требуемых данных с помощью одного оператора выборки или обновления. С помощью непроцедурных языков

DML пользователь указывает, какие данные ему нужны, без определения способа их получения. СУБД транслирует выражение на языке DML в процедуру (или набор процедур), которая обеспечивает манипулирование затребованным набором записей.

Такой подход освобождает пользователя от необходимости знать подробности внутренней реализации структур данных и особенности алгоритмов, используемых для извлечения и возможного преобразования данных. В результате работа пользователя становится в определенной степени независимой от данных. Непроцедурные языки часто также называют декларативными языками. Реляционные СУБД в той или иной форме обычно включают поддержку непроцедурных языков манипулирования данными — чаще всего это язык структурированных запросов SQL (Structured Query Language) или язык запросов

11

по образцу QBE (Query-by-Example). Непроцедурные языки обычно проще понять и использовать, чем процедурные языки DML, поскольку пользователем выполняется меньшая часть работы, а СУБД — большая.

4. Классификация СУБД

По модели данных

По типу управляемой базы данных СУБД разделяются на:

Иерархические;

Сетевые;

Реляционные;

Объектно-реляционные;

Объектно-ориентированные.

По архитектуре организации хранения данных:

локальные СУБД (все части локальной СУБД размещаются на одном компьютере);

распределенные СУБД (части СУБД могут размещаться на двух и более компьютерах).

По способу доступа к БД

Файл-серверные.

Вфайл-серверных СУБД файлы данных располагаются централизованно на файл-

сервере. Ядро СУБД располагается на каждом клиентском компьютере. Доступ к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимуществом этой архитектуры является низкая нагрузка на ЦП сервера, а недостатком — высокая загрузка локальной сети.

На данный момент файл-серверные СУБД считаются устаревшими.

Примеры: Microsoft Access, Paradox, dBase.

Клиент-серверные.

12

Такие СУБД состоят из клиентской части (которая входит в состав прикладной программы) и сервера. Клиент-серверные СУБД, в отличие от файл-серверных,

обеспечивают разграничение доступа между пользователями и мало загружают сеть и клиентские машины. Сервер является внешней по отношению к клиенту программой, и по надобности его можно заменить другим. Недостаток клиент-серверных СУБД в самом факте существования сервера (что плохо для локальных программ — в них удобнее встраиваемые СУБД) и больших вычислительных ресурсах, потребляемых сервером.

Примеры: Firebird, Interbase, IBM DB2, MS SQL Server, Sybase, Oracle, PostgreSQL, MySQL, ЛИНТЕР.

Встраиваемые.

Встраиваемая СУБД — библиотека, которая позволяет унифицированным образом хранить большие объѐмы данных на локальной машине. Доступ к данным может происходить через SQL либо через особые функции СУБД. Встраиваемые СУБД быстрее обычных клиент-серверных и не требуют установки сервера, поэтому востребованы в локальном ПО, которое имеет дело с большими объѐмами данных (например,

геоинформационные системы).

5. Жизненный цикл приложения баз данных

Как уже упоминалось выше, система базы данных является фундаментальным компонентом более широкого понятия — информационной системы организации.

Следовательно, жизненный цикл приложений баз данных неразрывно связан с жизненным циклом информационной системы. Этапы жизненного цикла приложения базы данных показаны на рис. 3. Следует признать, что эти этапы не являются строго последовательными, а предусматривают в некоторых случаях возврат к предыдущим этапам с помощью обратных связей (feedback loops). Например, при проектировании базы данных могут возникнуть проблемы, для разрешения которых потребуется вернуться к этапу сбора и анализа требований. Обратные связи могут возникать почти между всеми этапами, но на рисунке показаны только наиболее важные из них. Основные сведения о наиболее важных мероприятиях, связанных с реализацией каждого этапа жизненного цикла приложения базы данных, приведены в таблице.

Для малых приложений с небольшим количеством пользователей жизненный цикл может оказаться не очень сложным. Однако он может стать чрезвычайно сложным при

13

проектировании среднего или крупного приложения базы данных, с десятками и даже тысячами пользователей, сотнями запросов и прикладных программ.

Рис. 3. Этапы жизненного цикла приложения базы данных.

14

Основные действия, выполняемые на каждом этапе жизненного цикла приложения

базы данных, приведены в табл. 1.

Таблица 1

Этап

Описание

 

 

Планирование разработки

Планирование наиболее эффективного способа реализации

 

базы данных

этапов жизненного цикла системы

 

Определение требований к

Определение диапазона действий и границ приложения

 

базыданных, состава его пользователей и областей

 

системе

 

применения

 

 

 

Сбор и анализ требований

Сбор и анализ требований пользователей из всех возможных

 

пользователей

областей применения

 

 

 

 

Проектирование базы

Полный цикл разработки включает концептуальное,

 

данных

логическое и физическое проектирование базы данных

 

 

 

 

Выбор целевой СУБД

Выбор наиболее подходящей СУБД для приложения базы

 

(необязательный этап)

данных

 

 

 

 

 

Определение пользовательского интерфейса и прикладных

 

Разработка приложений

программ, которые используют и обрабатывают данные в

 

 

базе данных

 

 

 

 

 

Создание рабочей модели приложения базы данных, которая

 

Создание прототипов

позволяет разработчикам или пользователям представить и

 

(необязательный этап)

оценить окончательный вид и способы функционирования

 

 

системы

 

 

 

 

Реализация

Создание внешнего, концептуального и внутреннего

 

определений базы данных и прикладных программ

 

 

 

Преобразование и загрузка

Преобразование и загрузка данных (и прикладных программ)

 

данных

из старой системы в новую

 

 

Приложение базы данных тестируется с целью обнаружения

 

Тестирование

ошибок, а также его проверки на соответствие всем

 

 

требованиям, выдвинутым пользователями

 

 

На этом этапе приложение базы данных считается полностью

 

 

разработанным и реализованным. Впредь вся система будет

 

 

находиться под постоянным наблюдением и

 

Эксплуатация и

соответствующим образом поддерживаться, В случае

 

необходимости в функционирующее приложение могут

 

сопровождение

 

вноситься изменения, отвечающие новым требованиям.

 

 

 

 

Реализация этих изменений проводится посредством

 

 

повторного выполнения некоторых из перечисленных выше

 

 

этапов жизненного цикла

 

 

 

 

6. Достоинства и недостатки СУБД

Достоинства

1. Контроль за избыточностью данных

15

Традиционные файловые системы хранят одинаковые данные в нескольких файлах.

Базы данных максимально ограничивают степень избыточности данных за счет интеграции файлов. Избыточность допускается при дублировании ключевых элементов для моделирования связей СУБД, дублировании данных для повышения производительности системы.

2. Непротиворечивость данных

Устранение избыточности данных или контроль над ней позволяет уменьшить риск возникновения противоречивых состояний. Изменение одного значения элемента данных требует выполнить только одну операцию обновления, причем новое значение станет доступным сразу всем пользователям базы данных.

Если элемент данных, с разрешения системы, хранится в базе данных в нескольких экземплярах, то система сможет следить за тем, чтобы копии не противоречили друг другу. Но во многих современных СУБД такой способ обеспечения непротиворечивости данных не поддерживается автоматически.

3. Больший объем полезной информации при том же объеме хранимых данных

Благодаря интеграции рабочих данных организации, на основе тех же данных можно получать дополнительную информацию.

4. Совместное использование данных

Большее количество пользователей может работать с большим объемом данных.

Возможность создания новых приложений на основе уже существующей в БД информации, позволяющей добавлять в БД только новые данные; а также возможность исключать из функционала программы функции, реализованные в СУБД

5. Поддержка целостности данных

Целостность базы данных означает корректность и непротиворечивость хранимых в ней данных, и, обычно, описывается с помощью ограничений, которые не должны нарушаться в базе данных. Ограничения можно применять к элементам данных внутри одной записи или к связям между записями. Интеграция данных позволяет АБД задавать требования по поддержке целостности данных, а СУБД применять их.

6. Повышенная безопасность

16

Без привлечения соответствующих мер безопасности интегрированные данные становятся более уязвимыми для несанкционированного доступа со стороны пользователей, чем данные в файловой системе. Однако интеграция позволяет АБД определить требуемую систему безопасности базы данных, а СУБД привести ее в действие. Система обеспечения безопасности может быть выражена в форме имен и паролей для идентификации пользователей, которые зарегистрированы в этой базе данных. Доступ к данным со стороны зарегистрированного пользователя может быть ограничен только некоторыми операциями.

7. Применение стандартов

Интеграция позволяет АБД определять и применять необходимые стандарты для регламентирования формата данных при обмене ими между системами, соглашениях об именах, формах представления документации, процедурах обновления и правилах доступа.

8.Повышение эффективности с увеличением масштабов системы

9.Возможность нахождения компромисса для противоречивых требований

Потребности одних пользователей/отделов могут противоречить потребностям других пользователей. АБД, может принимать решения о проектировании и способе использования базы данных, при которых имеющиеся ресурсы всей организации в целом будут использоваться наилучшим образом. Эти решения обеспечивают оптимальную производительность для самых важных приложений, причем чаще всего за счет менее критичных.

10. Повышение доступности данных и их готовности к работе

Данные, которые пересекают границы отделов, в результате интеграции становятся непосредственно доступными конечным пользователям. Потенциально это повышает функциональность системы, что, например, может быть использовано для более качественного обслуживания конечных пользователей или клиентов организации. Во многих СУБД предусмотрены языки запросов или инструменты для создания отчетов,

которые позволяют пользователям вводить не предусмотренные заранее запросы и почти немедленно получать требуемую информацию на своих терминалах, не прибегая к помощи программиста, который для извлечения этой информации из базы данных должен был бы создать специальное программное обеспечение.

17

11. Улучшение показателей производительности

На базовом уровне СУБД обеспечивает все низкоуровневые процедуры работы с файлами, которую обычно выполняют приложения. Наличие этих процедур позволяет программисту сконцентрироваться на разработке более специальных, необходимых пользователям функций, не заботясь о подробностях их воплощения на более низком уровне. Во многих СУБД предусмотрена также среда разработки четвертого поколения с инструментами, упрощающими создание приложений баз данных. Результатом является повышение производительности работы программистов и сокращение времени разработки новых приложений (с соответствующей экономией средств).

12.Упрощение сопровождения системы за счет независимости от данных

Вфайловых системах описания данных и логика доступа к данным встроены в каждое приложение, поэтому программы становятся зависимыми от данных. В СУБД описания данных отделены от приложений, а потому приложения защищены от изменений в описаниях данных. Эта особенность называется независимостью от данных.

Наличие независимости программ от данных значительно упрощает обслуживание и

сопровождение приложений, работающих с базой данных.

13.Улучшенное управление параллельной работой

Внекоторых файловых системах при одновременном доступе к одному и тому же файлу двух пользователей может возникнуть конфликт двух запросов, результатом которого будет потеря информации или утрата ее целостности. В свою очередь, во многих СУБД предусмотрена возможность параллельного доступа к базе данных и гарантируется отсутствие подобных проблем.

14.Развитые службы резервного копирования и восстановления

Ответственность за обеспечение защиты данных от сбоев аппаратного и программного обеспечения в файловых системах возлагается на пользователя. В

современных СУБД предусмотрены средства снижения вероятности потерь информации при возникновении различных сбоев.

Недостатки

1. Сложность

18

Обеспечение необходимой функциональности СУБД влечет за собой усложнение проектирования и усложнение программного обеспечения СУБД, а также необходимость понимания принципов работы СУБД всеми сотрудниками, работающими с ней.

2. Размер

Сложность и широта функциональных возможностей СУБД, превращает ее в чрезвычайно сложный программный продукт, требующий много места на диске и нуждающийся в большом объеме оперативной памяти для эффективной работы.

3.Стоимость СУБД

Взависимости от имеющейся вычислительной среды и требуемых функциональных возможностей стоимость СУБД может изменяться в очень широких пределах. Кроме того,

сопровождение системы составляет некоторый процент от ее общей стоимости.

4. Дополнительные затраты на аппаратное обеспечение

Для удовлетворения требований, предъявляемых СУБД и базой данных, может понадобиться приобрести дополнительные устройства хранения информации или более мощный компьютер.

5. Затраты на преобразование

Стоимость подготовки персонала для работы с новой системой, оплату услуг специалистов, оказывающих помощь в преобразовании и запуске новой системы.

6. Производительность

Обычно файловая система создается для приложений, потому ее производительность может предназначены для решения более общих задач и приложений, что сказывается на производительности.

некоторых специализированных быть весьма высока. А СУБД обслуживания сразу нескольких

7. Более серьезные последствия при выходе системы из строя

Централизация ресурсов повышает уязвимость системы. Выход из строя одного из ее компонентов может привести к полному прекращению всей работы организации.

19

7.Основные функции СУБД

1.Хранение, извлечение и обновление данных

СУБД должна предоставлять пользователям возможность сохранять, извлекать и обновлять данные в базе данных (самая фундаментальная функция СУБД).

Способ реализации этой функции в СУБД должен позволять скрывать от конечного пользователя внутренние детали физической реализации системы (например, файловую организацию или используемые структуры хранения).

2. Каталог, доступный конечным пользователям

СУБД должна иметь доступный конечным пользователям каталог, в котором хранится описание элементов данных (системный каталог).

3. Поддержка транзакций

СУБД должна иметь механизм, который гарантирует выполнение либо всех операций обновления данной транзакции, либо ни одной из них.

4. Службы управления параллельной работой

СУБД должна иметь механизм, который гарантирует корректное обновление баз данных при параллельном выполнении операций обновления многими пользователями.

5. Службы восстановления

СУБД должна предоставлять средства восстановления базы данных на случай какого-либо ее повреждения или разрушения.

6. Службы контроля доступа к данным

СУБД должна иметь механизм, гарантирующий возможность доступа к базе данных только санкционированных пользователей.

Термин безопасность относится к защите базы данных от преднамеренного или случайного несанкционированного доступа. Предполагается, что СУБД обеспечивает механизмы подобной защиты данных.

7. Поддержка обмена данными

20