SQL/ПСМ
Парадигма | Мультипарадигмальность |
---|---|
Впервые появился | 1996 |
Стабильная версия | |
ТЫ | Кроссплатформенность (мультиплатформенность) |
Основные реализации | |
ПЛ/SQL MySQL / МарияДБ от IBM SQL PL Мимер SQL | |
Под влиянием | |
ПЛ/SQL Есть [1] |
SQL/PSM ( SQL /Persistent Stored Modules) — это стандарт ISO, в основном определяющий расширение SQL процедурным языком для использования в хранимых процедурах . Первоначально опубликован в 1996 году как расширение SQL-92 (ISO/IEC 9075-4:1996, версия, которую иногда называют PSM-96 или даже SQL-92/PSM). [2] ), SQL/PSM позже был включен в составной стандарт SQL:1999 и с тех пор стал частью 4 этого стандарта, совсем недавно в SQL:2023 . [3] Часть 4 SQL:1999 охватывала меньше, чем исходный PSM-96, поскольку операторы SQL для определения, управления и вызова подпрограмм были фактически включены в часть 2 SQL/Foundation, оставив только сам процедурный язык как SQL/PSM. [4] Возможности SQL/PSM по-прежнему не являются обязательными для стандарта SQL; большинство из них сгруппированы в функции P001–P008.
SQL/PSM стандартизирует синтаксис и семантику потока управления , обработки исключений (в SQL/PSM называемой «обработкой условий»), локальных переменных, присвоения выражений переменным и параметрам и (процедурного) использования курсоров . Он также определяет информационную схему ( метаданные ) для хранимых процедур. SQL/PSM — это язык, на котором методы SQL:1999 для структурированных типов могут быть определены . Другой — Java через SQL/JRT .
SQL/PSM, по всей видимости, является прямым производным от Oracle PL/SQL . Oracle разработала PL/SQL и выпустила его в 1991 году, взяв за основу язык обороны США Министерства программирования Ada . Однако Oracle в своей документации придерживается дистанции от стандарта. от IBM SQL PL (используется в DB2) и Mimer SQL. PSM от [5] были первыми двумя продуктами, официально реализующими SQL/PSM. Принято считать, что эти два языка, а также, возможно, процедурный язык MySQL / MariaDB , наиболее близки к стандарту SQL/PSM. [6] [7] Однако дополнение PostgreSQL реализует SQL/PSM. [8] [9] [10] [11] (наряду с другими процедурными языками, такими как plpgsql, производный от PL/SQL), хотя он не является частью основного продукта. [12]
Функциональность RDF в OpenLink Virtuoso была полностью разработана с использованием SQL/PSM в сочетании с пользовательскими типами данных (например, ANY
для обработки объектов URI и литеральных отношений), сложная индексация и гибкий выбор физического хранилища (по столбцам или по строкам).
См. также
[ редактировать ]Следующие реализации принимают стандарт, но они не на 100% совместимы с SQL/PSM:
- HSQLDB Хранимые процедуры и функции [13]
- MySQL Хранимые процедуры [6]
- MariaDB Хранимые процедуры [7]
- Виртуозные SQL-процедуры OpenLink (VSP) [14]
- PostgreSQL PL/pgSQL
Собственный:
- Oracle PL/SQL
- Microsoft и Sybase Transact-SQL
- Инновационный процедурный SQL [15]
- Mimer SQL Хранимые процедуры [16]
Ссылки
[ редактировать ]- ^ Гулуцан, Питер (2015), Хранимые процедуры: критика и защита
- ^ Айзенберг, А. (1996). «Новый стандарт хранимых процедур в SQL» . Запись ACM SIGMOD . 25 (4): 81–88. дои : 10.1145/245882.245907 . S2CID 13023149 .
- ^ "SQL:2023", Каталог (интернет-магазин) , ISO
- ^ Мелтон, Джим; Саймон, Алан Р. (2002). SQL: 1999 . Морган Кауфманн. стр. 541–42 . ISBN 978-1-55860-456-8 .
- ^ «Хранимые процедуры в Mimer SQL» .
- ^ Jump up to: а б Харрисон, Гай; Фейерштейн, Стивен (2008). Программирование хранимых процедур MySQL . О'Рейли. п. 49. ИСБН 978-0-596-10089-6 .
- ^ Jump up to: а б «Хранимые процедуры» . База знаний MariaDB .
- ^ plpsm0 (git) (репозиторий), 7 июля 2020 г. .
- ^ Анонс , PostgreSQL, май 2011 г.
- ^ «PostgreSQL: Предложение: PL/pgPSM для 9.3» . www.postgresql.org . 22 февраля 2012 г.
- ^ SQL/PSM (вигл) (руководство), PostgreSQL, 2008 .
- ^ «Соответствие SQL» , Документация (изд. 9.2), PostgreSQL .
- ^ «Глава 8. Подпрограммы, вызываемые SQL» . hsqldb.org .
- ^ «Глава 11. Руководство по языку процедур SQL» . docs.openlinksw.com .
- ^ «Инновационная грамматика SQL v2.0» . Инновационный .
- ^ «Хранимые процедуры Mimer SQL» . docs.mimer.com .
Дальнейшее чтение
[ редактировать ]- Джим Мелтон, Понимание хранимых процедур SQL: Полное руководство по SQL/PSM , Morgan Kaufmann Publishers, 1998, ISBN 1-55860-461-8