AAA
Обычный Черный



Кто не делится найденным, подобен свету в дупле секвойи (древняя индейская пословица)

версия для печатиВерсия для печати



Библиографическая запись: Языки управления базами данных. — Текст : электронный // Myfilology.ru – информационный филологический ресурс : [сайт]. – URL: https://myfilology.ru//165/bazy-dannyx/yazyki-upravleniya-bazami-dannyx/ (дата обращения: 1.10.2022)

Языки управления базами данных

Языки управления базами данных

Содержание

    В СУБД поддерживается несколько специализированных по своим функциям подъязыков. Их можно разбить на две категории:

    • язык определения данных БД — ЯОД (DDL — Data Definition Language);
    • язык манипулирования данными— ЯМД (DML — Data Manipulation Language).

    Язык определения данных — описательный язык, с помощью которого описывается предметная область: именуются объекты, определяются их свойства и связи между объектами. Он используется главным образом для определения логической структуры БД.

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

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

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

    Множество операций над данными можно классифицировать следующим образом:.

    1. операции селекции;

    2. действия над данными:

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

    Языки манипулирования данными делятся на два типа. Это разделение обусловлено коренным различием в подходах к работе с данными, а следовательно, различием в базовых конструкциях в работе с данными.

    Первый тип — это процедурный ЯМД.

    Второй тип — это декларативный (непроцедурный) ЯМД.

    К процедурным языкам манипулирования данными относятся и языки, поддерживающие операции реляционной алгебры, которую основоположник теории реляционных баз данных Э. Ф. Кодд ввел для управления реляционной базой данных. Реляционная алгебра — это процедурный язык обработки реляционных таблиц, где в качестве операндов выступают таблицы в целом.

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

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

    Следует отметить, что язык SQL имеет сразу два компонента: язык DDL (ЯОД) для описания структуры базы данных, и язык DML (ЯМД) для выборки и обновления данных. 

    SQL

    Наиболее распространенным языком для работы с базами данных является SQL (Structured Query Language), в своих последних реализациях предоставляющий не только средства для спецификации и обработки запросов на выборку данных, но также и функции по созданию, обновлению, управлению доступом и т. д.

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

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

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

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

    SQL является непроцедурным языком и не содержит операторов управления, организации подпрограмм, ввода-вывода и т. п. В связи с этим SQL автономно не используется, обычно он погружен в среду встроенного языка программирования СУБД (например, FoxPro СУБД Visual FoxPro, ObjectPAL СУБД Paradox, Visual Basic for Applications СУБД Access).

    В современных СУБД с интерактивным интерфейсом можно создавать запросы, используя другие средства, например QBE. Однако применение SQL зачастую позволяет повысить эффективность обработки данных в базе. Например, при подготовке запроса в среде Access можно перейти из окна Конструктора запросов (формулировки запроса по образцу на языке QBE) в окно с эквивалентным оператором SQL. Подготовку нового запроса путем редактирования уже имеющегося в ряде случае проще выполнить путем изменения оператора SQL. В различных СУБД состав операторов SQL может несколько отличаться.

    Язык SQL не обладает функциями полноценного языка разработки, а ориентирован на доступ к данным, поэтому его включают в состав средств разработки программ. В этом случае его называют встроенным SQL. Стандарт языка SQL поддерживают современные реализации следующих языков программирования: PL/1, Ada, С, COBOL, Fortran, MUMP S и Pascal.

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

    Различают два основных метода использования встроенного SQL: статический и динамический.

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

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

    QBE

    QBE (Query by Example, запрос по образцу) — способ создания запросов к базе данных с использованием образцов значений полей в виде текстовой строки. Реализации QBE преобразуют пользовательский ввод в формальный запрос к базе данных, что позволяет пользователю создавать сложные запросы без необходимости изучать более сложные языки запросов, такие как SQL. Данный метод отбора данных впервые предложен Моше Злуфом, сотрудником исследовательского центра IBM в середине 1970-х годов.

    Язык QBE заслужил репутацию одного из самых простых способов извлечения информации из базы данных. Особенно это ценно для пользователей, не являющихся профессионалами в этой области. Язык предоставляет графические средства создания запросов на выборку данных с использованием шаблонов. Ответ на запрос также представляет собой графическую информацию. Пользователю выводится окно, в котором указаны все поля данных, встречающиеся в каждой записи данных; введение информации в конкретное поисковое поле ограничит поиск совпадением (полным или частичным, в зависимости от договорённости реализации) по данному полю. Проверка условий осуществляется только по заполненным условиям на поля, а поля, условия на которые указаны не будут, могут соответствовать чему угодно. 

    Теоретической основой языка QBE является реляционное исчисление с переменными-доменами. Язык QBE позволяет задавать сложные запросы к БД путем заполнения предлагаемой СУБД запросной формы. Такой способ задания запросов обеспечивает высокую наглядность и не требует указания алгоритма выполнения операции — достаточно описать образец ожидаемого результата. В каждой из современных реляционных СУБД имеется свой вариант языка QBE. На языке QBE можно задавать запросы однотабличные и многотабличные (выбирающие или обрабатывающие данные из нескольких связанных таблиц).

    С помощью запросов на языке QBE можно выполнять следующие основные операции:

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

    Результатом выполнения запроса является новая таблица, называемая ответной (первые две операции), или обновленная исходная таблица (остальные операции).

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

    CQL

    CQL (Contextual Query Language — контекстуальный язык запросов) — формальный язык для представления запросов к системам информационного поиска, таких как поисковые системы, библиографические каталоги и музейные информационные коллекции.

    Язык запросов построен XQuery — язык запросов и функциональный язык программирования, разработанный для обработки данных в формате XML, простого текста, JSON или других предметно-специфичных форматах. XQuery использует XML как свою модель данных. Предназначен для запроса и преобразования коллекций структурированных и неструктурированных данных.

    SPARQL

    SPARQL (SPARQL Protocol and RDF Query Language) — язык запросов к данным, представленным по модели RDF, а также протокол для передачи этих запросов и ответов на них. SPARQL является рекомендацией консорциума W3C и одной из технологий семантической паутины. Предоставление SPARQL-точек доступа является рекомендованной практикой при публикации данных во всемирной паутине.

    Существуют реализации для нескольких языков программирования.  Существуют инструменты, которые позволяют подключить и полуавтоматически построить запрос SPARQL для конечной точки SPARQL, например ViziQuer.  Кроме того, существуют инструменты для преобразования запросов SPARQL в другие языки запросов, например, в SQL и в XQuery.

    SPARQL позволяет пользователям писать запросы к тому, что можно условно назвать данными «ключ-значение», или, точнее, к данным, которые следуют спецификации RDF W3C . Таким образом, вся база данных представляет собой набор троек «субъект-предикат-объект». Это аналогично использованию термина «ключ-значение документа» в некоторых базах данных NoSQL , таких как MongoDB .

    В терминах реляционной базы данных SQL данные RDF также можно рассматривать как таблицу с тремя столбцами — столбец субъекта, столбец предиката и столбец объекта. Субъект в RDF аналогичен объекту в базе данных SQL , где элементы данных (или поля) для данного бизнес-объекта размещаются в нескольких столбцах, иногда распределяются по более чем одной таблице и идентифицируются уникальным ключом .. Вместо этого в RDF эти поля представлены в виде отдельных строк предикатов/объектов, имеющих один и тот же субъект, часто один и тот же уникальный ключ, причем предикат аналогичен имени столбца, а объект — фактическим данным. В отличие от реляционных баз данных, столбец объекта неоднороден: тип данных для каждой ячейки обычно подразумевается (или указывается в онтологии ) значением предиката . Кроме того, в отличие от SQL, RDF может иметь несколько записей для каждого предиката; например, можно иметь несколько «дочерних» записей для одного «человека» и возвращать наборы таких объектов, например «дети».

    Таким образом, SPARQL предоставляет полный набор операций аналитического запроса, таких как JOIN, SORT, AGGREGATE для данных, схема которых является неотъемлемой частью данных, а не требует отдельного определения схемы. Однако информация о схеме (онтология) часто предоставляется извне, чтобы обеспечить однозначное объединение различных наборов данных. Кроме того, SPARQL предоставляет специальный синтаксис обхода графа для данных, которые можно рассматривать как граф.

    Cypher

    Cypher — это декларативный язык запросов графовых баз данных, который позволяет выполнять выразительные и эффективные запросы данных. Cypher был в значительной степени изобретением Андреса Тейлора, когда он работал в Neo4j. Inc. в 2011 году и изначально предназначался для использования с графовой базой данных Neo4j , но был открыт в рамках проекта openCypher в октябре 2015 года.

    Язык был разработан с учетом мощности и возможностей SQL, но Cypher был основан на компонентах и ​​потребностях базы данных, построенной на концепциях теории графов . В графовой модели данные структурированы как узлы (вершины в графах) и отношения (ребра в графах), чтобы сосредоточиться на том, как сущности в данных связаны и связаны друг с другом.

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

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

    Шаблоны графов, представленные ASCII-графикой, являются основой Cypher. Запросы на Cypher прикрепляют одну или несколько частей шаблона к определенным местам графа с помощью предикатов, а затем перемещают незафиксированные части, пытаясь найти соответствие.

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

    Как и большинство языков запросов, Cypher состоит из фраз. Простейшие запросы состоят из фразы MATCH и следующей за ней фразы RETURN. Фраза MATCH является основой большинства Cypher-запросов. Это часть спецификации на примере. Используя ASCII-символы для представления узлов и взаимосвязей, мы прорисовываем данные, которые нам нужны. RETURN определяет, какие узлы, взаимосвязи и свойства в совпавших данных должны быть возвращены клиенту.

    Gremlin

    Императивный язык запросов, базирующийся на маршрутах; предметно-ориентированный язык для обхода и изменения графов, разработанный в рамках проекта TinkerPop. Gremlin работает как с графовыми базами данных на основе OLTP, так и с графическими процессорами на основе OLAP. Основа функционального языка позволяет Gremlin естественным образом поддерживать: императивные и декларативные запросы; агностицизм принимающего языка; определяемые пользователем доменные языки; расширяемый компилятор/оптимизатор, одно- и многомашинные модели исполнения; гибридная оценка в глубину и ширину.

    Язык Gremlin (то есть свободный стиль выражения обхода графа) может быть представлен на любом основном языке, который поддерживает композицию функций и вложенность функций . Из-за этого простого требования существуют различные диалекты Gremlin, включая Gremlin-Groovy, Gremlin-Scala, Gremlin-Clojure и т. д.


    1. Голицына О. Л. Базы данных: Учебное пособие / Голицына О. Л., Максимов Н. В., Попов И. И.. — М.: ФОРУМ: ИНФРА-М, 2006. — 352 с.
    2. Хомоненко А. Д. Базы данных: Учебник для высших учебных заведений / Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. ; Под ред. npоф. А. Д. Хомоненко. — 6-е изд., доп. - СПб.: КОРОНА-Век, 2009. - 736 с.
    3. Робинсон Я. Графовые базы данных: новые возможности для работы со связанными данными / Робинсон Я., Вебер Д., Эифрем Э. ; пер. с англ. Р. Н. Рагимова ; науч. ред. А. Н. Кисилев. – 2-е изд. – М.: ДМК Пресс, 2016. – 256 с.

    02.02.2022, 173 просмотра.


    Уважаемые посетители! С болью в сердце сообщаем вам, что этот сайт собирает метаданные пользователя (cookie, данные об IP-адресе и местоположении), что жизненно необходимо для функционирования сайта и поддержания его жизнедеятельности.

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

    Dear visitors! It is a pain in our heart to inform you that this site collects user metadata (cookies, IP address and location data), which is vital for the operation of the site and the maintenance of its life.

    If you do not want to provide this data for processing under any pretext, please leave the site immediately and we will not tell anyone that you were here. With the same care, the site administration.