Since time immemorial, humans have tried to store data in various forms. The Egyptians inscribed hieroglyphs on tomb walls, papyrus, and wood as far back as 3200 B.C. so as to preserve information for posterity. In recent centuries, paper has been used as a primary medium to store information. Now Fast forward to the 20th century, electronic storage and retrieval of information have become commonplace. Data(plural of datum) which refers distinct pieces of information exist in various forms: numbers, text, bytes, Instagram pictures, or YouTube videos. These represent various types of data that can be stored and transmitted electronically. There are broadly three categories of data:
- Structured data which have some pre-defined organizational property about it that makes it easily searchable and analyzable. Structured data is usually formatted in a universally understandable and identifiable manner.
- Unstructured data which is characterized by a lack of organization and a data model. It is data without any conceptual definition or type.
- Semi-structured Data is a cross between structured and unstructured data, and though there's no explicit data model or structure definition, one may be implied. Semi-structured data contains certain parts that are structured, and others that are not. Examples include XML and JSON data. The difference between semi-structural and unstructured data is sort of a grey area so for simplicity data is usually described as either structured or unstructured.
Databases have been empowering applications and offerings from popular internet companies since the beginning of the internet revolution. What then is a database? A database is an organized and structured collection of data, usually stored and retrieved electronically. Databases are managed by Database Management Systems(DBMS) which are software that allows the user to create, maintain, and delete multiple individual databases. Examples of DBMS are PostgreSQL and MongoDB. There are broadly two types of databases:
Relational or SQL Databases: They consist of data stored as rows in tables. The columns of a table rigidly follow a defined structure that describes the type and size of the data that a table column can hold. Relational databases only handle structured data. Relational database management systems (RDBMS) are used to manage relational databases. Popular implementations include Oracle, DB2, PostgreSQL, and MySQL.
Non-Relational or NoSQL Databases: A little history; As data sets handled by internet companies grew ever bigger in size, a new approach to designing databases came to the fore. The strict schema of a relational database was shunned in favor of a schema-less database. Non-relational database stores data in a non-tabular form, and tends to be more flexible than the traditional, SQL-based, relational database structures. It does not follow the relational model provided by traditional relational database management systems. NoSQL databases come in different forms and address different use cases. Examples of NoSQL DBMS include: MongoDB, Couchbase and Cassandra.
This brings me to the end of this introduction to databases post. If you found this post useful please do well to like and share. Connect with me on twitter @flaacko_flaacko