누군가 내가 설계하고있는 프로젝트에 ORM을 사용하라고 제안했지만, 그것이 무엇인지 또는 어떻게 작동하는지에 대한 정보를 찾는 데 어려움을 겪고 있습니다.
누구든지 ORM의 정의와 작동 방식 및 사용 방법에 대해 간단히 설명해 줄 수 있습니까?
누군가 내가 설계하고있는 프로젝트에 ORM을 사용하라고 제안했지만, 그것이 무엇인지 또는 어떻게 작동하는지에 대한 정보를 찾는 데 어려움을 겪고 있습니다.
누구든지 ORM의 정의와 작동 방식 및 사용 방법에 대해 간단히 설명해 줄 수 있습니까?
답변:
ORM ( Object-Relational Mapping )은 객체 지향 패러다임을 사용하여 데이터베이스에서 데이터를 쿼리하고 조작 할 수있는 기술입니다. ORM에 관해 이야기 할 때, 대부분의 사람들은 객체 관계형 매핑 기술을 구현 하는 라이브러리 , 즉 "ORM"이라는 문구를 언급합니다.
ORM 라이브러리는 데이터를 조작하는 데 필요한 코드를 캡슐화하여 선택한 언어로 작성된 완전히 일반적인 라이브러리이므로 더 이상 SQL을 사용하지 않습니다. 사용중인 언어와 동일한 언어로 개체와 직접 상호 작용합니다.
예를 들어 의사 언어를 사용하는 완전히 가상의 사례는 다음과 같습니다.
당신은 책 클래스를 가지고 있으며, 저자가 "Linus"인 모든 책을 검색하려고합니다. 수동으로 다음과 같은 작업을 수행합니다.
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을 쓰려고하지 마십시오. 이것은 거대한 작업이며, 오래된 작업은 많은 시간과 작업이 필요하기 때문에 시간이 많이 걸렸습니다.
누구든지 간단한 설명을 해 줄 수 있습니까?
확실한.
ORM은 "Object to Relational Mapping"을 나타냅니다.
개체 부분은 당신이 당신의 프로그래밍 언어를 사용하는 하나 (이 경우 파이썬)입니다
관계 부분은 관계형 데이터베이스 관리 시스템입니다 (데이터베이스)가 다른 유형의 데이터베이스가 있지만 가장 인기가 관계형입니다 (당신이 알고있는 테이블, 열, PK FK 등의 예를 들어 오라클의 MySQL, MS-SQL)
마지막으로 매핑 부분은 객체와 테이블을 연결하는 곳입니다.
ORM 프레임 워크를 사용하지 않는 응용 프로그램에서는이 작업을 직접 수행합니다. ORM 프레임 워크를 사용하면 솔루션을 만드는 데 필요한 상용구를 줄일 수 있습니다.
이 객체가 있다고 가정 해 봅시다.
class Employee:
def __init__( self, name ):
self.__name = name
def getName( self ):
return self.__name
#etc.
그리고 테이블
create table employee(
name varcar(10),
-- etc
)
ORM 프레임 워크를 사용하면 해당 객체를 자동으로 db 레코드로 매핑하고 다음과 같이 작성할 수 있습니다.
emp = Employee("Ryan")
orm.save( emp )
그리고 직원을 DB에 삽입하십시오.
죄송 합니다만, 다른 기사를 읽을 수있을 정도로 간단하기를 바랍니다.
ORM (Object Relational Mapper)은 코드 객체를 데이터베이스에 매핑하는 데 도움이되는 소프트웨어입니다.
일부는 다른 것보다 더 많은 측면을 처리하지만 목적은 개발자의 어깨에서 데이터 레이어의 무게를 줄이는 것입니다.
다음은 Martin Fowler (Data Mapper)의 간단한 클립입니다.