Автор работы: Пользователь скрыл имя, 19 Декабря 2012 в 10:22, дипломная работа
Увеличение объема и структурной сложности хранимых данных, расширение круга пользователей информационных систем привели к широкому распространению наиболее удобных и сравнительно простых для понимания реляционных (табличных) СУБД. Для обеспечения одновременного доступа к данным множества пользователей, нередко расположенных достаточно далеко друг от друга и от места хранения баз данных, созданы сетевые мультипользовательские версии БД основанных на реляционной структуре.
Введение 3
Постановка задачи 4
Задание 4
Назначение БД 5
Выполняемые функции 5
Категории пользователей 6
Обоснование Выбора СУБД 6
Проектирование БД 7
Инфологическое проектирование 7
Сущности 8
Взаимосвязи сущности 9
Разработка Концептуальной инфологической модели 9
Даталогическое проектирование 10
Отношения и атрибуты 12
Ключевые поля и индексы 17
Нормализация отношений 19
Схема данных 21
Особенности реализации 22
Учет специфики предметной области 22
Разработанные алгоритмы 22
Пользовательский интерфейс 25
Запросы 25
Форма 35
Отчеты 43
Заключение 46
Литература 47
В случае составного ключа вводится понятие функционально полной зависимости.
Функционально полная зависимость не ключевых атрибутов заключается в том, что каждый не ключевой атрибут функционально зависит от ключа, но не находится в функциональной зависимости ни от какой части составного ключа.
Отношение будет находиться во второй нормальной форме, если оно находится в первой нормальной форме, и каждый не ключевой атрибут функционально полно зависит от составного ключа.
Ко второй нормальной форме, относятся таблицы: Заказ, Поставка, СписаниеПродукции.
Понятие третьей нормальной формы основывается на понятии нетранзитивной зависимости.
Транзитивная зависимость наблюдается в том случае, если один из двух описательных реквизитов зависит от ключа, а другой описательный реквизит зависит от первого описательного реквизита.
Отношение будет находиться в третьей нормальной форме, если оно находится во второй нормальной форме, и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
К третей нормальной форме, относятся таблицы: ЗаказДопТаб, ПоставкаДопТаб, СписаниеДопТаб.
При создании в Access схемы
данных в ней определяются и запоминаются
связи между таблицами. Это позволяет
системе автоматически
рис 3 (Схема данных)
Обеспечение связной целостности данных означает, что Access при корректировке базы данных обеспечивает для связанных таблиц контроль за соблюдением следующих условий:
- В подчиненную таблицу не может быть добавлена запись с несуществующим в главной таблице значением ключа связи;
- В главной таблице нельзя удалить запись, если не удалены связанные с ней записи в подчиненной таблице;
- Изменение значений ключа связи в записи главной таблицы невозможно, если в подчиненной таблице имеются связанные с ней записи.
Учет специфики предметной области
Одним из важнейших показателей хорошей работы предприятия является его активность и быстродействие в достижениях преследуемых целей. В ресторанном бизнесе комфорт и качество обслуживания является крайне важными показателями и автоматизация небольшую часть работы официанта при помощи ЭИС, способствует увеличению его производительность и качество обслуживания. Так же в специфику предприятия входит правильность закупок продукции, т.к. продукция является скоропортящимся товаром, и правильность его закупок прямо влияет на доход ресторана.
Разработанные алгоритмы
При помощи данного алгоритма в форме «ЗаказДопТаб подчиненная форма», в поле спсБлюдо, мы можем выбирать блюдо относительно выбранной категории в поле спсКатегорий.
Private Sub спсКатегория_AfterUpdate()
If Me.спсКатегория <> Me.спсКатегория.OldValue Then
Me.спсБлюдо = Null
End If
End Sub
Private Sub спсБлюдо_GotFocus()
Me.спсБлюдо.RowSource = "SELECT КодБлюда, Блюдо FROM [СправочникМеню] WHERE Категория = " & Nz(Me!Категория, 0)
Me.спсБлюдо.Requery
End Sub
Private Sub спсБлюдо_LostFocus()
Me.спсБлюдо.RowSource = ""
End Sub
Алгоритм делает в форме «ЗаказДопТаб подчиненная фома», в поле ЦенаПорции автоматически выставляет цену выбранному блюду, в поле спсБлюдо.
Private Sub спсБлюдо_AfterUpdate()
ЦенаПорции.Value = DLookup("[ЦенаПорции]", "[СправочникМеню]", "[КодБлюда]=" & [спсБлюдо].Value)
End Sub
Данный алгоритм закрывает активную форму «Заказ» с сохранением всех изменений произведенных в форме.
Private Sub кнпЗакрытьЗаказ_Click()
On Error GoTo Err_кнпЗакрытьЗаказ_Click
DoCmd.Close
Exit_кнпЗакрытьЗаказ_Click:
Exit Sub
Err_кнпЗакрытьЗаказ_Click:
MsgBox Err.Description
Resume Exit_кнпЗакрытьЗаказ_Click
End Sub
Алгоритм устанавливается на событие кнопки «кнпЧек», при поможи данного алгоритма из формы происходит переход в отчет «Заказ».
Private Sub кнпЧек_Click()
On Error GoTo Err_кнпЧек_Click
Dim stDocName As String
stDocName = "Заказ"
DoCmd.OpenReport stDocName, acPreview
Exit_кнпЧек_Click:
Exit Sub
Err_кнпЧек_Click:
MsgBox Err.Description
Resume Exit_кнпЧек_Click
End Sub
Алгоритм установлен на событие «Нажатие кнопки», кнопки «кнпПоставка», при помощи алгоритма открывается форма Поставка в режиме форма.
Private Sub кнпПоставка_Click()
On Error GoTo Err_кнпПоставка_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Поставка"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_кнпПоставка_Click:
Exit Sub
Err_кнпПоставка_Click:
MsgBox Err.Description
Resume Exit_кнпПоставка_Click
End Sub
Алгоритм установлен
на событие «Нажатие кнопки», кнопки
«кнпИсполнение», при помощи алгоритма
открывается форма «
Private Sub кнпИсполнение_Click()
On Error GoTo Err_кнпИсполнение_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "БлюдоНаИсполненоие"
DoCmd.OpenForm stDocName, acFormDS, , stLinkCriteria
Exit_кнпИсполнение_Click:
Exit Sub
Err_кнпИсполнение_Click:
MsgBox Err.Description
Resume Exit_кнпИсполнение_Click
End Sub
Алгоритм установлен на событие «Нажатие кнопки», кнопки «кнпВыход», при помощи алгоритма происходит закрытие базы и выход из программы.
Private Sub кнпВыход_Click()
On Error GoTo Err_кнпВыход_Click
DoCmd.Quit
Exit_кнпВыход_Click:
Exit Sub
Err_кнпВыход_Click:
MsgBox Err.Description
Resume Exit_кнпВыход_Click
End Sub
Пользовательский интерфейс
Представляет собой совокупность средств и методов, при помощи которых пользователь взаимодействует с различными, чаще всего сложными, с множеством элементов, машинами и устройствами. Интерфейс двунаправленный — устройство, получив команды от пользователя и исполнив их, выдает информацию обратно, наличествующими у неё средствами (визуальными, звуковыми и тп.), приняв которую, пользователь выдает устройству последующие команды предоставленными в его распоряжение средствами (кнопки, переключатели, регуляторы, сенсоры, голосом, и т.д.).
Чаще всего термин применяется по отношению к компьютерным программам (приложениям). Но вообще под пользовательским интерфейсом подразумевается любая система взаимодействия с устройствами, способными к интерактивному взаимодействию с пользователем:
-меню на экране
телевизора плюс пульт
-дисплей электронного
аппарата (автомагнитола, часы, проигрыватель)
и набор кнопок и
-приборная панель
автомобиля/самолёта и её
Поскольку интерфейс есть совокупность, то он состоит из элементов, которые, сами по себе, также могут состоять из элементов (так, окно дисплея может содержать в себе другие окна, которые, в свою очередь, могут содержать панели, кнопки и прочие интерфейсные элементы).
Запросы
Эти объекты служат для извлечения данных из таблиц и предоставления их пользователю в удобном виде. С помощью запросов выполняют такие операции как отбор данных, их сортировку и фильтрацию. С помощью запросов можно выполнять преобразования данных по заданному алгоритму, создавать новые таблицы, выполнять автоматическое наполнения таблиц данными, импортированными из других источников, выполнять простейшие вычисления в таблицах и многое другое.
«Сотрудник Менеджер»
Запрос использует таблицу «СправочникСотрудников» (рис 4). Использует из таблицы поля: КодСотрудника, Фамилия, Имя, Должность. Критерием отбора являются сотрудники с должностью Менеджер. Также в запросе добавлено еще одно поле «ФИ» в котором объединены поля: Фамилия, Имя.
рис 4 (Запрос «СотрудникМенеджер» в режиме конструктор)
Запрос используется для заполнения полей в формах:
Поставка – поле Приемщик
СписаниеПродукции – поле Сотрудник
рис 4.1 (Запрос «СотрудникМенеджер» в режиме таблицы)
«Сотрудник Официант»
Запрос использует таблицу «СправочникСотрудников» (рис 5). Использует из таблицы поля: КодСотрудника, Фамилия, Имя, Должность. Критерием отбора являются сотрудники с должностью Официант. Также в запросе добавлено еще одно поле «ФИ» в котором объединены поля: Фамилия, Имя.
рис 5 ( Запрос «СотрудникОфициант» в режиме конструктор)
Запрос используется для заполнения полей в формах:
Заказ – поле Сотрудник
рис 5.1 ( Запрос «СотрудникОфициант» в режиме таблицы)
«Поставлено»
Запрос использует таблицу «ПоставкаДопТаб» (рис 6). Использует из таблицы поля: Товар, ТипПродукта, Кол-во, ЕдИзм. Критерием отбора являются группировка записей и суммирование значений поле Кол-во одинаковых записей. Запрос показывает какие товары были поставлены и в каком количестве с указанием Типа продукта и единицей измерения количественного показателя.
рис 6 (Запрос «Поставлено» в режиме конструктор)
Запрос является промежуточным и используется в запросе «Остаток», как используемая таблица.
рис 6.1 (Запрос «Поставлено» в режиме таблицы)
«Списано»
Запрос использует таблицу «СписаниеДопТаб» (рис 7). Использует из таблицы поля: Товар, ТипПродукта, Кол-во, ЕдИзм. Критерием отбора являются группировка записей и суммирование значений поле Кол-во одинаковых записей. Запрос показывает какие товары были списаны и в каком количестве с указанием Типа продукта и единицей измерения количественного показателя.
рис 7 (Запрос «Списано» в режиме конструктор)
Запрос является промежуточным и используется в запросе «Остаток», как используемая таблица.
рис 7.1 (Запрос «Списано» в режиме таблицы)
«Остаток»
Запрос использует таблицы запросов «Поставлено» и «Списано» (рис 8). Использует из таблиц поля: Товар, ТипПродукта, Кол-во, ЕдИзм. Критерием отбора является вычитание поля Кол-во совпадающих записей в таблицах запросов «Поставлено», «Списано» и вывод на экран тех записей, у которых значение поля Кол-во не равно нулю. Запрос показывает, какие товары остались в наличии на складе предприятия с указанием типа продукта и единицей измерения количественного показателя.
рис 8 (Запрос «Остаток» в режиме конструктор)
Запрос используется в форме «ОстатокПродукции» как исходные данные формы.
рис 8.1 (Запрос «Остаток» в режиме таблицы)
«Блюдо На Исполнение»
Запрос использует таблицу «ЗаказДопТаб» (рис 9). Использует из таблицы поля: НомерЗаказа, Блюдо, Кол-воПорций, Исполнено. Критерием отбора являются записи, у которых в значениях поле Исполнено стоит логическое «нет». Запрос показывает, какое блюдо было заказано с указанием номера заказа, в котором было заказано блюдо и количества порций заказанного блюда.
рис 9 (Запрос «БлюдоНаИсполнение» в режиме конструктор)
Запрос используется в форме «БлюдоНаИсполнение» как исходные данные формы.
рис 9.1 (Запрос «БлюдоНаИсполнение» в режиме таблицы)
«По Заказу»
Запрос использует таблицы «Заказ» и «ЗаказДопТаб» (рис 10). Использует из таблиц поля: НомерЗаказа, Блюдо, Кол-воПорций, ЦенаПорции. Критерием отбора являются номер заказа, который спрашивается при открытии запроса. На экран выводятся все записи из таблицы «ЗаказДопТаб» с указанным номером заказа.
рис 10 (Запрос «ПоЗаказу» в режиме конструктор)
Запрос используется в качестве исходных данных для формирования отчета («Заказ») по отдельному заказу.
рис 10.1 (Запрос «ПоЗаказу» в режиме таблицы)
«По Поставке»
Запрос использует таблицы «Поставка» и «ПоставкаДопТаб» (рис 11). Использует из таблицы «Поставка» поля: НомерЗаказа, Организация, ДатаПоставки, Приемщик, из таблицы «ПоставкаДопТаб» поля: Товар, ТипПродукта, Кол-во, ЕдИзм, ЦенаЗаЕд, ОбщаяЦена. Критерием отбора являются номер поставки, который спрашивается при открытии запроса. На экран выводятся все записи из таблицы «ПоставкаДопТаб» с указанным номером поставки.
рис 11 (Запрос «ПоПоставке» в режиме конструктор)
Запрос используется в качестве исходных данных для формирования отчета («Поставка») по отдельной поставке.
рис 11.1 (Запрос «ПоПоставке» в режиме таблицы)
«По Акту Списания»
Запрос использует таблицы «СписаниеПродукции» и «СписаниеДопТаб» (рис 12). Использует из таблицы «СписаниеПродукции» поля: НомерАкта, ДатаАкта, Сотрудник, из таблицы «СписаниеДопТаб» поля: Товар, ТипПродукта, Кол-во, ЕдИзм. Критерием отбора являются номер АктаСписания, который спрашивается при открытии запроса. На экран выводятся все записи из таблицы «СписаниеДопТаб» с указанным номером АктаСписания.
рис 12 (Запрос «ПоАктуСписания» в режиме конструктор)
Запрос используется в качестве исходных данных для формирования отчета («СписаниеПродукции») по отдельному Акту Списания.
рис 12.1 (Запрос «ПоАктуСписания» в режиме таблицы)
Форма
Формы – одно из основных средств для работы с базами данных в Access - используются для ввода новых записей (строк таблиц), просмотра и редактирования уже имеющихся данных, задания параметров запросов и вывода ответов на них и др. Формы представляют собой прямоугольные окна с размещенными в них элементами управления.