From the course: Blockchain Basics

Rethinking traditional client-server computing

From the course: Blockchain Basics

Rethinking traditional client-server computing

- In order to grasp the fundamentals of how blockchain technology works, we first need to cover the basics of a database in a client server environment. If you already know what a traditional relational database is and how it works, you might consider skipping this video. However, I think everyone might enjoy a brief primer on the topic. Fundamentally, a database is software where we store and manage files and records on a computer system. We can store these items. I'll refer to them simply as data from now on in a structured way or an unstructured way. Let's first look at a structured database. I'll use the example of a contacts database, a place where we store people's names and their phone numbers. To find a person and their phone number in the database, some some software code is run to search the database and return the correct result. Well-designed databases can search millions, even billions of records and return a result, often in a fraction of a section. In a structured database, the data is stored in an organized and logical manner. Imagine for a moment columns and rows. In each row is a different person's first and last name and their phone number with each distinct piece of data in its own column, respectively. We call this a database table, and because these items have a logical relationship between each other, we get the term relational database. Let's now look at an unstructured database. It's basically the opposite of a structured database in that no consistent and organized structure exists. Remarkably, most of the data collected today is in an unstructured format. Some say it's as high as between 80 to 90% of all data. Consider all the data that is collected and stored on social media platforms, and emails and other online documents. Unlike the predictability of a structured contact database with first name, last name and phone number in rows and columns, these unstructured systems have to manage all manner of data. In Facebook, for example, posts can include various lengths and types of text, and include photos, videos and music. Fortunately, a healthy ecosystem of providers has created tools for managing unstructured data really well. Both structured and unstructured databases are the foundation of almost all computing systems in place today. Whether it's the internal systems of an organizations for say financial accounting or customer contact information, or for popular commercial services provided by your bank, Amazon or Google, it's databases that store and manage all the content for each one of these. The databases I've described typically reside on a high-performance central computer with access to sizable storage. It may live in a data center at a business or at a third-party provider. Let's use these blocks to illustrate this design, and then contrast it with another design. This block in the center represents a central server. These blocks that surround the server, we call then clients. And they access the data on the central server. This is client server architecture. These clients can be laptop computers, smartphones, tablets and other devices. What we're looking at here is a centralized architecture with all database management conducted in one place. Let's look at another design. Instead of a central server, these new blocks I'm placing in the center, the equivalent of different servers are all going to contain all, part or unique data that would have resided on just a single central architecture. Clients access data as normal, often unaware that the data is decentralized and distributed among systems. This design is more complex than a centralized system but it does improve performance and has better support for failure. That's because a centralized system technically has a single point of failure. Finally, let's look at how client access is managed in these traditional database environments. In all instances, there are mechanisms for allowing certain people to have specific access privileges. One access type may enable a user to just look up information in the database, while another type may enable writes to add or delete data. In every instance where rights are granted to a user, there's an authority that provides those rights. A quick example may really help here. Imagine a university system that contains student grades. Professors can enter and change grades but students can only view grades. A system administrator would assign and manage those access rights to professors and students. This simplified explanation of database security generally serves organizations well. But it has limitations. For example, what happens if someone who is not authorized obtains certain rights and gains access to a database. Depending on the access level, they can create, read, update and delete records, causing all sorts of problems. It happens more often that we would like. Students, for example, shouldn't be able to change their grades. What you'll soon discover is that at its heart, a blockchain is a new type of database with a specific network architecture. It leverages the positive elements of a traditional database and reinvents other elements in order to overcome existing challenges. What will become clear as we continue in this course is that in redesigning these systems, blockchain creates a completely new platform for innovation.

Contents