Базы данных и их сравнительные характеристики
РЕФЕРАТ
по дисциплине ВлИнформатикаВ»
на тему ВлБазы данных и их сравнительные характеристикиВ»
1. Классификация моделей построения баз данных
В зависимости от архитектуры СУБД делятся на локальные и распределенные СУБД. Все части локальной СУБД размещаются на одном компьютере, а распределенной на нескольких. За несколько десятилетий последовательно появлялись системы (СУБД), основанные на трех базовых моделях данных: иерархической, сетевой и реляционной. Основные определения теории баз знаний и баз данных представлены в таблице 1.
Табл.1. Основные определения
Термин | Определение |
База данных (БД) | Базами данных называют электронные хранилища информации, доступ к которым осуществляется с помощью одного или нескольких компьютеров. |
Системы управления базами данных (СУБД) | это программные средства для создания, наполнения, обновления и удаления баз данных. |
База знаний | Базы знаний это хранилища знаний, представленных в формализованном виде. |
Система управления базами знаний СУБЗ | это программные средства для создания, наполнения, обновления и удаления баз знаний |
Виды знаний: Процедурные Декларативные Каузальные Неточные | Знания, отвечающие на вопрос "Как решать поставленную задачу?" Знания, не содержащие в явном виде процедуры решения задач. Знания о причинно-следственных связях между объектами предметной области Знания отличающиеся неполнотой или противоречивостью. |
Парадигмы решения задач В СУБД В СУБЗ | Данные + Алгоритм = Программа решения задачи Знания + Стратегия вывода = Решение проблемы. |
Модели знаний Продукционная Фреймовая Семантическая сеть | Знания представленные в формате "ЕСЛИ-ТО" Знания представленные в виде набора взаимосвязанный фреймов. Граф, вершины которого соответствуют объектам или понятиям, а дуги определяют отношения между вершинами. |
Фрейм Фрейм прототип Конкретный фрейм | Структурированное описание объекта предметной области состоящее из наименования объекта (имя фрейма), атрибутов объекта (свойств, характеристик) - слоты фрейма. Это фрейм у которого значения слотов не определены. Это фрейм прототип с конкретными значениями. |
Enterprise JavaBeans. | Стандарт для создания средствами языка Java пригодных для многократного использования компонентов, из которых формируются прикладные программы. Компоненты Enterprise JavaBeans облегчают разработку программ, обеспечивающих доступ к хранимой в базе данных информации. |
Распараллеливание обработки запроса (Intraquery parallelism). | Использование нескольких ЦП для обработки одного запроса. |
Параллельная обработка запросов (interquery parallelism) | подразумевает параллельную обработку нескольких запросов (на разных ЦП). |
Уровень изоляции Ва(Isolation level). | Установочный параметр БД, определяющий, в какой степени одновременно обратившиеся к базе данных пользователи могут оказывать влияние на работу друг друга. Как правило, используются три уровня изоляции: завершение чтения (read committed), характеризуется большим количеством одновременно обслуживаемых пользователей и низким уровнем изоляции каждого из них); в установленном порядке (serializable), небольшое число одновременно обслуживаемых пользователей, высокая степень изоляции и повторяющееся чтение (repeatable read), сочетание двух первых уровней. |
Технология СОМ | COM - Component Object Model - Компонентная модель объектов, предложена корпорацией Микрософт. |
Технология CORBA | CORBA - Common Object Require Broker Architecture - архитектура с брокером требуемых общих объектов, разработана независимой группой OMG. |
JDBC (Java Database Connectivity). | Интерфейс взаимодействия с базами данных на языке Java. Этот стандарт, разработанный фирмой Sun Microsystems, определяет способы доступа Java-приложений к данным БД. |
ODBC (Open Database Connectivity). | Открытый интерфейс взаимодействия с базами данных. Предложенный корпорацией Microsoft стандарт, регулирующий доступ Windows -приложений к базам данных. Стандарт ODBC постепенно заменяется спецификацией OLE DB. |
OLAP (Online analytical processing). | Оперативный анализ данных. Этот метод обработки применяется с целью ускорения обработки запросов и предусматривает предварительный расчет часто запрашиваемых данных (например, сумм или значений счетчика). |
OLE DB (Object Linking and Embedding Database). | OLE для баз данных. Новый стандарт Microsoft, регулирующий доступ приложений к базам данных. Имеет расширения для серверов OLAP и предусматривает применение специальных средств обработки мультимедийных данных. |
Операция соединения (Join). | Процесс, позволяющий объединять данные из двух таблиц посредством сопоставления содержимого двух аналогичных столбцов. |
SQL (Structured query language). | Язык структурированных запросов, язык S0L. Является принятым в отрасли стандартом для выполнения операций вставки, обновления, удаления и выборки данных из реляционных БД. |
Хранимая процедура (Stored procedure). | Программа, которая выполняется внутри базы данных и может предпринимать сложные действия на основе информации, задаваемой пользователем. Поскольку хранимые процедуры выполняются непосредственно на сервере базы данных, обеспечивается более высокое быстродействие, нежели при выполнении тех же операций средствами клиента БД. |
Транзакция (Transaction). | Совокупность операций базы данных, выполнение которых не может быть прервано. Для того чтобы изменения, внесенные в БД в ходе выполнения любой из входящих в транзакцию операций, были зафиксированы в базе данных, все операции должны завершиться успешно. Все базы данных, представленные в нашем обзоре, позволяют использовать транзакции, тогда как БД для настольных систем, например Visual dBase фирмы Inprise или Microsoft Access, не предусматривают применения механизма транзакций. |
Триггер (Trigger). | Программа базы данных, вызываемая всякий раз при вставке, изменении или удалении строки таблицы. Триггеры обеспечивают проверку любых изменений на корректность, прежде чем эти изменения будут приняты |
2. Иерархическая модель
Первые иерархические и сетевые СУБД были созданы в начале 60-х годов. Причиной послужила необходимость управления миллионами записей (связанных друг с другом иерархическим образом), например при информационной поддержке лунного проекта Аполлон. Среди реализуемых на практике СУБД этого типа преобладает система IMS (Information Management System компании IBM) (На данный момент это самая распространенная СУБД из всех данного типа). Применяются и другие иерархические системы: TDMS (Time-Shared Date Management System) компании Development Corporation; Mark IV Multi - Access Retrieval System компании Control Data Corporation; System - 2000 разработки SAS-Institute.
Отношения в иерархической модели данных организованы в виде совокупностей деревьев, где дерево - структура данных, в которой тип сегмента потомка связан только с одним типом сегмента предка. Графически: Предок - точка на конце стрелки, а Потомок - точка на острие стрелки. В базах данных определено, что точки - это типы записей, а стрелки представляют отношения один - к - одному или один - ко - многим.
К ограничения иерархической модели данных можно отнести:
1. Отсутствует явное разделение логических и физических характеристик модели;
2. Для представления неиерархических отношений данных требуются дополнительные манипуляции;
3. Непредвиденные запросы могут требовать реорганизации базы данных.
3. Сетевая модель
Сети - естественный способ представления отношений между объектами. Они широко применяются в математике, исследованиях операций, химии, физике, социологии и других областях знаний. Сети обычно могут быть представлены математической структурой, которая называется направленным графом. Направленный граф имеет простую структуру. Он состоит из точек или узлов,соединенных стрелками или ребрами. В контексте моделей данных узлы можно представлять как типы записей данных, а ребра представляют отношения один-к -одному или один-ко-многим. Структура графа делает возможными простые представления иерархических отношений (таких, как генеалогические данные) .
Сетевая модель данных - это представление данных сетевыми структурами типов записей и связанных отношениями мощности один-к-одному или один-ко-многим. В конце 60-х конференция по языкам систем данных (Conference on Data Systems Languages, CODASYL) поручила подгруппе, названной Database Task Group (DTBG), разработать стандарты систем управления базами данных. На DTBG оказывала сильное влияние архитектура, использованная в одной из самых первых СУБД, Iategrated Data Store (IDS), созданной ранее компанией General Electric.Это привело к тому, что была рекомендована сетевая модель.
Документы Database Task Group (DTBG) (группа для разработки стандартов систем управления базами данных) от 1971 года остается основной формулировкой сетевой модели, на него ссылаются как на модель CODASYL DTBG. Она послужила основой для разработки сетевых систем управления базами данных нескольких производителей. IDS (Honeywell) и IDMS (Computer Associates) - две наиболее известных коммерческих реализации. В сетевой модели существует две основные структуры данных: типы записей и наборы:
В· Тип записей. Совокупность логически связанных элементов данных.
В· Набор. В модели DTBG отношение один-ко-многим между двумя типами записей.
В· Простая сеть. Структура данных, в которой все бинарные отношения имеют мощность один-ко-многим.
В· Сложная сеть. Структура данных, в которой одно или несколько бинарных отношений имеют мощность многие-ко-многим.
В· Тип записи связи. Формальная запись, созданная для того, чтобы преобразовать сложную сеть в эквивалентную ей простую сеть.
В модели DBTG возможны только простые сети, в которых все отношения имеют мощность один-к-одному или один-ко-многим. Сложные сети, включающие одно или несколько отношений многие-ко-многим, не могут быть напрямую реализованы в модели DBTG. Следствием возможности создания искусственных формальных записей является необходимость дополнительного объема памяти и обработки, однако при этом модель данных имеет простую сетевую форму и удовлетворяет требованиям DBTG.
4. Реляционная модель
В 1970-1971 годах Е.Ф. Кодд опубликовал две статьи, в которых ввел реляционную модель данных и реляционные языки обработки данных - реляционную алгебру и реляционное исчисление.
В· Реляционная алгебра - Процедурный язык обработки реляционных таблиц.
В· Реляционное исчисление - Непроцедурный язык создания запросов.
Все существующие к тому времени подходы к связыванию записей из разных файлов использовали физические указатели или адреса на диске. В своей работе Кодд продемонстрировал, что такие базы данных существенно ограничивают число типов манипуляций данными. Более того, они очень чувствительны к изменениям в физическом окружении. Когда в компьютерной системе устанавливался новый накопитель или изменялись адреса хранения данных, требовалось дополнительное преобразование файлов. Если к формату записи в файле добавлялись новые поля, то физические адреса всех записей файла изменялись. То есть такие базы данных не позволяли манипулировать данными так, как это позволяла бы логическая структура. Все эти проблемы преодолела реляционная модель, основанная на логических отношениях данных.
Существует два подхода к проектированию реляционной базы данных.
В· Первый подход заключается в том, что на этапе концептуального проектирования создается не концептуальная модель данных, а непосредственно реляционная схема базы данных, состоящая из определений реляционных таблиц, подвергающихся нормализации.
В· Второй подход основан на механическом преобразовании функциональной модели, созданной ранее, в нормализованную реляционную модель. Этот подход чаще всего используется при проектировании больших, сложных схем баз данных, необходимых для корпоративных информационных систем.
Табл.1. Основные определения реляционных СУБД
Термин | Определение |
Реляционная модель данных | Организует и представляет данные в виде таблиц или реляций. |
Реляционная база данных (РБД, RDBMS). | База данных, построенная на реляционной модели. |
Реляция (таблица-элементарная информационная единица) | Двумерная таблица, содержащая строки и столбцы данных. |
Степень реляции. | Количество атрибутов реляции. При том необходимо помнить, что никакие два атрибута реляции не могут иметь одинаковых имен. |
Кортежи | Строки реляции (таблицы), соответствуют объекта, конкретному событию или явлению. |
Атрибуты | Столбцы таблицы, характеризующие признаки, параметры объекта, события, явления. |
Область атрибута | Набор всех возможных значений, которые могут принимать атрибуты. Если в процессе работы возникает ситуация, что атрибут неприменим или значения одного или нескольких атрибутовстроки пока неизвестны, то строка запишется в базуданных с пустыми значениямиэтих атрибутов (NULL строка). |
Пустое значение | Значение, приписываемое атрибуту в кортеже, если атрибут неприменим или его значение неизвестно |
Ключ | Любой набор атрибутов, однозначно определяющий каждый кортеж реляционной таблицы. |
Ключ реляции | Ключ также можно описать как минимальное множество атрибутов, однозначно определяющих (или функционально определяющих)каждое значение атрибута в кортеже. |
Составной ключ | Ключ содержащий два или более атрибута. |
Потенциальный ключ | В любой данной реляционной таблице может оказаться более одного набора атрибутов. Обычно в качестве первичного ключа выбирают потенциальный ключ, которым проще всего пользоваться при повседневной работе по вводу данных. |
Первичный ключ. | Поле или набор полей, однозначно идентифицирующий запись. |
Внешний ключ. | Набор атрибутов одной таблицы, являющийся ключом другой (или той же самой) таблицы; используется для определения логических связей между таблицами. Атрибуты внешнего ключа не обязательно должны иметь те же имена, что и атрибуты ключа, которым они соответствуют. |
Рекурсивный внешний ключ. | Внешний ключ, ссылающийся на свою собственную реляционную таблицу. |
Родительская реляция (таблица) | Таблица, поля которой входят в другую таблицу. |
Дочерняя реляция (таблица) | Таблица, поля которой используют информацию из полей другой таблицы, являющейся по отношению к данной родительской. |
Отношение один-к-одному | Когда одной записи в родительской таблицы соответствует одна запись в дочерней таблице |
Отношение один-ко-многим | Когда одной записи в родительской таблицы соответствует несколько записей в дочерней таблице |
Отношение многие-ко-многим | Когда многим записям в родительской таблицы соответствуют несколько записей в дочерней таблице |
Рекурсивное отношение. | Отношение, связывающее объектное множество с ним самим. |
View (Представления) | Информационная единица РБД (по структуре аналогичная таблице), записи которой сформированы в результате выполнения запросов к другим таблицам. |
Ссылочная целлостность | Адекватное воспроизведение записей в ссылочных полях таблиц. |
Триггер | Средство обеспечения ссылочной целостности на основе механизма каскадных изменений. |
Индекс | Механизмы быстрого доступа к хранящимся в таблицах данных путем их предварительной сортировки. |
Транзакция | Такое воздействие на СУБД, которое переводит ее из одного целостного состояния в другое. |
Ограничительные условия, поддерживающие целостность базы данных.
Как следует из определения ссылочной целостности при наличии в ссылочных полях двух таблиц различного представления данных происходит нарушение ссылочной целостности, такое нарушение делает информацию в базе данных недостоверной. Чтобы предотвратить потерю ссылочной целостности, используется механизм каскадных изменений (который чаще всего реализуется специальными объектами СУБД - триггерами). Данный механизм состоит в следующей последовательности действий:
В· при изменении поля связи в записи родительской таблицы следует синхронно изменить значения полей связи в соответствующих записях дочерней таблицы;
В· при удалении записи в родительской таблицы следует удалить соответствующие записи и в дочерней таблице.
Процесс нормализации
Нормализация - процесс приведения реляционных таблиц к стандартному виду. В базе данных могут присутствовать такие проблемы как:
В· Избыточность данных. Повторение данных в базе данных.
В· Аномалия обновления. Противоречивость данных, вызванная их избыточностью и частичным обновлением.
В· Аномалия удаления. Непреднамеренная потеря данных, вызванная удалением других данных.
В· Аномалия ввода. Невозможность ввести данные в таблицу, вызванная отсутствием других данных.
Для решения этих проблем применяют разбиение таблиц - разделение таблицы на несколько таблиц. Для того чтобы это сделать пользуются нормальными формами или правилами структурирования таблиц.
Первая нормальная форма
Реляционная таблица находится в первой нормальной форме (1НФ), если значения в таблице являются атомарными для каждого атрибута таблицы, т.е. такими значениями, которые не являются множеством значений или повторяющейся группой. В определении Кодда реляционной модели уже заложено, что реляционные таблицы находились в 1НФ,
Вторая нормальная форма.
Реляционная таблица находится во второй нормальной форме (2НФ), если никакие неключевые атрибуты не являются функционально зависимыми лишь от части ключа. Таким образом, 2НФ может оказаться нарушена только в том случае, когда ключ составной.
Функциональная зависимость. Значение атрибута в кортеже однозначно определяет значение другого атрибута в кортеже.
Более формально можно определить функциональную зависимость следующим образом: если А и В - атрибуты в таблице В, то запись ФЗ (функциональную зависимость): А - " В обозначает, что если два кортежа в таблице В имеют одно и то же значение атрибута А, то они имеют одно и то же значение атрибута В. Это определение такжеприменимо,если А и В - множества столбцов, а не просто отдельные столбцы.
Атрибут в левой части ФЗ называется детерминантом, так как его значение определяет значение атрибута в правой части. Ключ таблицы является детерминантом, так как его значение однозначно определяет значение каждого атрибута таблицы.
Процесс разбиения на две 2НФ-таблицы состоит из следующих шагов:
1. Создается новая таблица, атрибутами которой будут атрибуты исходной таблицы, входящие в противоречащую правилу ФЗ. Детерминант ФЗ становится ключом новой таблицы.
2. Атрибут, стоящий в правой части ФЗ, исключается из исходной таблицы.
3. Если более одной ФЗ нарушают 2НФ, то шаги 1 и 2 повторяются для каждой такой ФЗ.
4. Если один и тот же детерминант входит в несколько ФЗ, то все функционально зависящие от него атрибуты помещаются в качестве неключевых атрибутов в таблицу, ключом которой будет детерминант.
Третья нормальная форма
Реляционная таблица имеет третью нормальную форму (ЗНФ), если для любой ФЗ: Х - У - Х является ключом. Заметим, что любая таблица, удовлетворяющая ЗНФ, также удовлетворяет и 2НФ. Однако обратное неверно.
Критерий нормальной формы Бойса-Кодда (НФБК) утверждает, что таблица удовлетворяет ЗНФ, если в ней нет транзитивных зависимостей. Транзитивная зависимость возникает, если неключевой атрибут функционально зависит от одного или более неключевых атрибутов. То есть этот критерий учитывает следующие два случая:
1. Неключевой атрибут зависит от ключевого атрибута, входящего в составной ключ (критерий нарушения 2НФ).
2. Ключевой атрибут, входящий в составной ключ, зависит от неключевого атрибута.
Таким образом, если таблица удовлетворяет НФБК, то она также удовлетворяет ЗНФ в смысле транзитивных зависимостей и 2НФ.
Четвертая нормальная форма
Таблица имеет четвертую нормальную форму (4НФ), если она имеет ЗНФ и не содержит многозначных зависимостей. Поскольку проблема многозначных зависимостей возникает в связи с многозначными атрибутами, то мы можем решить проблему, поместив каждый многозначный атрибут в свою собственную таблицу вместе с ключом, от которого атрибут зависит.
Пятая нормальная форма.
Пятая нормальная форма (5НФ) была предложена для того, чтобы исключить аномалии, связанные с особым типом ограничительных условий, называемых совместными зависимостями. Эти зависимости имеют в основном теоретический интерес и сомнительную практическую ценность. Следовательно, пятая нормальная форма в действительности не имеет практического применения.
Нормальная форма область/ключ.
Таблица имеет нормальную форму область/ключ (НФОК), если любое ограничительное условие в таблице является следствием определений областей и ключей. Однако не был дан общий метод приведения таблицы к НФОК.
В качестве примера, рассмотрим структуру реляционной базы данных, описывающей "отношения" пациентов и докторов в произвольной клинике (область приложения примера выбрана из-за того, что в сертификационных тестах Oracle аналогичные примеры встречаются очень часто). Пусть существует некая клиника, основные характеристики которой описываются в таблице CLINICS, в данной клинике работают доктора, основные характеристики которых описывает таблица DOCTORS. Данные пациентов клиники хранятся в таблице PATIENTS. Взаимосвязи между таблицами представлены на рис.10. (Для упрощения предполагается, что у доктора может быть несколько пациентов, которые не являются пациентами других докторов, для реализации реальной картины, когда один пациент может относиться к нескольким разным докторам, между таблицами DOCTORS и PATIENTS необходимо включить дополнительную связывающую таблицу).
Рис. 2. Диаграмма, иллюстрирующая отношения таблиц АИС.
№ | Наименование столбца | Описание |
Таблица CLINICS | ||
1 | CS_NNN | Индекс |
2 | CS_REG_NUMBER | Регистрационный номер |
3 | CS_CITY_NNN | Ссылка на справочник городов и регионов |
4 | CS_NAME | Наименование клиники |
5 | CS_ADDRESS | Адрес клиники |
6 | CS_PHONE_NUMBER | Номер телефона |
7 | CS_TYPE | Профиль клиники |
Таблица DOCTORS | ||
1 | DC_NNN | Индекс |
2 | DC_NAME | Ф.И.О. доктора |
3 | DC_CS_NNN | Ссылка на таблицу CLINICS |
4 | DC_DIPLOM_NUMBER | Номер диплома |
5 | DC_SPECIALTY_NNN | Ссылка на справочник специальностей |
6 | DC_SHTAT_NNN | Ссылка на штатное расписание |
7 | DC_CALENDAR_NNN | Ссылка на расписание приема |
Таблица PATIENTS | ||
1 | PT_NNN | Индекс |
2 | PT_REG_NUMBER | Регистрационный номер |
3 | PT_NAME |