Technology – Which Are the Most Used Cloud Databases


If you’re looking to host a database on the cloud, you’re likely wondering which cloud database is the best. While finding the right database for your specific needs can be difficult, most cloud databases allow for data storage and query prioritization. Whether you use a cloud application or traditional IT applications, databases are critical for both. While MySQL is the most widely used database, it is a powerful brother to its non-relational cousin. These data stores are necessary to store and correlate cryptic patterns in non-structured, non-connected data stores.

Microsoft Azure SQL Database

In 2018, the number of database services offered by Microsoft was staggering. With new offerings like SQL Database for Azure and the Azure Data Factory, it’s no wonder that Azure SQL Database is the most popular cloud database. Hyperscale, a service tier of Azure SQL Database, is a scale-out database that supports up to 100 TB of data. It offers high throughput, rapid scaling, and is priced per vCore. It works just like any other database in the Azure SQL Database.

Using Azure SQL Database to power modern cloud applications, users can create a highly available and high-performance data storage layer. The database is capable of processing relational and non-relational data, such as graphs, JSON, spatial, and XML. It can also provide data discovery and classification capabilities, including visibility into the classification status, and track access to sensitive data.

With the addition of DTU-based purchasing models, Azure SQL Database is the most popular cloud database by 2022. DTUs are bundled measures of compute, storage, and I/O resources. This model is also known as vCore-based purchasing. The vCore-based model provides preconfigured bundles for storage and compute resources that meet different application performance needs. Availability zone deployments can also be configured using the maintenance window feature.

Amazon Relational Database Service

AWS’s relational database service is a popular and reliable service that supports Multi-AZ Database Instances, automatic host replacement, and automated backups. In addition, Amazon RDS offers a pay-as-you-go pricing model that allows you to use the service as you need it, and a reserve option that provides lower hourly rates. These features make Amazon RDS the most popular cloud database by 2022.

AWS has an impressive list of products and services. The most popular of these is the Relational Database Service (RDS). This service makes it much easier to set up and manage relational databases in the cloud. It also handles common database administration tasks like backing up data and scaling storage and computing resources. Amazon believes that RDS will be the most popular cloud database in 2022. It’s only a matter of time until it becomes the most popular cloud database.

AWS offers three types of RDS database: Aurora, DynamoDB, and RDS. For standard-scaling needs, RDS is the best option. For high-volume read/write requests, DynamoDB or Redshift may be a better choice. If you’re not using RDS for analytical applications, you may want to opt for DynamoDB or Aurora, which is more powerful but has restrictions on what you can do with it. Additionally, the storage limit varies depending on the engine used.

Google Cloud SQL

There are many benefits of Google Cloud SQL. In addition to being easy to install and manage, it offers scalability and security. Google Cloud SQL provides a minimal amount of data transfer time and is integrated with other Google tools. These features are sure to make Google Cloud SQL the most popular cloud database in 2022. To learn more about Google Cloud SQL, read this article. It will help you decide whether Google Cloud SQL is right for your needs.

When compared to other cloud databases, Google Cloud SQL is easy to install and use. It offers everything other cloud services provide, but third-party vendor support is still lacking. For many users, however, these features are worth a try. Google Cloud SQL will likely be the most used cloud database in 2022, and it will continue to become the most popular. If you’re planning to migrate from Cloud SQL to Cloud Spanner, you’ll have to rewrite your applications.

Prices for Google Cloud SQL depend on the instance type. You can use PostgreSQL, MySQL, and SQL Server. There are dedicated-core instances that let you choose the amount of memory and CPUs you need. Prices are also different by region. Stand-alone instances and read replicas cost the same, but a dedicated-core instance costs more. Google Cloud SQL offers robust security.

IBM Db2 on Cloud

In April, IBM announced a new release of Db2 on Cloud, renaming the database from dashDB for transactions. The cloud-based database is now available on entry-level plans, including a free Lite plan. Users can apply for a free trial of the new version without giving a credit card, and the company says that they’ll offer HA and disaster recovery between 2 data centers. You can apply to be part of the beta program, and if selected, the company will notify you when the functionality becomes generally available.

Db2 13 for z/OS VUE promises AI-based operational efficiency and application stability. The software can run on any cloud vendor, which makes it highly compatible with hybrid and multicloud environments. Db2 on Cloud promises to provide data federation, multizone region support, and universal querying from disparate sources. In addition to these features, Db2 Hosted supports analytics and in-memory processing.

The software’s mature design has resulted in decades of development. With new features released every few years, DB2 for i also doesn’t require much administration. In fact, the software offers some auto-tuning capabilities. IBM recommends hiring a Database Engineer, who’s not responsible for administering the DB, but works with developers to ensure optimal performance. Its features make DB2 an excellent choice for cloud-based databases.

Oracle Database

The recent activity of MySQL HeatWave has brought additional focus to Oracle’s cloud strategy. While the cloud service has lagged behind other cloud providers, Larry Ellison’s long-term vision may have contributed to its recent moves. Meanwhile, Snowflake has released the third and fourth industry-specific data clouds in the past month, and has already raised the competitive stakes for the database industry. In this article, we will look at what these moves mean for Oracle, and what it means for the company.

First and foremost, Oracle is a highly versatile database. The latest version of Oracle, called 21C, is capable of handling massive amounts of data and supports advanced features. For example, it can support blockchain tables and facilitate lightning-fast transactions. Additionally, it combines OLTP and OLAP functions in one database instance. Its price tag isn’t exactly pocket-friendly either. Small businesses may have trouble coping with the cost.

Another popular database is PostgreSQL. First released in 1989, SQL Server has been widely adopted by companies and organizations worldwide. It is included in Microsoft’s Azure cloud as Azure SQL Server. The current version of SQL Server is SQL Server 2019.


In the next two years, data from the cloud will grow more than fivefold, thanks to the rapid growth of big data. DataStax’s CDC is the most commonly used cloud database and helps developers deploy massive amounts of data in minutes at lower costs. It is used by more than half of the Fortune 100, T-Mobile, and Intuit, among many others. Its unique database architecture enables fast data movement for real-time streaming analytics and machine learning.

The cloud database has recently been embraced by enterprises around the world. The company recently announced a partnership with China-based digital enterprise giant Digital China. The partnership will span several fields, including marketing, technology, and market development. Both parties hope to provide more data products and technical services to businesses in the years to come. And the partnership will allow DataStax to expand its reach. Ultimately, it will help businesses avoid the costly mistakes of Oracle’s past.

In addition to delivering more data on the cloud, DataStax has also introduced a new serverless platform called Astra DB. Its serverless architecture enables automatic scaling. And because it can be deployed on multiple cloud providers, it reduces the cost of replicating geo-distributed databases. Additionally, Astra DB includes built-in disaster recovery and multi-region support.

MongoDB Atlas

As an open source document-oriented database, MongoDB has announced it will expand support for its Atlas cloud-based database across 14 AWS regions. This new service will enable developers to build and scale applications using Google Cloud Console without incurring upfront fees. Users will receive an invoice directly from the cloud provider, rather than navigating the Google Cloud Marketplace. However, organizations must ensure that they have enough funds to use the service.

With its growing user base and annual revenue of $500MM, MongoDB Atlas is on its way to becoming one of the most widely used cloud databases in 2022. The company has become a developer-friendly platform for developers and technical decision makers. Its partnership with Google will further strengthen its commercial ties. With its rapid growth, MongoDB is making its database more usable for end-users, who will be able to develop applications more efficiently.

The Atlas multi-cloud service makes database management easier by automating the process. It offers global support for over 60 cloud regions, distributed fault tolerance, and data backup options. Additionally, it offers fully automated structure provisioning. The new service also includes the ability to query backups and restores. With the help of MongoDB Atlas, developers can now easily retrieve specific items in their backups, without wasting time on manual data migration.

Data Gravity Why Cloud Databases Will Prevail

Technology – Database Index Maintenance Best Practices


There are several techniques and best practices for database index maintenance. Rebuilding indexes should be done online. This is better than offline. You can also process databases one at a time. Rebuilding clustered columnstore indexes is the best way to optimize performance. This article outlines some of the best practices for maintaining columnstore indexes. Read on to find out more. Here are some more tips:

Online index rebuilding is better than offline index rebuilding

Online index rebuilding is better than offline index building for a number of reasons. Online rebuilds minimize downtime by running index operations while the database is online. Offline index rebuilds require heavy locking of tables, resulting in blocking issues for other database users. However, you can delay the impact of blocking by using the WAIT_AT_LOW_PRIORITY option. But be aware that online index rebuilding is not available for LOB columns.

While index rebuilding may be faster than offline, there are several disadvantages. Large indexes take longer to rebuild because they generate more log, thereby impacting performance more. Another problem is that large indexes cannot be automatically REBUILD. Instead, they need to be manually reorganized, which can take a very long time. This is like waiting for paint to dry! To make index rebuilding faster, you should investigate how to speed up the communication process.

Another major difference between offline and online index rebuilding is the transaction log. Online index rebuilds generate minimal transaction log, whereas offline index rebuilds always generate full logs. As a result, the next log backup contains the extents changed during rebuilding. And if you need to perform a large data change, you should go for offline index rebuilding. This saves time and transaction log, but the cost is in the reorganization process.

If you choose to perform an online index rebuild, you will need to pause the indexing operation while it is in progress. You can also use the pause command to interrupt the indexing operation while it is in progress. This pauses the indexing operation, allowing you to make your changes to the target index. A few other advantages of online index rebuilding over offline index rebuilding are:

Process databases one at a time

One of the most important index maintenance best practices is to reorganize your indexes. This method uses minimal system resources while defragmenting your indexes. This method is best suited for indexes with fragmentation levels below 20 percent. However, you should note that this method only reorganizes index pages at the leaf level. As a result, index statistics will not be updated.

