Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы проектир. баз данных

.pdf
Скачиваний:
44
Добавлен:
19.03.2015
Размер:
1.08 Mб
Скачать

Например, необходимо решить: каким образом будет производиться расчет прибыли? Из каких элементов она будет складываться? Каким образом будет осуществляться движение ингредиентов блюд? Как производится учет труда персонала, его влияние на прибыль? Каким образом будет осуществляться компоновка меню? Каким образом будет подсчитываться дневная выручка и чистая прибыль? На основе этих данных можно будет проанализировать работу ресторана и тем самым увеличить прибыль.

Исходя из этих вопросов, выделяются объекты предметной области, о которых нужно собрать информацию в БД. Это следующие объекты: Персонал, Заказы, Блюда, Склад. Объекты также можно выделить, исходя из тех форм, которые циркулируют в той или иной предметной области. Мы не можем опереться на этот подход, так как у нас форм нет. Составляем концептуальную модель данных, объекты на ней представляем в виде прямоугольников, свойства объектов – в виде овалов (рис. 6).

В представленной схеме модели данных показано, как объекты связаны друг с другом. Объекты представлены прямоугольниками, а отношения между ними − отрезками. Символы «1» и «*» обозначают, как именно они взаимодействуют.

Отношения между объектами Персонал и Заказ (один ко многим): Каждый Служащий (официант) может выполнять один или несколько Заказов (*), (рис. 3).

Персонал

 

Выполняет

*

Заказы

 

 

 

1

 

 

 

 

 

 

Рис. 3. Диаграмма ER-типа для сущностей Персонал и Заказы

Каждый Заказ может состоять из одного или нескольких блюд (*). Отношение между объектом Заказ и Блюдо (один ко многим). Диаграмма ER-типа на рис. 4.

Заказ

 

Состоит

 

Блюда

 

 

 

 

 

1

 

*

 

Рис. 4. Диаграмма ER-типа

10

Каждое блюдо состоит из нескольких ингредиентов (*), (рис. 5).

Мы видим тип отношений: «один ко многим», существует еще один тип отношения, не представленный на схеме. Это отношение «один к одному».

 

*

1

 

 

 

 

 

 

Склад

Состоит

 

Блюдо

 

 

 

 

 

 

 

 

Рис. 5. Диаграмма ER-типа

Окончательный вид модели с атрибутами объектов представлен на рис. 6.

Контрольные вопросы

1.Перечислите основные этапы проектирования БД.

2.Определите соотношение понятия «сущность», «связь».

3.В чем заключается концептуальное проектирование для конкретной предметной области?

Список использованной и рекомендуемой литературы

1.Фуфаев, Д. Э. Разработка и эксплуатация автоматизированных информационных систем [Текст]: учеб. для СПО / Д. Э. Фуфаев, Э. В. Фуфаев. – М.: Академия, 2010. – 302 с.

2.Мезенцев, К. Н. Автоматизированные информационные системы [Текст]: учеб. для СПО / К. Н. Мезенцев. – М : Академия, 2010. – 171 с.

3.Гагарина, Л. Г. Разработка и эксплуатация автоматизированных информационных систем [Текст]: учеб. пособие для СПО / Л. Г. Гагарина, Д. В. Киселев, Е. Л. Федотова; под ред. Л. Г. Гагариной. – М.: ИД "ФОРУМ": ИНФРА-М,

2011. – 384 с.

4.Фуфаев, Э. В. Базы данных [Текст]: учеб. пособие для СПО / Э. В. Фуфаев, Д. Э. Фуфаев. – 5-е изд., стер. – М.: Академия, 2009. – 320 с.

11

12

Адрес

Паспорт-

Код заказа

Блюдо

ФИО

ные.данные

 

 

Год рож-

Персонал

 

*

Заказы

 

 

1

 

 

дения

 

 

 

 

 

 

 

 

 

 

 

1

 

Должность

Оклад

Телефон

 

 

 

 

 

 

 

*

 

 

 

*

1

Блюда

 

 

 

 

 

Ингредиент

Склад

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ингредиент

 

Вес

Вес

Цена

Количество

 

 

 

 

Рис. 6.

Концептуальная схема базы данных “Ресторан”

 

Порции

Дата заказа

Блюдо

Категория

12

Примеры индивидуальных заданий

В соответствии с индивидуальным вариантом создайте схему базы данных. Примерные варианты индивидуальных заданий

(табл. 1):

 

 

 

 

 

Таблица 1

 

 

 

 

 

 

Под-

Объекты и их харак-

 

Запросы

 

Отчеты

