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

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.11.2023

Просмотров: 30

Скачиваний: 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