While this option increases database performance, it can be inefficient. Indexes may be created for a specific query, which may not be needed for the database at that time. If you no longer need an index, remove it from your database to reduce maintenance overhead. Databases change and use data over time, and indexes need to evolve to match those changes. High performance index maintenance is all about keeping your indexes up to date with changing data usage.

It is important to understand the benefits of index maintenance, as it will cause a significant increase in CPU, memory, and storage I/O. Its benefits, however, vary depending on workload and other factors, and you should not perform index maintenance on indiscriminately. For each workload, you should measure the benefits of index maintenance empirically. The benefits must be weighed against the resources required and workload impact.

Using the “IndexOptimize” feature allows you to set a lower threshold for medium and high fragmentation. By default, the lower limit is 100. If you set the value below that, SQL Server will use two pages for index maintenance and allocate empty space. In this way, you can use the “Process databases one at a time” option. It will also skip index maintenance if you have a large number of rows or columns.

Reorganize nonclustered indexes

When a database fragments, reorganizing an index is a best practice. This process physically reorganizes index leaf nodes so that they match the nodes below them. Then, it compacts the index pages, so that the overall index size is less than the original. While the reorganize process can grow an index substantially, the size of the resulting index depends on the amount of reorganization performed and the level of fragmentation.

Performing a reorganization of nonclustered indexes is especially crucial after creating a clustered index. When building a clustered index, SQL Server must rebuild nonclustered indexes as well. After the clustering, it rebuilds all indexes to point to the key of the clustered index. In addition, it provides an index maintenance area to run index rebuilds.

When building an index on a large table, you may want to rebuild it. This option improves query performance, but introduces a performance hit. In addition, it may lock the table so that no one else can make changes to it. In such a case, you can use Query Store to measure the performance of your queries. This way, you can identify a problem with your index and take steps to solve it.

If you have fragmented indexes, reorganizing them is the best solution. This process reorganizes index rows into the correct physical order. When the reorganization is completed, you can resume index rebuilding or suspend it. The process does not lock the affected indexed table. You can perform this operation while the index is online. You may not get 100% fragmentation reduction, but the index will still be more efficient.

Rebuild clustered columnstore indexes

When rebuilding a clustered columnstore index, you’re doing more than restoring the structure of a single table. Rebuilding this type of index can also improve segment elimination. The space occupied by deleted or updated rows is reclaimed and all rows are compressed into as few rowgroups as possible. Database index maintenance best practices include rebuilding clustered columnstore indexes periodically during workloads that involve updating data and loading processes that compress rowgroups.

Columnstore indexes should be rebuilt with the same care as OLTP tables. This way, they’ll continue to perform well even when exposed to large volumes of data. Furthermore, it will make it easier to upgrade and release software. However, there are some disadvantages to columnstore indexes. For example, the size of the memory-optimized data will be roughly double that of the disk-based columnstore index.

Another advantage of columnstore indexes is that they can be stored natively in memory. If you used classic B-tree indexes, for example, your table was five gigabytes. While this might not seem like a lot, consider how much your data would increase in size over the course of a year! This is not trivial, but a 100MB columnstore index would use minimal memory.

When rebuilding clustered columnstore indexes, you can change the compression level of the single columnstore partition. In addition to reducing the size, you can specify how much parallelism is used by the cluster. Generally, you can choose between standard and archive columnstore compression. You can also specify the number of nodes used for the rebuild. If you use a standard compression level, it’s fine.

Repair nonclustered index inconsistencies

If you encounter the error, it is best to take the affected data from backup and rebuild the nonclustered index offline. The problem with rebuilding online is that the repair mechanism uses the existing nonclustered index, which will carry over the inconsistency. Repairing offline is more effective since the process forces a scan of both clustered and heap indexes.

Corrupted data can corrupt the entire table. In such a case, the table definition needs to be recreated. After rebuilding the nonclustered index, the table may need data populating again. If this is not possible, perform a manual rebuild. Using these techniques will help you avoid data loss. But make sure to carefully investigate the cause of the corruption so that you can find the right solution for the problem.

One way to improve query performance is to rebuild the index. While this approach can lead to higher database resource utilization, it also has the added benefit of improving query performance. Aside from the obvious benefits, this maintenance technique reduces the workload and resources. Unlike index rebuilding, updating statistics is less expensive and can be performed in a matter of minutes instead of hours. Query Store is a great way to measure the performance of queries.

After rebuilding the nonclustered index, check the Fill Factor. If the Fill Factor is 80%, the index rebuild maintenance plan should be 20% or less. This will yield pages that have 80% free space. The free space per page is stored in the instance’s Server Properties. You can access this property by right clicking the instance name and selecting Properties. Then, follow the steps in the script to fix the index.

SQL Server Index maintenance | Best Practice Of SQL Database Index Maintenance | SQL Database Index

Technology – Popular NoSQL Non-Relational Databases


In this article, we will discuss some of the most popular NoSQL non-relational databases available today. Among these databases are MongoDB, Apache Cassandra, and HBase. Everyone has its own unique benefits. Read on to discover the advantages of each of these databases. You’ll be glad you did! Regardless of your industry or need, there’s an open-source solution for you.


There are many types of database systems, but the NoSQL type is the most popular. The most common type of NoSQL database is MongoDB, which supports documents and data structures other than strings. Data in this type of database is stored in RAM, making it ideal for large data sets. NoSQL databases like MongoDB and Cloudera are also great for behavioral analytics and social networks. Apache Cassandra is another document-based database and is used by thousands of companies. It can handle petabytes of data and is best for use cases that require high performance and availability.

NoSQL databases were originally designed for modern web-scale databases, and are now being used extensively for big data and real-time web applications. Their flexible data models allow them to handle data with many different types of structures and formats. They are also flexible and allow developers to concentrate on other aspects of their applications, such as algorithms and business logic. The advantage of NoSQL is that it allows for more flexible data management, and can scale much faster than traditional databases.

Apache Cassandra

If you are looking to develop applications that need a highly available, high-performance, and data-integrity-focused database, Apache Cassandra is a good choice. This Java-based database can be easily tuned to provide the right performance, availability, and data integrity for any application. Whether you plan to deploy it on-prem or in the cloud, Cassandra gives you maximum flexibility to build the best applications.

As a NoSQL database, Apache Cassandra is ideal for mission-critical data. It can scale linearly across multiple nodes, handle failures without shutting down systems, and replicate data between multiple nodes. Its peer-to-peer architecture and synchronous replication make it an excellent choice for mission-critical data.

Unlike traditional relational databases, Cassandra is designed to scale with massive amounts of data. It can replicate data across data centers and avoid a single point of failure. Developed at Facebook, Cassandra is capable of storing hundreds of terabytes of data. It has many benefits, and was recently accepted into the Apache Incubator, and is already being used by large companies.

Apache HBase

HBase is a widely used open-source column-oriented database that uses the Hadoop Database File System (HDFS). It is optimized for reading and writing vast data sets, and has features like in-memory operations, Bloom filters, and compression. It can be used for analysis and is easy to deploy on commodity server hardware. HBase also offers a standalone version of the database, which is primarily used for development scenarios and cannot be used for production environments.

NoSQL is gaining in popularity and has a long way to go until it catches up with its main rival. While its support for relational databases is extensive, NoSQL is still limited when it comes to non-relational databases. Most of these databases, however, are optimized for scalable distributed data stores. Social media companies, Google, and Twitter, for example, use NoSQL for real-time web applications and big data. Facebook and Twitter, for example, collect terabytes of data daily.

The popularity of NoSQL databases has led to their open-source versions, which are often free. These databases are miles ahead of relational databases in terms of speed, scalability, and performance. But this doesn’t mean that relational databases are obsolete – many common applications are still built using relational databases. These noSQL non-relational databases to use in 2022

Apache CouchDB

Originally released in 2005, Apache CouchDB is a document-oriented database that uses JSON as its data format and the Erlang programming language to convert documents. It utilizes a flexible data model and provides full CRUD functionality. Its powerful data mapping allows users to query, combine, filter, and sort data. In addition to its scalability, CouchDB offers free, open-source software.

One of the most popular NoSQL non-relational to use in 2022 is Apache CouchDB. This open-source database stores data in JSON-based documents, and its schema-free data model makes it easier to manage records across multiple platforms. CouchDB was initially created as an open-source project and has a community of developers that are focused on improving its ease of use and embracing the web.

In addition to Apache CouchDB, other popular NoSQL databases to use in 2022 are MongoDB, Redis, and Cassandra. According to a recent survey, 40% of Fortune Hundred companies use one or more of these open-source NoSQL databases. The database of your choice should be able to support the data and application types that you need.


In addition to a relational database, NoSQL databases have many other benefits. They do not have a fixed schema, support horizontal scaling, and avoid JOINS, which make them much easier to manage. They are likely to be used by distributed data stores with huge storage needs. Twitter, Facebook, and other real-time web applications will likely use NoSQL to store large amounts of data.

Cloudera and Riak are both great choices for non-relational databases. Both are designed to support massive storage. The latter offers the advantage of scalability without the need for expensive hardware and a high-performance environment. The latter is also a good choice if you require a highly available database. Riak provides data availability, fault tolerance, and scalability. The former allows you to monitor and manage performance with a database monitoring tool, such as SolarWinds’ DataPivot. And, of course, if you’re looking for a high-performance, open-source NoSQL database, Aerospike is worth considering.

