Проектирование реляционных баз данных. Рассмотрим пример, включающий два неперекрывающихся потенциальных ключа


Правительство Российской Федерации

Национальный исследовательский университет

ВЫСШАЯ ШКОЛА ЭКОНОМИКИ

ПЕРМСКИЙ ФИЛИАЛ

Кафедра информационных технологий в бизнесе

Информационные технологии в офисной работе

Разработка информационной системы предприятия с помощью системы управления базами данных Access 2007

Учебно-методическое пособие

Пермь 2011

Информационные технологии в офисной работе. Разработка информационной системы предприятия с помощью системы управления базами данных Access 2007. Учебно-методическое пособие. НИУ ВШЭ ПФ, 2011 г., 40 ст.

Составители: Викентьева Ольга Леонидовна, Лебедев Валерий Викторович.

Учебно-методическое пособие составлено в соответствии с Государственным образовательным стандартом, учебной программой и концепцией дисциплины «Информационные технологии в экономике». Пособие предназначено для студентов и преподавателей ПФ ГУ ВШЭ и содержит серию практических занятий, раскрывающих возможности современных информационных технологий по созданию систем хранении, поиска и представления данных.

Рецензент: доцент кафедры информатики Пермского регионального института педагогических информационных технологий, кандидат педагогических наук, член-корреспондент Академии информатизации образования Кушев В.О.

Занятие 1. Проектирование реляционной базы данных

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

Пользователь должен принимать участие в процессе проектирования БД, так как только он может определить, какие данные необходимы для работы, указать связи, существующие между этими данными и обратить внимание на тонкости их обработки.

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



Внешних описаний данных, хранящихся в БД, следовательно, может быть множество. Их необходимо свести в единое концептуальное представление , описывающее данные на уровне всей информационной системы в целом. Представление этих данных на внутреннем уровне определяется способом их хранения во внешней памяти.

Рассмотрим пример БД информационной системы фирмы, занимающейся поставками товаров в магазины города, причем будем учитывать только информационные потребности двух сотрудников фирмы (в упрощенной форме – иначе пример был бы слишком громоздким).


Рисунок 1. Формирование представления данных

Сотрудник, занимающийся связями с клиентами, для выполнения своих обязанностей нуждаются в информации, представленной на рис.2.

Для сотрудника, который работает с платежными формами, необходима другая информация о клиентах (рис.3).

Данные, используемые отдельными специалистами, находятся в единой информационной системе предприятия, в общей для них базе данных. Поэтому внешние представления отдельных пользователей должны быть интегрированы в концептуальном представлении, цель описания данных на концептуальном уровне – создание такого формального представления о данных, чтобы любое внешнее представление являлось его подмножеством. В процессе интеграции внешних представлений устраняются двусмысленности и противоречия в информационных потребностях отдельных пользователей. Концептуальное описание, представляющее всю БД, должно быть единственным.

Рисунок 2. Данные для первого сотрудника

Рисунок 3. Данные для второго сотрудника

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

Тогда концептуальное описание определяется следующей информацией

Данные, описанные концептуальной схемой, должны быть записаны во внешней памяти, на ВЗУ, предназначенных для хранения информации, находящейся в БД. Внутреннее описание данных характеризует способ хранения данных во внешней памяти.

Правила описания данных определяются выбранной моделью данных данном случае рассматривается только реляционная модель – самая распространенная на настоящее время).

Если взять описание данных о клиентах фирмы, занимающейся поставками товаров в магазины города, из приведенного выше примера, представленное на рис 4, то данные, описанные этой таблицей не могут в таком виде быть представлены в реляционной БД, так как не все значения являются атомарными (компоненты строк «Владелец» и «Адрес» состоят из нескольких значений, т.е. значения этих атрибутов заменяются другими отношениями, расшифровываются ими; в отношении, описывающем владельца, поля «Адрес» и «Паспорт» также не являются атомарными, следовательно строится иерархия отношений).

При проектировании БД могут быть приняты различные решения, но существуют базовые требования, которые должны учитываться в процессе работы: множество отношений должно обеспечивать минимальную избыточность представления информации; манипулирование данными, корректировка отношений не должна приводить к нарушению целостности данных, двусмысленности и потере информации; перестройка набора отношений при добавлении в БД новых атрибутов должна быть минимальной.

Рисунок 4. Общее представление данных

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

В плохо спроектированной БД вся информация может храниться в одной таблице. Для описанного выше примера такая таблица могла бы содержать следующие столбцы:

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

Какие недостатки имеет такое представление?

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

Требование атомарности выполнено – составные столбцы «Адрес» и «Владелец» (а для владельца «Адрес» и «Паспорт») разбиты на компоненты, которые включены в общую таблицу. Но у одного магазина может быть несколько владельцев, а один человек может владеть несколькими магазинами. Это приводит к тому, что в таблицу нужно будет включать все строки, представляющие «комбинации» магазинов и их владельцев, т.е. в различных строках будут повторяться группы данных (несколько раз будут повторяться данные о магазине – для каждого его владельца, а данные владельца будут повторяться для каждого его магазина). Такое представление данных ведет к огромной избыточности, к тому, что неэффективно будет расходоваться память на ВЗУ. Кроме того, дублирование информации может привести к проблемам при ее обработке: чтобы внести изменения в информацию о магазине (например, если у него изменится счет в банке) нужно изменить эти данные в нескольких записях, соответствующих разным владельцам.

При определении того, какие таблицы должны входить в БД, и того, какая информация в них должна храниться, следует учитывать следующее правило: каждая таблица описывает объект , существующий самостоятельно, обладающий собственными свойствами. Построение БД следует начать с создания представления каждого объекта в виде строк, содержащих его атрибуты, в соответствующей таблице; определения моделей взаимосвязи объектов. В рассматриваемом примере в БД фактически должна храниться информация об объектах двух типов: о магазинах и об их владельцах. Эту информацию следует поместить в две различные таблицы («Магазины» и «Владельцы»), имеющие следующие столбцы:

«Магазины»

«Владельцы»

Каждая строка таблицы «Магазины» будет описывать экземпляр соответствующего объекта (один магазин). А в каждой строке таблицы «Владельцы» будет находиться информация об одном владельце магазина.

При работе с информацией, хранящейся в БД, СУБД должна уметь отличать строки друг от друга. Атрибут или набор атрибутов, однозначно определяющий строку, – это ее первичный ключ.

Что можно выбрать в качестве первичного ключа для описанных выше таблиц?

Ключом отношения является такое множество атрибутов, что каждое сочетание их значений встречается только в одной строке отношения и никакое подмножество этих атрибутов этим свойством не обладает. Таким образом, ключ однозначно определяет строку, позволяет выбрать ее из всего множества строк отношения.

Определим ключ для таблицы «Магазины».

Если выбрать в качестве ключа атрибут «Название магазина», будет ли он удовлетворять указанному требованию? Нет, если в одном городе может быть несколько магазинов с одинаковыми названиями, расположенных в разных частях города. Чтобы гарантировать однозначность следует дополнить название магазина его адресом (по названию магазина и его адресу можно однозначно выбрать нужную строку в таблице), тогда ключ отношения будет составным.

Простым ключом, идентифицирующим нужный магазин, может быть номер расчетного счета в банке (если у каждого магазина единственный номер расчетного счета и каждый расчетный счет принадлежит одному магазину). Ключом может быть также ИНН (идентификационный номер) магазина.

Выберем в качестве первичного ключа атрибут «ИНН». Далее этот атрибут будет использоваться для организации связей между таблицами «Магазины» и «Владельцы» (эти связи должны отражать реальные взаимосвязи между магазинами и их владельцами).

Определимся с ключами и для таблицы «Владельцы».

Если бы можно быль предположить, что среди владельцев магазинов нет однофамильцев, то в качестве ключа можно было бы выбрать атрибут «Фамилия» рассматриваемого отношения. Но, к сожалению, владельцы магазинов могут быть не только однофамильцами, но и полными тесками (маловероятно, но вполне возможно). Поэтому в качестве ключа можно выбрать паспортные данные владельца, т.е. использовать для его идентификации составной ключ, включающий атрибуты «Серия» и «Номер». Этот ключ будем считать первичным. С его помощью установим связь между владельцем и его магазинами.

