Главная страница

Учебное пособие по базам данных. Учебное пособие. Пособие по базам данных Введение


Скачать 169.5 Kb.
НазваниеПособие по базам данных Введение
АнкорУчебное пособие по базам данных
Дата23.11.2021
Размер169.5 Kb.
Формат файлаdoc
Имя файлаУчебное пособие.doc
ТипПособие
#279476
страница1 из 3
  1   2   3



Учебное пособие

по базам данных

Введение


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

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

Решению о создании БД и закупки для этой цели ЭВМ и СУБД должен предшествовать анализ прикладной области. Первоначально необходимо выяснить целесообразность создания БД: будет ли экономический эффект от ее использования окупать затраты на создание и сопровождение. К этому анализу необходимо вернуться после построения проекта системы, когда оценки по затратам и экономическому эффекту могут быть уточнены. При положительном ответе на первый вопрос необходимо выяснить целесообразность использования универсальных СУБД. Как правило, СУБД является довольно громоздкой системой, требующей значительных объемов оперативной и внешней памяти. Кроме того требуются дополнительные затраты времени на преобразование и передачу данных. Использование универсальных СУБД не является целесообразным, если первичным является прикладное программное обеспечение по обработке данных, а не сами данные, т.е. жизненный цикл данных меньше либо равен жизненному циклу программ. Такая ситуация наиболее часто встречается в информационно-вычислительных системах, когда какие-либо данные необходимы только для работы одной или нескольких связанных между собой программ. В этом случае достаточно использовать один из методов доступа, соответствующий способу обработки данных в программах.

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

Типовое задание содержит 6 пунктов. Результаты выполнения каждого пункта являются основой для выполнения следующих пунктов и ошибки, допущенные в каком-либо пункте, обязательно проявятся в результирующей схеме БД.
Этапы типового задания:
Этап 1. Для каждого документа выделить содержащиеся в нем элементы данных. Составить их общий перечень. Список может быть расширен за счет рекомендаций пользователя. При этом требуется: а) объединить синонимы в один элемент данных и присвоить ему имя, приемлемое для всех пользователей; б) разъединить омонимы, присвоив каждому элементу данных уникальное имя.

Общее требование к элементам данных следующее:

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

Ошибки: 1) Цех – этот элемент данных может содержать в себе другие элементы: начальник цеха, выпускаемая продукция и др., то есть отсутствует семантическая однозначная интерпретация этого элемента (наверное, имелось в виду название цеха или номер цеха); 2) Средняя зарплата в отделе – этот элемент не является первичной информацией, а может быть вычислен, следовательно, в базе данных надо хранить сведения о выплатах каждому сотруднику отдельно, а среднее, минимальное, максимальное значения – вычислять в прикладной программе; 3) Возраст – этот элемент имеет изменяемое значение (в системе отсутствует событие, приводящее к необходимости изменения этого значения), нужно использовать элемент "дата рождения", а возраст вычислять в приложении.
Этап 2. Для выделенных в пункте 1 атрибутов построить множество функциональных зависимостей.
Определение. Пусть задана схема отношения R на совокупности атрибутов U = {A1, A2, ..., An}, (возможно R – тип записи для структурированной модели данных). Пусть X и Y – некоторые подмножества из множества атрибутов U. Будем говорить, что X функционально определяет Y (XY), если в любой реализации r схемы R не могут присутствовать два кортежа t,ur, такие что t[X]=u[X] и t[Y]u[Y].

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

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

Шаг 2. По очереди удаляем каждую зависимость из F: G=F\{XAi}, и проверяем эквивалентность полученного множества G исходному F (достаточно проверить условие: AiX+G). Если получено эквивалентное множество, то зависимость не возвращается, если не получено – возвращается.

Шаг 3. Последовательно исключаем по одному атрибуту в левой части каждой функциональной зависимости XAiF. Пусть Z=X\Aj и G={F\{XAi}}{ZAi}, если полученное множество G эквивалентно F (достаточно проверить условие: AiZ+F), то атрибут Aj не возвращается, иначе возвращается.

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

В алгоритме X+F  замыкание множества атрибутов X на множестве зависимостей F вычисляется следующим образом:

Шаг 0. Начальное множество X0=X (рефлексивность).

Шаг i (i=1,2,..). Выполняется итерация: просматриваются все функциональные зависимости из F. Если для какой-либо зависимости ZYF, ZXi-1, тогда Xi=Xi-1Y и переход к следующей итерации. Поскольку, Xi-1XiU, то алгоритм за конечное число шагов сойдется. Если на каком-то шаге после просмотра всех функциональных зависимостей оказалось, что Xi-1=Xi (не было сделано ни одной подстановки), тогда X+F=Xi. Конец построения.
Этап 3. Построить схему базы данных реляционного типа, удовлетворяющую требованиям третьей нормальной формы, свойству соединения без потерь информации и сохраняющую зависимости. Построить минимальное множество связей между отношениями БД
Полученное на этапе 2 минимальное покрытие множества функциональных зависимостей преобразуется следующим образом: объединяются зависимости с совпадающими левыми частями. Например, зависимости XAi и XAj объединяются в зависимость XAiAj.

