metaclass: (Default)
[personal profile] metaclass
http://d4s.livejournal.com/210142.html
Вопрос про обучение SQL. Не про продажу человеко-часов конкретному кастомеру с конкретной СУБД.
В комментариях ад содома и гоморры, с приведением каких-то дичайших конструкций из частных реализаций.

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

Date: 2012-06-29 03:44 pm (UTC)
From: [identity profile] w00dy.livejournal.com
Ребе, а кому-то эти базы с sql сейчас вообще нужны? Современная мода (да и всякие народные фреймворки) юзают ормы. Голый доступ к базе остался где-то в коровавом энтерпрайзе, кмк. Иль я не прав?

PS мну уже давно пользует только orm. Ну а голый sql остаётся в паре мест и то сугубо для целей оптимизации производительности где это критично.

Date: 2012-06-29 03:55 pm (UTC)
From: [identity profile] dr-hyder.livejournal.com
> Голый доступ к базе остался где-то в коровавом энтерпрайзе, кмк. Иль я не прав?

Не понял, в энтерпрайзе как раз сплошной ORM, далеко не все пишут стотыщ stored procedures. Противников же ORM примерно столько сколько и сторонников. Но по эмпирическим наблюдениям, если компания индусская то пользуются ORM, если не индусская то ORM пользуются для простых CRUD, всё остальное ручками.

Date: 2012-06-29 04:42 pm (UTC)
From: [identity profile] w00dy.livejournal.com
а смысл делать "остальное ручками"?

(no subject)

From: [identity profile] dr-hyder.livejournal.com - Date: 2012-06-29 04:48 pm (UTC) - Expand

(no subject)

From: [identity profile] w00dy.livejournal.com - Date: 2012-06-29 04:50 pm (UTC) - Expand

(no subject)

From: [identity profile] dr-hyder.livejournal.com - Date: 2012-06-29 05:03 pm (UTC) - Expand

(no subject)

From: [identity profile] w00dy.livejournal.com - Date: 2012-06-29 05:11 pm (UTC) - Expand

(no subject)

From: [identity profile] dr-hyder.livejournal.com - Date: 2012-06-29 05:16 pm (UTC) - Expand

(no subject)

From: [identity profile] w00dy.livejournal.com - Date: 2012-06-29 05:18 pm (UTC) - Expand

(no subject)

From: [identity profile] dr-hyder.livejournal.com - Date: 2012-06-29 05:25 pm (UTC) - Expand

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2012-06-29 08:14 pm (UTC) - Expand

(no subject)

