Tìm hiểu về orm và cách nó làm việc trong lập trình, object relational mapping

What is object-relational mapping (ORM)?

Object-relational mapping (ORM) is a way lớn align programming code with database structures. ORM uses metadata descriptors lớn create a layer between the programming language & a relational database. It thus connects object-oriented program (OOP) code with the database và simplifies the interaction between relational databases and OOP languages.

Bạn đang xem: Tìm hiểu về orm và cách nó làm việc trong lập trình

The idea of ORM is based on abstraction. The ORM mechanism makes it possible to address, access and manipulate objects without having lớn consider how those objects relate lớn their data sources. ORM lets programmers maintain a consistent view of objects over time, even as the sources that deliver them, the sinks that receive them & the applications that access them change.

Developers can also perform various data creating, reading, updating và deleting (CRUD) operations in relational databases without using SQL. This capability is particularly useful for developers who either don"t know SQL or don"t want khổng lồ waste time writing SQL code. With ORM, they don"t have to lớn understand and write SQL or rely on SQL query builders to add an abstraction layer lớn the SQL code.

How object-relational mapping works

ORM translates information about states and codes object-oriented programs create that are often difficult to understand. It creates a structured maps that explains how objects are related lớn different tables (data) without knowing how the data is structured. In other words, it creates a logical model of the program with a high cấp độ of abstraction, i.e., without specifying the underlying code details.

This information helps developers understand the underlying database structure. When the application makes changes khổng lồ the data object, the relational database will insert, update, create or delete data in response to lớn these changes. This happens because the ORM converts data between tables & generates the SQL code needed by the database to lớn respond lớn application changes and to manage data activities.

ORM manages the mapping details between a mix of objects and underlying relational databases, XML repositories or other data sources và sinks. It simultaneously hides the often changing details of related interfaces from developers & the code they create. In many cases, ORM changes can incorporate new technology & capabilities without requiring changes to lớn the code for related applications.

Advantages & benefits of object-relational mapping

ORM hides & encapsulates changes in the data source, so that when data sources or their APIs change, only ORM needs to lớn change lớn preserve the appropriate associations -- not the applications that use ORM. This capacity makes it easier khổng lồ maintain applications, lets developers take advantage of new classes as they become available và makes it easy to extend ORM-based applications.

The program model can be used lớn connect the application with the SQL code without rewriting the code, saving a lot of time for developers. Because the ORM will manage the application"s data needs, developers don"t have lớn write any additional low-level code, which can help to increase productivity và speed up development time.

ORM also makes it easier và more cost-effective to lớn maintain the application over time because it automates object-to-table & table-to-object conversion and requires less code compared to lớn embedded SQL and handwritten stored procedures. In many cases, it can improve the application"s overall design. Finally, ORM improves system performance by enabling transparent object caching in the application tier.

Disadvantages of object-relational mapping

Object-relational mapping (ORM) connects object-oriented program (OOP) code with a database & simplifies relational database và OOP language interactions.

Critics have said that ORM can lead to an erosion in application speed & performance due to the extra code that is generated for abstraction. They believe that using stored procedures is a better way khổng lồ avoid this problem. In some cases, depending on ORM might result in poorly designed databases and make it harder khổng lồ maintain applications.

Incorrect mapping between data tables and objects can also create application problems that may be difficult to lớn recognize and can affect overall performance. Finally, if the ORM layer is poorly written, it can become difficult to improve data schemas & to manage database migrations.


Native querying with SQL has both pros và cons. SQL queries are more flexible & detailed than ORM abstractions. SQL also enables programmers to better control their data interface. On the other hand, they are also responsible for maintaining the security of the database code, which can be difficult to lớn do. If there are vulnerabilities in the code, the application may be at risk of SQL injection attacks. The likelihood of such attacks can be lower with ORM, because ORM tools help to "sanitize" and secure the code.

SQL query builders địa chỉ cửa hàng a layer of abstraction over the raw SQL without masking the underlying details and simplify application integration. They include template builders so developers can understand the database structure. However, they still need khổng lồ know SQL to understand the database structure.

Popular object-relational mapping tools

An ORM tool is software designed lớn help OOP developers interact with relational databases in a simpler manner. These tools use one of two strategies:

