Файл: Операции, производимые с данными (История развития баз данных).pdf

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

Категория: Курсовая работа

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

Добавлен: 04.04.2023

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

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Таблица 2 – Объект «userr»

Meaning

Designation

Example

Type

Уникальный идентификатор пользователя

ID

1

INT, NOT NULL, PRIMARY KEY

Имя пользователя

name

Николай

VARCHAR(50) , NOT NULL

Роль (1 – арендодатель, 0 - покупатель)

Prodavec

0

INT,NOT NULL

Общий рейтинг пользователя

Rating

10

INT, NOT NULL

Статус учетной записи (1 – активна, 0 - заблокирована)

Activ

1

INT, NOT NULL

Контактный телефон

Telefon

8-910-725-34-42

NVARCHAR(50) ,NOT NULL

Контактный @mail (он же логин для входа в систему)

mail

test@bk.ru

NVARCHAR(50) ,NOT NULL

Пароль пользователя для входа в систему

Pasword

qwerty

CHAR(10) ,NOT NULL

Таблица 3 – Объект «Report»

Meaning

Designation

Example

Type

Уникальный идентификатор

ID

4

INT,NOT NULL, PRIMARY KEY

Ссылка на идентификатор пользователя - арендодателя

ID_User

2

INT,NOT NULL

Ссылка на идентификатор спецтехники

ID_Auto

3

INT,NOT NULL

Дата и время публикации

Time

2018-09-26 00:00:00.000

DATETIME,NOT NULL

Показать объявление

(1 – показать, 0 – не показать)

Activ

1

INT,NOT NULL

Цена аренды

Cost

3000

INT,NOT NULL

Таблица 4 – Объект «Zakaz»

Meaning

Designation

Example

Type

Уникальный идентификатор

ID

1

INT,NOT NULL, PRIMARY KEY

Ссылка на идентификатор пользователя - заказчика

ID_User

1

INT,NOT NULL

Ссылка на идентификатор объявления арендодателя

ID_Report

1

INT,NOT NULL

Дата и время начала аренды

Date_IN

2018-09-28 00:00:00.000

DATETIME,NOT NULL

Дата и время завершения аренды

Date_Out

2018-09-29 00:00:00.000

DATETIME,NOT NULL

Таблица 5 – Объект «Auto»

Meaning

Designation

Example

Type

Уникальный идентификатор спецтехники

ID

1

INT,NOT NULL, PRIMARY KEY

Уникальный идентификатор вида спецтехники

ID_Tehnic

3

INT,NOT NULL

Наименование спецтехники

Name

«ЧТЗ - 2100»

VARCHAR(50), NOT NULL

Описание спецтехники

Comments

Гусеничный бульдозер мощностью 2100 л/с

TEXT,NOT NULL

Ссылка на идентификатор пользователя

ID_User

2

INT,NOT NULL


Таблица 6 – Объект «Tehnic»

Meaning

Designation

Example

Type

Уникальный идентификатор вида спецтехники

ID

3

INT,NOT NULL, PRIMARY KEY

Наименование вида спецтехники

Name

Бульдозер

VARCHAR(50),NOT NULL

Таблица 7 – Объект «Chat»

Meaning

Designation

Example

Type

Уникальный идентификатор

ID

4

INT,NOT NULL, PRIMARY KEY

Ссылка на идентификатор пользователя 1

ID_user1

2

INT,NOT NULL

Ссылка на идентификатор пользователя 2

ID_user2

3

INT,NOT NULL

Текст сообщения

Text

Мне нужен бульдозер на 2 ближайших дня

TEXT,NOT NULL

Дата и время сообщения

Time

2018-09-26 00:00:00.000

DATETIME,NOT NULL

Системы функциональных зависимостей:

(1) Объяснить, почему был выбран первичный ключ.

(2) F1- Описание таблицы, первым выделяются первичные ключевые

атрибуты таблицы, после знака -> идёт описание остальных атрибутов.

(3) K1- Только первичные ключи.

1) «Comments» Не может быть нескольких комментариев с одним идентификационным номером.

F1: ID -> ID_User, Comments, Rating, ID_Zakaz, Like_dislike

K1 = ID

2) «userr» Не может быть двух пользователей с одинаковыми идентификаторами.

F2: ID -> name, Prodavec, Rating, Activ, Telefon, mail

K2 = ID

«Report»

