Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Гайдамакин Н. А. Автоматизированные информационные системы, базы и банки данных. Вводный курс - файл Гайдамакин_Автоматизированные информационные системы базы и банки данных Вводный курс_2002 .doc


Гайдамакин Н. А. Автоматизированные информационные системы, базы и банки данных. Вводный курс
скачать (3043.3 kb.)

Доступные файлы (1):

Гайдамакин_Автоматизированные информационные системы базы и банки данных Вводный курс_2002 .doc4199kb.30.12.2002 12:56скачать

содержание

Гайдамакин_Автоматизированные информационные системы базы и банки данных Вводный курс_2002 .doc

1   2   3   4   5   6   7   8   9   ...   23
^

2.2. Модели организации данных

2.2.1. Иерархическая и сетевая модели организации данных


В иерархической модели объекты-сущности и отношения предметной области представляются наборами данных, кото­рые имеют строго древовидную структуру, т. е. допускают толь­ко иерархические (структурные) связи-отношения. Иерархичес­кая модель данных была исторически первой, на основе кото­рой в конце 60-х-начале 70-х годов были разработаны первые профессиональные СУБД-СУБД IMS (Information Management System) фирмы IBM, СУБД Total для компьютеров НР3000. К иерархическим СУБД также относятся отечественные промыш­ленные СУБД 70-80-х годов «ОКА» и «ИНЭС».

База данных с иерархической моделью данных состоит из упорядоченного набора экземпляров структуры типа «дерево», что иллюстрируется примером на рис. 2.2.

В приведенном примере информационный объект «Отде­лы» является предком информационного объекта «Подразде­ления», который, в свою очередь, является предком информа­ционного объекта «Сотрудники». Объект «Подразделения» яв­ляется потомком объекта «Отделы», а объект «Сотрудники» потомком объекта «Подразделения». Экземпляры потомка с об­щим предком называются близнецами.



Рис. 2.2. Пример иерархической организации данных

В иерархической модели устанавливается строгий поря­док обхода дерева (сверху-вниз, слева-направо) и следующие операции над данными:

• найти указанное дерево (например, отдел № 3);

• перейти от одного дерева к другому;

• перейти от одной записи к другой (например, от отдела к первому подразделению);

• перейти от одной записи к другой в порядке обхода иерар­хии;

• удалить текущую запись.

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

Сетевая модель является расширением иерархической и широко применялась в 70-е годы в первых СУБД, использовав­шихся крупными корпорациями для создания информационных систем (СУБД IDMS — Integrated Database Management System компании Cullinet Software Inc., СУБД IDS, отечественные СУБД «СЕТЬ», «БАНК», «СЕТОР»). Одним из идеологов кон­цепции сетевой модели являлся Ч. Бахман. Эталонный вари­ант сетевой модели данных, разработанный с участием Бахмана, был описан в проекте «Рабочей группы по базам данных» КОДАСИЛ (DBTG CODASYL).

В отличие от иерархической, в сетевой модели объект-по­томок может иметь не одного, а вообще говоря, любое количе­ство объектов-предков. Тем самым допускаются любые связи-отношения, в том числе и одноуровневые. В результате сущно­сти и отношения предметной области АИС представляются графом любого (не только древовидного) типа. Пример такой организации данных приведен на рис. 2.3.



Рис. 2.3. Пример сетевой организации данных

Сетевая СУБД состоит из одного или нескольких типов за­писей (типов информационных объектов) и набора типов свя­зей между ними. Каждый тип записей представлен в БД набо­ром экземпляров записей данного типа. Аналогично каждый тип связи представлен набором экземпляров связей данного типа между конкретными экземплярами типов записей. В при­веденном на рис. 2.3 примере типами записей являются «Орга­низация», «Сотрудник», «Банк», «Счет», а типами связей — «Со­вместительство», «Основная работа», «Вклады», «Накопления». При этом тип записи «Счет» имеет двух предков — «Сотруд­ник» и «Банк», экземпляр типа записи «Сотрудник» может иметь два предка (по связям «Основная работа» и «Совместитель­ство»), являющихся различными экземплярами типа записи «Организация».

Для данного типа связи L между типом записи предка Р и типом записи потомка С выполняются следующие условия:

• каждый экземпляр типа Р является предком только в од­ном экземпляре ^ L,

• каждый экземпляр С является потомком не более чем в одном экземпляре L.

В рамках сетевой модели возможны следующие ситуации:

• тип записи потомка в одном типе связи ^ L1 может быть типом записи предка в другом типе связи L2 (как в иерархичес­кой модели);

