Пользователи, т.е. конечные пользователи и прикладные программисты, работающие на внешнем уровне, взаимодействует с данными с помощью подъязыка, который включает по крайней мере два компонента: язык определения данных (ЯОД) и язык манипулирования данными (ЯМД).
Система управления базой данных (СУБД) представляет собой программное обеспечение, которое управляет всем доступом к базе данных.
Функции СУБД:
1) определение данных;
2) обработка данных;
3) оптимизация и выполнение;
4) защита и сохранение целостности данных;
5) восстановление данных и поддержка параллельности;
6) словарь данных.
На высоком уровне систему баз данных можно рассматривать как систему с очень простой структурой, состоящей из двух частей – сервера (внутреннего компонента или машины баз данных) и набора клиентов (внешнего компонента или внешнего интерфейса).
Сервер – это сама СУБД. Он поддерживает все основные функции СУБД и предоставляет полную поддержку внешнего, концептуального и внутреннего уровня.
Клиенты – это различные приложения, которые выполняются поверх СУБД: как приложения написанные пользователями, так и встроенные приложения, предоставляемые поставщиком СУБД или некоторыми сторонними поставщиками программного обеспечения
Распределённая обработка - это возможность соединить разные машины в коммуникационную сеть для организации совместного решения одной задачи обработки данных на нескольких машинах сети. Взаимодействие между различными машинами осуществляется с помощью специального программного обеспечения, предназначенного для управления сетью. В общем случае каждый сервер может обслуживать много клиентов, а каждый клиент может работать со многими серверами. Если система обеспечивает полную прозрачность доступа, то в таком случае мы имеем настоящую распределённую систему баз данных.
Каталог (словарь данных) – это набор системных переменных-отношений, содержащих метаданные о различных элементах, важных для системы. Пользователи могут опрашивать каталог теми же методами, которые они применяют для доступа к собственным данным.
1.4 Модель данных
Модель данных – это абстрактное, самодостаточное, логическое определение объектов, операторов и прочих элементов, в совокупности составляющих абстрактную машину, с которой взаимодействует пользователь. [1] Упомянутые объекты позволяют моделировать структуру данных, а операторы – поведение данных.
Реализация заданной модели данных – это физическое воплощение на реальной машине компонентов абстрактной машины, которые в совокупности составляют эту модель.
Цель инфологического моделирования – обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Поэтому инфологическую модель данных пытаются строить по аналогии с естественным языком (последний не может быть использован в чистом виде из-за сложности компьютерной обработки текстов и неоднозначности любого естественного языка). Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства (атрибуты).
Сущность – любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе.
Атрибут – поименованная характеристика сущности. Его наименование должно быть уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей. Атрибуты используются для определения того, какая информация должна быть собрана о сущности. Абсолютное различие между типами сущностей и атрибутами отсутствует. Атрибут является таковым только в связи с типом сущности. В другом контексте атрибут может выступать как самостоятельная сущность.
Ключ – минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся.
Связь – ассоциирование двух или более сущностей. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных – это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи. А так как в реальных базах данных нередко содержатся сотни или даже тысячи сущностей, то теоретически между ними может быть установлено более миллиона связей. Наличие такого множества связей и определяет сложность инфологических моделей.
Система баз данных может быть основана на нескольких различных подходах. Иерархическая и сетевая модели данных стали применяться в системах управления базами данных в начале 60-х годов. В начале 70-х годов была предложена реляционная модель данных. Эти три модели различаются в основном способом представления взаимосвязей между объектами. [2]
Иерархическая модель данных строится по принципу иерархии типов объектов, т.е. один тип объектов является главным, а остальные, находящиеся на низших уровнях, подчинёнными. Между главным и подчинёнными типами объекта устанавливается взаимосвязь “один ко многим”. Иными словами, для данного главного типа объекта существует несколько подчинённых типов объекта.
Иерархическая древовидная структура строится из узлов и ветвей. Узел представляет собой совокупность атрибутов данных, описывающих некоторый объект. Зависимые узлы располагаются на более низких уровнях дерева.
Достоинства иерархической модели данных:
1) простота понимания и использования;
2) обеспечение определенного уровня независимости данных;
3) простота оценки операционных характеристик благодаря заранее заданным взаимосвязям.
Недостатки модели:
1) избыточное хранение данных;
2) из-за строгой иерархической упорядоченности объектов модели значительно усложняются операции включения и удаления;
3) удаление исходных объектов влечёт удаление порождённых;
4) процедурность операций манипулирования данными;
5) корневой тип узла является главным, доступ к любому порождённому узлу возможен только через исходный.
В сетевой модели данных понятия главного и подчинённых объектов несколько расширены. Любой объект может быть и главным и подчинённым. Главный объект обозначается термином “владелец набора”, а подчинённый – “член набора”. Один и тот же объект одновременно может выступать и в роли владельца и в роли члена набора. Это означает, что каждый объект может участвовать в любом случае взаимосвязей.
В сетевой модели данных объекты объединяются в “сеть”. Каждый тип записи может содержать нуль, один или несколько атрибутов.
Достоинства сетевой модели:
1) возможность построения вручную эффективных прикладных систем;
2) возможность экономии памяти за счет разделения подобъектов;
3) простота реализации часто встречающихся в реальном мире взаимосвязей “многие ко многим”.
Недостатки сетевой модели данных:
1) сложность модели;
2) возможная потеря данных при реорганизации базы данных.
Реляционные системы основаны на формальной теории, называемой реляционной моделью данных, которая предполагает следующее:
1) данные представлены посредством строк в таблицах, и эти строки могут быть непосредственно интерпретированы как истинные высказывания;
3) для обработки строк данных предоставляются операторы, которые напрямую поддерживают процесс логического получения дополнительных истинных высказываний из существующих высказываний.
1.5 Реляционная модель
К числу достоинств реляционного подхода можно отнести:
1) наличие небольшого набора абстракций, которые позволяют сравнительно просто моделировать большую часть распространенных предметных областей и допускают точные формальные определения, оставаясь интуитивно понятными;
2) наличие простого и в то же время мощного математического аппарата, опирающегося главным образом на теорию множеств и математическую логику и обеспечивающего теоретический базис реляционного подхода к организации баз данных;
3) возможность ненавигационного манипулирования данными без необходимости знания конкретной физической организации баз данных во внешней памяти.
Реляционные системы далеко не сразу получили широкое распространение. В то время, как основные теоретические результаты в этой области были получены еще в 70-х, и тогда же появились первые прототипы реляционных СУБД, долгое время считалось невозможным добиться эффективной реализации таких систем. Однако отмеченные выше преимущества и постепенное накопление методов и алгоритмов организации реляционных баз данных и управления ими привели к тому, что уже в середине 80-х годов реляционные системы практически вытеснили с мирового рынка ранние СУБД.
В настоящее время основным предметом критики реляционных СУБД является не их недостаточная эффективность, а присущая этим системам некоторая ограниченность (прямое следствие простоты) при использование в так называемых нетрадиционных областях (наиболее распространенными примерами являются системы автоматизации проектирования), в которых требуются предельно сложные структуры данных. Еще одним часто отмечаемым недостатком реляционных баз данных является невозможность адекватного отражения семантики предметной области. Другими словами, возможности представления знаний о семантической специфике предметной области в реляционных системах очень ограничены. Современные исследования в области постреляционных систем главным образом посвящены именно устранению этих недостатков.