SQL/PSM
SQL/PSM패러다임 | 다중 파라다임 |
---|---|
첫 등장 | 1996 |
안정적 해제 | |
OS | 크로스 플랫폼(멀티 플랫폼) |
주요 구현 | |
PL/SQL MySQL/MariaDB IBM의 SQL PL 미머 SQL | |
영향을 받은 | |
PL/SQL 에이다[1] |
SQL/PSM(SQL/영구 저장 모듈)은 주로 저장 프로시저에 사용하기 위한 절차 언어를 사용하여 SQL의 확장을 정의하는 ISO 표준이다.1996년 SQL-92(ISO/IEC 9075-4:1996, PSM-96 또는 심지어 SQL-92/PSM이라고도[2] 하는 버전)의 확장으로 처음 출판된 SQL/PSM은 이후 다중 파트 SQL:1999 표준에 통합되었고, 그 이후로 이 표준의 4부로, 가장 최근에 SQL:2016에서 발표되었다.SQL:1999 파트 4는 루틴을 정의, 관리 및 호출하기 위한 SQL 문이 실제로 파트 2 SQL/Foundation에 통합되어 절차 언어 자체만 SQL/PSM으로 남아있기 때문에 원래 PSM-96보다 덜 다루었다.[3]SQL/PSM 설비는 SQL 표준에 관한 한 여전히 선택 사항이다. 대부분의 설비는 Feature P001-P008에 그룹화되어 있다.null
SQL/PSM은 제어 흐름, 예외 처리(SQL/PSM에서 "조건 처리"라고 함), 로컬 변수, 변수 및 파라미터에 식 할당, 커서(절차적) 사용을 위한 구문 및 의미 체계를 표준화한다.저장 프로시저를 위한 정보 스키마(메타데이터)도 정의한다.SQL/PSM은 SQL:1999 구조화 유형에 대한 방법을 정의할 수 있는 하나의 언어다.다른 하나는 SQL/JRT를 통한 자바다.
SQL/PSM은 Oracle의 PL/SQL에서 직접 파생된 것으로, Oracle은 PL/SQL을 개발해 1991년 미국 국방부의 Ada 프로그래밍 언어를 기반으로 출시했다.그러나 오라클은 문서의 표준과 거리를 유지했다.IBM의 SQL PL(DB2에서 사용)과 Mimer SQL의 PSM은[4] SQL/PSM을 공식적으로 구현한 최초의 두 제품이었다.일반적으로 이러한 두 언어, 그리고 아마도 MySQL/MariaDB의 절차적 언어가 SQL/PSM 표준에 가장 가깝다고 생각된다.[5] [6] 그러나, Postgre.SQL addon은 핵심 제품의 일부는 아니지만 SQL/PSM[7][8][9][10](PL/SQL 파생 plpgsql과 같은 다른 절차 언어와 함께)을 구현한다.[11]null
OpenLink Virtuoso의 RDF 기능은 사용자 정의 데이터 유형(예:ANY
URI 및 리터럴 관계 객체 처리), 정교한 인덱싱 및 유연한 물리적 스토리지 선택(열 또는 행)null
참고 항목
다음 구현에서는 표준을 채택하지만 SQL/PSM과 100% 호환되지는 않는다.
- HSQLDB 저장 프로시저 및 기능[12]
- MySQL/MariaDB 저장 프로시저
- VSP(OpenLink Virtuoso SQL Procedures)[13]
- PostgreSQl PL/pgSQL
소유권:
참조
- ^ Gulutzan, Peter (2015), Stored Procedures: critiques and defences
- ^ Eisenberg, A. (1996). "New standard for stored procedures in SQL". ACM SIGMOD Record. 25 (4): 81–88. doi:10.1145/245882.245907. S2CID 13023149.
- ^ Melton, Jim; Simon, Alan R (2002). SQL: 1999. Morgan Kaufmann. pp. 541–42. ISBN 978-1-55860-456-8.
- ^ "Stored Procedures in Mimer SQL".
- ^ a b Harrison, Guy; Feuerstein, Steven (2008). MySQL Stored Procedure Programming. O'Reilly. p. 49. ISBN 978-0-596-10089-6.
- ^ a b "Stored Procedures". MariaDB KnowledgeBase.
- ^ plpsm0 (git) (repository), 7 July 2020.
- ^ Announce, PostgreSQL, May 2011.
- ^ "PostgreSQL: Proposal: PL/pgPSM for 9.3". www.postgresql.org. 22 February 2012.
- ^ SQL/PSM (wiki) (manual), PostgreSQL, 2008.
- ^ "SQL Conformance", Documentation (9.2 ed.), PostgreSQL.
- ^ "Chapter 8. SQL-Invoked Routines". hsqldb.org.
- ^ "Chapter 11. SQL Procedure Language Guide". docs.openlinksw.com.
- ^ "Invantive SQL v2.0 Grammar". Invantive.
추가 읽기
- Jim Melton, SQL의 저장 절차 이해: SQL/PSM에 대한 전체 가이드, Morgan Kaufmann Publishers, 1998, ISBN 1-55860-461-8