Первичные ключи обеспечат не только однозначность при поиске информации (они являются уникальными), но и позволят связать данные, находящиеся в двух таблицах.

Определим тип связи между таблицами «Магазины» и «Владельцы».

Если предположить, что один человек может владеть несколькими магазинами, но у каждого магазина есть единственный владелец, то следовало бы установить между этими таблицами связь «один-ко-многим». Для организации такой связи в БД можно было бы в строку таблицы «Магазины», содержащую информацию о магазине, включить внешний ключ , идентифицирующий владельца магазина, т.е. данные его паспорта – атрибуты «Серия» и «Номер». Организовать связь, включив ключ «ИНН», идентифицирующий магазины, в качестве внешнего ключа в таблицу «Владельцы», в данном случае нельзя, так как в этом случае информацию о владельце пришлось бы дублировать для каждого магазина.

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

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

«Магазины-Владельцы»

ИНН Серия Номер

Эта таблица позволит по атрибуту «ИНН» магазина найти всех его владельцев (через данные их паспортов), а по составному атрибуту, включающему атрибуты «Серия» и «Номер» паспорта владельца найти в БД все магазины, которыми он владеет.

Для этого следует, создав таблицу «Магазины-Владельцы», установить связи «один-ко-многим» между таблицей «Магазины» и таблицей «Магазины-Владельцы», а также между таблицами «Владельцы» и «Магазины-Владельцы»:

ИНН Серия Номер

«Магазины-Владельцы»

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

Для удобства пользователей, ускорения поиска СУБД поддерживают возможность поиска не только по уникальным ключам. Например, найти в таблице можно все магазины с одинаковыми названиями или все магазины, принадлежащие одному владельцу.

Нормализация данных привела к разделению таблиц, выделению отношений «первичный ключ–внешний ключ» в меньшие таблицы. Результатом нормализации является уменьшение избыточности данных – уже не нужно дублировать данные о каждом владельце для каждого магазина.

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

Отношение, не соответствующее второй нормальной форме, характеризуется избыточностью хранимых данных.

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

Например: в БД необходимо хранить информацию о товарах, которые поставлены в магазины. Эта информация включает атрибуты «Наименование», «Код» и «Цена» товара, а также «Количество» поставленного товара. Если включить эту информацию в таблицу «Поставки» в следующем представлении:

«Поставки»

(здесь «ИНН» идентифицирует магазин, в который выполнена поставка (это внешний ключ, используемый для создания связи «один-ко-многим» таблицы «Магазины» с данной таблицей), «Наименование» – название товара, «Код» – его уникальный код (товары с разными характеристиками и, следовательно, разными ценами могут иметь одно наименование, но коды будут разными), «Цена» – отпускная цена товара, «Количество» – количество поставленного товара), то может возникнуть избыточность.

Для определения строки, представляющей поставку товара в конкретный магазин, можно задать составной ключ, включающий атрибуты «ИНН» и «Код». Эта информация дает возможность определить цену товара и его количество, поставленное в данный магазин, а также вычислить общую стоимость товара. Если предположить, что товар поставляется во все магазины по одной и той же цене, и цена не изменяется со временем, то неключевой атрибут «Цена» определяется не только составным ключом «ИНН» + «Код», но и его частью – атрибутом «Код». Таким образом, одна и та же цена повторяется во всех строках таблицы, где содержится информация о поставке одного и того же товара. Это ведет к избыточности. Наименование товара также определяется его кодом. Поэтому информацию, относящуюся только к товару и не зависящую от магазина, можно вынести в отдельную таблицу:

Здесь ключевое поле «Код» позволит связать данные, находящиеся в таблице «Поставки», с данными из таблицы «Товары»

Таким образом, приведение ко второй нормальной форме ликвидировало избыточность путем выделения новых таблиц: таблица «Поставки» разбита на две таблицы «Поставки» и «Товары», между которыми установлена связь.

Третья нормальная форма еще больше повышает требования: отношение соответствует второй нормальной форме и среди его атрибутов отсутствуют транзитивные функциональные зависимости (ни один неключевой столбец не должен зависеть от другого неключевого столбца, он может зависеть только от первичного ключа).

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

Избавиться от избыточности можно было бы, разбив таблицу «Товары» на две таблицы (одна включала бы атрибуты «Код» и «Наименование», а вторая «Наименование» и «Цена»).

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

Четвертая нормальная форма запрещает независимые отношения типа «один ко многим» между ключевыми и неключевыми столбцами. Проще говоря, в одну таблицу нельзя помещать разнородную информацию, т.е. данные, между которыми нет непосредственной связи.

Это правило можно рассмотреть на следующем примере. Сотрудник, занимающийся связями с клиентами, для выполнения своих обязанностей собирается использовать информацию о членах семей владельцев магазинов. Эту информацию не следует включать в таблицу «Владельцы», так как трудно определить, сколько места нужно резервировать в строках таблицы, соответствующих конкретным людям, для хранения данных о их семейном положении, – один может быть одиноким, а другой – многодетным отцом. Информацию о членах семьи нужно вынести в отдельную таблицу, каждая строка которой будет содержать информацию об одном члене семьи, включив в нее внешний ключ, идентифицирующий владельца магазина, для организации связи с таблицей «Владельцы».

Пятая нормальная форма обычно завершает процесс нормализации. На этом этапе все таблицы разбиваются на минимальные части для устранения в них избыточности. Каждый фрагмент неключевых данных в таблицах должен встречаться только один раз. Это снимает проблемы с обновлением информации в БД: все изменения неключевой информации должны вноситься только один раз, что обеспечивает возможность управления целостностью данных.

Процесс проектирования БД является очень важным этапом в разработке информационных систем. Именно качество проектирования во многом определяет эффективность использования БД.

В настоящее время широко используются специальные средства, облегчающие процесс разработки информационных систем (CASE-средства – Computer-Aided Software/System Engineering).

Вопросы для самоконтроля :

1. Что представляет собой база данных?

2. Что такое внешнее представление данных?

3. В чем сущность концептуального представления данных?

4. Что такое модель данных?

5. Что такое нормализация?

6. Что такое ключ отношения?

7. Какой ключ называется внешним?

8. Какие связи могут быть организованы в базе данных?

9. В чем сущность каждой из пяти нормальных форм?

Задание для самостоятельной работы:

Спроектировать базы данных некоторой фирмы, занимающейся обслуживанием клиентов. База данных нужна трем сотрудникам фирмы. Первый из них занимается учетом услуг, оказываемых фирмой, и нуждается в следующей информации:

Второй сотрудник собирает сведения об исполнителях и его интересует:

Третий сотрудник работает с клиентами и ему важно знать.

Реляционная модель данных (РМД) некоторой предметной области представляет собой набор отношений, изменяющихся во времени. При создании информационной системы совокупность отношений позволяет хранить данные об объектах предметной области и моделировать связи между ними.

Реляционная база данных представляет собой хранилище данных, содержащее набор двухмерных таблиц, данные в таблицах должны удовлетворять следующим принципам.

1. Значения атрибутов (столбец, поле) должны быть атомарными (иными словами, каждое значение, содержащееся на пересечении строки и столбца, должно быть не расчленяемым на несколько значений).

2. Значения каждого поля должны принадлежать к одному и тому же типу.

3. Каждая запись в таблице уникальна.

4. Каждое поле имеет Уникальное имя.

5. Последовательность полей и записей в таблице не существенна

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

Сущность есть объект любой природы, данные о котором хранятся в базе данных. Данные о сущности хранятся в отношении.

Атрибуты представляют собой свойства, характеризующие сущность. В Структуре таблицы каждый атрибут именуется и ему соответствует заголовок некоторого столбца таблицы.

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

Ключи обычно используют для достижения следующих целей :

Исключения дублирования значений в ключевых полях;

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

Организации связывания таблиц.

Важным является понятие внешнего ключа. Внешний ключ можно определить как множество атрибутов одного отношения R2, значения которых должны совпадать со значениями возможного ключа другого отношения R1 .

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

Проектирование баз данных информационных систем является достаточно трудоемкой задачей. Оно осуществляется на основе формализации структуры и процессов предметной области, сведения о которой предполагается хранить в БД. Различают концептуальное и схемно-структурное проектирование.

Концептуальное проектирование БД ИС является в значительной степени эвристическим процессом. Адекватность построенной в его рамках инфологической модели предметной области проверяется опытным путем, в процессе функционирования ИС.


