Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Что из себя представляет реляционная модель организации данных

Поиск

В реляционной модели объекты-сущности инфологической схемы предметной области АИС представляются плоски­ми таблицами данных. Столбцы таблицы, называемые полями базы данных, соответствуют атрибутам объектов-сущностей инфологической схемы предметной области. Множество атомар­ных значений атрибута называется доменом. Так доменом для поля «Имя» является множество всех возможных имен. Различ­ные атрибуты могут быть определены на одном и том же доме­не — например, атрибуты «Год поступления» (в вуз) и «Год окон­чания» определены на одном и том же домене, являющемся пе­речнем дат определенного диапазона. Строки таблицы, представляющие собой различные соче­тания значений полей из доменов, называются кортежами (в обиходе просто записями) базы данных и соответствуют экземплярам объектов-сущностей инфологической схемы пред­метной области. Считается, что сильной стороной реляционных баз данных является развитая математическая теория, лежащая в их осно­ве—реляционная алгебра. Само слово «реляционная» проис­ходит от англ. 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-х годах были предприняты попытки со­здания новых усовершенствованных моделей организации дан­ных в виде постреляционных СУБД и объектно-ориентирован­ных СУБД. К сожалению, до сей поры ни одна из попыток создания и описания новых моделей описания данных не стандартизована, и количество коммерческих СУБД, основан­ных на новых моделях данных, исчисляется единицами.

 



Поделиться:


Последнее изменение этой страницы: 2016-06-22; просмотров: 385; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.2.111 (0.012 с.)