Научная статья Original article УДК 004.652
РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХ, ЯЗЫК SQL
RELATIONAL DATABASES, SQL LANGUAGE
tfjl
Жук Максим Михайлович, Старший инженер-разработчик «Рексофт» Рексофт, Швеция
Zhuk Maxim Mikhailovich, mail@zhukmax.com
Аннотация. Во всем мире каждое программное обеспечение (ПО) связано с базой данных. Для того, чтобы сделать ПО, которое создает и хранит какую либо-информацию, необходимо использовать структуру баз данных. Они применяются везде: в интернет-магазинах, на форумах, корпоративных сайтах, в социальных сетях, на различных сайтах и форумах. В целом, где надо хранить информацию, там есть базы данных.
Annotation. All over the world, every software is linked to a database. In order to make software that creates and stores any kind of information, it is necessary to use a database structure. They are used everywhere: in online stores, on forums, corporate websites, on social networks, on various websites and forums. In general, where it is necessary to store information, there are databases.
Ключевые слова: реляционные базы данных, язык SQL, БД. Keywords: relational databases, SQL language, DB.
5190
Иными словами, база данных (БД) - это упорядоченная и хранимая совокупность информации для последующего использования. Система управления базами данных (СУБД)-это такое программное обеспечение, которое представляет инструменты для работы с сохраненной информацией.
С помощью нее можно: создавать новые данные, читать и воспроизводить информацию, обновлять ее с учетом новых значений, а также удалять те данные, которые больше не нужны и не актуальны. Эти важные операции сокращенно обозначаются как СЯиО.
Существуют различные виды баз данных (отличаются характером хранения и извлечения данных) в том числе и реляционные. О них и пойдет речь.
Реляционную базу данных создал и описал британский ученый Эдгар Кодд, написал работу по реляционным базам данных в 1970 году. Целью было получить высокую степень обособленности приложения от данных, а также прийти к согласованности данных и уйти от их избыточности и хаотичности.
Реляционная база — данных-это совокупность таблиц (отношений-геМюш). Каждая таблица включает схожие между собой строки (кортежи). Все клетки строки имеют идентификаторы. Клетки в разных строках образуют столбцы (атрибуты). Клетка понимается как самая маленькая единица в реляционной базе данных.
В реляционной системе выполняются следующие аспекты:
1.структурный: информация в базе воспринимается пользователем как таблица;
2. целостности: таблицы соответствуют условиям целостности;
3.обработки: в пользовании имеются операторы манипулирования
таблицами. Они способны создавать таблицы из уже имеющихся данных. Существуют операторы сокращения, проекции и объединения. Операция сокращения (выборка) извлекает заданные строки из таблицы. На выходе число строк меньше или равны числу строк исходной таблицы. Операция
5191
проекции предназначена для отбора определенных столбцов таблицы. Соединение же предназначено для совмещения нескольких таблиц на основе общих значений в общих столбцах.
Язык SQL- это специализированный язык запросов, благодаря нему можно работать в реляционных базах данных. Нет иного языка для работы с базами данных, настолько широко используемого в программах. Специализированность означает возможность использования его в для работе с базами данных. Полноценную прикладную систему же не представляется возможным создать посредством него, для это нужны и другие языки с SQL командами. Изначальная цель базы — данных- это иметь возможность совершать CRUD операции. Именно для этих целей в СУБД используется SQL (язык структурированных запросов). Он дает возможность программистам создавать новые базы данных, вставлять в них таблицы, искать и извлекать информацию, обновлять или удалять, все что является лишним. SQL можно использовать в интерфейсе командной строки.
Вышеупомянутым ученым Коддом реляционная модель использовалась при разработке SQL, между ними не имеется полного соответствия.
SQL запрос является неизменным статистическим, в случае, когда он компилируется и оптимизируется на стадии, предшествующей выполнению программы. Динамический запрос оптимизируется в ходе выполнения программы. Варианты применения динамического SQL- интерактивный и непосредственный вызов, когда вопросы вводятся в интерактивном режиме с терминала. Между такими SQL имеются различия лишь в особенностях конструкций.
Как сказано выше SQL- язык запросов к базе данных. К примеру, сотруднику необходимо выгрузить из БД возрастной диапазон пользователей сети. Он вводит нужную команду и получает желаемые данные. Рассмотрим на примере магазина.
Табл. База данных их 2-х таблиц
5192
Таблица № 1
Таблица № 2
ID Seller Manager City
01 Иванов Москва
02 Петров Санкт- Петербу рг
03 Сидоров Воронеж
Year ID Seller Product Amou nt
2019 01 Компьюте ры 100
2019 02 Принтеры 200
2019 03 Мониторы 50
2019 01 Бытовая техника 70
В данной ситуации реляционная база данных не одна, таблиц несколько, они связаны между собой. Таблицы аналогичны Eхсel и состоят из столбцов и строк. Как видно, строка таблицы содержит информацию об объекте. В таблице № 1 объект-менеджеры по продажам, а в таблице № 2 проданные ими товары. Столбцы в таблице характеризуют объекты (атрибуты). В таблице № 1 характеристики- год продажи и наименование товара, номер продавца, сумма продажи. В аналогичных столбцах и строках может находится любая информация. Так устроены все реляционные БД: информация находится в строках и столбцах таблиц, связанных между собой по определённым ключам.
Таким образом, пользователь контактирует с БД с помощью SQL-запросов- своего рода язык, который позволяет получать из БД необходимые данные. Иными словами, пользователь направляет запрос, база данных его обрабатывает и отправляет результат.
SQL применяют в разных направлениях: будь то банковская отрасль или грузоперевозки, везде, где большой поток информации и ее нужно обработать. SQL применяют такие известные компании как «Сбер», Uber ,YouTube,
5193
Netflix, Facebook (запрещена на территории нашей страны), Google, Amazone. В данных крупных организациях огромное количество сотрудников, работающих с базами данных. Они создают, продвигают базы данных, пишут запросы, проводят анализ результатов, сортируют данные и их группируют и т.п.
Существуют различные диалекты SQL:
1. T- SQL- используют для СУБД от Майкрософт;
2. PL/ SQL- применяют для Oracle DataBase;
3. PL/pgSQL- применяют для PostgreSQL.
Диалектов очень много, как и разных СУБД, где у каждой свой диалект. Вместе с тем, элементарные запросы на чистом SQL выполняются в каждой СУБД. Диалекты необходимы, если вы хотите на уровне профессионала работать с какой-либо СУБД и использовать все ее возможности по максимуму. Если запустить специфическое представление на каком-либо диалекте, и запустить не в родную СУБД, такое представление не исполнится.
Итак, что конкретно умеет SQL:
1. определяет данные -дает возможность определить структуру хранения информации и отношения между ее элементами;
2. выборка данных-в своих целях можно применять любые данные;
3. обработка информации- дает возможность добавлять/удалять, изменять данные;
4. управление доступом позволяет защитить данные в базе;
5. возможность использовать базу данных одновременно, при этом действия и шаги каждого разработчика не вредят и не мешают другому;
6. целостность данных- дает возможность сохранить данные при различных негативных изменениях в системе.
Не совсем корректно SQL называть языком программирования. В его составе заложено около 40 инструкций для работы с СУБД.
5194
Главная отличительная черта SQL от языков программирования, это описание инструкции «что желает разработчик от компьютера», в то время как языки программирования описывают «какие команды должен выполнить компьютер, чтобы получилось так как хотел разработчик». То есть SQL описывает, что нужно сделать с информацией из базы данных, а как это произойдет контролирует СУБД. К тому же SQL не имеет в инструкциях четкого структурирования в отличии от языков программирования. Но все же SQL является по сути единственным стандартным языком для взаимодействий с БД. И если появляется новая СУБД, которая не работает с SQL, она обречена на провал.
Важно понимать, что SQL- это не обособленный продукт, который можно просто купить, это встроенный в СУБД инструмент, который необходим для взаимодействия с ней же. Соответственно, повсеместно, где встречается понятие СУБД, существует и SQL. В IT-работе с проектами, где есть базы данных не получится обойтись без SQL.
Список используемой литературы
1. Реляционный базы данных и SQL. Электрон. дан: https://learn.coderslang.com/;
2. SQL-язык структурированных запросов. Электрон. дан: -https://i.voenmeh.ru/kafi5/Kam.loc/BaseDate/Lekcii7_SQL.html#C10;
3. Учебник по языку SQL (DDL, DML) на примере диалекта MS SQL Server. Часть первая. Электрон.дан: https://habr.com/ru/post/255361/;
4. Реляционные базы данных и язык SQL. Электрон. дан: https:// function-x.ru/comp_relation_databases.html;
5. Язык SQL Вводная лекция Введение в теорию баз данных. Электрон. дан: https://edu.postgrespro.ru/sqlprimer/sqlprimer-2018-msu-00.pdf.
List of used literature 1. Relational databases and SQL. Electron. Dan: https://learn.coderslang.com/;
5195
2. SQL is a structured query language. Electron. Dan: -https://i.voenmeh.ru/kafi5/Kam.loc/BaseDate/Lekcii7_SQL.html#C10;
3. Tutorial on the SQL language (DDL, DML) using the example of the MS SQL Server dialect. Part one. Electron.Dan: https://habr.com/ru/post/255361/;
4. Relational databases and SQL language. Electron. Dan: https://function-x.ru/comp_relation_databases.html;
5. SQL Language Introductory lecture Introduction to database theory. Electron. Dan: https ://edu.postgrespro.ru/sqlprimer/sqlprimer-2018-msu-00.pdf .
© Жук Максим Михайлович, Научно-образовательный журнал для студентов и преподавателей «StudNet» №6/2022.
Для цитирования: Жук М.М., РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХ, ЯЗЫК SQL// Научно-образовательный журнал для студентов и преподавателей «StudNet» №6/2022
5196