Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Беда.docx
Скачиваний:
12
Добавлен:
23.09.2019
Размер:
258.01 Кб
Скачать

7(5) Информационные системы. Архитектура классификации

С писанных лекций

ИС – совокупность, содержащихся в БД информаций и обеспечивающая ее обработку.

ИС классифицируется по структуре:

  1. настольные (desktop)

в нее входят локальные – в которой все компоненты работают на одном компьютере

  1. распределенные, в которых компьютеры распределены по нескольким компьютерам.

  2. Файло-серверные БД, находящиеся на сервере СУБД и клиентские БД, находящиеся на рабочих станциях.

  3. Клиент – северные БД и СУБД нах. На сервере, на рабочих станциях находятся приложения.

  4. Двухзвенные : сервер БД и рабочая станция (клиентские приложения обращаются к СУБД напрямую, а БД и СУБД находятся на сервере БД)

  5. Многозвенные – добавляются промежуточные звенья сервера приложений. Клиентские приложения не обращаются к СУБД напрямую. Они взаимодействуют с промежуточными звеньями.

ИС классифицируются по характеру обрабатываемых данных

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

  2. ИС обработки данных (решающие ИС) – в которых данные подвергаются обработку по сложным алгоритмам.

ТРАНЗАКЦИЯ – логически связанная последовательность запросов, направленная на целостное преобразование данных.

8(30) Нормализации моделей данных: нормальные формы, избыточность данных, аномалии и дефекты моделей данных

Нормализация - метод создания набора отношений с заданными свойствами на основе требований к данным, установленных в некоторой организации.

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

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

123 НФ – см. оглавление страница 18

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

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

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

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

Исходная таблица:

Номер клиента

Дата собеседования

Время собеседования

Номер комнаты

Номер сотрудника

С345

13.10.03

13.00

103

А138

С355

13.10.03

13.05

103

А136

С368

13.09.03

13.00

102

А154

С366

13.09.03

13.30

105

А207

В результате приведения к форме Бойса—Кодда получаются две таблицы:

Номер клиента

Дата собеседования

Время собеседования

Номер Сотрудника

С345

13.10.03

13.00

А138

С355

13.10.03

13.05

А136

С368

13.09.03

13.00

А154

С366

13.09.03

13.30

А207

Дата собеседования

Номер сотрудника

Номер комнаты

13.10.03

А138

103

13.10.03

А136

103

13.09.03

А154

102

13.09.03

А207

105

Различие между ЗНФ и НФБК заключается в том, что функциональная зависимость А—>В допускается в отношении ЗНФ, если атрибут В является первичным ключом, а атрибут А не обязательно является потенциальным ключом. Тогда как в отношении НФБК эта зависимость допускается только тогда, когда атрибут А является потенциальным ключом. Следовательно, нормальная форма Бойса-Кодда является более строгой версией формы ЗНФ, поскольку каждое отношение НФБК является также отношением ЗНФ, но не всякое отношение ЗНФ является отношением НФБК.

Четвертая нормальная форма (4НФ)

Как было сказано выше, НФБК позволяет устранить любые аномалии, вызванные функциональными зависимостями. Однако в результате теоретических исследований был выявлен еще один тип зависимости — многозначная зависимость (Multi-Valued Dependency — MVD), которая при проектировании отношений также может вызвать проблемы, связанные с избыточностью данных.

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

Четвертая нормальная форма (4НФ) - отношение в нормальной форме Бойса-Кодда, которое не содержит нетривиальных многозначных зависимостей.

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

Пример приведения таблицы к четвертой нормальной форме (Википедия)

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

Такая таблица не соответствует 4NF, так как существует многозначная зависимость:

  • {Ресторан} >> {Вид пиццы}

  • {Ресторан} >> {Район доставки}

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

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

Исходная таблица

Ресторан

Вид пиццы

Район доставки

A1 Pizza

Thick Crust

Springfield

A1 Pizza

Thick Crust

Shelbyville

A1 Pizza

Thick Crust

Capital City

A1 Pizza

Stuffed Crust

Springfield

A1 Pizza

Stuffed Crust

Shelbyville

A1 Pizza

Stuffed Crust

Capital City

Elite Pizza

Thin Crust

Capital City

Elite Pizza

Stuffed Crust

Capital City

Vincenzo's Pizza

Thick Crust

Springfield

Vincenzo's Pizza

Thick Crust

Shelbyville

Vincenzo's Pizza

Thin Crust

Springfield

Vincenzo's Pizza

Thin Crust

Shelbyville

Ресторан

Вид пиццы

A1 Pizza

Thick Crust

A1 Pizza

Stuffed Crust

Elite Pizza

Thin Crust

Elite Pizza

