Что такое база данных и СУБД? Даем определение

Что такое база данных и СУБД? Даем определение Расшифровка

Что такое sql

Каждая СУБД хранит файлы базы данных по-своему, т.е. в своем собственном формате, однако для того чтобы нам с Вами было легче управлять данными в базе данных был разработан специальный язык, который является стандартом и он позволяет нам, независимо от того в какой СУБД создана база данных, манипулировать данными в этой базе данных. Этот язык назвали SQL.

SQL (Structured Query Language) — язык структурированных запросов, с помощью него пишутся специальные запросы к базе данных с целью получения данных из базы данных или для манипулирования этими данными.

Язык SQL – как было уже отмечено, это стандарт, он реализован во всех реляционных базах данных, таким образом, если Вы знаете язык SQL, то Вы можете работать с данными в любой системе управления базами данных.

Однако у каждой СУБД, конечно же, есть расширение этого стандарта, для того чтобы, например, полноценно программировать, получать системную информацию, упрощать SQL запросы и инструкции.

Поэтому, если Вам нужно будет разрабатывать какую-нибудь бизнес логику в базе данных, писать сложные аналитические запросы на выборку, или обычные запросы, но в более упрощенном варианте, то Вам обязательно стоит учитывать, в какой СУБД Вы будете работать, для того чтобы изучить расширение языка SQL конкретно этой СУБД, так как и синтаксис, и возможности этих расширений, конечно же, отличаются.

Среди всех СУБД по функциональности и популярности можно выделить следующие системы.

Что такое база данных

Обычно под базой данных принято понимать любой набор информации, который хранится определенным образом, и этой информацией можно воспользоваться.

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

Реляционная база данных – это упорядоченная информация, связанная между собой определёнными отношениями.

Логически такая база данных представлена в виде таблиц, в которых и хранится вся эта информация.

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

И здесь возникает вопрос, если база данных — это файлы, созданные в специальном формате, то как создать такие файлы и редактировать их?

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

Такой программой как раз и выступает СУБД, т.е. система управления базами данных.

2020: в каких случаях нужно передавать на аутсорсинг субд и бизнес-приложения

В апреле 2020 года директор центра технического консалтингаРДТЕХПавел Шмелев перечислил основные плюсы аутсорсинга и рассказал, зачем компании отдают на сторону сопровождение собственных СУБД. Подробнее здесь.

Microsoft sql server

Microsoft SQL Server – это система управления базами данных от компании Microsoft. Она очень популярна в корпоративном секторе, особенно в крупных компаниях.

Microsoft SQL Server – это очень функциональная СУБД, и она, конечно же, распространяется платно. Однако у SQL Server есть редакция Express, которую можно использовать абсолютно бесплатно, например, для обучения или для разработки приложений, которые будут обрабатывать данные на небольших серверах (размером до 10 ГБ).

В Microsoft SQL Server для программирования в базах данных используется расширение языка SQL – Тransact-SQL, сокращенно T-SQL.

Заметка!Что такое T-SQL. Подробное описание для начинающих.

Mysql

MySQL – это система управления базами данных также от компании Oracle, но только она распространяется бесплатно. MySQL получила очень широкую популярность в интернете, так как именно на MySQL работают чуть ли не все web-сайты, иными словами, большинство сайтов в интернете используют эту СУБД как средство хранения данных.

Заметка!Установка MySQL 8 на Windows 10.

Oracle database

Oracle Database – это система управления базами данных от компании Oracle. Это еще одна очень функциональная СУБД, которая также популярна среди крупных компаний. Возможности Oracle Database и Microsoft SQL Server сопоставимы, поэтому они являются серьезными конкурентами друг другу, и стоимость их полнофункциональных версий очень высокая.

В Oracle Database используется язык PL/SQL (Procedural Language / Structured Query Language) — это процедурное расширение языка SQL, разработанное компанией Oracle.

Заметка!Знакомство с Oracle Database Express Edition (XE) – что это такое?.

Какие бывают субд

