Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Описание концепиуальной модели реляционной б азы данных

 

6.1 Схема Данных

 

Схема данных, отражает логическое представление реляционной модели данных для проектируемой БД.

Построить иную концептуальную модель для данной БД таким образом, чтобы она отвечала специфике предметной области и в информационном плане сохраняла все возможности приведенной выше модели без добавления новых объектов, практически невозможно.

Нормализация – это разбиение таблицы на две или более, обладающих лучшими свойствами при включении, изменении и удалении данных. Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных.

Таблица находится в первой нормальной форме (1НФ) тогда и только тогда, когда ни одна из ее строк не содержит в любом своем поле более одного значения и ни одно из ее ключевых полей не пуст.

Таблица находится во второй нормальной форме (2НФ), если она удовлетворяет определению 1НФ и все ее поля, не входящие в первичный ключ, связаны полной функциональной зависимостью с первичным ключом.

Таблица находится в третьей нормальной форме (3НФ), если она удовлетворяет определению 2НФ и не одно из ее не ключевых полей не зависит функционально от любого другого не ключевого поля.


Рисунок 6.2 – Таблица данных в 1НФ

Назв. предприятия С 80 Дата открытия предприятия D10 Назв. Города C20 Назв. Типа предпр C30 Назв. Цеха C15 Кол-во рабочих N4 Дата ввода в строй D8 Дата посл реконструкции D8 Месяц С8 Кол-во изделий N6 Цена N5 Назв. Изделия C20

 

Представим функциональные зависимости для таблицы в 1НФ:

                     
Название цеха
Название изделия
 
Название предприятия
Кол-во рабочих
Кол-во изделий
 
Дата открытия
 
Дата ввода в строй
Цена изделия
Дата посл. Реконстр.
Месяц выпуска изделия

 


6.2 Описание и обоснование полей таблиц

 

В проектируемой базе данных реализовано шесть таблиц. Ниже для каждой таблицы приведены описание, обоснование полей, ограничения на входную информацию, необходимые маски ввода, используемые подстановки. Все примеры заполненных таблиц приведены в приложении В.

 

Таблица «Предприятие» (таблица 6.2.1):

1. Код предприятия

-Ключ: первичный ключ;

-Счетчик;

-Длинное целое;

-Размер: 3;

-Совпадение не допускаются, так как это первичный ключ, он считает записи в таблице.

2. Название предприятия

- Текстовое;

- Размер 80;

- Обязательное поле, так как название предприятия – это главная особенность, по которой можно различать предприятия;

- Пустых строк нет, так как не может быть предприятие без названия;

- Совпадения не допускаются, так как у двух разных предприятий не должно быть одинаковых названий;

3. Дата открытия предприятия

- Тип дата;

- Размер 10;

- Обязательное поле, так как у каждого предприятия есть дата открытия;

-Совпадения допускаются, так как разные предприятия могут быть открыты в один и тот же день;

-Маска: 00.00.0000;

-Значение по умолчанию =Date();

-Условие на значения <=Date(), так как предприятие не может открыться позже, чем в день рассмотрения его деятельности.

4. Город

-Тип длинное целое;

-Размер 2;

-Обязательное поле, так как каждое предприятие находится в каком-либо городе;

-Совпадения допускаются, так как разные предприятия могут находиться в одном городе;

-Подстановка: из таблицы «Город», поле «Название города»;

-Внешний ключ.

5. Тип

-Тип длинное целое;

-Размер 2;

-Обязательное поле, так как у каждого предприятия есть свой тип;

-Совпадения допускаются, так как разные предприятия могут иметь один и тот же тип;

-Подстановка: из таблицы «Тип», поле «Название типа»;

-Внешний ключ.

 

Таблица 6.2.1 «Предприятие»

Предприятие

#Код предприятия Название предприятия Дата открытия Город Тип
1 Шахтуглесервис 25.06.1956 Шахтерск Частное
2 Азовмаш 24.05.1985 Мариуполь ООО
3 Азовсталь 13.02.1991 Краматорск Государственное
4 ДМЗ 12.03.1985 Донецк ОАО

 

Таблица «Город» (таблица 6.2.2):

1. Код города

-Ключ: первичный ключ;

-Счетчик;

-Длинное целое;

-Размер: 3;

-Совпадение не допускаются, так как это первичный ключ, он считает записи в таблице.

2. Название города

- Текстовое;

- Размер 20;

- Обязательное поле, так как город не может быть без названия;

- Пустых строк нет, так как город не может иметь пустое название;

- Совпадения не допускаются, так как разные города не могут иметь одно и то же название.

 

Таблица 6.2.2 «Город»

Город

#Код города Название города
1 Донецк
2 Шахтерск
3 Мариуполь
4 Краматорск

 

Таблица «Тип» (таблица 6.2.3):

1. Код типа

-Ключ: первичный ключ;

-Счетчик;

-Длинное целое;

-Размер: 3;

-Совпадение не допускаются, так как это первичный ключ, он считает записи в таблице.

2. Название типа

- Текстовое;

- Размер 30;

- Обязательное поле, так как тип не может быть без названия;

- Пустых строк нет, так как тип не может иметь пустое название;

- Совпадения не допускаются, так как разные типы не могут иметь одно и то же название.