Замечание. На практике зависимости XAi и XAj могут иметь различную область определения (одна зависимость имеет место для одного подмножества объектов, другая  для другого). Тогда эти зависимости объединять нельзя.

Далее из полученных зависимостей формируются отношения. Например, зависимость AiAjAlAkAm служит основанием для формирования отношения:


Ai

Aj

Al

Ak

Am


где AiAj  первичный ключ отношения.

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

Такой способ формирования отношений гарантирует сохранение функциональных зависимостей и выполнение условий третьей нормальной формы (3НФ). При этом не гарантируется выполнение свойства соединения без потерь информации (зависимость соединения). Для проверки этого свойства формируем обобщенный ключ (суперключ), который функционально определяет все атрибуты из множества U: множество атрибутов XU, является обобщенным ключом для U, если XA1,A2,...,AnF+; и для любого YX (Y-истинное подмножество X) выполнено YA1,A2,...,AnF+.

Пусть X  обобщенный ключ. Если какое-либо отношение содержит атрибуты X (в качестве ключа), то совокупность сформированных отношений (схема БД) обладает свойством соединения без потерь информации (теорема 5.8 [1]).Если такого отношения нет, необходимо выполнить проверку по следующему алгоритму.

Исходные данные: декомпозиция ρ(R1, R2,…, Rk) схемы отношения R, определенной на множестве атрибутов U=(A1, A2, ..,An) и множество функциональных зависимостей F.

Шаг 1. Строим начальную таблицу, содержащую k строк и n столбцов. На пересечении i-ой строки и j-ого столбца ставим символ aj, если атрибут Aj принадлежит отношению Ri, иначе – bij.

Шаг 2. Выполняем очередную итерацию – последовательно просматриваем все зависимости из F. Для текущей зависимости XYF выбираем строки из таблицы, которые совпадают по атрибутам X (совпадать могут символы aj и bij). Если для какой-либо строки атрибут Aj*, принадлежащий Y, имеет значение aj*, то значение bij* в выделенных строках заменяется на aj*. Если для всех строк атрибут Aj*, принадлежащий Y, имеет различные значение bij*, то значения bij* в выделенных строках отождествляются (заменяются на одно какое-либо значение bi*j* из выделенных строк). Если после очередной итерации появилась строка, состоящая из одних aj, то декомпозиция ρ обладает свойством соединения без потерь информации. Если после очередной итерации не было сделано ни одной подстановки и в таблице отсутствует строка, состоящая из aj, то декомпозиция не обладает свойством соединения без потерь информации. Конец алгоритма.

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

Проблемы обобщенного ключа и способы их решения:

1. Совокупность атрибутов в обобщенном ключе X не обладает свойством однозначной семантической интерпретации: этому отношению нельзя присвоить однозначное имя. Решения:

а) выявляются потерянные функциональные зависимости на атрибутах X.

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

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

2. Если отношение X оказалось интерпретируемым, то оно может быть не технологичным: на предприятии отсутствует служба, которая отвечала бы за сопровождение данных в этом отношении. Решение:

а) сформировать новую схему документооборота на предприятии.

б) придется признать, что на самом деле существует не одна, а несколько БД, и они не могут быть интегрированы.

Многозначные зависимости. Дано: схема отношения R, определенная на совокупности атрибутов U = {A1, A2, ..., An}, пусть WU, YU и WY=, Z=R\(WY).

Определение. Множество W мультиопределяет множество Y в контексте Z: WY(Z) (многозначная зависимость), если для произвольной реализации r схемы R существует два кортежа t1,t2r таких, что t1[W]=t2[W] , то существует кортеж t3, для которого выполнено:

t3[W]=t1[W], t3[Y]=t1[Y], t3[Z]=t2[Z],

в силу симметрии существует кортеж t4:

t4[W]=t1[W], t4[Y]=t2[Y], t4[Z]=t1[Z].

Замечание. Множества атрибутов Y и Z обычно содержатся в обобщенном ключе, а множество W может оказаться за пределами обобщенного ключа X.

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

После определения многозначной зависимости отношение, соответствующее обобщенному ключу X, декомпозируется на два отношения Rs и Rp , содержащие атрибуты WY и WZ соответственно. Основным признаком правильности определения множества W является отсутствие возможности появления лишних кортежей в объединенной таблице:

RsRp ,

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

Чаще всего отношения Rs и Rp , являются частью существующих отношений Rm(i,j) , сформированных по функциональным зависимостям:

Rs=WY(Rm(s,1) Rm(s,2)⋈…⋈Rm(s,d))

и

Rp=WZ(Rm(p,1) Rm(p,2)⋈…⋈ Rm(p,g))

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

Такие отношения, Rs и/или Rp, считаем существующими и удаляем их из схемы БД.

Завершающим построением этого этапа является установление связей между сформированными отношениями. Формальным основанием для установления связей являются зависимости включения:
  1   2   3


написать администратору сайта