На самом деле СУБД — это некая разновидность программ, иными словами, существует достаточно много различных СУБД, как платных, так и бесплатных.

Заметка!Рейтинг популярности систем управления базами данных (СУБД).

Каким требованиям должна отвечать современная субд?

Информационное хранилище должно постоянно пополняться новыми данными в соответствии с ритмом жизни компании, это же касается и формирование новых категорий учета.

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

Необходимо отметить, что количество информации увеличивается не только в объеме, но и качественно. В результате появляется необходимость одновременной работы с ней нескольких экспертов. Кроме того, появляется возможность привлечения специализированных экспертов для выполнения сложных процедур анализа данных (Data mining Интеллектуальный анализ данных).

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

Единая база позволяет в автоматическом режиме обновлять документацию, относящуюся к нормативно-справочной информации (НСИ). Дополнительно общая база данных позволяет оперировать информацией в своеобразной унифицированной форме, делая процедуры анализа информации более единообразными в рамках компании.

Другие сокращения:  Первая в мире мобильная связь создана в СССР » - Источник Хорошего Настроения

Еще одним плюсом от единого подхода к хранению информации является гораздо более простая процедура резервирования, снижение времени простоя после сбоя, обеспечение безопасности данных в плане распределения прав доступа, более прозрачная процедура миграции на новые версии программного и аппаратного обеспечения.

Клиент-серверные и встроенные субд

Технология клиент-сервер является основой большинства реализаций современных программных систем. Речь идёт не только о паре «Приложение конечного пользователя — СУБД». Каждое звено многозвенной системы с длинными цепочками прохождения сообщений от пользовательского интерфейса через службы и серверы приложений к СУБД также работает в режиме «клиент-сервер». Отличительные признаки технологии следующие:

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

В такой терминологии есть некоторый риск спутать приложение-сервер с компьютером-сервером, исполняющим роль физического устройства для эксплуатации тех самых серверных приложений. Поэтому однозначно понять смысл термина «сервер» можно только в контексте его употребления.

Из сказанного следует, что СУБД, работающая как самостоятельный процесс, также является сервером, СУБД-сервером. Однако, некоторые СУБД позволяют напрямую пристыковать себя к процессу-приложению, например, посредством динамических библиотек. В этом случае СУБД исполняется в том же процессе (in-process), что и приложение и называется встроенной или встраиваемой.

Рис. 1. Взаимодействие приложения с СУБД в системах с разным числом звеньев

Встроенные СУБД по сравнению с клиент-серверными имеют ряд преимуществ и недостатков. К преимуществам встроенных СУБД можно отнести следующие особенности.

  1. Простота разработки приложений. Программисту не требуется установка и настройка СУБД на своём рабочем месте. Программа имеет полный контроль над логикой работы с БД.
  2. Простота развёртывания приложений. В большинстве случаев достаточно скопировать файлы динамически подгружаемых библиотек в директорий приложения, при этом пользователю даже не нужно иметь права администратора на своём компьютере или другом устройстве, например, на планшете.
  3. Простота обслуживания локальной базы данных. Как правило, приложение со встроенной СУБД эксплуатируется в однопользовательском режиме, а размер базы данных относительно невелик, поэтому необходимость в дополнительной настройке прав доступа и оптимизации быстродействия практически отсутствует. Регулярные операции обслуживания базы данных (резервное копирование, индексация, очистка, дефрагментация и т. п.) могут быть автоматизированы и реализованы непосредственно приложением, например, при его запуске.
  4. Возможность работы в однозадачной операционной системе. Хотя времена господства MS DOS на персональных компьютерах давно прошли, разработчики встраиваемых систем для различных устройств и оборудования смогут по достоинству оценить эту возможность.
  5. Как правило, более высокое быстродействие на операциях вставки, удаления и считывания одиночных записей. Это связано не только с однопользовательским режимом работы, но и с отсутствием затрат на упаковку данных приложением с последующей их передачей по сети СУБД-серверу. По сути, приложение напрямую работает с локально расположенными файлами через слой программных интерфейсов (API) встроенной СУБД.

