PostgreSQL

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
PostgreSQL 포스트그레스큐엘
최근 버전 9.3.2, 9.2.6, 9.1.11, 9.0.15, 8.4.19 / 2013년 12월 5일, 235일 경과
프로그래밍 언어 C
운영 체제 크로스 플랫폼
종류 관계형 데이터베이스
웹사이트 http://www.postgresql.org

PostgreSQL은 객체-관계형 데이터베이스 관리 시스템(ORDBMS)의 일종이다. BSD 허가권으로 배포되며 오픈소스 개발자 및 관련 회사들이 개발에 참여하고 있다.

이름[편집]

PostgreSQL이라는 이름의 어감이 생소해서 발음할 때 멈칫거리게 만들지만 발음은 생각보다 쉽다. /포ː스트그레스큐ː엘/ 조금 더 짧게 "포스트그레스큐엘"이라고 발음 하면 된다. 일부 프로그래머들 사이에는 "포스트그리 에스큐엘"이라고 불린다. 이전에는 일반적으로 "Postgres"라고만 불렸지만 표준 SQL을 지원하기 시작하면서 공동체에서 "Postgres"라는 이름 뒤에 SQL을 뒤에 덧붙인 것이다. 실제로 프로젝트의 공식적인 명칭은 "post-Ingres" 데이터베이스이다.

발자취[편집]

PostgreSQL은 캘리포니아대학교 버클리 분교에서 시작된 Ingres 프로젝트로부터 시작되었다. 프로젝트 리더인 Michael Stonebraker는 1982년 Ingres의 상용화를 위해 학교를 떠났었다.

그 후, 1985년에 다시 학교로 돌아온 그는 1980년대 초반부터 급증하게된 당시의 데이터베이스 시스템의 문제점들을 해결하고자 "post-Ingres"(후기-Ingres)프로젝트를 시작했다. 상용화 된 Ingres와는 다르게 post-Ingres에 대한 아이디어를 공유하기 위해 Ingres의 코드를 일부를 제외하고 분리시켰다.

1986년부터 개발팀은 데이터베이스 시스템의 기본적인 사항에 대해 몇 가지 논문을 제출하고 이어서 1988년까지 실제로 운영이 가능한 프로토타입을 완성하게 된다.

1989년 6월 그들은 첫 번째 버전과 그 이듬해 6월까지 시스템 규칙을 재작성하는 두 번째 버전까지 소수의 사용자들에게만 공개되었다. 1991년 세 번째 버전에서도 시스템의 규칙이 다시 쓰여졌다. 또한 다중 스토리지 관리자 및 향상된 질의엔진에 대한 지원이 추가되었다. 1993년까지 많은 수의 사용자들이 이 시스템을 사용하게 되었고 이 시스템의 지원에 관한 요청이 쇄도하기 시작했다.

개발팀이 네 번째 버전을 내놓은 후 일차적인 프로젝트가 공식적으로는 종료되었으나, BSD허가권으로 인해 오픈소스 개발자들은 Postgres 시스템의 소스코드를 넘겨받아 계속해서 개발을 하게 되었다.

1994년 캘리포니아대학교 버클리분교의 졸업생인 앤드류 유와 졸리 첸이 SQL의 해석기를 추가하게 되고 기존의 Ingres기반의 질의 시스템을 대체하게 된다. 이를 "Postgres95" 라고 한다.

1996년에는 기존의 데이터베이스 시스템에 새로운 SQL질의어가 추가되었다는 것을 알리기 위해 Postgres95라는 이름을 PostgreSQL로 바꾸게 된다.

1997년 PostgreSQL의 첫 번째 버전인 6.0 부터 전 세계의 데이터베이스 개발자와 자원자들이 조직을 형성하고 인터넷을 통해 협력하면서 시스템의 개발과 유지보수를 하게 되었다.

PostgreSQL을 상용 버전으로 만들 수는 있었으나, 과거와 같이 급속도로 개발되지는 않았다.

상용 PostgreSQL의 대표적인 것으로는 Paula Hawthorn[1]과 Michael Stonebraker가 세운 Illustra Information Technologies의 상용버전이다.

특징점[편집]

함수[편집]

때때로, '저장 프로시저'라고 불리는 SQL문으로 작성된 함수를 서버환경에서 사용할 수 있다. 비록 다른 언어와는 달리 제어문과 반복문을 사용하지는 못하지만, 다른 언어와 결합시킬 수 있다. 일부 언어에서는 심지어 트리거 내부에서 실행시킬 수 있다.

이러한 언어의 예는 다음과 같다.

  • PL/pgSQL (오라클의 PL/SQL과 유사하다)
  • 스크립트 언어를 통한 지원 (예, PL/Python, PL/php, PL/Perl)
  • 컴파일 언어를 통한 지원 (예, C/C++, PL/Java)
  • 통계적 언어를 통한 지원 (예, PL/R)

PostgreSQL은 테이블에 대한 질의 결과를 반환하기 위한 '행 반환 함수'를 지원한다.

실행권한은 함수 작성자 및, 실행자 모두에게 있다.

데이터베이스 관리 도구[편집]

서버 도구[편집]

postgres[편집]

pg_ctl[편집]

initdb[편집]

pg_resetxlog[편집]

클라이언트 도구[편집]

psql[편집]

기초적인 관리 툴은 psql이다. psql의 특징으로는 명령어 기반 인터페이스라는 점이며 셸과 유사한 자동완성 및 스크립트를 통한 자동화 기능을 지원한다.

pgAdmin[편집]

pgAdmin은 그래픽 사용자 인터페이스를 지닌 툴로서 다수의 운영체제에서 작동하며, 배포는 Artistic 허가권을 따른다. PostgreSQL 6.3.2 버전부터 지원하기 시작했으며 개발초기의 이름은 pgManager였다. 현재는 pgAdmin III이다.

phpPgAdmin[편집]

phpPgAdmin은 웹 기반의 관리 툴이다. phpMyAdmin과 인터페이스가 거의 똑같이 구성되어있으며 PHP로 작성되었다.

주석[편집]

  1. 원래 Ingres 개발팀원이었으며 (상용)Ingres팀으로 옮겼음

바깥 고리[편집]