From a8bb6d9eb96b48dc13bd46c62e1f430152887040 Mon Sep 17 00:00:00 2001 From: Andrew Pruski Date: Mon, 27 Feb 2023 09:56:46 +0000 Subject: [PATCH] Day 63 - An introduction to databases --- 2023/day63.md | 134 ++++++++++++++++++++++++++++++++++++++++ 2023/images/day63-1.png | Bin 0 -> 43912 bytes 2 files changed, 134 insertions(+) create mode 100644 2023/images/day63-1.png diff --git a/2023/day63.md b/2023/day63.md index e69de29..e018133 100644 --- a/2023/day63.md +++ b/2023/day63.md @@ -0,0 +1,134 @@ +# An introduction to databases + +Welcome to the 90DaysOfDevOps database series. Over the next seven days we’ll be talking about all things database related! + +The aim of this series of blog posts is to provide an introduction to databases and their various concepts so that you will be able to make an informed choice when deciding how to store data in your future projects. + +Here’s what we’ll be covering: - + +- An introduction to databases +- Querying data in databases +- Backing up databases +- High availability and disaster recovery +- Performance tuning +- Database security +- Monitoring and troubleshooting database issues + +We’ll also be providing examples to accompany the concepts discussed. In order to do so you will need Docker Desktop installed. Docker can be downloaded here (https://www.docker.com/products/docker-desktop/) and is completely free. + +Alternatives to Docker Desktop can be used (such as Rancher Desktop or Finch) but the examples will focus on Docker. + +We'll be using a custom PostgreSQL image in the examples and connecting with pgAdmin: - +https://www.pgadmin.org/ + +
+ +# About Us + +Andrew Pruski
+Andrew is a Field Solutions Architect working for Pure Storage. He is a Microsoft Data Platform MVP, Certified Kubernetes Administrator, and Raspberry Pi tinkerer. You can find him on twitter @dbafromthecold, LinkedIn, and blogging at dbafromthecold.com + +Taylor Riggan
+Taylor is a Sr. Graph Architect on the Amazon Neptune development team at Amazon Web Services. He works with customers of all sizes to help them learn and use purpose-built NoSQL databases via the creation of reference architectures, sample solutions, and delivering hands-on workshops. You can find him on twitter @triggan and LinkedIn. + +
+ +# Why databases? + +The total amount of data created worldwide is predicted to reach 181 zetabytes by 2025. + +That’s 181 billion terabytes! + +![](images/day63-1.png) + +source - https://www.statista.com/statistics/871513/worldwide-data-created/ + + +Imagine if all that data was stored in flat files, for example excel sheets! OK, storing that data might not be such an issue, just save the file on a networked drive and all good! But what about when it comes to retrieving that data? What about updating a single record amongst hundreds, thousands, millions of files? + +This is where database technologies come into play. Databases give us the ability to not only store data but to easily retrieve, update, and delete individual records. + +
+ +# Relational databases + +When it comes to databases, there are two main types...relational and non-relational (or NoSQL) databases. + +SQL Server, Oracle, MySQL, and PostgreSQL are all types of relational databases. + +Relational databases were first described by Edgar Codd in 1970 whilst he was working at IBM in a research paper , “A Relation Model of Data for Large Shared Data Banks”. + +This paper led the way for the rise of the various different relational databases that we have today. + +In a relational database, data is organised into tables (containing rows and columns) and these tables have “relationships” with each other. + +For example, a Person table may have an addressID column which points to a row within an Address table, this allows for an end user or application to easily retrieve a record from the Person table and the related record from the Address table. + +The addressID column is a unique “key” in the Address table but is present in the Person table as a “foreign key”. + +The design of the tables and the relations between them in a relational database is said to be the database schema. The process of building this schema is called database normalisation. + +Data is selected, updated, or deleted from a relational database via a programming language called SQL (Structured Query Language). + +In order to support retrieving data from tables in a relational database, there is the concept of “indexes”. In order to locate one row or a subset of rows from a table, indexes provide a way for queries to quickly identify the rows they are looking for, without having to scan all the rows in the table. + +The analogy often used when describing indexes is an index of a book. The user (or query) uses the index to go directly to the page (or row) they are looking for, without having to “scan” all the way through the book from the start. + +Queries accessing databases can also be referred to as transactions…a logical unit of work that accesses and/or modifies the data. In order to maintain consistency in the database, transactions must have certain properties. These properties are referred to as ACID properties: - + +A - Atomic - all of the transaction completes or none of it does
+C - Consistency - the data modified must not violate the integrity of the database
+I - Isolation - multiple transactions take place independently of one another
+D - Durability - Once a transaction has completed, it will remain in the system, even in the event of a system failure. + +We will go through querying relational databases in the next blog post. + +
+ +# Non-Relational databases + +The downside of relational databases is that the data ingested has to "fit" to the structure of the database schema. But what if we're dealing with large amounts of data that doesn't match that structure? + +This is where non-relational databases come into play. These types of databases are referred to as NoSQL (non-SQL or Not Only SQL) databases and are either schema-free or have a schema that allows for changes in the structure. + +Apache Cassandra, MongoDB, and Redis are all types of NoSQL databases. + +Non-relational databases have existed since the 1960s but the term “NoSQL” was used in 1998 by Carlo Strozzi when naming his Strozzi NoSQL database, however that was still a relational database. It wasn’t until 2009 when Johan Oskarsson reintroduced the term when he organised an event to discuss “open-source distributed, non-relational databases”. +There are various different types of NoSQL databases, all of which store and retrieve data differently. + +For example: - + +Apache Cassandra is a wide-column store database. It uses tables, rows, and columns like a relational database but the names and formats of the columns can vary from row to row in the same table. It uses Cassandra Query Language (CSQL) to access the data stored. + +MongoDB is a document store database. Data is stored as objects (documents) within the database that do not adhere to a defined schema. MongoDB supports a variety of methods to access data, such as range queries and regular expression searches. + +Redis is a distributed in-memory key-value database. Redis supports many different data structures - sets, hashes, lists, etc. - https://redis.com/redis-enterprise/data-structures/ +The records can be identified using a unique key. Redis supports various different programming languages in order to access the data stored. + +NoSQL databases generally do not comply with ACID properties but there are exceptions. + +Each has pros and cons when it comes to storing data, which one to use would be decided on the type of data that is being ingested. + +
+ +# When to use relational vs non-relational databases + +This is an interesting question and the answer, unfortunately, is it depends. + +It all depends on the type of data being stored, where it is to be stored, and how it is to be accessed. + +If you have data that is highly structured, stored in a central location, and will be accessed by complex queries (such as reports), then a relational database would be the right choice. + +If however, the data is loosely-structured, needs to be available in multiple regions, and will be retrieved with a specific type of query (e.g.- a quick lookup in a key/value store), then a non-relational database would be the right choice. + +There is a massive caveat with the statements above however…there are types of non-relational databases that can handle large, complex queries likewise relational databases have features that allow for data to be available in multiple regions. + +It also comes down to the skillset of the people involved, for example, Andrew is a former SQL Server DBA…so we know what his default choice would be when choosing a type of database! + +While, in contrast, Taylor works on the development team for one of the more popular, cloud-hosted, graph databases, so he is more likely to start with a NoSQL data store. + +The great thing about databases is that there are so many choices to choose from within the realm of commercial offerings, cloud services, and the open-source ecosystem. The amount of choice, however, can be daunting for someone new to this space + +Join us tommorrow when we'll be talking about querying databases. + +Thanks for reading! \ No newline at end of file diff --git a/2023/images/day63-1.png b/2023/images/day63-1.png new file mode 100644 index 0000000000000000000000000000000000000000..3dca1c2ee4817978dc060940aaffc4803cc8ff8c GIT binary patch literal 43912 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 Rq~M=3Csj_Q%A5TAe*k}Y|8D>Q literal 0 HcmV?d00001