Разработка базы данных каталога языков программирования
Языки программирования – формальное языковое пространство, которое специально создано для общения человека с компьютером. Разработка инфологической модели базы данных. Алгоритм создания запроса с использованием внутреннего соединения по одному полю.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 22.10.2018 |
Размер файла | 751,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
1. Постановка задачи
Задача курсовой работы состоит в том, чтобы определить классификацию современных языков программирования и реализовать ее в виде базы данных, которая должна обеспечивать операции (добавление, удаление и изменение) над данными о языках программирования. Схема классификации языков программирования представлена на рисунке 1.
Рис. 1. Схема классификации языков программирования
Языки программирования - это формальные языки специально созданные для общения человека с компьютером.
Языки программирования можно разделить на два класса:
? процедурные языки -- это языки операторного типа. Описание алгоритма на этом языке имеет вид последовательности операторов. Характерным для процедурного языка является наличие оператора присваивания (Basic, Pascal, С).
? непроцедурные языки -- это языки, при использовании которых в программе в явном виде указывается, какими свойствами должен обладать результат, но не говорится, каким способом он должен быть получен.
В свою очередь каждый класс имеет свои подклассы, при помощи которых однозначно может быть получена информация о том или ином языке программирования.
Процедурные языки программирования можно разделить еще на два типа:
? низкоуровневые: позволяют задавать машинные команды в более понятном для человека виде; ориентированы на конкретный тип процессора и учитывают его особенности, поэтому для переноса программы на ассемблере на другую аппаратную платформу ее нужно почти полностью переписать.
? высокоуровневые: особенности конкретных компьютерных архитектур в них не учитываются, поэтому созданные программы легко переносятся с компьютера на компьютер; в основном достаточно просто перекомпилировать программу под определенную компьютерную архитектурную и операционную систему; разрабатывать программы на таких языках гораздо проще и ошибок допускается меньше; значительно сокращается время разработки программы, что особенно важно при работе над большими программными проектами.
Непроцедурные языки программирования делятся по следующим критериям:
? объектно-ориентированные: переменные и функции группируются в так называемые классы, благодаря этому достигается более высокий уровень структуризации программы; базируется на процедурной модели программирования, но с содержательной стороны ООП базируется не на функции, а на объекте.
? логические: автоматическое доказательство теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода.
? функциональные: процесс вычисления трактуется как вычисление значений функций в математическом понимании.
Вариант задания предусматривает разработку ER-диаграммы, хранящей информацию о языке программирования, классе и типу. Реализация настоящей БД должна быть произведена средствами СУБД MySQL.
Необходимо также разработать не менее 10 запросов следующих типов:
1. С параметрами для выборки данных.
2. С использованием внутреннего соединения по одному полю.
3. С использованием косвенно связанных таблиц.
4. С использованием таблиц, связанных более чем по одному полю, если такие есть в базе данных, в противном случае заменить любым другим запросом.
5. С использованием внешнего соединения таблиц.
6. С использованием рекурсивного соединения.
7. С использованием вложенного запроса.
8. С группировкой записей и использованием функций агрегирования.
9. Перекрестный запрос.
10. С вычисляемым полем.
2. Инфологическая модель
Из описания предметной области следуют:
1. Сущности:
? Язык программирования;
? Класс;
? Тип;
2. Атрибуты:
? id_ЯП;
? Название языка программирования;
? Разработчик;
? Последняя версия;
? Год последней версии;
? id_класса;
являются атрибутами сущности «Язык программирования».
? id_класса;
? Название класса;
? id_типа;
являются атрибутами сущности «Класс».
? id_типа;
? Тип;
являются атрибутами сущности «Тип».
3. Ключи сущностей:
? id_ЯП является первичным ключом сущности «Язык программирования»;
? id_класса является первичным ключом сущности «Класс»;
? id_типа является первичным ключом сущности «Тип»;
4. Связи сущностей:
Между сущностями «Язык программирования» и «Класс»:
Слева направо: «Каждый язык программирования должен подразделяться только на один класс»;
Справа налево: «Каждый класс может соответствовать нескольким языкам программирования»;
Тип связи:один -ко-многим.
Между сущностями «Класс» и «Тип»:
Слева направо: «Каждый класс должен делится только на один тип»;
Справа налево: «Каждый тип может подразделять несколько классов»;
Тип связи: один-ко-многим.
Концептуальная модель заданной предметной области представлена на рис. 1.
Рис. 2. ER-диаграмма предметной области
инфологический компьютер запрос
2. Разработка таблиц и схемы базы данных
Для создания данной системы управления данными понадобятся следующие таблицы:
Yazik
Class
Tip
В СУБД MySQL создание таблицы происходит с помощью команды CREATE TABLE.
Создание таблицы ProgramLanguge (Языки программирования):
CREATE TABLE ProgramLanguge ( Id_YP int NOT NULL ,
Name varchar(20),
Developer varchar(20),
LatestVersion varchar(20),
YearLatestVersion int(4),
Id_class int NOT NULL);
Добавление первичного ключа таблицы ProgramLanguge (Языки программирования):
ALTER TABLE ProgramLanguge ADD PRIMARY KEY (Id_YP)
Структура таблицы ProgramLanguge (Языки программирования):
Рис. 3
Создание таблицы Class (Классы ЯП):
CREATE TABLE ClassPrLan ( IdClass int NOT NULL ,
NameClass varchar(25),
IdType int NOT NULL);
Добавление первичного ключа таблицы Class (Классы ЯП):
ALTER TABLE Class ADD PRIMARY KEY (Id_class)
Структура таблицы Class (Классы ЯП):
Рис. 4
Создание таблицы Tip (Типы ЯП):
CREATE TABLE Tip(IdType int NOT NULL,
NameType varchar(20));
Добавление первичного ключа таблицы Tip (Типы ЯП):
ALTER TABLE Tip ADD PRIMARY KEY (IdType)
Структура таблицы Tip (Типы ЯП):
Рис. 5
Общая структура базы данных
Рис. 6
С помощью команд INSERT INTO и VALUES происходит вставка строк внутрь той или иной таблицы.
Вставка строки для таблицы ProgramLanguge (Языки программирования) выполняется следующим образом:
INSERT INTO `ProgramLanguge` (`Id_YP` , `Name` , `Developer` , `LatestVersion` , `YearLatestVersion` , `Id_class`)
VALUES ( ' 11 ', ' Java ', 'Джеймс Гослинг ', ' Java SE 9 ', ' 2017 ', ' 25 ');
Для вставки последующих значений в каждую таблицу команды INSERT INTO и VALUES выполняются аналогично.
Данные в таблице ProgramLanguge (Языки программирования):
Рис. 7
Данные в таблице Class (Классы ЯП):
Рис. 8
Данные в таблице Tip (Типы ЯП):
Рис. 9
3. Запросы системы
Для данной системы было создано 10 запросов:
Запрос 1. Вывести список языков программирования, последние версии которых выходили после 2010 года;
Создается по данным таблицы ProgramLanguge (Языки программирования) и является запросом с параметром на выборку данных
SELECT * FROM ProgramLanguge WHERE YearLatestVersion > 2010
Результат выполнения запроса 1:
Рис. 10
Запрос 2. Вывести классы, на которые делятся непроцедурные языки программирования;
Создается по данным таблиц Class (Классы ЯП) и Tip (Типы ЯП) и является запросом с использованием внутреннего соединения по одному полю
SELECT * FROM Class
INNER JOIN Tip ON Class.IdType=Tip.IdType
WHERE Tip.IdType = 32
Результат выполнения запроса 2:
Рис. 11
Запрос 3. Вывести тип и класс каждого языка программирования;
Создается на основе таблиц ProgramLanguge (Языки программирования), Class (Классы ЯП) и Tip (Типы ЯП) и является запросом с использованием косвенно связанных таблиц
SELECT ProgramLanguge.Name, ProgramLanguge.Id_class, Tip.IdType, Tip.NameType, Class.NameClass FROM ProgramLanguge
INNER JOIN Class ON ProgramLanguge.Id_class=Class.Id_class
INNER JOIN Tip ON Class.IdType=Tip.IdType
Результат выполнения запроса 3:
Рис. 12
Запрос 4. Вывести ЯП и их классы, последняя версия которых вышла в 20в.;
Создается на основе таблиц ProgramLanguage (Языки программирования) и Class (Классы ЯП) и является запросом на перекрестное объединение таблиц с параметром.
SELECT ProgramLanguge.Name, ProgramLanguge.YearLatestVersion, Class.NameClass
FROM ProgramLanguge
CROSS JOIN Class ON ProgramLanguge.Id_class=Class.Id_class
WHERE ProgramLanguge.YearLatestVersion LIKE '19%'
ORDER BY ProgramLanguge.Name
Результат выполнения запроса 4:
Рис. 13
Запрос 5. Вывести классы и языки программирования, которые делят эти классы;
Создается на основе таблиц Class (Классы ЯП) и ProgramLanguge (Языки Программирования) и является запросом с использованием правого внешнего соединения таблиц
SELECT Class.NameClass, ProgramLanguge.Name
FROM ProgramLanguge
RIGHT OUTER JOIN Class
ON ProgramLanguge.Id_Class = Class.Id_Class
ORDER BY Class.NameClass
Результат выполнения запроса 5:
Рис. 14
Запрос 6. Вывести список языков программирования, названия которых начинаются на букву `S';
Создается по данным таблицы ProgramLanguage (Языки программирования) и является запросом с использование рекурсивного соединения
SELECT a.Id_YP, a.Name FROM ProgramLanguge a, ProgramLanguge a1
WHERE a.Id_YP=a1.Id_YP AND a1.Name LIKE 'S%'
Результат выполнения запроса 6:
Рис. 15
Запрос 7. Вывести высокоуровневые языки программирования;
SELECT ProgramLanguge.Name, CLass.NameClass FROM ProgramLanguge
INNER JOIN Class ON ProgramLanguge.Id_class=Class.Id_class
WHERE Class.NameClass IN (SELECT NameClass FROM Class WHERE NameClass = 'Высокоуровневые')
Результат выполнения запроса 7:
Рис. 16
Запрос 8. Вывести максимальный и минимальный года выхода последних версии ЯП;
Создается на основе таблицы ProgramLanguge (Языки программирования) и является запросом с использованием функций агрегирования MIN и MAX.
SELECT MAX(YearLatestVersion) AS MaxYear, MIN(YearLatestVersion) AS MinYear FROM ProgramLanguge
Результат выполнения запроса 8:
Рис. 17
Запрос 9. Вывести класс каждого языка программирования;
Запрос создается на основе таблиц ProgramLanguage (Языки программирования) и Class (Классы ЯП) и является перекрестным запросом
SELECT ProgramLanguge.Name, Class.NameClass FROM ProgramLanguge CROSS JOIN Class
ON ProgramLanguge.Id_class=Class.Id_class
ORDER BY ProgramLanguge.Name
Результат выполнения запроса 9:
Рис. 18
Запрос 10. От каждого года выхода обновленной версии языка программирования отнимаем 10 лет;
Создается на основе таблицы ProgramLanguge (Языки программирования) и является запросом с использованием вычисляемого поля
SELECT *, YearLatestVersion-10 AS year FROM ProgramLanguge
Результат выполнения запроса 10:
Рис. 19
Заключение
В данной работе была исследована предметная область «Классификация языков программирования»;
Построена инфологическая модель;
Разработана даталогическая модель базы данных средствами MySQL, включающая 3 таблицы и соответствующие связи между ними;
Разработаны 10 запросов для отображения данных из таблиц.
Литература
1. Информатика: Учебно-методический комплекс. /Г.А. Столярова, Н.В. Клиначев, 2013, с. 163 - Режим доступа: http://inf.susu.ac.ru/Klinachev/lc_sga_22.htm
2. Лекции по дисциплине Базы данных: http://database2014.blogspot.ru/p/blog-page_29.html
3. Курсовая работа по дисциплине Базы данных. Методические указания: http://goo.gl/CtWUUk
4. 15 самых популярных языков программирования по версии: GitHubhttps://habrahabr.ru/post/310262/
Приложение
-- phpMyAdmin SQL Dump
-- version 4.7.3
-- https://www.phpmyadmin.net/
--
-- Хост: 127.0.0.1:3306
-- Время создания: Дек 19 2017 г., 17:01
-- Версия сервера: 5.6.37
-- Версия PHP: 5.5.38
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- База данных: `Kurs`
--
-- --------------------------------------------------------
--
-- Структура таблицы `Class`
--
CREATE TABLE `Class` (
`Id_class` int(11) NOT NULL,
`NameClass` varchar(25) DEFAULT NULL,
`IdType` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `Class`
--
INSERT INTO `Class` (`Id_class`, `NameClass`, `IdType`) VALUES
(21, 'Высокоуровневые', 31),
(22, 'Низкоуровневые', 31),
(23, 'Функциональные', 32),
(24, 'Логические', 32),
(25, 'Объектно-ориентированные', 32),
(37, 'Структурные', 31);
-- --------------------------------------------------------
--
-- Структура таблицы `ProgramLanguge`
--
CREATE TABLE `ProgramLanguge` (
`Id_YP` int(11) NOT NULL,
`Name` varchar(20) DEFAULT NULL,
`Developer` varchar(20) DEFAULT NULL,
`LatestVersion` varchar(20) DEFAULT NULL,
`YearLatestVersion` int(4) DEFAULT NULL,
`Id_class` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `ProgramLanguge`
--
INSERT INTO `ProgramLanguge` (`Id_YP`, `Name`, `Developer`, `LatestVersion`, `YearLatestVersion`, `Id_class`) VALUES
(11, ' Java ', 'Джеймс Гослинг ', ' Java SE 9 ', 2017, 25),
(12, ' C++ ', 'Страуструп, Бьерн ', ' C++14 ', 2013, 25),
(13, ' Visual Basic ', 'Microsoft ', ' 6.0 ', 1998, 25),
(14, 'Swift ', 'Apple ', ' 4.0 ', 2017, 21),
(15, ' C ', 'Д.Ритчи,К.Томпсон ', ' C11 ', 2011, 21),
(16, ' PHP ', 'Расмус Лердроф ', ' 7.2 ', 2017, 25),
(17, ' Macro Assembler ', 'Microsoft ', ' 12.0.21005.1 ', 2013, 22),
(18, 'Scala ', 'Мартин Одерски ', ' 2.12.4 ', 2017, 23),
(19, ' Prolog ', 'Алан Кулмероэ ', ' 5.7.3 ', 1980, 24),
(20, ' Mercury ', 'Университет Мельбурн', ' 14.01.1 ', 2014, 24);
-- --------------------------------------------------------
--
-- Структура таблицы `Tip`
--
CREATE TABLE `Tip` (
`IdType` int(11) NOT NULL,
`NameType` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Дамп данных таблицы `Tip`
--
INSERT INTO `Tip` (`IdType`, `NameType`) VALUES
(31, 'Процедурные'),
(32, 'Непроцедурные');
--
-- Индексы сохранённых таблиц
--
--
-- Индексы таблицы `Class`
--
ALTER TABLE `Class`
ADD PRIMARY KEY (`Id_class`),
ADD KEY `IdType` (`IdType`);
--
-- Индексы таблицы `ProgramLanguge`
--
ALTER TABLE `ProgramLanguge`
ADD PRIMARY KEY (`Id_YP`),
ADD KEY `Id_class` (`Id_class`);
--
-- Индексы таблицы `Tip`
--
ALTER TABLE `Tip`
ADD PRIMARY KEY (`IdType`);
--
-- Ограничения внешнего ключа сохраненных таблиц
--
--
-- Ограничения внешнего ключа таблицы `Class`
--
ALTER TABLE `Class`
ADD CONSTRAINT `class_ibfk_1` FOREIGN KEY (`IdType`) REFERENCES `Tip` (`IdType`);
--
-- Ограничения внешнего ключа таблицы `ProgramLanguge`
--
ALTER TABLE `ProgramLanguge`
ADD CONSTRAINT `programlanguge_ibfk_1` FOREIGN KEY (`Id_class`) REFERENCES `Class` (`Id_class`);
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Размещено на Allbest.ru
...Подобные документы
Обзор преимуществ и недостатков среды программирования Delphi, ее сравнение с аналогичными продуктами. Разработка инфологической, датологической, модели базы данных. Проектирование структуры программного обеспечения и понятного интерфейса базы данных.
курсовая работа [964,8 K], добавлен 27.09.2014Отличительные особенности языков программирования PHP и CSS. Возможности компактного многопоточного сервера баз данных MySQL. Системный анализ предметной области, проектирование ее инфологической модели. Создание базы данных и web-страниц сайта магазина.
курсовая работа [1,0 M], добавлен 15.01.2013Ознакомление с методами анализа популярности языков программирования. Рассмотрение логической модели базы данных дистанционного практикума. Разработка листинга скрипта создания таблицы-справочника. Анализ статистики по применению языков программирования.
диссертация [1,4 M], добавлен 10.07.2017Разработка приложения для работы с базой данных с использованием объектно-ориентированного и визуального программирования. Обзор языка элементов языка программирования Delphi. Проектирование базы данных автозаправки. Клиентская система приложения.
курсовая работа [2,3 M], добавлен 31.01.2016Разработка информационно-аналитической системы агентства недвижимости. Обоснование выбора архитектуры базы данных и СУБД. Моделирование потоков данных (DFD диаграмм). Проектирование инфологической модели данных с использованием модели "сущность-связь".
дипломная работа [5,4 M], добавлен 06.06.2013Особенности разработки инфологической модели и создание структуры реляционной базы данных. Основы проектирования базы данных. Разработка таблиц, форм, запросов для вывода информации о соответствующей модели. Работа с базами данных и их объектами.
курсовая работа [981,4 K], добавлен 05.11.2011Виды языков программирования, их функциональные особенности и отличительные признаки, сферы практического применения. Язык для работы с базами данных SQL. Синтез компьютерной модели спроектированной базы данных, оценка ее эффективности и значение.
контрольная работа [365,4 K], добавлен 24.02.2015Разработка базы данных с информацией о сотрудниках, товарах, со справочником типов товаров средствами системы управления базами данных MySQL с помощью SQL-запросов. Разработка инфологической модели предметной области. Структура таблиц, полей базы данных.
контрольная работа [648,7 K], добавлен 13.04.2012Моделирование базы данных "Обязательное медицинское страхование" с использованием методологии IDEF1X. Разработка базы данных в программной среде FoxPro 9.0, с использованием языка программирования SQL. Описания хранимых в базе данных таблиц и запросов.
курсовая работа [257,2 K], добавлен 15.03.2016Освоение сервисной системы управления базами данных Microsoft SQL. Разработка базы данных "Служба АТС" в среде Microsoft SQL Server Management Studio и создание запросов на языке SQL. Апробация инфологической модели "сущность - связь" базы данных.
курсовая работа [2,9 M], добавлен 29.06.2015Интерфейс и начало работы в Microsoft Access. Построение реляционной базы данных и разработка инфологической модели. Разработка формы с помощью мастера форм и запроса в режиме конструктора. Создание таблиц данных. Поиск и замена значений в полях.
методичка [3,9 M], добавлен 21.07.2009Классификация компьютерных сетей. Схема подключения к Интернету, каналы передачи и приема информации. Разработка сайта с использованием скриптового языка программирования PHP и базы данных MySQL (база данных о квартирах, предназначенных для продажи).
контрольная работа [3,6 M], добавлен 09.05.2012Характеристика основных этапов разработок и проектирования базы данных, определение целей ее создания и функциональных особенностей, предметной области и необходимой информации. Требования к инфологической модели. Методы физической организации данных.
курсовая работа [1,7 M], добавлен 22.02.2011Особенности создания учетных записей на файловом сервере. Разработка функциональной модели базы данных. Отчет по дугам модели. Сущность, атрибуты и связи информационной модели. Разработка базы данных в системе управления базами данных MS Access.
контрольная работа [2,3 M], добавлен 23.01.2014Описание предметной области разрабатываемой базы данных для теннисного клуба. Обоснование выбора CASE-средства Erwin 8 и MS Access для проектирования базы данных. Построение инфологической модели и логической структуры базы данных, разработка интерфейса.
курсовая работа [3,8 M], добавлен 02.02.2014Понятие реляционной модели данных, целостность ее сущности и ссылок. Основные этапы создания базы данных, связывание таблиц на схеме данных. Проектирование базы данных книжного каталога "Books" с помощью СУБД Microsoft Access и языка запросов SQL.
курсовая работа [838,9 K], добавлен 25.11.2010Разработка информационной и инфологической модели базы данных на тему "Командировка". Выбор модели данных и составление ее концептуальной схемы. Получение доступа к БД средствами Delphi, разработка пользовательского интерфейса. Реализация SQL-запросов.
реферат [1,2 M], добавлен 16.06.2009Разработка структуры базы данных для хранения дипломных проектов в среде объектно-ориентированного программирования Python. Создание внешнего вида окон ввода-вывода информации, технологии переходов. Листинг программы с пояснениями; направления улучшения.
курсовая работа [3,1 M], добавлен 27.02.2015Рассмотрение инфологической и даталогической модели базы данных кинотеатров города. Разработка базы данных в программе MS Access. Описание структуры приложения и интерфейса пользователя. Изучение SQL-запросов на вывод информации о кинотеатре и о фильме.
курсовая работа [1,1 M], добавлен 04.09.2014Технологии и языки программирования, используемые при разработке программы. Проектирование и реализация социальной сети. Описание и обоснование выбора организации входных и выходных данных. Алгоритм функционирования программы, таблицы базы данных.
курсовая работа [3,5 M], добавлен 10.06.2014