Another popular NoSQL database is DynamoDB. This open-source graph-based database uses a cypher query language to query its data. Neo4j is designed for use in scenarios where data is scattered in multiple locations and distributed across various machines. Its unique features make it a great choice for complex data scenarios with more writing operations. In addition to MongoDB, it also works well with Apache Cassandra, an open-source distributed database used by thousands of companies worldwide. The database is designed to scale to petabytes and is a good choice for high-performance applications that require frequent query execution.


The benefits of RavenDB are many. It supports schemaless data storage and enables querying without schema definition. Its internal governors keep the database stable and performant, reducing the chance of common errors. It also includes an object-relational mapper (ORM) for building relational databases. In 2022, this NoSQL non-relational database will be a popular choice for developers.

The platform supports various database platforms, including MySQL, PostgreSQL, Oracle, and MongoDB. It is compatible with existing SQL databases and offers full transactional data integrity. RavenDB is highly scalable, with the ability to create additional nodes to meet the growing data traffic. It is available both on-premises and as a cloud service.

RavenDB is an open-source NoSQL database that facilitates ACID transactions across a cluster of documents. Its built-in query engine allows administrators to monitor the performance of their databases. Its capabilities are versatile and allow organizations to transfer data across different servers and operating systems. Additionally, it includes many features, including performance testing, data backup, and analytics.


NoSQL database is a database that does not follow the traditional relational model. It is highly scalable, lightweight, and suitable for cloud-based applications. The most popular NoSQL database is MongoDB, which stores data as documents. The database supports different data analysis techniques and geographical searches. Another benefit of this database is its high-security level. This type of database is easy to use and deploy.

NoSQL databases differ from relational databases in the way they collect data. They do not require fixed columns and support horizontal scaling, as well as avoiding JOINS and using multiple columns. They can be used for big data, and come in a variety of data models. The three most common data models are key-value, graph, and document. There are also wide-column databases that use a database schema that enables them to scale.

NoSQL databases have been used in web applications for more than 15 years. These databases are used to store data in a layered structure and support multiple query languages. They are also used in mobile applications. These databases are often more cost-effective and can handle more unstructured data. And if you need to scale up, NoSQL is the way to go.


OrientDB is a Java-based NoSQL database, supporting various models. This database focuses on high performance and flexibility. Users can query the database with a simple terminal console interface or use a graph editor to visualize data. OrientDB supports multiple models, including graphs. It also offers free clustering and multi-model APIs, making it an attractive option for database management.

Another alternative to relational databases is graph-oriented databases. Graph-based databases use graph theory to store data. These databases contain nodes and edges, each representing a connection between two nodes. Each node has a unique identifier, as does each edge. Each edge also has a set of properties, including name, starting, and ending place.

Another popular NoSQL database for 2022 is MySQL. It was designed to combat the scalability problem inherent in relational databases. Hypertable is written in C++ and runs on Mac OS X and Linux. Unlike most relational databases, it keeps the data sorted using a primary key. This makes it a more efficient option for handling big data, and its REST API allows developers to search and manipulate the data.

Top 3 NoSQL Databases You Should Know in 2022 | Non-Relational DBMS

Technology – Advantages and Disadvantages of SQLite


SQLite is a relational database management system that is easy to learn and use. Its key advantages include its flexibility, speed, and simplicity. But are these enough reasons to use SQLite over other relational database management systems? Let’s look at some of the advantages and disadvantages of this popular open source database. Also, learn why it is a good choice for web-based projects. Read on to learn more!

SQLite is a relational database management system

SQLite is a relational database managed by PostgreSQL. It has bindings for many programming languages, including C#, Java, and Python. It generally follows PostgreSQL syntax. However, it doesn’t enforce type checking, so you can insert strings into a column. Also, it has several shortcomings, such as the lack of foreign keys. But despite these shortcomings, SQLite is a powerful relational database management system.

One of its greatest advantages is its compact size. SQLite takes up less than 600KB of disk space. It uses very little space, and it is often called a zero-configuration database because it does not use server-side configuration files or other resources. Another benefit of SQLite is its ease of installation and integration. It can be installed quickly and easily without any technical knowledge. It’s compatible with both Mac OS X and Windows platforms.

Another big advantage of SQLite is its portability. Other relational database management systems require interaction with a server. Instead, SQLite reads and writes directly to ordinary disk files. As a result, there are no installation requirements. Additionally, SQLite is often embedded in an application. Unlike many other databases, it does not require any special tools to install. You can use SQLite without any problems.

It is easy to learn

Learning how to use a SQLite database is simple. It uses a Relational Database Management System (RDBMS) structure that makes it easy for beginners to understand. The database is also free to use. The main drawback of this database is that it doesn’t support full and right outer joins. The database also doesn’t support referential integrity checks. Because of these limitations, SQLite is not ideal for extremely large databases. It cannot scale to support hundreds of thousands of users, or store gigabytes of data. It’s also not suitable for high transaction volume and concurrency.

A beginner’s guide to SQLite introduces the concept of view. Users can create, delete, and insert statements. The SQL data definition language is also introduced. In addition, users can learn about storage classes and manifest typing. The basic commands for updating data and managing a database are illustrated in the SQLite 101 chapter. Once you have an understanding of the basic syntax, you can create database objects. The following sections introduce SQLite’s dynamic type system.

Another benefit of using SQLite is its lightweight computing resource consumption. It does not require complex server setup and doesn’t use any external libraries. Because it is an in-memory database, SQLite is highly portable. Users can copy and share the database with others easily, copying it onto a memory stick or sending it via email. A database can be shared with others using various programs, or even with people on the same computer.

It is fast

Many developers are confused by the fact that the SQLite database is fast. In fact, both SQLite and MySQL have similar performance when it comes to querying and loading data. The main differences are the way that they handle concurrency and the speed at which they can be used for specific purposes. Assuming you’re not worried about performance, SQLite is still faster than both MySQL and PostgreSQL, but the latter’s speed will deteriorate with the growing size of your database.

The SQLite library is lightweight and takes up minimal space on your system. It can consume as little as 600KiB of space. Additionally, it’s fully self-contained, meaning that there’s no need to install additional software packages or external dependencies. That’s a win-win situation for your application! But if you’re concerned about performance, consider switching to another database altogether. If you’re running on a multi-process system, SQLite may not be the best choice.

Because of its lightweight structure, SQLite is popular in embedded software. It doesn’t require a separate server component, and most mobile-based applications use SQLite. This reduces application cost and complexity, and makes it much faster than other databases. And because the data in an SQLite database is stored on a single file, SQLite operations are 35% faster than their traditional counterparts. Another bonus of using SQLite is that it requires no additional drivers or ODBC configuration. All developers need to do is add the data file to their application.

It is flexible

A SQLite database is highly flexible. It was originally designed as an extension of TCL, a dynamic programming language. It was designed to prevent the programmer from having to know which datatypes a variable has, and therefore is a natural fit for dynamic programming languages. As SQLite has no type checking, you can insert any type of data into a column without having to worry about converting it later. There are some limitations, however.

As a result, SQLite is best suited for small databases with a low number of users. Its low-level complexity makes it ideal for single-user applications, while its high-level security features make it the preferred choice for web-scale applications. However, its limited functionality makes it unsuitable for applications requiring granular access control. In addition, SQLite is not recommended for use in large-scale databases that will require a large amount of concurrent read/write operations.

Another reason to choose SQLite over other databases is its flexibility. You can work with multiple databases at once by attaching them to the same database. You can also use multiple SELECT statements to access different objects from the database at the same time. However, this can be problematic when the database contains large datasets. To avoid this problem, it is better to use a client/server database. If you must use SQLite for a high-volume application, you should consider other options.

It is reliable

While many of us are accustomed to the familiarity of MySQL and PostgreSQL, we are often surprised by how relying on the free SQLite database can be. Among its many benefits is its robustness. This database offers many features not found in other databases, including transactional, atomic, and schema-based data models. The database’s 100% coverage guarantees a high level of data security. And, because it is free and open source, it is extremely affordable to maintain.

An SQLite database requires no maintenance or administration, making it a great choice for devices that don’t require expert human support. That means that it is well-suited for the internet of things, such as cell phones, set-top boxes, televisions, video game consoles, and even cameras and remote sensors. It also thrives on the edge of a network, providing fast data services for applications that may experience slow or no connectivity.

The database supports both null values and floating point values. The database encoding is UTF-8, UTF-16BE, or UTF-16LE. SQLite also allows blobs of data to be stored. Using the y_serial module, it provides a reliable NoSQL interface to SQLite. Similarly, the SQLite database is a good fit for mobile devices.

It is secure

A sqlite database is secure by default, but this does not mean that it is entirely safe. If you want to keep your database secure, you should consider encrypting it. To encrypt the data, you should use SQLCipher or the similar library. The default is NULL, but you can change this to a positive value by running the VACUUM command. Bytes 16 through 23 are not encrypted, and you can use this to check how secure your database is.

In addition to using encryption techniques, you can also use SELinux access controls. In this case, you can enforce a policy at the row and schema level, which will prevent anyone from accessing sensitive data. This feature has been used by Android Content Providers to make sure that the data stored in those apps is secure. However, you can’t completely eliminate the risk of data loss because your database can’t be fully protected from intrusion.

The SQLite Encryption Extension supports data encryption using various algorithms. If you use this extension, you’ll need to purchase a license and set up the password. If you don’t want to pay a license, you can also use the community edition of SQLCipher. This extension can also be used on a commercial database. If you’d rather use an API, you can use the secure delete feature.

[SQLite] Advantages and disadvantages of SQLite?

Technology – The Simplest Open Source Database to Learn and Use


You may be wondering which is the simplest open source database to learn and use. That depends on your personal preferences, but in general, the simplest database to use is SQLite. Its interface is simple and devoid of complicated features. If you want a graphical user interface (GUI), you should go for MySQL or MS SQL Server. However, you must remember that using one of these databases may not be the most efficient choice for you.