Перечислим этапы концептуального проектирования :

Изучение предметной области для формирования общего представления о ней;

Выделение и анализ функций и задач разрабатываемой ИС;

Определение основных объектов-сущностей предметной области и отношений между ними;

Формализованное представление предметной области.

При проектировании схемы реляционной БД можно выделить следующие процедуры :

Определение перечня таблиц и связей между ними;

Определение перечня полей, типов полей, ключевых полей каждой таблицы (схемы таблицы), установление связей между таблицами через внешние ключи;

Установление индексирования для полей в таблицах;

Разработка списков (словарей) для полей с перечислительными данными;

Установление ограничений целостности для таблиц и связей;

Нормализация таблиц, корректировка перечня таблиц и связей.

Проектирование БД осуществляется на физическом и логическом уровнях. Проектирование на физическом уровне реализуется средствами СУБд и зачастую автоматизировано.

Логическое проектирование заключается в определении числа и структуры таблиц, разработке запросов к БД, отчетных документов, создании форм для ввода и редактирования данных в БД и т. д.

Одной из важнейших задач логического проектирования БД является структуризация данных. Выделяют следующие подходы к проектированию структур данных :

Объединение информации об объектах-сущностях в рамках одной таблицы (одного отношения) с последующей декомпозицией на несколько взаимосвязанных таблиц на основе процедуры нормализации отношений;

Формулирование знаний о системе (определение типов исходных данных и взаимосвязей) и требований к обработке данных, получение с помощью CASE-системы готовой схемы БД или даже готовой прикладной информационной системы;

Осуществление системного анализа и разработка структурных моделей.

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

хорошую работу на сайт">

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Контрольная работа

Проектирование реляционных баз данных

  • Нормализация отношений
  • Функциональные зависимости
  • Нормальная форма Бойса-Кодда
  • Литература

Проектирование реляционных баз данных

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

В процессе проектирования баз данных могут возникнуть следующие проблемы:

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

Аномалии включения - возможна ситуация, когда в базу нельзя ввести данные, прежде чем не будут получены и введены некоторые дополнительные сведения.

Аномалии удаления - обратная проблема может возникнуть при удалении некоторых данных (возможна потеря полезной информации).

Не минимизировано количество Null-значений. Так же как избыточность, неопределенные значения являются источниками потенциальных проблем в реляционных базах данных, так как невозможно определить, что они означают. Поэтому их использование желательно свести к минимуму.

Первые три проблемы разрешаются в процессе нормализации отношений.

реляционная база функциональная зависимость

Нормализация отношений

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

Каждая таблица в реляционной базе данных удовлетворяет условию, в соответствии с которым в позиции на пересечении каждой строки и столбца таблицы всегда находится единственное атомарное значение, и никогда не может быть множества таких значений. Любая таблица, удовлетворяющая этому условию, называется нормализованной . Фактически, ненормализованные таблицы, то есть таблицы, содержащие повторяющиеся группы, даже не рассматриваются в реляционной базе данных.

Нормализованная таблица соответствует первой нормальной форме , сокращенно 1НФ. Таким образом, "нормализованная" и "находящаяся в 1НФ" означают для таблицы одно и то же. Однако на практике термин "нормализованная" часто используется в более узком смысле - "полностью нормализованная", который означает, что в проекте не нарушаются никакие принципы нормализации.

Теперь в дополнение к 1НФ можно определить дальнейшие уровни нормализации - вторую нормальную форму (2НФ), третью нормальную форму (3НФ) и т.д. Считается, что таблица находится во 2НФ, если она находится в 1НФ и удовлетворяет, кроме того, некоторому дополнительному условию, суть которого будет рассмотрена ниже. Таблица находится в 3НФ, если она находится в 2НФ и, помимо этого, удовлетворяет другому дополнительному условию и т.д.

Таким образом, каждая нормальная форма является в некотором смысле более ограниченной, но и более желательной, чем предшествующая. Это связано с тем, что (n+1) - я нормальная форма не обладает некоторыми непривлекательными особенностями, свойственными n-й нормальной форме. Общий смысл дополнительного условия, налагаемого на (n+1) - ю нормальную форму по отношению к n-й нормальной форме, состоит в исключении этих непривлекательных особенностей.

Процедура нормализации отношений обратима. Например, множество отношений, находящихся в 3НФ, можно преобразовать в отношения, находящиеся в 2НФ. Это очень важное свойство нормализации означает, что в процессе нормализации информация не утрачивается.

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

Функциональные зависимости

Пусть X и Y - произвольные подмножества множества атрибутов отношения R. Y функционально зависит от X тогда и только тогда, когда каждое значение множества X связано в точности с одним значением множества Y. Обозначение: XY (читается как "X функционально определяет Y"). Левая и правая части символической записи называются детерминантом и зависимой частью соответственно.

Рис. 1. Таблица поставок ПОС

Иначе говоря, если два кортежа отношения R совпадают по значению X, то они также совпадают и по значению Y. Для пояснения рассмотрим приведенную на рис. 1 несколько измененную версию таблицы поставок, изображенной на рис. 2.

Все кортежи отношения ПОС с одинаковым значением атрибута П№ имеют одинаковые значения атрибута Гор. Значит, атрибуты Гор функционально зависят от атрибутов П№: {П№}{Гор}. Более того, в этом отношении присутствуют и другие постоянные функциональные зависимости: {П№, Д№}{Кол}, {П№, Д№}{Гор}, {П№, Д№}{Гор, Кол}, {П№, Д№}{П№}, {П№, Д№}{П№, Д№, Гор, Кол}, а также зависимости, которые являются функциональными в любой данный момент, но не все время, например, {П№}{Кол}.

Отметим, что если X является потенциальным ключом отношения R, то все атрибуты Y отношения R должны быть функционально зависимы от X (это следствие из определения потенциального ключа). Фактически, если отношение R удовлетворяет функциональной зависимости АВ и А не является потенциальным ключом, то R будет характеризоваться некоторой избыточностью . Например, в отношении ПОС сведения о том, что каждый поставщик находится в определенном городе будут повторяться много раз.

Функциональные зависимости являются ограничениями целостности, поэтому при каждом обновлении базы данных они должны быть проверены. Очевидным способом сокращения множества функциональных зависимостей является исключение тривиальных зависимостей , т.е. таких, которые не могут не выполняться. Например, {П№, Д№}{П№}. Функциональная зависимость является тривиальной тогда и только тогда, когда правая часть символьной записи является подмножеством левой части. Такие зависимости не представляют никакого интереса с практической точки зрения.

При анализе отношений особая роль отводится неприводимым зависимостям . Атрибут В неприводимо зависим от составного атрибута А, если он функционально зависит от А и не зависит функционально от любого подмножества атрибута А. В ранних публикациях вместо термина неприводимая зависимость использовался термин полная функциональная зависимость .

Функциональные зависимости могут быть изображены при помощи диаграмм. Для базы данных поставщиков и деталей (рис.1) диаграмма функциональных зависимостей изображена на рис.2.

Каждая стрелка на диаграмме начинается с первичного ключа соответствующего отношения. На диаграмме возможны и другие стрелки. В таком случае процедуру нормализации можно неформально охарактеризовать как процедуру исключения стрелок, которые начинаются не на первичном ключе.

Нормальные формы, обоснованные функциональными зависимостями

Мы упоминали о первой нормальной форме (1НФ). Приведем более строгое ее определение, а также определения других нормальных форм.

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

Например, этим требованиям не удовлетворяет таблица, изображенная на рис.3 (данные в поле Д№ не атомарные):

Рис. 3. Пример таблицы, которая не является реляционным отношением

Такие таблицы даже не рассматриваются в реляционных моделях.

Если мы разрабатываем реляционную базу данных, то на первом этапе может быть создана таблица, объединяющая все рассматриваемые данные, например, Поставщики, Детали, Поставки. Таблица на рис.3 представляет собой корректное реляционное отношение. Его называют универсальным отношением проектируемой базы данных. В одно универсальное отношение включаются все представляющие интерес атрибуты и оно может содержать все данные, которые предполагается размещать в базе данных в будущем. Для малых баз данных универсальное отношение может использоваться в качестве отправной точки при их проектировании. Первичным ключом таблицы является комбинация полей П№ и Д№. Эта таблица удовлетворяет всем требованиям 1НФ.

