SQL

2012-06-29 15:58
d4s: (Default)
[personal profile] d4s
А вот скажет -- разница при обучении сабжу версии начала 2000-х и современных -- она действительно колоссальная?

Date: 2012-06-29 13:48 (UTC)
From: [identity profile] metaclass.livejournal.com
Даже базовых конструкций из стандарта хватает для работы.
А логика на стороне БД, требующая расширений - вещь достаточно спорная.

Date: 2012-06-29 14:32 (UTC)
From: [identity profile] max-posedon.livejournal.com
Простите, а что вы предлагаете из стандарта для того, что в MySQL называется auto_increment, а в PostgreSQL serial? Или "без этого можно жить"?

Date: 2012-06-29 15:15 (UTC)
From: [identity profile] metaclass.livejournal.com
Более того, в MSSQL это называется identity, а в Firebird вообще нужно это делать на триггерах (впрочем serial в постгресе тоже сделан на них).

Мы ведем речь о проектировании БД или о запросах к готовой БД?
Практика показывает, что людей хотя бы второму научить как следует, а до первого вообще доходят единицы, а нормально делать не умеет почти никто.

Date: 2012-06-29 16:44 (UTC)
From: [identity profile] tzirechnoy.livejournal.com
Да вот нифига, SERIAL в Postgres -- это DEFAULT nextval('...'), т.е. DEFAULT value а не триггер.

Date: 2012-06-29 16:56 (UTC)
From: [identity profile] metaclass.livejournal.com
psql:migrate/before_generated.sql:26: NOTICE: CREATE TABLE will create implicit sequence "actionlog_al_id_seq" for serial column "actionlog.al_id"

А, точно. Оно автоматически создает sequence для bigserial/serial

Date: 2012-06-29 19:07 (UTC)
From: [identity profile] pascendi.livejournal.com
А чё, книжку почитать -- уже не, а?

Date: 2012-06-29 19:26 (UTC)
From: [identity profile] d4s.livejournal.com
не... безотносительно к sql, все, что выходит за пределы "hello world" и "2+2=?" требует обязательного набивания шишек на практических примерах. имхо.

Date: 2012-06-29 15:42 (UTC)
From: [identity profile] tzirechnoy.livejournal.com
Для этого из стандарта я предлагаю стандартную документацыю.

Date: 2012-06-29 15:07 (UTC)
From: [identity profile] captain-hell.livejournal.com
Посмотри селект свыше. CONNECT BY ROOT или MAX(ID) KEEP (DENSE_RANK FIRST ORDER BY start_id) ID, - это не логика на стороне БД.

А еще есть OLAP синтаксис(у всех разный)
А еще есть кляуза MODEL(у всех разная)
А еще есть форматирование вывода(у всех разное)
А еще есть функции работы с данными(у всех разные)

Date: 2012-06-29 15:16 (UTC)
From: [identity profile] metaclass.livejournal.com
Это частные случаи. Чтобы обучить людей понимать реляционную модель делать запросы, они мало того, что не нужны, а даже и вредны.

Date: 2012-06-29 16:47 (UTC)
From: [identity profile] captain-hell.livejournal.com
Есть интересный сайт http://sql-ex.ru

Там без знания mssql ничего не решишь кроме первых пяти-десяти заданий.

Обучать понимать... 4 курс... обучать понимать... Как-то на зубах даже скрипит.

Date: 2012-06-29 19:10 (UTC)
From: [identity profile] pascendi.livejournal.com
SQL говно.
Хороший ЯМД был у DEC, назывался RDO.

Date: 2012-07-02 06:01 (UTC)
From: [identity profile] tzirechnoy.livejournal.com
Не вижу Вашэй или какой-либо другой жывой реализацыи RDO.
Учитывая, что реализовать SQL-сервер на Си у нас давали в качестве прака студентам на втором курсе (ну, там правда делать нечего) -- это вызывает подозрения, что либо этот RDO не так цэнен, либо это несравнимые вещи.

Date: 2012-07-02 07:36 (UTC)
From: [identity profile] pascendi.livejournal.com
RDO не стал отраслевым стандартом, а со смертью фирмы DEC, как проприетарный язык, ушел в небытие.

Делал он все то же самое, что SQL, но был лаконичнее и лучше понятен в сложных конструкциях.

Date: 2012-07-02 07:48 (UTC)
From: [identity profile] tzirechnoy.livejournal.com
Так напишыте RDO-сервер. Я думаю, это будет хорошэй популяризацыей.

Date: 2012-07-02 07:58 (UTC)
From: [identity profile] pascendi.livejournal.com
Зачем он мне?

Date: 2012-06-29 19:14 (UTC)
From: [identity profile] tzirechnoy.livejournal.com
А есть ещё сайт oracle.com, там тожэ половина примеров только под оракелом пойдёт. И что?

Date: 2012-06-29 16:04 (UTC)
From: [identity profile] tzirechnoy.livejournal.com
1) CONNECT BY вообще нереляцыонен, его следует избегать в RDBMS, а если избегать получается плохо -- подумать насчёт сменить базу на деревянную. И уж точно это не нужно давать начинающим.
2) OLAP по большэй части -- syntax shugar к реляцыонным возможностям. Его надо хорошо понимать, чтобы использовать, а будет там CUBE MATERIALIZED VIEW или закат солнца вручную на триггерах и LIKE '..%' -- это дело десятое.

Date: 2012-06-29 16:58 (UTC)
From: [identity profile] captain-hell.livejournal.com
Не реляционен?? Избегать? Может еще стоит и забыть как оно там хранится и как сравнивается, во имя абстрактной идеи?

Date: 2012-06-29 17:52 (UTC)
From: [identity profile] tzirechnoy.livejournal.com
Да, нереляцыонен. Да, избегать. Забывать -- не предлагаю, но это второстепенное.

Date: 2012-06-29 17:59 (UTC)
From: [identity profile] captain-hell.livejournal.com
Дайте-ка угадаю. Вы небось и размера блока данных не знаете в своей базе.

Скажите а мегафон, дураки, используют вовсю нереляционности и не жужжат. Дураки, как и я.

Date: 2012-06-29 19:16 (UTC)
From: [identity profile] tzirechnoy.livejournal.com
Можэт быть, и не знаю. Впроде года три назад были какие-то подвижки его сменить, не знаю чем закончились.

>Скажите а мегафон, дураки, используют вовсю
> нереляционности и не жужжат.

Я уверен как в том, что в мегафоне много дураков (немаленькая компания всё-таки), так и в том что CONNECT BY можэт оказаться лучшым из зол в некоторых случаях.

Date: 2012-06-29 16:05 (UTC)
From: [identity profile] tzirechnoy.livejournal.com
Ну, и форматирование вывода или как там даты складываются -- это вообще смешно. Мы про программистов говорим, или про операторов ЭВМ вообще?

Date: 2012-06-29 19:18 (UTC)
From: [identity profile] az-from-belarus.livejournal.com
Поддерживаю.

Profile

d4s: (Default)
d4s

October 2016

M T W T F S S
     12
345 6789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 2026-04-07 19:36
Powered by Dreamwidth Studios