Technology – Difference between inner join and left join


To understand the differences between these two SQL operations, let’s compare the two most common types of joins. Left outer join returns all rows from the left table, while right outer join returns only the rows from the right table. In addition to the differences between these two join types, we will look at why you might want to use a left outer join or inner join instead. This is because inner joins are often faster, and left outer joins are more flexible.

Right outer join returns all the rows from the right table

A right outer join is a query in SQL that returns all the rows from the right table if the right-joined table contains more than one record with the same key. In other words, this query joins two tables and returns the rows from the right table that match the key of the left table. If no row matches in the left table, the right side column of the result-set is null. The left outer join, on the other hand, uses the SELECT statement to connect two tables. The SELECT statement performs the same operation, and the CROSS JOIN creates a result table with paired rows. The INNER JOIN is another type of join that returns records with matching values.

When you use the LEFT OUTER JOIN, you select all records from the left table. If the two tables match, the right table will return the matching records. The NULL value is returned if the right table does not have matching records. In this example, a matched shirt does not match a matching pair of pants, but a matched shirt does. However, the pants table does have a value of yellow.

A right outer join also includes a conditional clause. When a condition is not met, a NULL value is added to the fields in the result set. The SELECT statement can return all the rows from the right table if the condition is met. The LEFT OUTER JOIN also works on the same principle as the RIGHT OUTER JOIN. It allows you to match the condition of the left-side table with the rows of the right-side table.

RIGHT JOIN in SQL fetches all records from the right table if the left-side table is NULL. If a right outer join does not match a left-side table, NULL is returned instead. The basic syntax for a RIGHT JOIN is as follows:

Inner join excludes all other joins

In the case of an Inner Join in SQL, one table includes data from multiple tables, such as Foods and CompanyId. A SQL Inner Join matches rows that contain certain key values, such as CompanyId, and returns only those rows that match those values. In this example, CompanyId = 5 does not make a match with the food table, and so it is excluded from the result set. This query produces the result set that lists all the items that pizza outlets have delivered in different cities. In Los Angeles, for example, a Dominos delivery order included seven breadsticks and an 11-inch Medium pizza.

Similarly, an Inner Join compares rows in Table1 and Table2 based on the ON clause. If these two rows have the same value, the result table will contain only those rows. An Inner Join works the same way as a Join clause, and the default keyword for it is Inner Join. Inner Join are often used interchangeably. In this case, it’s better to use the latter.

For example, a paint table contains red and green records, but not oranges. A paint table does not contain these kinds of records. Therefore, a left join includes all those rows whose Quantity column is NULL. The remaining rows are identical to those returned by an inner join. An outer join, on the other hand, includes the data from Table 2 and only the data in Table 1 that matches that row.

An exclusion product join with DPE can be a more efficient way to process a query. It avoids reading extra rows and places them into an error partition. The result is a table that is less likely to contain null rows. If the rows in a partitioning column are null, then the result of an inner join with DPE is the same as the result of a regular outer join.

In Access, an inner join doesn’t automatically create an outer join between two queries. The creation of an inner join requires manual work on your part. To do this, you drag two fields from one table to another and then click a button to select the inner join. In order for an inner join to work correctly, the fields must be the same data type. However, they do not have to have the same name.

Left outer join excludes all other joins

If the left table contains more than one product, the left outer join would be the best option to include all products in the query. This kind of join requires more SQL Server resources because it will output only the rows that match. A good example of an outer join is a query that includes multiple reviews of a single product. It would be good to use multiple tables and filter the left one, and then use the right outer join to exclude all the non-matching rows.

When the outer join keyword appears in the query, the dominant table is on the left. In this case, the result will have more rows than the subservient table. However, the result will contain NULL values for the subservient table. This feature of left outer joins allows us to identify missing entries in tables. We can use it to identify database integrity problems. It is important to understand what the different types of joins in SQL are, so that you can use them appropriately.

The LEFT OUTER JOIN and the RIGHT OUTER JOIN have different purposes. When using an INNER JOIN between two tables, naming the first table is necessary, but not in all cases. SQL Standard considers the first table as the left and the second one as the right. LEFT OUTER JOIN returns all rows in the first table, and matching rows from the second table.

If you have data in two or more tables, using a right outer join will return all rows in the right table. If there is no match in the left table, the result will be null. The right outer join is also known as an EQUI JOIN and is often used in uni-table joins. It also allows all other operators. Unlike left outer join, right outer join also does not require an ON clause.

When the two tables contain the same data, the left outer join is the best choice. However, this type of SQL join can lead to performance issues, and you should use it sparingly. If you have a large table and want to see only the rows that have a particular value, you can use a right outer join instead. This type of join is the most commonly used. If you are not sure whether a left outer join will work with your database, read this article first.

Inner join is faster than an outer join

When you compare two SQL functions, you might wonder whether an inner join is faster than an outer join. While both of them return the same results, one method is generally faster than the other. Specifically, an inner join checks to see if all of the data you need is in the primary table. When that’s not the case, it uses the secondary table and searches for matching tuples. This type of join is quicker, but it isn’t the fastest option for most situations.

An outer join will return the results of an inner join even if the join condition fails. But an inner join only includes the rows that match, so it’s faster. The same is true for a LEFT outer join, where the outer join retrieves the results of both tables even if the query doesn’t return any results. Both are effective for queries where there are a large number of unmatched rows, but the inner join is faster in these situations.

An outer join involves combining or comparing only part of the data. It can produce null results because some of the data in the two tables are not shared. For instance, an inner join will return all of the data from Table 1, while an outer join will return the same data from both tables. Using the left outer join will return all of the data from Table 1, while a right outer join will only return the matching rows from the second table.

Whether an inner or an outer join is faster is largely dependent on the data you need to query. An inner join uses a common key to join two tables instead of explicit columns and tables. The second method inserts key values into each table. The latter method is slower, but the results are similar if the data is in the same table. So, it’s often worth examining the differences.

 Difference between inner join and left join

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

Technology – The Power of a Data Catalog


A data catalog can be an excellent resource for businesses, researchers, and academics. A data catalog is a central repository for curated data sets. This collection of information helps you make the most of your information. It also makes your content more accessible to users. Many businesses use data catalogs to create a more personalized shopping experience. They also make it easier to find products based on their preferences. Creating a data catalog is an easy way to get started.

A data catalog is an essential step for any fundamentally data-driven organization. The right tool can make it easier to use the data within the organization, ensuring its consistency, accuracy, and reliability. A good data catalog can be updated automatically and allow humans to collaborate with each other. It can also simplify governance processes and trace the lifecycle of your company’s most valuable assets. This can also save you money. A properly implemented data catalog can lead to a 1,000% ROI increase.

A data catalog allows users to make better business decisions. The data in the catalog is accessible to everyone, which helps them make better decisions. It also enables teams to access data independently and easily, reducing the need for IT resources to consume data. Additionally, a data catalog can improve data quality and reduce risks. It is important to understand the power of a digital data catalog and how it can benefit your company. It can help you stay on top of your competition and increase your revenue.

A data catalog is essential for generating accurate business decisions. With a robust data catalog, you can create a digital data warehouse that connects people and data. It also provides fast answers to business questions. The benefits of using a data catalog are enormous. For example, 84% of respondents said that data is essential for accurate business decisions. However, they reported that without a database, organizations are struggling to achieve the goal of being data-driven. It has been estimated that 76% of business analysts spend at least seventy percent of their time looking for and interpreting the information. This can hinder innovation and analysis.

A data catalog is an invaluable resource to companies that use it to organize and analyze their data. It helps them discover which data assets are most relevant for their business and identify which ones need more attention. Furthermore, a data catalog can be used to identify the best data assets within an organization. This is a powerful way to leverage your data. This is not just about finding and analyzing the information; it can also help you improve your company’s productivity and boost innovation.

Creating a data catalog is essential for a data-driven organization. It makes it possible to ingest multiple types of data. Besides providing a centralized location for storing and presenting data, a good data catalog can also provide metadata that is meaningful to the user. This can help them create more meaningful analytics and make their data more valuable. It can even help prevent the spread of harmful and inaccurate information.

When creating a data catalog, it is important to define the types of data you have and their purpose. A data catalog is an essential tool for data-driven enterprises. A catalog is a repository for structured data and can be customized to accommodate the needs of your business. In addition to describing the type of datasets, it can also provide access to metadata that makes the information even more useful. The best data catalogs include the ability to add and edit business and technical metadata.

A data catalog should allow users to add metadata for free. A good data catalog should allow people to search for specific terms. Moreover, it should provide the ability to add and tag metadata about reports, APIs, servers, and more. The data catalog should also support custom attributes like department, business owner, technical steward, and certified dataset. This is crucial for the data-driven enterprise. A good data catalog should provide a comprehensive view of all data across an organization.

Denodo Platform 8.0 – Demo Overview

Technology – What Is An Iterative Approach In Software Development?


What is an iterative development approach? This software development method combines an iterative design process and an incremental build model. It can be applied to any type of software project. Iterative development approaches are also known as agile development. These methodologies are generally used for smaller projects. In many cases, a team of developers can produce a complete version of the product within a year. This approach is ideal for small and medium-sized organizations.

The iterative software development model allows rapid adaptation to changes in user needs. It enables the rapid change of code structure and implementations with minimum cost and time. If a change is not beneficial, the previous iteration can be rolled back. Iterative development is a proven technique that is gaining momentum in software development. This approach has several advantages. It is flexible and adaptable, allowing companies to rapidly respond to changing client needs.

Iterative development allows for rapid adaptation to changing requirements. This approach is especially useful for small companies, as it can make fundamental changes to the architecture and implementation without incurring too much cost or time. The team can also roll back to the previous iteration if the change is too detrimental. In addition, the process ensures that the customer will have the product that they want. The customer will be satisfied with the end product with the iterative approach.

