Лыцарь пичальнава образа - April 21st, 2011 [entries|archive|friends|userinfo]
silly_sad

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

April 21st, 2011

про SQL [Apr. 21st, 2011|03:40 pm]
я так думаю что DDL это один сплошной ОГРОМНЫЙ проёб в SQL, и (быть может) он играет не последнюю роль в формировании (плохо осознанного) общественного недовольства эскуэлем.

АД состоит в том что DDL формулирует не состояние схемы данных а ПЕРЕХОД в него.

естественно этот переход жостко зависит от начального состояния, подразумевает его, и не приведёт к нужному результату если этот состояние изменится.
поэтому:
(1) полностью разрушен цикл отладки -- ошибочный DDL может изменить состояние, значит сразу после возникновения ошибки ваш исходник становится негодным для внесения в него исправлений -- пишите новый, пригодный для нового состояния схемы данных (такой же одноразовый как и предыдущий).
Конечно можно придумать специальные условия, чтобы цикл отладки возсоздать, но осадочек остался.
(2) уничтожена переносимость -- со своим DDL в другую базу не суйся, никто вам не гарантирует одинаковости исходных состояний двух инстансов базы (сидите изобретайте специальные условия чтобы самостоятельно гарантировать эту идентичность, а потом удивляйтесь раз за разом откуда разница пролезла)
(3) затруднено тиражирование(пересоздание) БД -- ваш инит-скрипт годен только для чистой БД. вносите изменения в инит-скрипт -- рабочий инстанс out-of-date; вносите изменения в рабочий инстанс -- инит-скрипт out-of-date. И трахайтесь с синхронизацией как хотите. На практике люди просто забивают на человеко-читаемые инит-скрипты и таскают за собой дампы со всемы вытекающими.

вещь в себе получается.

Гораздо было бы более ЗДРАВО (и более адекватно вцелом принятому в SQL уровню абстракции) формулировать СОСТОЯНИЕ, а переход в него пусть система ищет а не програмист!
Link33 comments|Leave a comment

navigation
[ viewing | April 21st, 2011 ]
[ go | Previous Day|Next Day ]