Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Рационально ли следующее использование схем? / 8 сообщений из 8, страница 1 из 1
16.09.2008, 12:08
    #35541554
Рационально ли следующее использование схем?
Доброго всем дня!

Столкнулся недавно с проектом, и не уверен в правильности применного там подхода:

Имеется приложение (CMS). Как и любая CMS, данная включает в себя некоторое количество модулей. Для каждого модуля в БД заводится своя схема (как правило там 3-4 таблицы).
Пример:
модуль {news} - схемa {NEWS}
модуль {...} - схемa {...}

Собственно вопрос: нормально ли это? Или все-таки будет правильнее размещать таблицы в единой схеме?

Опыта работы с DB2 нету, но есть с Oracle. При первом взгляде они очень похожи. В оракле под схемой фактически понимается пользователь, который владеет некоторым набором объектов. А что подразумевается под схемой в DB2?

Вот тут
http://www.ibm.com/developerworks/ru/edu/db2-hellodb2a/section6.html
написано:
"Схема -– это логическая категоризация объектов базы данных ."

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

Помогите, пожалуйста, разобраться.

Спасибо!
...
Рейтинг: 0 / 0
16.09.2008, 12:33
    #35541624
Alexey Kuznetsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рационально ли следующее использование схем?
Константин76
"Схема -– это логическая категоризация объектов базы данных ."

Дык правильно написано. какие такие неудобства ты заметил?
Хочешь юзай схемы как по принадлежности к пользователю.
Хочешь юзай схемы как способ группировки по логическим составляющим твоей предметной области.
Хочешь юзай схемы как способ версионности модели данных.
и т.д.
Т.е. это просто механизм группировки ни к чему не обязывающий. как хочешь так и юзай.
...
Рейтинг: 0 / 0
16.09.2008, 12:39
    #35541651
Zell
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рационально ли следующее использование схем?
В CMS системе, котрую мне приходится поддерживать (самописка), все таблицы хранятся в одной схеме. Так вот, их там почти 300 %) Это жуть какая-то (с точки зрения ДБА, по крайней мере). С начала проекта нужно разбивать по семам - Вы всё правильно делаете. Так и продолжайте. На первых этапах, да, - это будет немного неудобно для программистов, но когда проект разрастётся, такую категоризацию сложно будет переоценить.

Только небольшой совет по именованию. В DB2 в базе хранится ещё кучка системных схем. Чтобы не затеряться там, выберите префикс для своих. Типа:
модуль {news} - схемa {CMS.NEWS}
модуль {...} - схемa {CMS....}
...
Рейтинг: 0 / 0
16.09.2008, 12:52
    #35541683
Рационально ли следующее использование схем?
Спасибо за ответы и советы.:)
...
Рейтинг: 0 / 0
18.09.2008, 10:11
    #35545888
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рационально ли следующее использование схем?
Я сейчас админю некую оракловую систему (московского производства; а я в Тюмени), где в одной схеме лежит более тысячи таблиц (и ещё пару систем с несколько меньшим, но тоже большим количеством). Не могу сказать, что это так уж плохо и неудобно, поскольку приложение разбито на подсистемы (их довольно много), а имена базоданновых объектов вообще и таблиц в частности префиксованы именем этих подсистем. Нигде в коде схема не упоминается, что означает, что можно легко сделать дамп одной схемы и загрузить в другую, а это удобно для отладки.

Московский разработчик продал свою систему X пользователям-фирмам. Если у какого-то пользователя возникает проблема, тот высылает свой дамп, и разработчик грузит в свою базу.

Многосхемная система практически вынуждает указывать схемы в коде, что лишает возможности держать данные нескольких покупателей в одной базе, требует создания отдельных баз. На мой взгляд, это неудобно.
...
Рейтинг: 0 / 0
18.09.2008, 17:20
    #35547201
use-se
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рационально ли следующее использование схем?
Victor MetelitsaЯ сейчас админю некую оракловую систему (московского производства; а я в Тюмени), где в одной схеме лежит более тысячи таблиц (и ещё пару систем с несколько меньшим, но тоже большим количеством). Не могу сказать, что это так уж плохо и неудобно, поскольку приложение разбито на подсистемы (их довольно много), а имена базоданновых объектов вообще и таблиц в частности префиксованы именем этих подсистем. Нигде в коде схема не упоминается, что означает, что можно легко сделать дамп одной схемы и загрузить в другую, а это удобно для отладки.

Московский разработчик продал свою систему X пользователям-фирмам. Если у какого-то пользователя возникает проблема, тот высылает свой дамп, и разработчик грузит в свою базу.

Многосхемная система практически вынуждает указывать схемы в коде, что лишает возможности держать данные нескольких покупателей в одной базе, требует создания отдельных баз. На мой взгляд, это неудобно.
там есть и другие неудобства, раздача привилегий на объекты из под владельца и на вторичные ключи....., но, мое мнение, разброс по логическим схемам и жесткая привязка к схеме на больших (более 300 таблиц на схему, а тем боле когда таблиц порядка 1000) БД это +.
...
Рейтинг: 0 / 0
19.09.2008, 11:03
    #35548341
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рационально ли следующее использование схем?
Какой смысл жёстко привязываться к схемам, если вы легко можете без этого обойтись?
Пишете "схема_таблица" вместо "схема.таблица" - даже количество символов не увеличилось. Да, конечно, этот совет больше подходит для DB2 v9.5, чем для более ранних версий, с их ограничениями длин имён.
...
Рейтинг: 0 / 0
22.09.2008, 10:58
    #35551572
use-se
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рационально ли следующее использование схем?
Victor MetelitsaКакой смысл жёстко привязываться к схемам, если вы легко можете без этого обойтись?
Пишете "схема_таблица" вместо "схема.таблица" - даже количество символов не увеличилось. Да, конечно, этот совет больше подходит для DB2 v9.5, чем для более ранних версий, с их ограничениями длин имён.
попробую "защитить" свою позицию )))
в DB2 мне не приходится заниматься разработкой, а вот в Оракле приходилось,
вот что меня привлекало в отдельной схеме:
1. реинжениринг схемы, меньше обектов - меньше проблем;
2. четкое разделение по функциональности и по зоне ответственности;
3. возможность псевдо-версионности при разработке, можно было просто сделать EXP/IMP
схемы (правда здесь есть ограничения)
4. больше свободы при именовании объектов, допустим внутри "своей" схемы можно
названиями объектов более четко указать функциональность.


Наверное, лучше делать так как удобно с учетом эксплуатации и смотреть
на конкретную ситуацию.
Не вижу я ничего плохого (в Вашем варианте) если разработка всего проекта будет вестись в одной схеме )))
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Рационально ли следующее использование схем? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]