Следует отметить, что возможно также использование встроенной СУБД в многопользовательском режиме для работы с разделяемыми по сети файлами данных. Такая технология получила название «файл-сервер» и была весьма популярна до широкого распространения клиент-серверных СУБД.

Интересующихся я отсылаю к системам разработки под общим названием xBase. Сюда относятся такие продукты, как dBase, Paradox, FoxPro или Clipper (современная открытая кросс-платформенная реализация Clipper называется Harbour). Тем не менее, как минимум одна популярная встраиваемая СУБД до сих пор нередко используется в таком качестве, это Microsoft Access и его «мотор» MS Jet, являющийся компонентом операционной системы Windows.

Кроме преимуществ, встроенные СУБД обладают рядом ограничений и недостатков, вытекающих непосредственно из технологии.

  1. Более высокий риск потерь и повреждения данных. Как мы помним, встроенная СУБД находится в том же процессе операционной системы, что и приложение. Соответственно, аварийное завершение работы приложения в момент записи данных может повредить их. Транзакции также контролируются непосредственно приложением, поэтому при аварийном останове некому будет откатить незавершённые модификации базы данных и она останется в несогласованном состоянии.
  2. Ориентация на автономные однопользовательские клиентские и многопоточные серверные приложения. Хотя с помощью разделения файлов в сети можно организовать доступ к одной БД из нескольких приложений, находящихся на разных устройствах, такое решение будет ограничено небольшим числом пользователей и малыми размерами базы данных. Не касаясь серьёзных проблем обслуживания и обеспечения безопасности такой БД, на практике в сети передачи данных 100 мегабит/сек проблемы быстродействия начинаются уже при десятке пользователей, работающих с файлами размером нескольких сотен мегабайт данных.
  3. Невозможность распределения вычислительной нагрузки. Встроенная СУБД работает на одном устройстве, а вычисления производит непосредственно приложение. Клиент-серверная СУБД может быть развёрнута в кластере из многих устройств, при этом она способна сама производить вычисления, возвращая приложению- клиенту результат.
  4. Низкий уровень безопасности. Файлы базы данных должны быть целиком доступны пользователю как минимум на чтение. Таким образом, невозможно предотвратить копирование этих файлов злоумышленниками.
  5. Как правило, функционал встроенной СУБД урезан по сравнению с клиент-серверной версией того же продукта. Например, встроенная версия Microsoft SQL Server Compact несовместима с клиент­серверными версиями и сравнима с Microsoft Access.

Конечно, перечисленных критериев недостаточно для полноценного выбора технологии и типа СУБД, но, надеюсь, у читателя появится базис для систематизации поиска согласно требованиям к разрабатываемой программной системе.

На практике иногда я встречал отношение к вопросам выбора СУБД на уровне высказывания: «Не будем ломать голову, возьмём Oracle: он, как танк, везде пройдёт и нам уж всяко подойдёт». Действительно, если вы не хотите поднапрячь голову сейчас, но согласны, что спустя некоторое время, возможно, придётся на этой же голове рвать волосы, то можно, не напрягаясь, попросить сделать за вас работу продавцов-консультантов продуктов «Большой тройки»[3].

Из ряда многочисленных встроенных СУБД, опробованных непосредственно на практике или в тестовом режиме, таких как xBase, Microsoft, Access, Microsoft SQL Server Compact, SQLite, Oracle Lite) наиболее интересным современным решением мне представляется Firebird по следующим причинам.

  1. Кросс-платформенная СУБД, доступны версии для Windows, Linux и Mac.
  2. Свободно распространяемая СУБД с открытым исходным кодом, допускающая использование в закрытых коммерческих продуктах.
  3. Всего один основной DLL-файл для развёртывания (могут также понадобиться файлы ресурсов), одновременно работающий и как встроенная СУБД, и как клиентская библиотека для связи с СУБД- сервером Firebird. Соответствующий режим выбирается указанием или пропуском имени сервера в строке соединения.
  4. Практически полностью поддержана функциональность своей клиент-серверной версии, включая поддержку встроенных типов данных, видов, триггеров, хранимых процедур и системы безопасности. Это значит, что разработанное программистом приложение будет иметь минимум специфики при работе со встроенной или клиент-серверной версией СУБД с возможностью переключения изменением всего одного параметра соединения.
  5. Версионность данных, благодаря которой читающие транзакции не блокируют пишущие транзакции и наоборот. Разработчики отчётов оперативного контура информационных систем оценят эту возможность, когда требуется выдача согласованной информации на текущий момент времени.