• данный тип записи Р может быть типом записи потомка в любом числе типов связи;

• может существовать любое число типов связи с одним и тем же типом записи предка и одним и тем же типом записи потомка;

• если L1 и L2 —два типа связи с одним и тем же типом записи предка Р и одним и тем же типом записи потомка С, то правила, по которым образуется родство, в разных связях мо­гут различаться;

• типы записей Х и Y могут быть предком и потомком одной связи и потомком и предком в другой; предок и потомок могут быть одного типа записи (связь типа «петля»).

В сетевой модели устанавливаются следующие операции над данными:

• найти конкретную запись (экземпляр) в наборе однотип­ных записей;

• перейти от предка к первому потомку по некоторой связи;

• перейти к следующему потомку по некоторой связи;

• создать новую запись;

• уничтожить запись;

• модифицировать запись;

• включить в связь;

• исключить из связи;

• переставить в другую связь.

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

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

Сетевая модель позволяет наиболее адекватно отражать инфологические схемы сложных предметных областей. Вмес­те с тем, несмотря на появление в конце 70-х годов стандарта по сетевой модели данных КОДАСИЛ, не получила широкого распространения ни одна из попыток создания языковых про­граммных средств, которые позволили бы в разных приклад­ных информационных системах одинаковым образом описы­вать данные с сетевой организацией. В результате в сетевых СУБД данные оставались жестко связанными как с самой СУБД, так и с прикладными компонентами АИС, что затрудняло спе­циализацию в развитии программных компонент СУБД сете­вого типа и объективно затормаживало процесс их развития.
^

2.2.2. Реляционная модель организации данных


В реляционной модели объекты-сущности инфологической схемы предметной области АИС представляются плоски­ми таблицами данных. Столбцы таблицы, называемые полями базы данных, соответствуют атрибутам объектов-сущностей инфологической схемы предметной области. Множество атомар­ных значений атрибута называется доменом. Так доменом для поля «Имя» является множество всех возможных имен. Различ­ные атрибуты могут быть определены на одном и том же доме­не — например, атрибуты «Год поступления» (в вуз) и «Год окон­чания» определены на одном и том же домене, являющемся пе­речнем дат определенного диапазона.

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

Считается, что сильной стороной реляционных баз данных является развитая математическая теория, лежащая в их осно­ве—реляционная алгебра. Само слово «реляционная» проис­ходит от англ. relation — отношение. Но в случае реляционных баз слово «отношение» выражает не взаимосвязь между табли­цами-сущностями, а определение самой таблицы как матема­тического отношения доменов.*

* Для любителей математики—отношением называется подмножество декарто­ва произведения множеств, роль которых в данном случае играют домены, таким обра­зом таблицы — это отношение доменов, а строки таблицы (кортежи) — элементы отношения доменов.
^ Ключевому атрибуту объекта-сущности, который иденти­фицирует (определяет, отличает от других) конкретный экзем­пляр объекта, в таблице соответствует ключевое поле (так на­зываемый ключ таблицы). Примером ключа в таблице «Отде­лы» может быть поле «Номер отдела» или поле «Наименование отдела». В тех случаях, когда конкретную запись таблицы иден­тифицирует значение не одного поля, а совокупность значений нескольких полей, тогда все эти поля считаются ключевыми, а ключ таблицы является составным. Примером такой ситуации может служить таблица «Сотрудники», роль составного ключа в которой может играть совокупность полей «Фамилия», «Имя», «Отчество».*

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

В некоторых таблицах роль ключа могут играть сразу не­сколько полей или групп полей. Например, в той же таблице «Сотрудники» может быть определен второй ключ «Номер пас­порта», который также может идентифицировать конкретную запись (экземпляр) объекта «Сотрудник». В этих случаях один из ключей объявляется первичным. Значения непервичных клю­чей, которые называются возможными, в отличие от первич­ных ключей могут обновляться.

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

Как уже отмечалось, таблица в реляционной модели отра­жает определенный объект-сущность из мифологической схе­мы предметной области АИС. Отношения-связи объектов-сущ­ностей в реляционной модели устанавливаются через введение в таблицах дополнительных полей, которые дублируют ключе­вые поля связанной таблицы. К примеру, связь между таблицей «Сотрудники» и таблицей «Отделы» устанавливается через введение копии ключевого поля «Номер отдела» из таблицы «От­делы» в таблицу «Сотрудники» — см. рис. 2.4. Такие поля, дуб­лирующие ключи связанной таблицы, называются внешними ключами.