3) Не может быть двух объявлений с одинаковым идентификационным номером.

F3: ID -> ID_User, ID_Auto, Time, Activ, Cost

K3 = ID

«Zakaz»

4) Не может быть нескольких заказов с одним идентификационным номером.

F4: ID -> ID_User, ID_Report, Date_IN, Date_Out

K4 = ID

5) «Auto» Не может быть двух одинаковых спецмашин с одним идентификационным номером.

F5: ID -> ID_Tehnic, Name, Comments, ID_User

K5 = ID

6) «Tehnic» Не может быть двух одинаковых типов классификации техники.

F6: ID -> Name

K6 = ID

7) «Chat» Не может быть двух одинаковых сообщений с одним идентификационным номером.

F7: ID -> ID_user1, ID_user2, Text, Time

K7 = ID

2.1.3 Заполнение данными таблиц базы данных auto

Заполним данными таблицу Auto

Вносим технику, которую владельцы предлагают в аренду, снабжаем записи комментариями с характеристиками машин

Рисунок 10 – Данные таблицы Auto

Заполним данными таблицу Comments

В этой таблице у нас будет содержаться информация о комментариях к заказам.


Рисунок 11 – Данные таблицы Comments

Заполним данными таблицу Report

В этой таблице у нас будет содержаться информация об объявлениях.

Рисунок 12 – Данные таблицы Report

Заполним данными таблицу Tehnic

Внесем группы машин по их назначению.

Рисунок 13 – Данные таблицы Tehnic

Заполним данными таблицу user

Здесь будет содержаться вся информация о пользователях.

Рисунок 14 – Данные таблицы userr

Заполним данными таблицу Zakaz

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

Рисунок 15 – Данные таблицы Zakaz

Заполним данными таблицу Chat

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

Рисунок 16 – Данные таблицы Chat

После заполнения данными таблиц перейдём к созданию запросов для работы с нашей базой данных.

2.1.4 Создание Sql запросов к базе данных auto

Запросы будем создавать в MSSQL

Рассмотрим первый запрос.

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

SELECT Name FROM [auto].[dbo].[Zakaz], [auto].[dbo].[auto], [auto].[dbo].[Report]

WHERE (([auto].[dbo].[Zakaz].Date_IN > '2018-11-21 12:00:00.000')

or ([auto].[dbo].[Zakaz].Date_Out < '2018-11-21 12:00:00.000'))

and (([auto].[dbo].[Report].ID_Auto = [auto].[dbo].[auto].ID)

and ([auto].[dbo].[Report].ID = [auto].[dbo].[Zakaz].ID_Report)

and ([auto].[dbo].[auto].ID_Tehnic = '3'))

group by Name

GO

Рисунок 17 – Результат выполнения SQL запроса

Рассмотрим второй запрос.

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

SELECT Comments,Rating,Like_dislike

FROM [auto].[dbo].[Zakaz], [auto].[dbo].[Report], [auto].[dbo].[Comments]

WHERE ([auto].[dbo].[Zakaz].ID_Report = [auto].[dbo].[Report].ID)

and ([auto].[dbo].[Comments].ID_Zakaz = [auto].[dbo].[Zakaz].ID)

and ([auto].[dbo].[Report].ID_Auto = '6')

GO

Рисунок 18 – Результат выполнения запроса

Рассмотрим третий запрос.

Необходимо вывести общий рейтинг востребовательности по типу техники по убыванию.

SELECT COUNT(*) as count, [auto].[dbo].[auto].ID_Tehnic,[auto].[dbo].[Tehnic].Name


FROM [auto].[dbo].[Zakaz], [auto].[dbo].[auto], [auto].[dbo].[Report],[auto].[dbo].[Tehnic]

WHERE ([auto].[dbo].[Report].ID_Auto = [auto].[dbo].[auto].ID)

and ([auto].[dbo].[Report].ID = [auto].[dbo].[Zakaz].ID_Report)

and ([auto].[dbo].[auto].ID_Tehnic = [auto].[dbo].[Tehnic].ID)

group by [auto].[dbo].[auto].ID_Tehnic , [auto].[dbo].[Tehnic].Name

ORDER BY count DESC

GO

Рисунок 19 – Результат выполнения запроса

Рассмотрим четвертый запрос.

Необходимо посмотреть занятость конкретного вида спец техники на неделю вперед.

