RDBMS 이야기
1) Oracle Database에서 Enterprise 버전 VS Standard 버전 차이
- 참고링크 이런저런 이야기가 많지만, 결국 차이는 분산데이터베이스 시스템 구축이 가능한지 아닌지에 대한 차이가 두 가지 버전의 차이이다. 즉 RDBMS에서는 분산처리가 힘들고 >> 스케일아웃(수평확장)이 어렵고 >> 어쩔수없이 가용성이 떨어지는 악순환의 고리
- 악순환을 끊기 위해서 대형(주로 엔터프라이즈) 시스템에서는 비싸더라도 분산처리가 지원되는 Oracle Enterprise 를 사용
2) MySQL에서도 분산처리를 지원하기 위해 노력하는데
- 90년대, 2000년대 초, 오픈소스인 MySQL은 Oracle 처럼 RDBMS 분산처리 기능을 제공하기 위해 노력하는데, 이런저런 가시적인 성과가 있어서 분산처리 서비스를 제공하기 직전에 Oracle에게 피인수 당함
- 이후 우연인지 필연인지, 분산처리 기능 제공은 쏙 들어가고 차일피일 미뤄지게 됨
3) MySQL의 대안 mariaDB
- MySQL의 피인수로 인해 MySQL 5.X 버전에서 fork되어 나온 오픈소스 RDBMS 시스템이 바로 mariaDB 이고, 이 데이터베이스는 어느정도 분산처리 기능을 제공하고 있다
4) PostgreSQL : 유사한 RDBMS인데 이건 왜 쓰는거냐면..
- PostgreSQL : MySQL, mariaDB가 사이나쁜 이복남매 사이라 유사한데, 다른 RDB들과는 다른 PostgreSQL 의 특징은 (이걸 왜 써야하냐면)
- 분산처리 지원
- 객체지향 개념이 도입되어 있는 DB
- 다른 관계형 데이터베이스 시스템과 달리, 연산자, 복합 자료형, 집계 함수, 자료형 변환자, 확장 기능 등 다양한 데이터베이스 객체를 사용자가 임의로 만들 수 있는 기능을 SQL 차원에서 제공
- 이런 특징은 단순한 자료 저장소로써의 기능을 넘어 마치 하나의 새로운 프로그래밍 언어처럼 개발자의 창의성에 따라 무한한 기능을 손쉽게 구현
- 테이블 간 상속기능
- java 같이 테이블간 상속 기능을 이용해 하위(자식)테이블을 만들수 있다
- 테이블에 저장된 자료는 상위 테이블을 조회하면, 해당 테이블의 하위 테이블에 포함된 모든 자료를 조회할 수 있으며, 하위 테이블을 만들 때, 상위 테이블의 칼럼을 그대로 상속 받으면서, 하위 테이블에만 속하는 칼럼 추가 가능
- 함수(스토어드 프로시져)의 적극적인 활용
- '스토어드 프로시저'라고 불리는 SQL문으로 작성된 함수를 서버환경 사용 지원
- 비록 다른 언어와는 달리 제어문과 반복문을 사용하지는 못하지만, 다른 언어와 결합시킬 수 있다. 일부 제품에서는 트리거 내부에서 프로그래밍 언어 실행 가능
- PL/pgSQL (오라클의 PL/SQL과 유사하다)
- 스크립트 언어 (PL/Python, PL/php, PL/Perl)
- 컴파일 언어를 통한 지원 (C/C++, PL/Java)
- 통계적 언어를 통한 지원 (PL/R)
- PostgreSQL은 테이블에 대한 질의 결과를 반환하기 위한 '행 반환 함수'를 지원하고 실행권한은 함수 작성자 및, 실행자 모두에게 있음
TMI : 이름, 라이선스
- 이름의 유래 : 캘리포니아대학교 버클리 분교에서 시작된 Ingres 프로젝트가 있었는데 상용화 되버림
- 초기 개발자가 당시의 데이터베이스 시스템의 문제점들을 해결하고 "post-Ingres"(후기-Ingres)프로젝트를 오픈소스로 시작
- 상용화 된 Ingres와는 다르게 post-Ingres에 대한 아이디어를 공유하기 위해 Ingres의 코드를 일부를 제외하고 분리
- Ingres, post-Ingres 시스템은 "쿼리 시스템", 데이터베이스 질의만 할수 있는 저장엔진이고, SQL이나 RDBMS는 아님
- post-Ingres버전 4까지 나오고 나서 프로젝트 종료 후 >> 오픈소스 커뮤에서 개발 주도
- 94년에 SQL의 해석기를 추가하고 기존 Ingres 기반의 질의 시스템을 대체한 버전이 "Postgres95"
- 이후 PostgreSQL(포스트그리 SQL)이름변경 이후 발음이 편리하다는 이유로 (포스트그레스-큐엘) 로 부름..
- 라이선스는 BSD 로 배포되는지라, 이걸 살짝 수정해서 상용버전도 나온다. (=돈줄테니까 기술지원이랑 문제해결 지원좀 빵빵하게 해줘) (예시 : Paula Hawthorn)
다음계획