Рис. 2.4. Пример связи в реляционных таблицах

На приведенном рисунке ключевые поля таблиц обведены жирными рамками, а поле с внешним ключом — двойной рам­кой.

Так как значения первичного ключа уникальны, т. е. не мо­гут повторяться (в таблице «Отделы» может быть только один кортеж по, к примеру, 710-му отделу), а значения других полей и, в частности, внешнего ключа могут повторяться (в таблице «Сотрудники» может быть несколько строк-кортежей сотруд­ников по 710-му отделу), то такой механизм автоматически обес­печивает связь типа «Один-ко-многим». Отсюда также можно заключить, что связи между таблицами типа «Один-к-одному» в реляционной модели автоматически обеспечиваются при оди­наковых первичных ключах, например между таблицей «Со­трудник» с ключом «Таб_№» и таблицей «Паспорт» с таким же ключом.

Другой вывод, который следует из анализа данного меха­низма реализации связей, заключается в том, что реляционная модель не может непосредственно отражать связи типа «Многие-ко-многим», что объективно снижает возможности реляци­онной модели данных при отражении сложных предметных об­ластей.

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

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

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

Отсюда вытекают следующие ограничения:

• отсутствие кортежей дубликатов (данное требование ре­ализуется не через требование отсутствия совпадения значе­ний одновременно по всем полям, а лишь по полям первичных ключей, что обеспечивает определенную гибкость в описании конкретных ситуаций в предметных областях АИС);

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

Требование целостности ссылок заключается в том, что для любого кортежа-записи с конкретным значением внешнего ключа (отсылки) должен обязательно существовать кортеж свя­занной таблицы-отношения с соответствующим значением пер­вичного ключа. Простым примером этого очевидного требова­ния является таблица-отношение «Сотрудники» с внешним клю­чом «№ отдела» и отсылаемая (связанная) таблица «Отделы» с первичным ключом «№ отдела» (см. рис. 2.4). Если существу­ет кортеж-запись «Иванов», работающий в отделе № 710, то в таблице «Отделы» обязательно должен быть кортеж-запись с соответствующим номером отдела (каждый сотрудник должен обязательно в каком-либо отделе хотя бы числиться).

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

Все операции над данными в реляционной модели (манипуляционная составляющая) можно разделить на две труппы — операции обновления таблиц-отношений и операции обработ­ки таблиц-отношений.

К операциям обновления относятся:

• операция ВКЛЮЧИТЬ —добавляет новый кортеж (стро­ку-запись) в таблицу-отношение. Требует задания имени таб­лицы и обязательного значения ключей. Выполняется при ус­ловии уникальности значения ключа. Добавить новую строку-запись со значением ключа, которое уже есть в таблице, невозможно;

• операция УДАЛИТЬ — удаляет одну или группу корте­жей (строк-записей). Требует задания имени таблицы, имени поля (группы полей) и параметров значений полей, кортежи с которыми должны быть удалены;

• операция ОБНОВИТЬ — изменяет значение не ключе­вых полей у одного или группы кортежей. Требует задания име­ни таблицы-отношения, имен полей и их значений для выбора кортежей и имен изменяемых полей.

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

• операция ОБЪЕДИНЕНИЕ — выполняется над двумя односхемными таблицами-отношениями. Результатом объеди­нения является построенная по той же схеме таблица-отноше­ние, содержащая все кортежи первой таблицы-отношения и все кортежи второй таблицы-отношения. При этом кортежи-дуб­ликаты в итоговой таблице устраняются;

• операция ПЕРЕСЕЧЕНИЕ — выполняется также над двумя односхемными таблицами-отношениями. Результатом яв­ляется таблица-отношение, построенная по той же схеме и со­держащая только те кортежи первой таблицы-отношения, ко­торые входят также в состав кортежей второй таблицы-отно­шения. Для примера рассмотрим таблицу «Сотрудники» со схемой (полями) «ФИО», «Год рождения», «Национальность» и таблицу «Вкладчики банка «НАДЕЖНЫЙ» с той же схемой. Результатом их пересечения будет новая таблица с той же схе­мой, содержащая кортежи только тех сотрудников, которые имеют вклады в банке «НАДЕЖНЫЙ», что иллюстрируется примером, приведенным на рис. 2.5;