Stuffed Crust

Vincenzo's Pizza

Thick Crust

Vincenzo's Pizza

Thin Crust

Ресторан

Район доставки

A1 Pizza

Springfield

A1 Pizza

Shelbyville

A1 Pizza

Capital City

Elite Pizza

Capital City

Vincenzo's Pizza

Springfield

Vincenzo's Pizza

Shelbyville

Объекты денормализации

1) Большое количество соединений таблиц

2) Расчетные значения

3) Длинные поля

4) Дефекты

Проблемы/дефекты ER моделирования

Дефектами соединения (connection trap), обычно возникают вследствие неправильной интерпретации смысла некоторых связей. Мы рассмотрим два основных типа дефектов соединения: дефект типа "разветвление" (fan trap) и дефект типа "разрыв" (chasm trap), а также укажем способы выявления и устранения этих проблем в создаваемых ER-моделях.

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

Дефекты типа "разветвление"

Дефект типа "разветвление".

Дефект типа "разветвление" возникает в том случае, когда две или несколько связей типа 1:М исходят из одной сущности. Потенциальный дефект типа "разветвление" показан на рисунке, на котором две связи типа 1:М (Has и Operates) исходят из одной и той же сущности Division.

ДО: Отдел имеет много сотрудников и много отделений. Но непонятно к какому отделу относится какой сотрудник?

ПОСЛЕ: Отдел имеет много отделений. Отделения имеют много сотрудников. Теперь все ясно. Геморройный крем больше не нужен.

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

Дефекты типа "разрыв"

Дефект типа "разрыв" может возникать, если существует одна или несколько связей с минимальной кратностью, равной нулю (которая обозначает необязательное участие), и эти связи составляют часть пути между взаимосвязанными сущностями. На рисунке потенциальный дефект типа "разрыв" показан на примере связей между сущностями Branch, Staff и PropertyForRent.

ДО: Отделение имеет много сотрудников. Сотрудники могут осуществлять надзор над сдаваемыми в аренду объектами. А какие Отделения осуществляют надзор над объектами аренды?

ПОСЛЕ: Ввели связь оди ко многим – Отделения осуществляют надзор над многими объедками. -_- Обратная связь 1.1 показывает, что объект может соответствовать только одному отделению, а раньше этого них*** нельзя было понять.

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

Аномалии

Избыточность данных и аномалии обновления

Основная цель проектирования реляционной базы данных заключается в группировании атрибутов в отношения таким образом, чтобы минимизировать избыточность данных и тем самым сократить объем памяти, необходимый для физического хранения отношений, представленных в виде таблиц. Проблемы, связанные с избыточностью данных, можно проиллюстрировать, сравнив отношения Staff и Branch таблицах 1 и 2 с отношением StaffBranch таблице 3. Отношение StaffBranch является альтернативной формой представления отношений Staff и Branch. Упомянутые отношения описываются следующим образом:

  • Staff (staffNo, sName, position, salary, branchNo)

  • Branch (branchNo, bAddress)

  • StaffBranch (staffNo, sName, position, salary, branchNo, bAddress)

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

Таблица 1

staffNo

sName

position

salary

branchNo

SL21

John White

Manager

30000

B005

SG37

Ann Beech

Assistant

12000

B003

SG14

David Ford

Supervisor

18000

B003

SA9

Mary Howe

Assistant

9000

B007

SG5

Susan Brand

Manager

24000

B003

SL41

Julie Lee

Assistant

9000

B005

Таблица 2

branchNo

bAddress

B005

22 Deer Rd, London

B007

16 Argyll St, Aberdeen

B003

163 Main St, Glasgow

Таблица 3

staffNo

sName

position

salary

branchNo

bAddress

SL21

John White

Manager

30000

B005

22 Deer Rd, London

SG37

Ann Beech

Assistant

12000

B003

163 Main St, Glasgow

SG14

David Ford

Supervisor

18000

B003

163 Main St, Glasgow

SA9

Mary Howe

Assistant

9000

B007

16 Argyll St, Aberdeen

SG5

Susan Brand

Manager

24000

B003

163 Main St, Glasgow

SL41

Julie Lee

Assistant

9000

B005

22 Deer Rd, London

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

Аномалии вставки