When developing a large software, you must develop an efficient, high-quality product. This is important if your product is large and requires significant change to achieve success. With an iterative approach, you can make incremental changes in the development process without having to rewrite the entire software. As a result, iterative development ensures that you deliver the best quality and most efficient solution possible.

With an iterative development approach, the team can make changes to the software rapidly, allowing it to evolve as the business needs change. With iterative development, iterative improvements are more likely to be made, and the system will be more effective in the long run. The process can also be more cost-effective if you deliver a complex and complicated product. The best part about this approach is that it is incredibly easy to learn.

One of the main advantages of an iterative development approach is that it provides rapid adaptation to changing needs. Iterative development allows you to make changes in the code structure or implementation. You can make fundamental changes without incurring high costs or affecting the original design. You can also change the design of the application as you go along. In this way, you can be certain that the product will be able to meet the market needs of your customers.

There are several disadvantages to iterative development. It may require more intensive project management. The system architecture might not be well-defined and may become a constraint. Finding highly skilled people for risk analysis and software design is also time-consuming. However, in the case of a game app, an iterative approach will give you a complete and workable product to test out in the real world.

Using an iterative development approach will allow you to make fundamental changes to your software in a short amount of time. Iterative development will allow you to make changes to your software architecture and the overall design of the product. This is why this process is so popular with game developers and is often recommended by other organizations. Iterative development will improve the quality of your game, while a traditional one will delay the release date.

The iterative development approach is the most effective way of software development. It allows you to make fundamental changes quickly, with a minimal impact on the quality of the finished product. During this process, iterative development will result in a more useful and less costly deliverable. In many cases, iterative development will lead to a better product than a waterfall-style approach.

Iterative and Incremental Software Development Process

Technology – Alternative Browsers For Chrome


Many of the more popular browsers, namely Microsoft’s Internet Explorer and Mozilla Firefox, are not considered “open source” browsers. This is because they are not developed by or developed for the community. Their code is not released under an Open Source license but instead is released under a Commercial License. These licenses can be a bit restrictive, especially in terms of the license requirements. In this article, I will explain what Commercial Licenses are and how they affect non-Microsoft browsers.

A Commercial License is a type of royalty that allows the manufacturer to charge a fee for use in the developer’s program. While this is the most common licensing arrangement for web browsers, not all of them employ this mechanism. The most common example is Sun’s OpenOffice suite, designed as an open-source project but heavily commercialized. This is similar to Microsoft’s Office Suite, which is also based on an Open Source project. Microsoft’s ActiveX and Adobe Flash are also based on Commercial License programs.

There are two main limitations of Commercial Licenses when it comes to non-Microsoft browsers. First, they can be expensive. Microsoft has designed its own engine from scratch and has no competitors to support it. Due to its proprietary nature, this engine cannot be shared with any other browser and must always be included with Microsoft’s Internet Explorer. In short, if you want a non-Microsoft browser, you’re going to have to spend more money – though it is worth it.

Second, many of the Commercial Licenses include clauses that limit the browser’s distribution to specific parties. These are generally the carriers and manufacturers of Microsoft’s products and restrict browser distribution. Some clauses are so limiting that many organizations, such as universities and schools, choose to implement their own browsers instead of Microsoft. This is not recommended. The Internet is an open platform, and everyone is free to implement any technology they deem appropriate.

The WebKit-based Browser from Apple is one example. Apple’s Safari is based on the same codebase as WebKit and is not a fork of WebKit. Neither is it an alternative and in fact, it is not even really a browser at all. The primary difference is that Safari uses WebKit for most elements, such as web navigation. It also includes a new WebKit-based key-board layout much like what you’d see on the Mac OS X platform.

Open Source-based browsers, such as Mozilla Firefox, are not based on any license agreement but instead are derivatives of the Mozilla codebase. This means that the code is available for anyone to change and customize, while the licensing terms are much more permissive. Although this type of browser doesn’t come pre-installed with Microsoft, it can still be used with Microsoft applications if you buy a license for it. However, it has its drawbacks, such as lacking many customization options available with commercial non-Microsoft browsers.

Opera is also a popular browser and is similar to Safari in many ways. It is a fork of the Linux operating system. While the commercial version has many advantages, such as the ability to use most of the Microsoft Office software pre-installed, Opera is often seen as lacking some of the features available with Microsoft. For instance, it lacks the password manager and some of the other Microsoft-related tools. However, the software does have an excellent user interface and is the preferred browsing application for many developers and designers.

Finally, there are third-party browsers available for Chrome. These browsers are less expensive than Microsoft-based browsers and have many of the same features available with Microsoft browsers.  Some of the Opera features, like the password manager, can also be found in a third-party browser. This gives users of all operating systems more freedom to choose which browser they want to use for their surfing needs.

Technology – Alternative Browsers For Chrome

Technology – Denodo ODBC And JDBC Driver Virtual DataPort (VDP) Engine Compatibility?


Recently, while patching a Denodo environment, the question arose as to whether an older ODBC or JDBC driver can be used against a newer patched environment. It is described in the first paragraph of the denodo documentation, the directionality of the compatibility can be overlooked easily.

Can An Older ODBC Or JDBC Driver Be Used Against A Newer Past Environment?

The short answer is yes.  Denodo permits backward compatibility of older drivers with newer versions. Even across major versions for denodo version 7 and 8.

ODBC and JDBC driver Compatibility

The older ODBC and JDBC drivers can be of an update that is an older version (patch or major version) than the update installed on the server.

However, as is clearly stated in the documentation, you cannot use a newer driver against an older version of Denodo. This goes for denodo patch versions as well as denodo major versions. Connecting a Virtual DataPort server using an updated newer ODBC or JDBC on the Virtual DataPort (VDP) Engine server. This will not be supported, and it may lead to unexpected errors.

Related Denodo References

For more information about ODBC and JDBC drivers compatibility, please see these links to denodo


Denodo > Drivers > JDBC

Denodo > Drivers > ODBC

Backward Compatibility Between the Virtual DataPort Server and Its Clients

Technology – An Introduction to SQL Server Express


If you use SQL, several options are open to you, from the Enterprise editions down to SQL Server Express, a free version of Microsoft’s main RDBMS (Relational Database Management System), SQL Server. SQL Server is used to store information and access other information from multiple other databases. Server Express Edition is packed with features, such as reporting tools, business intelligence, advanced analytics, and so on.

SQL Server Express 2019 is the basic version of SQL Server, a database engine that can be deployed to a server, or you can embed it into an application. It is free and ideal for building desktops and small server applications driven by data. It is ideal for independent software developers, vendors, and those building smaller client apps.

The Benefits

SQL Server Express offers plenty of benefits, including:

  • Automated Patching – allows you to schedule windows to install important updates, to SQL Server and Windows automatically
  • Automated Backup – take regular backups of your database
  • Connectivity Restrictions – when you install Express on an Image Gallery-created Server VM installation, there are three options to restrict connectivity – Local (in the VM), Private (in a Virtual Network), and Public (via the Internet)
  • Server-Side Encryption/Disk Encryption – Server-side encryption is encryption-at-rest, and disk encryption encrypts data disks and the OS using Azure Key Vault
  • RBAC Built-In Roles – Role-Based Access Control roles work with your own custom rules and can be used to control Azure resource access.

The Limitations

However, SQL Express also has its limitations:

  • The database engine can only use a maximum of 1 GB of memory
  • The database size is limited to 10 GB
  • A maximum of 1 MB buffer cache
  • The CPU is limited to four cores or one socket, whichever is the least. However, there are no limits to SQL connections.

Getting Around the Limitations

Although your maximum database size is limited to 10 GB (Log Files are not included in this), you are not limited to how many databases you can have in an instance. In that way, a developer could get around that limit by having several interconnected databases. However, you are still limited to 1 GB of memory, so using the benefit of having several databases to get around the limitation could be wiped out by slow-running applications.

You could have up to 50 instances on a server, though, and each one has a limit of 1 GB memory, but the application’s development cost could end up being far more than purchasing a standard SQL license.

So, in a nutshell, while there are ways around the limits, they don’t always pay off.

SQL Server Express Versions

SQL Server Express comes in several versions:

  • SQL Server Express With Tools – this version has the SQL Server Database, and all the tools need for managing SQL instances, such as SQL Azure, LocalDB, and SQL Server Express
  • SQL Server Management Studio – this version contains the tools needed for managing SQL Server Instances, such as SQL Azure, SQL Express, and Local DB, but it doesn’t have SQL Server
  • SQL Server Express LocalDB –  if you need SQL Server Express embedded into an application, this version is the one for you. It is a lite Express version with all the Express features, but it runs in User Mode and installs fast with zero-configuration
  • SQL Server Express With Advanced Series – this version offers the full SQL Server Express experience. It offers the database engine, the management tools, Full-Text Search, Reporting Services, Express tools, and everything else that SQL Server Express has.

What SQL Server Express 2019 is Used For and Who Uses it

Typically, SQL Server Express is used for development purposes and to build small-scale applications. It suits the development of mobile web and desktop applications and, while there are some limitations, it offers the same databases as the paid versions, and it has many of the same features.

MSDE was the first SQL Server Data Engine from Microsoft, which was called Microsoft Desktop Engine. SQL Server Express grew when Microsoft wanted to build a Microsoft Access alternative to provide software vendors and developers with a path to the premium versions of SQL Server Enterprise and Standard.  

It is typically used to develop small business applications – web apps, desktop apps, or mobile apps. It doesn’t have all the features the premium versions have. Still, most small businesses don’t have the luxury of using a DBA (SQL Server database administrator), and they often don’t have access to developers who use DBAs either.