Другие сокращения:  Какие бывают словари? Какие бывают словари русского языка?

Конечно, Firebird не лишён недостатков, особенно с точки зрения администратора баз данных, но для автономных приложений эта СУБД предоставляет разработчику заманчивые возможности. В дополнение к теме я приведу выдержки из своего небольшого обзора состояния Firebird, написанного в 2022 году с позиций как администратора БД, которому необходимо обеспечивать промышленную эксплуатацию баз данных под Firebird, так и инженера, постоянно решающего вопросы поддержки работоспособности продукта среди многих клиентов, эксплуатирующих разные версии СУБД.

См. также

информация

Способы организации СУБД

Иерархические СУБД

Многомерная СУБД

Реляционная СУБД

Сетевая СУБД

Объектно-ориентированная СУБД

Объектно-реляционная СУБД

Информатика

Логика в информатике

Сноска. firebird 2.5: состояние

Firebird достаточно лёгок в администрировании: для относительно небольших

баз данных и приложений СУБД практически не требует вмешательства администратора БД. Для разработчиков автономных приложений это важный фактор, позволяющий минимизировать затраты на поддержку приложений у клиентов, не предоставляющих удалённый доступ к своей сети или у которых не имеется своего администратора БД в штате службы ИТ, если она вообще есть.

Однако, если эксплуатируемых баз данных, приложений и пользователей в хозяйстве становится все больше, то прежняя лёгкость начинает превращаться в легковесность.

Особенности реализации требуют, чтобы операция создания внешнего ключа между двумя таблицами проводилась только при наличии одного единственного соединения к БД. Сами же таблицы создать можно и в обычном соединении, имея соответствующие права. Просуществовало это ограничение до версии 2.1, но у многих клиентов в эксплуатации находится ещё версия 1.5.

Штатных средств соединения в однопользовательском режиме нет. Поддержка предлагает утилитой gfix отключить базу данных в эксплуатации (!), потом включить её в режиме sysdba, что, впрочем, тоже не гарантирует единственного соединения, если более одного сотрудника имеют доступ с уровнем sysdba.

Редакций Firebird по-прежнему несколько, к SuperServer и Classic добавилась SuperClassic. Исторически, Interbase, на основе открытого кода которого возник Firebird, использовал classic-архитектуру: на каждое соединение СУБД стартует отдельный серверный процесс.

Такой подход обеспечивает достаточно высокую надёжность (если один процесс аварийно завершается, то на работу остальных это не влияет) и параллелизм средствами операционной системы, но отсутствует разделяемый кэш данных в оперативной памяти. В SuperServer серверный процесс один, каждое соединение работает в своём потоке с разделяемым кэшем.

По большому счёту, «суперклассик» — это все тот же «классик», упакованный в один процесс: потоки внутри по-прежнему максимально изолированы и не разделяют кэш, поэтому риск сбоя или отказа СУБД- сервера снижается. Но один поток не соответствует соединению, имеется их пул, использующий потоки по мере необходимости, поэтому «суперклассик» будет несколько производительнее и рачительнее к оперативной памяти. Администратору также удобнее наблюдать и поддерживать в работоспособном состоянии один процесс, чем множество.

Собственно, кэш данных у Firebird весьма условный, СУБД использует кэш файлов операционной системы, поэтому сбросить его для проверки производительности «холодных» запросов невозможно даже перезапустив СУБД. К примеру, в SQL Server для этого есть специальная команда.

