What is a Database?
Whether you are looking to understand basic database concepts for your home or business, or you want to understand database concepts for an interview or school, this article is for you.
Database Quick Definition
A database is just an organized collection of electronically stored information. There are many different types of databases including centralized, distributed, relational and NoSQL and more. A database system may fall into one or more of these categories. Data repositories and data warehouses are simply a collection of databases that are stored and accessed together. Example database applications may include inventory for ecommerce sites, sales people tracking customers, hotels tracking guests, hospitals tracking patients, warehouses tracking inventory, banking financial applications and schools tracking students. If you look at our Tracker Ten software catalog you will see specialized databases for a variety of applications. And if you don’t see your application listed, please contact us as we can probably create a custom product for you!
Database operations can be performed using common programming languages like Python, Java or C#, or they can be performed using specialized database languages like SQL (Structured Query Language). Regardless of the actual implementation method, Databases use something called “Online Transactional Processing” (OLTP) to add, modify and remove database items. With OLTP database changes happen in real time. Real time processing is important in numerous applications. For example, when you purchase an item in an online store, the available inventory quantity needs to be instantly deducted, so another customer can’t purchase the same item.
Information stored in a database is optimized to perform these types of OLTP operations quickly and efficiently. These operations are also “ACID” compliant (Atomic, Consistent, Isolated and Durable). This simply means that the data in the database can be trusted even if the database is brought down due to a power failure, bug or other unexpected error. Databases may also employ mechanism like caching to improve performance. One possible database caching strategy might be storing commonly retrieved information in an area of memory that is fast to access. Data Warehouses use something called Online Analytical Processing (OLAP). This simply means that the warehouse can combine information from multiple sources, to provide you with different points of view into the data. OLAP is specially designed to work quickly and efficiently. Our Tracker Ten system uses a proprietary OLTP mechanism to add, modify and delete items.
Types of Database Applications
A relational database stores information in tables that are related to each other. For example, a retail store product may be stored in multiple tables, with each table representing an aspect of the product, like current quantity, location, supplier etc. A key concept in relational databases is normalizing the data. This simply means organizing the data in such a way that the storage of the same information is not duplicated. A database system like SQL provides operators that are designed to query and analyze the data. Relational database concepts to be aware of include different types of relationships that occur between the data stored in relational database tables. For example, tables may have a one-to-one relationship, a one-to-many relationship and a many-to-many relationship. These relationships are exactly what they sound like. For example, one-to-one relationship means that one entry in one table is associated to exactly one entry in another table. If you opt to use a product like our Tracker Ten database, our software automatically handles these types of relationships in the background, and you don’t have to worry about the implementation details. Our system also automatically handles data normalization.
A centralized database stores data in a single location. A centralised database can either be cloud based, or local to your own computer system or network. Centralized databases offer a high level of security, as all database access happens at the same point of entry, and all data access can be carefully monitored. Since the data is all in one place, everybody works with the same data, promoting collaboration and idea sharing among cross-functional projects. This is different from a distributed database, where data is stored across multiple physical locations. Our Tracker Ten system is a centralized database system, since all information is stored on your desktop computer.
While a centralized database approach offers numerous advantages and benefits, there are also some disadvantages. They are highly dependant on network connectivity (i.e., the internet connection between your computer and the database server). When database load is high, bottlenecks can cause system slow downs. In fact, you often hear about things like microservice database bottlenecks, database IO bottleneck and memory database bottlenecks. All of these issues occur because multiple services or people are trying to access the same data at the same time. Analyzing and fixing these bottlenecks can be an expensive process, and it can require the reorganization of data. Further since data is stored in one place, there is a risk that you will lose all of your data if your database gets corrupted or goes down. Fortunately, these issues can be mitigated using regular system backups.
The opposite of a centralized database would be a distributed database. Just like the name implies, in a distributed database information is stored on a collection of distributed computers, often in different physical locations, instead of a single source. A distributed database may be used in an organization that is spread across different geographic locations, like a corporation with several branch offices. Our Tracker Ten system could be setup as a distributed database, as each install uses its own database file. In fact, if you are looking for a “homogeneous distributed database”, where the same types of data need to be stored in different locations, we may able to offer a very cost-effective solution (we can also offer heterogenous systems, where information stored at different sites differs, but these may cost more to setup). Please contact us for details.
NOSQL Database vs Relational Database Performance
A NoSQL database is simply a database that does not store data in traditional table structures. Common types of NoSQL databases include document, key-value and graph. Unlike SQL databases, NoSQL databases are non-relational. This means that NoSQL databases generally do not store relationships between data items. These types of systems can come in handy when there is no logical relationship between database items. For example, a database of magazine articles may be stored in a NoSQL database, as the magazine articles are independent of each other. Another example of where it makes sense to use a NoSQL database might be the storage of JSON. One big advantage of NoSQL databases is that they are designed to expand – if you need to add more information you just need to horizontally scale (i.e., add more disk storage). Many NoSQL databases are open source, meaning that they are free to use. However, even though these systems may be free to use, they still require considerable skill to setup and manage. By opting to use a database system like Tracker Ten, you don’t need to worry about any database implementation details.
Hopefully this article has given you a brief overview of what databases do, and how databases can be setup. If you need help setting up a database for your business or organization, please contact us. We can often offer solutions for far less money than our competitors.