Разработка базы данных каталога языков программирования

Языки программирования – формальное языковое пространство, которое специально создано для общения человека с компьютером. Разработка инфологической модели базы данных. Алгоритм создания запроса с использованием внутреннего соединения по одному полю.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.