Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Вопрос-Ответ Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5 6 7 8 9 10 .. 15   вперед  Ctrl
 Re: Программирование в стиле Джо Селко на SQL  [new]
tchingiz
Member

Откуда:
Сообщений: 38174
вот не доработочка.
а в оракле хоть есть?
19 май 07, 08:49    [4159187]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10752
Блог
tchingiz
вот не доработочка.
а в оракле хоть есть?


В оракле ест хэш-индексы, но реализация кривая :(
19 май 07, 11:01    [4159255]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 63974
Блог
Александр Гладченко
В оракле ест хэш-индексы, но реализация кривая :(

Кто мешает написать прямую? В Oracle можно еще и подключать user-defined индексы. К сожалению, не совсем прямо, но работает.
21 май 07, 11:37    [4162093]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10752
Блог
softwarer
Александр Гладченко
В оракле ест хэш-индексы, но реализация кривая :(

Кто мешает написать прямую? В Oracle можно еще и подключать user-defined индексы. К сожалению, не совсем прямо, но работает.


Тут речь не о конкретном продукте :) (в MS SQL тоже хэш-соединения предусмотрены и работаю, причём, не криво), речь о полезности книги, которая (местами) призывает делать то, что ПРАВИЛЬНО с точки зрения реляционной теории, но мы все этого не делаем в силу разных причин...
21 май 07, 11:42    [4162122]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 63974
Блог
Александр Гладченко
речь о полезности книги

Именно что. Следует ли понимать так, что только нежелание тратить, например, неделю (месяц, год) работы на "прямую реализацию" не дает применить дико полезный совет? Или вернее будет сказать, что была бы "прямая реализация" - нашлась бы другая причина этот совет не применять?
21 май 07, 11:57    [4162221]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
SeVa
Member [заблокирован]

Откуда: Москва
Сообщений: 4324
Селко

Другая проблема возникает, когда естественный ключ существует (а в корректной модели данных он есть обязательно). В этом случае столбцы можно обновлять как по ключу, так и по автоматическому номеру. Поскольку нет способа связать ключ с автономером, не будет и целостности данных.
Чтобы убедиться в этом, рассмотрим типичную для новичков схему. Я таких называю "id-иотами", поскольку у них в таблицах обязательно есть столбец "id" с автонумерацией:

CREATE TABLE Personnel
(id AUTONUMBER NOT NULL PRIMARY KEY,-- неправильный ключ
ssn CHAR(9) NOT NULL,-- настоящий ключ
..);
INSERT INTO Personnel VALUES ('999999999', ..);


Видно, мужчина давно уже пишет только книжки, реальная жизнь гораздо интересней.
В недавней системе было одно из основных требований-ОБЯЗАТЕЛЬНО ОБЕСПЕЧИТЬ возможность ввода одному человеку нескольких SSN.
Специально проверял на 2,5мил-х записей, и выяснилось, что барадак присутствует и у буржуев.
PS.
Наверное, что-то не то в магнитных лентах.Старая система писалась 20 лет назад, для них родимых.
21 май 07, 12:16    [4162369]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31768
Модератор:
удалено


Сообщение было отредактировано: 22 май 07, 03:45
21 май 07, 12:21    [4162404]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10752
Блог
softwarer
Александр Гладченко
речь о полезности книги

Именно что. Следует ли понимать так, что только нежелание тратить, например, неделю (месяц, год) работы на "прямую реализацию" не дает применить дико полезный совет? Или вернее будет сказать, что была бы "прямая реализация" - нашлась бы другая причина этот совет не применять?


За других не скажу, но если бы была реализация, я бы жил без идентити
21 май 07, 13:10    [4162782]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10752
Блог
Картинка с другого сайта.
21 май 07, 13:38    [4162946]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31768

Привет, Александр!
Ты пишешь:

Александр
Картинка с другого сайта.

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4

21 май 07, 13:46    [4163003]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
SeVa
Member [заблокирован]

Откуда: Москва
Сообщений: 4324
Александр Гладченко

За других не скажу, но если бы была реализация, я бы жил без идентити

Ну, тогда назад к лентам!Тогда таких глупостей не было :-)
21 май 07, 16:36    [4164365]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10752
Блог
SeVa
Александр Гладченко

За других не скажу, но если бы была реализация, я бы жил без идентити

Ну, тогда назад к лентам!Тогда таких глупостей не было :-)


Это как же не было????? БЫЛО, и глупости тогда было не меньше
21 май 07, 16:48    [4164466]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10752
Блог
Мимопроходящий

