Примеры проектирования базы данных
Создание реляционной базы данных. Проектирование БД с использованием метода сущность-связь, построение ER-диаграммы и реляционной схемы. Предметная область: отдел кадров, поставка товаров. Структура БД, построение информационно-логической модели.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 06.09.2013 |
Размер файла | 335,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ПримерЫ проектирования базы данных
Введение
проектирование база реляционный
При создании реляционной базы данных пользователь должен располагать описанием предметной области. На основе такого описания в процессе проектирования БД осуществляется определение состава и структуры данных. Приведем пример проектирования БД с использованием метода сущность-связь, построения ER-диаграммы и в последствии - реляционной схемы БД.
1. Предметная область: отдел кадров
Минимальный список характеристик:
· Фамилия сотрудника, имя, отчество, домашний адрес, телефон, дата рождения, образование.
· Должность, дата зачисления, оклад, объем должности.
· Наименование подразделения, количество штатных единиц, фонд заработной платы.
Один и тот же сотрудник может зачисляться на работу в разные подразделения и в одном и том же подразделении может работать несколько сотрудников.
После выделения сущностей и определения связей [1] была получена следующая ER-диаграмма:
Рис. 1. ER-диаграмма предметной области
После исследования предметной области составлена уточненная ER-диаграмма, которая изображена на рис. 2. Введен ряд новых сущностей и ассоциаций. В данной ER-диаграмме используются обозначения сущностей, используемых в [1].
Рис. 2. Уточненная ER-диаграмма
Должность выбирается из предустановленного набора должностей, и не зависит ни от сотрудника, ни от отдела. Поэтому "Должность" становится отдельной сущностью.
Перечень должностей, которые могут быть в каждом отделе, определяется штатным расписанием. Таким образом, "Штатное расписание" является ассоциативной сущностью, связывающей сущности "Отдел" и "Должность". Строка штатного расписания содержит информацию о количестве ставок одной должности в одном отделе. Таким образом, одной должности может соответствовать несколько строк в "Штатном расписании" (для разных отделов), и одному отделу - тоже несколько строк (для разных должностей).
Зачисление сотрудника на должность в отделе (на нашей диаграмме - "Работа") является ассоциаций, связывающей не сотрудника с должностью и отделом, а сотрудника - со штатным расписанием, так как зачисление может производиться только в соответствии со штатным расписанием. Одна строка штатного расписания может быть связана с несколькими строками работ, так как ставок по данной строке может быть несколько и зачисление может происходить на дробную ставку (например, 0,5). Один сотрудник может быть зачислен на несколько работ. "Теоретически" общий объем работ, связанных со строкой штатного расписания не должен превышать указанное в штатном расписании количество ставок, но на практике это правило, по-видимому, может нарушаться. Кроме того, опять-таки "теоретически", сумма окладов по работам, связанным (через штатное расписание) с одним отделом, не должна превышать фонда зарплаты отдела, но это правило тоже не абсолютное.
Среди запросов, предложенных в задании, есть запрос, подразумевающий наличие информации об образовании сотрудника. Отсюда - необходимость иметь атрибут “Образование” в сущности “Сотрудник”
После нормализации схемы данных [2-5], получаем схему, представленную на рисунке 3. Сущности этой схемы представимы в виде реляционных таблиц.
Рис. 3. Реляционная схема базы данных
Атрибуты сущности "Отдел" - код (первичный ключ) отдела, название и фонд зарплаты отдела.
Атрибуты сущности "Сотрудник":
идентификационный код сотрудника, первичный ключ;
фамилия; имя, отчество;
дата рождения;
адрес;
телефон;
образование.
Атрибуты сущности "Должность":
код должности, первичный ключ;
название должности;
граничные оклады для должности;
Атрибуты сущности "Штатное расписание" - код строки штатного расписания (первичный ключ), коды должности и отдела и число ставок.
Атрибуты сущности "Работа":
идентификационный код сотрудника;
код строки штатного расписания;
оклад ("теоретически" оклад должен лежать в рамках граничных значений для должности);
дата зачисления и объем должности.
Первичный ключ здесь образуется комбинацией первых двух атрибутов.
Приведем пример проектирования, основанный на анализе документов, содержащих данные, которые должны быть размещены в БД.
2. Предметная область: поставка товаров
Фирма осуществляет поставку товаров со своих складов в соответствии с договорами. Каждый товар имеет наименование, единицу измерения и цену. Имеется список покупателей фирмы, который пополняется в процессе работы. Каждый покупатель - юридическое лицо - имеет наименование, идентификационный номер (ИНН), адрес, телефон, номер расчетного счета и наименование банка.
В договоре о поставке товара кроме реквизитов поставщика и покупателя указываются реквизиты товара, срок поставки, минимальная партия поставки, количество поставляемого товара и сумма поставки.
Учетная информация с данными по фактической отгрузке товаров покупателю со склада фирмы в соответствии с договорами содержится в накладных. Каждая накладная содержит кроме реквизитов поставщика и покупателя также и все реквизиты продаваемого товара, цену, ставку НДС, количество и сумму.
Назначение базы данных - обеспечение подготовки, хранения и просмотра данных по договорам с покупателями, по фактическим отгрузкам товаров, а также обеспечение анализа выполнения договорных обязательств на поставку по срокам и объемам.
1. Выделение информационных объектов
Для выделения информационных объектов необходимо сделать следующее:
1. Выявить документы, используемые фирмой в своей деятельности, и их реквизиты (поля).
2. Определить функциональную зависимость между реквизитами для каждого документа в отдельности.
3. Выбрать все зависимые реквизиты и указать для каждого из них все его ключевые (один или несколько), т.е. те, от которых он зависти функционально полно.
4. Сгруппировать реквизиты, зависимые от одинаковых ключевых реквизитов. Полученные группы и будут составлять информационный объект (ИО).
Совокупность полей - реквизитов выделенного объекта должна отвечать требованиям нормализации:
· ИО должен содержать уникальный ключ (простой или составной).
· Все остальные (описательные) реквизиты должны быть независимыми друг от друга.
· Все реквизиты, входящие в составной ключ, также должны быть независимыми.
· Каждый описательный реквизит должен функционально полно зависеть от ключа, т.е. каждому значению ключа должно соответствовать только одно значение описательного реквизита.
· При составном ключе описательный реквизит должен зависеть целиком от всей совокупности реквизитов, образующих ключ.
· Каждый описательный реквизит не должен зависеть от ключа транзитивно, через другой промежуточный реквизит.
2. Определим в документе Справочник товаров функциональные зависимости между реквизитами и присвоим им сокращенные имена (рис. 4).
Рис. 4. Функциональные зависимости в документе Справочник товаров
Из анализа документа очевидно, что ключом является Код_тов, от которого функционально полно зависят все остальные описательные реквизиты. Все реквизиты составляют содержание ИО ТОВАР.
Аналогично легко определить ИО ПОКУПАТЕЛЬ и ИО СКЛАД:
ПОКУПАТЕЛЬ (Код_пок, ИНН, наимен_пок, адрес_пок, нм_расч, банк). Код_пок - ключ.
СКЛАД ( Код_ск., Наим_ск., Адрес, Отв._лицо). Код_ск. - ключ.
3. Определим состав документа Договор, содержащего данные о плановых поставках товара.
Кодом покупателя однозначно определяются описательные реквизиты покупателя - наименование, ИНН, адрес, телефон, расчетный счет, банк. В таблице зависимостей эти реквизиты можно не отображать, поскольку информационный объект ПОКУПАТЕЛЬ, образованный этими реквизитами, был уже выделен.
Описательные реквизиты товара (наименование, единица измерения, цена) однозначно определены кодом товара. Эти реквизиты можно не включать в таблицу зависимостей, поскольку ранее их взаимосвязи были установлены при анализе ИО ТОВАР. Остальные реквизиты одного договора (количество поставки товара, минимальная партия, сумма за товар) однозначно определяются кодом товара. На всем же множестве договоров эти реквизиты будут функционально полно зависеть от составного ключа: номер договора+код товара. Будем исходить из того, что в договоре для одного товара возможно несколько сроков поставки, тогда срок поставки войдет в составной ключ номер договора+код товара+срок поставки (рис. 5).
Рис. 5. Функциональные зависимости в документе Договор
Сгруппируем реквизиты, одинаково зависимые от ключевых, и объединим их с ключевыми реквизитами в один информационный объект. В результате получим следующие ИО:
ДОГОВОР (Ном_дог, Дата_дог, Код_пок., Сумма_дог.). Ключ - Ном. Дог.
ПОСТАВКА_ПЛАН (Ном._дог., Код_тов., Срок_пост.,Кол_пост., Мин._пост., Сумма_пост.). Ключ составной - Ном._дог.+Код._тов.+Срок+пост.
Выполним анализ документа Накладная, содержащего информацию об отгрузке товаров по договорам.
Номер накладной не повторяется на одном складе, но может повторяться на разных складах данной фирмы. Поэтому для уникальной идентификации накладной необходим составной ключ: Номер накладной+Код склада.
Описательные реквизиты товара (наименование, единица измерения, цена, ставка НДС) однозначно определены кодом товара, что уже учтено в ИО ПОКУПАТЕЛЬ.
Количество отгруженного товара и сумма за товар определяются кодом товара в соответствующей строке, а полная идентификация по всем накладным определяется составным ключом: Номер накладной+Код склада+Код товара (рис. 6)
Рис. 6. Функциональные зависимости в документе Накладная
Из рис. 6 видно, что реквизиты Дата отгр., Ном дог. и Сумма накл. зависят от ключевых атрибутов Ном. накл + Код ск. , а реквизиты Кол. отгр. и Сумма отгр. зависят от Ном. накл.+ Код ск. + Код тов.
Сгруппируем реквизиты, одинаково зависимые от ключевых и объединим их вместе с ключевыми реквизитами в соответствующие информационные объекты:
НАКЛАДНАЯ (Ном. накл, Код ск., Дата отгр., Ном дог, Сумма накл). Ключ составной- Ном. накл. + Код ск.
ОТГРУЗКА( Ном. накл., Код ск., Код тов, Кол. отгр., Сумма отгр.). Ключ составной - Ном. накл.+Код ск.+Код тов.
4. Определение структуры базы данных
Для определения структуры БД (построения информационно-логической модели) необходимо установить связи между ИО. Объекты ДОГОВОР и ТОВАР имеют отношения М:М, поэтому необходима сущность-связка, в качестве которой выступает сущность ПОСТАВКА_ПЛАН. Такая же ситуация и между объектами ТОВАР и НАКЛАДНАЯ - в качестве связки между ними выступает сущность ОТГРУЗКА. Остальные связи - 1:М - между объектами ПОКУПАТЕЛЬ-ДОГОВОР, СКЛАД-НАКЛАДНАЯ, ДОГОВОР-НАКЛАДНАЯ.
5. Определение логической структуры БД
Рис. 7. Логическая структура БД
Логическая структура БД изображена на рис. 7. Все связи характеризуются отношением 1:М. Имена ключевых полей выделены жирным шрифтом.
Список литературы
1. В.Н. Шакин, Г.К. Сосновиков, И.Б. Юскова. Методические указания по дисциплине Теоретические основы построения БД. М., МТУСИ. 2004.
2. Г.К. Сосновиков, В.Н. Шакин, И.Б. Юскова. Методические указания и контрольные задания по дисциплине Основы построения БД. М., МТУСИ. 2004.
3. Бекаревич Ю.Б., Пушкина Н.В. Microsoft Access за 21 занятие. - СПб.: БХВ-Петербург, 2005.-544 с.
4. Пушников А.Ю. Введение в системы управления базами данных. Часть 1. Реляционная модель данных: Учебное пособие. /Изд-е Башкирского ун-та. - Уфа, 1999. - 108 с. - ISBN 5-7477-0350-1.
5. Пушников А.Ю. Введение в системы управления базами данных. Часть 2. Нормальные формы отношений и транзакции: Учебное пособие. /Изд-е Башкирского ун-та. - Уфа, 1999. - 138 с. - ISBN 5-7477-0351-X.
Размещено на Allbest.ru
...Подобные документы
Анализ баз данных и систем управления ими. Проектирование и создание реляционной базы данных в среде MS Access для ресторана "Дельфин": построение информационно логической модели, разработка структур таблиц базы данных и схемы данных, создание Web-узла.
курсовая работа [3,7 M], добавлен 15.11.2010Построение концептуальной модели, процесс моделирования смыслового наполнения базы данных. Основные компоненты концептуальной модели. Построение реляционной модели. Целостность данных в реляционной базе. Нормализация. Проектирование базы данных в ACCESS.
курсовая работа [1,8 M], добавлен 29.10.2008Сущность базы данных. Процесс построения концептуальной модели. Построение реляционной модели, создание ключевого поля. Процесс нормализации. Проектирование базы данных в ACCESS. Порядок создание базы данных. Создание SQL запросов и работа в базе данных.
курсовая работа [185,6 K], добавлен 08.11.2008Описание предметной области, определение функциональных требований к системе и построение диаграммы потока данных. Построение модели "сущность-связь", описание сущностей и атрибутов модели. Построение реляционной базы данных и описание ее таблицы.
курсовая работа [624,5 K], добавлен 30.05.2019Построение концептуальной модели. Проектирование реляционной модели данных на основе принципов нормализации: процесс нормализации и глоссарий. Проектирование базы данных в Microsoft Access: построение таблиц, создание запросов в том числе SQL – запросов.
курсовая работа [35,9 K], добавлен 08.11.2008Методология концептуального проектирования баз данных для АИС "Учет Проектов". Построение концептуальной модели. Диаграмма "сущность-связь". Нотация диаграммы "сущность-связь". Спецификация сущностей. Построение логической модели. Формирование запросов.
курсовая работа [524,4 K], добавлен 28.11.2008Понятие системы базы данных. Реляционная модель и ее характеристики. Целостность в реляционной модели. Реляционная алгебра. Вопросы проектирования БД. Нормальные формы отношений. Проектирование БД методом сущность-связь. ER-диаграммы. Язык SQL.
курс лекций [353,0 K], добавлен 03.10.2008Информационный анализ и выявление основных сущностей предметной области и их основных свойств. Построение концептуальной модели (модель сущность-связь). Определение логической модели реляционной базы данных. Решение задач средствами проектирования СУБД.
курсовая работа [3,0 M], добавлен 25.11.2013Исследование логической структуры реляционной базы данных на основе инфологической модели и её реализации в программе Microsoft SQL Server 2000. Характеристика разработки вложенных запросов на выборку записей, процедур, триггеров, создания представлений.
реферат [1,2 M], добавлен 11.05.2012Составление схемы концептуальной модели данных. Разработка структуры реляционной базы данных и интерфейса пользователя. Особенности главных этапов проектирования базы данных. Способы реализации запросов и отчетов. Специфика руководства пользователя.
курсовая работа [186,9 K], добавлен 18.12.2010Информационная система на базе компьютера. Основное отличие системы с базой данных от традиционной файловой системы. Построение концептуальной модели, реляционной модели. Нормализация. Проектирование базы данных в ACCESS. Создание SQL запросов.
курсовая работа [38,5 K], добавлен 06.11.2008Среды создания баз данных. Установка программного продукта MS Access 2000, построение реляционной базы данных, поддержка языка XML. ER-диаграмма (схема "сущность-связь"). Заполнение форм, создание таблиц. Действия для создания и редактирования списка.
курсовая работа [954,9 K], добавлен 22.12.2010Разработка схемы реляционной базы данных, содержащей информацию об автомобильных брендах, автозаводах и выпускаемых марках автомобилей. Реализация разработанной схемы данных при помощи SQL (добавление, изменение, удаление существующей информации).
курсовая работа [286,0 K], добавлен 05.06.2012Система управления базой данных (СУБД), централизованное обеспечение безопасности и целостности данных, защита от несанкционированного доступа. Построение концептуальной и реляционной моделей. Процесс нормализации. Проектирование базы данных в ACCESS.
курсовая работа [1,8 M], добавлен 29.10.2008Базы данных - важнейшая составная часть информационных систем. Проектирование базы данных на примере предметной области "Оргтехника". Сбор информации о предметной области. Построение информационно-логической модели данных. Разработка логической структуры.
курсовая работа [318,6 K], добавлен 24.12.2014Построение концептуальной, реляционной и логической моделей базы данных (БД). Разработка онтологии в системе Protege. Выбор средств реализации БД. Проверка ее структуры и содержимого. Создание, загрузка и проверка БД в СУБД Microsoft SQL Server 2008.
курсовая работа [3,4 M], добавлен 25.12.2012Проектирование автоматизированной информационной системы, позволяющей оформлять заказы на продажу керамической плитки. Разработка реляционной модели данных. Структура и содержание таблиц базы данных, формирование запросов к ней и назначение ее форм.
курсовая работа [4,9 M], добавлен 26.07.2013Особенности разработки инфологической модели и создание структуры реляционной базы данных. Основы проектирования базы данных. Разработка таблиц, форм, запросов для вывода информации о соответствующей модели. Работа с базами данных и их объектами.
курсовая работа [981,4 K], добавлен 05.11.2011Понятие информации, автоматизированных информационных систем и банка данных. Общая характеристика описательной модели предметной области, концептуальной модели и реляционной модели данных. Анализ принципов построения и этапы проектирования базы данных.
курсовая работа [1,7 M], добавлен 18.01.2012Анализ предметной области и введение ограничений. Выделение базовых сущностей. Концептуальная модель данных. Построение схемы реляционной модели базы данных магазина одежды в третьей нормальной форме. Описание физической БД. Проектирование интерфейса.
курсовая работа [2,6 M], добавлен 20.11.2013