Дозиметр

Радиометр

Дозиметр

Дозиметр

Дозиметр

Рис. 4. Отношение в первой нормальной форме

Диаграмма функциональных зависимостей такого отношения имеет вид, изображенный на рис. 4 (будем предполагать, что статус поставщика определяется городом).

Рассматриваемое отношение, которое находится в 1НФ, обладает структурой, которая по некоторым причинам не совсем желательна. Например, очевидна избыточность информации. Это приводит не только к увеличению размера базы данных, но и к разным аномалиям:

Вставка (Insert). Нельзя вставить данные о поставщике (П5), не указав деталь (Null-значение в ключевом поле недопустимо).

Удаление (Delete). При удалении некоторого кортежа приходится удалять слишком много другой информации (удаление информации о поставке удаляет информацию о поставщике).

Обновление (Update). Избыточная информация может привести к несовместимым результатам. Если поставщик П1 переехал в другой город, а обновление сделано не во всех кортежах, то база данных будет содержать противоречивую информацию.

Эти аномалии могут быть устранены путем приведения отношения ко второй нормальной форме, разбив его на два.

Таблица находится во второй нормальной форме (2НФ), если она удовлетворяет определению 1НФ и все ее поля, не входящие в первичный ключ, связаны неприводимой зависимостью с первичным ключом (или находятся в полной функциональной зависимости с первичным ключом).

Функциональные зависимости отношений нашей базы данных, приведенных ко 2НФ, показаны на рис. 4, а соответствующие таблицы - на рис. 5.

Сейчас в базу данных можно вводить сведения о поставщиках без сведений об их товаре, при удалении сведений о товаре остаются остальные данные (о поставщиках, например), сведения о городе встречаются один раз и это снимает проблему, связанную с избыточностью информации. Т.е., благодаря декомпозиции мы избавились от многих проблем, присутствовавших в отношении в 1НФ. В то же время, отношения, приведенные на рис.5, могут быть объединены и тогда мы вернемся к отношению, изображенному на рис.3 - значит декомпозиция проведена без потери данных.

Таким образом, первым этапом процедуры нормализации отношения является создание проекций для исключения " приводимых " функциональных зависимостей .

Рис. 7. Отношения в 2НФ

Однако структура отношений, показанных на рис.7, может создать некоторые проблемы, связанные с отношением Поставщик, в котором неключевые атрибуты не являются взаимно независимыми. Зависимость атрибута Статус от атрибута П№ является функциональной и неприводимой, но эта зависимость также транзитивна через атрибут Город - каждое значение П№ определяет значение Город, а каждое значение Город определяет значение Статус. Но если выполняются зависимости АВ и ВС, то выполняется также зависимость АС. Транзитивные зависимости могут опять привести к аномалиям обновления:

Вставка - нельзя включить данные о некотором городе и его статусе, пока в нем нет поставщика.

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

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

Проблема решается приведением отношения Поставщик к третьей нормальной форме через его декомпозицию:

Эта процедура исключает транзитивную зависимость и разрешает все трудности.

Отношение находится в третьей нормальной форме (3НФ ) тогда и только тогда, когда оно находится в 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа .

Другими словами: таблица находится в третьей нормальной форме (3НФ ), если она находится в 2НФ и ни одно из ее неключевых полей не зависит функционально от любого другого неключевого поля .

Таким образом, вторым этапом нормализации является создание проекций для исключения транзитивных зависимостей .

В процессе выполнения процедуры нормализации часто возникают ситуации, когда отношение может быть подвергнуто операции декомпозиции несколькими способами. Например, отношение Поставщик (рис.7) с функциональными зависимостями П№Город и ГородСтатус и, следовательно, транзитивной зависимостью П№ Статус. Возможны варианты декомпозиции этого отношения на две проекции, находящиеся в 3НФ:

А: (П№, Город) и (Город, Статус) (так было предложено ранее) и В: (П№, Город) и (П№, Статус)

Третий вариант декомпозиции на проекции (П№, Статус) и (Город, Статус) не может быть применен, поскольку выполняется с потерей информации - несколько городов могут иметь одинаковый статус, тогда будет потеряна информация о городе, где находится поставщик.

По некоторым причинам декомпозиция В менее желательна, чем декомпозиция А. Например, после выполнения декомпозиции В невозможно вставить информацию о том, что некоторый город имеет некоторый статус, без указания поставщика из этого города.

В декомпозиции А обе проекции независимы друг от друга в том смысле, что обновления в каждой из проекций могут быть выполнены совершенно независимо друг от друга. В декомпозиции В обновление любой из двух проекций должно контролироваться, чтобы не нарушить исходную зависимость ГородСтатус. Т.е., проекции декомпозиции В не являются независимыми друг от друга.

Концепция независимости проекций обеспечивает критерий выбора одной из нескольких возможных декомпозиций. Проекции R1 и R2 отношения R независимы в упомянутом выше смысле тогда и только тогда, когда

Каждая функциональная зависимость в отношении R является логическим следствием функциональных зависимостей в проекциях R1 и R2;

Общие атрибуты проекций R1 и R2 образуют потенциальный ключ, по крайней мере, для одной из них.

В рассматриваемом примере в декомпозиции А две проекции независимы, поскольку их общий атрибут Город является потенциальным ключом для второй проекции и каждая функциональная зависимость исходного отношения сохраняется в проекциях. Наоборот, в декомпозиции В две проекции не являются независимыми, т.к. зависимость ГородСтатус не может быть получена из функциональных зависимостей этих проекций, хотя их общий атрибут П№ является потенциальным ключом для обеих проекций.

Идея нормализации с декомпозицией на независимые проекции предложена Риссаненом (Rissanen) и называется декомпозицией с сохранением зависимости .

Нормальная форма Бойса-Кодда

До сих пор мы предполагали для простоты, что каждое отношение имеет только один потенциальный ключ - первичный ключ. Данное выше определение 3НФ не совсем подходит, если

- отношение имеет два или более потенциальных ключа;

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

Поэтому определение 3НФ было дополнено нормальной формой Бойса-Кодда (Boyce-Codd) - НФБК . Его можно сформулировать так:

Отношение находится в нормальной форме Бойса-Кодда тогда и только тогда, когда детерминанты являются потенциальными ключами .

Другими словами, на диаграмме функциональных зависимостей стрелки должны начинаться только с потенциальных ключей.

Комбинация таких условий не часто встречается на практике, поэтому для отношений без таких условий 3НФ и НФБК эквиваленты.

Дадим еще одно определение: Таблица находится в нормальной форме Бойса-Кодда (НФБК ), тогда и только тогда, когда любая функциональная зависимость между ее полями сводится к неприводимой функциональной зависимости от потенционального ключа .

Рассмотрим пример, включающий два неперекрывающихся потенциальных ключа:

Поставщик (П№, Имя_П, Статус, Город),

где атрибуты П№ и Имя_П являются потенциальными ключами, а атрибуты Статус и Город совершенно независимы. Диаграмма функциональных зависимостей изображена на рис. 8. Это отношение находится в НФБК. Здесь все детерминанты являются потенциальными ключами, а все стрелки начинаются с потенциальных ключей.

Приведем примеры отношений, в которых потенциальные ключи перекрываются.

Первый пример: Отношение Поставки (П№, Имя_П, Д№, Кол-во).

В этом отношении содержится некоторая избыточность, которая обуславливает аномалии обновления. Потенциальными ключами здесь являются {П№, Д№} и {Имя_П, Д№}, а П№ и Имя_П взаимно определяют друг друга. Это отношение не находится во второй нормальной форме и может быть разделено на две проекции (П№, Имя_П) и (П№, Д№, Кол-во) для получения неприводимых функциональных зависимостей. Но такую же декомпозицию можно предложить исходя из того, что отношение не находится в НФБК, т.к. содержит два детерминанта, которые не являются потенциальными ключами (П№ и Имя_П - детерминанты, поскольку определяют друг друга):

Поставщик (П№, Имя_П) и Поставки 1 (П№, Д№, Кол-во).

Второй пример: Отношение СДП (С, Д, П),

где атрибуты обозначают Студенты, Дисциплины и Преподаватели. Кортеж отношения СДП означает, что некоторый студент С обучается некоторой дисциплине Д у некоторого преподавателя П. При этом есть ограничения:

- Каждый студент изучает данный предмет у одного преподавателя;

- Каждый преподаватель ведет только один предмет (но каждый предмет может преподаваться несколькими преподавателями).

Из первого ограничения следует зависимость {С, Д}П, из второго - ПД. На рис.9 показан пример таблицы и диаграммы функциональных зависимостей такого отношения. В рассматриваемом примере есть два перекрывающихся потенциальных ключа - {С, Д} и {С, П}. Отношение находится в 3НФ (присутствующая здесь транзитивная зависимость касается ключевого атрибута), но не находится в НФБК и характеризуется некоторыми аномалиями обновления. Например, если удалить информацию о том, что Олег изучает физику, то мы потеряем информацию о том, что Петров преподает физику. Эта проблема вызвана тем, что П является детерминантом, но не является потенциальным ключом. Для решения этой проблемы исходное отношение надо разбить на две проекции: СП и ПД.

Таким образом, концепция НФБК позволяет избавиться от некоторых проблем, присущих отношениям в 3НФ. Определение НФБК проще определения 3НФ, т.к. в нем не используются понятия нормальных форм, первичного ключа и транзитивной зависимости. Кроме того, понятие потенциального ключа может быть заменено введением более фундаментального понятия функциональной зависимости. Но, с другой стороны, концепции первичного ключа, транзитивной зависимости и т.д. полезны на практике, поскольку позволяют представить идею постепенного процесса, выполняемого разработчиком для приведения произвольного отношения к эквивалентному набору отношений в НФБК.

Нормальные формы, обоснованные более сложными зависимостями

Рис. 10. Ненормализованное отношение ДПУ

В следующих нормальных формах (4НФ и 5НФ) учитываются не только функциональные, но и многозначные зависимости и зависимости соединения между атрибутами отношения. Для знакомства с ними рассмотрим ненормализованное отношение, показанное на рис.10. Каждый кортеж отношения содержит название дисциплины, группу имен преподавателей, и набор учебников. Это значит, что каждый курс может преподаваться любым преподавателем с использованием любых учебников. Преобразуем это отношение в эквивалентное нормализованное. Для представленных данных функциональные зависимости не определены. Поэтому нет формальной основы для декомпозиции этого отношения и нормализованное отношение изображено на рис. 11.

Механика

Механика

Математика

Геометрия

Математика

Мат. анализ

Рис. 11. Нормализованное отношение ДПУ

Рис. 12. Проекции {Д,П} и {Д,У} отношения ДПУ

Очевидно, что отношение ДПУ характеризуется значительной избыточностью и приводит к возникновению аномалий обновления, например, при добавлении нового преподавателя надо вводить по кортежу на каждый учебник. Тем не менее, отношение является полностью ключевым и поэтому находится в НФБК. Возникающие проблемы вызваны тем, что преподаватели и учебники полностью независимы друг от друга. Проблема нормализованного отношения ДПУ не возникла бы, если бы первоначально были разделены все независимые повторяющиеся группы. В нашем случае можно было улучшить ситуацию, заменив отношение ДПУ проекциями {Д, П} и {Д, У} (рис.12). При этом обе проекции являются полностью ключевыми и находятся в НФБК, а их соединение дает исходную таблицу, то есть, декомпозиция выполнена без потерь. Такая декомпозиция не может быть выполнена на основе функциональных зависимостей, которых нет в этом примере. Ее можно осуществить на основе многозначной зависимости. Многозначные зависимости - это обобщение функциональных зависимостей в том смысле, что каждая функциональная зависимость является многозначной, у которой зависимая часть является одноэлементным множеством.

В отношении ДПУ есть две многозначные зависимости: ДП и ДУ.

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

Вторая многозначная зависимость интерпретируется аналогично.

Пусть А , В, С являются произвольными подмножествами множества атрибутов отношения R . В многозначно зависит от А (А В ) тогда и только тогда, когда множество значений В, соответствующее заданной паре значений (А , С ) отношения R , зависит только от А, но не зависит от С .

Очевидно, что многозначная зависимость АВ выполняется только тогда, когда выполняется многозначная зависимость АС. Многозначные зависимости всегда образуют связанные пары: AB||C.

Возвращаясь к проблемам отношения ДПУ, можно сказать, что они связаны с существованием многозначных зависимостей, которые не являются функциональными (именно наличие таких зависимостей требует вставлять два кортежа, когда надо добавить данные еще об одном преподавателе физики). Проекции {Д, П} и {Д, У} не содержат многозначных зависимостей и поэтому являются более желательными. Прежде чем дать определение четвертой нормальной формы, познакомимся с теоремой Фейгина (R. Fagin):

Пусть А, В, С являются множествами атрибутов отношения R{А, В, С}. Отношение R будет равно соединению его проекций {А, В} и {А, С} тогда и только тогда, когда для отношения R выполняются многозначные зависимости АВ и АС.

Отношение R находится в четвертой нормальной форме (4НФ ) тогда и только тогда, когда в случае существования многозначной зависимости A B все остальные атрибуты R функционально зависят от A .

Другими словами:

Отношение R находится в 4НФ, если оно находится в НФБК и все многозначные зависимости отношения R фактически являются функциональными зависимостями от потенциальных ключей .

Отношение ДПУ не находится в 4НФ, поскольку содержит многозначную зависимость, не являющуюся функциональной зависимостью. Однако обе проекции {Д, П} и {Д, У} находятся в 4НФ, которая по сравнению с НФБК позволяет создать улучшенную структуру.

Отметим, что концепция независимых проекций Риссанена, основанная на функциональных зависимостях (отношение R{A,B,C}, удовлетворяющее функциональным зависимостям A>B и B>C, следует разбивать на проекции {A,B} и {B,C}, а не {A,B} и {A,C}), применима и к выбору пути декомпозиции, если вместо функциональных зависимостей присутствуют многозначные зависимости A>>B и A>>C. В Этом случае следует провести декомпозицию на отношения {A,B} и {A,C}.

Во всех рассмотренных до этого момента процедурах нормализации производилась декомпозиция одного отношения на два. Иногда это сделать не удается, но возможна декомпозиция на большее число отношений, каждое из которых обладает лучшими свойствами. Такое отношение называется n-декомпозируемым отношением, для которого n>2.

Рассмотрим, например, отношение П-Д-Пр (Поставщики-Детали-Проекты) (рис.13). Один и тот же поставщик может поставлять несколько типов деталей для разных проектов. Первичным ключом этого отношения является полная совокупность его атрибутов, отсутствуют функциональные и многозначные зависимости (многозначной зависимости нет, т.к. для П1 набор деталей зависит от проекта). Поэтому отношение находится в 4НФ. Однако в нем могут существовать аномалии (не всегда очевидные), которые можно устранить путем декомпозиции на три отношения (декомпозиция на два отношения невозможно, так как обратная операция не позволяет вернуться к исходному отношению). Причем, степень декомпозиции зависит от кортежей. Например, если в исходном отношении убрать один из первых трех кортежей или добавить кортеж (П2, Д1, Пр2), то его можно разделить на две проекции. Если же в исходном отношении убрать последний кортеж или заменить его кортежем (П2, Д1, Пр2), то его нельзя разделить ни на две, ни на три проекции без нарушения целостности данных. Декомпозируемость этого отношения может быть фундаментальным и независящим от времени свойством, если добавить дополнительное ограничение.

Утверждение, что ПДПр равно соединению трех проекций ПД, ДПр, ПрП эквивалентно следующему утверждению:

ЕСЛИпара (П1, Д1) принадлежит отношению ПД

Ипара (Д1, Пр1) принадлежит отношению ДПр

Ипара (Пр,1П1) принадлежит отношению ПрП,

ТОтройка (П1, Д1, Пр1) принадлежит отношению ПДПр.

Это очевидно, так как тройка П1, Д1, Пр1 находится в соединении проекций ПД, ДПр, ПрП. Обратное утверждение также является истинным всегда.

С другой стороны, справедливо утверждение, что пара (П1, Д1) присутствует в отношении ПД, если тройка (П1, Д1, Пр2) присутствует в отношении ПДПр, пара (П1, Пр1) - в отношении ППр, если (П1, Д2, Пр1) есть в ПДПр, а пара (Д1, Пр1) - в отношении ДПр, если (П2, Д1, Пр1) есть в ПДПр. Тогда, если учесть наше первое утверждение, то в таком отношении должен присутствовать и кортеж (П1, Д1, Пр1)! Значит, чтобы обеспечить корректность отношения ПДПр в любой момент времени, необходимо ввести следующее ограничение:

