2010-09-22 4 views
7

Я не администратор базы данных или архитектор, поэтому я должен спросить тех, кто это делает 24/7. Насколько установлена ​​концепция ORM (реляционное сопоставление объектов) в мире администрирования и архитектуры баз данных? Это все еще происходит, широко одобряется, но все еще находится на ранней стадии или вообще не одобряется? Я изучаю эту область и хочу получить представление о том, будет ли это знание оценено более широким сегментом этой области.Как установлено ORM (реляционное сопоставление объектов) в мире баз данных

+1

Желаю, чтобы наши dba были 24/7 ... Мне повезло, если я смогу найти один между 9 и 5! Я клянусь, что это требование работы dba, что они способны исчезнуть как раз перед тем, как вам это понадобится. haha – CaffGeek

+0

@chad, мы выпустили наш плащ invisibilty в первый день. – HLGEM

ответ

4

Широко используется и определенно настоящее и ближайшее будущее. Доступ к базе данных с помощью ручного кода генерации SQL всегда был чреват тяжелым трудом и опечатками, и в лучшем случае был громоздким. ORM позволяют использовать хранилище сохранения в программировании.

Я думал, что этот блог аргументировал это хорошо: http://jonkruger.com/blog/category/fluent-nhibernate/ и SO сообщения вроде этого (nHibernate versus LLBLGen Pro) показывают, сколько людей использует их.

4

Я могу рассказать вам по моему опыту. Мы являемся производителем солнечной продукции стоимостью 2,5 млрд долларов, и мы основываем наше следующее поколение продуктов на технологиях ORM. Мы используем Linq-To-SQL, довольно успешно. Мы очень этому довольны.

+0

Linq-To-SQL не является полным инструментом ORM, но LINQ to Entities (ADO.Net Entity Framework) является API-интерфейсом ORM (Object Relational Mapper). См. Здесь http://stackoverflow.com/questions/8676/entity-framework-vs-linq-to-sql –

+0

@ A-Var - «Завершить» субъективно. Просто потому, что L2S составляет 1: 1 с таблицами базы данных, не делает его неполным. В этом смысле каждая ORM является неполной по сравнению с продуктом, который имеет большинство функций, звонков и свистов. –

4

Концепция существует не менее 20 лет.

Если вы посмотрите на любой достойный веб-фреймворк, будь то Java, Ruby, PHP, C# или Python, все они включают ORM. Как правило, это воспринимается как более профессиональный выбор, если у вас нет особых требований к высокой производительности или пользовательскому SQL.

+1

Re высокой производительности, это не совсем точно. Многие ORM позволят вам использовать пользовательский SQL, если вы хотите иногда брать на себя ответственность за производительность. – samquo

+0

Несомненно, это хорошо, чтобы указать на это. – JAL

+0

Я предполагаю, что моя мысль была, если вы используете собственный SQL, вы в значительной степени используете ORM, чтобы получить соединение с базой данных, и на самом деле это не использует ORM. – JAL

5

ORM широко используются. Django (инфраструктура веб-приложений python) использует SQLAlchemy. Hibernate популярен для программ Java. ORM ускоряют разработку приложений SQL, уменьшают количество кода шаблона, который вы должны написать, и скрываете, какую базу данных вы используете из остальной части приложения. Производительность может пострадать при использовании ORM, поэтому будьте готовы настроить вещи по мере необходимости.

6

Много мест используют их, это не значит, что они хорошо их используют или что они являются хорошей идеей для долгосрочного здоровья базы данных. Это не значит, что они тоже не являются, обычно это означает, что люди, выбирающие их, не думают о том, как это влияет на дизайн базы данных, обслуживание и производительность с течением времени.

Смежные вопросы