From: [identity profile] w00dy.livejournal.com - Date: 2012-06-29 08:27 pm (UTC) - Expand

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2012-06-29 09:00 pm (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/_windwalker_/ - Date: 2012-06-30 09:59 pm (UTC) - Expand

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2012-07-02 07:50 am (UTC) - Expand

(no subject)

From: [identity profile] henu3detb.livejournal.com - Date: 2012-06-29 09:19 pm (UTC) - Expand

(no subject)

From: [identity profile] w00dy.livejournal.com - Date: 2012-06-29 10:12 pm (UTC) - Expand

(no subject)

From: [identity profile] henu3detb.livejournal.com - Date: 2012-06-30 09:27 am (UTC) - Expand
(deleted comment)

(no subject)

From: [identity profile] dr-hyder.livejournal.com - Date: 2012-06-29 08:16 pm (UTC) - Expand
(deleted comment)

(no subject)

From: [identity profile] dr-hyder.livejournal.com - Date: 2012-06-29 08:32 pm (UTC) - Expand

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2012-06-29 08:57 pm (UTC) - Expand

Date: 2012-06-29 03:59 pm (UTC)
From: [identity profile] dair-spb.livejournal.com
О, мил человек, а расскажите мне, который кроме SQL ничего не знает — как на орме (абстрактном в вакууме) написать более-менее сложный селект? Ну там с вложенностью, аутер джойнами...

Вот пример из моего приложения, холст, масло C#, PostgreSQL:
SELECT Q.CYCLE_ID AS ID, C.KEY AS TICKER, C.NAME AS NAME, Q.PRICE AS QUOTE, Q.TRADE_LIMIT AS TRADE_LIMIT, Q.NPCS_BUY AS NPCS_BUY FROM STOCK_COMPANY C LEFT OUTER JOIN STOCK_QUOTE Q ON (C.KEY = Q.COMPANY_KEY AND Q.CYCLE_ID IN (SELECT MAX(ID) FROM STOCK_CYCLE))

Date: 2012-06-29 04:13 pm (UTC)
From: [identity profile] dr-hyder.livejournal.com
Да примерно так же (http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html#queryhql-select). Нормальные люди пользуются ORM по назначению, как object-relational mapping, плюс как бонус простейшие запросы можно не писать а функции вызывать, я понимаю что там можно огород городить и извращаться, но если по хорошему SQL всё равно нужно знать.

(no subject)

From: [identity profile] w00dy.livejournal.com - Date: 2012-06-29 04:42 pm (UTC) - Expand

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2012-06-29 08:19 pm (UTC) - Expand

(no subject)

From: [identity profile] dr-hyder.livejournal.com - Date: 2012-06-29 08:31 pm (UTC) - Expand

(no subject)

From: [identity profile] w00dy.livejournal.com - Date: 2012-06-29 08:36 pm (UTC) - Expand

(no subject)

From: [identity profile] dr-hyder.livejournal.com - Date: 2012-06-29 08:41 pm (UTC) - Expand

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2012-06-29 08:55 pm (UTC) - Expand

(no subject)

From: [identity profile] dr-hyder.livejournal.com - Date: 2012-06-29 09:04 pm (UTC) - Expand

(no subject)

From: [identity profile] si14.livejournal.com - Date: 2012-07-01 09:42 am (UTC) - Expand

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2012-07-02 07:50 am (UTC) - Expand

(no subject)

From: [identity profile] si14.livejournal.com - Date: 2012-07-02 09:55 am (UTC) - Expand

(no subject)

From: [identity profile] si14.livejournal.com - Date: 2012-07-01 09:40 am (UTC) - Expand

(no subject)

From: [identity profile] dr-hyder.livejournal.com - Date: 2012-07-01 11:47 am (UTC) - Expand

(no subject)

From: [identity profile] w00dy.livejournal.com - Date: 2012-06-29 08:34 pm (UTC) - Expand

(no subject)

From: [identity profile] avnik.livejournal.com - Date: 2012-06-29 06:06 pm (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2012-06-30 08:10 pm (UTC) - Expand

Date: 2012-06-29 04:20 pm (UTC)
From: [identity profile] tzirechnoy.livejournal.com
А что, кто-то кроме конченных быдлокодеров ещё пишэт на ORM? Мне казалось, что ещё пятилетку назад вменяемые люди поняли, что это безсмыслица -- пытаться выразить реляцыонные понятия в объектных диалектах.

(no subject)

From: [identity profile] w00dy.livejournal.com - Date: 2012-06-29 04:46 pm (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2012-07-01 12:19 am (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2012-07-01 12:28 am (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2012-07-01 08:54 am (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2012-07-01 09:10 am (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2012-07-01 09:13 am (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2012-07-01 10:07 am (UTC) - Expand

(no subject)

From: [identity profile] w00dy.livejournal.com - Date: 2012-07-01 10:17 am (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2012-07-01 10:46 am (UTC) - Expand

(no subject)

From: [identity profile] w00dy.livejournal.com - Date: 2012-07-01 10:53 am (UTC) - Expand

(no subject)

From: [identity profile] w00dy.livejournal.com - Date: 2012-07-01 09:39 am (UTC) - Expand

(no subject)

From: [identity profile] blackyblack.livejournal.com - Date: 2012-07-02 07:40 am (UTC) - Expand

(no subject)

From: [identity profile] dair-spb.livejournal.com - Date: 2012-07-05 12:08 am (UTC) - Expand

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2012-07-02 05:53 am (UTC) - Expand

Date: 2012-06-30 08:07 pm (UTC)
From: (Anonymous)
Вы не поверите. Я тут попал в МТС и ребята на слово ОРМ спрашивают что это такое. Кстати ребята сами по себе неплохие.

Date: 2012-07-01 10:18 am (UTC)
From: [identity profile] norguhtar.livejournal.com
Основная проблема с ORM это увеличение возможности просчета на стадии проектирования. Проще говоря все равно надо СНАЧАЛА спроектировать базу данных, а уже потом натягивать туда ORM. Иначе можно существенно потом получить проблемы с производительностью которые будут исправляться сложно долго и нудно. Ну и плюс аналитику делать на ORM несколько кхм.

Date: 2012-06-29 03:48 pm (UTC)
From: [identity profile] dr-hyder.livejournal.com
Постоянно сталкиваюсь что люди не понимают каких то элементарнейших вещей, вроде one to many и many to many отношений. Не программисты, менеджеры всякие да тестеры этого не понимают в принципе, хотя вещи вообщем то совершенно не програмистские, просто из разряда логики и абстрактного мышления. Один шаг ещё могут осилить, если обьяснить на пальцах, но многошаговые отношения клинят им голову напрочь. Если А может иметь много Б нормально, но потом если Б has many to many relationships с В, начинается пиздец. Самое идиотское что часто пытаются влезть в дизайн схем, думая что это как у них на всяких бизнес диаграммах - нарисовал дурацкие ничего не значащие стрелочки между квадратиками и всё - заработало волшебным образом, просто блять!

Date: 2012-06-29 04:02 pm (UTC)
From: [identity profile] falcrum.livejournal.com
Увы, не всегда понимают и "программисты". :(

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2012-06-29 05:42 pm (UTC) - Expand

(no subject)

From: [identity profile] falcrum.livejournal.com - Date: 2012-06-29 05:59 pm (UTC) - Expand

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2012-06-29 08:21 pm (UTC) - Expand

(no subject)

From: [identity profile] falcrum.livejournal.com - Date: 2012-06-30 04:19 am (UTC) - Expand

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2012-07-02 05:56 am (UTC) - Expand

(no subject)

From: [identity profile] falcrum.livejournal.com - Date: 2012-07-02 06:19 am (UTC) - Expand

(no subject)

From: [identity profile] w00dy.livejournal.com - Date: 2012-06-29 06:49 pm (UTC) - Expand

(no subject)

From: [identity profile] vp.livejournal.com - Date: 2012-06-29 06:56 pm (UTC) - Expand

(no subject)

From: [identity profile] bydl0coder.livejournal.com - Date: 2012-06-29 08:48 pm (UTC) - Expand

Date: 2012-06-29 04:06 pm (UTC)
From: [identity profile] veter-r-r.livejournal.com
Да, таковы нынче эксперты в СУБД. Заучить стопиццот частных случаев в частной СУБД. А потом выдавать это в качестве рецептов.
Удивительно, но даже работает

Date: 2012-06-30 10:26 pm (UTC)
From: [identity profile] http://users.livejournal.com/_windwalker_/
говорит специалист в пхп

Date: 2012-06-29 04:18 pm (UTC)
From: [identity profile] eternal-leave.livejournal.com
Самое тоскливое, что эти люди попросту не понимают разницы между общим и частным. Какая в жопу разница, как составляется план запроса в постгре, если речь идет о студентах, которые селект первый раз в жизни видят?

Date: 2012-06-29 04:21 pm (UTC)
From: [identity profile] tzirechnoy.livejournal.com
(Гррррр) Он постгрес! (Грррррыррр)

(no subject)

From: [identity profile] eternal-leave.livejournal.com - Date: 2012-06-29 04:25 pm (UTC) - Expand

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2012-06-29 04:32 pm (UTC) - Expand

(no subject)

From: [identity profile] eternal-leave.livejournal.com - Date: 2012-06-29 04:54 pm (UTC) - Expand

Date: 2012-06-29 04:29 pm (UTC)
From: [identity profile] dr-hyder.livejournal.com
Нуууу тут как бы смотря до какого уровня имеется цель доучить. Если на ознакомительный тогда без разницы действительно. Если до практического уровня, тогда нужно понимать как разные БД используют индексы, какие есть ограничения, какие запросы будут работать тут, но совершенно не будут работать там.

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2012-06-29 04:34 pm (UTC) - Expand

(no subject)

From: [identity profile] dr-hyder.livejournal.com - Date: 2012-06-29 04:52 pm (UTC) - Expand

(no subject)

From: [identity profile] eternal-leave.livejournal.com - Date: 2012-06-29 04:55 pm (UTC) - Expand

(no subject)

From: [identity profile] d4s.livejournal.com - Date: 2012-06-29 07:50 pm (UTC) - Expand

(no subject)

From: [identity profile] eternal-leave.livejournal.com - Date: 2012-06-30 09:59 am (UTC) - Expand

Date: 2012-06-29 04:21 pm (UTC)
From: [identity profile] nicka-startcev.livejournal.com
а чё тут думать о стратегии! рубить надо! Ща быстренько ввяжемся и сразу на маркет, продавать. А доотлаживать как-нибудь потом будем, вкредит.

ну, уговорим всех как-нибудь, и людей, и менеджеров, и программу.
Edited Date: 2012-06-29 04:21 pm (UTC)

Date: 2012-06-29 04:21 pm (UTC)
From: [identity profile] tzirechnoy.livejournal.com
А вообще, давайте псить у первоисточника, а?

Date: 2012-06-29 05:03 pm (UTC)
From: [identity profile] berezovsky.livejournal.com
целебный курс реляционной алгебры с жертвоприношениями 12-летних девственниц в храм Бэкуса-Наура

Date: 2012-06-29 07:51 pm (UTC)
From: [identity profile] d4s.livejournal.com
э-э-э... где можно записаться?

(no subject)

From: [identity profile] berezovsky.livejournal.com - Date: 2012-06-29 08:02 pm (UTC) - Expand

(no subject)

From: [identity profile] d4s.livejournal.com - Date: 2012-06-29 08:03 pm (UTC) - Expand

(no subject)

From: [identity profile] berezovsky.livejournal.com - Date: 2012-06-29 08:13 pm (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/_windwalker_/ - Date: 2012-06-30 10:29 pm (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2012-07-01 10:22 am (UTC) - Expand

Date: 2012-06-29 08:09 pm (UTC)
From: [identity profile] familom.livejournal.com
По-моему, там в комментах отличная иллюстрация packing vs mapping из Programmer's Stone.

Date: 2012-06-30 09:26 am (UTC)
From: [identity profile] jakobz.livejournal.com
Проблема в том, что минимум половина юзает SQL не как оно задумывалось, а пытается из этой сволочи выжать себе тупые и быстрые persistent хеши, по ходу забарывая оптимизатор. На ACID кладется болт вообще в момент создания базы.

Многие такие пацаны даже знают что какой-нибудь noSQL им покатит, но там либо ссыкотно, либо влом, либо заказчик - банк.

Короче DBA - это в основном борцы с проблемами, которые приносит ненужный дополнительный слой. Если юзать SQL-базу чисто как оно там по реляционной теории, то DBA нахрен не нужен - там и юнга справится.

Date: 2012-06-30 08:47 pm (UTC)
From: (Anonymous)
Ничего они про NoSQL не знают.

Блин да у них в привычке высосать select в .NET хэш и работать с ним. Я когда это вижу падаю в обморок. Откуда они знают, что в справочнике подразделений не может быть 5 миллиардов строк? У нас нет столько подразделеинй? Сегодня или когда или база поехала...

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2012-07-02 05:58 am (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2012-07-02 06:48 am (UTC) - Expand

(no subject)

From: [identity profile] tzirechnoy.livejournal.com - Date: 2012-07-02 07:29 am (UTC) - Expand

Date: 2012-07-02 08:34 am (UTC)
From: [identity profile] blackyblack.livejournal.com
В коментах по ссылке всё правильно пишут. Хрена ли тот SQL изучать, когда на конкретной СУБД всё сломается. Да даже те же primary keys не заведёшь без гугла. Адекватные специалисты давно поняли, как реляционная алгебра работает, а весь остальной их опыт - тупо набивание шишек на самых разных реализациях.
Да, если автору нужно было тупо учить студентов, то можно дать им книжку прочитать и не парить мозг.

Date: 2012-07-02 09:47 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Дискуссия по ссылке напомнила одну лекцию. Как-то давно люди из Оракла показывали офигеннейшей сложности тул, оптимизирующий запросы. Реальный такой тул с пятизначной ценой за рабочее место. После всех глубин и высот в сухом остатке было предложение полученные оптимизированные запросы тестировать на реальных данных. Потому как только измерения и только на реальных объёмах могут показать, как на самом деле оно внутри будет выполняться.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 16th, 2025 05:53 am
Powered by Dreamwidth Studios