На этом уроке мы с вами
вспомним, что такое иерархическая структура и из каких элементов она состоит.
Также рассмотрим несколько примеров иерархической базы данных.
Начнём мы с вами с
рассмотрения иерархической структуры базы данных.
Иерархическая структура
– это многоуровневая форма организации объектов со строгой соотнесённостью
объектов нижнего уровня определённому объекту верхнего уровня. Т. е. можно
сказать, что иерархическая структура напоминает собой пирамиду, в которой
объекты более низкого уровня подчиняются объектам более высокого уровня.
Из этого можно сделать
вывод, что в иерархической структуре существуют отношения между её объектами
(элементами).
Ещё иерархическую
структуру называют древовидной. К примерам можно отнести содержание
учебника.
А сейчас рассмотрим
иерархическую структуру более подробно на примере.
Давайте построим
иерархическую структуру школы.
Во главе всегда находится
директор школы. Далее будут идти завуч старших классов, завуч младших классов,
заведующий хозяйственной деятельностью. После завучей идут учителя, которые,
соответственно, делятся на преподавателей младших и старших классов. Не будем
расписывать всех учителей, а возьмём по три учителя каждых классов. Заведующему
по хозяйственной деятельности будет подчиняться весь технический персонал. Его
мы расписывать не будем. Далее у каждого учителя есть свой класс, в котором он
является классным руководителем, а в каждом классе – ученики. В свою очередь,
учителя старших классов ведут уроки и в других классах. Давайте отобразим
несколько таких классов в нашей структуре. Если же всю эту структуру
расписывать более подробно, то нам понадобится очень много места, так как
объектов в этой системе очень большое количество.
Итак, во главе любой
иерархической структуры всегда находится один элемент (объект). В нашем случае
– это директор школы. Он является корнем вершины и находится на верхнем
(первом) уровне.
Далее идёт второй
уровень, на котором находятся заместители.
На третьем уровне
находятся учителя и технический персонал, на четвёртом – классы и на пятом –
ученики.
Как говорилось ранее,
между всеми объектами существуют связи. Каждый объект более высокого уровня
может включать в себя несколько объектов более низкого уровня. Давайте снова
обратимся к нашему примеру. Так, завуч старшей школы включает в себя всех
учителей, которые ведут уроки в старших классах. А заведующий хозяйственной
деятельностью управляет всем техническим персоналом школы. Такие объекты
находятся в отношении предка (объект более высокого уровня) к потомку
(объект более низкого уровня). То есть завуч старшей школы и заведующий
хозяйственной деятельностью являются предками, а учителя и технический персонал
– потомками.
Также мы можем видеть,
что у объекта-предка может быть несколько потомков. Но в то же время у
объекта-потомка может быть только один предок. Объекты, которые находятся на
одном уровне и у которых один общий предок, называются близнецами.
Рассмотрим ещё один
пример. Построить иерархическую структуру, исходя из следующего условия: на кафедре
иностранных языков работают три преподавателя. Иванова Инна Сергеевна преподаёт
английский язык, Кулибина Анна Васильевна преподаёт немецкий язык, а Рудков
Игорь Сергеевич преподаёт французский язык.
Корневой вершиной в этой
структуре будет являться кафедра. Изобразим её в виде круга. Она включает в
себя трёх преподавателей. Также изобразим их схематично, а от кафедры к каждому
преподавателю проведём стрелки.
Далее у каждого
преподавателя есть свои предметы, которые он ведёт. Также изобразим их
схематично и проведём стрелки.
Таким образом мы получили
графическое отображение иерархической структуры кафедры.
Корневой вершиной
является кафедра.
Учителя являются потомками
по отношению к кафедре и предками по отношению к предметам, которые они
преподают. Также они между собой являются близнецами, так как находятся на
одном уровне структуры и имеют одного предка – кафедру.
У нас получилось
несколько определений.
Корень
– это единственный объект, который стоит на вершине иерархической системы и
является её первым уровнем.
Предок
– это объект, который стоит более близко к корню системы и у него может быть
несколько потомков.
Потомок
– это объект, который стоит на более низком уровне по отношению к предку и у
него может быть только один предок.
Близнецы –
это объекты, которые имеют одного предка и находятся на одном уровне.
А сейчас рассмотрим ещё
несколько примеров.
Начнём с иерархической
базы данных папки Windows.
Иерархической базой
данных является каталог папок Windows. Перед вами
рисунок системного диска. Для того, чтобы увидеть древовидную структуру в
проводнике в Windows 7, необходимо выбрать кнопку
«Упорядочить», далее из появившегося списка – «Представления», а затем «Область
переходов». Это в том случае, если данная область не отображается.
А вот, например, в Windows 10 необходимо в проводнике, во вкладке «Вид»,
выбрать «Область навигации» и из списка снова «Область навигации».
На рисунке представлен
проводник операционной системы Windows 10.
Итак, корневой является
папка «Этот компьютер».
Далее, на втором уровне
на представленном рисунке находится локальный диск С, который включает в себя
несколько папок третьего уровня.
В нашем случае выбрана
папка «Program Files». Она
в себя включает несколько папок-потомков.
Исходя из этого можно
сказать, что корнем является – «Этот компьютер». Далее и предком, и потомком
является локальный диск С. Папка «Program Files» также является и потомком (по отношению к локальному
диску С), и предком (по отношению к остальным папкам, которые она в себя
включает). Файл «Rar.txt» является потомком папки «WinRAR».
В свою очередь, мы можем видеть, что у файла «Rar.txt» нет своих потомков. Также,
например, файлы «Rar.txt» и «Rar.exe» являются близнецами, так как
находятся на одном уровне и у них один общий предок – папка «WinRAR».
Ещё одним примером
иерархической базы данных является файловая система Linux.
Мы ранее её
рассматривали. В ней существует одна корневая папка, все остальные папки являются
потомками. В корневой папке содержатся все системные файлы. А вот, например,
каталоги логических томов и запоминающих устройств содержатся в составе других
каталогов. Директории томов жёсткого диска содержатся в папке «mnt».
Другие запоминающие устройства находятся в папке «media».
В свою очередь, папки «mnt» и «media»
содержатся в одном системном корневом каталоге. Таким образом, папки «mnt»
и «media» являются и потомками (по отношению к
основному корневому каталогу), и предками (по отношению к каталогам логических
томов и запоминающих устройств). Помимо этого, эти две папки являются
близнецами, так как они находятся на одном уровне и имеют одного предка.
А сейчас давайте
рассмотрим такую иерархическую базу данных, как «Системный реестр Windows».
В этой иерархической базе
данных хранится вся информация, которая нужна для нормального функционирования
компьютерной системы. То есть в этой базе данных содержится информация о
настройках компьютера, установленных драйверах, настройках графического
интерфейса, сведения о программах, которые установлены на компьютере, и многое
другое.
Вся эта информация
автоматически обновляется при установке нового оборудования, удалении или
установке программ и так далее.
Давайте рассмотрим
рисунок.
Корневым объектом
является сам компьютер. Папка «Adobe»
является потомком по отношению к папке «SOFTWARE» и предком для всех
остальных папок, которые она в себя включает. Папки «7-Zip» и «Adobe» являются близнецами, так как они
находятся на одном уровне и у них один предок – папка «SOFTWARE». Файл «UserID»
является потомком папки «IAC».
В свою очередь, мы можем видеть, что у файла «UserID» нет своих потомков.
В операционной же системе
Linux
как такового реестра нет. Вместо этого в ней существует папка «etc».
А сейчас мы с вами
рассмотрим иерархическую базу данных «Доменная система имён». Эта система
получила название DNS.
DNS – это распределённая
база данных, которая поддерживает иерархическую систему имён для идентификации
узлов сети Интернет.
Эта служба предназначена
для автоматического поиска IP-адреса
по известному символьному имени узла. То есть в этой базе данных содержится
информация о всех компьютерах, подключённых к сети Интернет.
Корневой вершиной в этой
системе является табличная база данных, которая содержит перечень доменов
верхнего уровня.
Сам же корень управляется
центром Internet Network Information Center. Домены
верхнего уровня назначаются для каждой страны, а также на организационной
основе. Для обозначения стран используются трёхбуквенные и двухбуквенные
аббревиатуры.
Так, например, для
русскоязычных сайтов доменом верхнего уровня является «.ru»,
для Казахстана – «.kz» и т. д. Для различных типов организаций
также есть свои аббревиатуры.
На втором уровне
находятся также табличные базы данных, но они уже в себя включают перечень
доменов второго уровня для каждого домена первого уровня.
На третьем уровне
содержатся табличные базы данных и таблицы. Табличные базы данных содержат
перечень доменов третьего уровня для каждого домена второго уровня. Таблицы, в
свою очередь, содержат IP-адреса
компьютеров, которые находятся в домене второго уровня.
А теперь представьте,
какой большой будет база данных, которая должна включать в себя информацию о
всех компьютерах, подключенных к Интернету. Как вы
думаете, много ли места она будет занимать?
Такая база данных огромна
по своим размерам и соответственно она не будет умещаться в памяти одного
компьютера, а если бы и можно было загрузить такую базу данных в один
компьютер, то работа в Интернете была бы очень медленной. Представьте себе
количество запросов, которые поступают от пользователей всего мира в течение,
например, 1 минуты. Их количество огромно. А теперь представьте, что все эти
запросы должен принять и обработать один компьютер. Это просто невозможно, так
как приведёт не только к медленной работе компьютера, но также и к зависанию,
если не к поломке. Таким образом, размещение базы данных доменной системы имён
на одном компьютере неэффективно. Но решение этой проблемы было найдено. Вся
база данных была разделена на части и размещена на различных DNS-серверах, которые связаны между
собой. Такая иерархическая база данных является распределённой базой данных.
А сейчас давайте
рассмотрим, как происходит поиск информации в такой огромной иерархической
распределённой базе данных.
Например, вам нужно зайти
на свою почту в Яндексе. Для этого вы вводите в адресную строку запрос.
Ваш запрос сначала
отправляется на DNS-сервер вашего провайдера, с которого он переадресуется
на DNS -сервер верхнего уровня базы данных.
На этом сервере, в
таблице первого уровня, произойдёт поиск интересующего нас домена «ru»,
после чего запрос будет перенаправлен на DNS-сервер второго уровня, который
содержит перечень доменов второго уровня, зарегистрированных в домене «ru».
На втором уровне будет
происходить поиск среди доменов второго уровня. После того, как был найден
интересующий нас домен «yandex», произойдёт
перенаправление на DNS-сервер
третьего уровня, на котором находится перечень доменов третьего уровня,
зарегистрированных в домене «yandex».
В таблице третьего уровня
будет найден домен «mail», и запрос будет
переадресован на DNS-сервер
четвёртого уровня.
В таблице четвёртого
уровня будет найдена запись, которая соответствует доменному имени,
содержащемуся в запросе. После этого поиск в самой базе данных «Доменная
система имён» будет завершён и начнётся поиск компьютера в сети по его IP-адресу.
Пришла пора подвести
итоги урока.
Сегодня мы с вами узнали,
что такое иерархическая структура и построили такую структуру на примере. Более
подробно познакомились с элементами иерархической базы данных: корнем, предком,
потомком, близнецами.
Рассмотрели несколько
иерархических баз данных на примере Windows и Linux,
а также реестра Windows.
Узнали, как составлена и
работает иерархическая база данных «Доменная система имён».
Источник статьи
Автор24
— учеба по твоим правилам
Определение 1
База данных является совокупностью организованной определенным образом информации, которая позволяет упорядоченно сохранять данные о группах объектов, которые имеют одинаковый набор свойств. К базам данных можно отнести, к примеру, всевозможные справочники, энциклопедии, каталоги, картотеки и прочее.
Систематизированные данные издавна еще до появления первых вычислительных машин и устройств хранились в виде различных карточек. Переход к компьютеризированному хранению информации был охарактеризован для человека множеством преимуществ: оперативным доступом к неограниченному объему данных, возможностью логического контроля вводимой информации, контролем целостности базы данных, регулированием уровня доступа к данным для пользователей разных категорий. Но главным преимуществом явилось то, что использование компьютерного хранения информации дало возможность заменить механические процедуры извлечения отдельных сведений мощными методами обработки запросов человека и автоматическим составлением произвольных справок и отчетов. Появление компьютерных сетей позволило хранить данные не в одной машине, а в нескольких, таким образом появились так называемые распределенные базы данных. Вершиной объединения компьютерных данных можно считать Всемирную информационную сеть Интернет.
Типы баз данных
В базах данных информация хранится, как было отмечено выше, в упорядоченном виде. В связи с этим существуют различные типы баз данных: иерархические, сетевые и табличные.
Иерархические базы данных графически представляются в виде дерева, состоящего из объектов различных уровней. На самом верхнем уровне находится один объект, на втором — объекты второго уровня и т. д.
Объекты связаны между собой, причем каждый из них может включать в себя объекты более низкого уровня. Примером иерархической базы данных является каталог папок в операционной системе Windows.
Замечание 1
Сетевую базу данных от иерархической отличает то, что в ней каждый элемент верхнего уровня может быть связан одновременно с любыми элементами следующего уровня.
«Табличные базы данных» 👇
Отметим, что связи между объектами в сетевых моделях не имеют никаких ограничений. Примером сетевой базы данных является Всемирная паутина глобальной сети Интернет. Миллионы документов связаны между собой при помощи гиперссылок в единую распределенную сетевую базу данных.
Табличная (реляционная) база данных представляет сбой перечень объектов одного типа, т.е. объектов с одинаковым набором свойств.
Табличные базы данных
База данных, хранящая данные о группе объектов с одинаковыми свойствами, представляется в виде двумерной таблицы, где каждая ее строка последовательно размещает значения свойств одного из объектов; а каждое значение свойства находится в своем столбце, названном по имени свойства.
Столбцы подобной таблицы называются полями, причем каждое поле имеет свое имя (имя соответствующего свойства) и тип данных, который представляет значения этого свойства.
Поле базы данных является столбцом таблицы, содержащим значения определенного свойства.
Определение 2
Строки таблицы – это записи об объекте, которые разбиты на поля столбцами таблицы, в результате каждая запись представлена набором значений, находящихся в полях.
Запись базы данных представляет собой строку таблицы, содержащую набор значений свойств, размещенных в полях базы данных.
Каждая таблица, как правило, содержит одно ключевое поле, содержимое которого является уникальным для каждой записи данной таблицы. С помощью ключевого поля однозначно идентифицируются записи в таблице.
Замечание 2
Таким образом, ключевое поле является полем, значения которого однозначно определяют записи в таблице.
Ключевое поле, как правило, имеет тип данных счетчик. Однако в некоторых случаях удобнее, чтобы ключевое поле таблицы имело другой тип (например, числовой — инвентарный номер или код объекта).
Тип поля
Тип поля определяется по типу данных, содержащихся в нем. В полях могут содержаться данные следующих типов:
- Счетчик, в нем содержится последовательность целых чисел, задаваемых автоматически при вводе записей. Пользователь данные числа не может изменить;
- Текстовый, в нем содержатся символы различных типов;
- Числовой, в нем содержатся числа различных типов;
- Дата/Время используется для содержания даты или времени;
- Картинка, используется для хранения изображения;
- Логический, имеет значения Истина (Да) или Ложь (Нет).
Для каждого типа характерен свой набор свойств. Наиболее важными из которых являются:
- размер поля используется для определения максимальной длины текстового или числового поля;
- формат поля используется для установления формата данных;
- обязательное поле используется для указания на то, что это поле обязательно нужно заполнить.
Пример табличной базы данных
Рассмотрим базу данных «Компьютер» (рис.3), которая представляет собой перечень объектов (компьютеры), каждый из которых имеет свое имя (название). В качестве характеристик (свойств) будут выступать тип процессора и объем оперативной памяти.
Столбцы этой таблицы представляют поля, каждое из которых имеет свое имя (название соответствующего свойства) и тип данных, которые отражают значения этого свойства. Тип полей Название и Тип процессора — текстовый, а тип поля Оперативная память — числовой. При этом каждое поле имеет определенный набор свойств (размер, формат и др.). Так, для поля Оперативная память задается формат данных «целое число».
Определение 3
Полем базы данных является столбец таблицы, который включает в себя значения определенного свойства.
Строки таблицы представляют записи об объекте, которые разбиты столбцами таблицы на поля. Запись базы данных представляет собой строку таблицы, содержащую набор значений различных свойств объекта.
Замечание 3
Каждая таблица должна иметь хотя бы 1 ключевое поле, содержимое которого является уникальным для любой записи в данной таблице. Значениями ключевого поля однозначно определяются записи в таблице.
Иерархическая база данных графически может быть представлена как перевернутое дерево, состоящее из объектов различных уровней. Верхний уровень (корень) занимает один объект, второй — объекты второго уровня и т. д.
Между объектами существуют связи, каждый объект может включать в себя несколько объектов более низкого уровня. Такие объекты находятся в отношении предка (объект более близкий к корню) к потомку (объект, более низкого уровня), при этом объект-предок может не иметь потомков или иметь их несколько, тогда как объект-потомок обязательно имеет только одного предка. Объекты, имеющие общего предка, называются близнецами.
Иерархическая база данных Папки Windows.
Иерархической базой данных является каталог папок Windows (например, гибкого диска). Ее можно увидеть, например, запустив файловый менеджер Total Commander, и введя команду [Вид-дерево каталогов]. Верхний уровень занимает корневая папка диска А:. На втором уровне находятся папки Документы, Изображения и Школа, которые являются потомками корневой папки диска А:, а между собой являются близнецами. В свою очередь, папка Изображения является предком по отношению к папке третьего уровня Фото. Наконец, файл Класс.bmp является потомком папки Фото.
Иерархическая база данных Системный реестр Windows.
Иерархической базой данных является также системный реестр Windows, в котором хранится вся информация, необходимая для нормального функционирования компьютерной системы (данные о конфигурации компьютера и установленных драйверах, сведения об установленных программах, настройки графического интерфейса и др. ).
Содержание реестра автоматически обновляется при установке нового оборудования, инсталляции программ и т. д.
Иерархическая базы данных «Доменная система имею».
Еще одним примером иерархической базы данных является доменная система имен подключенных к Интернету компьютеров. На верхнем уровне находится табличная база данных, содержащая перечень доменов верхнего уровня (всего 269 домена), из которых 12- административные, а остальные 257 — географические. Наиболее многочисленным доменом (данные на январь 2008 года) является административный домен net (около 190 миллионов серверов), а некоторых доменах (например, в географическом домене zr) до сих пор не зарегистрировано ни одного сервера.
На втором уровне находятся табличные базы данных, содержащие перечень доменов второго уровня для каждого домена первого уровня.
На третьем уровне могут находиться табличные базы данных, содержащие перечень доменов третьего уровня для каждого домена второго уровня и таблицы, содержащие
IP-адреса компьютеров, находящихся в домене второго уровня.
База данных «Доменная система имен» должна содержать записи обо всех компьютерах, подключенных к Интернету, т. е. более 500 миллионов записей. Размещение такой огромной базы данных на одном компьютере сделало бы поиск информации очень медленным и неэффективным. Решение этой проблемы было найдено путем размещения отдельных составных частей базы данных на различных DNS-серверах. Таким образом, иерархическая база данных «Доменная система имен» является распределенной базой данных.
Поиск информации в такой иерархической распределенной базе данных ведется следующим образом . Например, мы хотим ознакомиться с содержанием WWW-сервера фирмы Microsoft.
Сначала наш запрос, содержащий доменное имя сервера www.microsoft.com, будет оправлен на DNS-сервер нашего провайдера, который переадресует его на DNS-сервер самого верхнего уровня базы данных. В таблице первого уровня будет найден интересующий нас домен сот и запрос будет адресован на DNS-сервер второго уровня, который содержит перечень доменов второго уровня, зарегистрированных в домене соm.
В таблице второго уровня будет найден домен microsoft и запрос будет переадресован на DNS-сервер третьего уровня. В таблице третьего уровня будет найдена запись, соответствующая доменному имени, содержавшемуся в запросе. Поиск информации в базе данных «Доменная система имен» будет завершен и начнется поиск компьютера в сети по его IP-адресу.
Контрольные вопросы:
- В чем заключаются характерные особенности иерархических баз данных?
- Чем различаются между собой иерархические и распределенные базы данных?
Содержание
1. Базы данных в Microsoft Office Access
Учитель информатики
Рудакова Светлана Олеговна
2. База данных – это информационная модель, позволяющая в упорядоченном виде хранить данные о группе объектов, обладающих
одинаковым набором
символов
3. Базы данных бывают:
•Табличные
•Иерархические
•Сетевые
4. Табличная база данных содержит перечень объектов, имеющих одинаковый набор свойств
№
п/п
1
Название
Тип
процессора
Оперативная
память (Мбайт)
Compaq
Celeron
64
2
Dell
Pentium III
128
3
IBM
Pentium 4
256
5.
• Поле базы данных – это столбец
таблицы, содержащий значения
определенного свойства
• Запись базы данных — это строка
таблицы, содержащая набор значений
свойств, размещенный в полях базы
данных.
• Ключевое поле – это поле, значение
которого однозначно определяет запись
в таблице (Чаще всего используют поле,
содержащее тип данных Счетчик)
6. Иерархические базы данных графически могут быть представлены как перевернутое дерево состоящее из объектов различных уровней.
Верхний уровень (корень дерева) занимает
один объект, второй – объекты второго
уровня и так далее
7. Иерархическая база данных Каталог папок Windows
8. Сетевые базы данных
Сетевая база данных
является обобщением
иерархической за счет
допущения в верхний
уровень
нескольких
объектов
А
C
D
H
Всемирная паутина
В
E
G
L
9. Система управления базами данных (СУБД) —
Система управления
базами данных (СУБД) ЭТО ПРОГРАММА,
ПОЗВОЛЯЮЩАЯ СОЗДАВАТЬ
БАЗЫ ДАННЫХ, А ТАКЖЕ
ОБЕСПЕЧИВАЮЩАЯ
ОБРАБОТКУ (СОРТИРОВКУ) И
ПОИСК ДАННЫХ.
10. Системой управления базами данных является приложение Access в Microsoft Office
В
главном
меню
На
рабочем
столе
11. В Access используется стандартный для Windows&Office многооконный интерфейс. Единовременно может быть открыта только одна база
В Access
используется стандартный для
Windows&Office
многооконный интерфейс.
Единовременно может быть
открыта только одна база данных,
содержащая обязательное окно БД
и окна для работы с объектами БД.
12. Окно программы
13. ТАБЛИЦА
основной объект БД – двумерная таблица,
которую можно создать тремя способами:
14. Создание таблицы с помощью Конструктора
15. В окне Конструктора задаются
Имена полей
Типы данных
Описание данных
Свойства типов данных
16. Типы данных
Числовой
Символьный
Логический
Дата
Счетчик
Денежный
И д.р.
17. Создание таблицы с помощью Мастера
18. Создание таблицы путем ввода данных
19. Запросы
предназначены для отбора данных на
основании заданных условий
20. Формы
Позволяют
отображать
данные,
содержащиеся в таблицах или запросах, в
более удобном для восприятия виде.
При помощи Форм можно добавлять в
таблицы новые данные, редактировать
или удалять существующие.
Форма может содержать рисунки,
графики и другие внедренные объекты.
21.
22. Отчеты
Предназначены для печати данных,
содержащихся в таблицах и запросах, в
красиво оформленном виде
23. Макросы
Служат для автоматизации
повторяющихся операций
24. Модули
Служат для автоматизации работы
с Базами данных
Модули еще называют процедурами
обработки событий и пишутся на языке VBA
25. Реляционные базы данных —
Реляционные базы данных это
базы данных состоящие
связанных двумерных таблиц.
из
Прежде чем приступить к созданию
реляционной базы данных, необходимо
продумать ее проект.
Проект представляет собой модель
будущей БД, состоящей из объектов и их
связей, необходимых для выполнения
поставленных задач.
Аннотация: В лекции рассматриваются модели организации баз данных, дается характеристика каждой модели. Описываются достоинства и недостатки существующих моделей баз данных. Даются определения атрибута, записи и отношений в различных моделях БД.
Цель лекции: Уяснить разницу между моделями организации БД. Ознакомиться с их достоинствами и недостатками. Понять, как организовываются связи в этих моделях, как применяются операции изменения в той или иной модели.
Различают три основные модели базы данных — это иерархическая, сетевая и реляционная. Эти модели отличаются между собой по способу установления связей между данными.
1. Иерархический подход к организации баз данных. Иерархические базы данных имеют форму деревьев с дугами-связями и узлами-элементами данных. Иерархическая структура предполагала неравноправие между данными — одни жестко подчинены другим. Подобные структуры, безусловно, четко удовлетворяют требованиям многих, но далеко не всех реальных задач.
2. Сетевая модель данных. В сетевых БД наряду с вертикальными реализованы и горизонтальные связи. Однако унаследованы многие недостатки иерархической и главный из них, необходимость четко определять на физическом уровне связи данных и столь же четко следовать этой структуре связей при запросах к базе.
3. Реляционная модель. Реляционная модель появилась вследствие стремления сделать базу данных как можно более гибкой. Данная модель предоставила простой и эффективный механизм поддержания связей данных.
Во-первых, все данные в модели представляются в виде таблиц и только таблиц. Реляционная модель — единственная из всех обеспечивает единообразие представления данных. И сущности, и связи этих самых сущностей представляются в модели совершенно одинаково — таблицами. Правда, такой подход усложняет понимание смысла хранящейся в базе данных информации, и, как следствие, манипулирование этой информацией.
Избежать трудностей манипулирования позволяет второй элемент модели — реляционно-полный язык (отметим, что язык является неотъемлемой частью любой модели данных, без него модель не существует). Полнота языка в приложении к реляционной модели означает, что он должен выполнять любую операцию реляционной алгебры или реляционного исчисления (полнота последних доказана математически Э.Ф. Коддом). Более того, язык должен описывать любой запрос в виде операций с таблицами, а не с их строками. Одним из таких языков является SQL.
Третий элемент реляционной модели требует от реляционной модели поддержания некоторых ограничений целостности. Одно из таких ограничений утверждает, что каждая строка в таблице должна иметь некий уникальный идентификатор, называемый первичным ключом. Второе ограничение накладывается на целостность ссылок между таблицами. Оно утверждает, что атрибуты таблицы, ссылающиеся на первичные ключи других таблиц, должны иметь одно из значений этих первичных ключей.
4. Объектно-ориентированная модель. Новые области использования вычислительной техники, такие как научные исследования, автоматизированное проектирование и автоматизация учреждений, потребовали от баз данных способности хранить и обрабатывать новые объекты — текст, аудио- и видеоинформацию, а также документы. Основные трудности объектно-ориентированного моделирования данных проистекают из того, что такого развитого математического аппарата, на который могла бы опираться общая объектно-ориентированная модель данных, не существует. В большой степени, поэтому до сих пор нет базовой объектно-ориентированной модели. С другой стороны, некоторые авторы утверждают, что общая объектно-ориентированная модель данных в классическом смысле и не может быть определена по причине непригодности классического понятия модели данных к парадигме объектной ориентированности.
Несмотря на преимущества объектно-ориентированных систем — реализация сложных типов данных, связь с языками программирования и т.п. — на ближайшее время превосходство реляционных СУБД гарантировано.
Рассмотрим более подробно эти модели данных далее.
Иерархическая модель базы данных
Иерархические базы данных — самая ранняя модель представления сложной структуры данных. Информация в иерархической базе организована по принципу древовидной структуры, в виде отношений «предок-потомок«. Каждая запись может иметь не более одной родительской записи и несколько подчиненных. Связи записей реализуются в виде физических указателей с одной записи на другую. Основной недостаток иерархической структуры базы данных — невозможность реализовать отношения «многие-ко-многим«, а также ситуации, когда запись имеет несколько предков.
Иерархические базы данных. Иерархические базы данных графически могут быть представлены как перевернутое дерево, состоящее из объектов различных уровней. Верхний уровень (корень дерева) занимает один объект, второй — объекты второго уровня и так далее.
Между объектами существуют связи, каждый объект может включать в себя несколько объектов более низкого уровня. Такие объекты находятся в отношении предка (объект, более близкий к корню) к потомку (объект более низкого уровня), при этом объект-предок может не иметь потомков или иметь их несколько, тогда как объект—потомок обязательно имеет только одного предка. Объекты, имеющие общего предка, называются близнецами.
Иерархической базой данных является Каталог папок Windows, с которым можно работать, запустив Проводник. Верхний уровень занимает папка Рабочий стол. На втором уровне находятся папки Мой компьютер, Мои документы, Сетевое окружение и Корзина, которые являются потомками папки Рабочий стол, а между собой является близнецами. В свою очередь, папка Мой компьютер является предком по отношению к папкам третьего уровня -папкам дисков (Диск 3,5(А:), (С:), (D:), (Е:), (F:)) и системным папкам (сканер, bluetooth и.т.д.) — на
рис.
4.1.
Рис.
4.1.
Иерархическая база данных Каталог папок Windows
Организация данных в СУБД иерархического типа определяется в терминах: элемент, агрегат, запись (группа), групповое отношение, база данных.
Атрибут (элемент данных) | — наименьшая единица структуры данных. Обычно каждому элементу при описании базы данных присваивается уникальное имя. По этому имени к нему обращаются при обработке. Элемент данных также часто называют полем. |
Запись | — именованная совокупность атрибутов. Использование записей позволяет за одно обращение к базе получить некоторую логически связанную совокупность данных. Именно записи изменяются, добавляются и удаляются. Тип записи определяется составом ее атрибутов. Экземпляр записи — конкретная запись с конкретным значением элементов. |
Групповое отношение | — иерархическое отношение между записями двух типов. Родительская запись (владелец группового отношения) называется исходной записью, а дочерние записи (члены группового отношения) — подчиненными. Иерархическая база данных может хранить только такие древовидные структуры. |
Корневая запись каждого дерева обязательно должна содержать ключ с уникальным значением. Ключи некорневых записей должны иметь уникальное значение только в рамках группового отношения. Каждая запись идентифицируется полным сцепленным ключом, под которым понимается совокупность ключей всех записей от корневой, по иерархическому пути.
При графическом изображении групповые отношения изображают дугами ориентированного графа, а типы записей — вершинами (диаграмма Бахмана).
Для групповых отношений в иерархической модели обеспечивается автоматический режим включения и фиксированное членство. Это означает, что для запоминания любой некорневой записи в БД должна существовать ее родительская запись.
Пример
Рассмотрим следующую модель данных предприятия (см.
рис.
4.2): предприятие состоит из отделов, в которых работают сотрудники. В каждом отделе может работать несколько сотрудников, но сотрудник не может работать более чем в одном отделе.
Поэтому, для информационной системы управления персоналом необходимо создать групповое отношение, состоящее из родительской записи ОТДЕЛ (НАИМЕНОВАНИЕ_ОТДЕЛА, ЧИСЛО_РАБОТНИКОВ) и дочерней записи СОТРУДНИК (ФАМИЛИЯ, ДОЛЖНОСТЬ, ОКЛАД). Это отношение показано на
рис.
4.2 (а) (Для простоты полагается, что имеются только две дочерние записи).
Для автоматизации учета контрактов с заказчиками необходимо создание еще одной иерархической структуры: заказчик — контракты с ним — сотрудники, задействованные в работе над контрактом. Это дерево будет включать записи ЗАКАЗЧИК (НАИМЕНОВАНИЕ_ЗАКАЗЧИКА, АДРЕС), КОНТРАКТ(НОМЕР, ДАТА,СУММА), ИСПОЛНИТЕЛЬ (ФАМИЛИЯ, ДОЛЖНОСТЬ, НАИМЕНОВАНИЕ_ОТДЕЛА) (
рис.
4.2 b).
Рис.
4.2.
Пример иерархической базы данных
Из этого примера видны недостатки иерархических БД:
Частично дублируется информация между записями СОТРУДНИК и ИСПОЛНИТЕЛЬ (такие записи называют парными), причем в иерархической модели данных не предусмотрена поддержка соответствия между парными записями.
Иерархическая модель реализует отношение между исходной и дочерней записью по схеме 1:N, то есть одной родительской записи может соответствовать любое число дочерних.
Допустим теперь, что исполнитель может принимать участие более чем в одном контракте (т.е. возникает связь типа M:N). В этом случае в базу данных необходимо ввести еще одно групповое отношение, в котором ИСПОЛНИТЕЛЬ будет являться исходной записью, а КОНТРАКТ — дочерней (
рис.
4.2 c). Таким образом, мы опять вынуждены дублировать информацию.
Операции над данными, определенные в иерархической модели:
- Добавить в базу данных новую запись. Для корневой записи обязательно формирование значения ключа.
- Изменить значение данных предварительно извлеченной записи. Ключевые данные не должны подвергаться изменениям.
- Удалить некоторую запись и все подчиненные ей записи.
- Извлечь корневую запись по ключевому значению, допускается также последовательный просмотр корневых записей.
- Извлечь следующую запись (следующая запись извлекается в порядке левостороннего обхода дерева).
В операции ИЗВЛЕЧЬ допускается задание условий выборки (например, извлечь сотрудников с окладом более 10 тысяч руб.)
Как видим, все операции изменения применяются только к одной «текущей» записи (которая предварительно извлечена из базы данных). Такой подход к манипулированию данных получил название «навигационного».
Ограничения целостности
Поддерживается только целостность связей между владельцами и членами группового отношения (никакой потомок не может существовать без предка). Как уже отмечалось, не обеспечивается автоматическое поддержание соответствия парных записей, входящих в разные иерархии.