Если кортежи (П1 , Д 1 , П р2 ), (П2 , Д 1 , П р1 ) и (П1 , Д 2 , П р1 ) принадлежат отношению ПДПр, то и кортеж (П1 , Д 1 , П р1 ) также принадлежит этому отношению .

Если это утверждение верно всегда, то есть, для всевозможных дополнительных кортежей отношения ПДПр, то будет получено независящее от времени ограничение на данное отношение, которое называется 3D-ограничением. Поскольку 3D-ограничение удовлетворяется тогда, когда отношение равносильно соединению некоторых его проекций, то такое ограничение называется зависимостью соединения.

Можно обратить внимание на то, что в рассматриваемом нами примере существует некоторая цикличность в данных. Критерием n-декомпозиции отношения для n>2 является некоторое циклическое ограничение. Что означает циклическое ограничение? Пусть в нашем примере последний кортеж означает, что Смитт поставляет гаечные ключи для Манхеттенского проекта. Первые три кортежа несут информацию о том, что Смитт поставляет гаечные ключи, Смитт является поставщиком для Манхеттенского проекта и гаечные ключи используются в Манхеттенском проекте. Но из этих утверждений не следует, что именно Смитт поставляет ключи для данного проекта. Если декомпозировать отношение ПДПр, состоящее из этих трех кортежей, на три проекции, то их соединение не будет равно исходному - появится "лишний" четвертый кортеж (П1, Д1, Пр1), о чем было сказано выше. Чтобы избежать такое несоответствие и вводится дополнительное ограничение, которое может быть легко реализовано декомпозицией отношения. Такая декомпозиция возможна без потерь информации только в случае существования зависимости соединения:

Отношение R (X,Y, . , Z ) удовлетворяет зависимости соединения * (X,Y, . , Z ) в том и только в том случае, когда R восстанавливается без потерь путем соединения своих проекций на X, Y, . , Z .

Рассмотрим два примера аномалий, которые существуют в отношении, на которое наложено 3D-ограничение.

2. В отношении, показанном на рис.15, кортеж (П2, Д1, Пр1) можно удалить без проблем. Но если удалять (П1, Д1, Пр1), то необходимо удалить один из оставшихся, чтобы не было некоторой цикличности в данных.

Сейчас теорему Фейгина можно сформулировать в таком виде:

Отношение R (А , В, С ) удовлетворяет зависимости соединения * (АВ , А С ) тогда и только тогда, когда оно удовлетворяет многозначным зависимостям А В и А С .

Зависимость соединения является обобщением понятия многозначной зависимости. Более того, это наиболее общая форма зависимости.

Возвращаясь к отношению Поставщики-Детали-Проекты, можно обнаружить, что оно содержит зависимость соединения ПДПр * (ПД, ДПр, ПрП), которая не является ни функциональной, ни многозначной зависимостью и не подразумевается его единственным потенциальным ключом - комбинацией всех атрибутов. Такое отношение рекомендуется декомпозировать на проекции, заданные зависимостью соединения. Такой процесс декомпозиции может повторяться до тех пор, пока все результирующие отношения не будут находиться в пятой нормальной форме (5НФ ).

Отношение R находится в пятой нормальной форме в том и только в том случае, когда любая зависимость соединения в R следует из существования некоторого возможного ключа в R .

Менее строгое определение 5НФ:

Таблица находится в пятой нормальной форме (5НФ ) тогда и только тогда, когда в каждой ее полной декомпозиции все проекции содержат возможный ключ . Таблица, не имеющая ни одной полной декомпозиции, также находится в 5НФ .

Сейчас можно сказать, что после 3-декомпозиции отношения ПДПр его проекции ПД, ДПр и ППр находятся в 5 нормальной форме, так как для них вовсе нет зависимости соединения.

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

Для заданного отношения R можно утверждать, что оно находится в 5НФ при условии, что известны все потенциальные ключи и все зависимости соединения. Однако нет алгоритма, позволяющего определять все зависимости соединения. Но такие отношения чрезвычайно редки на практике.

Пятая нормальная форма - это последняя нормальная форма, которую можно получить путем декомпозиции. Ее условия достаточно нетривиальны, но она практически не используется.

Процедура нормализации и проектирования

Мы рассмотрели технологию декомпозиции без потерь, применяемую для проектирования базы данных. Основная идея этой технологии состоит в систематическом приведении первоначального отношения, находящегося в 1НФ, к набору меньших отношений, который в некотором заданном смысле эквивалентен исходному отношению, но более предпочтителен. Каждый этап процесса приведения состоит из разбиения на проекции отношений, полученных на предыдущем этапе. При этом заданные ограничения используются на каждом шаге процедуры нормализации для выбора проекций на следующем этапе. Нормализация - это разбиение отношения (таблицы) на несколько отношений, обладающих лучшими свойствами при обновлении, включении и удалении данных. Этот процесс последовательной замены таблицы ее полными декомпозициями выполняется до тех пор, пока все они не будут находиться в 5НФ (на практике обычно ограничиваются приведением отношения к нормальной форме Бойса-Кодда). В общем, можно выделить следующие цели процесса нормализации:

исключение некоторых типов избыточности;

устранение некоторых аномалий обновления, включения и удаления;

проектирование макета базы данных, который являлся бы "хорошим" представлением реального мира, был интуитивно понятен и служил хорошей основой для дальнейшего развития;

упрощение процесса наложения ограничений целостности.

Перечислим основные правила, которые используются в процедуре нормализации.

1. Унифицированное отношение должно быть приведено к 1НФ.

2. Отношения в 1НФ следует разбить на проекции для исключения всех функциональных зависимостей, которые не являются неприводимыми.

Другими словами, если отношение имеет составной первичный ключ вида (К1, К2) и включает также поле F, которое функционально зависит от части этого ключа, например, от К2, но не от полного ключа, то в этом случае рекомендуется сформировать другое отношение, содержащее К2 и F (первичный ключ - К2), и удалить F из первоначального отношения:

В результате такого действия будет получен набор отношений в 2НФ.

3. Отношения в 2НФ следует разбить на проекции для исключения любых транзитивных функциональных зависимостей. Другими словами, если отношение имеет потенциальный ключ К, не являющийся потенциальным ключом атрибут F1, который функционально зависит от К, и другой неключевой атрибут F2, который функционально зависит от F1, то рекомендуется удалить из исходного отношения атрибут F2 и сформировать другое отношение, содержащее F1 и F2, с первичным ключом F1.

В результате будет получен набор отношений в 3НФ.

5. Отношения в НФБК следует разбить на проекции для исключения всех многозначных зависимостей, которые не являются функциональными зависимостями. В результате будет получен набор отношений в 4НФ (на практике такие многозначные зависимости обычно исключаются при создании исходных отношений, отделяя независимые повторяющиеся группы).

6. Отношения следует разбить на проекции для исключения любых зависимостей соединения, которые не подразумеваются потенциальными ключами, если их можно выявить. Таким образом будет получен набор отношений в 5НФ (полная декомпозиция отношений).

При следовании предложенным правилам необходимо помнить, что разбиение на проекции должно выполняться без потерь данных и с сохранением функциональных и многозначных зависимостей.

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

Проектирование систем баз данных начинается с построения инфологической модели данных, т.е. идентификации сущностей. Затем необходимо выполнить следующие шаги процедуры проектирования:

1. Представить каждую независимую сущность таблицей базы данных (базовой таблицей) и определить первичный ключ этой базовой таблицы.

2. Представить каждую ассоциацию (связь между сущностями) как базовую таблицу. Использовать в этой таблице внешние ключи для идентификации участников ассоциации и специфицировать ограничения, связанные с каждым из этих внешних ключей.

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

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

5. Если в процессе нормализации было произведено разделение каких-либо таблиц, то следует модифицировать инфологическую модель базы данных и повторить перечисленные шаги.

6. Указать ограничения целостности проектируемой базы данных и дать (если это необходимо) краткое описание полученных таблиц и их полей.

