Кузин А.В., Левонисова С.В. Базы данных (5-е издание, 2012) (1084448), страница 4
Текст из файла (страница 4)
И.17.01.05 ФизикаОтлично12Петров П.П.17.01.05 ФизикаХорошо13Сидоров С. С.17.01.05 ФизикаУдовлетворительно14Прохоров Н. И.17.01.05 ФизикаОтлично15Симонов В. В.17.01.05 ФизикаОтличноПусть имеется набор экзаменационных ведомостей — отношений ссовпадающими атрибутами (табл. 1.1, 1.2):ЭКЗАМЕНАЦИОННАЯ ВЕДОМОСТЬ (Группа, Номер зачетнойкнижки, ФИО студента, Дата, Дисциплина, Оценка).Требуется подготовить список студентов, получивших только отличные оценки, в виде таблицы со столбцами Номер зачетной книжки иФИО студента.Т а б л и ц а 1.3Результат операции ограничения для ведомости по математикеНомерГруппа зачетнойкнижкиФИО студентаДатаДисциплинаОценка11Иванов И.И.10.01.05 Математика Отлично14Прохоров Н.
И.10.01.05 Математика Отличноэ J ІИ О 'І & .К АТ а б л и ц а 1.4Результат операции ограничения для ведомости по физикеНомерГруппа зачетнойкнижкиФИО студентаДатаДисциплинаОценка11Иванов И. И.17.01.05 ФизикаОтлично14Прохоров Н. И.17.01.05 ФизикаОтлично15Симонов В. В.17.01.05 ФизикаОтличноТ а б л и ц а 1.5Результат операции проекции дляведомости по математикеНомер зачетнойкнижкиФИО студентаТ а б л и ц а 1.6Результат операции проекции дляведомости по физикеНомер зачетнойкнижкиФИО студента1Иванов И. И.1Иванов И.
И.4Прохоров Н.И.4Прохоров Н. И.5Симонов В. В.Для экзаменационных ведомостей нужной группы сначала выполнимограничение исходных отношений, отобрав из каждого из них в новоеотношение кортежи, удовлетворяющие следующему условию:Оценка = Отлично.В результате получим списки отличников группы по дисциплинам(табл. 1.3, 1.4).Теперь выполним проекцию полученных отношений, отобрав из каждого из них только атрибуты Номер зачетной книжки и ФИО студента.Получим новые списки отличников, в которых остались только номеразачетных книжек и фамилии студентов (табл. 1.5, 1.6).Таким образом получим искомое отношение — СПИСОК ОТЛИЧНИКОВ, содержащее номера зачетных книжек и фамилии, общие длявсех списков отличников (табл. 1.7).Т а б л и ц а 1.7СПИСОК ОТЛИЧНИКОВНомер зачетнойкнижки18ФИО студента1Иванов И.
И.4Прохоров Н. И.5.Разность отношений — создание нового отношения, содержащего строки 1-го операнда, отсутствующие во 2-м операнде. При этом операнды должны иметь одинаковые атрибуты.Пример 1.6. Требуется, используя ежемесячные отчеты цехов (см.пример 1.4), подготовить сведения о выпуске новых видов продукции запоследний квартал.Для решения этой задачи выполняем ограничение отношения ВЫПУСК ПРОДУКЦИИ по следующему условию: дата выпуска меньшепоследней даты прошлого квартала.Результат такого ограничения поместим в исходную таблицу.Затем выполним следующее ограничение для исходной таблицы: датавыпуска меньше первой даты прошлого квартала.
Полученный результатзанесем в конечную таблицу.Разность отношений исходной и конечной таблиц даст искомые сведения.6.Произведение отношений — создание нового отношения, вкотором имеются все атрибуты 1-го и 2-го операндов, а строкиполучены попарным сцеплением строк их отношений. Число кортежей — мощность нового отношения — равна произведению мощностей 1-го и 2-го отношений. При этом множества атрибутов отношений не должны пересекаться.Произведение отношений используется при решении задачподбора пар из двух множеств, например поставщиков и потребителей.
Для этого сначала составляют все возможные пары, азатем по конкретному критерию отбирают из них подходящие.Пример 1.7. По двум заданным отношениям (табл. 1.8, 1.9) требуетсянайти произведение (табл. 1.10).Т а б л и ц а 1.8Т а б л и ц а 1.9ПОСТАВЩИКПОТРЕБИТЕЛЬПоставщикПотребительПоставщик 1Потребитель 1Поставщик 2Потребитель 2Т а б л и ц а 1.10Результат операции произведенияПоставщикПотребительПоставщик 1Потребитель 1Поставщик 1Потребитель 2Поставщик 2Потребитель 1Поставщик 2Потребитель 2197. Деление отношений — создание нового отношения, содержащего атрибуты 1-го операнда, отсутствующие во 2-м операнде,и кортежи 1-го операнда, которые совпали с кортежами 2-го операнда.
Для выполнения этой операции 2-й операнд должен содержать лишь атрибуты, совпадающие с атрибутами 1-го.Пример 1.8. Требуется отобрать студентов группы, получающих стипендию, используя список, содержащий следующие сведения: ФИО,дата рождения, шифр группы и признак наличия стипендии (да, нет).Для решения задачи создадим вспомогательное отношение с атрибутами Шифр группы и Признак наличия стипендии.
Затем заполним одинкортеж этого отношения, поместив в него шифр заданной группы иотметку о получении стипендии (да).В результате деления исходного списка на вспомогательное отношение получим искомый список с атрибутами ФИО и Дата рождения.8. Соединение отношений — создание нового отношения, кортеж которого является результатом сцепления кортежей операндов (исходных отношений).Различают соединения отношений двух видов: естественное ипо условию.При соединении отношений по условию производятся сцепление строк их операндов и проверка полученной строки на соответствие заданному условию. Если условие выполнено, то полученная строка включается в результирующее отношение.При естественном соединении отношений производятся сцепление строк их операндов и включение полученной строки в результирующее отношение без проверки.
Такое соединение используют, когда отношения-операнды обладают общими атрибутами.Пример 1.9. Требуется соединить отношения СТУДЕНТ (табл. 1.11) иОЦЕНКА (табл. 1.12), дня которых общим атрибутом является Номер зачетной книжки.Результат операции соединения представлен в табл. 1.13.Т а б л и ц а 1.11СТУДЕНТФИОДата рожденияНомер зачетной книжкиИванов И. И.22.12.801234Петров П. П.12.05.801235Сидоров С. С.30.09.80123620Т а б л и ц а 1.12ОЦЕНКАКод дисциплиныНомер зачетной книжкиОценка112344112353212344212353Т а б л и ц а 1.13Результат операции соединенияДатарожденияНомерзачетнойкнижкиКоддисциплиныНомерзачетнойкнижкиОценкаИванов И. И.22.12.801234112344Иванов И.
И.22.12.801234212344Петров П. П.12.05.801235112353Петров П.П.12.05.801235212353Сидоров С. С.30.09.801236ФИО1.8. Нормализация баз данныхОдни и те же данные могут группироваться в таблицы различными способами. Группировка атрибутов в отношениях должнабыть рациональной, т. е. минимизирующей дублирование данныхи упрощающей процедуры их обработки и обновления. Устранение избыточности данных, являющееся одной из важнейших задач при проектировании баз данных, обеспечивается нормализацией.Нормализация — это формальный аппарат ограничений на формирование таблиц (отношений), который позволяет устранитьдублирование, обеспечивает непротиворечивость хранимых данных и уменьшает трудозатраты на ведение (ввод, корректировку)базы данных.Процесс нормализации заключается в разложении (декомпозиции) исходных отношений БД на более простые отношения.При этом на каждой ступени этого процесса схемы отношенийприводятся в нормальные формы.
Для каждой ступени нормализации имеются наборы ограничений, которым должны удовлет21ворять отношения БД. Тем самым удаляется из таблиц базы избыточная неключевая информация.Процесс нормализации основан на понятии функциональнойзависимости атрибутов: атрибут А зависит от атрибута В (В -» А),если в любой момент времени каждому значению атрибута В соответствует не более одного значения атрибута А.Зависимость, при которой каждый неключевой атрибут зависит от всего составного ключа и не зависит от его частей, называется полной функциональной зависимостью. Если атрибут А зависитот атрибута В, а атрибут В зависит от атрибута С (СВА), нообратная зависимость при этом отсутствует, то зависимость С от Аназывается транзитивной.Общее понятие нормализации подразделяется на нескольконормальных форм.Информационный объект (сущность) находится в первой нормальной форме (1НФ), когда все его атрибуты имеют единственное значение.
Если в каком-либо атрибуте есть повторяющиесязначения, объект (сущность) не находится в 1НФ, и упущен, покрайней мере, еще один информационный объект (еще одна сущность).Например, задано следующее отношение:ПРЕДМ ЕТ (Код предмета, Название, Цикл, Объем часов,Преподаватели).Это отношение не находится в 1НФ, так как атрибут Преподаватели подразумевает возможность наличия нескольких фамилийпреподавателей в записи, относящейся к какому-то конкретномупредмету, что соответствует участию нескольких преподавателейв ведении одной дисциплины.Переведем атрибут с повторяющимися значениями в новуюсущность, назначим ей первичный ключ (Код преподавателя) исвяжем с исходной сущностью ссылкой на ее первичный ключ{Код предмета). В результате получим две сущности, причем вовторую сущность добавятся характеризующие ее атрибуты:ПРЕДМЕТ (Код предмета, Название, Цикл, Объем часов);ПРЕПОДАВАТЕЛЬ (Код преподавателя, ФИО, Должность,Оклад, Адрес, Код предмета).Полученные выражения соответствуют случаю, когда несколько преподавателей могут вести один предмет, но каждый преподаватель не может вести более одной дисциплины.
А если учесть,что на самом деле один лектор может читать более одной дисциплины, так же как одну и ту же дисциплину могут читать несколько лекторов, необходимо отказаться от жесткой привязки препо22давателя к предмету в сущности ПРЕПОДАВАТЕЛЬ, создав дополнительную сущность ИЗУЧЕНИЕ, которая будет показывать,как связаны между собой преподаватели и предметы:ПРЕДМЕТ (Код предмета, Название, Цикл, Объем часов);ПРЕПОДАВАТЕЛЬ (Код преподавателя, Ф ИО, Должность,Оклад, Адрес);ИЗУЧЕНИЕ (Код предмета, Код преподавателя).Информационный объект находится во второй нормальнойформе (2НФ), если он уже находится в первой нормальной формеи каждый его неидентифицирующий (описательный) атрибут зависит от всего уникального идентификатора информационногообъекта.
Если некий атрибут не зависит полностью от уникального идентификатора информационного объекта, значит, он внесен в состав этого информационного объекта ошибочно и его необходимо удалить. Нормализация в этом случае производится путем нахождения существующего информационного объекта, к которому данный атрибут относится, или созданием нового информационного объекта, в который атрибут должен быть помещен.Возвратившись к последнему примеру, заметим, что атрибутЦикл в сущности ПРЕДМЕТ, характеризующий принадлежностьпредмета к циклу гуманитарных, естественно-научных, общепрофессиональных или специальных дисциплин, не полностью зависит от уникального идентификатора Код предмета, так как разные предметы могут иметь одно и то же значение атрибута Цикл.Перенесем этот атрибут в новую сущность ЦИКЛ и получим четыре взаимосвязанных сущности:ПРЕДМЕТ (Код предмета, Название, Объем часов, Код цикла);ЦИКЛ (Код цикла, Название цикла);ПРЕПОДАВАТЕЛЬ (Код преподавателя, ФИО, Должность,Оклад, Адрес);ИЗУЧЕНИЕ (Код предмета, Код преподавателя).Информационный объект находится в третьей нормальнойформе (ЗНФ), если он уже находится во второй нормальной формеи ни один его описательный атрибут не зависит от каких-либодругих описательных атрибутов.