Файл: Пояснительная записка к курсовому проекту по дисциплине базы данных на тему.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 28
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МОСКОВСКИЙ АВТОМОБИЛЬНО-ДОРОЖНЫЙ
ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
(МАДИ)
Пояснительная записка к курсовому проекту
по дисциплине
«БАЗЫ ДАННЫХ»
на тему
«Проектирование базы данных «Учет заказов мостостроительной компании»»
Выполнил студент: Кузнецов Н.С., гр.2збАСУс
Проверил: к.т.н., доц. Исмоилов М.И.
Москва 2023
Оглавление
Введение 3
1 Описание предметной области. 4
2 Проектирование базы данных 5
2.1.1 Описание сущностей 5
2.1.2 Описание связей 6
2.1.3 Концептуальная модель данных в стандарте Чена 7
2.2.1 ER-диаграмма в среде ERwin 8
2.2.2 Анализ ER-диаграммы 8
2.3.1 Генерация базы данных 9
2.3.2 Схема данных в среде, выбранной СУБД 10
3 Запросы 12
Заключение 15
Введение
В современном мире значительная часть жизни построена на информационных системах. Существенную роль играют средства накопления и передачи данных.
Наиболее эффективным и структурированным средством хранения информации являются базы данных. Большое количество приложений для обработки информации ориентированы на работу с БД.
В качестве объекта для проектирования информационной системы выбран Учет заказов мостостроительной компании. Основной вид деятельности – предоставление юридическим лицам надежные мосты.
Строительная компании – весьма распространённая и востребованная компания.
Задачами проекта будут:
– исследование и описание предметной области;
– применение метода ER-диаграмм для разработки базы данных;
–использование CASE – средства Erwin для анализа модели и автоматической генерации БД;
– создание макета сценарного интерфейса для пользователя.
1 Описание предметной области.
Объект: Учет заказов мостостроительной компании.
Функции: учет заказов.
В компани входит некоторое количество сотрудников, которые обрабатывают заявки и направляют их подрядчикам (более маленьким компаниям).
Также ведётся учёт клиентов. На каждого клиента оформляется индивидуальным номером и личными данными (фамилия, имя, отчество, телефон). В личной карточке находятся сведения о запрос на строительство.
В компании разработана система штрафов (наименование штрафа, процент от суммы оплаты) для подрядчиков.
Все обращения клиентов фиксируются в базе данных, при этом по каждого заказа запоминается: дата сдачи, количество дней, ожидаемая дата сдачи, сумма строительства [сумма строительства = стоимость строительства за сутки * количество дней], сумма штрафа, итоговая сумма. В одной выдаче задействованы один микроавтобус, один клиент, может быть несколько видов штрафов.
2 Проектирование базы данных
2.1 Этап концептуального проектирования
2.1.1 Описание сущностей
В результате анализа предметной области были выделены следующие сущности: должности, сотрудники, скидки, штрафы, клиенты, класс авто, марка, модель, микроавтобусы, прокат, штрафы за прокат.
Описание сущностей приведена в таблице 1.
Таблица 1. Описание сущностей
Сущность | Атрибут | Ключ | Домен | Обязательность | Примечание | |
Тип | Размер | |||||
должности (positions) | id_pos | PK | числовой | - | + | Auto Increment |
name | | текстовый | 50 | + | | |
сотрудники (employees) | id_empl | PK | числовой | - | + | Auto Increment |
fio | | текстовый | 100 | + | | |
fk_ id_pos | FK | числовой | - | + | | |
phone | | текстовый | 15 | - | | |
клиенты (clients) | id_client | PK | числовой | - | + | Auto Increment |
fio | | текстовый | 100 | + | | |
address | | текстовый | 85 | - | | |
phone | | текстовый | 15 | + | | |
fk_ id_sale | FK | числовой | - | - | | |
Заказы (Orders) | id_class | PK | числовой | - | + | Auto Increment |
name | | текстовый | 50 | + | | |
Исполнители (Performers) | id_model | PK | числовой | - | + | Auto Increment |
name | | текстовый | 50 | + | | |
fk_id_project | FK | числовой | - | + | | |
штрафы за срок сдачи (penalties for the deadline) | id_ rental_fines | PK | числовой | - | + | Auto Increment |
fk_ id_rental | FK | числовой | - | + | | |
fk_ id_fine | FK | числовой | - | + | | |
Проект (Project) | id_project | PK | числовой | - | + | Auto Increment |
name | | текстовой | 50 | + | |
2.1.2 Описание связей
Данные сущности находятся в связях друг с другом. Между типами сущностей различают следующих 3 типа связей:
– «один-к-одному» или 1:1. Это значит, что одному экземпляру некоторой сущности может соответствовать только один экземпляр другой сущности;
– «один-ко-многим» или 1:M. Это значит, что одному экземпляру сущности может соответствовать любое количество (M) экземпляров другой сущности. Если известно значение максимального количества экземпляров, то это значение указывается вместо символа М;
– «много-к-многим» или M:N. Это означает, что нескольким экземплярам одной сущности может соответствовать несколько экземпляров другой сущности.
При разработке БД необходимо принимать во внимание правила обеспечения целостности данных. В разработанной схеме базы данных существует 11 сущностей и 10 связи между ними. Описание связей приведено в таблице 2.
Таблица 2. Описание связей
Сущность | Связь | Сущность | Показатель кардинальности | Степень участия | |
1-й сущности | 2-й сущности | ||||
1 | 2 | 3 | 4 | 5 | 6 |
Должность | Занимает | Сотрудник | 1:М | Ч | П |
Сотрудники | Оформляют | Клиент | 1:М | Ч | П |
Сотрудники | Оформляют | Заказ | 1:М | Ч | П |
Штрафы | Выписываются | Штрафы срок работы | 1:М | Ч | П |
Сотрудники | Принадлежит | Исполнители | 1:М | Ч | П |
Проект | Готовность | Исполнители | 1:М | Ч | П |
2.1.3 Концептуальная модель данных в стандарте Чена
Концептуальная модель данных в стандарте Чена приведена на рисунке 1.
Рис.1. Концептуальная модель данных в стандарте Чена
2.2 Этап логического проектирования
2.2.1 ER-диаграмма в среде ERwin
Логическая модель данных в среде ERwin приведена на рисунке 2.
Рис.2. Логическая модель данных в среде ERwin.
2.2.2 Анализ ER-диаграммы
На этом этапе необходимо проанализировать следующие «нежелательные», с точки зрения многих СУБД, элементы:
– составные атрибуты;
– многозначные атрибуты;
– производные атрибуты;
– рекурсивные связи;
– связи с показателем кардинальности «1 х 1»;
– избыточная связь;
– связи с показателем кардинальности «М х N».
При проектировании и создании исходной базы данных были соблюдены все требования реализации в целевой СУБД, таким образом в процессе анализа модель данных не подвергалась изменениям.
Анализ модели на этапе логического проектирования считается законченным, и полученная модель является логической моделью данных, которая может быть реализована в выбранной целевой СУБД.
2.3 Этап физического проектирования.
2.3.1 Генерация базы данных
Чтобы создать новую базу данных откроем SQL Server Management Studio и создадим запрос (листинг 1).
Листинг 1. Скрипт генерации базы данных
CREATE DATABASE BRIDGE_BUILD CREATE TABLE positins( id_pos int primary key identity(1,1) NOT NULL, name varchar(50) NOT NULL ); CREATE TABLE employess( id_empls int primary key identity(1,1) NOT NULL, fio varchar(50) NOT NULL, phone varchar(15) NOT NULL, id_pos int NOT NULL, foreign key (id_pos) references positins(id_pos) ); CREATE TABLE clients( id_client int primary key identity(1,1) NOT NULL, fio varchar(100) NOT NULL, address varchar(85) NULL, phone varchar(15) NOT NULL, id_empls int NOT NULL, foreign key (id_empls) references employess(id_empls) ); CREATE TABLE Orders( id_sale int primary key identity(1,1) NOT NULL, name varchar(50) NOT NULL, id_client int NOT NULL, foreign key (id_client) references clients(id_client) ); CREATE TABLE Project( id_project int primary key identity(1,1) NOT NULL, name varchar(50) NOT NULL, id_sale int NOT NULL, foreign key (id_sale) references Orders(id_sale) ); CREATE TABLE Performers( id_model int primary key identity(1,1) NOT NULL, name varchar(50) NOT NULL, id_project int NOT NULL, foreign key (id_project) references Project(id_project) ); CREATE TABLE Penalties_for_the_deadline( id_rental_fines int primary key identity(1,1) NOT NULL, id_rental int NOT NULL, id_fine int NOT NULL, id_model int NOT NULL, foreign key (id_model) references Performers(id_model) ); |
Для создания базы данных используется команда CREATE DATABASE. Для создания таблиц применяется команда CREATE TABLE. С этой командой можно использовать ряд операторов, которые определяют столбцы таблицы и их атрибуты. И кроме того, можно использовать ряд операторов, которые определяют свойства таблицы в целом.
Внешние ключи применяются для установки связи между таблицами. Внешний ключ устанавливается для столбцов из зависимой, подчиненной таблицы, и указывает на один из столбцов из главной таблицы.
Для создания ограничения внешнего ключа после ключевого слова REFERENCES указывается имя связанной таблицы и в круглых скобках имя связанного столбца, на который будет указывать внешний ключ. С помощью оператора CONSTRAINT можно задать имя для ограничения внешнего ключа.
2.3.2 Схема данных в среде, выбранной СУБД
Схема данных в среде СУБД MS SQL Server приведена на рисунке 2.
Рисунок 2 – Схема данных в среде MS SQL Server
3 Запросы
1. Вывести список клиентов.
select * from Clients |
Результат:
2. Вывести список сотрудников.
select * from employess |
Результат:
3. Вывести список сотрудников, работающих на должности «Оператор ЭВМ».
select p.name, e.fio from positins as p join employess as e on p.id_pos = e.id_pos Where p.name = 'Оператор ЭВМ' |
Результат:
4. Вывести должности на которых стоят более 1 сотрудника.
select p.name, count(*) from positins as p join employess as e on p.id_pos = e.id_pos group by p.name having count(*) > 1 |
Результат:
5. Вывести количество клиентов у каждого сотрудника.
select e.fio, count(*) as client_count from employess as e join Clients as c on e.id_empls = c.id_empls group by e.fio |