AWS DynamoDB and Core Concept: Tables, Items, Attributes, Indexes
In this article, we are going to learn What is Amazon DynamoDB and Main Core Concepts of AWS DynamoDB which's are Tables, Items, Attributes and Indexes.
Amazon DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with serverless scalability and able to use pay-as-you-go model. By the end of the article, we will learn What is Amazon DynamoDB and the main core concepts with examples.
What Is Amazon DynamoDB ?
Amazon DynamoDB is a fully managed, serverless, key-value NoSQL database designed to run high-performance applications at any scale. DynamoDB offers built-in security, continuous backups, automated multi-region replication, in-memory caching, and data export tools.
The main idea behind the DynamoDB is basically it lets you get rid of the administrative managements of running and scaling a distributed database so you don’t have to worry about hardware provisioning, installation and configuration, replication, software patching, or cluster scaling.
With DynamoDB, we can create database tables on DynamoDB and it can store and retrieve any amount of data, handle huge amount of request traffic. We can scale up or down the throughput of your tables without downtime or performance degradation. We can use the AWS Management Console to monitor resource usage and performance metrics. Also DynamoDB provides on-demand backup capability. It allows to create full backups of your tables for long-term retention.
High Availability and Durability
DynamoDB automatically spreads data and traffic for your tables across different servers to accommodate throughput and storage requirements of project. All data is stored on SSDs and automatically replicated across multiple Availability Zones in an AWS Region, providing built-in high availability and data durability.
Amazon DynamoDB Core Concepts — Tables, Items, Attributes, Indexes
Amazon DynamoDB has main Core Concepts , those are Tables, Items, Attributes, Indexes. A table is a collection of items, and each item is a collection of attributes. DynamoDB uses primary keys and secondary indexes to uniquely identify each item in a table for greater query flexibility. Also we can use DynamoDB Streams to capture data change events in DynamoDB tables.
Similar to other database systems, DynamoDB stores data in tables. A table is a collection of data items.
For example, you can see the sample table of People at above, which you can use to store personal contact information. You can also have a Cars table to store information about vehicles people use.
Each table contains zero or more items. An item is a set of attributes that can be uniquely identified among all of the other items. So items are collection of attributes that represent to row of the tables. In a People table, each item represents a person. For a Cars table, each item represents one vehicle. Items in DynamoDB are similar in many ways to rows, records, or tuples in other database systems. In DynamoDB, there is no limit to the number of items you can store in a table.
Each item is composed of one or more attributes. An attribute is a main data element, something that does not need to be broken down any further. For example, an item in a People table contains attributes called PersonID, LastName, FirstName, and so on. For a Department table, an item might have attributes such as DepartmentID, Name, Manager, and so on. Attributes in DynamoDB are similar in many ways to fields or columns in other database systems.
But there are different data type that we can store into attributes. We can put custom JSON objects into attributes. We can also store custom JSON object into Basket and Order table, we will store basket items JSON data into these tables as a attribute of JSON format types.
Step by Step Design AWS Architectures w/ Course
In this course, we will learn almost all the AWS Serverless Services with all aspects. We are going to build serverless applications with using AWS Lambda, Amazon API Gateway, Amazon DynamoDB, Amazon Cognito, Amazon S3, Amazon SNS, Amazon SQS, Amazon EventBridge, AWS Step Functions, DynamoDB and Kinesis Streams. This course will be 100% hands-on, and you will be developing a real-world application with hands-on labs together and step by step.
Get the Source Code from Serverless Microservices GitHub — Clone or fork this repository, if you like don’t forget the star. If you find or ask anything you can directly open issue on repository.