Цель: получить навыки определения функциональных зависимостей (ФЗ) между атрибутами и применения правил вывода для устранения избыточных ФЗ, а также проведения декомпозиции.
Краткие теоретические сведения
Функциональная зависимость (ФЗ) между атрибутами существует в случае, если каждому значению атрибута-детерминанта ФЗ в любой момент времени только одно значение атрибута-зависимостной части ФЗ.
Избыточными являются ФЗ, которые несут в себе информацию, извлекаемую из других ФЗ, входящих в диаграмму для данного универсального отношения. Такие ФЗ можно убирать из диаграммы без ущерба для проектируемой системы баз данных. Кроме того, такие ФЗ необходимо убирать, т.к. в противном случае возникнут сложности в ходе последующей декомпозиции.
Декомпозицией отношения называется разбиение отношения, не находящегося в нормальной форме Бойса-Кодда, на несколько. При этом для проведения декомпозиции выбирают ФЗ, которая является помехой нахождению отношения в НФБК, по правилу цепочки: определяют цепочку ФЗ вида A->B->C и выбирают правую часть - в данном случае В->С. Далее получают из первоначального отношения два - одно, полностью составленное из атрибутов выбранного для декомпозиции ФЗ (например, В и С), а другое включает в себя все атрибуты первоначального без зависимостной части выбранного ФЗ (например, С). Для полученных отношений проверяют их нахождение в НФБК и процесс, при необходимости, повторяют.
Ход работы
1. Ознакомьтесь с соответствующим лекционным материалом и краткими теоретическими сведениями.
2. Составьте из атрибутов, входящих во все отношения индивидуального задания к лабораторной работе №2, универсальное отношение и постройте для него диаграмму ФЗ для всех атрибутов.
|
3. Постройте по правилам вывода минимальное покрытие для диаграммы ФЗ.
4. Проверьте нахождение универсального отношения в НФБК, определите ФЗ для проведения декомпозиции по известным из лекционного материала методам.
5. Проведите декомпозицию с проверкой получаемых отношений на их нахождение в НФБК и проведением их декомпозиции (при необходимости).
6. Полученный набор отношений сравните с набором, предложенным в качестве индивидуального задания к лабораторной работе №2 и с полученным вами набором при выполнении лабораторной работы №4. Сделайте выводы о результатах декомпозиции.
Отчет по лабораторной работе №6 должен содержать тему работы, цель, ход выполнения работы (кратко), первоначальную диаграмму ФЗ, диаграмму минимального покрытия, диаграммы полученных в ходе декомпозиции отношений, схемы этих отношений.
Лабораторная работа №6
Построение запросов к базам данных
Цель работы: получить навыки построения запросов к системам баз данных средствами интерфейса MS Access и при помощи операторов языка SQL.
Краткие теоретические сведения
Статический запрос. Описывающий его SQL-оператор не изменяется в процессе выполнения приложения.
Динамический запрос. Описывающий его SQL-оператор частично изменяется в процессе выполнения приложения путем использования параметров, которые в качестве переменных могут быть использованы в основном тексте программы модуля.
Формируемый запрос. Описывающий его SQL-оператор создается в процессе выполнения приложения путем построчного заполнения свойства SQL.
|
Текст запроса с использованием оператора SELECT состоит из следующих составных частей:
SELECT <что выводится>
FROM <откуда (источник)>
WHERE <условие связи таблиц и /или условие отбора записей в выборку>
ORDER BY <порядок вывода данных>
GROUP BY <колонки, по которым выполняется группирование>
HAVING <условие группирования записей в одну строку>
Ход работы
1. Ознакомьтесь с соответствующим лекционным материалом и краткими теоретическими сведениями к данной работе.
2. Выполните запрос, указанный в индивидуальном задании, при помощи операций реляционной алгебры.
3. Составьте текст запроса при помощи операторов языка SQL как объект в MS Access. Выполните запрос к таблицам базы данных, созданным в качестве индивидуального задания к лабораторной работе №5. Проверьте соответствие свойств выборки, выполняемой вашим запросом, требованиям индивидуального задания.
4. Создайте приложение Visual Studio (C#, проект Window Forms) и выполните подключение к составленному в п.3 запросу при помощи компонента DataGridView. Организуйте просмотр результатов запроса в компоненте DataGridView.
5. Включите в отчет листинг процедуры, осуществляющей запуск запроса на выполнение, а также текст запроса на SQL.
Для защиты лабораторной работы необходимо:
- наличие отчета по работе с текстом индивидуального задания, листингом реализующей его программы и выводом;
- знание осуществляемых операторами программы действий;
- знание ответов на контрольные вопросы к данной работе.
|
Индивидуальное задание
Осуществите при помощи операторов языка SQL соединение таблиц и отбор записей, которые удовлетворяют следующим критериям (по вариантам) Создайте запросы и проверьте их работоспособность при помощи SQL Builder или в ACCESS.
Ва-ри-ант | Содержание запросов |
1. | 1) содержат информацию о поставках определенного вида товаров предприятиями определенного типа собственности; 2) содержат информацию о предприятиях, участвовавших в поставках определенного вида продукции, с указанием количества таких операций для каждого предприятия; 3) содержат информацию об операциях, в которых участвовало определенное предприятие, и о стоимости участвовавших в каждой из этих операций товаров; |
2. | 1) содержат информацию о поставках продукции рейсами, совершаемыми в определенный промежуток времени и при помощи определенного транспортного средства; 2) содержат информацию обо всех транспортных средствах и рейсах, в которых они участвовали, пункт назначения которых входит в список из нескольких значений, а время отправления входит в указанный диапазон; 3) содержат информацию о транспортных средствах, участвовавших хотя бы в одной операции поставки, и о количестве операций, в которых они участвовали; |
3. | 1) содержат информацию о работниках, производящих определенный вид продукции на определенном типе оборудования; 2) содержат информацию об изделии с минимальной нормой времени на изготовление; 3) содержат информацию о работниках, чей разряд входит в указанный список значений, и о количестве произведенных этими работниками изделий; |
4. | 1) содержат информацию об объектах строительства, используемых в их постройке расходных материалах и организациях, осуществляющих постройку; 2) содержат информацию о видах организаций и количестве объектов, строящихся каждым видом организаций; 3) содержат информацию об объектах, виды работ на которых входят в указанный диапазон значений, и суммарной стоимости расходных по каждому такому объекту; |
5. | 1) содержат информацию об изделиях и входящих в них деталях; 2) содержат информацию о деталях, который входят в изделия при помощи указанного вида операции сборки и для которых норма времени на сборку больше указанного значения; 3) содержат информацию об изделиях и их весе, складывающемся из веса входящих в них деталей; |
6. | 1) содержат информацию об ответственных за оборудование, на котором был совершен брак в определенный день; 2) содержат информацию об оборудовании и об объемах брака, произведенного на нем в указанный период времени; 3) содержат информацию об ответственных, должность которых входит в указанный список, и об объемах произведенного им брака; |
7. | 1) содержат информацию о задачах, выполняемых на определенном типе оборудования; 2) содержат информацию о задачах и суммарной мощности оборудования, участвующего в решении каждой из них; 3) содержат информацию о задачах, выполняемых определенным подразделением-исполнителем в определенный период; |
8. | 1) содержат информацию о конкретном подразделении и программных средствах, которые находятся в подразделении на текущий момент; 2) содержат информацию о количестве программных средствах, которые имеются в каждом подразделении; 3) содержат информацию о количестве определенных видов программных средств; |
9. | 1) содержат информацию о документах, находящихся на определенном носителе в определенном месте хранения; 2) содержат информацию о видах носителей и общем количестве носителей по каждому виду; 3) содержат информацию о документах, имеющих место нахождения из определенного списка; |
10. | 1) содержат информацию о работниках и документах, которые находятся у них на руках; 2) содержат информацию о видах носителей, входящих в указанный список значений, и о количестве документов, которые располагаются на этих видах носителей; 3) содержат информацию о работниках, для которых количество выданных им документов выше среднего уровня; |
11. | 1) содержат информацию об объектах авторских прав, для которых выданы патенты, документах на охрану прав и владельцах этих прав; 2) содержат информацию о владельце авторских прав, у которого имеется максимальное число документов на охрану прав; 3) содержат информацию о документах на охрану прав, которые выданы для работников подразделений, входящих в указанный список значений; |
12. | 1) содержат информацию о работниках и о книгах, срок возврата которых был просрочен; 2) содержат информацию о работниках должностей, входящих в указанный перечень, и о количестве книг, находящихся на руках у каждого работника; 3) содержат информацию о книгах с техническим состоянием ниже указанного, и о работниках, у которых эти книги находились в указанный период; |
13. | 1) содержат информацию о работниках, об их выходах за пределы завода в указанный период времени и о документах для подтверждения выхода; 2) содержат информацию о работниках должностей, входящих в указанный перечень, и об общем времени нахождения их за пределами завода в указанный срок; 3) содержат информацию о работниках, просрочивших время нахождения за пределами предприятия, и датах соответствующих выходов; |
14. | 1) содержат информацию об основным средствах, подвергающихся определенному виду операций в конкретном подразделении; 2) содержат информацию о минимальной и максимальной стоимости основных средств по различным подразделениям, и о подразделениях; 3) содержат информацию о подразделениях, местонахождение которых входит в определенный список; |
15. | 1) содержат информацию о налогах, которые платит конкретный работник по заработной плате за различные трудозатраты; 2) содержат информацию о работниках и об объеме трудозатрат в единицах измерения, осуществленных каждым работником; 3) содержат информацию о трудозатратах, осуществленных в определенный период времени, и об осуществивших их работниках |
16. | 1) содержат информацию о видах ремонтов и ремонтных мероприятиях, которым подверглось конкретное оборудование; 2) содержат информацию об общем количестве времени простоя за определенный период по каждому оборудованию; 3) содержат информацию об оборудовании и всем видам ремонтов, которым оно подвергалось; |
17. | 1) содержат информацию об измеряемых характеристиках конкретного оборудования и приборах, при помощи которых эти измерения выполняются; 2) содержат информацию об оборудовании и суммарной потребляемой мощности приборов, которые на нем установлены; 3) содержат информацию о приборах, установленных в определенный период времени, и об оборудовании, на котором они установлены; |
18. | 1) содержат информацию о мероприятиях, выполненных конкретным ответственным, и результатах их проведения; 2) содержат информацию о мероприятиях со степенью важности, не ниже указанной, и о результатах их выполнения; 3) содержат информацию об ответственных и о средней оценке деятельности каждого по результатам выполнения мероприятий; |
19. | 1) содержат информацию об акционерах с местом жительства, входящим в указанный список, и акциях, которыми они владеют; 2) содержат информацию об акционерах с количеством детей выше указанного, и о размерах средств акционерного общества по акциям, которыми владеет каждый из таких акционеров; 3) содержат информацию о должностях акционеров и о количестве акций, которыми владеют в сумме группы акционеров с одинаковыми должностями; |
20. | 1) содержат информацию о работниках, занимавших конкретную должность, и датах их прихода-ухода с должности; 2) содержат информацию о должностях и занимавших их в указанный период работниках; 3) содержат информацию о работниках и количестве занимаемых ими должностей в указанный период; |
21. | 1) содержат информацию о работниках и учебных мероприятиях, в которых они приняли участие в указанный период; 2) содержат информацию о видах учебных мероприятий и о количестве работников, принявших в них участие в указанный период; 3) содержат информацию о работниках должностей, входящих в указанный список, участие которых в учебном мероприятии закончилось указанным результатом, и о соответствующих мероприятиях; |
22. | 1) содержат информацию об оборудовании, на котором обрабатывался определенный расходный материал, и заказах, на основании которых производилась обработка; 2) содержат информацию об оборудовании и общей его загрузке в часах по выполняемым заказам; 3) содержат информацию о заказах, выполненных на определенном оборудовании, и о стоимости расходных материалов по каждому из заказов; |
23. | 1) содержат информацию о рекламных мероприятиях и кампаниях, проводившихся в конкретном месте размещения; 2) содержат информацию о местах размещения с периодичностью, входящей в указанный список значений, в которых проводились мероприятия с объемом в единицах размещения не меньше указанного; 3) содержат информацию о рекламных компаниях, сгруппированных по ответственным, с указанием общего объема рекламных мероприятий для таких групп в единицах размещения; |
24. | 1) содержат информацию о складах, на которых хранится определенный вид продукции; 2) содержат информацию о продукции, у которой дата изготовления старше более чем на год даты поступления на хранение; 3) содержат информацию о складах и об общей стоимости хранимых на каждом из них продукции и товаров; |
25. | 1) содержат информацию о транспортных средствах, задействованных в рейсах, проводимых в определенный промежуток времени, и гаражах, в которых они содержатся; 2) содержат информацию о гаражах и о количестве единиц транспортных средств, которые располагаются в каждом из них; 3) содержат информацию о транспортных средствах, чье соотношение пробег/техническое состояние ниже среднего; |
26. | 1) содержат информацию о всех бюллетенях, выписанных конкретным врачом, и работниках, которым эти бюллетени были выписаны; 2) содержат информацию о работниках, у которых соотношение (количество посещений врача/число полученных бюллетеней) выше среднего; 3) содержат информацию о врачах и о общем сроке выписанных каждым врачом бюллетеней; |
27. | 1) содержат информацию о блюдах и входящих в них продуктах; 2) содержат информацию о блюдах, у которых соотношение калорийность/стоимость выше среднего; 3) содержат информацию о продуктах, у которых тип продукта входит в указанный список, и о количестве блюд, приготавливаемых из каждого такого продукта; |
28. | 1) содержат информацию о курортной зоне, на которой отдохнуло максимальное количество работников, и ее базах отдыха; 2) содержат информацию о базах отдыха, для которых вид транспорта входит в указанный диапазон, и на которых отдыхали хоть раз работники указанной должности; 3) содержат информацию о работниках и базах отдыха, на которых они отдохнули в указанный период; |
29. | 1) содержат информацию о работниках, получивших жилье в конкретном здании; 2) содержат информацию о среднем возрасте работников, получивших жилье в указанный период времени; 3) содержат информацию о зданиях и об общей жилплощади жилья в каждом здании, полученного работниками должности, входящей в указанный список значений; |
30. | 1) содержат информацию о мероприятиях, проведенных в конкретном месте проведения, и их участниках; 2) содержат информацию о мероприятиях, вид которых входит в указанный диапазон значений, и стоимости их проведения; 3) содержат информацию о участниках, стоимость выступления которых выше указанной, и количестве мероприятий, в которых за указанный период времени поучаствовал каждый из участников; |
Примечание к индивидуальному заданию. Записи результирующей выборки должны быть упорядочены по 1-2 полям.
Контрольные вопросы
1. Виды и характеристики теоретических языков запросов к БД.
2. Реляционная алгебра и ее назначение. Что означает свойство замкнутости выражений реляционной алгебры?
3. Операции реляционной алгебры: разность, объединение, декартово произведение, проекция, селекция, пересечение, частное, соединение отношений и естественное соединение.
4. Сравнение языков исчисления и алгебраических языков (реляционной алгебры).
5. Дополнительные возможности языков манипулирования данными в реляционных СУБД по сравнению с теоретическими языками.
6. Язык SQL, его назначение, базовые операторы языка SQL.
7. Какие операции реляционной алгебры и при помощи каких опций выполняет оператор SELECT языка SQL?
Лабораторная работа №7
Подключение к отдельной таблице БД и работа с ней с использованием компонентов ADO.NET Теоретические сведения