Estudio Comparativo entre SQL Directo y un ORM. - Macias Carpio, Fersen Arturo (2023)
Today, every application requires a database to function and store information about its customers, products, accounting, and other data necessary for its proper operation. Typically, the business logic of an application connects to the data source to perform read-write operations, and traditionally, SQL (Structured Query Language) has been used for this purpose as it was the only available option until the emergence of ORM (Object-Relational Mapping). From this point on, the decision to use one method over the other has become a topic of great interest in the software development field, as both approaches aim to access databases but differ in their implementation and developers' perceptions. SQL, which stands for Structured Query Language, is a programming language used to manage relational databases. It allows developers to write queries directly to the database, providing them with detailed control over how information is accessed and manipulated. SQL is widely accepted and used, especially in enterprise applications. On the other hand, ORM tools map objects from a programming language to tables in a relational database. They simplify interaction with the database by abstracting the complexity of SQL queries. Some popular examples of ORM include Hibernate for Java and Entity Framework for .NET. The level of acceptance among developers varies between SQL and ORM. Developers with database experience often prefer SQL, as it offers complete control and fine query optimization. However, ORM is more popular among developers who want a simpler, object-oriented way of working with databases. ORM is also useful in multidisciplinary teams where not everyone is an SQL expert. In terms of popularity, SQL remains the predominant choice in database development, especially in mission-critical applications. ORM is popular in web applications and projects where development speed is a priority. A comparative study between Direct SQL and ORM will help make a better decision on which technology to use to access the data source, depending on the specific project requirements, performance needs, portability, maintainability, and other relevant factors.