SQLite is one of the easiest open-source databases to learn and use, and it is a popular choice for beginners because of its simplicity. It uses the relational database management system (RDBMS) model, which makes it simpler for beginners to use. The only major disadvantage is that it does not have a built-in multi-user environment. But that is not a deal-breaker, because it still offers a good degree of flexibility and ease of use.

Another advantage of SQLite is its ability to replace disk access, and yet provide additional functionality. With its in-memory mode, you can test queries with no overhead. This is an essential feature when testing applications that need to scale. In many cases, using a DBMS is overkill for development. SQLite is the simplest open-source database to learn and use.

Another advantage of SQLite is its low dependency on the operating system and third-party libraries. It is included in a single source code file and is easy to install on a variety of environments, including embedded devices. It supports full-stack SQL, with tables that can have 32K columns and unlimited rows. It also supports multi-column indexes, ACID transactions, and nested transactions. It also supports subqueries.

Apart from being easy to use, SQLite is also lightweight in computing resources. It requires very little setup and does not require a server. It is a fully self-contained program, meaning that you do not need to download additional libraries and install SQLite on your server. The SQLite library is free and can be downloaded from the Internet. The official documentation has more information.


There are many benefits to using PostgreSQL. It’s free and open-source and has been used by major corporations for years. In fact, in 2012, 30 percent of technology companies used the open-source database as their core technology. Thanks to its liberal open source license, developers can adapt its code to suit their particular needs, and many advanced features, such as table inheritance, nested transactions, and asynchronous replication, are available in the free version.

One of the biggest advantages of PostgreSQL is its flexibility. With the ability to scale and extend its capabilities, it can be used for enterprise applications, which is why it’s so popular with developers. Its compatibility with cloud platforms makes it a popular choice among developers for both on-premise and cloud environments. The database is highly performant and has many advanced features, including geospatial support and unrestricted concurrency. This flexibility makes PostgreSQL an excellent choice for implementing new applications and storage structures.

As far as flexibility goes, PostgreSQL is probably the easiest open-source database to learn and use. Its object-oriented design makes it particularly suitable for applications that need to store large amounts of unstructured data. PostgreSQL supports both models and offers more advanced features than most RDBMS applications. It supports materialized views and optional schemas, and allows the coexistence of objects. In addition to its ease of use, PostgreSQL supports international character sets and accent-sensitive searches.

With its robust replication capabilities, PostgreSQL can accommodate large amounts of data. Its asynchronous replication feature enables two database instances to run simultaneously and synchronize their changes. Despite the fact that synchronous replication delays data updates, replicas are ready to handle read-only queries. Apart from these features, PostgreSQL also supports active-standby, point-in-time recovery, and full data types. Users can even use stored procedures, triggers, and materialized views.


Redis is an open-source key-value store. It is often used as an application cache or quick-response database. Since all data is stored in memory, it provides unprecedented speed, reliability, and performance. It also supports asynchronous replication, fast non-blocking synchronization, and multiple data structures. You can use Redis in almost any programming language, including Python.

Redis supports both journaling and snapshotting persistence. Journaling records changes to a dataset in an append-only file and rewrites it in the background. Snapshotting is faster and safer, but the latter method may require some advanced configuration. Redis also supports tunable probabilistic implementations of cache policy. It’s important to understand how Redis works so that you can make the most of it.

Redis is easy to install and use. Its ANSI C-based code makes it suitable for most POSIX systems. It doesn’t require any external dependencies, which makes it ideal for use with Linux systems. It may also run on Solaris-derived systems, but support for them is only sparse. As of now, there is no official support for Windows versions.

While Redis is not the best choice for a production database, it can provide an excellent solution to simple data availability and read speed. Redis is highly customizable and can scale horizontally or vertically. It also has built-in virtual memory management. Redis has clients for almost every programming language. This allows developers to use it for multiple purposes. One of the most popular use cases for Redis is the creation of a cache for data.

Redis is open source and has many benefits. Among the many uses it serves, Redis is most commonly used for message brokering, cache, and data structure storage. It has the ability to handle more than 120,000 requests per second and has built-in replication. Redis also offers non-blocking master/slave replication, automatic partitioning, and atomic operations. It is easy to learn and uses, and it’s easy to get started with.


CouchDB is a document-oriented relational database (RDBMS) that uses JSON to represent data. Its fields are simple key-value pairs, associative arrays, or maps, and each document has its own unique id. The CouchDB data model ensures data consistency, since each document has its own unique identifier. Its data structure also makes it easy to query, combine, and filter information.

It’s designed to be simple to learn and use, because its core concepts are straightforward and well-defined. CouchDB is very reliable, so operations teams don’t need to worry about random behavior and can identify any problems early. The database also gracefully handles varying traffic, and even sudden spikes are no problem. It will respond to every request and return to its normal speed once the spike has ended.

The CouchDB cluster is made up of small and large nodes. Each node digests data from other online nodes. The entire cluster then uses these nodes to access the same data. The CouchDB cluster uses this distributed architecture to support many applications and services. The Apache software foundation’s CouchDB database is a perfect example of this approach. This open source database is the easiest to learn and use.

With the help of IBM Cloudant, CouchDB uses the full capabilities of CouchDB to provide a scalable solution for database management. By utilizing CouchDB’s features, IBM Cloudant can eliminate the complexity of existing database management systems. You will need an IBMid and an IBM Cloud account to access CouchDB. A successful application will be able to scale as needed. So, consider using CouchDB for your application development.

Apache OpenOffice Base

Among the many benefits of Apache OpenOffice, the Base database is the easiest to learn and use. This database provides native support drivers for MS Access, MySQL, PostgreSQL, and Adabas D. It also supports ODBC standard drivers for access to almost any database. Its linked data ranges in Calc files can be used for data pilot analysis or as the basis for charts. To learn more about the Base database, visit its project page.

The Apache OpenOffice Base database management application is free and open source software. It allows users to create and maintain databases. Users can import and export Microsoft Access data using OpenOffice Base. It can also be used as a relational backup management system and is compatible with desktop, server, and embedded systems. Using the database, you can store, organize, and search data easily. If you don’t have the technical knowledge to use the database, you can look for free tutorials on the Internet.

While using Base is more complex than MS Access, it does have fewer learning barriers and is free to download. The database is available for GNU/Linux, MacOS, Unix, and BSD. While there are a few differences between MS Access and Base, the functionality is unparalleled. In fact, some users have compared these two free database solutions. One of the benefits of Base is its flexibility.

Another benefit of using LibreOffice Base is its cross-database and multi-user support. Like Microsoft Access, this free alternative is close to an exact clone. Unlike Microsoft Access, it is compatible with many other database formats, including Firebird and HSQLDB. It is free and is perfect for business and home users. While it is still an early adopter, it has proven to be a great free alternative to Microsoft Access.

SQLite Tutorial For Beginners – Make A Database In No Time

Technology – Distinct Vs Group By in SQL Server


While it is tempting to select the fastest method, the truth is that DISTINCT is often the fastest option. There are advantages and disadvantages to each, but using both methods is not always better. Luckily, modern tools make this comparison easy. Tools like dbForge SQL Complete can calculate aggregate functions and DISTINCT values in a ready result set. Using this tool, you can see which option gives the best result.


The DISTINCT clause in SQL Server can be used to eliminate duplicate records and reduce the number of returned rows. It will return only one NULL value, regardless of whether the column contains two or more NULL values. If you have more than two columns that have NULL values, you can use the GROUP BY clause to remove those duplicates. For more information, read the following article. Here are some other ways to use the DISTINCT clause in SQL Server

When used correctly, the DISTINCT clause in SQL Server will remove duplicate values from a result set. The column_list parameter should be a list of column, field, or table names. The DISTINCT clause behaves much like a UNIQUE constraint, but it treats nulls differently. For example, if a column contains both city and state, the DISTINCT clause will return all rows with those columns in the result set.

The DISTINCT clause in SQL Server is an essential part of any SELECT statement. Using this query will help you exclude duplicate records by identifying them by their uniqueness. In addition to eliminating duplicate records, the DISTINCT clause will also exclude duplicate columns and fields. By avoiding duplicates in the result set, you can create a more efficient database design. It’s also possible to use DISTINCT with condition lists in your query.

The DISTINCT operator is listed first in the SELECT statement. The SQL does not always process data in the order it is read by a human. It treats expressions as a column or TOP. The example below shows how the DISTINCT clause will append the LastName field to the FirstName column and return the first ten results. If the LastName column isn’t in the SELECT list, then the result will be filtered by FullName.

Hash Match (Aggregate) operator

This SQL server operation computes a hash table based on two inputs, the first of which must be unique and contain no duplicates. The second input is used to probe the hash table for matches, returning any rows that do not match the first input. The third input is used to scan the hash table for entries, and the fourth input returns the results of the query. You can see the Hash Match operator in action using a set statistics profile and graphically executed plan. Using tables to demonstrate this operator will help you understand its working.

The operator is able to determine the best algorithm by assessing the threshold of optimization for the query. For example, when using the Adaptive Join operator, the Optimizer will choose between an Adaptive Join and a Stream Aggregate strategy based on optimization thresholds. A similar situation occurs when using the Hash Match (Aggregate) operator. In the former case, it would choose a Sort + Stream Aggregate strategy over a Hash Match Aggregate strategy.

Hash match joins are useful when trying to join large sets of data. Unfortunately, they block when building a hash table from the first input. This prevents downstream operations, such as index updates, from executing. Because hash match joins are blocking operations, you can try converting the query to a nested loop or merge join, but it is not always possible to merge data.