Active record pattern. The tool maps data within the structure of objects in the programming code & manages the data using classes and structures within the code. Data mapper pattern. This type of tool separates the business logic (in the objects) from the underlying database, allowing reuse of the same programming logic while simplifying database changes.

The best ORM tools create high-quality code without affecting application performance, tư vấn and database migrations, và provide options khổng lồ improve data schemas. They also tốc độ up development, decrease development costs & improve application security khổng lồ minimize the chances of SQL injections and other types of attacks.

A variety of ORM tools are available for different OOP languages, including PHP, Java and Python.

Tool name OOP language Key features/USPs



Includes an object-relational manager. (Eloquent) to lớn simplify database interactions



Engine supports fast deletes with delete
Async(). Supports two object types: repositories -- for access khổng lồ a collection of data -- và entities -- which represent individual data records.



Automatically generates the database, tables and columns on the fly. Uses recursive table expressions to khuyến mãi with database tree structures. Supports all free, open source databases.



Suitable for building web applications quickly. Can interact with application data from many relational databases, including SQLite, Postgre
SQL & My



Provides an open source full-stack Python framework for building web applications.



Provides an object interface lớn a database. Includes a Python-object-based query language that provides substantial database independence for applications.



Provides persistence patterns khổng lồ speed up database access. Declarative Mapping structure defines both a Python object model and database metadata that describes real SQL tables in a database.



Apache Open


Suitable as a standalone POJO (plain old Java object) persistence layer. Includes the persistence & ORM schemas from JPA.



Suitable for relational, XML and database website services. Provides a complete JPA-compliant implementation.

JOOQ (object oriented querying)


Generates Java code from data stored in the database. Uses a Java compiler lớn compile SQL syntax, metadata và data types.

Entity Framework


Provides a multidatabase object-database mapper. Supports LINQ (language integrated query), change tracking, updates & schema migrations.



Provides multiple plugins and tools to lớn speed up development. Built on đứng top of ADO.NET data access giải pháp công nghệ with a mature and active codebase.



Supports Micro-ORM, which is useful for mapping queries khổng lồ objects. Provides an ORM library, which is suitable for .NET and .NET vi xử lý core applications. It is lightweight & fast-- ideal for applications requiring low latency & high performance.

Base One Foundation Component Library (BFC)


Works with Windows và Unix/Linux. Supports distributed computing, batch processing, queuing & database command scripting.

Trong lập trình, ORM (Object-Relational Mapping) là một công nghệ được áp dụng để liên tưởng với cơ sở tài liệu một cách dễ ợt và nhân thể lợi. ORM giúp các nhà cách tân và phát triển giảm thiểu việc phải viết những câu lệnh SQL phức tạp bằng cách định nghĩa những lớp đối tượng người sử dụng trong mã mối cung cấp của ứng dụng. Bài viết này sẽ giúp bạn làm rõ hơn về ORM và biện pháp nó hoạt động.

Xem thêm: Trò chơi bài pyramid hướng dẫn cách chơi, cách chơi bài pyramid để thắng

ORM là gì?

ORM là gì?

ORM (Object-Relational Mapping) là một công nghệ trong thiết kế được thực hiện để tác động với cơ sở dữ liệu một cách thuận lợi và luôn thể lợi. ORM có thể chấp nhận được các nhà cách tân và phát triển tạo các đối tượng người dùng trong mã của họ, tiếp nối sử dụng các phương thức của ORM nhằm lưu với truy xuất dữ liệu từ cơ sở tài liệu một cách tự động.

Các nhiều loại ORM

Có nhiều loại ORM được thực hiện trong lập trình, nhưng mà hai loại thông dụng nhất là Active Record cùng Data Mapper.

Data Mapper là một mô hình ORM khác, nó bóc biệt đối tượng người dùng khỏi cơ sở tài liệu và triệu tập vào vấn đề ánh xạ các đối tượng vào các bảng dữ liệu. Data Mapper hay được sử dụng trong số ứng dụng bự và phức tạp.

Cách hoạt động vui chơi của ORM

Khi áp dụng ORM, những lớp đối tượng người dùng được định nghĩa vì người cải cách và phát triển và được ánh xạ vào các bảng tài liệu trong đại lý dữ liệu. Lúc các đối tượng được tạo thành hoặc được truy vấn xuất, ORM sẽ auto tạo hoặc tìm kiếm các bạn dạng ghi trong cơ sở tài liệu và đưa nó vào các đối tượng.

