Базы данных. Лекции - База данных, лекционный курс. Базы данных лекционный курс
Скачать 1.23 Mb.
|
Тесты для самоконтроля 1. Отношением называют: а) набор значений элементов данных одного типа; б) множество кортежей; в) некоторое подмножество декартова произведения доменов. 2. Набор значений элементов данных одного типа, отвечающий поставленным условиям, называется: а) отношением; б) доменом; в) декартовым произведением k доменов. 3. В результате разности двух отношений получится отношение, содержащее записи, принадлежащие: а) первому отношению; б) одновременно двум отношениям; в) либо первому отношению, либо второму, либо им обоим. 4. К числу операций, применяемых к отношениям с одной и той же схемой, относится операция: а) объединения; б) деления; в) пересечения. 5. Соединяемые столбцы повторяются: а) при естественном соединении; б) при эквисоединении; в) при тета – соединении. 6. Отношения могут комбинироваться только по одноименным столбцам: а) при тета – соединении; б) при естественном соединении; в) при эквисоединении. 7. К одному отношению применяются следующие операции: а) выборка, проекция; б) объединение, разность, пересечение; в) произведение, деление. Задания для самостоятельного выполнения 1. Даны отношения: r, содержащее информацию о женщинах – читательницах библиотеки, и s, содержащее информацию о читателях – должниках. r
s
Найти женщин – должников библиотеки. 2. Даны отношения: Выдача, содержащее информацию по всем книгам, выданным в определенный период времени, и Книги, содержащее коды нескольких пользующихся спросом книг. Выдача Книги
Найти читателей, которые брали все указанные книги. 3. Используя инструкции SQL, а) создать таблицу Читатели с пятью полями: целочисленным полем Код и текстовыми полями определенного размера: Пол, Фамилия, Адрес, Телефон. Для всех полей, кроме последнего, определить обязательный ввод данных; б) изменить структуру таблицы Читатели, переопределив тип поля Код с целочисленного на текстовый; в) определить в таблице Читатели поле Код как ключевое; г) создать индекс по полю Пол; д) найти всех читателей, имеющих телефон; е) подсчитать количество женщин и мужчин – читателей библиотеки; ж) изменить фамилию какой-либо читательницы библиотеки; з) добавить в таблицу информацию о новом читателе библиотеки; и) удалить из таблицы информацию обо всех мужчинах – читателях библиотеки; к) удалить из таблицы индекс по полю Пол; л) удалить таблицу Читатели. 5. НОРМАЛИЗАЦИЯ ОТНОШЕНИЙ 5.1. Сущность нормализации Под нормализацией отношений понимают процесс построения оптимальной структуры таблиц и связей в реляционной базе данных. Теория нормализации основана на том, что определенный набор таблиц обладает лучшими свойствами при включении, модификации и удалении данных, чем все остальные наборы таблиц, с помощью которых могут быть представлены те же данные. Нормализованным отношением называют отношение, каждый домен которого содержит только атомарные значения. Отношение, даже если оно нормализовано, может обладать нежелательными свойствами - нормальная форма не обеспечивает сохранность набора отношений в процессе удаления, включения и обновления данных, ввиду существующей зависимости между последними, которая называется функциональной зависимостью (F-зависимостью). Рассмотрим БД для консультанта университета, состоящую из одной таблицы Консультант со следующими полями: № студента, ФИО студента, № комнаты, № телефона, № курса, Семестр1, Оценка:
Проблема включения. Когда у консультанта появляется новый консультируемый им студент, для него необходимо включить в БД кортеж с пустыми ячейками атрибутов: Семестр, Оценка, что повлечет за собой аномалии при поиске и редактировании данных (например, в результате запроса «Выдать список фамилий и номеров студентов, получивших хотя бы одну оценку ниже 3» в число таких студентов попадут такие, которые не закончили ни одного курса). Проблема обновления. В отношении Консультант большое число избыточных данных. Избыточность (дублирование) данных всегда свидетельствует о возможности модификации только части требуемых данных с помощью операции обновления. Отношение характеризуется как явной, так и неявной избыточностью. Явная избыточность: фамилия студента, его номер комнаты и номер телефона появляются в отношении не один раз. Например, если студент Васильев О.И. обратится к консультанту и сообщит ему об изменении номера своей комнаты, то консультант будет вынужден проследить изменение этого номера во всех четырех кортежах во избежание противоречивости данных. Неявная избыточность: один и тот же номер телефона имеют все студенты, живущие в одной комнате. Допустим, Васильев О.И. извещает консультанта о том, что его номер телефона изменен на 7777, забыв при этом сообщить о друге по комнате, консультант меняет телефонный номер в кортежах для Васильева О.И. – в результате правильный номер телефона будет фактически утерян. Выясним различие между дублированием данных и избыточным дублированием данных. Рассмотрим отношение СлужащийНачальник:
Теперь рассмотрим отношение СлужащийНачальникТелефон (предполагаем, что каждый начальник имеет только один телефонный номер):
Для исключения избыточности телефонных номеров данное отношение разбивается на следующие два: СлужащийНачальник НачальникТелефон
Проблема удаления. В экземпляре1 отношения Консультант имеется только один кортеж для студента с фамилией Гатаулин. Предположим, консультант узнает, что этот студент не закончил курс ООП, как это отмечено, и удаляет соответствующий кортеж, что приведет к потере из БД информации об этом студенте. Дадим определение функциональнойзависимости между данными. Пусть имеется отношение r(A1, A2, …, An). Атрибут А2 отношения r функционально зависит от атрибута A1 того же отношения, если в каждый момент времени каждому значению атрибута А1 соответствует не более, чем одно значение атрибута А2 (то есть функциональная зависимость А2 от А1 означает, что если в любой момент времени известно значение А1, то можно однозначно получить и значение А2). Обозначается: А1 А2. Рассмотрим отношение Студент (№ зачетной книжки, № группы, ФИО). Функционально зависимы следующие атрибуты: № зачетной книжки № группы; № зачетной книжки ФИО. Если предположить, что имеются полные однофамильцы, то: ФИО ↛ № зачетной книжки; ФИО ↛ № группы. Атрибут может функционально зависеть не от какого-то одного атрибута, а от целой группы атрибутов, то есть А1 и А2 могут быть составными. В связи с этим дадим определение полной функциональной зависимости. Если в отношении r для множеств атрибутов А1 и А2 имеет место А1 А2 и при этом ↛ А2, где – подмножество А1 ( ), то говорят, что множество атрибутов А2 функционально полно зависит от всего множества А1, но не зависит ни от какого подмножества А1. Единственный способ определения F-зависимостей для любого отношения заключается в тщательном анализе семантики атрибутов этого отношения. В этом смысле зависимости являются фактически отображением связей, существующих в реальном мире. В качестве примера обратимся к атрибутам отношения Консультант. Функционально зависимы следующие атрибуты: № студента ФИО студента; № студента № комнаты; № студента № телефона; № комнаты № телефона; № телефона № комнаты; № студента, № курса, Семестр Оценка. Другой способ представления функциональных зависимостей: |