Ian Harrison
Ian Harrison DBmarlin technical writer and consultant

Translating terminology across database vendors

Translating terminology across database vendors

Migrating from one database technology to another these days is easier than ever, with the cloud providers not only offering many RDBMS products but migration strategies and tools that can do a lot of the hard work. For instance, see the AWS Schema Conversion Tool and the AWS Database Migration Service pages that guide you through the process of converting and migrating your schema and data from the source to the target platform.

What can be more challenging, is bringing your DBAs up to speed with the new database platform where the features all have slightly different names behind them - or more confusingly, similar names for different concepts, for example, a PostgreSQL cluster is a collection of databases with a central data dictionary, whereas an Oracle cluster is a number of servers - and of course, there are database objects (table/index) called clusters just to add to the confusion.

So with that in mind, I thought I’d continue the idea that Mick McGuinness, our Product Manager here at DBmarlin, had started had started, by comparing database terminology across our supported database platforms. We currently support Oracle, Microsoft SQL Server, MySQL, MariaDB, PostgreSQL, CockroachDB, and IBM Db2.

Of course, there are consistent themes running through all the major database vendors’ products, and they share a lot in common. For example, all the databases here are transactionally ACID compliant and therefore operate with logging of some sort to ensure committed transactions are persistent on disk. They are all capable of being backed up online and are widely used as backend data stores for internet-facing systems that operate 24x7. They all have a query optimizer which can be examined to find the best possible query path and they all expose wait states so that we can diagnose issues with a toolset like DBmarlin. There are also some notable differences too, or cases where different vendors have the same features but decide to use different names for them.

To start with, let’s collate all the glossaries. I’m not suggesting you read these, just letting you have an easy access point to dive into vendor documentation. Most vendors have a useable glossary in one place with Microsoft being the exception. It seems they decided to break the glossary down into relevant chunks and push it down into each documentation section, so, to make things consistent, I’ve put a link to the SQL Server 2014 glossary, so the latest version features will have to be searched for.

Now we come to the main terminology comparison and again, I’m not expecting this to be read end-to-end but hopefully, it will be a useful lookup tool.

We have included all the most useful information, but if it is missing a feature you’ve had trouble tracking down, let us know and we’ll add it to the list for when we re-publish.