The Hash Match operator is always based on algorithms, but it behaves differently when it comes to different logical operations. This operator is based on three phases: the build phase, the probe phase, and the final phase. Each of these phases determines whether the previous phase is required. Then, the query returns the results in a single row. It is important to note that the Hash Match operator only works in Batch Mode plans, and it is not supported in a Result Set Plan in this case.

When performing Hash Match operations, you should make sure you have enough memory to store the input. As the Hash Match operator is used to match multiple columns to one table, it uses a large amount of memory. When the execution plan is compiled, the memory grant is computed, and stored in the Execution Plan Memory Grant property. This property is stored for all operators and is used as a rough estimate of how much memory is required by each operator.

COUNT() function

When you need to find the number of employees in a company, you can use the COUNT() function in SQL Server. COUNT returns the number of employees that meet the criteria. This function can be used both as an aggregate and analytic function. However, you have to specify a GROUP BY clause to get the desired results. The COUNT function returns the number of rows where expr is not null, but it may require an order-by-clause or windowing-clause to get the desired results.

COUNT is not always fast and can result in an unacceptable number of results when used in transact operations. In these cases, COUNT can be used safely on small or temporary tables, but for large and complex tables, there are better alternatives. However, you may have to pay for them. This article will cover some of the most popular alternatives. You can also check out the COUNT() function in SQL Server documentation for more details.

The COUNT() function in SQL Server can also be used with the DISTINCT feature in SQL. The DISTINCT feature ignores duplicate values and returns unique non-null values. The COUNT() function in SQL Server can be used with the SELECT statement to return the total number of rows without null values. You can also use the COUNT() function in conjunction with a DISTINCT clause to ensure that the results of the COUNT() function are correct.

Another important COUNT() functionality in SQL Server is COUNT_BIG. COUNT() returns the number of rows that match the criteria of the FROM clause. Its syntax is slightly different than the COUNT() function in SQL Server. COUNT does its job well on small data objects, but if you have a large table, you can run into problems with COUNT. You may want to consider using an ORDER BY clause instead.

When using COUNT() in SQL Server, you can use a specific column name to count null values, or use an asterisk to count all columns. For column values that have repeated values, you should use DISTINCT, as it eliminates duplicates before counting them. This is useful if you have columns that are not unique or Primary Key. You can also use COUNT_BIG to count all non-null values.

COUNT() function with DISTINCT clause

The COUNT() function in SQL Server can count rows that satisfy a certain condition. You can specify the conditions by including an asterisk (*) or column name. The DISTINCT keyword is used to eliminate duplicate values before performing a count. This is similar to the “countif” function in Excel. In SQL Server, you can specify CASE, a more specific condition.

When used with the SELECT statement, the COUNT() function counts the rows in a table. You can use this function to count the number of voters in an election. It can be a painstaking process to count each voter, but using a COUNT() function in SQL Server makes the task a snap. Here are the steps to use COUNT() with the DISTINCT clause in SQL Server.

Using the COUNT() function with the DISTINCT clause in SQL Server is an effective way to identify duplicate rows in a table. When paired with the DISTINCT clause, the COUNT() function will return only the number of non-null values in the result set. In order to avoid duplicates in the result set, you should ensure that the WHERE clause matches the condition.

The COUNT() function with the DISTINCT clause in SQL Server has two primary uses: to calculate the number of values in a table, or to identify a subset of values within a table. For these cases, EXACT_COUNT_DISTINCT is a better choice. It has better performance than the COUNT() function. However, if your query is very big, you may want to consider using the new Approx_Count_Distinct function.

In SQL Server, you can use the COUNT() function with DISTINCT to find the number of distinct values within a column. This option is similar to COUNT_BIG and only returns int data types. The COUNT() function does not support aggregate functions and subqueries. In such a case, you should alias the COUNT function. The COUNT() function is available in many languages, so you can try it out in the SQL Server database.

SQL Distinct vs Group By

Best Practices For Performing a Full Database Backup


There are many reasons why you should always consider the full database backup when you’re backing up your data. First, it is usually the most effective way to protect your data and it doesn’t cost anything. This includes space, power, and resources. You’ll often pay for these services, and they’re often very expensive, which means that there is a great deal of money saved by choosing the full backup instead of the cheaper service. Here are some other benefits to consider as well.

– If you have a lot of data or multiple devices that store data on a server or network, then you know how time-consuming it can be to get everything back up and running again if something occurs that causes your database to go down. This happens most often with viruses, worms, and Trojans, which are designed to take down your database server. The full database backup storage location will take care of the backups for you, so you can focus on getting your other data files and applications up and running as quickly as possible.

– It also saves you a lot of money in terms of the number of upgrades that you need to make. Some businesses may need to do more than one full database backup per year. If this is the case, then backing up your data each day or even just once a month is going to save a lot of money in terms of server costs and upgrade costs over time. You can also make sure that you don’t have to wait for the backup to occur, and you always know that your data is safe. Just making sure that you have an off-site failover-protected backup is a good practice as well.

– Performing a full database backup regularly is a good practice because you’ll want to make sure that you’re protecting your data against natural disasters and other threats as well. Your backup should run as often as possible, especially if you use the full backup feature to back up all of your data. You should also set aside enough money to pay for the full database backup each year. There is a lot of risk to your business if you’re not taking full advantage of the full backup. If you have a smaller amount of information, you might want to consider performing a weekly full database backup.

– When performing a full database backup, you should always perform a test run first before actually going live. This will allow you to identify any problems with the full database backup and make the necessary adjustments before the database goes live. If you find problems while the backup is going to live, you might be able to fix them during the real backup. This might mean you have to pay an extra fee for these problems, but it’s definitely worth it to have things fixed right away before things get even worse.

– Another best practice for using a full database backup is to test your application as thoroughly as possible before going live. It is important that your application is going to function correctly and will not crash. If you are using a trial version of the application when doing the full database backup, you need to make sure that things will work correctly when full production returns. Make sure you don’t do anything that could cause a problem and cause downtime for your company.

– Database backups can take a lot of time, so you need to use them wisely. When performing a full database backup, it should take several minutes or even more than a full hour. Be careful not to use the backup too much, because this could cause corruption in the database. Use it only when absolutely necessary. If you use the backup too often, your backup might eventually become obsolete and the company would be forced to start all over again.

These are just some of the best practices you should follow for performing a full database backup. When performing your backups, be very careful and do not use any automatic software programs. This is because these programs will end up making your backups corrupt and they will also take a long time to perform. So, the best way to do a full database backup is to actually schedule your backups manually.

Oracle TO_CHAR to SQL Server CONVERT Equivalents to change Date to String


When it comes to SQL I tend to lean on the SQL I have used the most over the years, which is Oracle.  Today was no exception, I found myself trying to use the TO_CHAR command in SQL Server to format a date, which of course does not work. So, after a little thought, here are some examples of how you can the SQL Server Convert Command the achieve the equivalent result.

Example SQL Server Date Conversion SQL Code

This SQL of examples runs, as is, no from table required.

,RIGHT(‘0’+CAST(MONTH(GETDATE()) AS VARCHAR(2)),2) as Two_Digit_Month
,SUBSTRING(ltrim(CONVERT(VARCHAR(4), GETDATE(), 12)),3,2) as Two_Digit_Month_2

Map TO_CHAR formats to SQL Server

You can map an Oracle TO_CHAR formats to SQL Server alternative commands as follows:



Server Convert Style



21, 120, 121, 126 and 127



21, 120 and 121





















108, 14 and 114



108, 14 and 114

Translating the formats commands

Here are some example of translating the formats commands.




GETDATE(), 20)


GETDATE(), 20)


GETDATE(), 112)


GETDATE(), 112)


GETDATE(), 12)


GETDATE(), 112)








GETDATE(), 12)),3,2)


GETDATE(), 111)





Related Reference

Microsoft Docs, SQL, T-SQL Functions, GETDATE (Transact-SQL)

Microsoft Docs, SQL, T-SQL Functions, Date and Time Data Types and Functions (Transact-SQL)

Microsoft Docs, SQL, T-SQL Functions, DATEPART (Transact-SQL)

SQL server table Describe (DESC) equivalent

Transact SQL (T-SQL)

Microsoft SQL Server doesn’t seem have a describe command and usually, folks seem to want to build a stored procedure to get the describe behaviors.  However, this is not always practical based on your permissions. So, the simple SQL below will provide describe like information in a pinch.  You may want to dress it up a bit; but I usually just use it raw, as shown below by adding the table name.

Describe T-SQL Equivalent

Select *




Related References

Microsoft SQL Server – Useful links

Microsoft SQL Server 2017

Here are a few references for the Microsoft SQL Server 2017 database, which may be helpful.

Table Of Useful Microsoft SQL Server Database References

Reference Type


SQL Server 2017 Download Page

SQL SERVER version, edition, and update level–edition-and-update-level-of-sql-server-a

SQL Server 2017 Release Notes

SQL Server Transact SQL Commands

Related References

Netezza / PureData – How To Get A List Of When A Store Procedure Was Last Changed Or Created


In the continuing journey to track down impacted objects and to determine when the code in a database was last changed or added, here is another quick SQL, which can be used in Aginity Workbench for Netezza to retrieve a list of when Store Procedures were last updated or were created.

SQL List of When A Stored Procedure was Last Changed or Created

select t.database — Database
, t.OWNER — Object Owner
, t.PROCEDURE — Procedure Name
, o.objmodified — The Last Modified Datetime
, o.objcreated — Created Datetime

from _V_OBJECT o
, _v_procedure t
o.objid = t.objid
and t.DATABASE = ‘<<Database Name>>
order by o.objmodified Desc, o.objcreated Desc;

Related References

Netezza / PureData – How To Get a SQL List of When View Was Last Changed or Created