SELECT [auto].[dbo].[auto].Name ,[auto].[dbo].[Zakaz].ID as ID_Zakaz ,

[auto].[dbo].[Zakaz].Date_IN,[auto].[dbo].[Zakaz].Date_Out

FROM [auto].[dbo].[Zakaz], [auto].[dbo].[auto], [auto].[dbo].[Report],[auto].[dbo].[Tehnic]

WHERE (([auto].[dbo].[Zakaz].Date_IN < '2018-11-22 12:00:00.000')

and ([auto].[dbo].[Zakaz].Date_Out > '2018-11-22 12:00:00.000'))

and (([auto].[dbo].[Report].ID_Auto = [auto].[dbo].[auto].ID)

and ([auto].[dbo].[Report].ID = [auto].[dbo].[Zakaz].ID_Report)

and ([auto].[dbo].[auto].ID_Tehnic = [auto].[dbo].[Tehnic].ID)

and ([auto].[dbo].[auto].ID_Tehnic = '3'))

GO

Рисунок 20 – Результат выполнения запроса

Рассмотрим пятый запрос.

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

SELECT [auto].[dbo].[user].ID, [auto].[dbo].[user].name,

SUM((datediff(day, [auto].[dbo].[Zakaz].Date_IN, [auto].[dbo].[Zakaz].Date_Out))

*[auto].[dbo].[Report].Cost) as summa

FROM [auto].[dbo].[Zakaz], [auto].[dbo].[user], [auto].[dbo].[Report]

WHERE

([auto].[dbo].[Report].ID_User = [auto].[dbo].[user].ID)

and ([auto].[dbo].[Report].ID = [auto].[dbo].[Zakaz].ID_Report)

group by [auto].[dbo].[user].ID,[auto].[dbo].[user].name

ORDER BY summa DESC

GO

Рисунок 21 – Результат выполнения запроса

2.1.5 Создание пользователей для базы данных

Создание/Добавление пользователей.

Открываем "Безопасность" =>" Создать имя входа..." (Рис. 22)

Рисунок. 22 – Порядок открытия окна «Создать имя входа»

Заполняем строку "Имя входа:". Выбираем "Проверка подлинности SQL Server". Заполняем строки "Пароль" и "Подтверждение пароля. Убираем галочку с "Требовать использование политики паролей". Выбираем нужную базу данных. Выбираем "Язык по умолчанию:" - "Russian". (Рис. 23)

Рисунок 23 – Общие параметры «Имя входа» - admin

Переходим во вкладку "Роли сервера:". Выделяем всё галочками. (Рис.24)

Рисунок 24 – Вкладка «Роли сервера» - admin

Переходим во вкладку "Сопоставление пользователей". Выбираем БД `auto` и назначаем роли сервера пользователю admin. (Рис. 25)


Рисунок 25 – Вкладка «Сопоставление пользователей» - admin

Сохраняем изменения, нажав на кнопку ОК. После этого аналогичным способом создадим пользователя «user».

После проделанного результата нашей работы мы можем увидеть:

Рисунок 26 – Отображение user и admin в обозревателе объекто

ЗАКЛЮЧЕНИЕ

Таким образом, в ходе написания данной курсовой работы были рассмотрены как теоретические вопросы по теме курсовой работы, так и практика применения. Так, в ходе написания первой главы курсовой работы было определено следующее:

1) Дано определение - база данных – это информационная система, которая представляет собой программный комплекс, главными функциями этой системы являются поддержка надежного хранения информации в памяти компьютера, выполнение специфических, для данного приложения, преобразований информации и/или вычислений, предоставление пользователям легко осваиваемого интерфейса

2) Определены основные виды БД: фактографическая – содержит краткую информацию об объектах некоторой системы в строго фиксированном формате; документальная – содержит документы самого разного типа: текстовые, графические, звуковые, мультимедийные; распределённая – база данных, разные части которой хранятся на различных компьютерах, объединённых в сеть; централизованная – база данных, хранящихся на одном компьютере; реляционная – база данных с табличной организацией данных.

3) Одно из основных свойств БД – независимость данных от программы, использующих эти данные.Базой данных является представленная в объективной форме совокупность самостоятельных материалов (статей, расчетов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины.

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

Таким образом, база данных есть не просто совокупность хранимых данных (записей, документов, фактов и т.п.), но такая совокупность, которая обладает, по меньшей мере, тремя важными свойствами (признаками):