Comparison of relational database management systems: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Altered title. Add: date, website. Removed parameters. | Use this bot. Report bugs. | Suggested by Ost316 | #UCB_toolbar
Latest Mimer SQL release is v11.0.9D.
 
(42 intermediate revisions by 19 users not shown)
Line 63:
| 2023-11-14
| {{free|[[Apache license|Apache License]]}}
| {{Yes}}<ref>[{{Cite web|url=https://issues.apache.org/jira/projects/DERBY Derby |title=- ASF JIRA]|website=issues.apache.org}}</ref>
|-
! [[Clustrix]]DB
Line 76:
| Cockroach Labs
| 2015
| v20v24.21.80
| 20212024-0405-2320
| {{free|BSL,CCL,MIT,BSD}}
| {{Yes}}<ref>{{Cite web |url=https://github.com/cockroachdb/cockroach/issues |title=cockroachdb Issue tracker |website=[[GitHub]] |access-date=2021-05-03 |archive-date=2021-05-06 |archive-url=https://web.archive.org/web/20210506023814/https://github.com/cockroachdb/cockroach/issues |url-status=dead }}</ref>
Line 87:
| 2023-01-31
| {{free|[[Apache license|Apache License]] 2.0, BSD license for APIs and GUI tools}}
| {{Yes}}<ref>[{{Cite web|url=http://jira.cubrid.org/browse/TOOLS-4308?jql=|title=Issue CUBRIDNavigator /- JiraCUBRID IssueBug trackerTracking for CUBRID]System|website=jira.cubrid.org}}</ref>
|-
! [[CA Datacom|Datacom]]
Line 182:
| 2021-10-21
| {{free|[[BSD license|BSD]]}}
| {{Yes}}<ref>[{{Cite web|url=https://sourceforge.net/p/hsqldb/bugs/ |title=HyperSQL Database Engine (HSQLDB) / Bugs]|website=sourceforge.net}}</ref>
|-
! [[H2 (DBMS)|H2]]
| H2 Software
| 2005
| 2.13.214232
| 20222024-0608-1312
| {{free|[[Eclipse Public License|EPL]] and modified [[Mozilla Public License|MPL]]}}
| {{Yes}}<ref>[{{Cite web|url=https://github.com/h2database/h2database/issues|title=Issues h2database· issues]h2database/h2database|website=GitHub}}</ref>
|-
! [[Informix Dynamic Server]]
| [[IBM]] / [[HCLTech|HCL Technologies]]
| <span style="display:none">1981????</span>1980
| 1415.100.xC90.1
| 2022-102025-03-15
| {{Proprietary}}
| {{No}}
|-
! [[Ingres (database)|Ingres]]
| [[Actian(HCLSoftware)]]
| 1974
| 1112.20.0<ref>{{cite web
| title = Actian X & Ingres - Lifecycle Dates
| url = https://communities.actian.com/s/supportservices/lifecycle-dates/actian-x-ingres
}}</ref>
| 20222024-05-06
| {{Proprietary}}
| {{partial|[[GNU General Public License|GPL]] and [[Proprietary software|Proprietary]]}}
| {{No}}
|-
Line 244:
| title = MariaDB licenses
}}</ref>}}
| {{Yes}}<ref>[{{Cite web|url=https://jira.mariadb.org/projects/MDEV/issues MariaDB |title=- JIRA]Jira|website=jira.mariadb.org}}</ref>
|-
! [[MaxDB]]
Line 252:
| 2014
| {{Proprietary}}
| {{Yes}}<ref>[http{{Cite web|url=https://maxdb.sap.com/webpts /|title=MaxDB PTS - Problem Tracking]|website=maxdb.sap.com}}</ref>
|-
![[SingleStore|SingleStore (formerly MemSQL)]]
Line 297:
| Mimer Information Technology
| 1978
| 11.0.8D9D
| 20242025-0507-1716
| {{Proprietary}}
| {{No}}
|-
! [[MonetDB]]
| MonetDB SolutionsFoundation <ref>{{Cite web|url=https://www.monetdbsolutionsmonetdb.comorg/about-us/monetdb-foundation//|title = MonetDB SolutionsFoundation| date=4 April 2023 }}</ref>
| 2004
| Dec2023Mar2025 <ref>{{Cite web|url=https://www.monetdb.org/release-notes/|title = MonetDB Latest Release| date=2127 DecemberMarch 20232025 }}</ref>
| 20232025-1203-2827
| {{free|Mozilla Public License, version 2.0<ref>{{Citation
| url = https://www.monetdb.org/about-us/privacy-and-legals/
| publisher = MonetDB B.V.Foundation
| title = MonetDB License MPL2.0
| date = 8 February 2022
}}</ref>}}
| {{Yes}}<ref>{{Cite web |url=https://github.com/MonetDB/MonetDB/issues |title=MonetDB Issues |website=[[GitHub]] |access-date=2021-06-08 |archive-date=20212025-05-13 |archive-url=https://web.archive.org/web/20210513162053/https://github.com/MonetDB/MonetDB/issues |url-status=dead01 }}</ref>
|-
! [[mSQL]]
Line 339:
| {{wikidata|qualifier|raw|Q850|P548=Q2804309|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q850|P548=Q2804309|P348|P577}}}}
| {{partial|[[GNU General Public License|GPL]] v2 or [[Proprietary software|Proprietary]]}}
| {{Yes}}<ref>[{{Cite web|url=https://bugs.mysql.com/ |title=MySQL Bugs]|website=bugs.mysql.com}}</ref>
|-
! [[NexusDB]]
Line 424:
| [[Actian]]
| 1982
| v15v16
| 2024-06-30
| 2021
| {{Proprietary}}
| {{No}}
Line 445:
| PostgreSQL Global Development Group
| 1989-06
| 1617.14
| 20232025-1102-0921<ref>{{Cite web
|url=https://www.postgresql.org/about/news/postgresql-161174-155168-14101512-1313-12171417-and-11221320-released-27493018/
|title=PostgreSQL 17.4, 16.18, 15.512, 14.10, 13.13, 12.17, and 1113.2220 Released!
|publisher=The PostgreSQL Global Development Group
|date=20232025-1102-0920
|website=PostgreSQL
|access-date=20232025-1102-2921}}</ref>
| {{free|[[Postgres License]]}}<ref>[{{Cite web|url=https://www.postgresql.org/about/licence/ Postgres|title=PostgreSQL: License]|website=www.postgresql.org}}</ref>
| {{No}}<ref>[{{Cite web|url=https://lwn.net/Articles/660468/ |title=A bug tracker for PostgreSQL? [LWN.net]|website=lwn.net}}</ref>
|-
! [[R:Base]]
Line 502:
| {{wikidata|qualifier|raw|Q319417|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q319417|P348|P577}}}}
| {{free|[[Public ___domain]]}}
| {{Yes}}<ref>[http{{Cite web|url=https://www.sqlite.org/src/reportlist |title=SQLite: Ticket Main Menu]|website=www.sqlite.org}}</ref>
|-
! [[SQream DB]]
Line 509:
| 2.1<ref>{{Citation
| url = http://docs.sqream.com/2.1/manual/sql_reference.html
| publisher = SQream Technologies
| title = SQream DB Version 2.1 SQL Reference Guide
| access-date = 2018-02-12
| archive-date = 2018-02-12
| archive-url = https://web.archive.org/web/20180212201639/http://docs.sqream.com/2.1/manual/sql_reference.html
| url-status = dead
}}</ref>
| 2018-01-15
Line 557 ⟶ 561:
| {{No}}
|-
! [[Actian Vector|Vector]]
| [[Actian(HCLSoftware)]]
| 2010
| 7.0<ref>{{cite web
| title = Vector - Lifecycle Dates
| url = https://communities.actian.com/s/supportservices/lifecycle-dates/actian-x-ingres
}}</ref>
| 2024-12-17
| {{Proprietary}}
| {{No}}
|-
 
! [[YugabyteDB]]
| Yugabyte, Inc.
Line 565 ⟶ 581:
| {{Yes}}<ref>{{Cite web|url=https://github.com/YugaByte/yugabyte-db/issues|title=Issues · yugabyte/Yugabyte-db|website=[[GitHub]]}}</ref>
|-
! [[Actian Zen (PSQL)]]
| [[Actian]]
| 1982
| v16
| 2024-06-30
| {{Proprietary}}
| {{No}}
|-
 
!
! Maintainer
Line 756 ⟶ 781:
| {{no}}
| {{yes}}<ref>{{Cite web|url=https://www.firebirdsql.org/en/firebird-3-0/|title = Firebird: The true open source database for Windows, Linux, Mac OS X and more}}</ref>
| {{noyes}}
|-
! [[HSQLDB]]
Line 784 ⟶ 809:
! [[Informix Dynamic Server]]
| {{yes}}
| {{no}}
| {{yes}}
| {{yesno}}
| {{yes}} ([[AIX (operating system)|AIX]])
| {{yes}}
| {{no}}
| {{no}}
Line 802 ⟶ 827:
| {{no}}
| {{partial}}
| {{yes}}<ref>{{Cite web|url=https://docs.actian.com/ingres/11.0/index.html#page/Ing_Install/Install_Ingres_for_OpenVMS.htm|title=Ingres 11.0 Documentation|website=docs.actian.com}}</ref>
| {{no}}
| {{no}}
Line 1,305 ⟶ 1,330:
| {{yes}}
| {{yes}}
| {{yes}} (Row-level locking) <ref>[{{Cite web|url=https://db.apache.org/derby/docs/10.14/devguide/cdevconcepts23810.html Derby Developer's Guide (10.14)>|title=Lock granularity]|website=db.apache.org}}</ref>
| {{dunno}}
| {{yes}}
Line 1,454 ⟶ 1,479:
| {{yes}}<sup id="feat_2_back">[[#feat 2|2]]</sup>
| {{yes}}
| {{yes}}<sup>[[#feat 2|2]]</sup> except for [[Data Definition Language|DDL]]<ref name="Transactional DDL in PostgreSQL">[{{Cite web|url=https://wiki.postgresql.org/wiki/Transactional_DDL_in_PostgreSQL:_A_Competitive_Analysis |title=Transactional DDL in PostgreSQL: A Competitive Analysis] - PostgreSQL wiki|website=wiki.postgresql.org}}</ref><ref name="Transactional DDL in MariaDB">[{{Cite web|url=https://jira.mariadb.org/browse/MDEV-4259|title=[MDEV-4259] Transactionaltransactional DDL in- MariaDB]Jira|website=jira.mariadb.org}}</ref>
| {{yes}} (Row-level locking)
| {{yes}}
Line 1,495 ⟶ 1,520:
| {{yes}}
| {{yes}}
| {{yes}} (Row-level locking)<ref>[{{Cite web|url=https://technet.microsoft.com/en-us/library/jj856598.aspx |title=SQL Server Transaction Locking and Row Versioning Guide]}}</ref>
| {{yes}}
| {{yes}}
Line 1,565 ⟶ 1,590:
| {{yes}}
| {{yes}} except for [[Data Definition Language|DDL]]<ref name="Transactional DDL in PostgreSQL" />
| {{yes}} (Row-level locking)<ref>[{{Cite web|url=http://www.dba-oracle.com/t_locks_row_level_locking_update.htm Oracle Row Lock and Row Level Locking]|title=dba-oracle.com}}</ref>
| {{yes}}
| {{yes}}
Line 1,609 ⟶ 1,634:
| {{yes}}
| [[API]] & [[graphical user interface|GUI]] & [[SQL]]
| {{No}}<ref>[{{Cite news|url=https://www.postgresql.org/message-id/9799.1302719551%40sss.pgh.pa.us|title=Re: BUG #5974: UNION construct type cast gives poor error message]|first=Tom|last=Lane|date=April 13, 2011|website=PostgreSQL Mailing List Archives}}</ref>
|-
! [[SAP HANA]]
Line 1,635 ⟶ 1,660:
| {{yes}}
| {{yes}}
| {{yes}} (Row-level locking)<ref>[{{Cite web|url=https://help.sap.com/viewer/e38b2f6217f24bdb90a3ff8ae57b1dd5/17.0/en-US/3bee03b56c5f1014ab68e3eff32515dd.html |title=SAP SQLHelp Anywhere Reference - Types of Lock]Portal|website=help.sap.com}}</ref>
| {{yes}}<ref>[{{Cite web|url=https://help.sap.com/viewer/e38b2f6217f24bdb90a3ff8ae57b1dd5/17.0/en-US/3bf0656e6c5f1014bb32fe2f7ce00302.html |title=SAP SQL AnywhereHelp Reference - Snapshot Isolation]{{dead linkPortal|datewebsite=July 2024help.sap.com}}</ref>
| {{yes}}
| [[API]] & [[graphical user interface|GUI]] & [[HTTP|HTTP(S)]] (REST & SOAP)<ref>{{Cite web|url=https://help.sap.com/viewerdocs/r/98ad9ec940e2465695685d98e308dff5/17.0/en-US/3bd460b56c5f10148922c11d39abc0b3.html | title=SAP SQLHelp Anywhere Reference - HTTP Web ServicesPortal|website=help.sap.com}}</ref> & [[SQL]]
| {{Yes}}
|-
Line 1,655 ⟶ 1,680:
| {{yes}}
| {{yes}}
| {{no}} (Database-level locking)<ref>[{{Cite web|url=https://www.sqlite.org/lockingv3.html |title=File Locking And Concurrency In SQLite Version 3]|website=www.sqlite.org}}</ref>
| {{no}}
| {{optional}}<ref>[http://www.sqlite.org/faq.html#q18 SQLite Full Unicode support is optional and not installed by default in most systems] (like [[Android (operating system)|Android]], [[Debian]]...)</ref>
Line 1,685 ⟶ 1,710:
| {{yes}}
| {{yes}} except for [[Data Definition Language|DDL]]<ref name="Transactional DDL in PostgreSQL"/>
| {{yes}} (Row-level locking)<ref>[{{Cite web|url=https://docs.pingcap.com/tidb/stable/basic-features /|title=TiDB Features]|website=docs.pingcap.com}}</ref>
| {{yes}}
| {{yes}}
Line 1,856 ⟶ 1,881:
| 4 GB
| 10,000,000
| 1 billion characters, {{10^|-400}} to {{10^|400}}, +-±
| 0001-01-01
| 4000-12-31
Line 1,863 ⟶ 1,888:
! style="text-align:left" | [[Firebird (database server)|Firebird]]
| Unlimited<sup id="limit_1_back">[[#limit 1|1]]</sup>
| ~32≈32 TB
| 65,536 B
| Depends on data types used
| 32 GB
| 32,767 B
| 64128 bits
| 100
| 32768
| 3163
|-
! style="text-align:left" | [[HSQLDB]]
Line 1,910 ⟶ 1,935:
|-
! style="text-align:left" | [[Informix Dynamic Server]]
| ~128≈0.5 PBYB<sup id="limit_12_back">[[#limit 12|12]]</sup>
| ~128 PB≈0,5YB<sup id="limit_12_back">[[#limit 12|12]]</sup>
| 32,765 bytes (exclusive of large objects)
| 32,765
| 4 TB
| 32,765<sup id="limit_14_back">[[#limit 14|14]]</sup>
| 32,765
| 10<sup>125</sup> <sup id="limit_13_back">[[#limit 13|13]]</sup>
| 01/01/0001<sup id="limit_10_back">[[#limit 10|10]]</sup>
Line 1,935 ⟶ 1,960:
! style="text-align:left" | [[InterBase]]
|Unlimited<sup id="limit_1_back">[[#limit 1|1]]</sup>
| ~32≈32 TB
| 65,536 B
| Depends on data types used
Line 2,169 ⟶ 2,194:
| 254
|-
! style="text-align:left" | [[SQL Anywhere]]<ref>[{{Cite web|url=https://help.sap.com/viewer/61ecb3d4d8be4baaa07cc4db0ddb5d0a/17.0/en-US/813836f16ce210149e89f219dc353b7e.html |title=SAP SQL Anywhere - Physical limitations on size and number of databases]{{deadHelp linkPortal|datewebsite=July 2024help.sap.com}}</ref>
| 104 TB (13 files, each file up to 8 TB (32 KB pages))
| Limited by file size
Line 2,274 ⟶ 2,299:
* <cite id="limit_10">[[#limit 10 back|Note (10):]]</cite> Informix DATETIME type has adjustable range from YEAR only through 1/10000th second. DATETIME date range is 0001-01-01 00:00:00.00000 through 9999-12-31 23:59:59.99999.
* <cite id="limit_11">[[#limit 11 back|Note (11):]]</cite> Since version 12c. Earlier versions support up to {{val|4000|u=B}}.
* <cite id="limit_12">[[#limit 12 back|Note (12):]]</cite> The {{val|1280.5|u=PBYB}} limit refers to the storage limit of a single Informix server instance beginning with v15.0. Informix v12.10 and later versions support using sharding techniques to distribute a table across multiple server instances. A distributed Informix database has no upper limit on table or database size.
* <cite id="limit_13">[[#limit 13 back|Note (13):]]</cite> Informix DECIMAL type supports up to 32 decimal digits of precision with a range of {{10^|-130}} to {{10^|125}}. Fixed and variable precision are supported.
* <cite id="limit_14">[[#limit 14 back|Note (14):]]</cite> The LONGLVARCHAR type supports strings up to 4TB.
 
==Tables and views==
Line 2,458 ⟶ 2,484:
! [[Materialized view]]
|}
* <cite id="tb_1">[[#tb 1 back|Note (1):]]</cite> Server provides tempdb, which can be used for public and private (for the session) temp tables.<ref>{{Citation
 
<cite id="tb_1">[[#tb 1 back|Note (1):]]</cite> Server provides tempdb, which can be used for public and private (for the session) temp tables.<ref>{{Citation
| url = http://sybooks.sybase.com/onlinebooks/group-as/asg1250e/sag/@Generic__BookTextView/3225;
| archive-url = https://web.archive.org/web/20051023153932/http://sybooks.sybase.com/onlinebooks/group-as/asg1250e/sag/@Generic__BookTextView/3225;
Line 2,467 ⟶ 2,492:
| title = Online books
}}</ref>
* <cite id="tb_2">[[#tb 2 back|Note (2):]]</cite> Materialized views are not supported in Informix; the term is used in IBM's documentation to refer to a temporary table created to run the view's query when it is too complex, but one cannot for example define the way it is refreshed or build an index on it. The term is defined in the Informix Performance Guide.<ref>{{Citation
 
<cite id="tb_2">[[#tb 2 back|Note (2):]]</cite> Materialized views are not supported in Informix; the term is used in IBM's documentation to refer to a temporary table created to run the view's query when it is too complex, but one cannot for example define the way it is refreshed or build an index on it. The term is defined in the Informix Performance Guide.<ref>{{Citation
| publisher = IBM
| url = http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=/com.ibm.perf.doc/ids_prf_534.htm
Line 2,474 ⟶ 2,498:
| title = Informix Performance Guide
}}</ref>
* <cite id="tb_4">[[#tb 4 back|Note (4):]]</cite> Materialized views can be emulated using [[stored procedure]]s and triggers.<ref>{{Citation
 
<cite id="tb_4">[[#tb 4 back|Note (4):]]</cite> Materialized views can be emulated using [[stored procedure]]s and triggers.<ref>{{Citation
| publisher = Red Noize
| series = Pure
Line 2,501 ⟶ 2,524:
! [[Full text search|Full-text]]
! [[Spatial index|Spatial]]
! [[Forest of Trees|FOT]] Index
! Duplicate index prevention
|-
Line 2,666 ⟶ 2,689:
| {{no}}
| {{yes}}
| {{noyes}}
| {{yes}}
| {{no}}
Line 2,730 ⟶ 2,753:
| {{yes}}
| {{yes}}<ref>{{Citation
| url = https://www.ibm.com/docs/en/informix-servers/14.10?topic=considerations-improve-query-performance-forest-trees-index
| publisher = IBM
| url = https://www.ibm.com/docs/en/informix-servers/15.0.0?topic=indexes-forest-trees
| title = Forest of Trees Index
| seriestitle = Informix Infocenter15.0.0 online documentation
| date = 2019 JulyNovember 20222024
}}</ref>
| {{yes}}
|-
Line 3,045 ⟶ 3,067:
}}</ref>
| {{dunno}}
| {{yes}}<ref>[{{Cite web|url=https://www.techonthenet.com/oracle/errors/ora01408.php |title=Oracle / PLSQL: ORA-01408 Error Message]|website=www.techonthenet.com}}</ref>
|-
! style="text-align:left" | [[Oracle Rdb]]
Line 3,113 ⟶ 3,135:
| style="background:#ffd;"| PostGIS<ref>{{Citation
| publisher = The PostGIS Development Group
| series = PostGIS Manual
| url = https://postgis.net/docs/postgis_usage.html#build-indexes
| title = Building Spatial Indexes
| access-date = 2021-05-13
| archive-date = 2021-05-03
| archive-url = https://web.archive.org/web/20210503205533/https://postgis.net/docs/postgis_usage.html#build-indexes
| url-status = dead
}}</ref>
| {{no}}
Line 3,163 ⟶ 3,189:
|-
! style="text-align:left" | [[SQLite]]
| {{yes}}<ref>[{{Cite web|url=http://www.sqlite.org/rtree.html |title=The SQLite R*Tree Module]|website=www.sqlite.org}}</ref>
| {{no}}
| {{yes}}<ref>[http{{Cite web|url=https://sqlite.org/expridx.html|title=Indexes SQLiteOn Expression Indexes]Expressions|website=sqlite.org}}</ref>
| {{yes}}
| {{no}}
Line 3,171 ⟶ 3,197:
| {{no}}
| {{no}}
| {{yes}}<ref>[http{{Cite web|url=https://www.sqlite.org/fts5.html |title=SQLite FTS5 Extension]|website=www.sqlite.org}}</ref>
| style="background:#ffd;"| SpatiaLite<ref>{{Citation
| url = http://www.gaia-gis.it/spatialite/
Line 3,243 ⟶ 3,269:
! [[Full text search|Full-text]]
! [[Spatial index|Spatial]]
! [[Forest of Trees|FOT]] Index
! Duplicate index prevention
|}
* <cite id="idx_1">[[#idx 1 back|Note (1):]]</cite> The users need to use a function from freeAdhocUDF library or similar.<ref>{{Citation
 
<cite id="idx_1">[[#idx 1 back|Note (1):]]</cite> The users need to use a function from freeAdhocUDF library or similar.<ref>{{Citation
| url = http://www.udf.adhoc-data.de/index_eng.html
| publisher = Ad Hoc Data
Line 3,256 ⟶ 3,281:
| url-status = dead
}}</ref>
* <cite id="idx_2">[[#idx 2 back|Note (2):]]</cite> Can be implemented for most data types using expression-based indexes.
 
* <cite id="idx_2idx_3">[[#idx 23 back|Note (23):]]</cite> Can be implementedemulated forby mostindexing dataa typescomputed using expression-based indexes.column<ref>{{Citation
 
<cite id="idx_3">[[#idx 3 back|Note (3):]]</cite> Can be emulated by indexing a computed column<ref>{{Citation
| series = MSDN
| chapter-url = http://msdn.microsoft.com/library/default.asp?url=/library/en-us/createdb/cm_8_des_05_8os3.asp
Line 3,280 ⟶ 3,303:
| page = 300
}}</ref>).
* <cite id="idx_4">[[#idx 4 back|Note (4):]]</cite> Used for InMemory ColumnStore index, temporary hash index for hash join, Non/Cluster & fill factor.
 
* <cite id="idx_4idx_5">[[#idx 45 back|Note (45):]]</cite> UsedInnoDB forautomatically InMemorygenerates ColumnStore index, temporaryadaptive hash index for hash join, Non/Cluster & fill factor.<ref>{{Citation
 
<cite id="idx_5">[[#idx 5 back|Note (5):]]</cite> InnoDB automatically generates adaptive hash index<ref>{{Citation
| publisher = Oracle
| chapter-url = http://dev.mysql.com/doc/refman/5.0/en/innodb-adaptive-hash.html
Line 3,290 ⟶ 3,311:
| series = Development documentation
}}</ref> entries as needed.
* <cite id="idx_6">[[#idx 6 back|Note (6):]]</cite> Can be implemented using Function-based Indexes in Oracle 8i and higher, but the function needs to be used in the sql for the index to be used.
 
* <cite id="idx_6idx_7">[[#idx 67 back|Note (67):]]</cite> CanA bePostgreSQL implementedfunctional usingindex Function-based Indexes in Oracle 8i and higher, but the function needs tocan be used into the sql forreverse the indexorder toof bea usedfield.
* <cite id="idx_10">[[#idx 10 back|Note (10):]]</cite> B+ tree and full-text only for now.
 
* <cite id="idx_7idx_11">[[#idx 711 back|Note (711):]]</cite> AR-Tree indexing available in base edition with PostgreSQLLocator functionalbut indexsome canfunctionality berequires usedPersonal toEdition reverseor theEnterprise orderEdition ofwith aSpatial fieldoption.
* <cite id="idx_12">[[#idx 12 back|Note (12):]]</cite> FOT or Forest of Trees indexes is a type of B-tree index consisting of multiple B-trees which reduces contention in multi-user environments.<ref>{{Citation
 
| publisher = IBM
<cite id="idx_10">[[#idx 10 back|Note (10):]]</cite> B+ tree and full-text only for now.
| chapter-url =https://www.ibm.com/docs/en/informix-servers/15.0.0?topic=indexes-forest-trees =
 
| title = Informix 15.0 online documentation
<cite id="idx_11">[[#idx 11 back|Note (11):]]</cite> R-Tree indexing available in base edition with Locator but some functionality requires Personal Edition or Enterprise Edition with Spatial option.
| chapter = Forest of Trees
| series = Development documentation
}}</ref>
 
==Database capabilities==
Line 3,304 ⟶ 3,328:
! style="width:16em" |
! [[Union (SQL)|Union]]
! [[Intersect (sqlSQL)|Intersect]]
! [[Except (SQL)|Except]]
! [[Inner join]]s
Line 3,507 ⟶ 3,531:
| {{yes}}
| {{yes}}
| {{yes}}<ref name="New Features in HyperSQL 2.2">[{{Cite web|url=http://hsqldb.org/web/features200.html|title=HyperSQL 2.5 New Features in HyperSQL 2|website=hsqldb.2]org}}</ref>
| {{yes}}
| {{yes}}
Line 3,524 ⟶ 3,548:
| {{no}}
| {{yes}}
| experimental<ref>[{{Cite web|url=http://h2database.com/html/advanced.html#recursive_queries H2 > |title=Advanced > Recursive Queries]|website=h2database.com}}</ref>
| {{yes}}<ref>[{{Cite web|url=https://www.h2database.com/html/functions.html H2 |title=Functions]|website=www.h2database.com}}</ref>
| {{dunno}}
| {{dunno}}
Line 3,541 ⟶ 3,565:
| {{yes}}
| {{yes}}
| {{yes}}<ref>[{{Cite web|url=http://portal.acm.org/citation.cfm?id=382443 |title=Informix parallel data query (PDQ)]{{dead link|first=David|last=Clay|date=JulyJanuary 1, 1993|publisher=IEEE Computer Society Press|pages=71–73|via=ACM Digital 2024Library}}</ref>
| {{dunno}}
 
Line 3,752 ⟶ 3,776:
! style="text-align:left" | [[MySQL]]
| {{yes}}
| {{yes|8+}}<ref name="intersect_in_mysql">{{Cite web |url=https://dev.mysql.com/doc/refman/8.0/en/intersect.html |title=INTERSECT |website=mysql.com}}</ref>
| {{no}}
| {{yes|8+}}<ref name="except_in_mysql">{{Cite web |url=https://dev.mysql.com/doc/refman/8.0/en/except.html |title=EXCEPT |website=mysql.com}}</ref>
| {{no}}
| {{yes}}
| {{yes}}
Line 3,925 ⟶ 3,949:
| {{yes}}
| {{yes}}
| {{yes|3.43.0+}}<ref>{{Cite web|url=https://www.sqlite.org/releaselog/3_43_0.html|title=SQLite Release 3.43.0 On 2023-08-24|website=sqlite.org}}</ref>
| {{Depends|LEFT only}}
| {{yes}}
| {{no}}
| {{yes}}
| {{yes|3.8.3+}}<ref>[http{{Cite web|url=https://sqlite.org/lang_with.html SQLite Query Language:|title=The WITH clause]Clause|website=sqlite.org}}</ref>
| {{yes|3.25+}}<ref>[{{Cite web|url=https://sqlite.org/windowfunctions.html |title=Window Functions]|website=sqlite.org}}</ref>
| {{no}}
| {{no}}<ref name="system-versioning"/>
Line 3,996 ⟶ 4,020:
 
|}
* <cite id="capa_1">[[#capa 1 back|Note (1):]]</cite> Recursive CTEs introduced in 11gR2 supersedes similar construct called CONNECT BY.
 
<cite id="capa_1">[[#capa 1 back|Note (1):]]</cite>
Recursive CTEs introduced in 11gR2 supersedes similar construct called CONNECT BY.
 
==Data types==
Line 4,125 ⟶ 4,147:
}}</ref>
| {{dunno}}
| {{mono|INT128}}, {{mono|INT64}}, {{mono|INTEGER}}, {{mono|SMALLINT}}
| {{mono|DOUBLE}}, {{mono|FLOAT}}
| {{mono|DECIMAL}}, {{mono|NUMERIC}}, {{mono|DECIMAL}}(1838, 4), {{mono|DECIMAL}}(10, 4)
| {{mono|BLOB}}, {{mono|CHAR}}, {{mono|CHAR(''x'')}} {{mono|CHARACTER}} {{mono|SET}} {{mono|UNICODE_FSS}}, {{mono|VARCHAR(''x'')}} {{mono|CHARACTER}} {{mono|SET}} {{mono|UNICODE_FSS}}, {{mono|VARCHAR}}
| {{mono|BLOB}} {{mono|SUB_TYPE}} {{mono|TEXT}}, {{mono|BLOB}}
| {{mono|DATE}}, {{mono|TIME}}, {{mono|TIMESTAMP}} (without time zone and with time zone)
| {{mono|BOOLEAN}}
| {{mono|TIMESTAMP}}, {{mono|TIMESTAMP WITH TIME ZONE}}, {{mono|CHAR}}(38), User defined types (Domains)
|-
! style="width:16em" |
Line 4,167 ⟶ 4,189:
| url = http://www-05.ibm.com/e-business/linkweb/publications/servlet/pbi.wss?CTY=US&FNC=SRX&PBL=SC23-7750-04
| title = IBM Informix Guide to SQL: Reference, v11.50 (SC23-7750-04)
| access-date = August20 7,August 20132001
| access-date = August 7, 2013
}}</ref>
| Static + {{mono|UDT}}
Line 4,173 ⟶ 4,196:
| {{mono|SMALLFLOAT}} (32-bit), {{mono|FLOAT}} (64-bit)
| {{mono|DECIMAL}} (32 decimal digits float/fixed, range {{10^|130}} to +{{10^|125}}), {{mono|MONEY}}
| {{mono|CHAR}}, {{mono|VARCHAR}}, {{mono|NCHAR}}, {{mono|NVARCHAR}}, {{mono|LVARCHAR}}, {{mono|CLOB}}, {{mono|TEXT}}, {{mono|LONGLVARCHAR}}
| {{mono|TEXT}}, {{mono|BYTE}}, {{mono|BLOB}}, {{mono|CLOB}}
| {{mono|DATE}}, {{mono|DATETIME}}, {{mono|INTERVAL}}
| {{mono|BOOLEAN}}
| {{mono|SET}}, {{mono|LIST}}, {{mono|MULTISET}}, {{mono|ROW}}, {{mono|TIMESERIES}}, {{mono|SPATIAL}}, {{mono|GEODETIC}}, {{mono|NODE}}, {{mono|JSON}}, {{mono|BSON}}, {{mono|USER}} {{mono|DEFINED}} {{mono|TYPES}}
|-
! style="text-align:left" | [[Ingres (database)|Ingres]]<ref name="ingres-datatypes">{{Citation
|publisher | publisher = Ingres
|series | series = Documents
| chapter-url = http://docs.ingres.com/Ingres/9.3/SQL%20Reference%20Guide/understandingsqldatatypes.htm#o3623
|title | title = SQL 9.3 Reference Guide
|chapter | chapter = 3: Understanding SQL Data Types
|access-date = 2009-11-16
}}</ref>
|archive-date = 2011-07-13
|archive-url = https://web.archive.org/web/20110713033627/http://docs.ingres.com/Ingres/9.3/SQL%20Reference%20Guide/understandingsqldatatypes.htm#o3623
|url-status = dead
}}</ref>
| Static
| {{mono|TINYINT}} (8-bit), {{mono|SMALLINT}} (16-bit), {{mono|INTEGER}} (32-bit), {{mono|BIGINT}} (64-bit)
Line 4,275 ⟶ 4,302:
| {{mono|FLOAT}}, {{mono|FLOAT(''n'')}}, {{mono|REAL}}, {{mono|DOUBLE}}, {{mono|DOUBLE}} {{mono|PRECISION}}
| {{mono|DECIMAL}}, {{mono|NUMERIC}}
| {{mono|CHAR}}, {{mono|CHAR(''n'')}}, {{mono|VARCHAR}}, {{mono|VARCHAR(''n'')}}, {{mono|CLOB}}, {{mono|CLOB(''n'')}}, {{mono|TEXT}}, {{mono|STRING}}
| {{mono|BLOB}}, {{mono|BLOB(''n'')}}
| {{mono|DATE}}, {{mono|TIME}}, {{mono|TIME}} {{mono|WITH}} {{mono|TIME}} {{mono|ZONE}}, {{mono|TIMESTAMP}}, {{mono|TIMESTAMP}} {{mono|WITH}} {{mono|TIME}} {{mono|ZONE}}, {{mono|INTERVAL}} {{mono|YEAR}}, {{mono|INTERVAL}} {{mono|MONTH}}, {{mono|INTERVAL}} {{mono|DAY}}, {{mono|INTERVAL}} {{mono|HOUR}}, {{mono|INTERVAL}} {{mono|MINUTE}}, {{mono|INTERVAL}} {{mono|SECOND}}
| {{mono|BOOLEAN}}
| {{mono|JSON}}, {{mono|JSON(''n'')}}, {{mono|URL}}, {{mono|URL(''n'')}}, {{mono|INET}}, {{mono|UUID}}, {{mono|GIS}} data types ({{mono|Geometry, Point, Curve, LineString, Surface, Polygon, GeometryCollection, MultiPoint, MultiCurve, MultiLineString, MultiSurface, MultiPolygon}}), User Defined Types
Line 4,516 ⟶ 4,543:
|-
! style="width:16em" |
! [[Data Domain___domain]]
! [[Cursor (databases)|Cursor]]
! [[Database trigger|Trigger]]
! [[Function (computer programming)|Function]]&nbsp;<sup id="other_1_back">[[#other 1|1]]</sup>
! [[Subroutine|Procedure]]&nbsp;<sup>[[#other 1|1]]</sup>
! External routine&nbsp;<sup>[[#other 1|1]]</sup>
|-
! style="text-align:left" | [[4th Dimension (Software)|4th Dimension]]
Line 4,567 ⟶ 4,594:
| {{yes}}
| {{yes}}
| {{yes}}&nbsp;<sup id="other_2_back">[[#other 2|2]]</sup>
| {{yes}}&nbsp;<sup>[[#other 2|2]]</sup>
| {{yes}}&nbsp;<sup>[[#other 2|2]]</sup>
|-
! style="text-align:left" | [[Clustrix]]DB
Line 4,584 ⟶ 4,611:
| {{yes}}
| {{yes}}
| {{yes}}&nbsp;<sup>[[#other 2|2]]</sup>
| {{yes}}
|-
Line 4,630 ⟶ 4,657:
| {{yes}}
| {{no}}
| {{yes}}&nbsp;<sup>[[#other 2|2]]</sup>
| {{yes}}&nbsp;<sup>[[#other 2|2]]</sup>
| {{yes}}&nbsp;<sup>[[#other 2|2]]</sup>
| {{yes}}
|-
Line 4,671 ⟶ 4,698:
| {{yes}}
| {{no}}
| {{yes}}&nbsp;<sup>[[#other 2|2]]</sup>
| {{yes}}&nbsp;<sup>[[#other 2|2]]</sup>
| {{yes}}&nbsp;<sup>[[#other 2|2]]</sup>
|-
! style="text-align:left" | [[MariaDB]]
| {{yes}}<ref name="constraint_in_mariadb">{{Cite web |url=https://mariadb.com/kb/en/library/constraint/#check-constraints |title=CONSTRAINTConstraint |website=mariadb.com}}</ref>
| {{yes}}
| {{yes}}
Line 4,852 ⟶ 4,879:
|-
! |
! [[Data Domain___domain]]
! [[Cursor (databases)|Cursor]]
! [[Database trigger|Trigger]]
! [[Function (computer programming)|Function]]&nbsp;<sup id="other_1_back">[[#other 1|1]]</sup>
! [[Subroutine|Procedure]]&nbsp;<sup>[[#other 1|1]]</sup>
! External routine&nbsp;<sup>[[#other 1|1]]</sup>
|}
* <cite id="other_1">[[#other 1 back|Note (1):]]</cite> Both '''function''' and '''procedure''' refer to internal routines written in SQL and/or procedural language like [[PL/SQL]]. '''External routine''' refers to the one written in the host languages, such as C, Java, Cobol, etc. "[[Stored procedure]]" is a commonly used term for these routine types. However, its definition varies between different database vendors.
 
* <cite id="other_2">[[#other 2 back|Note (2):]]</cite> In Derby, H2, LucidDB, and CUBRID, users code '''functions''' and '''procedures''' in Java.
<cite id="other_1">[[#other 1 back|Note (1):]]</cite> Both '''function''' and '''procedure''' refer to internal routines written in SQL and/or procedural language like [[PL/SQL]]. '''External routine''' refers to the one written in the host languages, such as C, Java, Cobol, etc. "[[Stored procedure]]" is a commonly used term for these routine types. However, its definition varies between different database vendors.
* <cite id="other_3">[[#other 3 back|Note (3):]]</cite> ENUM datatype exists. CHECK clause is parsed, but not enforced in runtime.
 
* <cite id="other_2other_5">[[#other 25 back|Note (25):]]</cite> InInformix Derby,supports H2,external LucidDB,functions andwritten CUBRIDin Java, usersC, code& '''functions''' and '''procedures''' in JavaC++.
 
<cite id="other_3">[[#other 3 back|Note (3):]]</cite> ENUM datatype exists. CHECK clause is parsed, but not enforced in runtime.
 
<cite id="other_5">[[#other 5 back|Note (5):]]</cite> Informix supports external functions written in Java, C, & C++.
 
==Partitioning==
Line 5,203 ⟶ 5,226:
==Access control==
Information about access control functionalities.
{{sort-under}}
{| style="text-align: center; width: 95%; font-size: 80%" class="wikitable sortable"
{| style="text-align: center; font-size: 80%" class="wikitable sortable sort-under"
|-
!
! style="width:16em" |
! Native network encryption<sup>[[#ac 1|1]]</sup>
! [[Brute-force attack|Brute-force protection]]
Line 5,213 ⟶ 5,237:
! Run unprivileged<sup>[[#ac 4|4]]</sup>
! Audit
! {{verth|va=middle|Resource limit}}
! {{verth|va=middle|Separation of duties <br/>([[Role-based access control|RBAC]])<sup>[[#ac 5|5]]</sup>}}
! {{verth|va=middle|Security Certification}}
! {{verth|va=middle|[[Attribute-based access control|Attribute-Based Access Control ]]<br/>(ABAC)]]}}
|-
! style="text-align:left" | [[4th Dimension (software)|4D]]
Line 5,554 ⟶ 5,578:
| date = September 2022
}}</ref>
 
| {{yes}}
| {{yes}}
Line 5,637 ⟶ 5,660:
! Run unprivileged<sup>[[#ac 4|4]]</sup>
! Audit
! {{verth|va=middle|Resource limit}}
! {{verth|va=middle|Separation of duties <br/>([[Role-based access control|RBAC]])<sup>[[#ac 5|5]]</sup>}}
! {{verth|va=middle|Security Certification}}
! {{verth|va=middle|[[Attribute-based access control|Attribute-Based Access Control ]]<br/>(ABAC)]]}}
|}
* <cite id="ac_1">[[Comparison of relational database management systems#ac 1|Note (1):]]</cite> Network traffic could be transmitted in a secure way (not clear-text, in general SSL encryption). Precise if option is default, included option or an extra modules to buy.
 
* <cite id="ac_1ac_2">[[Comparison of relational database management systems#ac 12|Note (12):]]</cite> NetworkOptions trafficare couldpresent be transmittedto inset a secureminimum waysize (notfor clear-textpassword, inrespect generalcomplexity SSLlike encryption).presence of Precise if option is default, included optionnumbers or an extra modules tospecial buycharacters.
* <cite id="ac_3">[[Comparison of relational database management systems#ac 3|Note (3):]]</cite> How do you get security updates? Is it free access, do you need a login or to pay? Is there easy access through a Web/FTP portal or RSS feed or only through offline access (mail CD-ROM, phone).
 
* <cite id="ac_2ac_4">[[Comparison of relational database management systems#ac 24|Note (24):]]</cite> OptionsDoes aredatabase presentprocess torun setas aroot/administrator minimumor sizeunprivileged foruser? password,What respect complexity like presence of numbers oris specialdefault characters.configuration?
* <cite id="ac_5">[[Comparison of relational database management systems#ac 5|Note (5):]]</cite> Is there a separate user to manage special operation like backup (only dump/restore permissions), security officer (audit), administrator (add user/create database), etc.? Is it default or optional?
 
* <cite id="ac_6">[[#ac 6 back|Note (6):]]</cite> Common Criteria certified product list.<ref>
<cite id="ac_3">[[Comparison of relational database management systems#ac 3|Note (3):]]</cite> How do you get security updates? Is it free access, do you need a login or to pay? Is there easy access through a Web/FTP portal or RSS feed or only through offline access (mail CD-ROM, phone).
 
<cite id="ac_4">[[Comparison of relational database management systems#ac 4|Note (4):]]</cite> Does database process run as root/administrator or unprivileged user? What is default configuration?
 
<cite id="ac_5">[[Comparison of relational database management systems#ac 5|Note (5):]]</cite> Is there a separate user to manage special operation like backup (only dump/restore permissions), security officer (audit), administrator (add user/create database), etc.? Is it default or optional?
 
<cite id="ac_6">[[#ac 6 back|Note (6):]]</cite> Common Criteria certified product list.<ref>
{{Citation
| publisher = Common Criteria Portal
Line 5,662 ⟶ 5,679:
}}
</ref>
* <cite id="ac_7">[[#ac 7 back|Note (7):]]</cite> FirebirdSQL seems to only have SYSDBA user and DB owner. There are no separate roles for backup operator and security administrator.
 
* <cite id="ac_7ac_8">[[#ac 78 back|Note (78):]]</cite> FirebirdSQLUser seemscan todefine onlya havededicated SYSDBAbackup user andbut DBnothing owner.particular Therein aredefault no separate roles for backup operator and security administratorinstall.<ref>
 
<cite id="ac_8">[[#ac 8 back|Note (8):]]</cite> User can define a dedicated backup user but nothing particular in default install.<ref>
{{Citation
| url = http://gentoo-wiki.com/HOWTO_Backup_MySQL
Line 5,677 ⟶ 5,692:
}}
</ref>
* <cite id="ac_9">[[#ac 9 back|Note (9):]]</cite> Authentication methods.<ref>{{Citation
 
<cite id="ac_9">[[#ac 9 back|Note (9):]]</cite> Authentication methods.<ref>{{Citation
| url = https://www.postgresql.org/docs/8.4/interactive/auth-methods.html
| publisher = PostgreSQL community
Line 5,685 ⟶ 5,699:
| date = 24 July 2014
}}</ref>
* <cite id="ac_10">[[#ac 10 back|Note (10):]]</cite> Informix Dynamic Server supports PAM and other configurable authentication. By default uses OS authentication.
 
* <cite id="ac_10ac_11">[[#ac 1011 back|Note (1011):]]</cite> InformixAuthentication Dynamic Server supports PAM and other configurable authentication. By default uses OS authenticationmethods.<ref>{{Citation
 
<cite id="ac_11">[[#ac 11 back|Note (11):]]</cite> Authentication methods.<ref>{{Citation
| url = https://www.microsoft.com/en-us/sqlserver/common-criteria.aspx#tab6
| archive-url = https://web.archive.org/web/20140213221406/https://www.microsoft.com/en-us/sqlserver/common-criteria.aspx
Line 5,695 ⟶ 5,707:
| title = Common Criteria (CC, ISO15408)
}}</ref>
* <cite id="ac_12">[[#ac 12 back|Note (12):]]</cite> With the use of Pervasive AuditMaster.
 
* <cite id="ac_12ac_13">[[#ac 1213 back|Note (1213):]]</cite> WithUser-based thesecurity useis ofoptional Pervasivein AuditMasterPolyhedra, but when enabled can be enhanced to a role-based model with auditing.<ref name="Polyhedra-audit">{{Citation
 
<cite id="ac_13">[[#ac 13 back|Note (13):]]</cite> User-based security is optional in Polyhedra, but when enabled can be enhanced to a role-based model with auditing.<ref name="Polyhedra-audit">{{Citation
| url = http://developer.polyhedra.com/how-to-guides/auditing
| publisher = Enea AB
Line 5,752 ⟶ 5,762:
[[Category:Database software comparisons|Relational databases]]
[[Category:Relational database management systems]]
[[Category:Database management systems]]