Netezza / PureData SQL (Structured Query Language)

Sometimes it is handy to be able to get a quick list of when a view was changed last.  It could be for any number of reason, but sometimes folks just lose track of when a view was last updated or even need to verify that it hadn’t been changed recently.  So here is a quick SQL, which can be dropped in Aginity Workbench for Netezza to create a list of when a view was created or was update dated last.  Update the Database name in the SQL and run it.

SQL List of When A view was Last Changed or Created

select t.database — Database
, t.OWNER — Object Owner
, t.VIEWNAME — View Name
, o.objmodified — The Last Modified Datetime
, o.objcreated — Created Datetime

from _V_OBJECT o
o.objid = t.objid
and DATABASE = ‘<<Database Name>>
order by o.objcreated Desc, o.objmodified Desc;

Related References


Netezza / PureData – How To Quote a Single Quote in Netezza SQL


How To Quote a Single Quote in Netezza SQL?

The short answer is to use four single quotes (””), which will result in a single quote within the select statement results.

How to Assemble the SQL to Quote a Single Quote in a SQL Select Statement

Knowing how to construct a list to embed in a SQL where clause ‘in’ list or to add to an ETL job can be a serious time saver eliminating the need to manually edit large lists.  In the example below, I used the Select result set to create a rather long list of values, which needed to be included in an ELT where clause.  By:

  • Adding the comma delimiter (‘,’) and a Concatenate (||) on the front
  • Followed by adding a quoted single Quote (entered as four single quotes (””)) and a Concatenate (||)
  • The Field I which to have delaminated and Quoted (S1.ORDER_NUM)
  • And closed with a quoted single Quote (entered as four single quotes (””))

This results in a delimited and quoted list ( ,’116490856′) which needs only to have the parentheses added and the first comma removed, which is much less work than manually editing the 200 item that resulted from this select.

Example SQL:

SELECT Distinct

‘,’||””|| S1.ORDER_NUM||”” as Quoted_Order_Number

FROM Sales S1

How to Quote A Single Quote Example SQL

Related Reference

Netezza / PureData – How to build a multi table drop command from a select


Database Management

How to Quick Drop Multiple Tables

occasionally, there is a need to quickly drop a list of tables and you don’t always want to write or generate each command individually in Aginity.  So, here is a quick example of how you can use a ‘Select’ SQL statement to generate a list of drop commands for you. Now, this approach assumes there is a common naming convention, so, you may need to adapt it to your needs.

An outline of the Drop Multiple Tables Process

Here is a quick summary of the steps to generate the drop statements from _V_Table:

  1. Build required Netezza SQL select; paying particular attention to the where clause criteria to exclude any unnecessary tables.
  2. Execute the SQL statement
  3. Copy from Aginity Results Tab without headers
  4. Past into new Aginity Query window
  5. validate that only the tables are in the list — No extras
  6. Click with the SQL Drop command list and Execute as a single batch

Example generate the drop statements

select  ‘Drop table ‘||tablename||’;’

from _V_TABLE

where tablename like ‘NZCC_TT_%’;


Related References

IBM Knowledge Center > PureData System for Analytics 7.2.1

IBM Netezza database user documentation > Netezza SQL command reference > Drop Table

OLTP vs Data Warehousing


OLTP Versus Data Warehousing

I’ve tried to explain the difference between OLTP systems and a Data Warehouse to my managers many times, as I’ve worked at a hospital as a Data Warehouse Manager/data analyst for many years. Why was the list that came from the operational applications different than the one that came from the Data Warehouse? Why couldn’t I just get a list of patients that were laying in the hospital right now from the Data Warehouse? So I explained, and explained again, and explained to another manager, and another. You get the picture.
In this article I will explain this very same thing to you. So you know  how to explain this to your manager. Or, if you are a manager, you might understand what your data analyst can and cannot give you.


OLTP stands for OLine Transactional Processing. With other words: getting your data directly from the operational systems to make reports. An operational system is a system that is used for the day to day processes.
For example: When a patient checks in, his or her information gets entered into a Patient Information System. The doctor put scheduled tests, a diagnoses and a treatment plan in there as well. Doctors, nurses and other people working with patients use this system on a daily basis to enter and get detailed information on their patients.
The way the data is stored within operational systems is so the data can be used efficiently by the people working directly on the product, or with the patient in this case.

Data Warehousing

A Data Warehouse is a big database that fills itself with data from operational systems. It is used solely for reporting and analytical purposes. No one uses this data for day to day operations. The beauty of a Data Warehouse is, among others, that you can combine the data from the different operational systems. You can actually combine the number of patients in a department with the number of nurses for example. You can see how far a doctor is behind schedule and find the cause of that by looking at the patients. Does he run late with elderly patients? Is there a particular diagnoses that takes more time? Or does he just oversleep a lot? You can use this information to look at the past, see trends, so you can plan for the future.

The difference between OLTP and Data Warehousing

This is how a Data Warehouse works:

The data gets entered into the operational systems. Then the ETL processes Extract this data from these systems, Transforms the data so it will fit neatly into the Data Warehouse, and then Loads it into the Data Warehouse. After that reports are formed with a reporting tool, from the data that lies in the Data Warehouse.

This is how OLTP works:

Reports are directly made from the data inside the database of the operational systems. Some operational systems come with their own reporting tool, but you can always use a standalone reporting tool to make reports form the operational databases.

Pro’s and Con’s

Data Warehousing


  • There is no strain on the operational systems during business hours
    • As you can schedule the ETL processes to run during the hours the least amount of people are using the operational system, you won’t disturb the operational processes. And when you need to run a large query, the operational systems won’t be affected, as you are working directly on the Data Warehouse database.
  • Data from different systems can be combined
    • It is possible to combine finance and productivity data for example. As the ETL process transforms the data so it can be combined.
  • Data is optimized for making queries and reports
    • You use different data in reports than you use on a day to day base. A Data Warehouse is built for this. For instance: most Data Warehouses have a separate date table where the weekday, day, month and year is saved. You can make a query to derive the weekday from a date, but that takes processing time. By using a separate table like this you’ll save time and decrease the strain on the database.
  • Data is saved longer than in the source systems
    • The source systems need to have their old records deleted when they are no longer used in the day to day operations. So they get deleted to gain performance.


  • You always look at the past
    • A Data Warehouse is updated once a night, or even just once a week. That means that you never have the latest data. Staying with the hospital example: you never knew how many patients are in the hospital are right now. Or what surgeon didn’t show up on time this morning.
  • You don’t have all the data
    • A Data Warehouse is built for discovering trends, showing the big picture. The little details, the ones not used in trends, get discarded during the ETL process.
  • Data isn’t the same as the data in the source systems
    • Because the data is older than those of the source systems it will always be a little different. But also because of the Transformation step in the ETL process, data will be a little different. It doesn’t mean one or the other is wrong. It’s just a different way of looking at the data. For example: the Data Warehouse at the hospital excluded all transactions that were marked as cancelled. If you try to get the same reports from both systems, and don’t exclude the cancelled transactions in the source system, you’ll get different results.

online transactional processing (OLTP)


  • You get real time data
    • If someone is entering a new record now, you’ll see it right away in your report. No delays.
  • You’ve got all the details
    • You have access to all the details that the employees have entered into the system. No grouping, no skipping records, just all the raw data that’s available.


  • You are putting strain on an application during business hours.
    • When you are making a large query, you can take processing space that would otherwise be available to the people that need to work with this system for their day to day operations. And if you make an error, by for instance forgetting to put a date filter on your query, you could even bring the system down so no one can use it anymore.
  • You can’t compare the data with data from other sources.
    • Even when the systems are similar. Like an HR system and a payroll system that use each other to work. Data is always going to be different because it is granulated on a different level, or not all data is relevant for both systems.
  • You don’t have access to old data
    • To keep the applications at peak performance, old data, that’s irrelevant to day to day operations is deleted.
  • Data is optimized to suit day to day operations
    • And not for report making. This means you’ll have to get creative with your queries to get the data you need.

So what method should you use?

That all depends on what you need at that moment. If you need detailed information about things that are happening now, you should use OLTP.
If you are looking for trends, or insights on a higher level, you should use a Data Warehouse.

 Related References

Netezza / PureData – Aginity for Netezza shortcut key list


Aginity for Netezza

Recently, while working with a couple of my teammates on different projects I picked up a couple shortcut keys for Aginity for netezza, which I did not know existed. So, I thought about be nice to put a list of shortcut keys for future reference. I don’t use most of them very often, but I have flagged the ones that I have found to be frequently useful. I hope you find this useful as well.

Frequently Used By Me

Shortcut Keystrokes

Shortcut Description