Для наглядного представления структуры проектируемой системы может быть использован язык инфологического моделирования "Таблица-связь", используемый в наиболее распространенных реляционных базах данных. В нем все сущности изображаются одностолбцовыми таблицами с заголовками, состоящими из имени сущности. Строки таблицы - это перечень атрибутов сущности, а те из них, которые составляют первичный ключ, выделяются. Связи между сущностями указываются стрелками, направленными от первичных ключей или их составляющих.

7. Пример проектирования базы данных

Назначение и предметная область

База данных предназначена для хранения информации о персонале некоторой компании. В компании есть несколько отделов. В каждом отделе есть несколько сотрудников, несколько проектов и несколько кабинетов. Каждый сотрудник имеет несколько заданий. Для каждого задания существует ведомость с перечнем денежных сумм, полученных сотрудником за выполнение данной работы. В каждом кабинете есть несколько телефонов.

В базе данных должна храниться следующая информация:

Для каждого отдела: уникальный номер отдела, бюджет и уникальный номер руководителя отдела;

для каждого сотрудника: уникальный номер сотрудника, номер текущего проекта, номер кабинета, номер телефона, а также название выполняемой работы вместе с датами и размерами всех оплат, полученных за выполнение данной работы;

для каждого проекта: уникальный номер проекта и бюджет;

для каждого кабинета: уникальный номер кабинета, площадь, номера всех телефонов.

Семантические утверждения (ограничения): Ни один сотрудник не является одновременно руководителем нескольких отделов; ни один сотрудник не работает одновременно более чем в одном отделе; ни один сотрудник не работает одновременно более чем с одним проектом; ни один сотрудник не имеет одновременно более одного кабинета; ни один сотрудник не имеет одновременно более одного телефона; ни один сотрудник не имеет одновременно более одного задания; ни один проект не дается одновременно более чем одному отделу; ни один кабинет не относится одновременно более чем к одному отделу.

Проектирование базы данных

Анализ определенных выше объектов и атрибутов позволяет выделить сущности проектируемой базы данных и построить ее инфологическую модель в виде "Таблицы-связи" (рис. 16).

Рис. 16. Информация о компании, которая должна храниться в базе данных

Исходную иерархическую структуру можно рассматривать как ненормализованное отношение:

ОТДЕЛЫ (ОТД№, БЮДЖЕТ_О, РУК№, СОТРУДНИКИ, ПРОЕКТЫ, КАБИНЕТЫ) CANDIDATE KEY (ОТД№) CANDIDATE KEY (РУК№)

Здесь смысл атрибутов ОТД№ (уникальный номер отдела), БЮДЖЕТ_О, РУК№ (номер руководителя) понятен из названий, а атрибуты СОТРУДНИКИ, ПРОЕКТЫ, КАБИНЕТЫ состоят из значений-отношений. Мы можем расписать их вложенные атрибуты:

ОТДЕЛЫ (ОТД№, БЮДЖЕТ, РУК№, СОТРУДНИКИ (СОТР№, ПРОЕКТ№, КАБ№, ТЕЛ№, РАБОТА (ТЕМА, ОПЛАТА (ДАТА, СУММА))), ПРОЕКТЫ (ПРОЕКТ№, БЮДЖЕТ_П), КАБИНЕТЫ (КАБ№, ПЛОЩАДЬ, ТЕЛЕФОН (ТЕЛ№))) CANDIDATE KEY (ОТД№) CANDIDATE KEY (РУК№)

Сейчас можно привести это отношение к набору отношений в 1НФ. При этом, рассматривая каждое значение-отношение отдельно, мы исключаем все многозначные зависимости, которые не являются функциональными зависимостями.

ОТДЕЛЫ1 (ОТД№, БЮДЖЕТ_О, РУК№) PRIMARY KEY (ОТД№) ALTERNATE KEY (РУК№)

СОТРУДН1 (СОТР№, ОТД№, ПРОЕКТ№, КАБ№, ТЕЛ№) PRIMARY KEY (СОТР№)

РАБОТА1 (ТЕМА, СОТР№) PRIMARY KEY (ТЕМА, СОТР№)

ОПЛАТА1 (СОТР№, ТЕМА, ДАТА, СУММА) PRIMARY KEY (СОТР№, ТЕМА, ДАТА)

ПРОЕКТЫ1 (ПРОЕКТ№, БЮДЖЕТ_П, ОТД№) PRIMARY KEY (ПРОЕКТ№)

КАБИНЕТЫ1 (КАБ№, ПЛОЩАДЬ, ОТД№) PRIMARY KEY (КАБ№)

ТЕЛЕФОНЫ1 (ТЕЛ№, КАБ№) PRIMARY KEY (ТЕЛ№)

Отношения ОТДЕЛЫ1, СОТРУДН1, ОПЛАТА1, ПРОЕКТЫ1, КАБИНЕТЫ1 и ТЕЛЕФОНЫ1 уже находятся в 2НФ.

Отношение РАБОТА1 является проекцией отношения ОПЛАТА1, следовательно, оно несет избыточную информацию и его можно удалить без потери данных. В то же время, отношение ТЕЛЕФОНЫ1 является проекцией отношения СОТРУДН1, но при его удалении появятся аномалии обновления - данные о телефонах не будут существовать без данных о конкретных сотрудниках.

Покажем сейчас структуру базы данных, отношения которой приведены к 2НФ, используя язык моделирования "Таблица-Связь", который применяется в СУБД MS ACCESS:

Далее, исключая транзитивные зависимости, можно привести отношения к эквивалентной совокупности отношений в 3НФ. Единственным отношением, которое не находится в 3НФ, является отношение СОТРУДН, в котором атрибуты КАБ№ и ОТД№ транзитивно зависят от первичного ключа СОТР№ - КАБ№ через ТЕЛ№, а ОТД№ через ПРОЕКТ№ и, кроме того, через КАБ№ и ТЕЛ№. Тогда отношение СОТРУДН можно заменить совокупностью проекций, находящихся в 3НФ:

X (ТЕЛ№, КАБ№) PRIMARY KEY (ТЕЛ№)

Y (ПРОЕКТ№, ОТД№) PRIMARY KEY (ПРОЕКТ№)

Z (КАБ№, ОТД№) PRIMARY KEY (КАБ№)

Но отношение X - аналог отношения ТЕЛЕФОН2, Y - проекции отношения ПРОЕКТ2, Z - проекции КАБИНЕТ2 и, значит, могут быть удалены из модели базы данных. Следовательно, модель базы данных, отношения которой приведены к 3НФ, будет выглядеть так:

ОТДЕЛЫ3 (ОТД№, БЮДЖЕТ_О, РУК№) PRIMARY KEY (ОТД№) ALTERNATE KEY (РУК№)

СОТРУДН3 (СОТР№, ПРОЕКТ№, ТЕЛ№) PRIMARY KEY (СОТР№)

ОПЛАТА3 (СОТР№, ТЕМА, ДАТА, СУММА) PRIMARY KEY (СОТР№, ТЕМА, ДАТА)

ПРОЕКТЫ3 (ПРОЕКТ№, БЮДЖЕТ_П, ОТД№) PRIMARY KEY (ПРОЕКТ№)

КАБИНЕТЫ3 (КАБ№, ПЛОЩАДЬ, ОТД№) PRIMARY KEY (КАБ№)

ТЕЛЕФОНЫ3 (ТЕЛ№, КАБ№) PRIMARY KEY (ТЕЛ№)

Каждое из этих отношений находится в НФБК. Более того, они находятся в 4НФ - от возможных многозначных зависимостей мы избавились на этапе приведения модели к 1НФ. Все отношения не содержат видимых аномалий и поэтому можно предполагать, что база данных сконструирована правильно.

Литература

1. Бек, Кент Шаблоны реализации корпоративных приложений; М.: Вильямс, 2008. - 369 c.

2. Веймаер, Р.; Сотел, Р. Освой самостоятельно Microsoft SQL Server 2000 за 21 день (+ CD-ROM); М.: Вильямс, 2013. - 549 c.

3. Гандерлой, Майк; Харкинз, Сьюзан Сейлз Автоматизация Microsoft Access с помощью VBA; М.: Вильямс, 2013. - 416 c.

4. Гетц, Кен; Джинберт, Майкл; Литвин, Пол Access 2000. Руководство разработчика. Том 1. Настольные приложения. том 1; Киев: BHV, 2008. - 576 c.