Lots of independent developers embed Server Express into the software, given that distribution is free. Microsoft has even gone down the road of creating SQL Server Express LocalDB. This lite version offers independent software vendors and developers an easier way of running the Server in-process in the applications and not separately. SQL Server Express is also considered a great starting point for those looking to learn about SQL Server.

Downloading SQL Server Express Edition 2019

SQL Server Express Edition 2019 is pretty easy to download, and you get it from the official Microsoft Website.

Once you have downloaded it onto your computer, follow the steps below to install it and set it up:

Step One

  • Right-click on the installation file, SQL2019-SSEI-Expr.exe.
  • Click on Open to get the installation process started – ensure that the user who is logged on has the rights needed to install software on the system. If not, there will be issues during the installation and setup.

Step Two

  • Now you need to choose which type of installation you need. There are three:
  • Basic – installs the database engine using the default configuration setup
  • Custom – this takes you through the installation wizard and lets you decide which parts to install. This is a detailed installation and takes longer than the basic installation
  • Download Media – this option allows you to download the Server files and install them when you want on whatever computer you want.
  • Choose the Custom installation – while the Basic is the easiest one, takes less time, and you don’t need to worry about the configuration as it is all done for you, the custom version allows you to configure everything how you want it.

Step Three

  • Now you have a choice of three package installation types:
  • Express Core – at 248 MB, this only installs the SQL Server Engine
  • Express Advanced – at 789 MB, this installs the SQL Server Engine, Full-Text Service, and the Reporting Services features
  • LocalDB – at 53 MB, this is the smallest package and is a lite version of the full Express Edition, offering all the features but running in user mode.

Step Four

  • Click on Download and choose the path to install Server Express to – C:\SQL2019
  • Click on Install and leave Server Express to install – you will see a time indicator on your screen, and how long it takes will depend on your system and internet speed.

Step Five

  • Once the installation is complete, you will see the SQL Server Installation Center screen. This screen offers a few choices:
  • New SQL Server Stand-Alone Installation or Add Features to Existing Installation
  • Install SQL Server Reporting Services
  • Install SQL Server Management Tools
  • Install SQL Server Data Tools
  • Upgrade From a Previous Version of SQL Server
  • We will choose the first option – click on it and accept the License Terms

Step Six

  • Click on Next, and you will see the Global Rules Screen, where the setup is checked against your system configuration
  • Click on Next, and the Product Updates screen appears. This screen looks for updates to the setup. Also, if you have no internet connection, you can disable the option to Include SQL Server Product Updates
  • Click on Next, and the Install Rules screen appears. This screen will check for any issues that might have happened during the installation. Click on Next

Step Seven

  • Click on Next, and the Feature Selection screen appears
  • Here, we choose which features are to be installed. As you will see, all options are enabled, so disable these:
  • Machine Learning Services and Language Extensions
  • Full-Text and Semantic Extractions for Search
  • PolyBase Query Service for External Data
  • LocalDB
  • Near the bottom of the page, you will see the Instance Root Directory option. Set the path as C:\Program Files\Microsoft SQL Server\

Step Eight

  • Click Next, and you will see the Server Configuration screen
  • Here, we will set the Server Database Engine startup type – in this case, leave the default options as they are
  • Click on the Collation tab to customize the SQL Server collation option
  • Click Database Engine Configuration to specify the Server authentication mode – there are two options:
  • Windows Authentication Mode – Windows will control the SQL logins – this is the best practice mode
  • Mixed Mode – Windows and SQL Server authentication can access the SQL Server.
  • Click on Mixed Mode, and the SQL Server login password can be set, along with a Windows login. Click on the Add Current User button to add the current user

Step Nine

  • Click on the Data Directories tab and set the following;
  • Data Root Directory – C:\Program Files\Microsoft SQL Server\
  • User Database Directory – C:\Program fees\Microsoft SQL Server\MSSQL.15.SQLEXPRESS\MSSQL\Data
  • User Database Log Directory – C:\Program fees\Microsoft SQL Server\MSSQL.15.SQLEXPRESS\MSSQL\Data
  • Backup Directory – C:\Program fees\Microsoft SQL Server\MSSQL.15.SQLEXPRESS\MSSQL\Backup

Step Ten

  • Click the TempDB tab and set the size and number of tempdb files – keep the default settings and click Next
  • Now you will see the Installation Progress screen where you can monitor the installation
  • When done, you will see the Complete Screen, telling you the installation was successful.

Frequently Asked Questions

Microsoft SQL Server Express Edition  2019 is popular, and the following frequently asked questions and answers will tell you everything else you need to know about it.

Can More than One Person Use Applications That Utilize SQL Server Express?

If the application is a desktop application, it can connect to all Express databases stored on other computers. However, you should remember that all applications are different, and not all are designed to be used by multiple people. Those designed for single-person use will not offer any options for changing the database location.

Where it is possible to share the database, the SQL Server Express Database must be stored in a secure, robust location, always be backed up, and available whenever needed. At one time, that location would have been a physical server located on the business premises but, these days, more and more businesses are opting for cloud-based storage options.

Can I Use SQL Server Express in Production Environments?

Yes, you can. In fact, some of the more popular CRM or accounting applications include Server Express. Some would tell you not to use it in a production environment, mostly because of the risks of surpassing your 10 GB data limit. However, provided you monitor this limit carefully, SWL Server Express Edition can easily be used in production environments.

Is SQL Server Express Edition Scalable?

There is a good reason why Microsoft allows you to download SQL Server Express Edition for free. It’s because, if it proves too small for your needs, at some point, you can upgrade to the premium SQL Server Standard version. While the Express Edition is limited and you are likely to outgrow it at some point, transferring your database over to the Standard version when the time comes is easy. Really, the Express version is just a scaled-down version of Standard. Any development you do on it is fully compatible with any other Edition of SQL Server and can easily be deployed.

Can I Use SQL Server Express in the Cloud?

Cloud computing is being adopted by more and more businesses and their applications. These days, many are now built in the cloud as web or mobile apps. However, when it comes to desktop applications, it is a slightly different story, as these need to be near the SQL Server Express Database to work properly. Suppose you host the database in the cloud but leave the application on the desktop. In that case, you are likely to experience poor performance, and you may even find your databases becoming corrupted.

You can get around this issue by running your application in the cloud, too, and this is easy using a hosted desktop (a hosted remote desktop service), which used to be known as a terminal service. In this case, the database and application reside on servers in the data center provided by the host and are remotely controlled by the users. As far as the user is concerned, it won’t look or feel any different from running on their own computer.

What Do I Get With SQL Server Express?

The premium SQL Server editions contain many features that you can also find in the free SQL Server Express Edition. Aside from the database engine, you also get:

Plus, the Express licensing allows you to bundles SQL Server Express with third-party applications.

What Isn’t Included?

There are a few things you don’t get in the Express edition compared to SQL Server Standard. For a start, Express edition has limits not found in the premium editions:

  • Each relational database can be no larger than 10 GB, but log files are not included as there are no limits on these
  • The database engine is limited to just 1 GB of memory
  • The database engine is also restricted to one CPU socket or four CPU cores, whichever is the lower of the two.
  • All the SQL Server Express Edition components must be installed on a single server
  • SQL Server Agent is not included – admins use this for automating tasks such as database replication, backups, monitoring, scheduling, and permissions.
  • Availability Groups
  • Backup Compression
  • Database Mirrors limited to Witness Only
  • Encrypted Backup
  • Failover Clusters
  • Fast recovery
  • Hot add memory and CPU
  • Hybrid Backup to Windows Azure
  • Log Shipping
  • Mirrored backups
  • Online Index create and rebuild
  • Online Page and file restore
  • Online schema change
  • Resumable online index rebuilds

Where Do I Find the SQL Server Express Edition Documentation?

You can find the relevant documentation at and are urged to make good use of it. Refer to the documentation whenever you don’t understand something or want to learn how to do something new.

Microsoft SQL Server Express Edition 2019 is worth considering for small businesses, as it gives you a good starting point. As your business grows, you can upgrade to the premium versions without having to worry about learning a new system – you already know the basics, and your databases will transfer seamlessly over.

Related References

Erkec, Esat. 2020. “How to Install SQL Server Express Edition.” SQL Shack – Articles about Database Auditing, Server Performance, Data Recovery, and More. January 16, 2020.

shirgoldbird. n.d. “Microsoft SQL Documentation – SQL Server.”

“What Is SQL Server Express and Why Would You Use It.” 2020. Neovera. March 27, 2020.

“What Is SQL Server Express Used For?” n.d. Your Office Anywhere.

“What Is SQL Server Express? Definition, Benefits, and Limitations of SQL Server Express.” 2017. Stackify. April 19, 2017.

Technology – An Introduction to SQL Server Express

Technology – 5 Best Free Online Flowchart Makers


Did you know that you can create stunning flowcharts anywhere and at any time without spending a lot with the best flowchart makers? Flowcharts are handy as they streamline your work and life. Even though flowcharts makers are available on Windows and other platforms, one can create a flowchart on Excel or even make it on Microsoft Word. However, web-based solutions are better because all you need is a browser – everything else is done for you. This guide covers some of the best free online flowchart makers you will come across:

1. Lucidchart

Lucidchart gives the users the ability to create great diagrams. It is pretty reliable with a drag and drop interface which makes everything easy and seamless. The platform contains pre-made templates that you choose from, or you can decide to use a blank canvas. Documents created by this best free online flowchart maker can be saved in various formats such as PNG, JPEG, PDF, Visio, and SVG.


  • It points out opportunity areas in every process
  • Multi-column flowcharts
  • Copy and paste even across sheets
  • Creative design features and fascinating color selection
  • Easy formatting the notes and the processes


  • It has a more detailed toolbar
  • No 3D designs
  • Could have some spelling and grammar errors
  • The free version could be quite limited

