What is a database?
In computing, a database is an organized collection of information or data that is usually made accessible to a user by a database management system, or DBMS. The DBMS is just a software program that does exactly what you would think. It’s software that allows users to manage the database to create, read, update, and delete data, also known as, CRUD. This data can contain anything from numbers, to decimals, to names, to account details, to dates, to True, False, YES, NO, maybe so (Null). We can also structure and group this data in a way that makes it more understandable.
Content Overview
- History of Databases
- 4 Major Types of Databases
- The Importance of Databases
- Data Types
- SQL
History of Databases
Once upon a time we used sequential storage systems such as magnetic tape. If we ever wanted to locate a certain piece of data, we would have to access pieces of data sequentially until we found what we wanted. This was the old school way of accessing data, now we have something more efficient that allows for a more direct approach, known as, direct access storage media such magnetic disks. With direct access storage media, we could locate data directly rather go through unnecessary amounts of data. This development along with other improvements to make technology faster is what gave way to the databases we have today.
4 Major Types of Databases
- Hierarchical databases
- Network databases
- Relational databases
- Object-oriented databases
Hierachial databases
Hierarchical databases are a type of navigational database where data nodes point to other data nodes. The hierarchical database model was developed by IBM in the 1960s. Hierarchical databases are organized in a tree-like structure where the data is stored as records and are connected to each other through links. Hierarchical database models start with one root node where all following nodes/records stem from. It is required that each record must have a parent record and a parent record can multiple child records.
Network databases
Network databases are also navigational databases, but unlike hierarchical databases where one parent relates to any number of child records, in network database models multiple parent records can relate to multiple child records. So instead of a one-to-many relationship effect it allows for a many-to-many relationship of data. The network database model was invented by an American Computer Scientist named Charles Bachman. This model is sometimes referred to as the CODASYL data model as its specifications were standardized and published by CODASYL in 1969.
Relational databases
Ahhh relational databases, the most predominantly used database model of our time. Developed by Edgar F. Codd in 1970 to take a different approach from the traditional navigational database models. He though it would be better to organize the data by content relevance consisting of tables of rows and columns. Tables would be an entity or idea, with rows being a single instance of that idea and all the columns are attributes of each instance in that table. I know, it’s complicated in writing but maybe think of it like an excel sheet with rows and columns. The sheet represents “people.” Each row represents a single person, and the columns represent something about the people in the rows like their name, birthday, etc.
Each table is an entity that represents a unique concept with instances and attributes. Now you can have multiple tables of different concepts that relate to each other. For example, let’s say we have our table called ‘people’ and another table called ‘dogs’ where a person is the owner of one more of these dogs and the dogs in the dog table are individual instances with attributes. You kind of get the idea that basically tables can represent the content and relationships of data a bit more intuitively and because of this, relational databases are in widespread use today.
Object-Oriented databases
OOP I did it again. The Object-Oriented Programming paradigm. The emergence of this paradigm paved way for a new style of programming that also made programming a little bit more intuitive. Objects could be created with code and these objects could have attributes and methods, but more on this another time. The adoption of this programming paradigm in the world lead to complications implementing it smoothly with pre-existing relational database models.
The issue was called “object-relational impedance mismatch” which is basically a fancy way of saying, “Hey, these two logical models of data orientation aren’t exactly easy to convert to one another.” This is what lead to the solution of object-oriented databases. These database models are not as dominant as relational database models but do offer solutions to problems that were arising between the OOP and relational models. Object-Oriented data models store objects along with their attributes together in the database system rather than breaking it up into individual data points.
The Importance of Databases
Databases are everywhere and they play a pivotal role in this age of information. Data can come in many shapes and sizes. This data can be certain facts about people, places, and things. It can be time spent on certain websites or applications. The data can also store preferences, history, facts, and other nuanced details about literally anything. The data representation possibilities are endless. Many application algorithms use the data collected and stored in these databases to deliver relevant content based on these data points. The world is driven by data and now we can capture it and analyze it for more in-depth insights. The rise of the internet in the 1990’s generated big data, characterized by large data volumes and rapidly changing data structures. Many database models have been optimized and improved in support of this rise in big data.
Data Types
The type of data that can be stored is one of the following:
- Integers (Numeric whole numbers)
- Floats (Decimal numbers)
- Strings (Words, sequence of characters)
- Dates (Dates, times, etc.)
- Boolean (True or False)
- Null (Unknown or undetermined value)
- Single Characters (A symbol or letter)
These data types seem basic, but you would be surprised with the information you can derive from just this set of data types.
SQL (Structured Query Language)
With the high usage of relational databases in the world it’s only fair to talk about the language of relational databases, also known as structured query language or SQL. If you’re ever going to interact with or access a database, you’re most likely going to do it with SQL. SQL exists as a language with its own rules and syntax for managing data withing a database. It became a recognized standard of many authoritative organizations such as the American National Standards Institute (ANSI) and the International Organization for Standardization (ISO) to name a few. Structured Query Language is often broken up into four sublanguages which are commonly know as, data query language, data definition language, data control language, and data manipulation language. We can cover SQL more in depth in another post, but here’s a brief overview of the popular database language.
Conclusion
Alright monkeys, today we talked about what a database is, the history of databases, the different types of databases and the usefulness of databases. It’s an inescapable fact that data is everywhere, and it has always been there. The only difference now is that we have a way to capture this data and store it allowing us to analyze and come to more accurate and relevant conclusions. Thank you, databases, may you continue to grow and prosper!