Создание базы данных MySQL

Автор работы: Пользователь скрыл имя, 08 Декабря 2013 в 19:35, лабораторная работа

Краткое описание

База данных создается для информации о структуре предприятия.
БД должна содержать:
информацию по отделам, цехам и т.п
информацию о работающих
информацию о графике работы

Содержание

Нормализация 4
Первая нормальная форма 5
Вторая нормальная форма 7
Третья нормальная форма 8
Физическая модель БД 9
Таблица rabotniki 9
Таблица kontrakt 9
Таблица dolgnost 9
Таблица ceh 10
Таблица graphic_raboti 10
Таблица inform_o_rab 10
Создание таблиц 11
Код таблицы rabotniki: 11
Код таблицы kontrakt: 11
Код таблицы dolgnost: 11
Код таблицы ceh: 12
Код таблицы graphik_raboti: 12
Код таблицы inform_o_rab: 12
Некоторые функции MySQL 13
DROP TABLE 13
ALTER TABLE 13
UPDATE 14

Прикрепленные файлы: 1 файл

Базы.docx

— 456.22 Кб (Скачать документ)

Содержание

Системный анализ предметной области 3

Нормализация 4

Первая нормальная форма 5

Вторая нормальная форма 7

Третья нормальная форма 8

Физическая модель БД 9

Таблица rabotniki 9

Таблица kontrakt 9

Таблица dolgnost 9

Таблица ceh 10

Таблица graphic_raboti 10

Таблица inform_o_rab 10

Создание таблиц 11

Код таблицы rabotniki: 11

Код таблицы kontrakt: 11

Код таблицы dolgnost: 11

Код таблицы ceh: 12

Код таблицы graphik_raboti: 12

Код таблицы inform_o_rab: 12

Некоторые функции MySQL 13

DROP TABLE 13

ALTER TABLE 13

UPDATE 14

 

 

 

Системный анализ предметной области

База данных создается  для информации о структуре предприятия.

БД должна содержать:

  1. информацию по отделам, цехам и т.п
  2. информацию о работающих
  3. информацию о графике работы

В соответствии с предметной областью система строится с учетом следующих особенностей:

а) один сотрудник работает на одной должности

б) сотрудник не может работать сразу в 2 смены.

 

Выделим базовые сущности этой предметной области:

Работники предприятия. Атрибуты работников:

  • ФИО
  • паспортные данные
  • должность
  • адрес
  • телефон
  • пол

Контракт. Атрибуты контракта:

  • дата подписания
  • № стеллажа

Должность. Атрибуты должности:

  • должность
  • оклад по должности

Цех. Атрибуты цеха:

  • название
  • № цеха
  • расположение
  • количество сотрудников

График работы. Атрибуты графика:

  • № смены
  • время работы

Выводы. Система должна обеспечивать:

а) поиск информации о месте нахождения товара

б) поиск информации о  сотруднике, принявшем товар

в) поиск информации об оборудовании для товара

г) фиксировать дату поступления товар

Нормализация

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

Нормализация представляет собой процесс последовательного  приведения логической структуры базы данных к требуемому уровню нормальной формы. Существует шесть нормальных форм (НФ): первая НФ (1НФ), вторая НФ (2НФ), третья НФ (ЗНФ), нормальная форма Бойса-Кодда (БКНФ), четвертая НФ (4НФ), пятая НФ (5НФ). Каждая следующая нормальная форма должна удовлетворять требованиям предыдущей формы и некоторым дополнительным условиям. Ограничимся рассмотрением первых трех НФ, поскольку при практическом проектировании баз данных остальные НФ используются в редких случаях.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Первая  нормальная форма

Таблица находится в 1НФ, если она удовлетворяет следующим  требованиям:

а) не содержит полей с несколькими значениями;

б) ключевое поле не имеет пустот.

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

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

На рис. 1 представлен список таблиц проектируемой базы данных.

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

 

rabotniki

FIO_rabotnika

pasp_dann

adress

phone

pol


 

dolgnost

dolgnost

oklad_po_dolgnosti


 

 

kontrakt

data_kont

nomer_kontr


ceh

nazvanie

Nomer_ceha

raspolozhenie

kolvo_sotrudnikov


 

graphic_raboti

nomer_smeni

vremja_raboti


 

Рисунок 1 – Структура таблиц базы данных «Учет товара»

 

В таблицах на рис.1 не все  поля удовлетворяют требованиям 1НФ. В частности, поле «FIO_rabotnika» в таблице "rabotniki" содержит информацию о фамилии, имени и отчестве сотрудника. Поэтому делим его нa«fam_rab»,«im_rab» и«ot_rab».Поле «pasp_dann» в таблице «rabotniki»содержит несколько значений - данные о серии, номере и дате выдачи документа, а также о наименовании государственного органа, выдавшего документ.С целью поддержания целостности данных о сотрудниках целесообразно разбить данное поле на три поля: «s_n_pasp», «data_vid_pasp» и «mest _vid_pasp».

Таким образом, получили список атомарных полей без повторяющихся  групп, т.е. первое требование 1НФ выполнено.

Чтобы обеспечить второе требование необходимо определить первичные ключи  в каждой таблице.

В таблицах «rabotniki», «kontrakt»,«dolgnost» ,«ceh»и «graphic_raboti»нет подходящих полей для первичного ключа, поэтому вводим в данные таблицы семантически незначащие поля «id_rab», «id_kontr», «id_dolg»,«id_ceha» и «id_graphika» соответственно, которые однозначно определяют остальные не ключевые поля.

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

 

rabotniki

id_rabotnika

fam_rab

im_rab

ot_rab

s_n_pasp

data_vid_pasp

mest _vid_pasp

adress

phone

pol





 

kontrakt

id_kontrakta

data_kontr

nom_kontr


 

dolgnost

id_dolg

dolgnost

oklad_po_dolg


 

 

ceh

id_ceha

nazvanie

n_ceha

raspolozhenie

kolvo_sotr


graphik_raboti

id_graphika

n_smeni

kolvo_chasov


 

Рисунок 2 – Структура таблиц в первой нормальной форме

 

 

 

 

 

 

 

 

 

 

 

 

 

Вторая  нормальная форма

Таблица находится во 2НФ, если она удовлетворяет следующим  требованиям:

а)таблица должна быть приведена  к 1 НФ;

б)поля, которые зависят только от части первичного ключа должны быть выделены в состав отдельных таблиц;

в) все таблицы должны быть связаны между собой.

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

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

Для того, чтобы связать  все таблицы между собой, создадим таблицу «Prixod»с полями «Prixod», «data_postupleniya», «Id_sotrudnika», «Id_oborudovaniya», «Id_tovara» и «Id_pomecheniya». Первичным ключом в этой таблице назначим  поле «Id_prixoda». Между тем один сотрудник может принимать несколько товаров, один вид оборудования может использоваться для нескольких товаров, в одном помещении могут храниться несколько товаров и один товар могут принимать несколько сотрудников, таким образом, образуется связь типа «один-ко-многим».

Поскольку все таблицы  связаны между собой (Рис.3), то процесс  приведения таблиц ко 2НФ считаем завершенным.

Рисунок3 –Структура таблиц вовторойнормальной форме

Третья  нормальная форма

Таблица находится в 3НФ, если она удовлетворяет следующим  требованиям:

а) таблицы должны быть приведены  ко 2НФ;

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

Оба требования соблюдены, значит, таблица приведена к 3НФ (Рис.-4).

 

Рисунок4 –Структура таблиц в третьей нормальной форме

 

 

 

 

 

 

 

 

Физическая  модель БД

Таблица rabotniki

Имя поля

Тип данных

Ограничения

Описание

id_rab

INT

PRIMARY KEY, AUTO_INCREMENT

Код сотрудника, ПК, автовыч.поле

fam_rab

VARCHAR(30)

NOT NULL

Фамилия сотрудника

im_rab

VARCHAR(30)

NOT NULL

Имя сотрудника

ot_rab

VARCHAR(30)

NOT NULL

Отчество сотрудника

s_n_pasp

VARCHAR(15)

NOT NULL

Серия и номер паспорта сотрудника

data_vid_pasp

DATE

NOT NULL

Дата выдачи паспорта сотрудника

mest _vid_pasp

VARCHAR(100)

NOT NULL

Место выдачи паспорта сотрудника

dolgnost

VARCHAR(30)

NOT NULL

Должность сотрудника

adress

VARCHAR(100)

NOT NULL

Адрес сотрудника

phone

VARCHAR(30)

NOT NULL

Телефон сотрудника

pol

VARCHAR(30)

NOT NULL

Пол сотрудника


Таблица kontrakt

Имя поля

Тип данных

Ограничения

Описание

Id_kontr

INT

PRIMARY KEY, AUTO_INCREMENT

Код контракта, ПК, автовыч.поле

data_kontr

DATE

NOT NULL

Дата подписания контракта

nom_kontr

INT

NOT NULL

Номер контракта


Таблица dolgnost

Имя поля

Тип данных

Ограничения

Описание

id_dolg

INT

PRIMARY KEY, AUTO_INCREMENT

Код должности, ПК, автовыч.поле

dolgnost

VARCHAR(30)

NOT NULL

Название должности

okl_po_dol

BIGINT

NOT NULL

Оклад по должности


Таблица ceh

id_ceha

INT

PRIMARY KEY, AUTO_INCREMENT

Код цеха, ПК, автовыч.поле

nazvanie

VARCHAR(30)

NOT NULL

Название цеха

n_ceha

INT

NOT NULL

Номер цеха

raspolozhenie

VARCHAR(30)

NOT NULL

Расположение цеха

Kolvo_rab

INT

NOT NULL

Количество рабочих в  цеху


Таблица graphic_raboti

Имя поля

Тип данных

Ограничения

Описание

id_graphika

INT

PRIMARY KEY, AUTOINCREMENT

Код графика работы, ПК, автовыч.поле

n_smeni

INT

NOT NULL

Номер смены

vrem_raboti

VARCHAR(30)

NOT NULL

Время работы сотрудника


Таблица inform_o_rab

Имя поля

Тип данных

Ограничения

Описание

id_inform

INT

PRIMARY KEY, AUTOINCREMENT

Код информации, ПК, автовыч.поле

id_rab

INT

FOREIGN KEY, ON DELETE CASCADE

ВК, связь: rabotniki

(id_rab)

id_kontr

INT

FOREIGN KEY, ON DELETE CASCADE

ВК, связь: kontrakt

(id_kontr)

id_dolg

INT

FOREIGN KEY, ON DELETE CASCADE

ВК, связь: dolgnost

(id_dolg)

id_ceha

INT

FOREIGN KEY, ON DELETE CASCADE

ВК, связь: ceh

(id_ceha)

id_graphika

INT

FOREIGN KEY, ON DELETE CASCADE

ВК, связь:

graphic_raboti (id_graphika)


Создание  таблиц

Код таблицы rabotniki:

CREATE TABLE rabotniki

(

id_rab int AUTO_INCREMENT PRIMARY KEY,

 fam_rab Varchar(30) NOT NULL,

im_rab Varchar(30) NOT NULL,

ot_rab Varchar(30) NOT NULL,

s_n_pasp Varchar(30) NOT NULL,

data_vid_pasp DATE NOT NULL,

mesto_vid_pasp Varchar(30) NOT NULL,

adress Varchar(100) NOT NULL,

pol Varchar(10) NOT NULL,

phone bigint NOT NULL);

Код таблицы kontrakt:

CREATE TABLE kontrakt

(

id_kontr int AUTO_INCREMENT PRIMARY KEY,

data_kontr DATE NOT NULL,

nom_kontr int NOT NULL);

Код таблицы dolgnost:

Информация о работе Создание базы данных MySQL