• операция ВЫЧИТАНИЕ — выполняется также над дву­мя односхемными таблицами-отношениями. Результатом явля­ется таблица-отношение, построенная по той же схеме и со­держащая только те кортежи первой таблицы-отношения, ко­торых нет в составе кортежей второй таблицы-отношения. Результатом операции вычитания над таблицами в предыдущем примере будет новая таблица стой же схемой, содержащая кор­тежи только тех сотрудников, которые не имеют вкладов в бан­ке «НАДЕЖНЫЙ»;


^ Рис. 2.5. Пример операции ПЕРЕСЕЧЕНИЕ

• операция ПРОИЗВЕДЕНИЕ (ДЕКАРТОВО) — выпол­няется над таблицами-отношениями с разными схемами. Резуль­татом является таблица-отношение, схема которой включает все поля первой и все поля второй таблицы. Кортежи (строки-за­писи) результирующей таблицы образуются путем последова­тельного сцепления каждого кортежа первой таблицы-отноше­ния к каждому кортежу второй таблицы-отношения. Количе­ство кортежей результирующей таблицы соответственно равно произведению количества кортежей первой таблицы на коли­чество кортежей второй таблицы. На рис. 2.6 иллюстрируется пример операции произведения;

• операция ВЫБОРКА (горизонтальное подмножество) — выполняется над одной таблицей-отношением. Результатом яв­ляется таблица-отношение той же схемы, содержащая подмно­жество кортежей исходной таблицы-отношения, удовлетворя­ющих условию выборки;



^ Рис. 2.6. Пример операции произведения

• операция ПРОЕКЦИЯ (ВЕРТИКАЛЬНОЕ ПОДМНО­ЖЕСТВО) —также выполняется над одной таблицей-отноше­нием. Результатом является новая таблица-отношение, схема ко­торой содержит только некоторое подмножество полей исход­ной таблицы-отношения. Каждому кортежу исходной таблицы соответствует кортеж итоговой таблицы, образованный соот­ветствующими значениями по полям, вошедшим в итоговую таблицу-отношение. При этом в итоговой таблице кортежи-дуб­ликаты устраняются и поэтому мощность итоговой таблицы (ко­личество кортежей) может быть равна или меньше исходной. На рис. 2.7 приведен пример операции проекции;



Рис. 2.7. Пример операции проекции

• операция СОЕДИНЕНИЕ — выполняется над таблица­ми-отношениями с разными схемами. В каждой таблице-отно­шении выделяется поле, по которому будет осуществляться со­единение. При этом оба поля должны быть определены на од­ном и том же домене. Схема итоговой таблицы-отношения включает все поля первой таблицы и все поля второй таблицы (как в произведении). Кортежи итоговой таблицы-отношения образуются путем сцепления каждого кортежа из первой таб­лицы с теми кортежами второй таблицы, значения которых по полю сцепления одинаковы. На рис. 2.8 приведен пример опе­рации соединения;



Рис. 2.8. Пример операции соединения

• операция ДЕЛЕНИЕ — выполняется над двумя табли­цами-отношениями, первая из которых называется делимым, а вторая делителем. При этом схема таблицы-делителя должна состоять из подмножества полей таблицы делимого. Схема ито­говой таблицы-отношения содержит только те поля таблицы-делимого, которых нет во второй таблице-делителе. Кортежи итоговой таблицы-отношения образуются на основе кортежей первой таблицы (делимого) по значениям полей, вошедших в итоговую таблицу при условии того, что если взять произведе­ние (декартово) итоговой таблицы-отношения и второй табли­цы-отношения (делителя), то образуются соответствующие кор­тежи первой таблицы (делимого). На рис. 2.9 приведен пример операции деления.



Рис. 2.9. Пример операции деления

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

Реляционная модель организации данных сыграла трудно переоценимую роль в развитии программного обеспечения АИС. Именно реляционные СУБД были тем программным ин­струментарием, на основе которого происходила массовая ин­форматизация малых и средних предприятий и организаций в 80-х годах. В начале 90-х годов реляционные СУБД стали фак­тическим стандартом для построения самых разнообразных информационных систем. Вместе с тем проявились и определен­ные ограничения реляционной модели, которые не позволяют адекватно описывать такие сложные предметные области, как конструирование, производственные технологические процес­сы и др. Поэтому в 90-х годах были предприняты попытки со­здания новых усовершенствованных моделей организации дан­ных в виде постреляционных СУБД и объектно-ориентирован­ных СУБД. К сожалению, до сей поры ни одна из попыток создания и описания новых моделей описания данных не стандартизована, и количество коммерческих СУБД, основан­ных на новых моделях данных, исчисляется единицами.
1   2   3   4   5   6   7   8   9   ...   23



Скачать файл (3043.3 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации