ORM – Mô hình lập trình ánh xạ đối tượng với database

17 06 2009

ORM viết tắt của Object Relation Mapping, được hiểu như là kỹ thuật ánh xạ từ mô hình đối tượng với các table trong cơ sở dữ liệu quan hệ. Trong đó các đối tượng ánh xạ với các bảng và quan hệ của table trong database sẽ được ánh xạ với sự ràng buộc liên quan trong đối tượng

Hiện nay trong thế giới lập trình về .NET, có nhiều công cụ về ORM, tôi liệt kê các ORM được xem là nổi trội hiện nay:

* .NET Persistence
* BBADataObjects
* DataObjects.NET
* Data Tier Modeler for .NET
* DotNorm
* Eldorado.NET
* Enterprise Core Objects (ECO™)
* Entity Broker
* eXpress Persistent Objects for .NET
* FastObjects.NET
* JC Persistent Framework
* LLBLGen Pro
* ModelWorks
* Nhibernate
* Nolics.NET
* Norm
* Norpheme
* ObjectBroker
* ObjectSpaces
* ObjectSpark
* Objectz.NET
* OJB.NET
* OPF.Net (Object Persistent Framework)
* ORM.NET
* Pragmatier Data Tier Builder
* RapTier
* Sisyphus Persistence Framework
* TierDeveloper
* Bob.NET
* ObjectPersistor.NET
* Genome

Vậy ORM nó có những điểm hay, điểm dở nào, và vì sao chúng ta lại sử dụng nó?

Với ORM, bạn có thể sử dụng với nhiều hệ quản trị cơ sở dữ liệu khác nhau, nó độc lập hoàn toàn, và thường các ORM trên thị trường hiện nay đều hỗ trợ nhiều hệ quản trị cơ sở dữ liệu khác nhau, bạn chỉ cần thay đổi driver tương tác là có thể làm việc một cách nhanh chóng mà không cần phải thay đổi bất kỳ dòng code nào. Thật tuyệt phải không? Open-mouthed

Một thế mạnh nữa của ORM, là bạn có thể thao tác truy cập, xử lý database một cách dễ dàng và nhanh chóng. So với cách thông thường bạn phải sử dụng các câu lệnh SQL để truy vấn và xử lý dữ liệu. Nhưng với ORM, bạn không cần phải sử dụng SQL, mà chỉ cần thao tách, sử dụng các API đơn giản và dễ dùng của nó để truy vấn và dữ lý dữ liệu. Tuy nhiên đối với ORM NHibernate, bạn cũng có thể sử dụng HQL, một ngôn ngữ truy vấn tương tự SQL, gần gũi và dể sử dụng để thao tác truy vấn đối tượng.

Như bạn thấy đấy, so với lập trình theo cách truyền thống bạn sẽ mất nhiều thời gian hơn để lập trình xử lý dữ liệu. Với ORM bạn sẽ tiết kiệm được nhiều thời gian để implement tầng Data Access Layer, mà có thời gian tập trung nhiều hơn với tầng Business Logic của dự án

Wow, ORM thật “đã” nhỉ, nhưng khoan mừng vội nào, nó còn một số hạn chế, mà nhiều người còn e ngại đó

Với ORM Framework, bạn không cần dùng SQL để thao tác dữ liệu, vậy thì làm sao để nó làm việc với database? Đó là do nó tự động gen ra các câu lệnh SQL như Insert, Update, Delete, Select dữ liệu bên dưới database, nên bạn sẽ khó hoặc có thể không can thiệp vào để tối ưu nó hơn. Tuy nhiên các ORM Framework đều hỗ trợ bạn gọi câu lệnh SQL trực tiếp trong những tình huống cần thiết.

Ngoài ra bạn còn phải gặp nhiều tình huống nan giải mà bất kì ai làm việc với ORM cũng phải gặp qua: cách thức quản lý session truy xuất của ORM – nếu bạn làm việc với Web project, lazy loading, tình huống load toàn bộ database lên nếu không thiết kế đúng cách… Và khi đó hệ thống của bạn sẽ làm việc một cách ì ạch Crying

Đừng lo lắng, hãy thử sử dụng nó, bạn sẽ học hỏi và biết thêm nhiều về các kiến trúc lập trình, hãy dùng nó và cảm nhận. Khi bạn đã master về nó, bạn sẽ tự thiết kế được một dự án rất linh hoạt và nhanh chóng.

(Sưu Tầm)


Tác vụ

Thông tin

Gửi phản hồi

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Thay đổi )

Twitter picture

You are commenting using your Twitter account. Log Out / Thay đổi )

Facebook photo

You are commenting using your Facebook account. Log Out / Thay đổi )

Connecting to %s




Follow

Get every new post delivered to your Inbox.