2. Cacoo

If you require real-time collaboration on your ideal flowchart maker, then cacoo is the one. The maker comes with a fluid and streamlined interface that makes everything seem easy. It has different templates for any project you may handle, such as wireframes, flowcharts, Venn diagrams, and many other valuable charts. For the flowcharts, Cacoo gives you a wide range of shapes to select from – all you do is drag and drop what you need.


  • Org charts
  • Drag and drop feature for the charts
  • Conceptual visualizations
  • Wireframes for web development
  • Easy to use


  • The free version may be limited
  • One cannot easily group images
  • Requires more creative options

3. Gliffy

Gliffy is also the best free online flowchart maker one can get in the market. If you are looking for a lightweight and straightforward tool for your flowcharts, gliffy will satisfy your needs. With this platform, one can create a flowchart in seconds with just a few clicks. It comes with basic templates that help you achieve your objective with much ease.


  • Great for creating easy diagrams, process flows, and wireframes
  • Availability of templates make your life easier
  • Intuitive flash interface


  • Limitation on the color customization
  • Presence of bugs when using browsers such as Google Chrome
  • One cannot download the diagrams in different formats


With this platform, there is no signing up; all you need is storage space. Options available include Dropbox, Google Drive, your local storage, and OneDrive. You can decide to use the available templates or draw a new flowchart. With this platform, you can easily add arrows, shapes, and any other objects to your flowcharts. supports imports from Gliffy, SVG, JPEG, PNG, VSDX, and Lucidchart. You can also export in different formats like PDF, PNG, HTML XML, SVG, and JPEG.


  • Produces high-quality diagrams
  • Smart connectors
  • Integrates with storage options like Google Drive
  • Allows collaborative curation of diagrams
  • Users can group shapes


  • Z-order of shapes are not easy on this platform
  • The app may lag when working with a browser
  • Adding unique graphics and shapes may slow down its speed

5. Wireflow

It is another best free online flowchart maker for app designers and web developers. It is ideal for designing wireframes and user flows. It is very intuitive and comes with a variety of chart designs you can choose from. The platform has the drag and drop feature making everything easy. All you do is drag and drop your shapes, designs, and other items on a fresh canvas to create a stunning flowchart.

It has various connectors to select from. After the flowchart is complete, you can export the file as a JPG. It is a drawback to this platform in that you cannot export in several different formats.


  • Simple to use
  • User-friendly and intuitive
  • Well-designed graphics
  • Available templates
  • A variety of different chart types


  • Supports exports only in one format
  • Takes time looking for the templates
  • Limited color range

Final Thoughts

If you are looking for the best free online flowchart makers, you need to consider, wireflow, gliffy, and cacoo. These platforms will offer you high-quality graphic charts. They will make your work more effortless due to available templates and a wide range of other options to develop accessible and understandable flowcharts.

Links for the Flowchart Makers

Related References

Technology – The Difference Between Float Vs. Double Data Types


It would be incorrect to say that floating-point numbers should never be used as an SQL data type for arithmetic. I will stick to double-precision floating-point data types for SQL Server that are suitable for my requirements.

The double-precision floating-point data type is ideal for modeling weather systems or displaying trajectories but not for the type of calculations the average organization may use in the database. The biggest difference is in the accuracy when creating the database. You need to analyze the data types and fields to ensure no errors and insert the data values for maximum accuracy. If there is a large deviation, the data will not be processed during the calculation. If you detect incorrect use of the data type with double precision, you can switch to a suitable decimal or number type.

What are the differences between numeric, float, and decimal data types, and should they be used in which situations?

  • Approximate numeric data types do not store the exact values specified for many numbers; they store an extremely close approximation of the value
  • Avoid using float or real columns in WHERE clause search conditions, especially the = and <> operators

For example, suppose the data that the report has received is summarized at the end of the month or end of the year. In that case, the decimal data for calculation becomes integer data and is added to the summary table.

In SQL Server, the data type float _ n corresponds to the ISO standard with a value from n = 1 to 53. The floating-point data is approximated not by the data type’s value but by the range of what can be represented. Both float- and float-related numeric SQL types consist of a significant numeric value and an exponent, a signed integer that indicates the size of the numeric value.

And float-related numeric SQL data types are precise positive integers that define the number of significant digits and exponents of a base number. This type of data representation is called floating-point representation. A float is an approximate number, meaning that not all values can be displayed in the data type range because it is a rounded value.

You can’t blame people for using a data type called Money to store the money supply. In SQL Server, decimal, number, Money, and SmallMoney data types have a decimal place to store values. Precision means the total number of digits after the decimal point.

From a mathematical point of view, there is a natural tendency to use floats. People who use float spend their lives rounding up values and solving problems that shouldn’t exist. As I mentioned earlier, there are places where it makes sense to hover above the real, but these are for scientific calculations, not business calculations.

SmallMoney (2144783647, 4 bytes) We can use this data type for Money- or currency values. The double type can be used as a data type with real values for dealing with Money.

Type Description Memory bits Integer 0 1 null TinyInt allows integers 0 to 255 1 bytes TinyInt allows integers 32767 2 bytes Int allows integers 2147483647 4 bytes BigInt allows integers 9223372036854775807 8 bytes Decimal P is a precisely scaled number. The parameter p specifies the maximum total number of digits stored to the left or right of the decimal point. The data type low and upper range storage observations Real 340E 38 4 Bytes We can use float924 as an ISO synonym for real.

In MariaDB, the number of seconds has elapsed since the beginning of the 1970s (01-01) with a decimal accuracy of 6 digits (0 is the default). The same range of precision is the SQL Server type range (bytes) MariaDB type range size (bytes) Precision notes Date 0001 01-01-99.99 12: 31: 3 They cover the same range: Date 0.001-03-01 9.99912: 31 8: 0: 3 Round DateTime 0.01 0.1-02.9999 12: 31 8 0: 6 In MariaDB the value is near impossible to specify (see below). We can insert a value that requires fewer bits than that assigned to the null-bit pad on the left.

A binary string is a sequence of octets, not a character set, and the associated sorting is described by the binary data type descriptor. Decimal (p) is the exact numerical precision (p scale (n)) of a decimal number that is any number with a decimal point. A Boolean data type consists of different truth values (true, false, and boolean), and it supports unknown truth values, zeroes, and forbidden (not zero) constraints.

This syntax was deprecated in MySQL and will be removed in future versions of MySQL: float (p) A floating-point number. MySQL uses the p-value to specify whether to use a float or a double due to the data type.

Creating data types in PostgreSQL is done with the create-type command. For example, the following commonly used data types are organized into categories with a brief description of the value range and memory size. The native data type is the text data type, the numeric data type, and the date/time Boolean data type.

To understand what floating-point SQL is and what numerical data types are, you need to study computer science a little. Floating-point arithmetic was developed when saving memory was a priority and was used as a versatile method for calculating large numbers. The SQL Prompt Code Analysis Rule (BP023) warns you when using Floating over Real data types. It introduces significant inaccuracies into the type of calculations that many companies do with their SQL Server data.

The difference between a float and a p is that a real float is binary (not decimal) and has an accuracy equal to or greater than the defined value.

The reason for this difference is that the SQL standard specifies a default from 0 to D. Still, the implementation is free to choose a default M. This means that an operation of this type will result in a result different from the result it would produce for MariaDB type if you use enough decimal places. It is important to remember that numerical SQL data types sacrifice precision ranges to approximate the names.

Technology – How to Install Zip and Unzip in Linux


Zipping and unzipping files make complicated tasks like file transfer easier. Zip is a commonly utilized compression function that is portable and easy to use. One can even unzip files in Windows created in Linux.

Compression of files and folders allows faster and more effective transfer, storage, and emailing of files. Unzip is a tool that will enable you to decompress files. It is a utility unavailable on most Linux by default but can be installed easily. Below is an easy guide on doing a Linux zip and unzip installation.

How to Do a Linux Zip and Unzip Installation

There are different commands you ought to execute in the various Linux distributions.

How to Install Zip/Unzip in Debian and Ubuntu Systems

Install the zip tool by running;

$ sudo apt-get install zip

Sit back and wait a minute until the installation is completed. After installing, confirm the zip version installed by using the command

$ zip -v

To install the unzip utility, use an almost similar command

$ sudo apt install zip

You can also confirm the unzip tool installed using the command

$ unzip -v

How to Install Zip/Unzip in Fedora and Linux CentOS

The process is simple and can be done using the following command

To install the zip function, use

$ sudo dnf install zip

To install the unzip function, use

$ sudo dnf install unzip

You can check the path once the installation is complete using the following command

which unzip

You can also confirm if everything has been installed correctly by running the command below

unzip -v

It will give verbose with unzip utility details

Installing Zip/Unzip in Manjaro/Arch Linux

For these distributions, run the following command

$ sudo pacman -S zip

To install the unzip tool, run

$ sudo pacman -S unzip

Installing Zip/Unzip in OpenSUSE

Run the following command to install zip on OpenSUSE

$ sudo zipper install zip

To install the unzip tool, run

$ sudo zipper install unzip

Command Examples for Zipping and Unzipping Files in Linux

The basic syntax to create a .zip file is;

Zip options zipfile list_of_files

Using Linux to Unzip a File

You can use the unzip command without any options. It will unzip all the files to the current directory. An example is (the SampleZipFile is the result of your initial compression)


It will be unzipped in the current folder by default, as long as you have read-write access.

Cautions for Zipping and Unzipping Linux

Files and folders can be password-protected. A password-protected .zip file can be decompressed using the -P option. Run the following command for this obstacle

Unzip -P Password

The Password in the command above is the password for the .zip file.