Tại sao ORM hữu ích?

Việc thực hiện ORM đem lại nhiều lợi ích cho những nhà cải cách và phát triển ứng dụng, bao gồm:

Khả năng viết code Python thay vì chưng SQL rất có thể tăng tốc độ cách tân và phát triển ứng dụng web, nhất là khi ban đầu dự án. Kĩ năng tăng tốc độ cải cách và phát triển tiềm năng đến từ việc chưa phải chuyển từ bỏ code Python thanh lịch viết các câu lệnh SQL quy mô khai báo.Về mặt kim chỉ nan ORM cũng giúp đổi khác một ứng dụng giữa những cơ sở dữ liệu quan hệ khác nhau.

Có nên áp dụng ORM cho vận dụng web không?

Các tủ sách ORM Python không cần thiết để truy cập cơ sở tài liệu quan hệ. Bên trên thực tế, quyền truy cập cấp thấp hay được cung ứng bởi một tủ sách khác có tên là trình liên kết cơ sở dữ liệu, như psycopg (đối cùng với Postgre
SQL) hoặc My
SQL-python (đối với My

Hãy coi bảng bên dưới cho biết phương pháp ORM tất cả thể hoạt động với những khung web và trình kết nối cũng tương tự cơ sở tài liệu quan hệ khác nhau:


Ví dụ, bảng trên cho thấy rằng SQLAlchemy có thể hoạt động với các khung web với trình kết nối cơ sở tài liệu khác nhau. Nhà trở nên tân tiến cũng hoàn toàn có thể sử dụng ORM mà không buộc phải khung web, chẳng hạn như khi tạo giải pháp phân tích tài liệu hoặc tập lệnh bó mà không có giao diện tín đồ dùng.

Nhược điểm của việc thực hiện ORM là gì?

Có không hề ít nhược điểm của ORM, bao gồm:

Trở phòng không cân xứng (Impedance mismatch)

Trở kháng không tương xứng là một thuật ngữ bình thường cho phần đông khó khăn xẩy ra khi di chuyển dữ liệu giữa những bảng quan liêu hệ cùng các đối tượng ứng dụng.

Khả năng sút hiệu suất

Với ORM, hiệu suất dành được đến từ việc dịch mã áp dụng thành câu lệnh SQL tương ứng hoàn toàn có thể không được điều chỉnh đúng cách.

ORM cũng thường sẽ dễ thử nhưng cực nhọc thành thạo. Trong những dự án lớn, ORM chỉ đủ xuất sắc cho khoảng tầm 80-90% trường hợp sử dụng.

Chuyển độ phức tạp từ cơ sở tài liệu sang mã ứng dụng

Với ORM, mã làm việc dữ liệu nằm trong cơ sở code Python của ứng dụng. Việc bổ sung cập nhật logic xử lý tài liệu trong cơ sở mã có tác dụng tăng tổng lượng code Python thay bởi vì phân tách mã giữa áp dụng và giấy tờ thủ tục lưu trữ các đại lý dữ liệu.


1. ORM là gì?

ORM (Object-Relational Mapping) là một công nghệ trong lập trình sẵn được áp dụng để liên quan với cơ sở dữ liệu một cách dễ dãi và luôn tiện lợi.

2. Vì sao nên sử dụng ORM?

Sử dụng ORM giúp giảm thiểu vấn đề phải viết các câu lệnh SQL phức tạp và tăng tính linh động và tiện lợi trong việc biến hóa cơ sở dữ liệu.

3. Gồm bao nhiêu nhiều loại ORM?

Có nhiều một số loại ORM được thực hiện trong lập trình, tuy nhiên hai loại thịnh hành nhất là Active Record và Data Mapper.

Tổng kết

Trên đấy là một số thông tin cơ bản về ORM và giải pháp nó chuyển động trong lập trình. Việc sử dụng ORM giúp các nhà phát triển ứng dụng giảm thiểu việc phải viết các câu lệnh SQL phức hợp và tăng tính linh hoạt trong việc chuyển đổi cơ sở dữ liệu. Nếu bạn là một bên phát triển, hãy thử áp dụng ORM trong ứng dụng của mình và từng trải các tác dụng của technology này.

Leave a Reply

Your email address will not be published. Required fields are marked *


Welcome Back!

Login to your account below

Retrieve your password

Please enter your username or email address to reset your password.