Привет, Александр!
Ты пишешь:

(тут могла быть и Ваша фотка)

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4


Это был какой дубль?
21 май 07, 16:50    [4164479]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
tchingiz
Member

Откуда:
Сообщений: 38174
Александр Гладченко
softwarer
Александр Гладченко
В оракле ест хэш-индексы, но реализация кривая :(

Кто мешает написать прямую? В Oracle можно еще и подключать user-defined индексы. К сожалению, не совсем прямо, но работает.


Тут речь не о конкретном продукте :) (в MS SQL тоже хэш-соединения предусмотрены и работаю, причём, не криво), речь о полезности книги, которая (местами) призывает делать то, что ПРАВИЛЬНО с точки зрения реляционной теории, но мы все этого не делаем в силу разных причин...


причина писать более простые соединения таблиц, их после читать и редактировать,
то есть меньше работать за туже зарплату, более чем благородная.
а, причин юзать составные ключи не было представлено.
Кроме странного упоминания требований реляционной теории.
Реляционная теория - формальная теория (есть отношения, есть операции над ними), ей без разницы какие первичные ключи, составные или нет.
Рассказывающий о реляционных и не реляционных первичных ключах занимается художественным свистом.

Сообщение было отредактировано: 22 май 07, 03:46
22 май 07, 03:39    [4166253]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10752
Блог
Неболшой художественный свист на тему того, почему автонумерация не может использоваться в качестве реляционного ключа: https://www.sql.ru/articles/mssql/2006/080102DataDeclarationLanguage.shtml#18

Т.е. скажем так, причина юзать составные ключи (если исходить от обратного) - это нежелательность использования разного рода автонумераторов (по Селко). А теперь можете его опровергать ;)
22 май 07, 10:23    [4166839]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31768

Привет, Александр!
Ты пишешь:

Александр
А теперь можете его опровергать ;)
тебе рассказать анекдот о "неуловимом Джо" ?

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4

22 май 07, 11:19    [4167238]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
SeVa
Member [заблокирован]

Откуда: Москва
Сообщений: 4324
Свистеть - не мешки таскать.
Главу про id-идитов прочел по диагонали, но его примеры взяты с потолка.
Казалось бы, такой железобетонный вариант -SSN, но у одного человека может быть их несколько, и связано это не с осыпанием ленты и ошибками ввода, а с реалиями жизни.На вопрос-а как же так может быть? Последовал простой ответ- а вот так, SSN не может быть первичным ключем, мы уже с этим наелись, головной боли нам больше не нужно.
Причиной провала одного из проектов datawarehouse было то, что в модели использовали естественный ключ-ИН продукта, который тоже в идеале должен быть уникальный.Выянилось, что предприятиям было лениво подавать заявку на новый продукт и использовали номера тех, что уже сняты с производства.В результате - полная каша, никакого временного анализа произвести нельзя.
Продолжать можно до бесконечности.Есть варианты где они применимы, но их немного.
Кроме того, естественные ключи (в особенности составные) еще и значительно снижают производительность в соединениях.
Еще один аргумент - уникальные ключи позволяют значительно сократить кол-во слабых сущностей(адреса, комментарии, контакты и прочая полова, которой даже в средних проектах может быть много),что в результате снижает расход каллорий.
22 май 07, 12:59    [4168135]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 63974
Блог
SeVa
Главу про id-идитов прочел по диагонали, но его примеры взяты с потолка.
Казалось бы, такой железобетонный вариант -SSN, но у одного человека может быть их несколько,

Сугубо имхо - идея естественных ключей нафиг разбивается о такую реальность нашей жизни как ошибки ввода. Даже контрольные разряды не защитят от оператора, вбившего ИНН Игоря Иванова в карточку Иннокения Иванова, а уж про данные без возможности такого контроля и говорить не приходится.
22 май 07, 13:46    [4168463]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10752
Блог
SeVa

Свистеть - не мешки таскать.
Главу про id-идитов прочел по диагонали, но его примеры взяты с потолка.

Почему же с потолка, я это вижу сплошь и рядом... (аргументом не засчитано :)
SeVa

Казалось бы, такой железобетонный вариант -SSN, но у одного человека может быть их несколько, и связано это не с осыпанием ленты и ошибками ввода, а с реалиями жизни.На вопрос-а как же так может быть? Последовал простой ответ- а вот так, SSN не может быть первичным ключем, мы уже с этим наелись, головной боли нам больше не нужно.