Таблица 6.2.3 «Тип»

Тип

#Код типа Название типа
1 Государственное
2 Частное
3 ООО
4 ОАО

 

Таблица «Изделие» (таблица 6.2.4):

1. Код города

-Ключ: первичный ключ;

-Счетчик;

-Длинное целое;

-Размер: 3;

-Совпадение не допускаются, так как это первичный ключ, он считает записи в таблице.

2. Название изделия

- Текстовое;

- Размер 20;

- Обязательное поле, так как изделия не может быть без названия;

- Пустых строк нет, так как тип не может иметь пустое название;

- Совпадения не допускаются, так как разные изделия не могут иметь одно и то же название.

 

Таблица 6.2.4 «Изделие»

Изделие

#Код изделия Название изделия
1 Шайбы
2 Чайники
3 Болты
4 Бочки
5 Двигатели
6 Сковородки
7 Столы
8 Кровати
9 Компьютеры

 

Таблица «Цех» (таблица 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 «Цех»

Цех

#Код цеха Название цеха Количество рабочих Дата ввода в строй Дата последней реконструкции Предприятие
1 Любительский 146 19.05.1999 26.03.2000 Азовсталь
7 Конечный 106 21.07.1998 29.03.2004 Азовсталь
11 Любительский 60 31.05.1996 16.04.2001 Азовмаш
13 Промежуточный 34 05.10.1995 06.08.1998 ДМЗ
15 Промежуточный 140 01.02.1986 12.07.1996 Азовмаш
24 Древний 25 03.12.1957 25.05.1959 Шахтуглесервис
25 Любительский 326 18.12.1989 26.04.1995 ДМЗ
34 Конечный 86 29.05.1973 16.11.2001 Шахтуглесервис

 

Таблица «Выпуск» (таблица 6.2.6):

1. Месяц

-Текстовое;

- Размер 8;

- Обязательное поле, так как все изделия выпускаются в каком-то месяце;

- Совпадения допускаются, так как изделия могли быть выпущены в один и тот же месяц.

2. Количество изделий

-Тип длинное целое;

-Размер 4;

-Совпадения допускаются, так как могло быть выпущено одинаковое количество изделий;

-Пустых строк нет, так как в любом случае было выпущено какое-либо количество изделий.

3. Цена изделия

-Тип длинное целое;

-Размер 5;

-Совпадения допускаются, так как цена может быть одинаковой у разных изделий;

-Пустых строк нет, у всех изделий есть своя цена.

4. Цех

-Тип длинное целое;

-Размер 2;

-Обязательное поле, так как любое изделие выпускается на каком-то цеху;

-Совпадения допускаются, так как разные изделия выпускаются на одном цеху;

-Подстановка: из таблицы «Цех», поле «Название цеха»

-Внешний ключ.

5. Изделие

-Тип длинное целое;

-Размер 2;

-Обязательное поле, так как обязательно выпускается како-то изделие;

-Совпадения допускаются, так как может выпускаться одно и то же изделие;

-Подстановка: из таблицы «Изделие», поле «Название изделия»;

-Внешний ключ.

 

Таблица 6.2.6

Выпускает

Месяц Количество изделий Цена изделия Цех Изделие Код Выпуска
Январь 2568 107 Любительский Бочки 2
Февраль 78 34 Любительский Чайники 7
Март 1000 100 Любительский Болты 9
Апрель 200 101 Любительский Чайники 12
Май 567 754 Любительский Бочки 13
Июнь 155 24 Любительский Бочки 24
Июль 4535 788 Любительский Двигатели 29
Август 636 235 Любительский Бочки 30
Сентябрь 42 520 Любительский Шайбы 31
Октябрь 453 445 Любительский Кровати 32
Январь 535 53 Конечный Шайбы 33
Февраль 539 278 Конечный Чайники 34
Март 455 876 Конечный Болты 35
Апрель 41 7786 Конечный Кровати 36
Октябрь 572 963 Конечный Столы 37
Ноябрь 754 912 Конечный Сковородки 38
Декабрь 476 724 Конечный Двигатели 39
Январь 336 26 Промежуточный Двигатели 40
Февраль 561 54 Промежуточный Бочки 41
Сентябрь 513 35 Промежуточный Болты 42
Август 45 96 Промежуточный Двигатели 44
Март 4 5468 Промежуточный Сковородки 45
Апрель 8462 33 Древний Столы 46
Сентябрь 545 56543 Древний Болты 47
Ноябрь 654 377 Любительский Компьютеры 48
Декабрь 8974 850 Любительский Двигатели 49
Май 6463 55 Конечный Компьютеры 50
Июнь 543 12 Конечный Шайбы 51
Июль 894 4856 Конечный Чайники 52
Август 5641 861 Конечный Болты 53
Сентябрь 563 48 Конечный Столы 54
Апрель 521 265 Промежуточный Компьютеры 55
Май 23 2645 Промежуточный Сковородки 56
Июнь 452 52 Промежуточный Чайники 57
Июль 553 83 Промежуточный Компьютеры 58
Декабрь 441 333 Промежуточный Кровати 59
Ноябрь 478 599 Промежуточный Бочки 60

 


Приложение Б

 

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

 

Б.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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...