객체 관계 매핑(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을 사용하면 다음과 같은 이유로 많은 시간을 절약할 수 있습니다.
DRY: 데이터 모델을 한 곳에서만 작성하면 코드를 업데이트, 유지 관리 및 재사용하기가 더 쉬워집니다.
모든 약어와 마찬가지로 모호하지만 객체 관계형 매퍼를 의미한다고 생각합니다(눈을 가리고 그 밑에 SQL이 없는 것처럼 보이게 하는 방법, 오히려 모든 것이 객체라고 믿게 하는 방법). 물론 실제로는 사실이 아니며 문제가 없는 것은 아닙니다. 항상 다채로운 제프 앳우드는 ORM을 CS의 베트남으로 묘사했습니다.) 하지만 SQL을 거의 또는 전혀 모르고 아주 간단하고 작은 규모의 문제가 있는 경우 시간을 절약할 수 있습니다!)
소개
객체 관계 매핑(ORM)은 객체 지향 패러다임을 사용하여 데이터베이스의 데이터를 쿼리하고 조작할 수 있는 기술입니다. 대부분의 사람들은 ORM에 대해 이야기할 때 객체 관계형 매핑 기법을 구현하는 라이브러리를 가리키며, 따라서 'ORM'이라는 문구를 사용합니다.
ORM 라이브러리는 데이터를 조작하는 데 필요한 코드를 캡슐화하는 원하는 언어로 작성된 완전히 일반적인 라이브러리로, 더 이상 SQL을 사용하지 않고 사용 중인 언어와 동일한 언어로 객체와 직접 상호 작용합니다.
예를 들어, 다음은 의사 언어를 사용한 완전히 가상의 사례입니다:
책 클래스가 있는데 저자가 '라이너스'인 모든 책을 검색하고 싶다고 가정해 보겠습니다. 수동으로는 이와 같은 작업을 수행할 수 있습니다:
ORM 라이브러리를 사용하면 다음과 같이 표시됩니다:
기계적인 부분은 ORM 라이브러리를 통해 자동으로 처리됩니다.
장단점
**ORM을 사용하면 다음과 같은 이유로 많은 시간을 절약할 수 있습니다.
**ORM 라이브러리를 사용하면 다음과 같은 이유로 더 유연합니다.
**하지만 ORM은 골칫거리가 될 수 있습니다.
for
루프에서 큰 히트를 치는 것과 같이 매우 탐욕스러운 문을 작성할 수 있는 함정이 될 수 있습니다.ORM에 대해 어떻게 배울까요?
하나를 사용하세요. 어떤 ORM 라이브러리를 선택하든 모두 동일한 원리를 사용합니다. 여기에는 많은 ORM 라이브러리가 있습니다:
웹 프로그래밍에서 ORM 라이브러리를 사용하려면 다음과 같은 전체 프레임워크 스택을 사용하는 것이 좋습니다:
무언가를 배우려는 것이 아니라면 자신만의 ORM을 작성하려고 하지 마세요. 이것은 거대한 작업이며 오래된 것들은 신뢰할 수있게되기 전에 많은 시간과 노력이 필요했습니다.
그러거라
러마) 의 약자로, 개체 관계형 mapping" ". 여기서
이 부분은 - 객체에는 사용해도 수 있는 프로그래밍 언어 (python 이 경우)
39, 응용 프로그램에서 사용할 수 있는 t don& 러마 레임워크 이렇게 하려면 손. 러마 사용 할 수 있도록 만드는 데 필요한 상용 솔루션을 절감하십시오 이를 어겼다.
그래서 이 객체에는 let&, s # 39 라고 합니다.
테이블에
러마 할 수 있는 프레임워크를 사용하여 데이터베이스 (db) 와 함께 객체에는 매핑하려면 자동적 기록하십시오 write something like:
갖고 있는 부하예요 삽입됨 DB.
< sub>; 하지만 충분히 잡을 수 있는 것은 간단한 들소네? 좋겠다 "고 간단하게 다른 가공물과 너회가 read.< /sub>;
ORM(객체 관계형 매퍼)은 코드 오브젝트를 데이터베이스에 매핑하는 데 도움이 되는 소프트웨어의 일부/계층입니다.
어떤 것은 다른 것보다 더 많은 측면을 처리하지만, 그 목적은 개발자의 어깨에서 데이터 계층의 무게를 덜어주는 것입니다.
다음은 마틴 파울러(데이터 매퍼)의 짧은 영상입니다:
엔터프라이즈 애플리케이션 아키텍처 데이터 매퍼의 패턴
모든 약어와 마찬가지로 모호하지만 객체 관계형 매퍼를 의미한다고 생각합니다(눈을 가리고 그 밑에 SQL이 없는 것처럼 보이게 하는 방법, 오히려 모든 것이 객체라고 믿게 하는 방법). 물론 실제로는 사실이 아니며 문제가 없는 것은 아닙니다. 항상 다채로운 제프 앳우드는 ORM을 CS의 베트남으로 묘사했습니다.) 하지만 SQL을 거의 또는 전혀 모르고 아주 간단하고 작은 규모의 문제가 있는 경우 시간을 절약할 수 있습니다!)
객체 모델은 다음과 같은 세 가지 관련된 개념 Data Abstraction 캡슐화 상속 기본 개념은 관계형 모델을 사용하는 관계 또는 테이블. 객체 관계 매핑 (또는 구성도를) 제품을 통합 관계형 데이터베이스 객체 프로그래밍 언어 기능을 함께 사용할 수 있습니다.