Alt-C Complete Code Snippet
Alt-F4 Exit
Alt-Q Go to Query
Alt-R Go to Results
Alt-T Go to Tree
Atl-H User Query History
Ctrl-Alt-0 Goto Bookmark 0
Ctrl-Alt-1 Goto Bookmark 1
Ctrl-Alt-2 Goto Bookmark 2
Ctrl-Alt-3 Goto Bookmark 3
Ctrl-Alt-4 Goto Bookmark 4
Ctrl-Alt-5 Goto Bookmark 5
Ctrl-Alt-6 Goto Bookmark 6
Ctrl-Alt-7 Goto Bookmark 7
Ctrl-Alt-8 Goto Bookmark 8
Ctrl-Alt-9 Goto Bookmark 9
X Ctrl-Alt-C Comment Selection
Ctrl-Alt-Left Goto Previous Bookmark
Ctrl-Alt-Right Goto Next Bookmark
Ctrl-Alt-Shift-0 Set Bookmark 0
Ctrl-Alt-Shift-1 Set Bookmark 1
Ctrl-Alt-Shift-2 Set Bookmark 2
Ctrl-Alt-Shift-3 Set Bookmark 3
Ctrl-Alt-Shift-4 Set Bookmark 4
Ctrl-Alt-Shift-5 Set Bookmark 5
Ctrl-Alt-Shift-6 Set Bookmark 6
Ctrl-Alt-Shift-7 Set Bookmark 7
Ctrl-Alt-Shift-8 Set Bookmark 8
Ctrl-Alt-Shift-9 Set Bookmark 9
Ctrl-Alt-Shift-U Change select case
X Ctrl-Alt-U Uncomment Selection
Ctrl-Alt-W Word Wrap
X Ctrl-A Select All
Ctrl-B Toggle Object Browser
X Ctrl-C Copy
X Ctrl+Double click object name Find object in browser panel for current database
X Ctrl-F Find
Ctrl-F5 Execute as Single Batch
Ctrl-F6 Next Query Tab
Ctrl-G Goto Line
Ctrl-H Replace
Ctrl-N New Query Window
Ctrl-O Open SQL File
Ctrl-P Print
Ctrl-R Toggle
Ctrl-S Save Query
Ctrl-Shift-F6 Previous Query Tab
Ctrl-Shift-U Make selection UPPER case
Ctrl-T Add New Query Editor
Ctrl-U Make selection LOWER case
Ctrl-V Paste
X Ctrl-X Cut
X Ctrl-Y Redo
X Ctrl-Z Undo
F11 Toggle full screen
F12 Select Query at Cursor
 X F3 Find Again
F5 Execute
F8 Explain
F9 Toggle Bookmark
Shift-F5 Execute All

Related References


Netezza / PureData – Table Describe SQL


Netezza / Puredata Table Describe SQL

If you want to describe a PureData / Netezza table in SQL, it can be done, but Netezza doesn’t have a describe command.  Here is a quick SQL, which will give the basic structure of a table or a view.  Honestly, if you have Aginity Generating the DDL is fast and more informative, at least to me.  If you have permissions to access NZSQL you can also use the slash commands (e.g. d).

Example Netezza Table Describe SQL

select  name as Table_name,

owner as Table_Owner,

Createdate as Table_Created_Date,

type as Table_Type,

Database as Database_Name,

schema as Database_Schema,

attnum as Field_Order,

attname as Field_Name,

format_type as Field_Type,

attnotnull as Field_Not_Null_Indicator,

attlen as Field_Length

from _v_relation_column


name='<<Table Name Here>>’

Order by attnum;


Related References

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Command-line options for nzsql, Internal slash options

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza getting started tips, About the Netezza data warehouse appliance, Commands and queries, Basic Netezza SQL information, Commonly used nzsql internal slash commands

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Netezza SQL introduction, The nzsql command options, Slash options



Aginity For Netezza – How to Generate DDL



How to Generate Netezza Object DDL

In ‘Aginity for Netezza’ this process is easy, if you have a user with sufficient permissions.

The basic process is:

  • In the object browser, navigate to the Database
  • select the Object (e.g. table, view, stored procedure)
  • Right Click, Select ‘Script’ > ‘DDL to query window’
  • The Object DDL will appear in the query window

Create DDL to Query Window

Related References


Netezza / PureData – Substring Function Example


The function Substring (SUBSTR) in Netezza PureData provides the capability to parse character type fields based on position within a character string.

Substring Functions Basic Syntax

SUBSTRING Function Syntax

SUBSTRING(<<CharacterField>>,<< StartingPosition integer>>, <<for Number of characters Integer–optional>>)

SUBSTR Function Syntax