Oracle
SQL Server
MySQL
PostgreSQL
CockroachDB
IBM Db2
MariaDB
Database primary model
Relational
Relational
Relational
Relational
Relational
Relational
Relational
Distributed SQL
No
No
No
No
Yes
No
Available with Xpand
Data Types
Relational, Object, JSON, XML, Spatial, Graph, FullText
Relational, Object, JSON, XML, Spatial, Graph, FullText
Relational, Object, JSON, XML, Spatial, FullText
Relational, Object, JSON, XML, Spatial, FullText
Relational, JSON, Spatial
Relational, JSON, XML, Spatial, FullText
Relational, Object, JSON, XML, Spatial, FullText
Deployment
Single node, Failover HA, RAC Cluster, Data Guard, Goldengate, Shard
Single node, AlwaysOn Failover, AlwaysOn Availability Groups
Single Node, NDB Cluster (Sharding)
Single Node, Shared Disk HA, WAL Shipping, Logical replication
Distributed Cloud native
Single node, HADR, Log Shipping, Log Mirroring, Purescale Distributed
Single Node, Max Scale
Instance
Instance
Instance
Instance
Instance
Cluster
Instance
Instance
Database / Schema
The database contains a number of schemas. A schema is a logical container for schema objects such as tables and indexes.
The instance contains a number of databases. A database is a logical container for schema objects such as tables and indexes.
The instance contains a number of databases. A database is a logical container for schema objects such as tables and indexes.
The instance contains a number of databases. A database is a logical container for schema objects such as tables and indexes.
The instance contains a number of databases. A database is a logical container for schema objects such as tables and indexes.
The instance contains a number of databases. A database is a logical container for schema objects such as tables and indexes.
The instance contains a number of databases. A database is a logical container for schema objects such as tables and indexes.
Clustering options
RAC (real application cluster)
Always On Failover Always On Availability Groups
NDB Cluster
High Availability Failover using shared disk
Distributed database so is Clustered by default across usually 3 or more nodes.
High Availability Failover HADR. PureScale Distributed
MariaDB Galera Cluster. Xpand Distributed
Replication
Data Guard Primary-Secondary. Master-Snapshot and Multi-Master Oracle Goldengate
Publish-distribute-subscribe. Snapshot or PeerToPeer
Source-Replica(s) Master-Master E.g. Galera
Primary-Replica
Multi-Active
Publish-Subscribe. Q-Capture Q-Apply. SQL capture-Apply
Primary-Replica(s) and Master-Master E.g. Galera
License
Commercial
Commercial
GNU General Public License for Community Edition.
MIT-style license
Commercial cloud service. Free Serverless Tier available.
Commercial
Free under FOSS GPLv2
ACID compliance (atomicity, consistency, isolation, and durability)
Yes
Yes
Yes with InnoDB (not MyISAM)
Yes
Yes
Yes
Yes with InnoDB (not MyISAM)
Query language
SQL
SQL
SQL
SQL
SQL
SQL
SQL
Procedural Code
PL/SQL
T-SQL
Procedural Routines
PL/pgsql
Not available at Sept ‘22
PL/SQL
Procedural Routines
Materialized view
Yes
In Preview for 2022 Azure Synapse Analytics only
No
Yes
Yes
Yes (MQT)
No
Command line interface (CLI)
sqlplus
sqlcmd
mysql
psql
cockroach
db2cli
mariadb/mysql
Admin UI
Oracle Enterprise Manager (OEM)
SQL Server Management Studio (SSMS)
MySQL Workbench
pgadmin
DB Console webpage
IBM Data Studio IBM Data Server Manager
MySQL Workbench
Data files
Data files
Primary (.mdf) datafiles. Secondary (.ndf) datafiles
InnoDB tablespace files innodb_file_per_table
Table and index per file
Pebble storage. Objects split into ranges on rafts to shard across nodes
Containers
InnoDB tablespace files or innodb_file_per_table
Group of datafiles
Tablespace
Filegroup
Filesystem folder/directory
Tablespace
N/A
Table Spaces
Filesystem folder/directory
Logs to protect against data loss in the event of a crash
Online Redo logs are written by LGWR process
Written to the database’s transaction Log (.ldf)
InnoDB Redo Log
Write ahead log (WAL)
Raft logs (Raft Consensus Group WALs)
Redo/Undo are written to database log.
InnoDB Redo Log
Logs to rollback transactions rather than commit
Undo tablespace
Written to the database’s transaction Log (.ldf)
InnoDB Undo Log
N/A writes create new row versions. (MVCC)
N/A Writes create new row version. (MVCC)
Redo/Undo are written to the database log.
InnoDB Undo Log
Database logging modes
Archive Log, Non-Archive Log
Full logging, Simple Logging
binlog (default), skip-log-bin
archive_mode=on, archive_mode=off
Raft Logging
Circular Logging, Archive Logging
binlog (default), skip-log-bin
Backups
RMAN Open, Full, Incremental, Archive Log
Full, Differential, Transaction Log
MySQL dump, Enterprise Backup, Online, Offline, Incremental, Binary Log
SQL dump, pg_start_backup/pg_stop_backup and copy files
Full Backup, Incremental backup with revision history (Enterprise)
Backup Full, Incremental, logs are included
MySQL dump, Mariabackup online Full, Incremental, Binary Log
Database metadata
Data dictionary USER_OBJECTS, DBA_OBJECTS In SYS schema
System Database
Data Dictionary in System Tablespace
System Catalogs
System Catalogs - information_schema
System Catalog
Data Dictionary in System Tablespace
Storage Engine(s)
Oracle block file format stored on the filesystem or in Oracle ASM
SQL Server Data page.
Multiple storage engines e.g., InnoDB, MyISAM and many more.
Single engine
Pebble based on RocksDB
Single engine
Multiple storage engines e.g. XtraDB, ColumnStore and many more.
Performance schema
V$ tables
DMV - Dynamic Management Views
performance_schema
pg_stat_activity etc.
crdb.internal schema
SYSPROC.MON_ table functions
performance_schema
Show active sessions
SELECT username,sid,serial# FROM v$session where status= 'ACTIVE'
exec sp_who2
SHOW FULL PROCESSLIST
SELECT usesysid, usename FROM pg_stat_activity where state = ‘atvice’
SHOW ALL {LOCAL,CLUSTER} SESSIONS
SELECT * FROM TABLE(SYSPROC.MON_GET_CONNECTION(NULL, -2))
SHOW FULL PROCESSLIST
View top SQL
AWR/ADDM (Diagnostic License required)
Query Store and Management Studio
Slow Query Log. MySQL Workbench
pg_stat_statements
DB Console Statements Page, Slow Query Log
mon_get_routine
Slow Query Log. MySQL Workbench
Query Planning
Optimizer
Query Optimizer
Optimizer
Query Planner
Cost Based Optimizer
Optimizer
Optimizer
Analyze SQL statement
EXPLAIN PLAN
EXPLAIN PLAN
EXPLAIN PLAN
EXPLAIN PLAN
EXPLAIN PLAN
EXPLAIN PLAN
EXPLAIN PLAN
Wait events to see where database time is spent
Yes (see KB)
Yes (see KB)
Yes (see KB)
Yes (see KB)
Not yet
Yes (see KB)
Yes (see KB)
Store commonly used data in memory
Blocks in the Buffer Cache
Pages in the Buffer Cache or Buffer Pool
InnoDB Buffer
Shared buffer pool
RocksDB’s cache memory
DB2 buffer pool
InnoDB Buffer
Block/Page size
8Kb Default. 2Kb, 4Kb, 8Kb 16Kb and 32Kb optional
8Kb fixed
16Kb Default. 4Kb, 8Kb, 16Kb, 32Kb and 64Kb optional
8Kb Default.
Pebble Storage Engine
4Kb Default. 8Kb, 16Kb, 32Kb optional
16Kb Default. 4Kb, 8Kb, 16Kb, 32Kb and 64Kb optional
Transaction Temporary Data
Temporary Segments in Temporary Tablespaces
TempDB
Temporary Tablespaces
temp_tablespaces
Vector Execution Engine will spill to disk. Temp tables are experimental in v22.1
Temporary Tablespaces
Temporary Tablespaces
Character set and Sort Order Control
NLS parameters
Collations
Character Sets Collations
Locales Collations
Locales Collations
Locales Collations DB2CODEPAGE
Character Sets Collations

DBmarlin provides a common interface to view performance across multiple database vendors (all those in the table above) which help avoids some of these problems of terminology. This is helpful if you are learning a new database engine having worked with a different one in past or you are part of a team which is responsible for database performance across a mixture of database technologies.

Ready to try DBmarlin?

If you would like to find out more about DBmarlin and why we think it is special, try one of the links below.

dbmarlin-community-join