5. Голицына, О.Л. и др. Базы данных; Форум; Инфра-М, 2013. - 399 c.

6. Гринченко, Н.Н. и др. Проектирование баз данных. СУБД Microsoft Access; Горячая Линия Телеком, 2012. - 613 c.

7. Дейт, К. Дж. Введение в системы баз данных; К.: Диалектика; Издание 6-е, 2012. - 360 c.

8. Дэвидсон, Луис проектирование баз данных на SQL Server 2000; Бином, 2009. - 631 c.

9. Дюваль, Поль М. Непрерывная интеграция. Улучшение качества программного обеспечения и снижение риска; М.: Вильямс, 2008. - 497 c.

10. Каратыгин, С.; Тихонов, А. Работа в Paradox для Windows 5.0 на примерах; М.: Бином, 2011. - 512 c.

11. Каратыгин, Сергей Access 2000 на примерах. Руководство пользователя с примерами; М.: Лаборатория Базовых Знаний, 2012. - 376 c.

12. Кауфельд, Джон Microsoft Office Access 2003 для "чайников"; М.: Диалектика, 2013. - 439 c.

13. Каучмэн, Джейсон; Швинн, Ульрике Oracle 8i CertifiedProfessionaql DBA Подготовка администраторов баз данных; ЛОРИ, 2009. - 510 c.

Подобные документы

    Понятие системы базы данных. Реляционная модель и ее характеристики. Целостность в реляционной модели. Реляционная алгебра. Вопросы проектирования БД. Нормальные формы отношений. Проектирование БД методом сущность-связь. ER-диаграммы. Язык SQL.

    курс лекций , добавлен 03.10.2008

    Использование нормализации. Вторая и третья нормальные формы. Нормальная форма Бойса-Кодда. Четвертая и пятая нормальная форма. Семантическое моделирование данных, ER-диаграммы. Основные понятия модели Entity-Relationship.

    контрольная работа , добавлен 07.08.2007

    Понятие нормализации таблиц базы данных и ее цели. Этапы процесса нормализации. Пример ненормализованных данных. Нормальные формы, к которым приводятся таблицы. Реляционная алгебра над учебной базой. База данных для предметной области "Учебные пособия".

    контрольная работа , добавлен 30.07.2010

    Создание структуры базы данных на примере "Школьного журнала" с использованием метода и принципа нормализации. Понятия базы данных, архитектуры БД и проектирования. Описание предметной области; приложения для работы с базой данных TTable и TQuery.

    дипломная работа , добавлен 01.04.2012

    Исследование теоретических основ проектирования и разработки баз данных. Выявление функциональных зависимостей, построение инфологической модели. Обзор языковых и программных средств, предназначенных для создания, ведения и совместного использования БД.

    курсовая работа , добавлен 22.02.2012

    Авторизация с каталогами проектирования базы данных магазина. Задачи базы данных: учет всех товаров, поиск и выдача данных о клиентах, адрес, телефоны, цена и наличие товара. Этапы проектирования базы данных. Схема данных, создание запросов и их формы.

    реферат , добавлен 22.10.2009

    Основы проектирования реляционных баз данных. Схема взаимосвязей моделей и представлений сложной системы в процессе объектно-ориентированного анализа. Примеры графического изображения конкретных классов. Представление об информационной модели данных.

    презентация , добавлен 14.10.2013

    Определения, необходимые для понимания процесса проектирования реляционных баз данных на основе нормализации. Декомпозиция без потерь по теореме Хита. Аномальные обновления. Разработка моделей базы данных и приложений, анализ проблем при их создании.

    презентация , добавлен 14.10.2013

    Интегрированная база данных. Разработка концепции и структуры корпоративной базы данных для новой информационной системы. Подходы в методах проектирования баз данных: компонентная открытость и смысловая интероперабельность; разработка понятийных моделей.

    доклад , добавлен 11.01.2011

    Анализ предметной области, ее формализации с помощью функциональных зависимостей. Этапы минимизации системы функциональных зависимостей и на основании полученной редуцированной системы проектирование модели базы данных. Создание и моделирование запросов.

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

Концептуальное проектирование БД ИС является в значительной степени эвр"истическим процессом. Адекватность построенной в его рамках инфологической модели предметной области проверяется опытным путем, в процессе функционирования ИС.

Перечислим этапы концептуального проектирования:

* изучение предметной области для формирования общего пред­ставления о ней;

* выделение и анализ функций и задач разрабатываемой ИС;

* определение основных объектов-сущностей предметной области и отношений между ними;

* формализованное представление предметной области.

При проектировании схемы реляционной БД можно выделить сле­дующие процедуры:

*определение перечня таблиц и связей между ними;

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

*установление индексирования для полей в таблицах;

* разработка списков (словарей) для полей с перечислительными данными;

* установление ограничений целостности для таблиц и связей;

* нормализация таблиц, корректировка перечня таблиц и связей. Проектирование БД осуществляется на физическом и логическом уровнях. Проектирование на физическом уровне реализуется сред­ствами СУБД и зачастую автоматизировано.

Логическое проектирование заключается в определении числа и структуры таблиц, разработке запросов к БД, отчетных документов, создании форм для ввода и редактирования данных в БД и т. д.

Одной из важнейших задач логического проектирования БД явля­ется структуризация данных. Выделяют следующие подходы к проек­тированию структур данных:

*объединение информации об объектах-сущностях в рамках одной таблицы (одного отношения) с последующей декомпозицией на несколько взаимосвязанных таблиц на основе процедуры норма­лизации отношений;

* формулирование знаний о системе (определение типов исходных данных и взаимосвязей) и требований к обработке данных, полу­чение с помощью СА5Е-системы готовой схемы БД или даже го­товой прикладной информационной системы;

* осуществление системного анализа и разработка структурных

Информационные системы

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

Возможности человека в обработке информации резко возросли с использованием компьютеров. В применении ЭВМ для решения задач информационного обслуживания можно выделить два периода:

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

 период системного применения ЭВМ. Для решения на ЭВМ комплекса задач создаются программные средства, оперирующие одними и теми же данными, использующие единую информационную модель объекта. Эти средства не зависят от характера объекта, его модели, их можно применять для информационного обслуживания различных задач. Человечество пришло к организации информации в информационных системах.

Информационными системами (ИС) называют большие массивы данных вместе с программно-аппаратными средствами для их обработки. Различают следующие виды ИС: фактографические, документальные и экспертные системы.

Фактографическая ИС - это массив фактов - конкретных значений данных об объектах реального мира.

Информация в фактографической ИС хранится в четко структурированном виде, поэтому она способна давать однозначные ответы на поставленные вопросы, например: «Кто является победителем Чемпионата России по гимнастике в 1999 году?», «Кому принадлежит автомобиль марки AUDI 80 с регистрационным номером РА899Р77?», «Какой номер телефона в бухгалтерии МГУ?», «Кто стал Президентом России на выборах в марте 2002 года?» и т. д. Фактографические ИС используются буквально во всех сферах человеческой деятельности - в науке, материальном производстве, на транспорте, в медицине, государственной и общественной жизни, торговле, криминалистике, искусстве, спорте.

Документальные информационные системы обслуживают принципиально иной класс задач, которые не предполагают однозначного ответа на поставленный вопрос. Базу данных таких систем образует совокупность неструктурированных текстовых документов (статьи, книги, рефераты, тексты законов) и графических объектов, снабженная тем или иным формализованным аппаратом поиска. Цель системы, как правило, - выдать в ответ на запрос пользователя список документов или объектов, в какой-то мере удовлетворяющих сформулированным в запросе условиям. Например: выдать список всех статей, в которых встречается слово «Пушкин». Принципиальной особенностью документальной системы является ее способность, с одной стороны, выдавать ненужные пользователю документы (например, где слово «Пушкин» употреблено в ином смысле, чем предполагалось), а с другой - не выдавать нужные (например, если автор употребил какой-то синоним или ошибся в написании). Документальная система должна уметь по контексту определять смысл того или иного термина, например, различать «ромашка» (растение), «ромашка» (тип печатающей головки принтера).

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

Указанная классификация и отнесение ИС к тому или иному типу устарели, так как современные фактографические системы часто работают с неструктурированными блоками информации (текстами, графикой, звуком, видео), снабженными структурированными описателями.







2024 © gtavrl.ru.