48501 (Развитие теории и практики баз данных), страница 2

2016-07-31СтудИзба

Описание файла

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

Онлайн просмотр документа "48501"

Текст 2 страницы из документа "48501"

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

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

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

Рис 2. Фрагмент БД с объектом-целью

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

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

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

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

Выбор схемы БД определяет возникновение в процессе ее эксплуатации тех или иных аномалий обновления.

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

Аномалии модификации - возникновение несогласованности записей в

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

Для отношения "Студент" (ФИО, Группа, Староста), где в столбце "Группа" хранится полное название группы, а столбец "Староста" содержит ФИО старосты группы, изменение значения "Староста" (например, для устранения ошибки) может привести к существованию более одного старосты одной и той же группы.

Аномалии удаления - удаление лишней информации при удалении записи.

Для отношения "Студент" (ФИО, Группа, Староста), удаление студента может привести к удалению из БД и ФИО старосты группы (в том случае, если для данной группы запись - единственная).

Аномалии вставки - добавление лишней информации или возникновение противоречащих значений в некоторых столбцах при вставке новой записи

Для отношения "Студент" (ФИО, Группа, Староста), где в столбце "Группа" хранится полное название группы, а столбец "Староста" содержит ФИО старосты группы, добавление названия новой группы повлечет обязательное определение ФИО студента и старосты, в то время как эти данные могут быть пока не известны. В то же время, при добавлении нового студента значение поля "Староста" в новой записи может не совпадать со значением данного поля для другого студента этой же группы.

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

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

Указанные аномалии связаны с избыточностью (дублированием) данных в БД.

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

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

Если даны два атрибута X и Y некоторого отношения, то говорят, что Y функционально зависит от X, если в любой момент времени каждому значению X соответствует ровно одно значение Y. Функциональная зависимость обозначается X◊Y.

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

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

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

Рассмотрим предметную область - распределение учебной нагрузки по

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

предмет ведет только один преподаватель. Помимо личных данных преподавателя необходимо хранить данные по группе (Наименование, Староста) и для пары (Преподаватель, Группа) необходимо хранить список предметов, которые данный преподаватель преподает в данной группе.

В качестве исходной таблицы возьмем:

А

В

С

Личные данные преподавателя:

ФИО, Должность, Оклад

Данные группы: Наименование, Староста

Предметы

В качестве первичного ключа таблицы возьмем столбцы "Личные данные Преподавателя" и "Данные группы", поскольку существует только одна ФЗ: AB◊C.

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

Выполним преобразование для таблицы примера:

1. Столбец личных данных преобразуем в четыре столбца:

"Преподаватель" (ФИО), "Табельный №", "Должность", "Оклад". Теперь ключ - "Табельный №" и "Данные группы".

2. Столбец "Данные группы" преобразуем в два столбца: "Группа" (Наименование), "Староста". Теперь ключ - "Табельный №" и "Группа".

3. Столбец "Предметы" преобразуем в столбец "Предмет". Как альтернатива, можно создать новую таблицу "Предметы", которая будет содержать первичный ключ исходного отношения ("Табельный №", "Группа") и столбец "Предмет".

В результате получено отношение А В С D E F

Преподаватель Должность Оклад Группа Староста Предмет

Выявленные функциональные зависимости:

А◊В, С; В◊С; D◊Е; DF◊А.

Первичный ключ: DF, так как от DF зависят остальные атрибуты.

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

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

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

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

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

Пример:

Отношение

А В С D E F

Преподаватель Должность Оклад Группа Староста Предмет

находится в 1НФ.

При этом отношение допускает следующие аномалии обновления:

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

б) аномалия удаления - при удалении информации о предмете, читаемом преподавателем в некоторой группе, может потеряться и другая информация - о старосте группы;

в) аномалия модификации - при изменении старосты в группе следует обновить все записи с таким же значением "Группы".

Преобразуем отношение из примера из 1НФ во 2НФ:

В зависимости D◊E атрибут E функционально зависит от части ключа DF.

Таким образом формируем:

а) новое отношение без частичной зависимости:

ПК: DF, ФЗ: А◊B,C; B◊C; DF◊A.

б) новое отношение для бывшей частичной зависимости

D E

Руководство Группы (Группа, Староста)

ПК: D, ФЗ: D◊E.

Теперь в обоих отношениях отсутствуют частичные зависимости от ключа.

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

Важным моментом является возможность восстановления исходной схемы естественным соединением полученных отношений (по атрибуту "Группа")

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

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

Пример:

Отношение

A B C D F

(Преподаватель, Должность, Оклад, Группа, Предмет)

ПК: DF, ФЗ: DF◊А◊B◊C.

находится во второй нормальной форме.

При этом оно допускает следующие аномалии обновления:

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

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

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

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

Преобразуем данное отношение из примера из 2НФ в 3НФ:

A B C D F

(Преподаватель, Должность, Оклад, Группа, Предмет)

ПК: DF, ФЗ: DF◊А◊В◊C.

I. Cпроецируем отношение на атрибуты A, B, C

A B C

(Преподаватель, Должность, Оклад)

ПК: A, ФЗ: А◊B◊C.

II. Заметим, что полученное отношение вновь содержит транзитивную зависимость, снова декомпозируем его на два отношения:

B C

Зарплата (Должность, Оклад)

ПК: B, ФЗ: B◊C.

A B

Обязанность (Преподаватель, Должность,)

ПК: A, ФЗ: A◊B.

б) спроецируем отношение на атрибуты, кроме B, C

A D F

План (Преподаватель, Группа, Предмет)

ПК: DF, ФЗ: DF◊A.

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

5. Языки запросов SQL и QBE

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

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

Для подготовки запросов с помощью различных СУБД чаще всего используются два основных языка описания запросов:

QBE (Query By Example) - язык запросов по образцу;

SQL (Structured Query Language) - структурированный язык запросов.

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

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

Стандарт SQL определяется ANSI (American National Standard Institute - Американским Национальным Институтом Стандартов.

Имеются два SQL: Интерактивный (Interactive) и Встроенный (Embedded). Большей частью, обе формы работают одинаково, но используются различно.

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

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

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
430
Средний доход
с одного платного файла
Обучение Подробнее