Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 13, 2010 16:45:14

Ardling
От:
Зарегистрирован: 2009-05-01
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Для чего нужен sqlAlchemy?

В прогах, которые я пишу мне регулярно нужно сталкиваться с обращениями к базе данных. Порыскав по сети и почитав форумы (этот в частности), столкнулся с большим количеством рекомендаций использовать над базами слой абстракций типа Алхимии. Поизучав Алхимию, пришел к выводу, что мне очень не удобно конструировать запросы из ее классов, а куда приятнее запихать всю логику БД в хранимые функции и вызывать из кода только их. Но хотелось бы разобраться, с чем связано такое пристрастие питонистов к Алхимии. Возможно я что-то важное упустил из виду, и при усложнении проета придется столкнуться со значительными трудностями. Прошу Гуру не засерать эту тему как ламерскую, а постараться объяснить какие имеются плюсы и минусы использования sqlAlchemy. Заранее стасибо.



Офлайн

#2 Янв. 13, 2010 17:00:19

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Для чего нужен sqlAlchemy?

Я не использую ОРМ, т.к. лично для меня это не имеет смысла. Но в свое время исследовал этот вопрос и к такому решению пришел сознательно.

Преимущества использования любого ОРМ сводятся к 2 вещам:
1. Программирование только на Питоне, без SQL. Полезно для тех, кто не умеет работать с SQL.
2. Поддержка множества СУБД и реализация DB-API 2.0. Наверное, самое существенное преимущество. В теории один и тот же код может работать с разными СУБД. На практике могут быть редковстречаемые, но труднопреодолимые проблемы.

Недостатки описывать не буду. Раз уж вы задаете вопрос в таком ключе, значит понимаете о чем идет речь.



Офлайн

#3 Янв. 13, 2010 17:08:40

Ardling
От:
Зарегистрирован: 2009-05-01
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Для чего нужен sqlAlchemy?

Вообще по моим представлениям ORM появились как средство упрощения обработки данных, получаемых от БД, в таких языках как C++. Там я думаю весьма удобно иметь слой абстракции, который преобразует данные в удобную для программиста форму. Но в питоне по моим понятиям все в порядке - в нем очень удобные встроенные типы данных, и стандартный средства обращений к БД замечательно их используют. Или я ошибаюсь?

Очень бы хотелось послушать сторонников использования Алхимии.



Офлайн

#4 Янв. 13, 2010 18:54:21

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Для чего нужен sqlAlchemy?

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

Офлайн

#5 Янв. 13, 2010 19:48:26

Ardling
От:
Зарегистрирован: 2009-05-01
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Для чего нужен sqlAlchemy?

Честно говоря думал меня убедят, что ORM - великая вещь и надо ей пользоваться. Вышло все наоборот. Мне как-то удобнее пользоваться хранимыми процедурами - не надо изучать еще один здоровенный кусок англоязычной документации. Да и спрятать всю SQLную логику внутри самой БД это на мой взгляд очень правильно, и быстрее (уж чем питоновый код то уж точно) и безопаснее (в случае сетевых приложений), да и само по себе как-то более красиво.



Отредактировано (Янв. 13, 2010 19:48:59)

Офлайн

#6 Янв. 13, 2010 21:15:15

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Для чего нужен sqlAlchemy?

Дело ваше.

Офлайн

#7 Янв. 13, 2010 22:34:43

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Для чего нужен sqlAlchemy?

Ardling Я отчего-то не понял почему вы противопоставляете сохраненки и ORM?
И какие ORM, реализованные на С++, вам известны???
Всегда считал, что ноги начали расти из Java Hibernate.

ORM - это не обязательно способ реализации бизнес-логики на стороне клиента.
В первую очередь это объектно-ориентированный интерфес к БД.

Думаю, вы в работе классы используете? Может, даже пишете в ООП стиле? И как, не жмет?
Ведь любую задачу можно решить функциональным способом!

Сохраненки - это тоже по большому счету паллиатив. Мне каждый раз при создании чего-то по настоящему большого приходилось делать трехуровневую архитектуру.
То есть развитие идет так: ORM->сохраненки->сервисы. Плюс кеширование.
Не забывайте еще и о скорости создания конечного продукта. Чем проще - тем быстрее.

О произвдительности говорить считаю неприличным до того, как были произведены замеры для конкретного случая.
Ибо скорость сферического коня в вакууме практически равна скорости света.



Отредактировано (Янв. 13, 2010 22:35:15)

Офлайн

#8 Янв. 13, 2010 23:09:41

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Для чего нужен sqlAlchemy?

Ferroman
кроссбазовость и однообразие в программировании - главные преимущества ORM
Сейчас существует множество DACов, которые реализуют то же самое. Даже древний ADO этим обладает.
Возникает логичный вопрос, по сравнению с какой технологией у ОРМ эти 2 параметра являются преимуществами?



Офлайн

#9 Янв. 13, 2010 23:42:18

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Для чего нужен sqlAlchemy?

Lexander
О чём конкретно разговор? Мне эти аббривиатуры никак не вяжутся с сабжем.

Офлайн

#10 Янв. 14, 2010 01:51:04

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Для чего нужен sqlAlchemy?

DAC - Data Access Components - технология доступа к данным.
ADO - одна из надстроек над DAC производства Microsoft.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version