систе-

теристики

 

 

 

 

ма

 

 

 

 

 

 

Работник: табельный

1.

Состав бри-

1.

Список работ-

 

номер, ФИО,

гад по стажу ра-

ников, поступивших

 

дата рождения, адрес,

боты.

на предприятие в те-

»

должность, дата приня-

2.

ФИО и ад-

чение последнего

 

 

 

 

 

предприятия

тия,

реса бригадиров.

месяца.

ФИО начальника, число

4.

ФИО работ-

пуск.

 

дата увольнения.

3.

ФИО и ад-

2.

ФИО работни-

 

Цех: номер, наименова-

реса начальни-

ков, уходящих в те-

 

ние,

ков цехов.

кущем месяце в от-

«Кадры

бригад, количество ра-

ников, выходя-

 

 

бочих в бригаде.

щих в этом году

 

 

Бригада: номер, наиме-

на пенсию.

 

 

 

нование, цех, ФИО бри-

 

 

 

 

 

гадира, план, факт.

 

 

 

 

 

 

 

 

 

 

Материально« - техническоеснаб- »жение

Товар: наименование,

1.

Ведомость

1.

Ведомость при-

шифр, ед. измерения.

наличия товара

хода.

Движение: товар, по-

на складе на i- е

2.

Ведомость рас-

 

 

ставщик, получатель,

число.

хода.

 

количество.

2.

Список по-

 

 

 

Получатель: шифр, на-

ставщиков.

 

 

 

именование, № счета.

3.

Список по-

 

 

 

 

лучателей.

 

 

 

 

 

 

 

 

Порядок отчета о практической работе

При отчете о практической работе необходимо:

1.Продемонстрировать выполненные задания по индивидуальному варианту, прокомментировать порядок выполнения и объяснить полученные результаты.

2.Ответить на контрольные вопросы.

13

Практическая работа № 2 Тема: Особенности реляционной модели и проектирование баз

данных

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

После выполнения практической работы студент должен: Знать: назначение реляционной модели данных в проектиро-

вании БД.

Уметь: преобразовать концептуальную схему данных в реляционную модель и уметь ее нормализовать.

Время выполнения – 2 часа.

Порядок выполнения практической работы:

1.Проработать все описанные упражнения самостоятельно, руководствуясь учебным пособием.

2.Выполнить задание по своему индивидуальному варианту.

3.Проверить свои знания по контрольным вопросам и сдать отчет о практической работе.

Пояснения к работе

Предварительная подготовка Создание реляционной БД и процесс нормализации таблиц

Реляционные базы данных в настоящее время наиболее распространены и фактически являются промышленным стандартом.

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

Таблица состоит из строк и столбцов и имеет уникальное имя в базе данных. База данных содержит множество таблиц, связь между которыми устанавливается с помощью совпадающих полей.

Вкаждой из таблиц содержится информация о каких-либо объектах одного типа (группы). Каждая запись в таблице идентифицирует один объект группы. В качестве идентификационного при-

14

знака используется первичный ключ. Ключ (Первичный ключ) таблицы – это атрибут или набор атрибутов, однозначно определяющий каждую строку реляционной таблицы. Отношение между объектами определяет отношение между таблицами. ACCESS 2003 поддерживает следующие типы отношений между таблицами: «один к одному», «один ко многим», «много к одному», «много ко многим».

Отношение «один к одному» означает, что каждая запись одной таблицы соответствует только одной записи в другой таблице. Отношение «один ко многим» означает, что каждой записи одной таблицы соответствуют много записей другой таблицы. Отношение «много к одному» аналогично типу отношения «один ко многим». Тип отношения между объектами зависит от точки зрения разработчика. Отношение «много ко многим» возникает между таблицами в случаях когда: одна запись из первой таблицы может быть связана более чем с одной записью из второй таблицы, и одна запись из второй таблицы может быть связана более чем с одной записью из первой таблицы. Связь между таблицами устанавливается на основании значений в совпадающих полях. Поле, по которому осуществляется связь, называется внешним ключом. Внешний ключ – это набор атрибутов одной таблицы, являющийся первичным ключом другой таблицы.

Проектирование нормализованных баз данных

Процесс проектирования базы данных является итерационным (допускающим возврат к предыдущим этапам для пересмотра ранее принятых решений) и включает следующие этапы:

1.Выделение сущностей и связей между ними.

2.Построение диаграмм ER-типа с учетом всех сущностей и их связей.

3.Формирование набора предварительных отношений с указанием предполагаемого первичного ключа для каждого отношения и использованием диаграмм ER-типа.