Средства администрирования, прежде всего аудита и мониторинга из комплекта достаточно примитивны. Например, трассировщик запросов, [4] образцом которого вполне может служить MS SQL Server Profiler, являет собой утилиту командной  строки,     запускаемую со своим конфигурационным файлом.

Последующую расшифровку полученных результатов надо проводить вручную при помощи регулярных выражений. Есть коммерческие утилиты, предоставляющие более дружественный интерфейс. В версии 2.5 появились возможности накопления статистики в системных таблицах мониторинга вида MONSXXX.

Средством «полной очистки» БД от так называемого мусора до сих пор является процедура резервного копирования и последующего за ним восстановления при помощи утилиты gbak. Однако, подобная процедура означает отключение пользователей от СУБД на всё время восстановления, делая проблематичной работу в режиме 24×7.

Файл базы данных понемногу растёт даже при нулевом балансе добавленных и удалённых записей с постоянной фиксацией транзакций, данные дефрагментируются, что может снизить производительность. Ощущается нехватка аналога команды VACUUM, имеющейся в СУБД PostgreSQL.

Firebird не блокирует используемые файлы. Таким образом файл БД можно скопировать на сервере прямо во время многопользовательской работы. Как оказалось, некоторые клиенты именно так и поступают, называя подобное непотребство «резервным копированием».

Проблема заключается в том, что во время копирования нет никакой гарантии нахождения файла в целостном состоянии, как и отсутствия незавершённых транзакций. Наверное, все-таки лучше было бы предусмотреть блокирование, как дополнительную защиту «от дурака».

Наличие перечисленных проблем не позволяет поднять усреднённую планку использования выше чем уровень «СУБД рабочих групп и небольших предприятий», означающий для систем транзакционной обработки десятки пользователей при объёмах БД в десятки гигабайт.

С другой стороны, с точки зрения программиста, Firebird представляет собой удобный СУБД-сервер: простой в установке, нетребовательный к ресурсам вычислительного устройства, переносимый между различными операционными системами, встраиваемый в приложение.

Собственный язык программирования позволяет реализовать логику в хранимых процедурах и триггерах. Имеется большое число средств проектирования, разработки и отладки: от свободно распространяемых с открытым кодом до коммерческих. Стандартные средства сетевого доступа к СУБД имеются практически для всех платформ разработки от массово-корпоративной Явы до более экзотических вроде Руби.

Другие сокращения:  День рождения республики — ЯСИА

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

[2]      Первые тиражируемые системы аналитической обработки данных относятся к 1970 году (Express), но окончательно, как самостоятельное направление, OLAP оформилось только в начале 1990-х годов.

[3]      На данный момент и уже в течение многих лет Big-3 поставщиков СУБД на мировом рынке составляют корпорации Oracle, IBM и Microsoft.

[4]      Запрос к СУБД, требующий преимущественно операции с долговременной памятью (дисковой памятью)

Состав субд

Современная СУБД состоит из следующих компонентов:

  • Ядра, отвечающего за управление данными во внешней и оперативной памяти и журнализацию;
  • Процессора языка БД, обеспечивающего оптимизацию запросов по извлечению и изменению данных и создание машинно-независимого исполняемого внутреннего кода;
  • Подсистемы поддержки времени исполнения, интерпретирующей программы манипуляции данными пользовательского интерфейса СУБД;
  • Сервисных программ (внешних утилитов), предназначенных для обеспечения ряда дополнительных возможностей обслуживания информационной системы.

Список литературы по теме:

  1. Когаловский М.Р. Энциклопедия технологий баз данных. — М.: Финансы и статистика, 2002. — 800 с.
  2. Кузнецов С. Д. Основы баз данных. — 2-е изд. — М.: Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2007. — 484 с. Дейт К. Дж. Введение в системы баз данных = Introduction to Database Systems. — 8-е изд. — М.: Вильямс, 2005. — 1328 с. Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика = Database Systems: A Practical Approach to Design, Implementation, and Management. — 3-е изд. — М.: Вильямс, 2003. — 1436 с.
  3. Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс = Database Systems: The Complete Book. — Вильямс, 2003. — 1088 с. C. J. Date Date on Database: Writings 2000–2006. — Apress, 2006. — 566 с.