You may be asked whether you want to overwrite the current files, skip extraction for the current file, overwrite all files, rename the current file, or skip extraction for all files. The options would be as shown;

[y]es, [n]o, [A]ll, [N]one, [r]ename

Override these files by using the -o option. For instance;

Unzip -o

Take caution while executing this command since it will completely overwrite the existing copies.

Bottom Line

With these essentials on Linux zip and unzip commands, you can start improving your file management now. However, for newer Linux distributions, the zip and unzip tools already come pre-installed. You won’t have to worry about installation.

Technology – When To Cache A Denodo View


Here’s a quick summary of practices about when to use cache when developing denotative views.  These guidelines come from the usual documentation and practical experience and may help you decide whether to cache a view. These are general guidelines, and they should happen the conflict with any guidance you’ve gotten from the Denodo; Please use the advice provided by Denodo.

What is a table cache?

In denodo, a cache is a database table that contains a result set of a view at the point in time, which is stored in a JDBC database

Why Cache?

Cache in Denodo can be used for several purposes:

Enhancing Performance

Improving performance is the primary purpose of caching and can be overcome slow data sources, data sources with limited SQL functionality, and/or tuned long runner views. 

Protecting data sources from costly queries

Caching can shield essential systems from excess load cause by query load from large, long-running queries and/or frequent queries during critical operation times.

Reusing complex data combinations and transformations

Caching views that consolidate data from multiple data sources, perform complex calculations, and apply complex derivations and business rules provide and optimize pre-enriched data set for consumption.

Cache View Modeling Best Practice

Add a primary key or a unique index

Adding a primary key or a unique index helps the optimizer define performance strategies and accurate cost estimates when the view joins to other views.

Add Cache indexes

Add Cache indexes based on understanding actual consumer usage of view (e.g., commonly used prompts, etc.)

Caching Tips and Cautions

Here are some considerations to keep in mind when making caching decisions.

Avoid Caching Intermediate Views

Where possible, avoiding caching of intermediate views allows the optimizer to make better decisions about data movement, pushdown, and branching.  This allows denodo to perform great SQL simplification. 

The volume of view to be cached

Where possible, avoid caching large views (e.g., views with a large number of rows/columns). Evaluate the cache size and make an appropriate decision.

Denodo Reference Links

Best Practices to Maximize Performance III: Caching

Denodo E-books

Denodo Cookbook: Query Optimization

Related Blog Posts

Denodo View Performance Best Practice

Technology – Denodo Supported Business Intelligence (BI) and Reporting Tools


The question of which PI tools to Denodo supports comes up perhaps more often than it should. The question usually comes in the form of a specific intelligence (BI) and reporting tool being asked about. For example, does Denodo support tableau or Cognos, etc.

Denodo does provide a list of intelligence (BI) and reporting tools that they support. However, the list of the most commonly used intelligence (BI) and reporting tools. And there is a reason for that, which, basically, boils down to whether or not the intelligence (BI) and reporting tools can use ODBC or has a JDBC driver.  So, even if it’s not on Denodo’s list doesn’t mean you can’t use the tool. , it may just mean that the software may not be one of the most frequently used.

Simple List Of Business Intelligence (BI) And Reporting Tools Supported By Denodo.

Here is a simple list of the tools which Donato has provided on their knowledgebase page. So, I strongly recommend you visit the page and for additional details and software specific documentation links.

  • Alteryx
  • IBM Cognos
  • Informatica Power Center
  • Looker
  • Microsoft SQL Server Reporting Services (SSRS)
  • Microstrategy
  • Pentaho
  • Power BI Desktop
  • Qlik
  • SAP Business Objects
  • SAP Lumira
  • Splunk
  • Tableau
  • Tibco Spotfire

Finding the Denodo page that lists these commonly use business intelligence (BI) and reporting tools sometimes causes issues.  Because they discuss it in terms of northbound, which is typical for them, but not the way other people think about it.

I have provided a link to the Denodo list of supported ODBC and JDBC business intelligence (BI) and reporting tools.  Hopefully, this post will make it a little easier for you to find the Denodo list of supported ODBC and JDBC business intelligence (BI) and reporting tools.

Denodo Reference Links

Denodo > Knowledge Base > Northbound Connections > Denodo and BI Tools

Technology – Denodo VQL To Get A List Of Cached View Names


Hello, this is a quick code snippet of a Denodo VQL (Denodo Virtual Query Language) to pull a list of cached view names which can be useful in pulling list of cached views. It’s not a complicated thing, but now that I’ve bothered to look it up on putting this note here mostly for me but you may find useful. I have found this useful for several reasons not the least of which is for creating jobs to do maintenance of cached view statistics.

Example VQL List Of Cached View Names

select name view_name

from get_views()

       where cache_status <> 0

       and database_name = ‘uncertified’

       and name not like ‘%backup’

       and name not like ‘%copy’

       and name not like ‘%test’

       and name <> ‘dv_indexes’;

Denodo Reference Links

·         Denodo > Denodo Platform 8.0 > User Manuals > Virtual DataPort VQL Guide > Stored Procedures > Predefined Stored Procedures > GET_VIEWS

Technology – Denodo View Performance Best Practice


Since I have been doing more training of beginning users of the Denodo, there have been a lot of questions around performance best practices and optimization. This article is a quick summary of some of the high points of the Donodo documentation, which are typically useful.

However, I would like to point out that the performance of Denodo views is:

  • usually, an ongoing process as your environment evolves and that your code changes
  • also, the performance of Denodo views may involve elements be on the Denodo framework itself, such as source system databases
  • and may require some administration configuration and reengineering to achieve your full benefits in terms of establishing environment sizing, data movement databases, use of bulk load processes, and maintenance processes (E. G., Scheduled index maintenance, scheduled statistics maintenance)
  • furthermore, good general SQL and coding practices have a great deal to do with performance unrelated to the denotative toolset.

Avoid ‘Create View From Query’

Using ‘Create view from Query’ to create base views bypasses the denodo optimization engine and pushes directly to the data source as written.

Make Sure Primary Keys (PK) And Unique Indexes Have Been Set

Accurately setting the primary key (PK) on views (especially, base views): aides:

  • The static optimization phase, primary keys, and unique indexes enable Join pruning and Aggregation push-down when appropriate
  • The Primary Key is presented to consuming applications and RESTFUL web services
  • Allow browsing across the associations of views with Data Catalog.

Mirror Source System Indexes

Aiding source database indexes to denodo base views aids the denodo optimizer to make appropriate decisions. However, avoid adding indexes on the table which do not exist in the source database. This will cause the optimizer to make incorrect execution plans and will undercut performance.

Note: Primary Keys (PK) are enforced by denodo, only used to enable optimization and application capabilities.

Apply Foreign Key (FK) And Referential Constraint Associations

An association represents a foreign key relation.  However, when a referential constraint is applied to an association, every row of the ‘Dependent’ view has a matching value in the ‘Principal’ view, which meets the Condition mapping. 

Adding Indexes To Cache Views

Adding Primary Keys and Unique indexes to cached tables also aids the optimizer and, if properly maintained, aids normal database operation when querying cache tables.

Gather and Maintain View Statistics

View statistics play an essential role, helping the optimizer make decisions about execution plans and data movement.  Statistics are most important for base views and cached, especially the total rows, average size, and distinct view values.

Caching Derived Views

Caching large, long-running, complex views can improve performance and limit source system impacts and Denodo if the cache guidelines are followed.  However, to optimize efficient cached views should have Primary Keys, Unique Indexes, performance indexes, and Statistics. See caching Guidelines for additional detail.

Use Effective Joins

Effective joins are essential to performant view.  Here are some high-level tips to keep in mind when building joins:

  • When possible, use simple join condition
  • Join on primary keys or unique indexes
  • Leverage Foreign Key (FK) and Primary Keys (PK).  Especially when an association referential constraint is defined
  • Use Inner joins when Possible
  • When using outer joins, Organize joins by data source when using multiple data sources
  • Avoid using view parameters and subqueries on the join condition

Use A Building Block Approach

Breaking views into discreet units allows the optimizer more opportuning to optimize SQL’s and performance.  Here are a few tips for using the building block approach:

  • Create views for different entities (Fact, Dimension, or Subject set)
  • Build views for discreet and/or distinct data subsets
  • Use SQL tuning rules to arrive at the smallest result set as soon as possible
  • Tune each view individually

Let Denodo Determine Optimal Data Movement

Where possible, avoid manually assigning data movement strategy.  Letting Denodo determine the optimal data movement strategy (assume other view optimizations have been applied) provides the greatest flexibility as the data changes across time.  When precursor views are updated and/or tuned and Prevents errors due to data movement strategy conflicts.

Denodo Reference Links

Best Practices to Maximize Performance I: Modeling Big Data and Analytics Use Cases

Best Practices to Maximize Performance II: Configuring the Query Optimizer

Best Practices to Maximize Performance III: Caching

Best Practices to Maximize Performance IV: Detecting Bottlenecks in a Query

Denodo Knowledge Base > Performance & Optimization

Denodo Knowledge Base > Performance

Denodo E-books

Denodo Cookbook: Query Optimization

Technology – Microsoft SQL Server Temp Table Types


There are a few basics to get to know when it comes to Microsoft SQL server temp table types. For the SQL server, temp table types global-local are two main types that are employed. DB developers are known for using temporary tables, but at the same time, they also may not be keen to go outside of their comfort zone or look at every single thing that they can do.

Temporary tables can actually accomplish quite a lot. Temporary tables can improve not only the performance of code but its ability to be maintained as well. At the same time, when things start to go left, it can be a massive pain for the DBA and developer, making everything go way slower than would be preferable.