4.Добавление неключевых атрибутов в отношения.

5.Приведение предварительных отношений к нормальной форме Бойса-Кодда, например, с помощью метода нормальных форм.

6.Пересмотр ER-диаграмм в следующих случаях:

некоторые отношения не приводятся к нормальной форме Бойса-Кодда;

15

некоторым атрибутам не находится логически обоснованных мест в предварительных отношениях.

7. После преобразования ER-диаграмм осуществляется повторное выполнение предыдущих этапов проектирования (возврат к этапу 1).

При проектировании реляционной базы данных необходимо решить вопрос о наиболее эффективной структуре данных. Основные цели, которые при этом преследуются:

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

Исключить ненужное повторение данных.

Обеспечить целостность данных таким образом, чтобы при изменении одних объектов автоматически происходило соответствующее изменение связанных с ними объектов.

Процесс уменьшения избыточности информации в базе дан-

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

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

Персонал {ФИО, Адрес, Телефон, Год рождения, Должность, Оклад, Паспортные данные}.

Заказ {Код заказа, Дата заказа, Блюдо, Порции, ФИО}. Внешний ключ ФИО ссылается на таблицу Персонал, внеш-

ний ключ Блюдо ссылается на таблицу Блюдо. Блюдо {Блюдо, Категория, Ингредиент, Вес}.

Внешний ключ Ингредиент ссылается на таблицу Склад. Склад {Ингредиент, Вес, Цена, Количество}.

Из схемы (см. рис. 6) видно, что база данных Ресторан состоит из четырех таблиц: Персонал, Заказы, Блюда, Склад. Ясно, что строка таблицы Персонал содержит информацию о конкретном служащем. Каждая запись таблицы идентифицирует один объект. Первичным ключом таблицы Персонал является атрибут ФИО.

Втаблице Заказ первичным ключом является атрибут Код заказа, в таблице Блюдо – Блюдо, в таблице Склад – атрибут Ингредиент.

16

Отношение между объектами определяет отношение между таблицами.

Предполагается, что один и тот же сотрудник (официант) может выполнять несколько заказов. Таким образом, между персоналом и выполненными им заказами существует отношение «один ко многим». Связь устанавливается на основании данных в совпадающих полях. Между объектами Блюдо и Заказ также существует связь типа «один ко многим», так как один заказ может состоять из нескольких блюд, в тоже время в одном заказе может присутствовать только одно блюдо. Между таблицами Склад и Блюдо отношение типа «один ко многим».

После небольшого анализа легко видеть, что реляционные таблицы спроектированы неудачно. Например, официант может выполнять несколько заказов, а в каждом заказе может быть заказано несколько блюд. В строках таблицы Заказ атрибуты Код заказа, Дата заказа, ФИО официанта, Наименование блюда могут повторять одно и то же значение несколько раз. Это повторение или избыточность приводят не только к потере места на диске, но могут вызвать нарушение целостности данных в БД.

Воспользуемся рекомендациями теории нормализации для разработки многотабличной БД с эффективной структурой.

Таблицы, структура которых приведена выше, находятся в первой нормальной форме и должны удовлетворять следующим требованиям:

1.Таблица не должна иметь повторяющихся записей.

2.В таблице должны отсутствовать повторяющиеся группы

полей.

3.Строки и столбцы должны быть не упорядочены.

О таблице говорят, что она находится во второй нормальной форме, если:

1.Она удовлетворяет условиям первой нормальной формы.

2.Любое неключевое поле однозначно идентифицируется полным набором ключевых полей.

Понятие второй нормальной формы применимо только к таблицам, имеющим составной индекс. В нашем примере такими таблицами являются Заказ и Блюдо, в которых составными ключами являются Код заказа и ФИО, также Блюдо и Ингредиент соответственно.

17

Для приведения таблиц ко второй нормальной форме, разобьем таблицу Заказ на две таблицы Заказ и Заказ_блюда; таблицу Блюдо на две таблицы Блюдо и Ингредиенты.

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

Таблицу можно представить как реализацию объекта из нашей модели. В таблице данные расположены в виде полей и записей (столбцы и строки соответственны). Например, таблица Персонал состоит из полей ФИО, Адрес, Телефон, Год рождения, Должность, Оклад, Паспортные данные. Столбец ФИО состоит из фамилий сотрудников. Запись – это строка таблицы. Поля описывают характеристики объекта, важные для проектировщика. Теперь с помощью СУБД можно создать структуру таблиц (рис. 7) и вводить данные (рис. 8–13).

18

19

Рис. 7. Структура реляционных таблиц

19