Файловая система NTFS Что такое информация?

Ссылки

Официальный сайт MySQL

Ресурс об SQL и клиент/серверные технологии

Официальный сайт СУБД ЛИНТЕР

Инструмент для поддержки администрирования MySQL сервера через WWW

Лекции для студентов СКГМИ (СТУ)

Российское системное ПО

Курсы по СУБД (Microsoft SQL Server, Access, Oracle, MySQL)

Курсы по СУБД CronosPRO (Официальный сайт)

Стратегии работы с внешней памятью

СУБД с непосредственной записью — это системы, в которых все измененные блоки данных сразу же записываются во внешнюю память, как только поступит сигнал подтверждения любой транзакции. Такую стратегию используют лишь при высокой эффективности внешней памяти.

СУБД с отложенной записью — это система, в которой изменения аккумулируются в буфере внешней памяти до наступления любого из нижеприведенных событий:

  • Контрольной точки;
  • Конца пространства во внешней памяти, отведенного под журнал. Система выполняет контрольную точку и пишет журнал сначала, стирая прежнюю информацию;
  • Останова — СУБД ожидает, чтобы все содержимое буферов внешней памяти было перенесено во внешнюю память, после этого делает отметки, что останов базы данных выполнен корректно;
  • Нехватки оперативной памяти для буферов внешней памяти.

Используя данную стратегию можно избежать частого обмена с внешней памятью и значительно повысить эффективность работы СУБД.

Субд крупных эвм

Данный этап развития связан с организацией баз данных на больших машинах типа IBM 360/370, ЕС-ЭВМ и различных моделях фирмы Hewlett Packard. В таком случае информация хранилась во внешней памяти центральной ЭВМ. Пользователями баз данных были фактически задачи, запускаемые в основном в пакетном режиме.

Интерактивный режим доступа обеспечивался с помощью консольных терминалов, которые не обладали собственными вычислительными ресурсами (процессором, оперативной памятью, внешней памятью) и служили только устройствами ввода-вывода для центральной ЭВМ.

Файловые системы

Представим себе, что имеется некоторый носитель информации определенной емкости, устройство для чтения-записи на этот носитель в режиме произвольного доступа и прикладные программы, которые используют конкретный носитель для ввода-вывода информации во внешнюю память.

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

Может произойти наложение: ситуация в которой данные одной программы будут перезаписаны другой программой. Важным шагом в развитии информационных систем явился переход к использованию централизованных систем управления файлами. С точки зрения прикладной программы, файл – именованная область внешней памяти, в которую можно записывать данные, и из которой можно их считывать.

  • распределение внешней памяти;
  • отображение имеет файлов в соответствующие адреса во внеш-ней памяти;
  • обеспечение доступа к данным.

Рассмотрение особенностей реализации отдельных систем управления файлами выходит за рамки данной темы. На данном этапе достаточно знать, что прикладные программы видят файл как линейную последовательность записей и могут выполнить над ним ряд операций. Основные операции сфайлами в СУФ:

  • создать файл (определенного типа и размера)
  • открыть ранее созданный файл
  • прочитать из файла определенную запись
  • изменить запись
  • добавить запись в конец файла

Выводы

В заключение давайте подведем итог.

СУБД (система управления базами данных) – это разновидность программ, с помощью которых создаются и управляются базы данных.

Надеюсь, я понятно ответил на вопрос «что такое СУБД» и для чего это нужно. А также надеюсь, что материал был Вам интересен и полезен.

На сегодня это все, удачи Вам, пока!

Заметка! Если Вас интересует язык SQL, то рекомендую почитать книгу «SQL код» – это самоучитель по языку SQL для начинающих программистов. В ней язык SQL рассматривается как стандарт, чтобы после прочтения данной книги можно было работать с языком SQL в любой системе управления базами данных.

Оцените статью
Расшифруй.Ру