SQL/PSM

SQL 확장을 정의해둔 ISO 표준

SQL/PSM(SQL/Persistent Stored Modules)은 주로 저장 프로시저에 사용하기 위해 절차적 언어로 SQL 확장을 정의해둔 ISO 표준이다. 1996년에 SQL-92(ISO/IEC 9075-4:1996, 가끔은 PSM-96이나 SQL-92/PSM라고도 부름[2]))로 처음 출판된 SQL/PSM은 나중에 멀티 파트 SQL:1999 표준으로 통합되었으며, 그 뒤로 지금까지 이 표준의 파트 4로 유지되고 있다. 가장 최근 판은 SQL:2011이다. SQL:1999 파트 4는 초기 PSM-96 보다 적용되는 내용이 적었는데 그 까닭은 루틴을 정의하고 관리하고 호출하는 SQL 문들이 실제로는 파트 2 SQL/Foundation에 포함되면서 SQL/PSM라는 절차적 언어 그 자체만 남겨두었기 때문이다.[3] SQL/PSM 기능들은 SQL 표준이 관여하는 한 여전히 선택 사항이며, 이들 중 대부분은 기능 P001-P008 안에 그룹화되어 있다.

SQL/PSM
패러다임다중 패러다임
발표일1996
최근 버전SQL:2016
운영 체제크로스 플랫폼 (멀티 플랫폼)
주요 구현체
PL/SQL
MySQL/MariaDB
IBM's SQL PL
Mimer SQL
영향을 받은 언어
PL/SQL
에이다[1]

SQL/PSM은 제어 흐름, 예외 처리 (SQL/PSM에서는 "조건 관리/condition handling"라 부름), 지역 변수, 식의 변수 및 매개변수로의 할당, 커서의 절차적 이용을 위한 문법과 시맨틱을 표준화한다. 저장 프로시저를 위한 정보 스키마 (메타데이터)도 정의한다. SQL/PSM은 SQL:1999의 구조화된 자료형을 위한 메소드를 정의할 수 있는 언어의 하나이다. 이 밖에 SQL/JRT를 통한 자바가 있다.

실질적으로 MySQL의 절차적 언어와 IBM의 SQL PL (DB2에서 사용)은 SQL/PSM 표준에 매우 가깝다.[4]

SQL/PSM은 PL/SQLPL/pgSQL에 영향을 받았으며 이로 인해 서로 비슷한 언어이다.

각주 편집

  1. Gulutzan, Peter (2015), 《Stored Procedures: critiques and defences》 
  2. Eisenberg, A. (1996). “New standard for stored procedures in SQL”. 《ACM SIGMOD Record》 25 (4): 81–88. doi:10.1145/245882.245907. 
  3. Melton, Jim; Simon, Alan R (2002). 《SQL: 1999》. Morgan Kaufmann. 541–42쪽. ISBN 978-1-55860-456-8. 
  4. Harrison, Guy; Feuerstein, Steven (2008). 《MySQL Stored Procedure Programming》. O'Reilly. 49쪽. ISBN 978-0-596-10089-6. 

참고 문헌 편집

  • Jim Melton, Understanding SQL's Stored Procedures: A Complete Guide to SQL/PSM, Morgan Kaufmann Publishers, 1998, ISBN 1-55860-461-8