База данных софтверной фирмы
Описание концептуальной и реляционной баз данных. Характеристика sql-скриптов для создания и заполнение таблиц (devrlopers, e-mail, tel, progect, skills, clients). Правила составления запросов к базе данных. Запросы С Подзапросами и запросы с Having.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | практическая работа |
Язык | русский |
Дата добавления | 23.03.2019 |
Размер файла | 4,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
РОССИЙСКИЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ ИМ Г.В. ПЛЕХАНОВА
ТВОРЧЕСКАЯ РАБОТА
НА ТЕМУ: База данных софтверной фирмы
Выполнил:
Студентка 2 курса ИЦЭиИТ
группы 291Д-05ПИ/17
Кещян Софья Георгиевна
ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ
Предметной областью данного индивидуального задания является отдел разработки программного обеспечения. Требуется хранить сведения о разработчиках, клиентах и проектах, которыми занимается или когда-либо занималась компания. реляционный таблица запрос база
1. База данных должна содержать таблицы со следующими сведениями о клиентах, оставляющих заказ:
- Фамилия, Имя клиента
- Личная почта для связи
- Контактный телефон
2. База данных должна содержать таблицы содержащие следующие сведения о проектах:
-Короткое название проекта
- Полное официальное название проекта
- Дата начала работы над проектом
- Дата окончания работы над проектом
- Направленность проекта
- Данные заказчика проекта
- Данные о сотрудниках, прикрепленных к проекту
3. База данных должна содержать в себе таблицы следующие сведения о штатных сотрудниках компании:
- Фамилия, Имя сотрудника
- Личная почта сотрудника
- Телефон для связи с сотрудником
- Перечень навыков, которыми обладает сотрудник
- Оклад сотрудника
КОНЦЕПТУАЛЬНАЯ БАЗА ДАННЫХ
РЕЛЯЦИОННАЯ БАЗА ДАННЫХ
SQL-СКРИПТЫ ДЛЯ СОЗДАНИЯ ТАБЛИЦ
Сначала надо создать базу данных. Для этого нужно кликнуть правой кнопкой мыши по папке «базы данных» и выбрать создать новую базу данных, назовем ее «DB_SoftFirm». Дальше представлен SQL-скрипт для создания таблиц в базе данных. useDB_SoftFirm;/* для того, чтобы таблицы создавались именно в БД SoftFirm*/ Создание таблицы CLIENTS, где будут храниться данные о заказчиках.
CREATETABLE [CLIENTS](
[ID_client] [int] NOTNULL,
[FIO_client] [nvarchar](150)NOTNULL,
CONSTRAINT [PK_CLIENTS] PRIMARYKEY (ID_client)
);
Создание таблицы DEVRLOPERS, где будут храниться данные о разработчиках.
CREATETABLE [DEVELOPERS](
[ID_developer] [int] NOTNULL,
[FIO_developer] [nvarchar](150)NOTNULL,
CONSTRAINT [PK_DEVELOPERS] PRIMARYKEY (ID_developer)
);
Создание таблицы EMAIL, где будут храниться mail адреса заказчиков и разработчиков.
CREATETABLE [EMAIL](
[ID_mail] [int] NOTNULL,
[mail] [nvarchar](150)NOTNULL,
[ID_client] [int],
[ID_developer] [int],
CONSTRAINT [PK_EMAIL] PRIMARYKEY (ID_mail),
CONSTRAINT [FK_EMAIL_CLIENTS] FOREIGNKEY([ID_client])/*внешнийключ, связьстаблицейCLIENTS*/
REFERENCES [CLIENTS]([ID_client])
ONUPDATECASCADE
ONDELETECASCADE,
CONSTRAINT [FK_EMAIL_DEVELOPERS] FOREIGNKEY([ID_developer])/*внешнийключ, связьстаблицейDEVELOPERS*/
REFERENCES [DEVELOPERS]([ID_developer])
ONUPDATECASCADE
ONDELETECASCADE
);
Создание таблицы TEL, где будут храниться номера телефонов заказчиков и разработчиков.
CREATETABLE [TEL](
[ID_tel] [int] NOTNULL,
[numder_tel] [nvarchar](20)NOTNULL,
[ID_client] [int],
[ID_developer] [int],
CONSTRAINT [PK_TEL] PRIMARYKEY (ID_tel),
CONSTRAINT [FK_TEL_CLIENTS] FOREIGNKEY([ID_client])/*внешнийключ, связьстаблицейCLIENTS*/
REFERENCES [CLIENTS]([ID_client])
ONUPDATECASCADE
ONDELETECASCADE,
CONSTRAINT [FK_TEL_DEVELOPERS] FOREIGNKEY([ID_developer])/*внешнийключ, связьстаблицейDEVELOPERS*/
REFERENCES [DEVELOPERS]([ID_developer])
ONUPDATECASCADE
ONDELETECASCADE
);
Создание таблицы PROGECT, где будет храниться общая информация о проекте.
CREATETABLE [PROGECT](
[ID_progect] [int] NOTNULL,
[shot_name_prog] [nvarchar](150)NOTNULL,
[ID_client] [int] NOTNULL,
[ID_developer] [int] NOTNULL,
CONSTRAINT [PK_PROGECT] PRIMARYKEY (ID_progect),
CONSTRAINT [FK_PROGECT_CLIENTS] FOREIGNKEY([ID_client])/*внешнийключ, связьстаблицейCLIENTS*/
REFERENCES [CLIENTS]([ID_client])
ONUPDATECASCADE
ONDELETECASCADE,
CONSTRAINT [FK_PROGECT_DEVELOPERS] FOREIGNKEY([ID_developer])/*внешнийключ, связьстаблицейDEVELOPERS*/
REFERENCES [DEVELOPERS]([ID_developer])
ONUPDATECASCADE
ONDELETECASCADE
);
Создание таблицы DEV_ROLE, где будет храниться информация о роли разработчика в проекте.
CREATETABLE [DEV_ROLE](
[ID_dev_role] [int] NOTNULL,
[role] [nvarchar](50)NOTNULL,
[ID_progect] [int] NOTNULL,
[ID_developer] [int] NOTNULL,
CONSTRAINT [PK_DEV_ROLE] PRIMARYKEY (ID_dev_role),
CONSTRAINT [FK_DEV_ROLE_PROGECT] FOREIGNKEY([ID_progect])/*внешнийключ, связьстаблицейPROGECT*/
REFERENCES [PROGECT]([ID_progect])
ONUPDATECASCADE
ONDELETECASCADE,
CONSTRAINT [FK_DEV_ROLE_DEVELOPERS] FOREIGNKEY([ID_developer])/*внешнийключ, связьстаблицейDEVELOPERS*/
REFERENCES [DEVELOPERS]([ID_developer])
ONUPDATENOACTION
ONDELETENOACTION
);
Создание таблицы SKILLS, в которой будет храниться информация о умениях разработчиков.
CREATETABLE [SKILLS](
[ID_skill] [int] NOTNULL,
[name_skill] [nvarchar](150)NOTNULL,
CONSTRAINT [PK_SKILLS] PRIMARYKEY (ID_skill));
Создание таблицы DEVELOPERS_PREFERENCES, где будет храниться информация о работе разработчика.
CREATETABLE [DEVELOPER_PREFERENCES](
[ID_dev_pref] [int] NOTNULL,
[ID_developer] [int] NOTNULL,
[ID_skill] [int] NOTNULL,
[price_work] [money] NOTNULL,
CONSTRAINT [PK_DEVELOPER_PREFERENCES] PRIMARYKEY (ID_dev_pref),
CONSTRAINT [FK_DEVELOPER_PREFERENCES_SKILLS] FOREIGNKEY([ID_skill])/*внешнийключ, связьстаблицейSKILLS*/
REFERENCES [SKILLS]([ID_skill])
ONUPDATECASCADE
ONDELETECASCADE,
CONSTRAINT [FK_DEVELOPER_PREFERENCES_DEVELOPERS] FOREIGNKEY([ID_developer])/*внешнийключ, связьстаблицейDEVELOPERS*/
REFERENCES [DEVELOPERS]([ID_developer])
ONUPDATECASCADE
ONDELETECASCADE
);
Создание таблицы TYPE_PROGECT, где будет храниться информация о типе проекта.
CREATETABLE [TYPE_PROGECT](
[ID_type_prog] [int] NOTNULL,
[type] [nvarchar](50)NOTNULL,
CONSTRAINT [PK_TYPE_PROGECT] PRIMARYKEY (ID_type_prog)
);
Создание таблицы INF_PROGECT, где будет храниться полная информация о проекте.
CREATETABLE [INF_PROGECT](
[ID_inf_prog] [int] NOTNULL,
[ID_progect] [int] NOTNULL,
[start_date] [date] NOTNULL,
[finish_date] [date] NOTNULL,
[full_name_prog] [nvarchar](150)NOTNULL,
[ID_prog_type] [int] NOTNULL,
CONSTRAINT [PK_INF_PROGECT] PRIMARYKEY (ID_inf_prog),
CONSTRAINT [FK_INF_PROGECT_PROGECT] FOREIGNKEY([ID_progect])/*внешнийключ, связьстаблицейPROGECT*/
REFERENCES [PROGECT]([ID_progect])
ONUPDATECASCADE
ONDELETECASCADE,
CONSTRAINT [FK_INF_PROGECT_TYPE_PROGECT] FOREIGNKEY([ID_prog_type])/*внешнийключ, связьстаблицейTYPE_PROGECT*/
REFERENCES [TYPE_PROGECT]([ID_type_prog])
ONUPDATECASCADE
ONDELETECASCADE
);
SQL-СКРИПТЫ ДЛЯ ЗАПОЛНЕНИЕ ТАБЛИЦЫ
Заполнение таблицы CLIENTS
INSERT [CLIENTS]([ID_client], [FIO_client])VALUES (1,N'ИвановИванИванович')
INSERT [CLIENTS]([ID_client], [FIO_client])VALUES (2,N'СидоровМихаилЮрьевич')
INSERT [CLIENTS]([ID_client], [FIO_client])VALUES (3,N'КозловКириллЛеонидович')
Результат
Заполнение таблицы DEVELOPERS
INSERT [DEVELOPERS]([ID_developer], [FIO_developer])VALUES (1,N'ЛосевЛеонидДанилович')
INSERT [DEVELOPERS]([ID_developer], [FIO_developer])VALUES (2,N'КаповДенисИмрадович')
Результат
Заполнение таблицы EMAIL
INSERT [EMAIL]([ID_mail], [ID_client], [mail])VALUES (1, 1,N'ivanovII@mail.ru')
INSERT [EMAIL]([ID_mail], [ID_client], [mail])VALUES (2, 2,N'sidorovMU@mail.ru')
INSERT [EMAIL]([ID_mail], [ID_client], [mail])VALUES (3, 3,N'kozlovKL@mail.ru')
INSERT [EMAIL]([ID_mail], [ID_developer], [mail])VALUES (4, 1,N'losevLD@mail.ru')
INSERT [EMAIL]([ID_mail], [ID_developer], [mail])VALUES (5, 2,N'kapovDI@mail.ru')
Результат
Заполнение таблицы TEL
INSERT [TEL]([ID_tel], [ID_client], [numder_tel])VALUES (1, 1,N'89034567389')
INSERT [TEL]([ID_tel], [ID_client], [numder_tel])VALUES (2, 2,N'89178549023')
INSERT [TEL]([ID_tel], [ID_client], [numder_tel])VALUES (3, 3,N'89854732345')
INSERT [TEL]([ID_tel], [ID_developer], [numder_tel])VALUES (4, 1,N'89264538910')
INSERT [TEL]([ID_tel], [ID_developer], [numder_tel])VALUES (5, 2,N'89873920876')
Результат
Заполнение таблицы DEVELOPER_PREFERENCES
INSERT [DEVELOPER_PREFERENCES]([ID_dev_pref], [ID_developer], [ID_skill], [price_work])VALUES (1, 1, 1,N'5000')
INSERT [DEVELOPER_PREFERENCES]([ID_dev_pref], [ID_developer], [ID_skill], [price_work])VALUES (2, 2, 2,N'6000')
Результат
Заполнение таблицы SKILLS
INSERT [SKILLS]([ID_skill], [name_skill])VALUES (1,N'Знание sql')
INSERT [SKILLS]([ID_skill], [name_skill])VALUES (2,N'Знание C++')
INSERT [SKILLS]([ID_skill], [name_skill])VALUES (3,N'Знание C#')
Результат
Заполнение таблицы PROGECT
INSERT [PROGECT]([ID_progect], [shot_name_prog], [ID_client], [ID_developer])VALUES (1,N'БДО', 1, 1)
INSERT [PROGECT]([ID_progect], [shot_name_prog], [ID_client], [ID_developer])VALUES (2,N'Д2', 2, 2)
INSERT [PROGECT]([ID_progect], [shot_name_prog], [ID_client], [ID_developer])VALUES (3,N'ПО', 3, 2)
Результат
Заполнение таблицы TYPE_PROGECT
INSERT [TYPE_PROGECT]([ID_type_prog], [type])VALUES (1,N'игра')
INSERT [TYPE_PROGECT]([ID_type_prog], [type])VALUES (2,N'программа')
INSERT [TYPE_PROGECT]([ID_type_prog], [type])VALUES (3,N'БД')
INSERT [TYPE_PROGECT]([ID_type_prog], [type])VALUES (4,N'инф. система')
Результат
Заполнение таблицы INF_PROGECT
INSERT [INF_PROGECT]([ID_inf_prog], [ID_progect], [start_date], [finish_date], [full_name_prog], [ID_prog_type])VALUES (1, 1,N'2018.01.02',N'2018.03.15',N'Базаданныхорифлэйм', 1)
INSERT [INF_PROGECT]([ID_inf_prog], [ID_progect], [start_date], [finish_date], [full_name_prog], [ID_prog_type])VALUES (2, 2,N'2018.11.03',N'2019.03.15',N'Дока 2', 2)
INSERT [INF_PROGECT]([ID_inf_prog], [ID_progect], [start_date], [finish_date], [full_name_prog], [ID_prog_type])VALUES (3, 3,N'2018.01.12',N'2018.03.30',N'ПрограммноеОбеспечение', 3)
Результат
Заполнение таблицы DEV_ROLE
INSERT [DEV_ROLE]([ID_dev_role], [role], [ID_developer], [ID_progect])VALUES (1,N'ГЛАВНЫЙПРОГРАММИСТ', 2, 2)
INSERT [DEV_ROLE]([ID_dev_role], [role], [ID_developer], [ID_progect])VALUES (2,N'РАЗРАБОТЧИКПО', 2, 3)
INSERT [DEV_ROLE]([ID_dev_role], [role], [ID_developer], [ID_progect])VALUES (3,N'РАЗРАБОТЧИК', 1, 1)
Результат
ЗАПРОСЫ К БАЗЕ ДАННЫХ
ЗАПРОСЫ С INNERJOIN
1) Выбрать проект, его заказчика, разработчика и полное название:
SELECT PROGECT.ID_progect,
PROGECT.shot_name_prog 'КОРОТКОЕИМЯПРОЕКТА',
INF_PROGECT.full_name_prog 'ПОЛНОЕИМЯПРОЕКТА',
CLIENTS.FIO_client 'КЛИЕНТ',
DEVELOPERS.FIO_developer 'РАЗРАБОТЧИК'
FROM PROGECT INNERJOIN CLIENTS ON PROGECT.ID_client = CLIENTS.ID_client
INNERJOIN DEVELOPERS ON PROGECT.ID_developer = DEVELOPERS.ID_developer
INNERJOIN INF_PROGECT ON PROGECT.ID_progect = INF_PROGECT.ID_inf_prog;
Результат
2) Выбрать разработчика и его скилл
SELECT DEVELOPERS.ID_developer,
DEVELOPERS.FIO_developer 'РАЗРАБОТЧИК',
DEVELOPER_PREFERENCES.ID_skill,
SKILLS.name_skill 'СКИЛЛ'
FROM DEVELOPERS INNERJOIN DEVELOPER_PREFERENCES ON DEVELOPERS.ID_developer = DEVELOPER_PREFERENCES.ID_dev_pref
INNERJOIN SKILLS ON DEVELOPERS.ID_developer = SKILLS.ID_skill;
Результат
3) Выбрать проект, дату его начала и тип проекта
SELECT PROGECT.ID_progect,
PROGECT.shot_name_prog 'КОРОТКОЕИМЯПРОЕКТА',
INF_PROGECT.full_name_prog'ПОЛНОЕИМЯПРОЕКТА',
INF_PROGECT.start_date'ДАТАНАЧАЛА',
TYPE_PROGECT.type'ТИППРОЕТА'
FROM PROGECT INNERJOIN INF_PROGECT ON PROGECT.ID_progect = INF_PROGECT.ID_progect
INNERJOIN TYPE_PROGECT ON PROGECT.ID_progect = TYPE_PROGECT.ID_type_prog;
Результат
ЗАПРОСЫ С HAVING
1) Выдать ФИО разработчика, стоимость работы которого больше 1500 рублей.
SELECT DEVELOPERS.FIO_developer,SUM(DEVELOPER_PREFERENCES.price_work)AS mon
FROM DEVELOPERS INNERJOIN DEVELOPER_PREFERENCES ON DEVELOPERS.ID_developer = DEVELOPER_PREFERENCES.ID_dev_pref
GROUPBY FIO_developer
HAVINgSUM(DEVELOPER_PREFERENCES.price_work)> 1500;
Результат
2) Выдать ФИО разработчика, стоимость работы которого равно 1500 рублей.
SELECT DEVELOPERS.FIO_developer,SUM(DEVELOPER_PREFERENCES.price_work)AS mon
FROM DEVELOPERS INNERJOIN DEVELOPER_PREFERENCES ON DEVELOPERS.ID_developer = DEVELOPER_PREFERENCES.ID_dev_pref
GROUPBY FIO_developer
HAVINgSUM(DEVELOPER_PREFERENCES.price_work)=5000;
Результат
3) Выбрать ФИО разработчиков, чья работа стоит от 1000 до 6000 рублей (не включительно)
SELECT DEVELOPERS.FIO_developer,SUM(DEVELOPER_PREFERENCES.price_work)AS mon
FROM DEVELOPERS INNERJOIN DEVELOPER_PREFERENCES ON DEVELOPERS.ID_developer = DEVELOPER_PREFERENCES.ID_dev_pref
GROUPBY FIO_developer
HAVINgSUM(DEVELOPER_PREFERENCES.price_work)> 1000 ANDSUM(DEVELOPER_PREFERENCES.price_work)> 5000;
Результат
ЗАПРОСЫ С ПОДЗАПРОСАМИ
1) Выдать разработчикови их ID.
SELECT DEVELOPERS.ID_developer, DEVELOPERS.FIO_developer
FROM DEVELOPERS
WHERE FIO_developer IN(SELECT FIO_developer
FROM DEVELOPERS);
Результат
2) Выбрать разработчиков, их ID и цену работы.
SELECT DEVELOPERS.ID_developer, DEVELOPERS.FIO_developer, DEVELOPER_PREFERENCES.price_work
FROM DEVELOPERS INNERJOIN DEVELOPER_PREFERENCES ON DEVELOPERS.ID_developer = DEVELOPER_PREFERENCES.ID_dev_pref
WHERE price_work IN(SELECT DEVELOPER_PREFERENCES.price_work
FROM DEVELOPER_PREFERENCES );
Результат
3) Выдать ФИО разработчиков, их ID и полное название проекта, над которым они работают.
SELECT DEVELOPERS.ID_developer, DEVELOPERS.FIO_developer, DEVELOPER_PREFERENCES.price_work
FROM DEVELOPERS INNERJOIN DEVELOPER_PREFERENCES ON DEVELOPERS.ID_developer = DEVELOPER_PREFERENCES.ID_dev_pref
WHERE price_work IN(SELECT DEVELOPER_PREFERENCES.price_work
FROM DEVELOPER_PREFERENCES );Результат
Результат
Размещено на Allbest.ru
Подобные документы
Понятия реляционных баз данных. Структура и создание таблиц. Заполнение базы данных. Запросы на выборку. Запросы с вычисляемыми полями. Создание форм, кнопочной формы, макросов и отчетов. Итоговые и перекрестные запросы. Перечень сущностей и атрибутов.
курсовая работа [1,3 M], добавлен 18.10.2015Общие сведения о системах управления базами данных MS Access. Использование языка QBE для создания запросов на выборку данных. Параметрические и перекрестные запросы. Запросы с автоподстановкой, на выборку дубликатов и записей, не имеющих соответствия.
курсовая работа [32,8 K], добавлен 03.06.2015Создание таблиц базы данных с помощью MS Access "Страны Азии". Форма базы данных и запросы к выборкам данных. Модификация структуры таблиц, создания связей между главными таблицами, редактирование данных и проектирование форм для реальной базы данных.
контрольная работа [723,9 K], добавлен 25.11.2012Построение инфологической концептуальной модели предметной области. Структура базы данных Microsoft Office Access. Формы, запросы и отчеты. Создание форм, запросов и отчетов в базах данных. Схема данных физической и логической сущности в Erwin 4.0.
курсовая работа [5,1 M], добавлен 13.12.2011Особенности проектирования программы на языке С++ для обработки данных из таблиц базы данных. Основные функции программы, создание концептуальной модели базы данных и диаграммы классов, разработка интерфейса пользователя и запросов к базе данных.
курсовая работа [2,1 M], добавлен 08.06.2012Логическое моделирование данных. Структура реляционных данных. Ограничения, которые должны выполняться в любой реляционной базе данных. Запрос на выборку с параметром, перекрестные запросы. Создание запроса в режиме SQL. Создание формы при помощи мастера.
курсовая работа [1,2 M], добавлен 09.09.2012Хранение и обработка данных. Компоненты системы баз данных. Физическая структура данных. Создание таблиц в MS Access. Загрузка данных, запросы к базе данных. Разработка информационной системы с применением системы управления базами данных MS Access.
курсовая работа [694,0 K], добавлен 17.12.2016Структура простейшей базы данных и свойства полей. Характеристика типов данных. Описание процесса создания базы данных, таблиц и связей между ними, простых и составных форм, запросов в Microsoft Access. Пример составления подчинённых отчетов и макросов.
курсовая работа [2,9 M], добавлен 14.11.2016Построение концептуальной модели, процесс моделирования смыслового наполнения базы данных. Основные компоненты концептуальной модели. Построение реляционной модели. Целостность данных в реляционной базе. Нормализация. Проектирование базы данных в ACCESS.
курсовая работа [1,8 M], добавлен 29.10.2008Исследование особенностей иерархической, сетевой и реляционной баз данных. Изучение заполнения таблиц текстовой информацией, разработка меню приложения. Характеристика создания справки, отчётов, запросов и форм. Определение связей и целостности данных.
курсовая работа [2,8 M], добавлен 11.06.2012