Описание концепиуальной модели реляционной б азы данных
6.1 Схема Данных
Схема данных, отражает логическое представление реляционной модели данных для проектируемой БД. Построить иную концептуальную модель для данной БД таким образом, чтобы она отвечала специфике предметной области и в информационном плане сохраняла все возможности приведенной выше модели без добавления новых объектов, практически невозможно. Нормализация – это разбиение таблицы на две или более, обладающих лучшими свойствами при включении, изменении и удалении данных. Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных. Таблица находится в первой нормальной форме (1НФ) тогда и только тогда, когда ни одна из ее строк не содержит в любом своем поле более одного значения и ни одно из ее ключевых полей не пуст. Таблица находится во второй нормальной форме (2НФ), если она удовлетворяет определению 1НФ и все ее поля, не входящие в первичный ключ, связаны полной функциональной зависимостью с первичным ключом. Таблица находится в третьей нормальной форме (3НФ), если она удовлетворяет определению 2НФ и не одно из ее не ключевых полей не зависит функционально от любого другого не ключевого поля. Рисунок 6.2 – Таблица данных в 1НФ
Представим функциональные зависимости для таблицы в 1НФ:
6.2 Описание и обоснование полей таблиц
В проектируемой базе данных реализовано шесть таблиц. Ниже для каждой таблицы приведены описание, обоснование полей, ограничения на входную информацию, необходимые маски ввода, используемые подстановки. Все примеры заполненных таблиц приведены в приложении В.
Таблица «Предприятие» (таблица 6.2.1): 1. Код предприятия -Ключ: первичный ключ; -Счетчик; -Длинное целое; -Размер: 3; -Совпадение не допускаются, так как это первичный ключ, он считает записи в таблице. 2. Название предприятия - Текстовое; - Размер 80; - Обязательное поле, так как название предприятия – это главная особенность, по которой можно различать предприятия; - Пустых строк нет, так как не может быть предприятие без названия; - Совпадения не допускаются, так как у двух разных предприятий не должно быть одинаковых названий; 3. Дата открытия предприятия - Тип дата; - Размер 10; - Обязательное поле, так как у каждого предприятия есть дата открытия; -Совпадения допускаются, так как разные предприятия могут быть открыты в один и тот же день; -Маска: 00.00.0000; -Значение по умолчанию =Date(); -Условие на значения <=Date(), так как предприятие не может открыться позже, чем в день рассмотрения его деятельности. 4. Город -Тип длинное целое; -Размер 2; -Обязательное поле, так как каждое предприятие находится в каком-либо городе; -Совпадения допускаются, так как разные предприятия могут находиться в одном городе; -Подстановка: из таблицы «Город», поле «Название города»;
-Внешний ключ. 5. Тип -Тип длинное целое; -Размер 2; -Обязательное поле, так как у каждого предприятия есть свой тип; -Совпадения допускаются, так как разные предприятия могут иметь один и тот же тип; -Подстановка: из таблицы «Тип», поле «Название типа»; -Внешний ключ.
Таблица 6.2.1 «Предприятие»
Таблица «Город» (таблица 6.2.2): 1. Код города -Ключ: первичный ключ; -Счетчик; -Длинное целое; -Размер: 3; -Совпадение не допускаются, так как это первичный ключ, он считает записи в таблице. 2. Название города - Текстовое; - Размер 20; - Обязательное поле, так как город не может быть без названия; - Пустых строк нет, так как город не может иметь пустое название; - Совпадения не допускаются, так как разные города не могут иметь одно и то же название.
Таблица 6.2.2 «Город»
Таблица «Тип» (таблица 6.2.3): 1. Код типа -Ключ: первичный ключ; -Счетчик; -Длинное целое; -Размер: 3; -Совпадение не допускаются, так как это первичный ключ, он считает записи в таблице. 2. Название типа - Текстовое; - Размер 30; - Обязательное поле, так как тип не может быть без названия; - Пустых строк нет, так как тип не может иметь пустое название; - Совпадения не допускаются, так как разные типы не могут иметь одно и то же название. Таблица 6.2.3 «Тип»
Таблица «Изделие» (таблица 6.2.4): 1. Код города -Ключ: первичный ключ; -Счетчик; -Длинное целое; -Размер: 3; -Совпадение не допускаются, так как это первичный ключ, он считает записи в таблице. 2. Название изделия - Текстовое; - Размер 20; - Обязательное поле, так как изделия не может быть без названия; - Пустых строк нет, так как тип не может иметь пустое название; - Совпадения не допускаются, так как разные изделия не могут иметь одно и то же название.
Таблица 6.2.4 «Изделие»
Таблица «Цех» (таблица 6.2.5): 1. Код цеха -Ключ: первичный ключ; -Счетчик; -Длинное целое; -Размер: 3; -Совпадение не допускаются, так как это первичный ключ, он считает записи в таблице. 2. Название цеха - Текстовое; - Размер 15; - Обязательное поле, так как изделия не может быть без названия; - Пустых строк нет, так как цех не может иметь пустое название; - Совпадения допускаются, так как разные цеха не могут иметь одно и то же название. 3. Количество рабочих -Тип длинное целое; -Размер 4; -Совпадения допускаются, так как разные цеха могут иметь одинаковое число количества рабочих; - Пустых строк нет, так как любой цех содержит рабочих; -Условие на значение >0, так как на цеху не может быть ни одного рабочего. 4. Дата ввода в строй -Тип дата - Размер 10 - Обязательное поле, так как каждый цех имеет дату открытия; -Совпадения допускаются, так как разные цеха могут в один день войти в строй; - Маска: 00.00.0000; -Значение по умолчанию =Date(); - Условие на значения <=Date()and<(дата последней реконструкции), так как цех не может быть введен в строй позже, чем была его реконструкция. 5. Дата последней реконструкции -Тип дата; - Размер 10; - Не обязательное поле, так как цех мог еще не подлежать реконструкции; -Совпадения допускаются, так как даты реконструкции разных цехов могут быть одинаковыми; - Маска: 00.00.0000; - Значение по умолчанию =Date() - Условие на значения <=Date()and>(дата ввода в строй), так как цех не может быть отреконструирован раньше, чем он был введен в строй. 6. Предприятие -Тип длинное целое; -Размер 2; -Обязательное поле, так как любой цех находится на каком-либо предприятии; -Совпадения допускаются, так как несколько цехов могут быть на одном предприятии; -Подстановка: из таблицы «Предприятие», поле «Название предприятия»; -Внешний ключ.
Таблица 6.2.5 «Цех»
Таблица «Выпуск» (таблица 6.2.6): 1. Месяц -Текстовое; - Размер 8; - Обязательное поле, так как все изделия выпускаются в каком-то месяце; - Совпадения допускаются, так как изделия могли быть выпущены в один и тот же месяц. 2. Количество изделий -Тип длинное целое; -Размер 4; -Совпадения допускаются, так как могло быть выпущено одинаковое количество изделий; -Пустых строк нет, так как в любом случае было выпущено какое-либо количество изделий. 3. Цена изделия -Тип длинное целое; -Размер 5; -Совпадения допускаются, так как цена может быть одинаковой у разных изделий; -Пустых строк нет, у всех изделий есть своя цена. 4. Цех -Тип длинное целое; -Размер 2; -Обязательное поле, так как любое изделие выпускается на каком-то цеху; -Совпадения допускаются, так как разные изделия выпускаются на одном цеху; -Подстановка: из таблицы «Цех», поле «Название цеха» -Внешний ключ. 5. Изделие -Тип длинное целое; -Размер 2; -Обязательное поле, так как обязательно выпускается како-то изделие; -Совпадения допускаются, так как может выпускаться одно и то же изделие; -Подстановка: из таблицы «Изделие», поле «Название изделия»; -Внешний ключ.
Таблица 6.2.6
Приложение Б
РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
Б.1 Общие сведения
Разработанная БД предназначена для предоставления пользователю всей необходимой информации для автоматизации производительной деятельности промышленного предприятия. Данная БД имеет удобный графический интерфейс. При запуске программы, появляется главное меню, содержащее все пункты, необходимые для работы с приложением (см. Приложение Д рис. Д.1). При необходимости добавить, просмотреть или изменить информацию нужно выбрать помощью клавиш управления курсором или <Tab> необходимую кнопку с названием формы, и нажать <Enter> или открыть форму кликом мыши. Для запуска программы требуется запустить файл «Course.mdb» в СУБД MS Access.
Б.2 Ввод, удаление, добавление и редактирование данных
Ввод данных осуществляется в формах с помощью клавиатуры. Для ввода данных необходимо выделить указателем мыши необходимое поле или перейти на него с помощью клавиш управления курсором или <Tab>, и ввести данные. Аналогичным образом осуществляется редактирование данных. Добавление данных осуществляется в формах так же, как и во всех БД. На удаление записей пользователи «Guest» не имеют права. Удалять записи из таблиц или форм могут только пользователи «Adminstrator» и «User», используя соответствующие клавиши в формах.
Б.3 Просмотр отчетов
Для просмотра отчетов необходимо вызвать пункт меню Главное меню->открыть отчет. Либо пункт меню Главное меню->открыть форму->отчеты.
Б.4 Использование справочной информации и выход из программы
Справочная информация в БД. В целом для осуществления необходимых действий требуется читать надписи на кнопках или рядом с ними и нажимать на эти кнопки. Выход из приложения MS Access осуществляется при выборе пункта меню Главное меню->Выход. Приложение В
ЛИСТИНГИ ПРОГРАММНЫХ МОДУЛЕЙ
1. Модуль: контроль над вводом данных. Option Compare Database
Sub c() Dim t As Integer DoCmd.OpenForm "Предприятие1", acNormal DoCmd.OpenForm "Цех1", acNormal If [Forms]![Предприятие1]![дата открытия] < [Forms]![Цех1]![дата ввода в строй] Then t = MsgBox("Данные введены, верно", vbOKOnly, " Сообщение") Else: t = MsgBox("Сообщение: цех был введен в строй, до открытия предприятия", vbOKOnly, " Сообщение") End If End Sub 2. Модуль: группы пользователей. Private Sub Form_Open(Cancel As Integer) myvalue = InputBox("Если вы администратор либо пользователь, введите свой пароль, если гость – нажмите ОК") If myvalue = "" Then Кнопка 13.Visible = False Кнопка 15.Visible = False Кнопка 23.Visible = False Кнопка 16.Visible = False Кнопка 45.Visible = False Кнопка 48.Visible = False Кнопка 49.Visible = False Кнопка 50.Visible = False Кнопка 51.Visible = False Кнопка 52.Visible = False Кнопка 53.Visible = False Else If myvalue = "I am admin" Then Кнопка 16.Visible = True Кнопка 23.Visible = True Кнопка 15.Visible = True Кнопка 13.Visible = True Кнопка 33.Visible = True Кнопка 8.Visible = True Кнопка 38.Visible = True Else If myvalue = "User" Then Кнопка 48.Visible = False Кнопка 49.Visible = False Кнопка 50.Visible = False Кнопка 51.Visible = False Кнопка 52.Visible = False Кнопка 53.Visible = False Else: MsgBox ("введите правильный пароль!!!") DoCmd.Close acForm, "Главная" End If End If End If End Sub 3. Модуль: добавление в форму. Option Compare Database
Sub Verifying() 'Процедура добавления элемента в список Dim str, tmp1, tmp2 As String Dim c, i, t, f As Integer Dim rst As DAO.Recordset Dim flag As Boolean
str = "" Do While str = "" str = InputBox("Введите название", "Ввод данных") 'Вводим новый элемент If str = "" Then 'Предотвращение пустой строки t = MsgBox("Строка не может быть пустой", vbInformation, "Инфо") End If Loop DoCmd.OpenForm "Предприятие1", acNormal 'Открываем форму
DoCmd.GoToRecord acDataForm, "Предприятие1", acNewRec Set rst = Forms("Предприятие1").Recordset
flag = False rst.MoveFirst While Not rst.EOF If rst![Название предприятия] = str Then flag = True GoTo m001: End If rst.MoveNext Wend m001: If flag Then t = MsgBox("Такой элемент в списке уже есть. Добавление невозможно.", vbCritical) Else t = MsgBox("Вы действительно желаете добавить новый элемент списка?", vbQuestion + vbYesNo, "Вы уверены?") If t = 6 Then
rst.AddNew rst![Название предприятия] = str rst.Update
z = MsgBox("Добавленно новое название: " & str, vbInformation) ElseIf t = 7 Then 'отказ от добавления t = MsgBox("Прервано пользователем!", vbOKOnly + vbCritical, "Error") End If End If
DoCmd.OpenForm "Предприятие1", acNormal 'Открываем форму
End Sub
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|