В книге SSN был использован в качестве примера, а не аргумента, ИМХО. Я бы тоже не стал его использовать, хотя лично мне выдали две бумажки (менял как раз работу и на обоих заказали карточки) и номера чудесным образом совпали :)
SeVa

Причиной провала одного из проектов datawarehouse было то, что в модели использовали естественный ключ-ИН продукта, который тоже в идеале должен быть уникальный.Выянилось, что предприятиям было лениво подавать заявку на новый продукт и использовали номера тех, что уже сняты с производства.В результате - полная каша, никакого временного анализа произвести нельзя.

Это скорее аргумент в пользу реляционной теории, и демонстрация того, как не хватило аргументов доказать её полезность, и потом реализовать правильную модель (незачёт)
SeVa

Продолжать можно до бесконечности.Есть варианты где они применимы, но их немного.

Согласен, продолжать можно до бесконечности... Есть варианты, где они применимы, но их не применили... и таких большинство...
SeVa

Кроме того, естественные ключи (в особенности составные) еще и значительно снижают производительность в соединениях.

Верно, но ИМХО в том, что слабо реализованы механизмы поддержки связей для VLDB. Данные растут естественным путём и не очень хочется из-за этого переезжать на другие СУБД...
SeVa

Еще один аргумент - уникальные ключи позволяют значительно сократить кол-во слабых сущностей(адреса, комментарии, контакты и прочая полова, которой даже в средних проектах может быть много),что в результате снижает расход каллорий.

А бывают неуникальные ключи? ...что то я из последней фразы ничего не понял, поясните, пожалуйста?
22 май 07, 14:01    [4168581]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10752
Блог
softwarer
SeVa
Главу про id-идитов прочел по диагонали, но его примеры взяты с потолка.
Казалось бы, такой железобетонный вариант -SSN, но у одного человека может быть их несколько,

Сугубо имхо - идея естественных ключей нафиг разбивается о такую реальность нашей жизни как ошибки ввода. Даже контрольные разряды не защитят от оператора, вбившего ИНН Игоря Иванова в карточку Иннокения Иванова, а уж про данные без возможности такого контроля и говорить не приходится.


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

Аргументом не засчитано, поскольку "ошибки ввода" наука давно изведенная, и никак не связанная с использованием естественных ключей, хоть и не оних тут речь ;)
22 май 07, 14:06    [4168614]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
SeVa
Member [заблокирован]

Откуда: Москва
Сообщений: 4324
Александр Гладченко

В книге SSN был использован в качестве примера, а не аргумента, ИМХО. Я бы тоже не стал его использовать, хотя лично мне выдали две бумажки (менял как раз работу и на обоих заказали карточки) и номера чудесным образом совпали :)

Если в качестве аргументов приводятся примеры, в которых сразу видны грабли, то это сразу вызывает сомнения в правильности столь сильных утверждений.Да, у подавляющего большинства SSN уникален, но есть случаи, где нет.Если система не учитывает исключений из правил, а они, как правило, всегда находятся, то это игрушка, которая никому не нужна.Еще раз повторюсь, ни о каких ошибках ввода речь не идет.Есть уникумы, у которых несколько ОФИЦИАЛЬНО выданных SSN.

Александр Гладченко

Это скорее аргумент в пользу реляционной теории, и демонстрация того, как не хватило аргументов доказать её полезность, и потом реализовать правильную модель (незачёт)

Хотельсь бы услышать больше конкретики, а не общих рассуждений.Какая должна быть правильная модель, если несколько разных товаров, имеют общие регистрационные номера?

Александр Гладченко

А бывают неуникальные ключи? ...что то я из последней фразы ничего не понял, поясните, пожалуйста?

Подразумевались уникальные ключи в пределах БД.
Простой пример.Как правило, большинство сущностей должны иметь комментарии, адреса, контакты и тд.
Соответсвенно,если пуритански заботится о чистоте реляционной теории, нужно создавать разные таблицы или вводить слабые сущности.В итоге, наскребется на одной шелухе сотня или более дополнительных таблиц, со всеми вытекающими трудозатратами.Такие фантики меня не привлекают и разводить такой маразм я не буду, даже если кто-то считает меня ID-идиотом.
22 май 07, 15:55    [4169518]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10752
Блог
SeVa

...Есть уникумы, у которых несколько ОФИЦИАЛЬНО выданных SSN...

Ну и что? Поэтому нужно отказаться от реляционной СУБД или сделать такую возможность правилом для отношения?! Нужели такие "особые" случаи нельзя обработать отдельно, ну хоть в отдельную таблтцу их запихнуть что ли ;) ИМХО, у вас там налицо проблемы с дизайном...
SeVa

