오라클 데이터베이스
1. 개요
오라클 데이터베이스는 래리 엘리슨 등이 1977년 설립한 SDL에서 개발을 시작하여, 1979년 출시된 최초의 상용 관계형 데이터베이스이다. 현재는 오라클(Oracle Corporation)에서 개발 및 판매하고 있으며, 23ai, 21c, 19c 등 다양한 버전이 존재한다. 행 수준 잠금, 읽기 일관성, REDO 로그 아카이브 등 다양한 기능을 제공하며, C 언어로 개발되어 다양한 플랫폼에서 사용할 수 있다. 오라클 데이터베이스는 상용 관계형 데이터베이스 시장에서 IBM Db2, 마이크로소프트 SQL 서버 등과 경쟁하며, 오픈 소스 데이터베이스와의 경쟁도 심화되고 있다. 오라클 데이터베이스는 여러 에디션으로 제공되며, 지원 계약을 통해 보안 패치 및 기술 지원을 받을 수 있다.
이미지 준비중입니다.
| 개발사 | 오라클 주식회사 |
|---|---|
| 출시일 | 1979년 |
| 최신 버전 | 23c |
| 최신 버전 출시일 | 2023년 9월 19일 |
| 종류 | 멀티 모델 데이터베이스 |
| 라이선스 | 사유 소프트웨어 |
| 웹사이트 | 오라클 데이터베이스 공식 웹사이트 |
| 프로그래밍 언어 | 어셈블리어 C C++ |
| 데이터 모델 | 관계형 데이터베이스 |
|---|---|
| SQL 표준 준수 | 준수 |
| 지원 운영체제 | 크로스 플랫폼 |
| 특징 | Exadata 지원 멀티 모델 데이터베이스 지원 |
-
사유 데이터베이스 관리 시스템 -
IBM 시스템 R
-
사유 데이터베이스 관리 시스템 -
SAP HANA
SAP HANA는 SAP SE에서 개발한 인메모리, 컬럼 지향 데이터베이스 관리 시스템으로, 빠른 데이터 처리 속도를 기반으로 온라인 트랜잭션 처리와 온라인 분석 처리를 단일 플랫폼에서 지원하며, SAP S/4HANA 등 다양한 SAP 애플리케이션 실행에 사용되고 클라우드 및 온프레미스 환경에 배포 가능하다. -
관계형 데이터베이스 관리 시스템 -
IBM 시스템 R
-
관계형 데이터베이스 관리 시스템 -
마이크로소프트 액세스
마이크로소프트 액세스는 1992년 출시된 데이터베이스 관리 시스템으로, 테이블, 쿼리, 폼 등을 생성하고 VBA를 통해 솔루션을 개발하며, 윈도우에서 사용 가능하고 다양한 데이터 형식과 통합된다. -
오라클 코퍼레이션 -
오라클 파크
오라클 파크는 샌프란시스코 자이언츠의 홈 구장으로, 맥코비 코브와 인접한 독특한 입지 조건과 스플래시 히트 존으로 유명하며 야구 외 다양한 스포츠 및 문화 행사가 개최되는 장소이다. -
오라클 코퍼레이션 -
Btrfs
Btrfs는 내결함성, 복구 기능, 쉬운 관리를 특징으로 하는 카피-온-라이트 방식의 파일 시스템으로, 동적 아이노드 할당, 쓰기 가능한 스냅샷, 서브볼륨, 압축, 온라인 조각 모음 등의 기능을 제공하며 데이터 무결성 보장 및 오류 자동 수정이 가능하다.
2. 역사
래리 엘리슨과 그의 친구이자 전 동료인 밥 마이너와 에드 오츠는 1977년 소프트웨어 개발 연구소(Software Development Laboratories, SDL)라는 컨설팅 회사를 설립했다. SDL은 오라클 소프트웨어의 초기 버전을 개발했다. 오라클이라는 이름은 엘리슨이 앰펙스에서 근무하기 전 참여했던 CIA 자금 지원 프로젝트의 코드명에서 유래되었다.
1979년 SDL은 사명을 Relational Software, Inc (RSI)로 변경하고, 초기의 상용 관계형 데이터베이스인 Oracle V2를 발표했다. Oracle V2에는 트랜잭션 개념은 없었지만, 기본적인 데이터베이스 언어인 SQL을 사용할 수 있었다. Oracle에 Version 1이 존재하지 않는 것은, 구매층에게 세련된 데이터베이스라는 인상을 심어주기 위한 영업 전략이었다.
1983년, RSI는 사명을 Oracle Corporation으로 변경하고, C 언어로 재프로그래밍된 Oracle version 3을 출시하여 커밋이나 롤백과 같은 트랜잭션 개념을 지원했다.
1984년에 출시된 Oracle 4는 읽기 일관성을 지원했다.
1985년에는 클라이언트-서버 모델을 지원했고, Oracle 5.0은 분산 쿼리를 탑재했다.
1988년, Oracle은 ERP 시장에 참여하며 Oracle Financials를 출시했다. Oracle 6.0은 PL/SQL이나 행 레벨 락 등을 지원했다.
1992년 Oracle7 7.0은 병렬 쿼리, 완전 제약성, 저장 프로시저, 데이터베이스 트리거 등을 지원했다.
1997년 객체 지향 및 멀티미디어에 대응한 Oracle8 8.0이 출시되었다.
1999년 인터넷 사용 증가에 따라 Oracle8i (R8.1.5 ~)를 출시했다.
2001년 XML 입출력 등 400가지의 새로운 특징을 가진 Oracle9i Database를 출시했다.
2003년 그리드 컴퓨팅 기술을 응용한 Oracle Database 10g가 출시되었다.
2007년 Oracle Database 11g가 출시되었다.
2013년 Oracle Database 12c가 출시되었다.
오라클 제품은 맞춤형 릴리스 번호 매기기 및 명명 규칙을 따른다. 현재 릴리스인 오라클 데이터베이스 23ai의 "ai"는 "인공 지능(Artificial Intelligence)"을 의미한다. 이전 릴리스(예: 오라클 데이터베이스 19c, 10g, 오라클9i 데이터베이스)는 각각 "Cloud", "Grid", "Internet"을 의미하는 "c", "g", "i" 접미사를 사용했다. 오라클8i 데이터베이스 릴리스 이전에는 오라클 데이터베이스 명명 규칙에 접미사가 포함되지 않았다. 오라클 데이터베이스의 v1은 없었는데, 공동 창립자인 래리 엘리슨은 "아무도 버전 1을 사고 싶어하지 않을 것"이라고 생각했기 때문이다.
2.1. 설립 초기
래리 엘리슨은 그의 친구이자 이전 직장 동료였던 밥 마이너, 에드 오츠와 함께 1977년 소프트웨어 개발 연구소(Software Development Laboratories, SDL)라는 컨설팅 회사를 설립했다. SDL은 오라클 소프트웨어의 초기 버전을 개발했다. 오라클이라는 이름은 엘리슨이 앰펙스에서 근무하기 전 참여했던 CIA 자금 지원 프로젝트의 코드명에서 유래되었다.
2.2. 버전 출시
버전 5부터 오라클의 RDBMS 출시판은 다음의 코드를 사용하고 있다.
오라클 제품은 맞춤형 릴리스 번호 매기기 및 명명 규칙을 따른다. 현재 릴리스인 오라클 데이터베이스 23ai의 "ai"는 "인공 지능(Artificial Intelligence)"을 의미한다. 이전 릴리스(예: 오라클 데이터베이스 19c, 10g, 오라클9i 데이터베이스)는 각각 "Cloud", "Grid", "Internet"을 의미하는 "c", "g", "i" 접미사를 사용했다. 오라클8i 데이터베이스 릴리스 이전에는 오라클 데이터베이스 명명 규칙에 접미사가 포함되지 않았다. 오라클 데이터베이스의 v1은 없었는데, 공동 창립자인 래리 엘리슨은 "아무도 버전 1을 사고 싶어하지 않을 것"이라고 생각했기 때문이다.
오라클 데이터베이스 릴리스 번호 매기기는 다음 코드를 사용했다.
| 오라클 데이터베이스 버전 | 초기 릴리스 버전 | 초기 릴리스 날짜 | 터미널 버전 | 주요 기능 |
|---|---|---|---|---|
| 오라클 데이터베이스 23ai | 23.4.0 | 2024년 5월 2일, 오라클 데이터베이스 23ai가 OCI Exadata Database Service, OCI Exadata Database Cloud@Customer, OCI Base Database Service를 포함한 클라우드 서비스로 오라클 클라우드 인프라(OCI)에서 출시되었다. 또한 Always Free Autonomous Database에서도 사용할 수 있다. 오라클 데이터베이스 23c(이전 2023년 출시)는 오라클 데이터베이스의 데이터에 AI 기능을 추가하기 위한 상당한 추가 엔지니어링 노력으로 인해 오라클 데이터베이스 23ai(23.4)로 이름이 변경되었다. | AI 벡터 검색 (새로운 벡터 데이터 유형, 벡터 인덱스 및 벡터 SQL 연산자/함수 포함), JSON 관계 이중성, JSON 스키마 유효성 검사, 트랜잭션 마이크로서비스 지원, OKafka, 운영 속성 그래프, SQL/PGQ 지원, 스키마 권한, 개발자 역할, 데이터베이스 내 SQL 방화벽, TLS 1.3 지원, Azure Active Directory OAuth2 통합, 미들 티어 캐싱용 True Cache, 읽기 가능한 PDB당 대기, 활성-활성 RAFT 기반 복제를 사용한 글로벌 분산 데이터베이스, 실시간 SQL 계획 관리, 우선 순위 트랜잭션, SQL 구문 단순화, 스키마 주석, 데이터 사용 사례 도메인, 열 값 잠금 없는 예약 | |
| 오라클 데이터베이스 21c | 21.1.0 | 2020년 12월(클라우드) | 블록체인 테이블, 다국어 엔진 - 데이터베이스에서 JavaScript 실행, 바이너리 JSON 데이터 유형, PDB당 Data Guard 물리적 대기(aka 다중 테넌트 Data Guard), PDB당 GoldenGate 변경 캡처, 자체 관리형 인메모리, 인메모리 하이브리드 컬럼형 스캔, SIMD를 사용한 인메모리 벡터 조인, 샤딩 어드바이저 도구, 속성 그래프 시각화 스튜디오, 자동화된 구체화된 뷰, 자동화된 영역 맵, SQL 매크로, 점진적 비밀번호 롤오버 | |
| 오라클 데이터베이스 19c | 19.1.0 // 12.2.0.3 | 2019년 2월 (Exadata) | Active Data Guard DML 리디렉션, 자동 인덱스 생성, 실시간 통계 유지 관리, 개체 저장소에 대한 SQL 쿼리, IoT 데이터 스트림용 인메모리, 하이브리드 파티션 테이블, 자동 SQL 계획 관리, SQL 격리, 제로 다운타임 그리드 인프라 패치, 더 세분화된 보충 로깅, 자동화된 PDB 재배치 | |
| 오라클 데이터베이스 18c | 18.1.0 // 12.2.0.2 | 2018년 2월 (클라우드, Exadata) | 18.17.0 2022년 1월 | 다형성 테이블 함수, Active Directory 통합, 투명 애플리케이션 연속성, 근사 Top-N 쿼리 처리, PDB 스냅샷 캐러셀, 파티션 및 서브파티션의 온라인 병합 |
| 오라클 데이터베이스 12c 릴리스 2 | 12.2.0.1 2017년 3월 | 2016년 8월 (클라우드) | 12.2.0.1 2017년 3월 | 네이티브 샤딩, 제로 데이터 손실 복구 어플라이언스, Exadata Cloud Service, Cloud at Customer |
| 오라클 데이터베이스 12c 릴리스 1 | 12.1.0.1 | 2013년 7월 | 12.1.0.2 2014년 7월 | 멀티테넌트 아키텍처, 인메모리 컬럼 스토어, 네이티브 JSON, SQL 패턴 매칭, 데이터베이스 클라우드 서비스 |
| 오라클 데이터베이스 11g 릴리스 2 | 11.2.0.1 | 2009년 9월 | 11.2.0.4 2013년 8월 | 에디션 기반 재정의, 데이터 마스킹, 하이브리드 컬럼 압축, 클러스터 파일 시스템, Golden Gate 복제, 데이터베이스 어플라이언스 |
| 오라클 데이터베이스 11g 릴리스 1 | 11.1.0.6 | 2007년 9월 | 11.1.0.7 2008년 9월 | Active Data Guard, 보안 파일, Exadata |
| 오라클 데이터베이스 10g 릴리스 2 | 10.2.0.1 | 2005년 7월 | 10.2.0.5 2010년 4월 | Real Application Testing, 데이터베이스 볼트, 온라인 인덱싱, 고급 압축, Data Guard 패스트 스타트 페일오버, 투명 데이터베이스 암호화(TDE) |
| 오라클 데이터베이스 10g 릴리스 1 | 10.1.0.2 | 2003년 | 10.1.0.5 2006년 2월 | 자동화된 데이터베이스 관리, 자동 데이터베이스 진단 모니터, 그리드 인프라, 오라클 ASM, 플래시백 데이터베이스 |
| 오라클9i 데이터베이스 릴리스 2 | 9.2.0.1 | 2002년 | 9.2.0.8 2007년 4월 | 고급 큐잉, 데이터 마이닝, 스트림, 논리적 대기 |
| 오라클9i 데이터베이스 | 9.0.1.0 | 2001년 | 9.0.1.5 2003년 12월 | 오라클 Real Application Clusters (RAC), 오라클 XML DB |
| 오라클8i 데이터베이스 | 8.1.5.0 | 1998년 | 8.1.7.4 2000년 8월 | 네이티브 인터넷 프로토콜 및 자바, 가상 사설 데이터베이스 |
| 오라클8 데이터베이스 | 8.0.3 | 1997년 6월 | 8.0.6 | Recovery Manager, 파티셔닝. Linux용으로 제공되는 첫 번째 버전. |
| 오라클 7.3 | 7.3.0 | 1996년 2월 | 7.3.4 | 객체 관계형 데이터베이스 |
| 오라클 7.2 | 7.2.0 | 1995년 5월 | 공유 서버, XA 트랜잭션, 투명 애플리케이션 페일오버 | |
| 오라클 7.1 | 7.1.0 | 1994년 5월 | 병렬 SQL 실행. Windows NT용으로 제공되는 첫 번째 버전. | |
| 오라클7 | 7.0.12 | 1992년 6월 | PL/SQL 저장 프로시저, 트리거, 분산 2단계 커밋, 공유 커서, 비용 기반 옵티마이저 | |
| Oracle 6.2 | 6.2.0 | 오라클 병렬 서버 | ||
| Oracle v6 | 6.0.17 | 1988년 | 6.0.37 | 행 수준 잠금, 확장성/성능, 온라인 백업 및 복구, B*Tree 인덱스, 컴파일된 프로그램(C 등)에서 실행되는 PL/SQL. Novell Netware 386용으로 제공되는 첫 번째 버전. |
| Oracle v5 | 5.0.22 (5.1.17) | 1985년 | 5.1.22 | 클라이언트/서버 컴퓨팅 및 분산 데이터베이스 시스템 지원. OS/2용으로 제공되는 첫 번째 버전. 상관 서브 쿼리 |
| Oracle v4 | 4.1.4.0 | 1984년 | 4.1.4.4 | 다중 버전 읽기 일관성. MS-DOS용으로 제공되는 첫 번째 버전. |
| Oracle v3 | 3.1.3 | 1983년 | 동시성 제어, 데이터 배포 및 확장성. UNIX를 포함한 다른 운영 체제로의 이식성을 위해 C로 다시 작성됨. | |
| Oracle v2 | 2.3 | 1979년 | 최초의 상용 SQL RDBMS. 기본 SQL 쿼리, 간단한 조인 및 CONNECT BY 조인. PDP-11에서 128KB의 RAM에서 실행되도록 어셈블리 언어로 작성됨. PDP-11 및 VAX/VMS에서 PDP-11 호환 모드로 실행되었습니다. |
3. 특징
오라클 데이터베이스는 행 수준 잠금, 읽기 일관성, 견고성, 이식성을 주요 특징으로 갖는다.
* 행 수준 잠금: 페이지 단위가 아닌 처리 대상 행에만 잠금을 걸어 대기 시간 발생 확률을 줄인다. 잠긴 행에 대한 참조는 가능하므로 처리 대기가 발생하지 않는다.
* 읽기 일관성: SELECT 문을 발행한 시점의 데이터를 읽을 수 있도록 보장한다. 갱신 전 데이터는 UNDO 세그먼트(Oracle8i까지는 롤백 세그먼트, 트랜잭션 로그 또는 갱신 전 이미지라고도 함)에 저장되어 배타적 잠금에 의한 블로킹 없이 데이터를 읽을 수 있다.
* 견고성: REDO 로그(갱신 로그, 저널 로그)의 아카이브와 그 이중화, Real Application Clusters (RAC)를 통한 노드 분산 운용 구성 이중화, 데이터베이스 원격 복제 기능(스탠바이 데이터베이스, DataGuard)을 갖추고 있어 다운타임 감소와 데이터 자산 손실을 방지한다.
* 이식성: 데이터베이스 엔진과 코어 API는 모두 C 언어로, 각종 도구류는 대부분 C 언어 또는 Java로 작성되어 있어, 폭넓은 플랫폼에서 이식성을 가진다. 사용자가 개발하는 응용 소프트웨어도 C 언어, C++, COBOL, Java 및 Windows에서 ODBC 등의 규격에 대응하여 이식성이 좋다.
2015년 1월 현재, 한국 내 최신 릴리스는 Oracle Database 12c Release 1(12.1.0.2)이다.
3.1. 주요 기능
다음은 오라클 데이터베이스의 주요 기능에 대한 설명입니다.
* 행 수준 잠금: 페이지 단위가 아닌 처리 대상 행에만 잠금을 걸어 대기 시간 발생 확률을 줄입니다. 잠긴 행에 대한 참조는 가능하므로 처리 대기가 발생하지 않습니다.
* 읽기 일관성: SELECT를 발행한 시점의 데이터를 읽을 수 있도록 보장합니다. 갱신 전 데이터가 저장되어 있는 UNDO 세그먼트 (Oracle8i까지는 롤백 세그먼트, 트랜잭션 로그 또는 갱신 전 이미지라고도 함)를 참조하여 배타적 잠금에 의한 블로킹 없이 데이터를 읽을 수 있습니다.
* 견고성: REDO 로그 (갱신 로그, 저널 로그)의 아카이브와 그 이중화, Real Application Clusters (RAC)를 통한 노드 분산 운용 구성 이중화, 데이터베이스 원격 복제 기능 (스탠바이 데이터베이스, DataGuard)을 갖추고 있어 다운타임 감소와 데이터 자산 손실을 방지합니다.
* 이식성: 데이터베이스 엔진과 코어 API는 모두 C 언어로, 각종 도구류는 대부분 C 언어 또는 Java로 작성되어 있어, 폭넓은 플랫폼에서 이식성을 가집니다. 사용자가 개발하는 응용 소프트웨어도 C 언어, C++, COBOL, Java 및 Windows에서 ODBC 등의 규격에 대응하여 이식성이 좋습니다.
| 오라클 데이터베이스 버전 | 주요 기능 |
|---|---|
| 23ai | AI 벡터 검색 (새로운 벡터 데이터 유형, 벡터 인덱스 및 벡터 SQL 연산자/함수 포함), JSON 관계 이중성, JSON 스키마 유효성 검사, 트랜잭션 마이크로서비스 지원, OKafka, 운영 속성 그래프, SQL/PGQ 지원, 스키마 권한, 개발자 역할, 데이터베이스 내 SQL 방화벽, TLS 1.3 지원, Azure Active Directory OAuth2 통합, 미들 티어 캐싱용 True Cache, 읽기 가능한 PDB당 대기, 활성-활성 RAFT 기반 복제를 사용한 글로벌 분산 데이터베이스, 실시간 SQL 계획 관리, 우선 순위 트랜잭션, SQL 구문 단순화, 스키마 주석, 데이터 사용 사례 도메인, 열 값 잠금 없는 예약 |
| 21c | 블록체인 테이블, 다국어 엔진 - 데이터베이스에서 JavaScript 실행, 바이너리 JSON 데이터 유형, PDB당 Data Guard 물리적 대기(aka 다중 테넌트 Data Guard), PDB당 GoldenGate 변경 캡처, 자체 관리형 인메모리, 인메모리 하이브리드 컬럼형 스캔, SIMD를 사용한 인메모리 벡터 조인, 샤딩 어드바이저 도구, 속성 그래프 시각화 스튜디오, 자동화된 구체화된 뷰, 자동화된 영역 맵, SQL 매크로, 점진적 비밀번호 롤오버 |
| 19c | Active Data Guard DML 리디렉션, 자동 인덱스 생성, 실시간 통계 유지 관리, 개체 저장소에 대한 SQL 쿼리, IoT 데이터 스트림용 인메모리, 하이브리드 파티션 테이블, 자동 SQL 계획 관리, SQL 격리, 제로 다운타임 그리드 인프라 패치, 더 세분화된 보충 로깅, 자동화된 PDB 재배치 |
| 18c | 다형성 테이블 함수, Active Directory 통합, 투명 애플리케이션 연속성, 근사 Top-N 쿼리 처리, PDB 스냅샷 캐러셀, 파티션 및 서브파티션의 온라인 병합 |
| 12c 릴리스 2 | 네이티브 샤딩, 제로 데이터 손실 복구 어플라이언스, Exadata Cloud Service, Cloud at Customer |
| 12c 릴리스 1 | 멀티테넌트 아키텍처, 인메모리 컬럼 스토어, 네이티브 JSON, SQL 패턴 매칭, 데이터베이스 클라우드 서비스 |
| 11g 릴리스 2 | 에디션 기반 재정의, 데이터 마스킹, 하이브리드 컬럼 압축, 클러스터 파일 시스템, Golden Gate 복제, 데이터베이스 어플라이언스 |
| 11g 릴리스 1 | Active Data Guard, 보안 파일, Exadata |
| 10g 릴리스 2 | Real Application Testing, 데이터베이스 볼트, 온라인 인덱싱, 고급 압축, Data Guard Fast-Start Failover, 투명한 데이터 암호화 |
| 10g 릴리스 1 | 자동화된 데이터베이스 관리, 자동 데이터베이스 진단 모니터, 그리드 인프라, 오라클 ASM, 플래시백 데이터베이스 |
| 9i 데이터베이스 릴리스 2 | 고급 큐잉, 데이터 마이닝, 스트림, 논리적 대기 |
| 9i 데이터베이스 | 오라클 Real Application Clusters (RAC), 오라클 XML DB |
| 8i 데이터베이스 | 네이티브 인터넷 프로토콜 및 자바, 가상 사설 데이터베이스 |
| 8 데이터베이스 | Recovery Manager, 파티셔닝. |
| 7.3 | 객체-관계형 데이터베이스 |
| 7.2 | 공유 서버, XA 트랜잭션, 투명한 애플리케이션 장애 조치 |
| 7.1 | 병렬 SQL 실행. |
| 7 | PL/SQL 저장 프로시저, 트리거, 분산 2단계 커밋, 공유 커서, 비용 기반 옵티마이저 |
| 6.2 | 오라클 병렬 서버 |
| v6 | 행 수준 잠금, 확장성/성능, 온라인 백업 및 복구, B*Tree 인덱스, 컴파일된 프로그램(C 등)에서 실행되는 PL/SQL. |
| v5 | 클라이언트/서버 컴퓨팅 및 분산 데이터베이스 시스템 지원. 상관 서브 쿼리 |
| v4 | 다중 버전 읽기 일관성. |
| v3 | 동시성 제어, 데이터 배포 및 확장성. |
| v2 | 최초의 상용 SQL RDBMS. 기본 SQL 쿼리, 간단한 조인 및 CONNECT BY 조인. |
3.2. 다른 RDBMS와의 비교
관계형 데이터베이스 시장에서 오라클 데이터베이스는 IBM Db2 및 마이크로소프트 SQL 서버와 같은 상용 제품과 경쟁한다. 오라클과 IBM은 유닉스 및 리눅스 플랫폼에서 중급 데이터베이스 시장을 놓고 경쟁하는 경향이 있으며, 마이크로소프트는 마이크로소프트 윈도우 플랫폼에서 중급 데이터베이스 시장을 지배한다. 그러나 오라클과 IBM은 많은 고객을 공유하기 때문에 많은 미들웨어 및 애플리케이션 범주(WebSphere, PeopleSoft, Siebel Systems CRM)에서 서로의 제품을 지원하는 경향이 있으며, IBM의 하드웨어 부서는 성능 최적화 서버 기술(Linux on IBM Z)에 대해 오라클과 긴밀히 협력하고 있다. 틈새 상용 경쟁업체로는 테라데이터 (데이터 웨어하우징 및 비즈니스 인텔리전스 분야), Software AG의 ADABAS, 사이베이스, IBM의 Informix 등이 있다.
클라우드 환경에서 오라클 데이터베이스는 AWS, 마이크로소프트 애저 및 구글 클라우드 플랫폼의 데이터베이스 서비스와 경쟁한다.
점점 더 오라클 데이터베이스 제품은 오픈 소스 소프트웨어 관계형 및 비관계형 데이터베이스 시스템인 PostgreSQL, MongoDB, Couchbase, Neo4j, ArangoDB 등과 경쟁한다. 오라클은 오픈 소스 대안에 더 잘 경쟁하기 위해 MySQL에 InnoDB 코드베이스를 제공하는 공급업체인 Innobase를 인수했으며, 2010년에는 MySQL의 소유주인 선 마이크로시스템즈(Sun Microsystems)를 인수했다. 오픈 소스로 라이선스가 부여된 데이터베이스 제품은 오픈 소스 정의의 법적 조건에 따라 자유롭게 배포할 수 있으며 로열티 또는 기타 라이선스 수수료가 없다.
RDBMS의 사실상 표준으로 여겨지는 제품이지만, 오래된 사양을 고수하여 표준 SQL 규격을 준수하지 않는 부분이 많아 다른 RDBMS와의 호환성이 좋지 않은 경우가 있다. 다른 RDBMS로의 이행 시 문제가 될 수 있는 주요 사항은 다음과 같다.
* 가변 길이 문자열에서 빈 문자열과 NULL을 구분하지 않는다. (정확히는 빈 문자열이 NULL로 취급된다. 예를 들어, 다음 조건식은 거짓이 된다.)
** =
* 비교 연산자가 일반 연산자로 인식되지 않고, WHERE 절 안에서만 사용할 수 있다.
* 테이블이 필요 없는 SELECT 문에서도 반드시 어떤 테이블(보통 DUAL 테이블이 사용된다)을 참조하는 FROM 절을 써야 한다.
* 테이블명이나 열 이름, 그리고 그 별칭 등에 일본어 등 멀티바이트 문자를 사용했을 경우 반드시 ""(큰따옴표)로 묶어야 하며, 그렇지 않으면 SQL의 동작이 보장되지 않고 실제로 비정상적인 동작을 하는 경우가 많다. 프로그래밍 언어 내에서 SQL 문자열을 하드 코딩할 때, ""로 묶는 규칙을 철저히 지키는 것은 매우 어렵다. 따라서 테이블명, 열 이름, 별칭 등에는 영숫자 및 일부 기호(_, $, #)만 사용하는 것이 권장된다.
3.3. 경쟁 제품
관계형 데이터베이스 시장에서 오라클 데이터베이스는 IBM Db2 및 마이크로소프트 SQL 서버와 같은 상용 제품과 경쟁한다. 오라클과 IBM은 유닉스 및 리눅스 플랫폼에서 중급 데이터베이스 시장을 놓고 경쟁하는 경향이 있으며, 마이크로소프트는 마이크로소프트 윈도우 플랫폼에서 중급 데이터베이스 시장을 지배한다. 그러나 오라클과 IBM은 많은 고객을 공유하기 때문에 많은 미들웨어 및 애플리케이션 범주(예: WebSphere, PeopleSoft, Siebel Systems CRM)에서 서로의 제품을 지원하는 경향이 있으며, IBM의 하드웨어 부서는 성능 최적화 서버 기술(예: Linux on IBM Z)에 대해 오라클과 긴밀히 협력하고 있다. 틈새 상용 경쟁업체로는 테라데이터 (데이터 웨어하우징 및 비즈니스 인텔리전스 분야), Software AG의 ADABAS, 사이베이스, IBM의 Informix 등이 있다.
클라우드 환경에서 오라클 데이터베이스는 AWS, 마이크로소프트 애저 및 구글 클라우드 플랫폼의 데이터베이스 서비스와 경쟁한다.
점점 더 오라클 데이터베이스 제품은 오픈 소스 소프트웨어 관계형 및 비관계형 데이터베이스 시스템인 PostgreSQL, MongoDB, Couchbase, Neo4j, ArangoDB 등과 경쟁한다. 오라클은 오픈 소스 대안에 더 잘 경쟁하기 위해 MySQL에 InnoDB 코드베이스를 제공하는 공급업체인 Innobase를 인수했으며, 2010년에는 MySQL의 소유주인 선 마이크로시스템즈(Sun Microsystems)를 인수했다. 오픈 소스로 라이선스가 부여된 데이터베이스 제품은 오픈 소스 정의의 법적 조건에 따라 자유롭게 배포할 수 있으며 로열티 또는 기타 라이선스 수수료가 없다.
오라클 데이터베이스는 대기업 시장에서 높은 점유율을 자랑하지만, 최근에는 다른 벤더가 제공하는 RDB 제품도 다기능화, 고속화가 진행되면서 경쟁이 격화되고 있다. 오라클 데이터베이스의 주요 경쟁 제품은 다음과 같다.
* Microsoft SQL Server: 미국 마이크로소프트의 RDB 제품. 가격이 오라클 데이터베이스보다 비교적 저렴하기 때문에 주로 중소기업용으로 출시되었지만, 다른 마이크로소프트 제품과의 연동을 무기로 대기업에서의 실적도 늘고 있다.
* SAP HANA: 유럽 최대 규모의 소프트웨어 기업 SAP의 데이터베이스 제품. 고속 인 메모리 데이터베이스로 분류되지만, 기간계 시스템 및 정보계 시스템의 플랫폼으로 오라클 데이터베이스를 비롯한 기존 RDB 제품에서 SAP HANA로 대체하는 기업이 급증하고 있다.
* SAP Sybase Adaptive Server Enterprise: 증권 및 은행에서 많이 채용되고 있는 RDB 제품. Sybase사가 제공했지만, SAP가 Sybase를 인수하면서 SAP의 제품 라인업에 추가되어 금융 기관을 대상으로 오라클 데이터베이스와 치열한 경쟁을 벌이고 있다.
* PostgreSQL: 경쟁 벤더의 제품이 아니라 오픈 소스 데이터베이스이지만, 최근 기능이 대폭 확충되어 오라클 데이터베이스의 주요 경쟁 제품으로 부상하고 있다.
4. 에디션
* 엔터프라이즈 에디션
* 스탠다드 에디션
* 스탠다드 에디션 원
* 익스프레스 에디션
* 퍼스널 에디션
* 오라클 데이터베이스 라이트
5. 지원 및 기술 정책
Oracle Database 18c 이전에는 오라클(Oracle Corporation)은 보안 취약점을 해결하기 위해 중요 패치 업데이트(CPU)와 보안 패치 업데이트(SPU) 및 보안 공지를 발표했다. 이러한 릴리스는 분기별로 발행되었으며, 일부 릴리스는 다음 분기별 릴리스 전에 업데이트가 발행되기도 했다.
Oracle Database 18c부터 오라클은 릴리스 업데이트(RU)와 릴리스 업데이트 수정(RUR)을 발표한다. RU는 일반적으로 보안, 회귀(버그), 옵티마이저 및 기능 수정 사항을 포함하며, 기능 확장을 포함할 수도 있다. RUR은 해당 RU의 모든 수정 사항을 포함하지만 새로운 보안 및 회귀 수정 사항만 추가한다. 그러나 새로운 옵티마이저 또는 기능 수정 사항은 포함되지 않는다.
지원 계약을 체결한 사용자 외에는 제품에 아무리 심각한 버그나 보안 구멍 등의 문제가 있더라도 수정 패치를 제공하는 것은 물론 버그 정보 공개도 하지 않는다.
또한 오라클사와의 지원 계약은 기본적으로 제품 구매 당시부터 계속 체결해야 하며, 지원 계약을 일단 해지한 후 재계약하려는 경우에는 이전 해지 시점까지 소급 적용된다. 즉, 해지 시점까지 소급하여 (해지 후 재계약까지의 사이에) 지원 계약을 체결했었다면 발생했을 금액에 더하여 프리미엄을 더한 금액을 전액 오라클사에 납부해야 재계약이 가능하다. 따라서 경우에 따라서는 새로 제품을 구매하는 것이 더 저렴한 경우가 많다. 지원 서비스 비용은 해마다 인상되는 추세이다.
이러한 이유로 지원 계약은 필수적이다(해지 자체는 가능하지만, 해지로 인한 폐해가 매우 크고, 제품을 계속 사용하기 위해서는 해지가 불가능에 가깝다)고 할 수 있다. 또한 지원 계약 체결 여부가 원칙적으로 시스템 단위가 아닌 기업 단위로 변경되어, 일부 시스템만 계약을 체결하는 것이 불가능해졌다.
6. 한국 시장 및 사회적 관점
오라클은 고기능적인 반면, 시스템과 조작 방법을 이해하기가 매우 어렵고, 사용자 인터페이스도 낮다. (CUI에 의한 조작이 주를 이룬다. Oracle Enterprise Manager로 GUI 조작도 가능하지만, CUI에 의한 조작과 비교하면 제한된다.) 때문에 개발 및 운영이 매우 어렵다고 여겨진다. 또한, 대규모 시스템을 구축하는 데 필수적인 Oracle Database Enterprise Edition의 가격은 프로세서(CPU)당 5700으로 꽤 고가이다. 게다가 대규모 시스템에서는 각 옵션 기능(파티셔닝, DataGuard, RAC 등)도 고가이며, 타사 DB의 제품 자체의 라이선스 가격에 필적하는 것도 많다. 향후 라이선스 모델이 변경되어, 기존에 없던 새로운 제한이 설정되고, 제한 해제에 추가 요금이 발생하기도 한다.
이 때문에 오라클은 "고압적이다", "비싸고 어렵다"라는 이미지를 가지고 있다고 일본 오라클의 크로스 인더스트리 총괄 본부장이 밝히고 있다. 특히 그 도입 비용을 꺼려 중소기업에서의 도입률이 좋지 않다고 한다. 다수의 기능을 갖추고 있지만 이용 요금이 부과되는 상용 DB에서, 기본 무료인 오픈 소스 DB로의 이행도 유행하고 있다.
과거 일본 오라클은 이러한 이미지를 불식하고, 중소기업에도 오라클을 판매하기 위해, "비싸고 어렵다"라는 이미지를 도시전설로 정의하고 중소기업을 위한 어필을 강화했다.
7. 관련 제품
* Oracle Database Lite: PDA 등 극소 리소스에서도 가동하는 모바일 데이터베이스. 실제 데이터는 Oracle Database에 저장되어 있다.
* Oracle Application Server: Java EE에 준거한 웹 애플리케이션 서버. 웹 서버에 관해서는 Apache를 Oracle이 개량한 것이다.
* 핵심이 되는 Java EE 컨테이너인 OC4J(Oracle Containers for Java)는 Orion Application Server를 기반으로 한다.
* Oracle Developer: 웹에 대응하는 Oracle 독자적인 4GL 애플리케이션 개발·실행 환경(Forms/Reports)
* Oracle Designer: 리포지토리 기반의 통합 CASE 환경
* Oracle E-Business Suite (구명: Oracle Applications): Oracle Database 실행 환경과 Forms/Reports 환경을 기반으로 한 웹 대응 ERP 제품군
* Oracle JDeveloper: 자바/웹 애플리케이션 개발을 위한 통합 개발 환경 (IDE)
* Oracle Application Express: 브라우저로 만드는 브라우저 웹 애플리케이션 개발 툴
* Oracle Collaboration Suite: 그룹웨어, 파일 서버
* Oracle Content Management SDK
* Oracle Identity Management
* Oracle OLAP Server: H-OLAP (R-OLAP과 M-OLAP의 하이브리드형 OLAP) 서버.
* Oracle BPEL Process Manager 비즈니스 프로세스 모델링 제품
* Oracle Secure Enterprise Search: 기업 내 콘텐츠를 검색하는 제품. 사용자 액세스 권한을 제어하면서 구글과 같은 기능을 할 수 있다.
* Oracle TimesTen In-Memory Database 인 메모리 데이터베이스