So what do temporary tables do? A lot of the clue is in the name. They are most frequently used to provide users with the workspace they require for intermediate results when they are busy processing data inside a procedure or a batch. Temporary tables can help pass data from between stored procedures to a table-valued function or in Table-valued parameters, sending read-only tables to SQL server routines from applications and passing read-only temporary tables in turn for parameters. At the end of their use, automatic discarding is a process, so the user does not have to do anything.

Temporary tables include a variety, but the main ones you need to know are local temporary tables and global temporary tables (with a special tip of the hat to persistent temporary tables and table variables). Both global and local temporary tables start with their own symbol, which we will get into down further on.

Temporary tables are the superior pick to table variables when conducting complex processing for temporary data or using more data in them that isn’t as small. Users can utilize global or local temporary tables in SQL Server. Still, the server won’t store their definition permanently when it comes to database catalog views, which can cause problems with visibility and scope. While global tables can be seen by all sessions, the local tables can be seen in the current session alone.

Microsoft SQL Server Temp Table Types

SQL Server HAS for two types of temporary tables:

  • Local Temporary Tables, which are visible only in the current session
  • Global Temporary Tables, which are visible to all sessions

Local Temporary Tables (LTT)

  • Starts with the symbol ‘#’
  • Created with a CREATE TABLE statement, table name prefixed with a number sign (#numbersigntablename)
  • Visible in current sessions, cannot be accessed from later sessions
  • When created in a stored procedure, it will be automatically dropped when the procedure finishes
  • Nested stored procedures are needed to reference this LTT
  • Global Temporary Tables Can’t be referenced using stored procedure/application of the stored procedure to make LTT

Global Temporary Tables

  • Starts with the symbols ‘##’
  • Created with a CREATE TABLE STATEMENT, the table name is prefixed using two number signs (##twosignstablename)
  • Visible to all connections/sessions on SQL, can be used from other sessions
  • A global temporary table is dropped automatically as the table-creating session, and the other session’s final active Transact-SQL statement ends

Whether you’re familiar with temporary tables or new to them, the great news is that there’s always something more to learn about this subject as well as coding, programming, and computers. Temporary tables are easy to get the hang of once you get into working with them a bit. Thanks for reading, and happy learning!

Introducing DBVisualizer


It is difficult for most businesses to effectively use numerous data of information since enterprise data analysis and management is becoming more difficult and complex. With the growing chances of failure and higher stakes at risk, businesses need to choose the proper software application or software tool that will extract insights from the inside information and manage the database of their enterprise.

What is DBVisualizer?

DBVisualizer is designed as a universal database tool to be used by data analysts, database administrators, and software developers. This software application offers a straightforward and all-in-one UI or user interface for enterprise database management. It comes in both a paid professional edition that provides a wider variation of features and a free edition.

Is DBVisualizer an open-source application?

No, it is a proprietary software application.

Will DBVisualizer run on both Linux and Windows?

DBVisualizer is also dubbed as the universal database tool. It implies that it is capable of running on all of the major operating systems. Hence, the DBVisualizer SQL editor runs smoothly on Windows, Linux/UNIX, and macOS.

Which technical roles would use DBVisualizer most?

Technical roles that deal with databases regularly such as database administrators, developers, and analysts require specific aspects that can be of help to make their work easier. With DBVisualizer, developers can access the advanced DBVisualizer SQL editor that includes smart features that are needed in writing queries, avoiding errors, and speeding up the coding process. For analysts, it will be easier and quicker for them to understand and access the data with the insight feature. They can also easily manage and create the database visually. Lastly, database administrators can be assured that data is secured and preserved during sessions with the autosave feature of DBVisualizer. The software application is also highly optimized and customized to fit the workflow of the user.

Databases or databases types that the DBVisualizer supports

  • Db2
  • Exasol
  • Derby
  • Amazon Redshift
  • Informix
  • H2
  • Mimer SQL
  • MariaDB
  • Microsoft SQL Server
  • MySQL
  • Netezza
  • Oracle
  • PostgreSQL
  • NuoDB
  • Snowflake
  • SQLite
  • Vertica

Databases that are accessible with JDBC (Java Database Connectivity) driver is capable of working or running with DBVisualizer. You can also see DBVisualizer’s official website that some users have successfully used the software with other non-official database systems such as IBM DB2 iSeries, Firebird, Teradata, and Hive. Aside from that, you can also see the list of other databases that will soon be supported by DBVisualizer.

What are the most essential DBVisualizer documentation links?

Here are the following links that can cover the basic downloads to the application and basic information.

DBVisualizer Site

Installer download link for macOS, Windows 64-bit, Windows 32-bit, Linux, and Unix:

DbVisualizer Users Guide

List of features for free and pro version:

Introducing SQuirreL SQL


The business landscape of today is controlled and influenced by big data and it is also getting bigger and bigger as time goes by. Since the amount of data that is needed to be stored and organized is massive, data workers use SQL to access the information in a relational database. Software applications such as SQL clients can let users create SQL queries, access the database’s information, and view the models of relational databases. One of the most famous and sought out option for SQL clients is the SQuirreL SQL Client.

What is SQuirreL SQL?

It is a client for examining and retrieving SQL databases via a user-friendly and simple graphical user interface (GUI). It can run on any computer that has a Java Virtual Machine (JVM) since SQuirreL SQL is a programming language written in Java. You can download the SQuirreL SQL editor for free and is available in different languages such as English, Chinese, German, Russian, Portuguese, French, and Spanish.

Which technical roles would use SQuirreL SQL most?

SQuirreL SQL is useful and convenient for anyone who works on SQL databases regularly such as software developers, database administrators, application administrators, software testers, etc. For application administrators, they can use SQuirreL SQL to fix a bug at the level of the database. Aside from that, correcting and scanning for incorrect values in a table is easy using SQuirreL SQL. It can also help database administrators in overseeing huge varieties of relational databases, checking problems in tables, manage databases using commands, and viewing metadata.

Is it an open-source application?

SQuirreL SQL Client is a single, open-source graphical front end, Java-written program that enables you to issue SQL commands, perform SQL functions, and view the contents of a database. JDBC-compliant databases are supported by the built graphical front end. It also uses the most popular choice for the open-source software which is the GNU General Public License v2.0.

Will SQuirreL SQL run on both Linux and Windows?

SQuirreL is available under an open-source license and a popular Java written SQL database client. It runs under Microsoft Windows, Linux, and macOS.

Here are the supported databases of SQuirreL SQL:

  • Apache Derby
  • Hypersonic SQL
  • Axion Java RDBMS
  • H2 (DBMS)
  • ClickHouse
  • InterBase
  • Ingres (also OpenIngres)
  • Informix
  • InstantDB
  • IBM DB2 for Windows, Linux, and OS/400
  • Microsoft SQL Server
  • Microsoft Access with the JDBC/ODBC bridge
  • MySQL
  • Mimer SQL
  • Mckoi SQL Database
  • MonetDB
  • Netezza
  • Oracle Database 8i, 9i, 10g, 11g
  • PostgreSQL 7.1.3 and higher
  • Pointbase
  • Sybase
  • Sunopsis XML Driver (JDBC Edition)
  • Teradata Warehouse
  • Vertica Analytic Database
  • Firebird with JayBird JCA/JDBC Driver

What are the most essential SQuirreL SQL documentation links?

SQuirreL SQL Universal SQL Client

Install SQuirreL for Linux/Windows/others:

Install SQuirreL for MacOS x:

Install latest snapshots:

Overview of all available downloads:

Technology – Integration Testing Vs. System Testing


Software applications may contain several different modules, which essentially require a partnership between teams during the development process. The individually developed modules get integrated to form a ready-to-use software application. But before the software gets released to the market, it must be thoroughly tested to ensure it meets user requirement specifications.

Integration Testing

The integration testing phase involves assembling and combining the modules tested separately. It helps detect defects in the interfaces during the early stages and ensure the software components work as one unit.

Integration testing has two puposes: component and system integration testing.

  • Component integration testing: With this level of testing, it deals explicitly with the interactions between the software components tested separately.
  • System integration testing: It focuses on evaluating the interactions between various types of systems or micro-services.

System Testing

System testing is the most expansive level of software testing. It mainly involves:

  • Load testing: Determines the level of responsiveness and stability under real-life loads.
  • Usability testing: Determines the ease of use from the perspective of an end-user.
  • Functional testing: Ensures all the software features work as intended.
  • Security testing: Detects if there are any security flaws in the system that might lead to unauthorized access to data.
  • Recovery testing: Determines the possibility of recovery if the system crashes.
  • Regression testing: Confirms the software application changes have not negatively affected the existing features.
  • Migration testing; Ensures the software allows for seamless migration from old infrastructure systems to new ones when necessary.

Main Differences between Integration Testing and System Testing

Integration testing

  • Performed after modules (units) of the software have been tested separately.
  • It checks the interface modules.
  • Limited to functional testing.
  • Testers use the big bang, top-down, bottom-up, or sandwich/hybrid testing approaches.
  • Testers use a combination of white/grey box testing and black-box testing techniques.
  • Test cases mimic the interactions between modules.
  • Performed by independent developers or software developers themselves.

System testing

  • Performed after integration testing.
  • Checks the system as a whole to ensure it meets the end-user requirements.
  • It features both functional and non-functional test aspects.
  • Tests cover several areas, including usability, performance, security, scalability, and reliability.
  • Testers use black-box testing techniques.
  • Test cases mimic the real-life circumstances of a user.
  • Performed by test engineers.

There you have it!

Introducing DBeaver


With high data volumes and complex systems, database management is becoming more in-demand in today’s economy. Aside from keeping up with the business, organizations also need to innovate new ideas to progress further in the industry. With the use of database management tools, a web interface is provided for database administrators, allowing SQL queries to run.

What is DBeaver?

DBeaver is an open-source universal management tool that can help anyone in professionally working with their data. It will help you maneuver your data similar to a typical spreadsheet, construct analytical reports of various data storage records, and convey information. Effective SQL-editor, connection sessions monitoring, many administration features, and schema and data migration capabilities are imparted with DBeaver’s user on the advanced database. Aside from its usability, it also supports a wide array of databases.

Here are the other offers of DBeaver:

  • Cloud data sources support
  • Security standard of enterprise support
  • Support of multiplatform
  • Meticulous design and implementation of user interface
  • Can work with other integration extensions

Will it run on both Linux and Windows?

DBeaver is downloadable for Windows 9/8/10, Mac OS X, and Linux. It requires at least Java 1.8 version, and OpenJDK 11 bundle is already included in DBeaver’s MacOS and Windows installer.

Main features of DBeaver

DBeaver main features include:

  • Various data sources connection
  • Edit and view data
  • Advanced security
  • Generate mock-data
  • Built-in SQL editor
  • Builds the visual query
  • Transfer data
  • Compares several database structures
  • Search metadata
  • And generates schema/database ER diagrams.

Which databases or database types does DBeaver support?

More than 80 databases are supported by DBeaver, and it includes some of the well-known databases such as:

  • MySQL
  • Oracle
  • MS Access
  • SQLite
  • Apache Hive
  • DB2
  • PostgreSQL
  • Firebird
  • Presto
  • Phoenix
  • SQL Server
  • Teradata
  • Sybase

What are the most essential documentation links?

Related References

Does charging your iPhone after 100% hurt the battery?


I use my phone all day long and leave it on the charger with any issues through three versions of the iPhone now, and I’ve never had any problems.  However, I freely admit that I have never really thought about having my iPhone on the battery charger all the time, but someone asked if it was bad for the battery and got me to thinking.

Does the iPhone battery stop charging charger when full?  

The iPhone really is smart enough to stop accepting the charge once the iPhone’s battery reaches 100%capacity. After that, you are basically using your iPhone from the power source rather than the battery. Plus, when you do remove your iPhone from the power source, your iPhone starts out with a 100% charge.

What does shorten iPhone Battery Life?

What does shorten the battery’s life span is routinely letting the iPhone battery go dead before charging it back to 100%. When Ever possible, plug the iPhone in when the charge falls to 30% or less to reduce stress on the battery. “It’s better to recharge for shorter periods more often than to consistently wait for lengthy high-volume charging.  Letting the battery get hot also takes a toll. If you’re going to leave your iPhone plugged in for a while, removing the phone the case to let the escape is probably a good idea.

Technology – Understanding Data Model Entities


Data Modeling is an established technique of comprehensively documenting an application or software system with the aid of symbols and diagrams. It is an abstract methodology of organizing the numerous data elements and thoroughly highlighting how these elements relate to each other. Representing the data requirements and elements of a database gra phically is called an Entity Relationship Diagram, or ERD.

What is an Entity?

Entities are one of the three essential components of ERDs and represent the tables of the database. An entity is something that depicts only one information concept. For instance, order and customer, although related, are two different concepts, and hence are modeled as two separate entities.

A data model entity typically falls in one of five classes – locations, things. events, roles, and concepts. Examples of entities can be vendors, customers, and products. These entities also have some attributes associated with them, which are some of the details that we would want to track about these entities.

A particular example of an entity is referred to as an instance. Instances form the various rows or records of the table. For instance, if there is a table titled ‘students,’ then a student named William Tell will be a single record of the table.

Why Do We Need a Data Model Entity?

Data is often stored in various forms. An organization may store data in XML files, spreadsheets, reports, and relational databases. Such a fragmented data storage methodology can present challenges during application design and data access. Writing maintainable and efficient code becomes all the more difficult when one has to think about easy data access, scalability, and storage. Additionally, moving data from one form to the other is difficult. This is where the Entity Data Model comes in. Describing the data in the form of relationships and entities, the structure of the data becomes independent of the storage methodology. As the application and data evolve, so does the Data Model Entity. The abstract view allows for a much more streamlined method of transforming or moving data.

SQL Server Length Function Equivalent


The purpose of the Length function in SQL

The SQL LENGTH function returns the number of characters in a string. The LENGTH function is available in many Database Management Systems (DBMS).

The LENGTH Function Syntax

  • LENGTH(string)

LENGTH Function Notes

  • If the input string is empty, the LENGTH returns 0.
  • If the input string is NULL, the LENGTH returns NULL.

Length Function Across Databases

When working as a technical consultant, one has to work with customer’s databases and as you move from one database to another you will find that the function commands may vary–assuming the database has an equivalent function.

Working with VQL and SQL Server got me thing about the LENGTH() function, so, here is a quick references list, which does include the SQL Server.  


  • LENGTH( )

IBM Informix



  • LENGTH( )

Microsoft SQL Server

  • LEN( )




  • LENGTH( )


  • LENGTH( )



SOQL (SalesForce)

  • SOQL has no LENGTH function

VQL (Denodo)

  • LEN( )

Denodo Modeling Associations


Denodo associations, referential constraints are part art and part science. The importance of both primary keys and associations and their effect on the denotative optimizer is hard to overstate. Combining appropriately applying primary keys and associations based on actual view use is an essential element in tuning denodo and getting the denodo optimizer to provide the best results.  To simplify matters, here are some basic concepts to help get you started.

Enterprise Relationship Diagrams (ERD)

Associations do more than just reflect the source system Enterprise Relationship Diagrams (ERD). To be denodo associations need to:

  • Be added based on actual use — not only based on source system Enterprise Relationship Diagrams (ERD). This is especially true if you are skipping tables for simplicity or efficiency purposes, which otherwise would have been used based on the Enterprise Relationship Diagram (ERD).
  • Associations need to be applied for views that are being reused in other views.  These associations need to mirror the joins to support the join and help the optimizer understand the actual relationship.

Placement of Denodo Associations

The knowledge base article (‘Best Practices to Maximize Performance II: Configuring the Query Optimizer’) is a bit misleading as it does imply that you need associations in both layers. Ideally, associations between entities in the same data source will be defined as Foreign Key constraints and can be imported from the data source (at the base view layer). Associations defined within the Denodo Platform are best defined in the semantic layer (i.e., between user-facing derived views). There is no need to define duplicate associations at other levels.  Denodo is planning to update the (‘Best Practices to Maximize Performance II: Configuring the Query Optimizer’) document to clarify this understanding of the proper placement of associations within the logical layer structure of denodo.

Importance Primary And Foreign Keys

It is essential when working with associations that the primary keys (PK) and foreign keys (FK) between views are correctly understood and identified. These primary key (PK) and foreign key (FK) indexes need to be applied (if not already imported) to the affected views, in addition to applying the referential constraints of the Association to provide the maximum opportunity for the denotative optimizer to make the correct choices.

Determining the “Principal” and “Dependent” Association Constraint

The referential constraint is defined as part of an association between two entity types. The definition for a referential constraint specifies the following information:

  • The “Principal” end of the constraint is an entity type whose entity Primary key (PK) is referenced by the foreign key (FK) dependent end.
  • The “Dependent” end of the constraint is the foreign key (FK), which references the Primary Key (PK) of the opposite side of the constraint.

Not all associations will have a Primary Key (PK) and Foreign Key (FK) relationship. Still, where these relationships exist, the referential constraint must be applied and applied correctly to ensure the denodo optimizer uses the correct optimization logic.

General Guidance When working with Data Warehouse Schemas

The basic guidelines for association referential constraints are:

  • Between dimension and Fact: the dimension is the principle
  • Between two Facts: Parent fact (the one, in a one-to-many relationships) is Primary
  • Between dimension and Bridge: The Dimension is primary

Denodo References

Denodo > Community > denodo Platform 8.0 > Associations

Denodo > Knowledge Base > Best Practices > Best Practices to Maximize Performance II: Configuring the Query Optimizer

Technology – Denodo SQL Type Mapping


denodo 7.0 saves some manual coding when building the ‘Base Views’ by performing some initial data type conversions from ANSI SQL type to denodo Virtual DataPort data types. So, where is a quick reference mapping to show to what the denodo Virtual DataPort Data Type mappings are:

ANSI SQL types To Virtual DataPort Data types Mapping

ANSI SQL TypeVirtual DataPort Type
BIT (n)blob
CHAR (n)text
DECIMAL (n)double
DECIMAL (n, m)double
NCHAR (n)text
NUMERIC (n)double
NUMERIC (n, m)double
NVARCHAR (n)text
VARCHAR (n)text

ANSI SQL Type Conversion Notes

  • The function CAST truncates the output when converting a value to a text, when these two conditions are met:
  1. You specify a SQL type with a length for the target data type. E.g. VARCHAR(20).
  2. And, this length is lower than the length of the input value.
  • When casting a boolean to an integertrue is mapped to 1 and false to 0.

Related References

denodo 8.0 / User Manuals / Virtual DataPort VQL Guide / Functions / Conversion Functions

Technology – Analytics Model Types


Every day, businesses are creating around 2.5 quintillion bytes of data, making it increasingly difficult to make sense and get valuable information from this data. And while this data can reveal a lot about customer bases, users, and market patterns and trends, if not tamed and analyzed, this data is just useless. Therefore, for organizations to realize the full value of this big data, it has to be processed. This way, businesses can pull powerful insights from this stockpile of bits.

And thanks to artificial intelligence and machine learning, we can now do away with mundane spreadsheets as a tool to process data. Through the various AI and ML-enabled data analytics models, we can now transform the vast volumes of data into actionable insights that businesses can use to scale operational goals, increase savings, drive efficiency and comply with industry-specific requirements.

We can broadly classify data analytics into three distinct models:

  • Descriptive
  • Predictive
  • Prescriptive

Let’s examine each of these analytics models and their applications.

Descriptive Analytics. A Look Into What happened?

How can an organization or an industry understand what happened in the past to make decisions for the future? Well, through descriptive analytics.

Descriptive analytics is the gateway to the past. It helps us gain insights into what has happened. Descriptive analytics allows organizations to look at historical data and gain actionable insights that can be used to make decisions for “the now” and the future, upon further analysis.

For many businesses, descriptive analytics is at the core of their everyday processes. It is the basis for setting goals. For instance, descriptive analytics can be used to set goals for a better customer experience. By looking at the number of tickets raised in the past and their resolutions, businesses can use ticketing trends to plan for the future.

Some everyday applications of descriptive analytics include:

  • Reporting of new trends and disruptive market changes
  • Tabulation of social metrics such as the number of tweets, followers gained over some time, or Facebook likes garnered on a post.
  • Summarizing past events such as customer retention, regional sales, or marketing campaigns success.

To enhance their decision-making capabilities businesses have to reduce the data further to allow them to make better future predictions. That’s where predictive analytics comes in.

Predictive Analytics takes Descriptive Data One Step Further

Using both new and historical data sets predictive analytics to help businesses model and forecast what might happen in the future. Using various data mining and statistical algorithms, we can leverage the power of AI and machine learning to analyze currently available data and model it to make predictions about future behaviors, trends, risks, and opportunities. The goal is to go beyond the data surface of “what has happened and why it has happened” and identify what will happen.

Predictive data analytics allows organizations to be prepared and become more proactive, and therefore make decisions based on data and not assumptions. It is a robust model that is being used by businesses to increase their competitiveness and protect their bottom line.

The predictive analytics process is a step-by-step process that requires analysts to:

  • Define project deliverables and business objectives
  • Collect historical and new transactional data
  • Analyze the data to identify useful information. This analysis can be through inspection, data cleaning, data transformation, and data modeling.
  • Use various statistical models to test and validate the assumptions.
  • Create accurate predictive models about the future.
  • Deploy the data to guide your day-to-data actions and decision-making processes.
  • Manage and monitor the model performance to ensure that you’re getting the expected results.

Instances Where Predictive Analytics Can be Used

  • Propel marketing campaigns and reach customer service objectives.
  • Improve operations by forecasting inventory and managing resources optimally.
  • Fraud detection such as false insurance claims or inaccurate credit applications
  • Risk management and assessment
  • Determine the best direct marketing strategies and identify the most appropriate channels.
  • Help in underwriting by predicting the chances of bankruptcy, default, or illness.
  • Health care: Use predictive analytics to determine health-related risk and make informed clinical support decisions.

Prescriptive Analytics: Developing Actionable Insights from Descriptive Data

Prescriptive analytics helps us to find the best course of action for a given situation. By studying interactions between the past, the present, and the possible future scenarios, prescriptive analytics can provide businesses with the decision-making power to take advantage of future opportunities while minimizing risks.

Using Artificial Intelligence (AI) and Machine Learning (ML), we can use prescriptive analytics to automatically process new data sets as they are available and provide the most viable decision options in a manner beyond any human capabilities.

When effectively used, it can help businesses avoid the immediate uncertainties resulting from changing conditions by providing them with fact-based best and worst-case scenarios. It can help organizations limit their risks, prevent fraud, fast-track business goals, increase operational efficiencies, and create more loyal customers.

Bringing It All Together

As you can see, different big data analytics models can help you add more sense to raw, complex data by leveraging AI and machine learning. When effectively done, descriptive, predictive, and prescriptive analytics can help businesses realize better efficiencies, allocate resources more wisely, and deliver superior customer success most cost-effectively. But ideally, if you wish to gain meaningful insights from predictive or even prescriptive analytics, you must start with descriptive analytics and then build up from there.

Descriptive vs Predictive vs Prescriptive Analytics

Technology – Denodo Data Virtualization Project Roles


A Denodo virtualization project typically classifies the project duties of the primary implementation team into four Primary roles.

Denodo Data Virtualization Project Roles

  • Data Virtualization Architect
  • Denodo Platform Administrator
  • Data Virtualization Developer
  • Denodo Platform Java Programmer
  • Data Virtualization Internal Support Team

Role To Project Team Member Alignment

While the denodo project is grouped into security permissions and a set of duties, it is import to note that the assignment of the roles can be very dynamic as to their assignment among project team members.  Which team member who performs a given role can change the lifecycle of a denodo project.  One team member may hold more than one role at any given time or acquire or lose roles based on the needs of the project.

Denodo virtualization Project Roles Duties

Data Virtualization Architect

The knowledge, responsibilities, and duties of a denodo data virtualization architect, include:

  • A Deep understanding of denodo security features and data governance
  • Define and document5 best practices for users, roles, and security permissions.
  • Have a strong understanding of enterprise data/information assets
  • Defines data virtualization architecture and deployments
  • Guides the definition and documentation of the virtual data model, including, delivery modes, data sources, data combination, and transformations

Denodo Platform Administrator

The knowledge, responsibilities, and duties of a Denodo Platform Administrator, Include:

  • Denodo Platform Installation and maintenance, such as,
    • Installs denodo platform servers
    • Defines denodo platform update and upgrade policies
    • Creates, edits, and removes environments, clusters, and servs
    • Manages denodo licenses
    • Defines denodo platform backup policies
    • Defines procedures for artifact promotion between environments
  • Denodo platform configuration and management, such as,
    • Configures denodo platform server ports
    • Platform memory configuration and Java Virtual Machine (VM) options
    • Set the maximum number of concurrent requests
    • Set up database configuration
      • Specific cache server
      • Authentication configuration for users connecting to denodo platform (e.g., LDAP)
      • Secures (SSL) communications connections of denodo components
      • Provides connectivity credentials details for clients tools/applications (JDBC, ODBC,,,etc.)
      • Configuration of resources.
    • Setup Version Control System (VCS) configuration for denodo
    • Creates new Virtual Databases
    • Create Users, roles, and assigns privileges/roles.
    • Execute diagnostics and monitoring operations, analyzes logs and identifies potentials issues
    • Manages load balances variables

Data Virtualization Developer

The Data Virtualization Developer role is divided into the following sub-roles:

  • Data Engineer
  • Business Developer
  • Application Developer

the knowledge, responsibilities, and duties of a Denodo Data Virtualization Developer, by sub-role, Include:

Data Engineer

The denodo data engineer’s duties include:

  • Implements the virtual data model construction view by
    • Importing data sources and creating base views, and
    • Creating derived views applying combinations and transformations to the datasets
  • Writes documentation, defines testing to eliminate development errors before code promotion to other environments

Business Developer

The denodo business developer’s duties include:

  • Creates business vies for a specific business area from derived and/or interface views
  • Implements data services delivery
  • Writes documentation

Application Developer

The denodo application developer’s duties include:

  • Creates reporting vies from business views for reports and or datasets frequently consumed by users
  • Writes documentation

Denodo Platform Java Programmer

The Denodo Platform Java Programmer role is an optional, specialized, role, which:

  • Creates custom denodo components, such as data sources, stored procedures, and VDP/iTPilot functions.
  • Implements custom filters in data routines
  • Tests and debugs any custom components using Denodo4e

Data Virtualization Internal Support Team

The denodo data virtualization internal support team’s duties include

  • Access to and knowledge of the use and trouble of developed solutions
  • Tools and procedures to manage and support project users and developers

Technology – Denodo Virtual Dataport (VDP) Naming Convention Guidance


Denodo provides some general Virtual Dataport naming convention recommendations and guidance.  First, there is the general guidance for basic Virtual Dataport object types, and secondly, more detailed naming guidance recommends.      

Denodo Basic Virtual Dataport (VDP) Object Prefix Recommendations

  • Associations Prefix: a_{name}
  • Base Views Prefix: bv_{SystemName}_{TableName}
  • Data Sources Prefix: ds_{name}
  • Integration View Prefix: iv_{name}
  • JMS Listeners Prefix: jms_{name}
  • Interfaces Prefix: i_{name}
  • Web Service Prefix: ws_{name}

Virtual Dataport (VDP) High-Level Project Structure

Different layers are identified when creating logical folders hierarchies within each Data Virtualization project.  The recommended high-Level project folders are:


  • Connectivity, where related physical systems, data sources, and base views are part of this folder.


  • Integration views include the combinations and transformations views for the next layers. Not directly consumed views at this level.

Business Entities

  • Business Entities include Canonical business entities exposed to all users.

Report Views

  • Report Views include Pre-built reports and analysis frequently consumed by users.

Data Services

  • Data Services include web services for publishing views from other levels. It can contain views need for data formatting and manipulation.


  • This folder stores associations.

JMS listeners

  • This folder stores JMS listeners

Stored procedures

  • This folder stores custom stored procedures developed using the VDP API.

Denodo Knowledge Base VDP Naming Conventions

Additional more detailed naming convention and Virtual Dataport organization guidance are available in the denodo Community Knowledge Base, under Operations

Denodo Knowledge Base Virtual Dataport (VDP) Naming Conventions Online Page

Denodo Scheduler Naming Conventions

denodo Virtualization – Useful Links


Here are some denodo Virtualization references, which may be useful.

Reference Name Link
denodo Home Page
denodo Platform 7.0 Documentation
denodo Knowledge Base and Best Practices
denodo Tutorials
denodo Express 7.0 Download
Denodo Virtual Data Port (VDP)
JDBC / ODBC drivers for Denodo
Denodo Governance Bridge – User Manual
Virtual DataPort VQL Guide
Denodo Model Bridge – User Manual
Denodo Connects Manuals
Denodo Infosphere Governance Bridge – User Manual