Хотельсь бы услышать больше конкретики, а не общих рассуждений.Какая должна быть правильная модель, если несколько разных товаров, имеют общие регистрационные номера?

Чуть раньше по этому пункту конкретики (аргументированных возражений/опровержений высказанных Селко по указанной ссылке утверждений) хотелось мне :) т.ч. давайте по очереди
SeVa

Подразумевались уникальные ключи в пределах БД.
Простой пример.Как правило, большинство сущностей должны иметь комментарии, адреса, контакты и тд.
Соответсвенно,если пуритански заботится о чистоте реляционной теории, нужно создавать разные таблицы или вводить слабые сущности.В итоге, наскребется на одной шелухе сотня или более дополнительных таблиц, со всеми вытекающими трудозатратами.Такие фантики меня не привлекают и разводить такой маразм я не буду, даже если кто-то считает меня ID-идиотом.

Вот, вот!!!! А теперь раскажите, как Вы с автонумерацией поддерживаете целостность, чистоту и непротиворечивость данных? То, что Вы называете "маразмом" - реляционная теория... А то, что вы делаете с сервером баз данных, легко делает какая-нибудь ELT, и обходится она дешевле, чем ватага программистов
22 май 07, 16:46    [4170024]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31768

Привет, Александр!
Ты пишешь:

Александр
АГ> Вот, вот!!!! А теперь раскажите, как Вы с автонумерацией поддерживаете целостность,
АГ> чистоту и непротиворечивость данных? То, что Вы называете "маразмом" - реляционная теория...
agtne!
сашик, прежде чем лить елей на жопу джо,
ознакомься со статьёй толика тенцера,
"естественные ключи против искуственных ключей",
написанной задолго до откровений джо.

может тогда у тебя откроется третий глаз...

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4

22 май 07, 16:56    [4170118]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
SeVa
Member [заблокирован]

Откуда: Москва
Сообщений: 4324
Вечер перестает быть томным.
Александр Гладченко

Ну и что? Поэтому нужно отказаться от реляционной СУБД или сделать такую возможность правилом для отношения?! Нужели такие "особые" случаи нельзя обработать отдельно, ну хоть в отдельную таблтцу их запихнуть что ли ;)

Спасибо за ценный и конкретный совет, запихивать я еще не пробовал.Незачет.

Александр Гладченко
ИМХО, у вас там налицо проблемы с дизайном...

Всегда удивляли люди, которые могут категорично делать выводы о вещах не имея о них никакого представления.

Александр Гладченко

А то, что вы делаете с сервером баз данных, легко делает какая-нибудь ELT, и обходится она дешевле, чем ватага программистов

А причем тут старая калоша?Сначала вводим адреса в EXCEL,затем вечером натравливаем на него ETL, а запихивать куда это будем, по шкафам?Потом проверяем целостность и непротиворичивость данных, выдаем отчет об ошибках и так по кругу.
Заинтригован полностью.
22 май 07, 17:52    [4170482]     Ответить | Цитировать Сообщить модератору
 Re: Программирование в стиле Джо Селко на SQL  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10752
Блог
Мимопроходящий

Привет, Александр!
Ты пишешь:

Александр
АГ> Вот, вот!!!! А теперь раскажите, как Вы с автонумерацией поддерживаете целостность,
АГ> чистоту и непротиворечивость данных? То, что Вы называете "маразмом" - реляционная теория...
agtne!
сашик, прежде чем лить елей на жопу джо,
ознакомься со статьёй толика тенцера,
"естественные ключи против искуственных ключей",
написанной задолго до откровений джо.

может тогда у тебя откроется третий глаз...

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4


когда толик с бодуна писал эту статью, джо уже закончил стандарт SQL-92
Ещё раз хочу всем напонмнить, в этом топике обсуждается не то, что лучше СУ или ЕК, а полезность книги, название которой вынесено в тему. К слову сказать, в ней автонумерации отведенео всего то 3 странички... Давно мной замечено, не любят разработчики Селко, одно его имя вызывает бурю протеста

А по поводу статьи толика - копий на этом сайте было и так уже много сломано, как и на других форумах... СК vs ЕК - это из серии священных войт и такой спор не для аргументов :)
Кстати, можно было покачественней пример подобрать, чем эта пресловутая статья...
А то её аргументация уж совсем слаба, только один аргумент там не из пальца высосан
22 май 07, 18:19    [4170657]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5 6 7 8 9 10 .. 15   вперед  Ctrl
Все форумы / Вопрос-Ответ Ответить