Object Relational Mapping Là Gì

  -  

Trong biện pháp trở nên tân tiến vận dụng web hiện giờ có lẽ rằng các bạn vẫn quen cùng với với tự khóa ORM(Object Relational Mapping). Khi nhưng mà thời đại của các framework ứng cùng với các ngữ điệu sẽ đăng quang một bí quyết mạnh bạo, ORM gần như là sự việc chọn lựa tuyệt vời và hoàn hảo nhất của những công ty cách tân và phát triển bây giờ.Quý Khách vẫn xem: Object relational mapping là gì

ORM góp bọn họ thuận tiện làm việc với dữ liệu vớiDatabase hơn, giúp họ dễ dàng code, dễ maintain hơn . . . Ở nội dung bài viết này tôi vẫn reviews chung về ORM, đi sâu vào so với những điểm điểm mạnh, yếu điểm cùng bao giờ vận dụng chúng trong các dự án công trình thực tế.

Bạn đang xem: Object relational mapping là gì

Để cho dễ theo dõi tự thời đặc điểm đó của nội dung bài viết tôi xin được dùng ORM vậy cho các trường đoản cú Object Relational Mapping


*

1. ORM là gì ?

Theo Wikipedia:

Object-relational mapping (ORM, O/RM, và O/R mapping tool) in computer science is a programming technique for converting data between incompatible type systems using object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language. There are both miễn phí & commercial packages available that persize object-relational mapping, although some programmers opt to lớn construct their own ORM tools.

Hiểu một phương pháp đơn giản và dễ dàng thì

ORM là một nghệ thuật thiết kế góp ánh xạ những record dữ liệu vào hệ quản lí trị đại lý tài liệu lịch sự dạng đối tượng người tiêu dùng sẽ khái niệm trong những class - một quan niệm phổ cập được sử dụng trong tất cả các ngôn từ văn minh thời nay như: Java, PHP, Ruby. Quý khách hàng có thể vận dụng kĩ thiệt này với bất kể dự án công trình như thế nào bạn thích.

*

Theo Martin Fowler bao gồm hai patterns được vận dụng cho các cách kiến thiết ORM khác biệt.

Một sốORMdanh tiếng sử dụng Active sầu Record rất có thể kể thương hiệu là: Eloquent, CachePHPhường, JOOQ, TOPLINK


*

*

Một số ORM nổi tiếng thực hiện Data Mapper như: Doctrine, Hibernate, SqlAlchemy

2. ORM vận động ra làm sao ?

đặc biệt cơ bạn dạng của ORM là gói gọn gàng CSDL trong một object. 1 phần của object sẽ chứa data, với phần còn sót lại lo vấn đề data giải pháp xử lý như như thế nào và phát triển thành nó thành cơ sở dữ liệu quan hệ nam nữ.

ORM giải quyết và xử lý sự việc đồng điệu giữa đẳng cấp dữ liệu trả về khác biệt. Một bên là cửa hàng dữ liệu, ở kia tài liệu được biểu đạt dưới dạng tập phù hợp các phiên bản ghi. Một bên là những đối tượng, làm việc đó dữ liệu đc hiện thị lên dưới dạng object


*

3. Ưu với điểm yếu kém ORM

lấy ví dụ như về việc tìm và đào bới kiếm danh sách phiên bản ghi với điều kiện cùng với sql thuần

book_menu = new List();sql = "SELECT * FROM library WHERE author = "Linus"";data = query(sql);while (row = data.next()) book = new Book(); book.setAuthor(row.get("author"); book_danh mục.add(book);Với ORM, nó vẫn đơn giản và dễ dàng nhỏng sau

book_list = BookTable.query(author="Linus");Từ ví dụ dễ dàng trên chúng ta dễ dàng nhận thấy các điểm mạnh sau khoản thời gian áp dụng ORM

Ưu điểm

Rất những vật dụng được triển khai "tự động", liên quan tới vấn đề xử lý tài liệu, vào ví dụ bên trên bọn họ ko cần quan tâm tới việc sử dụng vòng để convert data từ bỏ mysql ra, Chỉ nên biết đầu vào là từ khóa Áp sạc ra trả lại 1 list những cuốn sách tất cả author=LinusViệc áp dụng ORM có tác dụng bạn bắt buộc phải viết code theo quy mô MVC, khiến code của chúng ta dễ dàng sửa đổi, duy trì hơn.quý khách hàng không cần phải biết vô số về MYSquốc lộ, chúng ta vẫn rất có thể tiếp cận thuận lợi cùng với ORM.Model k ràng buộc nghiêm ngặt với vận dụng, giỏi có thể nói rằng, Model thì linh hoạt, do vậy chúng ta có thể biến hóa hoặc áp dụng nó bất cứ nơi nàoORM có thể chấp nhận được chúng ta tận dụng ưu điểm của OOPhường nhỏng thừa kế tài liệu mà lại không hẳn nhức đầu

Nhược điểm

Với mỗi framework đã có 1 tlỗi viện ORM khác biệt, tất yếu là các bạn cần mất thời gian học tập nó. Và bởi bọn chúng là thỏng viện đề xuất sẽ tương đối "nặng".Performance ổn so với các tróc nã vấn thông thường, tuy thế Raw SQL vẫn luôn có tác dụng tốt rộng cùng với các dự án to.ORM được xem như là abstracts của DB. Nếu bạn không quyên tâm đến các gì thực thụ xẩy ra Lúc sử dụng ORM. Nó có thể là mẫu mồi nhử với những bài xích tân oán N + 1 query.4 Đánh giá bán performance của ORM

Nlỗi ở đoạn điểm yếu mình có nói ORM sẽ sở hữu được performance lờ đờ rộng so với Việc áp dụng raw sql. Dưới đó là một thống kê cùng với Eloquent ORM của Laravel với raw mysql.Môi trường:

CPU: Quad core Hãng sản xuất Intel Xeon E31220Network: Broadcom NetXtreme BCM5722 Gigabit Ethernet PCI ExpressMemory: 8.0 GBHDD: 2000.4 GBOperating System: CentOS

4.1 Insert

Ở phía trên các đơn vị phân tích đang insert số lượng bài viết khác biệt từ bỏ 1000 mang đến 10000 cho cả 2 kĩ thuật trong những vòng lặp.

Eloquent ORM

Số lượtSố bài viếtLượt 1 (ms)Lượt 2(ms)Lượt 3 (ms)Trung bình cùng (ms)Sai lệch (ms)
11000665,25619,5585,6623,539,97
220001150114011101133,3đôi mươi,81
330001490149014201466,740,41
440001770179016701743,364,29
550002080209022202130,078,10
660002540251025602536,725,16
770002930301030803006,775,05
8800033603520338034trăng tròn,087,17
990003800390038803860,052,91
10100004270436043904340,062,44

Raw SQL

Số lượtSố bài xích viếtLượt 1 (ms)Lượt 2(ms)Lượt 3 (ms)Trung bình cộng (ms)Sai lệch (ms)
11000195,81189,62180,1188,57,91
22000322,78335,64307,01321,814,33
33000413,4437,62458,24436,422,44
44000598,87567,57559,01575,2đôi mươi,98
55000725,5740,94780,15748,928,17
66000867,93869,12891,27876,113,14
770001000996,14949,05981,728,36
880001150112011301133,315,27
990001190127012201226,740,41
101000014301380145014đôi mươi,036,05

Từ bảng trên ta tất cả biểu vật dụng nhỏng sau


4.2 Update

Eloquent ORM

Số lượtSố bài bác viếtLượt 1 (ms)Lượt 2(ms)Lượt 3 (ms)Trung bình cộng (ms)Sai lệch (ms)
11000305,59316,06297,93306,59,10
22000522,06565,12543,43543,521,53
33000778,4772,33790,52780,49,26
440001040101010801043,335,11
550001290124012601263,325,16
660002540251025602536,725,16
770002930301030803006,775,05
8800033603520338034đôi mươi,087,17
990003800390038803860,052,91
10100004270436043904340,062,44

Raw SQL

Số lượtSố bài xích viếtLượt 1 (ms)Lượt 2(ms)Lượt 3 (ms)Trung bình cộng (ms)Sai lệch (ms)
11000195,81189,62180,1188,57,91
22000322,78335,64307,01321,814,33
33000413,4437,62458,24436,422,44
44000598,87567,57559,01575,220,98
55000725,5740,94780,15748,928,17
66000867,93869,12891,27876,113,14
770001000996,14949,05981,728,36
880001150112011301133,315,27
990001190127012201226,740,41
101000014301380145014trăng tròn,036,05

Từ bảng bên trên ta bao gồm biều trang bị sau

4.3 Select

Tại trên đây các trang bị nghiệm chia làm 3 lượt

4.4 Đánh giá và phân tích

Từ những số liệu trên rất có thể tiện lợi thấy được performance của raw sql rõ ràng xuất sắc hơn đối với ORM trong tất cả những hành vi select, insert, update.

Xem thêm: Information Retrieval Là Gì ? Từ Điển Anh Việt Retrieval System Là Gì

Lí do ở chỗ này là: ORM cần thời gian tạo nên Model instances, tạo ra những property đến model cùng transsize đối tượng người tiêu dùng Mã Sản Phẩm thành tài liệu quan hệ giới tính trước khi thực hiện việc giao tiếp với database. Tất cả phần đông gì phía sau nó là Laravel đang convert từng code Eloquent ORM thành câu lệnh SQL tương thích với tiếp nối triển khai trên tầng database và trả lại kết quả lại tầng application. Vì vậy thời hạn để tiến hành 1 tác vụ luôn mất nhiều thời gian rộng so với việc cần sử dụng raw sql.

Nhưng khoan, đừng cấp chú ý những số lượng bên trên mà cấp nói ORM là vật dụng vứt đi.

Trong thực tế không ai select vài ba nghìn bản ghi, xuất xắc thực hiện Việc tạo ra vài ba ngàn phiên bản ghi vào một lúc.

Tức là khi số lượng bạn dạng ghi càng ít thì độ chênh lênh về công suất giảm xuống đáng kể. Lúc kia cộng thêm vấn đề sử dụng bí quyết kĩ thuật cađậy của ORM khiến cho áp dụng của khách hàng cũng nhất thời đồng ý được so với gần như lợi ích về vận tốc phát tiển ứng dụng(thời hạn vạc triển), thải trừ Việc sử dụng code lặp đi lặp lại, bảo mật xuất sắc rộng vào các thứ hoàn hảo khác nữa.

5. Tổng kết

Tóm lại, đi xuyên suốt cả nội dung bài viết, tôi đã biểu thị phương pháp buổi giao lưu của ORM, nêu các điểm điểm mạnh và điểm yếu của ORM. Việc gồm buộc phải áp dụng ORMhay là không vẫn chính là chủ đề tranh luận chưa tồn tại hồi kết.

Về tay nghề của phiên bản thân khi làm dự án, bản thân thường xuyên set thân ORM và Raw Squốc lộ làm sao để cho tác dụng, cùng với những tróc nã vấn thường thì, ORM là gạn lọc của chính mình. Với những tình huống đề nghị làm việc với khá nhiều bạn dạng ghi,raw SQL dường như hợp lý rộng. Nhưng khi dùng raw sql bạn buộc phải đích thực cẩn trọng về vấn đề Sql injection.

Xem thêm: Corporate Governance Là Gì, Corporate Governance / Quản Trị Công Ty

Cảm ơn các bạn vẫn theo dõi và quan sát bài viết bên trên, trong bài viết tất cả xem thêm tự một vài nguồn.