Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Критерии оценки качества модели данных





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

Критериев оценки качества м.б. много и выбор их в достаточной степени произволен.

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

■1 ■ Адекватность базы данных предметной области

■2 ■ Легкость разработки и сопровождения базы данных

3 ■ Скорость выполнения операций обновления данных – вставка,

обновление, удаление кортежей.

■4 ■ Скорость выполнения операций выборки данных

◄1►Адекватность базы данных предметной области.

База данных должна адекватно отражать предметную область. Это означает, что должны выполняться следующие условия:

■■ Состояние базы данных в каждый момент времени должно

соответствовать состоянию предметной области.

■■ Изменение состояния предметной области должно приводить к

соответствующему изменению состояния базы данных

■■ Ограничения предметной области, отраженные в модели предметной

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

данных.

◄2►Легкость разработки и сопровождения базы данных.

Практически любая база данных, содержит некоторое количество Программного кода в виде Триггеров и Хранимых процедур.

Хранимые процедуры – это процедуры и функции, хранящиеся

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

Хранимые процедуры обычно пишутся либо на специальном процедурном расширении языка SQL (например, PL/SQL для ORACLE или Transact-SQL для MS SQL Server), или на некотором универсальном языке программирования, например, C++, с включением в код операторов SQL в соответствии со специальными правилами такого включения.

Основное назначение хранимых процедур - реализация бизнес-процессов

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

*** Триггеры – это хранимые процедуры, связанные с некоторыми

событиями, происходящими во время работы базы данных.

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

Таким образом: Основное назначение триггеров – автоматическая поддержка целостности базы данных.

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

■■ Проверяет, есть ли необходимое количество товара.

■■ При наличии товара добавляет его в накладную и уменьшает данные о

наличии товара на складе.

■■ При отсутствии товара формирует заказ на поставку недостающего товара

и тут же посылает заказ по электронной почте поставщику.

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

***Триггер (англ. trigger) – это хранимая процедура особого типа, которую пользователь не вызывает непосредственно, а исполняется при модификации (изменении) данных: добавлением [insert], удалением [delete] строки в заданной таблице, или изменением [update] данных в определённом столбце заданной формы реляционной БД.

Триггеры применяются для обеспечения целостности данных.

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

***Триггеры - это один из видов программных объектов СУБД, поддерживаемых SQL Anywhere.

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

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

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

Правила, в соответствие с которыми осуществляются активные действия сервера, определяются триггерами. Иногда эти правила или сами триггеры называют бизнес - правилами.

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

 

◄3►Скорость операций обновления данных

(вставка, обновление, удаление)

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

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

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

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

●● Пример: Рассмотрим операцию вставки записи в таблицу.

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

Таким образом, скорость выполнения операции вставки уменьшается при увеличении количества индексов у таблицы и мало зависит от числа строк в таблице.

●● Пример: Рассмотрим операции обновления и удаления записей из

таблицы.

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

Если для таблицы объявлено несколько индексов, то при выполнении операций обновления и удаления эти индексы должны быть перестроены, на что тратится дополнительное время.

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

◄4►Скорость операций выборки данных.

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

Информация извлекается из реляционной базы данных при помощи оператора SQL - SELECT. Одной из наиболее дорогостоящих операций при выполнении оператора SELECT является операция соединение таблиц.

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

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

 

Контрольные вопросы.

1.

Date: 2016-05-24; view: 762; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию