EdgeDb
[tr] Türkçe Oku 2023-04-10
EdgeDb is an open-source, relational database management system (DBMS) and a next-generation Object-Relational Mapping (ORM) tool. It is developed as part of PostgreSQL and designed to be used with Python. EdgeDb is designed to provide higher performance, less code, and better security compared to PostgreSQL.
The history of EdgeDb began in 2018 when it was initiated by MagicStack, a software company based in Russia, with the aim of providing a better tool for developing and managing database applications. EdgeDb was first released in 2020 and has been in the development process since then.
One of the main differences of Edgedb from other database management systems is its ability to provide a better ORM tool with higher efficiency and requiring less code. Additionally, Edgedb is designed to ensure data integrity between applications written in multiple languages.
Installation of Edgedb is relatively straightforward. There is an installation file available on the official website, which can be downloaded and installed quickly. After installation, Edgedb can be used via the Python programming language.
Using Edgedb, you can develop a variety of different applications. For example, you can store users' order histories, shopping carts, and payment information for an e-commerce application. Edgedb makes developing these types of applications faster and easier.
In summary, Edgedb is a high-performance database management system and ORM tool. It is built on top of PostgreSQL and can be used through the Python programming language. What sets Edgedb apart from other database management systems is its higher efficiency, requiring less code, and providing data integrity between applications written in multiple languages.
Edgedb primarily works as a relational database management system (RDBMS). However, compared to traditional RDBMSs, Edgedb has a data model based on object-oriented programming (OOP) principles. Therefore, Edgedb’s ORM tool works more powerfully and flexibly than other ORM tools.
Edgedb is also designed to ensure data integrity among applications written in multiple languages. For example, one application may be written in Python while another may be written in Rust. Edgedb provides an integrated solution to ensure data integrity between these different languages.
Edgedb also offers advantages in terms of security and performance. For instance, database administrators report that Edgedb has zero security vulnerabilities and provides better protection against attacks. Additionally, Edgedb’s performance is highly praised. It achieves higher performance by using denormalization extensively and is optimized for multiple data types.
Another advantage of Edgedb is its scalability. Edgedb is designed to handle large-scale databases. In addition, Edgedb can also integrate with other database management systems. For example, Edgedb’s integration with PostgreSQL allows all tools supported by PostgreSQL to be used with the Edgedb database.
In conclusion, Edgedb is a next-generation database management system and ORM tool based on PostgreSQL. Edgedb’s advantages include a data model based on OOP principles, data integrity between applications written in multiple languages, superiority in security and performance, scalability, and the ability to integrate with other database management systems.
Installing Edgedb is quite easy. Edgedb supports many operating systems, including Windows, MacOS, and Linux. Additionally, Edgedb makes installation even easier with package managers and Docker.
For example, you can install Edgedb on Ubuntu 20.04 as follows:
$ curl https://packages.edgedb.com/keys/edgedb.asc | sudo apt-key add -
$ echo "deb https://packages.edgedb.com/apt focal main" | sudo tee /etc/apt/sources.list.d/edgedb.list
$ sudo apt-get update
$ sudo apt-get install edgedb-server
$ sudo systemctl start edgedb-server
As an example use case, let’s consider the use of Edgedb for a blog application. The blog application can use Edgedb to store data such as users, posts, and comments.
The first step is to install and start the Edgedb server. Then, you can install the Edgedb CLI to access the Edgedb management interface.
$ sudo apt-get install edgedb-cli
Using the Edgedb CLI, you can create a database for data such as users, posts, and comments. Additionally, you can use the edgedb-py module, which is Edgedb’s ORM tool, to manage the database.
$ pip install edgedb
CREATE TYPE User {
required property username -> str;
required property password -> str;
multi link posts -> Post;
};
CREATE TYPE Post {
required property title -> str;
required property body -> str;
required property created_at -> datetime;
required property updated_at -> datetime;
required property published -> bool;
link author -> User;
multi link comments -> Comment;
};
CREATE TYPE Comment {
required property body -> str;
required property created_at -> datetime;
required property updated_at -> datetime;
required property approved -> bool;
link author -> User;
link post -> Post;
};
One of the differences of Edgedb from other database management systems is that it is designed as an object-oriented database management system. This means that data stored in the database can be modeled like real-life objects. This enables a more natural definition and management of data and makes queries to the database more understandable.
Edgedb also aims to be high-performance and scalable by using a modern architecture. The Edgedb server is based on a database engine that is specifically designed for many different database models. This engine uses multiple threads to execute database operations and keeps data in memory to minimize disk access.
Furthermore, Edgedb also prioritizes security. Database access is controlled through users and roles and enables secure communication with SSL/TLS.
One of the most notable features of Edgedb is its ability to automatically convert GraphQL queries to Edgedb queries without a mapping table. This enhances the performance of GraphQL APIs and allows developers to write GraphQL queries instead of Edgedb queries.
As a result, Edgedb is a modern database management system and ORM tool that prioritizes performance, security, and scalability. Its features, such as easy installation, object-oriented database model, and automatic conversion of GraphQL queries to Edgedb queries, save time and effort for developers.
Installing Edgedb is straightforward. Edgedb provides installation files for Windows, macOS, and Linux operating systems. Additionally, it can be installed through Docker images and with the help of Homebrew, an open-source package manager.
There are two options for using Edgedb: using the Edgedb ORM in Python or directly using Edgedb queries. The Edgedb ORM uses Python objects to access the Edgedb database and has a special Python language for modeling and managing data. The Edgedb ORM allows you to easily access data in the database and use the data directly as objects.
Edgedb queries are written similar to standard SQL queries and are automatically generated by Edgedb. Edgedb queries allow you to quickly query data using Edgedb’s performance features. Additionally, Edgedb queries can be automatically converted to GraphQL queries, making it easier and faster for developers to write GraphQL APIs.
SELECT Post {title, body, author, tags}
This query retrieves the fields title, body, author, and tags of an object named Post. Additionally, since this query is automatically generated by Edgedb, it is advantageous in terms of performance.
In conclusion, Edgedb is a modern database management system and ORM tool that stands out with its easy installation, object-oriented database model, and high performance. Edgedb queries are written similar to standard SQL queries and can be automatically transformed into GraphQL queries, making it easier and faster for developers to work with.