Все потоки
Поиск
Написать публикацию
Обновить

Комментарии 26

повёлся я на заголовок статьи — ожидал увидеть другой сытный материал… :)
Как минимум «Oracle» должно было в заголовке фигурировать, я бы тогда ее сразу пропустил :)
надеялся постом излечить свое больное место (тему) — разработку структуры БД. эх…
И где же позвольте поинтересоваться структура БД?
Неужели старый, ужасающий ErWin столь хорош?
Сейчас меня, возможно, закидаю минусами, но зачем при том, что в ервине у вас только таблицы и связи, он вам вообще нужен централизованный?

Апдейты на базу? Так наверняка ж накатываете их через пачку sql-файликов, которые лежат в cvs/svn/git e.t.c

Только для схемы БД? Может проще её строить уже по базе, чем-нить типа SchemaSpy? Ну или пусть каждый для себя реверсит…
Почти верно, но мы храним ещё и логическую схему, кроме физической. В свою очередь логическая схема является частью документации, отсюда и централизация.
да с ервином явно облажались.

у меня мнение такое. для бд нужно взять 1 человека который там шарит и никого не подпускать. этуму человеку сказать что он не делает ничего не описывая это для потомков.

Вот типа так.

Потому как по моему опыту людей кто понимает что делает в базе данных единицы, а кто работал с объемами еще меньше.

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

В большинстве случаев идея такая — да у нас есть база. да она тормозит, но мы ничего не можем и не будем переделывать( доделывать ), так как боимся что-то сломать.
Очень верно про 1 человека, который шарит. Это идеал. Однако проекты имеют свойство разрастаться. Если изначально разработкой занимались 2-3 программиста, потребности в выделенном человеке для контроля структур не было. Сейчас, когда в команде десяток человек — такой специалист очень даже нужен. Но брать со стороны и добиваться, чтобы он «въехал» в существующую хренову тучу таблиц и взаимосвязей — пока не получается, поэтому стараемся оптимизировать процесс, который уже имеется.
1. «в существующую хренову тучу таблиц и взаимосвязей» — поверьте если человек проф. это не проблема.
2. это кунгфу — тут есть мастерство управления этим хозяйством.
один человек никогда не может быть идеалом, это как сервер без рэйда и бэкапа :)
Только придется брать миннимум двух брать, чтобы работа неожиданно не встала, когда этот один уедет в отпуск/дауншифтинг/сломает себе что-нить, катаясь на…

Плюс, рано или поздно его задергают требованиями :)

А против тормозящей базы и боязни переделывать (можно подумать от этого спасет только один человек ломающий базу:) есть отдельно взятый ДБА (который следит за производительностью, топом самых медленных запросов и т.д.) и наборы тестов :)
согласен. но по моему опыту можно все настроить — так как это не клиенский кодд а база данных — там все должно быть размеряно и точно)
«всё настроить» (сразу вспомнилась старая фраза одного бывшего начальника «так мы как всё напишем — нас сразу уволят») можно только на статичной системе, в которую не добавляется данных :)

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

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

но в жизни мало правды. по моему опыту программиста / архитектора баз данных( а он более 8 лет) мы имеем дело практически всегда с говноБАзой, которую сделал горе с++ программист в далекие года и которую менять нужно постоянно, ввиду того, что он «не подумал» и прочее( да простят меня программисты с++, я не хотел Вас обидеть но по опыту так ((( )
Ну надо же, за 10+ лет и не понимаю :)

Я просто говорю не о «сферическом коне в вакууме», а о реальных проектах, которые наблюдаю…

И если бы дело было только в «неподумавших говнопрограммистах на говноязыке» :)))
согласен) но я все чаще с этим сталкиваюсь — типа нам так сделали и переделывать нельзя так как мы уже всю систему налобали )))) да тормозит да не работает да зависает, но некто не даст гарантии что вы сделаете лучше, вот и приходиться ковыряться в говнобазе )))) а если еще база с языком ( оракл, постгре, сиквел), то еще и в говно коде с залипающими курсорами )))) и открытыми транзакциями, которые держат всех, либо ( ДАДА я о ORACLE FORM — горе программистах ) которые вообще все делают в FOR UPDATE ) ))) не беда что раком втсает база, так же сказано в книжках умных!
Не сочтите за рекламу, но для разработки, точнее даже для моделирования, большинства (средней сложности) схем БД волне сойдет mytaskhelper.ru/online-database-builder
Вы еще забыли написать что лицензия стоит $4k+ :)
Для SQL Server Database solution в VS 2010 очень неплох. Хранит все — от структуры таблиц и программных объектов до структуры размещения и свойств БД. Умеет валидировать, находить зависимости и т.д. С точки зрения совместной работы получается хорошо — вся база хранится в виде файликов в системе контроля версий, всегда можно посмотреть кто, что, как, когда и зачем менял. Это раз. Второе — умеет находить различия между физической базой и проектом и генерировать вполне юзабельные скрипты для апдейта и того и другого. Многие предпочитают всегда делать изменения на физической тестовой базе, а затем, вносить изменения в проект. Хотя, конечно, действия вроде переименования таблиц всегда надо делать вручную.
НЛО прилетело и опубликовало эту надпись здесь
Много лет используем этот продукт. Очень профессиональный инструмент.
Кроме ErWin, мне попадалась только одна приличная программа для дизайна — это Dezign for Databases. Все остальные обследованные с большими схемами работают плохо. Что интересно, ни одной пиратской версии в сети я не встречал.
Спасибо за статью.

Интересно, какой у вас порядок количества таблиц в БД приложения (100 — 1000 — 10000...)?

И какой порядок кол-ва записей в самой большой таблице с метаданными модели ErWin (m7object, m7objectproperty?)?
На вскидку 2-3 тысячи таблиц. Порядок записей, как я понял, следующий: подсхемы внутри модели отсортированы в лексикографическом порядке, таблицы — в порядке попадания в схемы. Соответственно в m7object вначале идут схемы, затем таблицы в указанном порядке, затем столбцы и прочие объекты в порядке соответствующем порядку их родительских объектов — это структура m7object. В таблице m7objectproperty содержится иерархическая система свойств и связей объектов друг с другом в порядке обхода m7object. Таким образом упрощённо в m7object объект с id = 1 — это схема, затем c id от 2 до какого-то n — подсхемы, далее таблицы, столбцы, макросы. А в m7objectproperty с 1 до m свойства модели, с m до m*n свойства подмоделей, далее свойства таблиц в том порядке в котором на них ссылаются подсхемы указанного промежутка от m до m*n.
По поводу «но уже смотрим на продукты конкурентов»
SQL Developer пробовали?
Разработчик Oracle Corporation, поставляется бесплатно, работает на всех платформах.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации