П3 |
Сидоров
|
10
|
Кб
|
120
|
П4
|
Егоров
|
5
|
К2
|
74
|
П4
|
Егоров
|
5
|
К7
|
89
|
П5
|
Козлов
|
8
|
К5
|
96
|
Рис. 7.28. Исходное отношение
В результате применения правила 6 получаются три отношения (рис. 7.29.).
ПРЕПОДАВАТЕЛЬ ВЕДЕТ ДИСЦИПЛИНА
КД
|
Часы
|
К1
|
62
|
К2
|
74
|
К3
|
102
|
К4
|
80
|
К5
|
96
|
К6
|
120
|
К7
|
89
|
НП
|
КД
|
П1
|
К1
|
П1
|
К2
|
П2
|
К4
|
П3
|
К6
|
П4
|
К3
|
П4
|
К7
|
НП
|
ФИО
|
Стаж
|
П1
|
Иванов
|
5
|
П2
|
Петров
|
7
|
П3
|
Сидоров
|
10
|
П4
|
Егоров
|
5
|
П5
|
Козлов
|
8
|
Рис. 7.29. Отношения, полученные по правилу 6
Аналогичные результаты получаются и для трех других вариантов, различающихся классами принадлежности их сущностей. Рассмотрим
сформулированные правила на примерах проектирования БД сущность- связь.
Рассмотрим проектирование баз данных и составление структуры таблиц на примерах.
Пример 1. Спроектировать базу данных с помощью метода нормальных форм для программного комплекса “Учет книг в библиотеке”.
Запишем исходные данные по читателям и книгам в таблицу.
R
Nomer
|
Family
|
Name
|
Shifr
|
Avtor
|
Nazvanie
|
|
|
|
|
|
|
Имеем отношение R (Nomer, Family, Name, Shifr, Nazvanie);
Выявим зависимости между атрибутами:
Nomer→ Family
Nomer→ Name
Shifr→ Avtor
Shifr→ Nazvanie
Атрибуты Family и Name частично зависят от ключа nomer. Тогда получаем вторую нормальную форму:
Вторая нормальная форма
В R2 имеем транзитивную зависимость:
Shifr→ Avtor→ Nazvanie,
тогда получаем 3 отношения:
Пример 2. Спроектировать базу данных для программного комплекса «Учет книг в библиотеке».
Выделим сущности «Читатель» и «Книга». Степень связи М:М. Класс принадлежности для сущности «Читатель» -необязательный, для книги – необязательный. Необходимые данные запишем в таблицу:
Читатель-Книга
Nomer
|
Family
|
Name
|
Shifr
|
Avtor
|
Namebook
|
1
---
2
1
3
|
Иванов
---
Петров
Иванов
Сидоров
|
Иван
---
Петр
Иван
Сидор
|
111
222
---
333
111
|
Фаронов
Архангельский
---
Гейл
Фаронов
|
Паскаль
Delphi 6
---
Visual Basic
Паскаль
|
Диаграмма ER – экземпляров имеет вид:
ER – диаграмма имеет следующий вид:
или
Получаем отношения для правила 6.
или
В результате получаем 3 отношения
Опишем все поля:
Nomer – номер читательского, ключевое поле;
Family – фамилия читателя;
Name – имя читателя;
Shifr – шифр книги;
Avtor – фамилия автора;
Namebook – название книги.
Если взять сущности Темы, Книги, Читатели, то ЕR – диаграмма выглядит следующим образом:
В результате получим 4 отношения:
где
Kodt – код темы;
Nametem – название темы.
Пример 3. Торговая фирма.
Выделим 2 сущности «Продавец» и «Выручка». Необходимые данные запишем в одну таблицу.
tabel
|
Family
|
Name
|
data_post
|
vir
|
vozn
|
data_prod
|
kv
|
1
2
3
1
---
|
Иванов
Петров
Сидоров
Иванов
---
|
Иван
Петр
Сидор Иван
---
|
01.01.1998
05.07.2001
08.08.2002
01.01.1998
---
|
500
1000
---
2000
3000
|
50
60
---
140
280
|
04.04.2016
05.05.2016
---
06.04.2016
05.05.2016
|
1
2
3
4
5
|
Диаграмма ER – экземпляров выглядит следующим образом:
Диаграмма ER – типа имеет вид:
или
Из правила 5 имеем 3 отношения:
или
Или, в предположении, что степень связи между сущностями (1:М) и класс принадлежности М – связной сущности обязательный, то диаграмма ER –типа имеет вид:
, тогда получаем отношения
Таким образом, имеем 2 отношения:
где атрибуты имеют следующий смысл:
tabel – табельный номер продавца;
Family – фамилия продавца;
Name – имя продавца;
data_post – дата поступления на работу;
kv – код выручки;
vir – сумма выручки;
vozn – сумма вознаграждения;
data_prod – дата продажи.
Пример 4. Учет материальных ценностей.
Выделим 2 сущности: кафедра, товар. Запишем необходимые данные в таблицу:
N1
|
Nametov
|
kol
|
N2
|
Nazkaf
|
kol_tov
|
data_v
|
1
2
1
---
|
Принтер1
Бумага
Принтер2
---
|
20
100
18
---
|
100
101
---
102
|
Мат.анализ
Информатика
---
Диф.ур.
|
2
3
---
---
|
02.02.2016
05.05.2016
---
---
|
Диаграмма ER – экземпляров имеет вид:
Диаграмма ER – типа имеет вид:
или
.
Получаем 3 отношения:
Опишем все атрибуты сущностей:
N1 – код товара;
Nametov – наименование товара;
kol – количество товара на складе;
N2 – код кафедры;
Nazkaf – название кафедры;
kol_tov – количество товара, взятого кафедрой;
data_v – дата выдачи товара со склада.
Пример 5. Выполнить проектирование базы данных и разработать структуру таблиц для программного комплекса “Учет товарооборота в магазине”.
Выделим сущности: категории, товары, фирмы.
В соответствии с определенными сущностями получаем диаграмму ER-типа:
Из перечисленных правил и диаграммы ER-типа следует, что:
Категория имеет товар (2 таблицы: категории и товары).
Фирма поставляет товар (3 таблицы: товар, фирма, промежуточная - поставляет).
Таким образом, получаем следующие таблицы:
Опишем смысловое значения каждого поля:
Nkat – номер категории товара;
naimkat – наименование категории;
kodF – код фирмы;
nazf –название фирмы;
Address – адрес фирмы;
tel – телефон фирмы;
Manager – фамилия менеджера;
kod_op –код операции: приход, расход, брак, списание;
ntov – код товара;
naimtov – наименование товара;
kol – количество проданного, купленного, списанного или бракованного товара;
Data – дата покупки, продажи, списания или установления брака товара;
cena – цена покупки, продажи товара;
суmmа – сумма продажи или покупки (цена, умноженная на количество товара).
Пример 6. Выполнить проектирование базы данных и разработать структуру таблиц для программного комплекса: “Оплата студентов за обучение ”.
Сущности: факультет, специальность, студент, оплата.
В соответствии с определенными сущностями получается диаграмма ER-типа:
Из перечисленных выше правил и диаграммы ER-типа следует, что:
факультет имеет специальность (2 таблицы).
студент учится на специальности (2 таблицы).
Студент платит за обучение (2 таблицы).
Таким образом, получаем следующие таблицы:
Опишем смысловые значения полей в таблицах:
Nfac – код факультета;
fac – название факультета;
Nspec – шифр специальности;
spec – название специальности;
kodzach – код зачетки студента;
family – фамилия студента;
name – имя студента;
father – отчество студента;
telefon – телефон студента;
address – адрес;
kurs – курс, на котором учится студент;
gruppa – название группы, в которой учится студент;
cymma – сумма оплаты за обучение;
data – дата оплаты за обучение.
Пример 7. Осуществить проектирование базы данных и разработать структуру таблиц для программного комплекса “Отдел кадров на научном предприятии”.
Выделим сущности: сотрудники, должности, национальность, степень, направление степени, звание, отдел.
Получаем диаграмму ER-типа в следующем виде:
В результате описанных выше правил и полученной ER- диаграммы имеем следующие таблицы:
Опишем перечисленные поля:
nud – номер удостоверения;
family – фамилия сотрудника;
name – имя сотрудника;
father – отчество сотрудника;
sik – сик;
pnn – рнн;
pol – пол;
kodnac – код национальности;
kodd – код должности;
kodotd – код отдела;
kodst – код степени;
kodn – направления степени;
kodz – код звания;
staj – стаж работы до данного предприятия;
ostaj – общий стаж работы;
data_r – дата рождения;
data_p – дата поступления;
nac – национальность;
nazv – должность;
nazvotd – название отдела;
nazvst – название степени;
nazvn – название направления степени;
nazvz – звание.
Контрольные вопросы:
Что такое сущность, атрибут сущности, экземпляр сущности?
На чем основываются правила формирования отношений?
Охарактеризуйте нормальные формы.
Опишите основные проблемы проектирования баз данных.
Какие зависимости между атрибутами Вы знаете?
Для чего применяется метод нормальных форм?
Что представляет собой метод «Сущность-связь»?
Достарыңызбен бөлісу: |