SUBSTR((<>,<< StartingPosition integer>>, <>)

Example Substring SQL

Netezza / PureData Substring Example

Substring SQL Used In Example


— From the Left Of the String

— Using SUBSTRING Function

,’==SUBSTRING From the Left==’ as Divider1




,’==SUBSTR From the Left==’ as Divider2

—Using SUBSTR Function




— From the right of the String

,’==SUBSTRING From the Right==’ as Divider3




,’==SUBSTR From the right==’ as Divider4





where STATE = ‘PR’


IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Netezza SQL basics, Netezza SQL extensions, Character string functions

IBM Knowledge Center, PureData System for Analytics, Version 7.1.0

IBM Netezza Database User’s Guide, Netezza SQL basics, Functions and operators, Functions, Standard string functions

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Netezza SQL command reference, Functions

Netezza / PureData – Substring Function On Specific Delimiter


Netezza / PureData – Substring Function On Specific Delimiter

The function Substring (SUBSTR) in Netezza PureData provides the capability parse character type fields based on position within a character string.  However, it is possible, with a little creativity, to substring based on the position of a character in the string. This approach give more flexibility to the substring function and makes the substring more useful in many cases. This approach works fine with either the substring or substr functions.  In this example, I used the position example provide the numbers for the string command.


Example Substring SQL

Netezza PureData Substring Function On Specific Character In String


Substring SQL Used In Example


,position(‘,’ in LOCATIONTEXT) as Comma_Postion_In_String

—without Adjustment

,SUBSTRING(LOCATIONTEXT,position(‘,’ in LOCATIONTEXT)) as Substring_On_Comma

—Adjusted to account for extra space

,SUBSTRING(LOCATIONTEXT,position(‘,’ in LOCATIONTEXT)+2) as Substring_On_Comma_Ajusted

,’==Breaking_Up_The_Sting==’ as Divider

— breaking up the string

,SUBSTRING(LOCATIONTEXT,1, position(‘ ‘ in LOCATIONTEXT)-1) as Beggining_of_String

,SUBSTRING(LOCATIONTEXT,position(‘ ‘ in LOCATIONTEXT)+1, position(‘ ‘ in LOCATIONTEXT)-1) as Middle_Of_String

,SUBSTRING(LOCATIONTEXT,position(‘,’ in LOCATIONTEXT)+2) as End_Of_String



where STATE = ‘PR’


Related References

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Netezza SQL basics, Netezza SQL extensions, Character string functions

IBM Knowledge Center, PureData System for Analytics, Version 7.1.0

IBM Netezza Database User’s Guide, Netezza SQL basics, Functions and operators, Functions, Standard string functions

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Netezza SQL command reference, Functions

Aginity for Netezza – How to Display Query Results in a Single Row Grid



Displaying your Netezza query results in a grid can be useful.  Especially, when desiring to navigation left and right to see an entire rows data and to avoid the distraction of other rows being displayed on the screen. I use this capability in Aginity when I’m proofing code results and/or validating data in a table.

How To switch to the Single Row Grid

  • Execute your Query
  • When the results return, right click on the gray bar above your results (where you see the drag a column box
  • Choose the ‘Show a Single Row Grid’ Menu item

    Aginity Show Single Row Grid


Grid View Change

  • Your result display will change from a horizontal row to a vertical grid as shown below

Aginity Single Row Grid Display

How to Navigate in the Single Row Grid

  • To navigate in the single row grid, use the buttons provided at the bottom of the results section.

Aginity Single Row Grid Navigation Buttons

Related References


Netezza / PureData – Position Function


Netezza / PureData Position Function


The position function in Netezza is a simple enough function, it just returns the number of a specified character within a string (char, varchar, nvarchar, etc.) or zero if the character not found. The real power of this command is when you imbed it with character function, which require a numeric response, but the character may be inconsistent from row to row in a field.

The Position Function’s Basic Syntax

position(<<character or Character String>> in <<CharacterFieldName>>)


Example Position Function SQL

Netezza PureData Position Function


Position Function SQL Used in Example


,’==Postion Funtion Return Values==’ as Divider

,position(‘,’ in LOCATIONTEXT) as Postion_In_Nbr_String

,position(‘-‘ in LOCATIONTEXT) as Postion_Value_Not_Found

,’==Postion Combined with Substring Function==’ as Divider2

,SUBSTRING(LOCATIONTEXT,position(‘,’ in LOCATIONTEXT)+2) as Position_Used_in_Substring_Function

FROM Blog.D_ZIPCODE  where STATE = ‘MN’ AND CITY = ‘RED WING’ limit 1;



Related References

IBM Knowledge Center, PureData System for Analytics, Version 7.1.0

IBM Netezza Database User’s Guide, Netezza SQL basics, Functions and operators, Functions, Standard string functions

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Netezza SQL command reference, Functions


Data Modeling – Column Data Classification


Column Data Classification

When analyzing individual column data, at its most foundational level, column data can be classified by their fundamental use/characteristics.  Granted, when you start rolling up the structure into multiple columns, table structure and table relationship, then other classifications/behaviors, such as keys (primary and foreign), indexes, and distribution come into play.  However, many times when working with existing data sets it is essential to understand the nature the existing data to begin the modeling and information governance process.

Column Data Classification

Generally, individual columns can be classified into the classifications:

  • Identifier — A column/field which is unique to a row and/or can identify related data (e.g., Person ID, National identifier, ). Basically, think primary key and/or foreign key.
  • Indicator — A column/field, often called a Flag, that has a binary condition (e.g., True or False, Yes or No, Female or Male, Active or Inactive). Frequently used to identify compliance with complex with a specific business rule.
  • Code — A column/field that has a distinct and defined set of values, often abbreviated (e.g., State Code, Currency Code)
  • Temporal — A column/field that contains some type date, timestamp, time, interval, or numeric duration data
  • Quantity — A column/field that contains a numeric value (decimals, integers, etc.) and is not classified as an Identifier or Code (e.g., Price, Amount, Asset Value, Count)
  • Text — A column/field that contains alphanumeric values, possibly long text, and is not classified as an Identifier or Code (e.g., Name, Address, Long Description, Short Description)
  • Large Object (LOB)– A column/field that contains data traditional long text fields or binary data like graphics. The large objects can be broadly classified as Character Large Objects (CLOBs), Binary Large Objects (BLOBs), and Double-Byte Character Large Object (DBCLOB or NCLOB).

What is a Common Data Model (CDM)?


What is a Common Data Model (CDM)?

A Common Data Model (CDM) is a share data structure designed to provide well-formed and standardized data structures within an industry (e.g. medical, Insurance, etc.) or business channel (e.g. Human resource management, Asset Management, etc.), which can be applied to provide organizations a consistent unified view of business information.   These common models can be leveraged as accelerators by organizations form the foundation for their information, including SOA interchanges, Mashup, data vitalization, Enterprise Data Model (EDM), business intelligence (BI), and/or to standardize their data models to improve meta data management and data integration practices.

Related references

IBM, IBM Analytics

IBM Analytics, Technology, Database Management, Data Warehousing, Industry Models

Observational Health Data Sciences and Informatics (OHDSI)/Common Data Model


Oracle Technology Network, Database, More Key Features, Utilities Data Model


Industries, Communications, Service Providers, Products, Data Mode, Oracle Communications Data Model


Oracle Technology Network, Database, More Key Features, Airline data Model

Netezza / PureData – How to add multiple columns to a Netezza table in one SQL


SQL (Structured Query Language)


I had this example floating around in a notepad for a while, but I find myself coming back it occasionally.  So, I thought I would add it to this blog for future reference.

The Table Alter Process

This is an outline of the Alter table process I follow, for reference, in case it is helpful.

  • Generate DDL in Aginity and make backup original table structure
  • Perform Insert into backup table from original table
  • Create Alter SQL
  • Execute Alter SQL
  • Refresh Aginity table columns
  • Generate new DDL
  • visually validate DDL Structure
  • If correct, archive copy of DDL to version control system
  • Preform any update commands, if required, required to populate the new columns.
  • Execute post alter table cleanup
    • Groom Versions
    • Groom table
    • Generate statistics
  • Once the any required processes and the data have been validated, drop the backup table.


Basic Alter SQL Command Structure

Here is the basic syntax for adding multiple columns:


ADD COLUMN <<FieldName1>> <<Field Type>> <<Constraint, if applicable>>

, <<FieldName2>> <<Field Type>> <<Constraint, if applicable>>;


Example Alter SQL Command to a Multiple Columns

Here is a quick example, which is adding four columns:

Example SQL Adding Multiple Columns







Cleanup Table SQL Statements





Related References

IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Netezza SQL command reference, ALTER TABLE

Netezza / PureData – Casting Numbers to Character Data Type


I noticed that someone has been searching for this example on my site, so, here is a quick example of how to cast number data to a character data type.  I ran this SQL example in Netezza and it worked fine.

Basic Casting Conversion Format

cast(<<FieldName>> as <<IntegerType_or_Alias>>) as <<FieldName>>

Example Casting Number to Character Data Type SQL

—-Casting Integer to Character Data Type —————

, cast(SUBMITDATE_SRKY as  char(10)) as Integer_to_CHAR
, cast(SUBMITDATE_SRKY as Varchar(10)) as Integer_to_VARCHAR
, cast(SUBMITDATE_SRKY as Varchar(10)) as Integer_to_VARCHAR
, cast(SUBMITDATE_SRKY as Nchar(10)) as Integer_to_NCHAR
, cast(SUBMITDATE_SRKY as NVarchar(10)) as Integer_to_NVARCHAR

—-Casting Double Precision Number to Character Data Type —————

, cast(HOST_CPU_SECS as  char(30)) as DOUBLE_PRECISION_to_CHAR

—-Casting Numeric to Character Data Type —————

, cast(TOTALRUNTIME as  char(30)) as NUMERIC_FIELD_to_CHAR



Related References

IBM, IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza stored procedures, NZPLSQL statements, and grammar, Variables, and constants, Data types, and aliases

IBM, IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, SQL statement grammar, Explicit and implicit casting, Summary of Netezza casting

IBM, IBM Knowledge Center, PureData System for Analytics, Version 7.2.1

IBM Netezza database user documentation, Netezza SQL basics, Netezza SQL extensions

PureData / Netezza – What date/time ranges are supported by Netezza?


Date/Time ranges supported by Netezza

Here is a synopsis of the temporal ranges ( date, time, and timestamp), which Netezza / PureData supports.

Temporal Type

Supported Ranges

Size In Bytes


A month, day, and year. Values range from January 1, 0001, to December 31, 9999. 4 bytes


An hour, minute, and second to six decimal places (microseconds). Values range from 00:00:00.000000 to 23:59:59.999999. 8 bytes

Related References

Temporal data types

PureData System for Analytics, PureData System for Analytics 7.2.1, IBM Netezza database user documentation, Netezza SQL basics, Data types, Temporal data types

Netezza date/time data type representations

PureData System for Analytics, PureData System for Analytics 7.2.1, IBM Netezza user-defined functions, Data type helper API reference, Temporal data type helper functions, Netezza date/time data type representations

Date/time functions

PureData System for Analytics, PureData System for Analytics 7.2.1, IBM Netezza database user documentation, Netezza SQL basics, Netezza SQL extensions, Date/time functions

Netezza / PureData – How to add a Foreign Key

DDL (Data Definition Language)

Adding a forging key to tables in Netezza / PureData is a best practice; especially, when working with dimensionally modeled data warehouse structures and with modern governance, integration (including virtualization), presentation semantics (including reporting, business intelligence and analytics).

Foreign Key (FK) Guidelines

  • A primary key must be defined on the table and fields (or fields) to which you intend to link the foreign key
  • Avoid using distribution keys as foreign keys
  • Foreign Key field should not be nullable
  • Your foreign key link field(s) must be of the same format(s) (e.g. integer to integer, etc.)
  • Apply standard naming conventions to constraint name:
    • FK_<<Constraint_Name>>_<<Number>>
    • <<Constraint_Name>>_FK<<Number>>
  • Please note that foreign key constraints are not enforced in Netezza

Steps to add a Foreign Key

The process for adding foreign keys involves just a few steps:

  • Verify guidelines above
  • Alter table add constraint SQL command
  • Run statistics, which is optional, but strongly recommended

Basic Foreign Key SQL Command Structure

Here is the basic syntax for adding Foreign key:


ADD CONSTRAINT <<Constraint_Name>>_fk<Number>>

FOREIGN KEY (<<Field_Name or Field_Name List>>) REFERENCES <<Owner>>.<<target_FK_Table_Name>.(<<Field_Name or Field_Name List>>) <<On Update | On Delete>> action;

Example Foreign Key SQL Command

This is a simple one field example of the foreign key (FK)

ALTER TABLE Blog.job_stage_fact

ADD CONSTRAINT job_stage_fact_host_dim_fk1

FOREIGN KEY (hostid) REFERENCES Blog.host_dim(hostid) ON DELETE cascade ON UPDATE no action;

Related References

Alter Table

PureData System for Analytics, PureData System for Analytics 7.2.1, IBM Netezza database user documentation, Netezza SQL command reference, Alter Table, constraints

Databases – What is ACID?


What does ACID mean in database technologies?

  • Concerning databases, the acronym ACID means: Atomicity, Consistency, Isolation, and Durability.

Why is ACID important?

  • Atomicity, Consistency, Isolation, and Durability (ACID) are import to database, because ACID is a set of properties that guarantee that database transactions are processed reliably.

Where is the ACID Concept described?

  • Originally described by Theo Haerder and Andreas Reuter, 1983, in ‘Principles of Transaction-Oriented Database Recovery’, the ACID concept has been codified in ISO/IEC 10026-1:1992, Section 4

What is Atomicity?

  • Atomicity ensures that only two possible results from transactions, which are changing multiple data sets:
  • either the entire transaction completes successfully and is committed as a work unit
  • or, if part of the transaction fails, all transaction data can be rolled back to databases previously unchanged dataset

What is Consistency?

  • To provide consistency a transaction either creates a new valid data state or, if any failure occurs, returns all data to its state, which existed before the transaction started. Also, if a transaction is successful, then all changes to the system will have been properly completed, the data saved, and the system is in a valid state.

What is Isolation?

  • Isolation keeps each transaction’s view of database consistent while that transaction is running, regardless of any changes that are performed by other transactions. Thus, allowing each transaction to operate, as if it were the only transaction.

What is Durability?

  • Durability ensures that the database will keep track of pending changes in such a way that the state of the database is not affected, if a transaction processing is interrupted. When restarted, databases must return to a consistent state providing all previously saved/committed transaction data

Related References

Databases – Database Isolation Level Cross Reference


Database And Tables


Here is a table quick reference of some common database and/or connection types, which use connection level isolation and the equivalent isolation levels. This quick reference may prove useful as a job aid reference, when working with and making decisions about isolation level usage.

Database isolation levels

Data sources

Most restrictive isolation level

More restrictive isolation level

Less restrictive isolation level

Least restrictive isolation level

Amazon SimpleDB

Serializable Repeatable read Read committed Read Uncommitted


Repeatable read Read stability Cursor stability Uncommitted read

DB2® family of products

Repeatable read Read stability* Cursor stability Uncommitted read


Repeatable read Repeatable read Cursor stability Dirty read


Serializable Repeatable read Read committed Read Uncommitted


Serializable Repeatable read Read committed Read Uncommitted

Microsoft SQL Server

Serializable Repeatable read Read committed Read Uncommitted


Serializable Repeatable read Read committed Read Uncommitted


Serializable Repeatable read Read committed Read Uncommitted


Serializable Serializable Read committed Read committed


Serializable Repeatable read Read committed Read committed


Level 3 Level 3 Level 1 Level 0


Related References