ÐÑиложение D. СооÑвеÑÑÑвие ÑÑандаÑÑÑ SQL
СодеÑжание
Ð ÑÑом Ñазделе в обÑÐ¸Ñ ÑеÑÑÐ°Ñ Ð¾ÑмеÑаеÑÑÑ, в какой ÑÑепени Postgres Pro ÑооÑвеÑÑÑвÑÐµÑ ÑекÑÑÐµÐ¼Ñ ÑÑандаÑÑÑ SQL. СледÑÑÑÐ°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð½Ðµ ÑвлÑеÑÑÑ Ð¾ÑиÑиалÑнÑм ÑÑвеÑждением о ÑооÑвеÑÑÑвии, а пÑедÑÑавлÑÐµÑ ÑолÑко оÑновнÑе аÑпекÑÑ Ð½Ð° ÑÑовне деÑализаÑии, доÑÑаÑоÑно полезном и ÑелеÑообÑазном Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑелей.
ФоÑмалÑно ÑÑандаÑÑ SQL назÑваеÑÑÑ ISO/IEC 9075 «Database Language SQL» (ЯзÑк баз даннÑÑ SQL). ÐÑÐµÐ¼Ñ Ð¾Ñ Ð²Ñемени вÑпÑÑкаеÑÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑÐ½Ð½Ð°Ñ Ð²ÐµÑÑÐ¸Ñ ÑÑандаÑÑа, поÑледнÑÑ Ð²ÑÑла в 2016 г. ÐÑа веÑÑÐ¸Ñ Ð¿Ð¾Ð»ÑÑила обознаÑение ISO/IEC 9075:2016 или пÑоÑÑо SQL:2016. Ðо ÑÑого бÑли вÑпÑÑÐµÐ½Ñ Ð²ÐµÑÑии SQL:2011, SQL:2008, SQL:2006, SQL:2003, SQL:1999 и SQL-92. ÐÐ°Ð¶Ð´Ð°Ñ ÑледÑÑÑÐ°Ñ Ð²ÐµÑÑÐ¸Ñ Ð·Ð°Ð¼ÐµÐ½ÑÐµÑ Ð¿ÑедÑдÑÑÑÑ, Ñак ÑÑо ÑÑвеÑждение о ÑовмеÑÑимоÑÑи Ñ Ð¿ÑедÑдÑÑими веÑÑиÑми не Ð¸Ð¼ÐµÐµÑ Ð±Ð¾Ð»ÑÑой ÑенноÑÑи. РазÑабоÑÑики Postgres Pro ÑÑÑемÑÑÑÑ Ð¾Ð±ÐµÑпеÑиÑÑ ÑовмеÑÑимоÑÑÑ Ñ Ð¿Ð¾Ñледней оÑиÑиалÑной веÑÑией ÑÑандаÑÑа, оÑÑаваÑÑÑ Ð¿Ñи ÑÑом в ÑÐ°Ð¼ÐºÐ°Ñ ÑÑадиÑионной ÑÑнкÑионалÑноÑÑи и здÑавого ÑмÑÑла. Postgres Pro ÑеализÑÐµÑ Ð±Ð¾Ð»ÑÑÑÑ ÑаÑÑÑ ÑÑебÑемой ÑÑандаÑÑом ÑÑнкÑионалÑноÑÑи, Ñ Ð¾ÑÑ Ð¸Ð½Ð¾Ð³Ð´Ð° Ñ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ дÑÑгими ÑÑнкÑиÑми или ÑинÑакÑиÑом. Ðожно ожидаÑÑ, ÑÑо Ñо вÑеменем ÑÑÐµÐ¿ÐµÐ½Ñ ÑовмеÑÑимоÑÑи бÑÐ´ÐµÑ ÑвелиÑиваÑÑÑÑ.
SQL-92 опÑеделÑÐµÑ ÑÑи ÑÑÐ¾Ð²Ð½Ñ ÑÑнкÑионалÑной ÑовмеÑÑимоÑÑи: наÑалÑнÑй (Entry), пÑомежÑÑоÑнÑй (Intermediate) и полнÑй (Full). ÐолÑÑинÑÑво СУÐРзаÑвлÑÑÑ Ð¾ ÑовмеÑÑимоÑÑи Ñо ÑÑандаÑÑом SQL ÑолÑко на наÑалÑном ÑÑовне, Ñак как полнÑй Ð½Ð°Ð±Ð¾Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑей на пÑомежÑÑоÑном и полном ÑÑовнÑÑ Ð»Ð¸Ð±Ð¾ ÑлиÑком велик, либо конÑликÑÑÐµÑ Ñ Ñанее пÑинÑÑÑм поведением.
ÐаÑÐ¸Ð½Ð°Ñ Ñ SQL:1999, вмеÑÑо ÑÑÑÑ ÑÑезмеÑно пÑоÑÑÑаннÑÑ ÑÑовней SQL-92 в ÑÑандаÑÑе SQL опÑеделено множеÑÑво оÑделÑнÑÑ ÑÑнкÑионалÑнÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑей. ÐолÑÑое его подмножеÑÑво пÑедÑÑавлÑÐµÑ Â«ÐÑновнÑÑ» ÑÑнкÑионалÑноÑÑÑ, коÑоÑÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¾Ð±ÐµÑпеÑиваÑÑ Ð²Ñе ÑовмеÑÑимÑе Ñ SQL ÑеализаÑии. ÐоддеÑжка оÑÑалÑнÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑей не ÑвлÑеÑÑÑ Ð¾Ð±ÑзаÑелÑной. ÐекоÑоÑÑе необÑзаÑелÑнÑе возможноÑÑи гÑÑппиÑÑÑÑÑÑ Ð²Ð¼ÐµÑÑе, обÑазÑÑ Â«Ð¿Ð°ÐºÐµÑÑ», о поддеÑжке коÑоÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð·Ð°ÑвлÑÑÑ ÑеализаÑии SQL, Ñаким обÑазом, деклаÑиÑÑÑ ÑовмеÑÑимоÑÑÑ Ñ Ð¾Ð¿ÑеделÑнной гÑÑппой возможноÑÑей.
ÐпиÑание ÑÑандаÑÑа, наÑÐ¸Ð½Ð°Ñ Ñ Ð²ÐµÑÑии SQL:2003, Ñакже ÑазделÑеÑÑÑ Ð½Ð° неÑколÑко ÑаÑÑей. ÐÐ°Ð¶Ð´Ð°Ñ ÑÐ°ÐºÐ°Ñ ÑаÑÑÑ Ð¸Ð¼ÐµÐµÑ ÐºÐ¾ÑоÑкое Ð¸Ð¼Ñ Ð¸ номеÑ. ÐамеÑÑÑе, ÑÑо нÑмеÑаÑÐ¸Ñ ÑÑÐ¸Ñ ÑаÑÑей непоÑледоваÑелÑнаÑ.
ISO/IEC 9075-3 ÐнÑеÑÑÐµÐ¹Ñ ÑÑÐ¾Ð²Ð½Ñ Ð²Ñзовов (SQL/CLI)
ISO/IEC 9075-4 ÐодÑли поÑÑоÑнного Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ (SQL/PSM)
ISO/IEC 9075-9 УпÑавление внеÑними даннÑми (SQL/MED)
ISO/IEC 9075-10 ÐÑивÑзки обÑекÑнÑÑ ÑзÑков (SQL/OLB)
ISO/IEC 9075-11 Ð¡Ñ ÐµÐ¼Ñ Ð¸Ð½ÑоÑмаÑии и опÑеделений (SQL/Schemata)
ISO/IEC 9075-13 ÐÑогÑÐ°Ð¼Ð¼Ñ Ð¸ ÑипÑ, иÑполÑзÑÑÑие ÑзÑк Java (SQL/JRT)
ISO/IEC 9075-14 СпеÑиÑикаÑии, ÑвÑзаннÑе Ñ XML (SQL/XML)
ЯдÑо Postgres Pro ÑеализÑÐµÑ ÑаÑÑи 1, 2, 9, 11 и 14. ЧаÑÑÑ 3 ÑеализÑеÑÑÑ Ð´ÑайвеÑом ODBC, а ÑаÑÑÑ 13 â подклÑÑаемÑм ÑаÑÑиÑением PL/Java, но ÑоÑное ÑооÑвеÑÑÑвие ÑÑÐ¸Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñов ÑÑандаÑÑÑ Ð½Ð° даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ðµ пÑовеÑено. ЧаÑÑи 4 и 10 в Postgres Pro в наÑÑоÑÑее вÑÐµÐ¼Ñ Ð½Ðµ ÑеализованÑ.
Postgres Pro поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¿Ð¾ÑÑи вÑе оÑновнÑе возможноÑÑи ÑÑандаÑÑа SQL:2016. Ðз 179 обÑзаÑелÑнÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑей, коÑоÑÑе ÑÑебÑÑÑÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð³Ð¾ ÑооÑвеÑÑÑÐ²Ð¸Ñ Â«ÐÑновной» ÑÑнкÑионалÑноÑÑи, Postgres Pro обеÑпеÑÐ¸Ð²Ð°ÐµÑ ÑовмеÑÑимоÑÑÑ ÐºÐ°Ðº минимÑм Ð´Ð»Ñ 160. ÐÑоме Ñого, он ÑеализÑÐµÑ Ð´Ð»Ð¸Ð½Ð½Ñй ÑпиÑок необÑзаÑелÑнÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑей. СледÑÐµÑ Ð¾ÑмеÑиÑÑ, ÑÑо на вÑÐµÐ¼Ñ Ð½Ð°Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ ÑÑой докÑменÑаÑии ни одна ÑÑÑеÑÑвÑÑÑÐ°Ñ Ð¡Ð£ÐРне заÑвила о полном ÑооÑвеÑÑÑвии «ÐÑновной» ÑÑнкÑионалÑноÑÑи SQL:2016.
Ð ÑледÑÑÑÐ¸Ñ Ð´Ð²ÑÑ ÑÐ°Ð·Ð´ÐµÐ»Ð°Ñ Ð¼Ñ Ð¿ÑедÑÑавлÑем ÑпиÑок возможноÑÑей, коÑоÑÑе поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Postgres Pro, и ÑпиÑок возможноÑÑей, опÑеделÑннÑÑ Ð² SQL:2016, коÑоÑÑе еÑÑ Ð½Ðµ поддеÑживаÑÑÑÑ Ð² Postgres Pro. Ðба ÑÑи ÑпиÑка ноÑÑÑ Ð¿ÑиблизиÑелÑнÑй Ñ Ð°ÑакÑеÑ: какаÑ-Ñо возможноÑÑÑ, оÑмеÑÐµÐ½Ð½Ð°Ñ ÐºÐ°Ðº поддеÑживаемаÑ, Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑлиÑаÑÑÑÑ Ð¾Ñ ÑÑандаÑÑа в деÑалÑÑ , и напÑоÑив, Ð´Ð»Ñ ÐºÐ°ÐºÐ¾Ð¹-Ñо неподдеÑживаемой возможноÑÑи могÑÑ Ð±ÑÑÑ ÑÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ñ ÐºÐ»ÑÑевÑе компоненÑÑ. Ðаиболее ÑоÑÐ½Ð°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ Ñом, ÑÑо ÑабоÑаеÑ, а ÑÑо неÑ, ÑодеÑжиÑÑÑ Ð² оÑновной докÑменÑаÑии.
ÐÑимеÑание
ÐÐ¾Ð´Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑей, ÑодеÑжаÑие знак минÑÑ, обознаÑаÑÑ Ð¿Ð¾Ð´ÑинÑннÑе возможноÑÑи. ÐÑи ÑÑом, еÑли какаÑ-либо одна подÑинÑÐ½Ð½Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð½Ðµ поддеÑживаеÑÑÑ, оÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ñак же не бÑÐ´ÐµÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑÑÑ, даже еÑли ÑÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ñ Ð²Ñе оÑÑалÑнÑе на подÑÑовне.