Существуют два основных типа аномалий вставки, которые иллюстрируются с помощью отношения Staff Branch (см, таблицу 3).

  • При вставке сведений о новых сотрудниках в отношение Staff Branch. необходимо указать и сведения об отделении компании, в котором эти сотрудники работают. Например, при вставке сведений о новом сотруднике отделения 'В007' требуется ввести сведения о самом отделении 'В007', которые должны соответствовать сведениям об этом же отделении в других строках отношения StaffBranch. Отношения, показанные в табл. 1 и 2, не подвержены влиянию этой потенциальной несовместимости данных, поскольку для каждого сотрудника в отношение Staff потребуется ввести только соответствующий номер отделения компании. Кроме того, сведения об отделении компании с номером 'BOO7' заносятся в базу данных однократно, в виде единственной строки отношения Branch.

  • Для вставки сведений о новом отделении компании, которое еще не имеет собственных сотрудников, требуется присвоить значение NULL всем атрибутам описания персонала отношения StaffBranch, включая и табельный номер сотрудника staffNo. Но поскольку атрибут staffNo является первичным ключом отношения StaffBranch, то попытка ввести значение NULL в атрибут staffNo вызовет нарушение целостности сущностей и потому будет отклонена. Следовательно, в отношение StaffBranch невозможно ввести строку о новом отделении компании, содержащую значение NULL в атрибуте staffNo. Структура отношений, представленных в табл. 1 и 2, позволяет избежать возникновения этой проблемы, поскольку сведения об отделениях компании вводятся в отношение Branch независимости ввода сведений о сотрудниках. Сведения о сотрудниках, которые будут работать в новом отделении компании, могут быть введены в отношение Staff позже.

Аномалии удаления

При удалении из отношения Staff Branch строки с информацией о последнем сотруднике некоторого отделения компании сведения об этом отделении будут полностью удалены из базы данных. Например, после удаления из отношения Staff Branch строки для сотрудника 'Mary Howe с табельным номером ' SA9' из базы данных неявно будут удалены все сведения об отделении с номером В007 . Однако структура отношений, показанных в табл. 1 и 2, позволяет избежать возникновения этой проблемы, поскольку строки со сведениями об отделениях компании хранятся отдельно от строк со сведениями о сотрудниках. Связывает эти два отношения только общий атрибут branchNo. При удалении из отношения Staff строки с номером сотрудника ' SA9' сведения об отделении 'ВО07' в отношении Branch останутся нетронутыми.

Аномалии обновления

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

Все приведенные выше примеры иллюстрируют то, что представленные в табл. 1 и 2 отношения Staff и Branch обладают более приемлемыми свойствами, чем отношение Staff Branch, представленное в табл. 3. Это доказывает, что отношение Staff Branch подвержено аномалиям обновления, но этих аномалий можно избежать путем декомпозиции первоначального отношения на отношения Staff и Branch. С декомпозицией крупного отношения на более мелкие связаны два важных свойства. Во-первых, свойство соединения без потерь гарантирует, что любой экземпляр первоначального отношения может быть определен с помощью соответствующих экземпляров более мелких отношений. Во-вторых, свойство сохранения зависимостей гарантирует, что ограничения на первоначальное отношение можно поддерживать, просто применяя такие же ограничения к каждому из более мелких отношений. Иными словами, для проверки того, не нарушается ли ограничение, которое распространялось на первоначальное отношение, нет необходимости выполнять операции соединения на более мелких отношениях.

Резюме

Дополнительно:

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

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

  • Тип связи — это множество осмысленных ассоциаций между типами сущностей. Экземпляром связи называется однозначно идентифицируемая ассоциация, которая включает по одному экземпляру сущности каждого типа, участвующих в этой связи,

  • Степенью типа связи называется количество сущностей, участвующих в данной связи. (то же что степень отношения)

  • Рекурсивной связью называется связь, в которой несколько раз участвует одна и та же сущность, но в разных ролях.

  • Атрибутом называется свойство типа сущности или типа связи.

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

  • Простой атрибут состоит из одного компонента, который характеризуется не зависимым существованием.

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

  • Однозначный атрибут — это атрибут, содержащий по одному значению для каждого экземпляра сущности определенного типа.

  • Многозначный атрибут — это атрибут, содержащий несколько значений для каждого экземпляра сущности определенного типа.

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

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

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

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

  • Сильный тип сущности — это сущность, существование которой не зависит ни от какой другой сущности. Слабый тип сущности — это сущность, существование которой зависит от другой сущности.

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

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

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

  • Степень участия определяет, должны ли участвовать в конкретной связи все или только некоторые экземпляры сущности.

  • Дефект типа "разветвление" возникает, если в модели данных представлена некоторая связь между типами сущностей, но путь между некоторыми экземплярами сущности определен неоднозначно. (т.е. когда есть два потомка от одного родителя, и они имеют относительно него зависимость 1:M, но и в свою очередь должны иметь связь между собой)

  • Дефект типа "разрыв" возникает, когда в модели предполагается связь между типами сущностей, но не существует пути между некоторыми экземплярами сущностей. (т.е. надо добавить какую-нибудь связь, например как в примере 1:М)