누군가가 제가 설계 중인 프로젝트에 ORM을 사용하라고 제안했지만, 그 정의나 작동 방식에 대한 정보를 찾는 데 어려움을 겪고 있습니다.
누구든지 ORM이 무엇이고 어떻게 작동하는지, 어떻게 시작해야 하는지 간략하게 설명해 줄 수 있나요?
객체 관계 매핑(ORM)은 객체 지향 패러다임을 사용하여 데이터베이스의 데이터를 쿼리하고 조작할 수 있는 기술입니다. 대부분의 사람들은 ORM에 대해 이야기할 때 객체 관계형 매핑 기법을 구현하는 라이브러리를 가리키며, 따라서 'ORM'이라는 문구를 사용합니다.
ORM 라이브러리는 데이터를 조작하는 데 필요한 코드를 캡슐화하는 원하는 언어로 작성된 완전히 일반적인 라이브러리로, 더 이상 SQL을 사용하지 않고 사용 중인 언어와 동일한 언어로 객체와 직접 상호 작용합니다.
예를 들어, 다음은 의사 언어를 사용한 완전히 가상의 사례입니다:
책 클래스가 있는데 저자가 '라이너스'인 모든 책을 검색하고 싶다고 가정해 보겠습니다. 수동으로는 이와 같은 작업을 수행할 수 있습니다:
book_list = new List();
sql = "SELECT book FROM library WHERE author = 'Linus'";
data = query(sql); // I over simplify ...
while (row = data.next())
{
book = new Book();
book.setAuthor(row.get('author');
book_list.add(book);
}
ORM 라이브러리를 사용하면 다음과 같이 표시됩니다:
book_list = BookTable.query(author="Linus");
기계적인 부분은 ORM 라이브러리를 통해 자동으로 처리됩니다.
**ORM을 사용하면 다음과 같은 이유로 많은 시간을 절약할 수 있습니다.
**ORM 라이브러리를 사용하면 다음과 같은 이유로 더 유연합니다.
**하지만 ORM은 골칫거리가 될 수 있습니다.
for
루프에서 큰 히트를 치는 것과 같이 매우 탐욕스러운 문을 작성할 수 있는 함정이 될 수 있습니다.하나를 사용하세요. 어떤 ORM 라이브러리를 선택하든 모두 동일한 원리를 사용합니다. 여기에는 많은 ORM 라이브러리가 있습니다:
웹 프로그래밍에서 ORM 라이브러리를 사용하려면 다음과 같은 전체 프레임워크 스택을 사용하는 것이 좋습니다:
무언가를 배우려는 것이 아니라면 자신만의 ORM을 작성하려고 하지 마세요. 이것은 거대한 작업이며 오래된 것들은 신뢰할 수있게되기 전에 많은 시간과 노력이 필요했습니다.
그러거라
러마) 의 약자로, 개체 관계형 mapping" ". 여기서
이 부분은 - 객체에는 사용해도 수 있는 프로그래밍 언어 (python 이 경우)
그래서 이 객체에는 let&, s # 39 라고 합니다.
class Employee:
def __init__( self, name ):
self.__name = name
def getName( self ):
return self.__name
#etc.
테이블에
create table employee(
name varcar(10),
-- etc
)
러마 할 수 있는 프레임워크를 사용하여 데이터베이스 (db) 와 함께 객체에는 매핑하려면 자동적 기록하십시오 write something like:
emp = Employee("Ryan")
orm.save( emp )
갖고 있는 부하예요 삽입됨 DB.
< sub>; 하지만 충분히 잡을 수 있는 것은 간단한 들소네? 좋겠다 "고 간단하게 다른 가공물과 너회가 read.< /sub>;
ORM(객체 관계형 매퍼)은 코드 오브젝트를 데이터베이스에 매핑하는 데 도움이 되는 소프트웨어의 일부/계층입니다.
어떤 것은 다른 것보다 더 많은 측면을 처리하지만, 그 목적은 개발자의 어깨에서 데이터 계층의 무게를 덜어주는 것입니다.
다음은 마틴 파울러(데이터 매퍼)의 짧은 영상입니다: