powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Дилемма: разные базы данных
25 сообщений из 30, страница 1 из 2
Дилемма: разные базы данных
    #32006657
Здравствуйте.

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

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

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

С уважением, Попов АВ(Цунцуяби)
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32006661
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если новая задача не звязана (или слабо связана), с уже решаемыми, то конечно создавать новую базу, администрить проще, производительность наоборот скорее выше особенно если файл положить на другой диск, да и потом в случае изменений (задачи) проще разобраться будет.
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32006662
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32006664
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В настоящее время предпочтение лучше отдавать унификации ПО во всех случаях, когда есть хоть какая-то к этому возможность. Отсюда следует, что желательнее "использовать для новой задачи текущую базу данных". Я бы нашел (или выдумал)причины, чтобы это доказать своему начальству, типа такой - "За счет унификации программного обеспечения обеспечивается возможность ввести единый стиль работы для всех подразделений, упростить обмен файлами и т.д." Особенно, если у вас небольшой штат программистов.
PS. УНИФИКАЦИЯ (от латинского unus — один и ...фикация), приведение чего-либо к единой системе, форме, к единообразию.
"...ФИКАЦИЯ" (от латинского facio — делаю), часть сложных слов, означающая: делание, устройство (например, электрификация).
В условиях научно-технической революции принципы У. используют не только в отраслях производства, но и в др. сферах человеческой деятельности. (www.rubricon.ru)
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32006666
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 AlexUnik
Здается мне Вы не поняли вопрос а я практически ничего не понял из того что сказали Вы
Если Вы предлагаете стараться использовать одну и ту же схему данных для различных задач, то Вы... ну скажем так - неправы
Наработки, конечно использовать можно и нужно, но вот только решеть новую задачу нужно именно как новую задачу.
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32006687
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 GENADY
Цитата из воспроса: "Задача, которую мы хотим реализовать, слабо связана с другими задачами - на уровне некоторых справочников и интерфейсных процедур"
Если последует разъяснение, насколько слабо связана - это нас рассудит. А сейчас спорить с Вами о том, как я понял вопрос и почему Вы не поняли меня, будет бессмысленным для нас обоих занятием
С уважением, Александр.
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32006704
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 AlexUnik

Обидел что ль? Сорри, не хотел

Боюсь понимание Вашего совета не зависит от степени связанности задач вопрошающего.
Вот я не понял, что конкретно Вы предлагаете унифицировать? Базы данных? Не понимаю как это можно сделать. Это как, одинаковые базы для однотипных задач? Не учитывая особенностей каждого конкретного случая?
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32006713
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да ладно вам дуться друг на друга. На самом деле критерии и понимание того, нужно/не нужно чисто субъективное. Все зависит от используемой концепции. В моей концепции я бы все затолкал в одну базу данных. Поскольку создание новых макрообъектов в ней производится просто триггерами, прицепленных к таблицам метаданных. Имеет ли смысл заводить в новой базе по новому все эти уже наработанные механизмы? Я бы не стал. Ежели нет понятия макрообъектов, нет метаданных, нет связи между данными одной совокупности информации и другой, то можно и разделить по разным таблицам.
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32006714
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>На самом деле критерии и понимание того, нужно/не нужно чисто субъективное.
Согласен
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32006740
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Garya
Полностью согласен с твоим решением проблемы. Тем более что об этом я и говорил Очень жаль, что столь любимое Биллом Г. понятие "унификация" послужило камнем преткновения для Genady, когда он старался понять мой вобщем-то несложный ответ.

2 Genady
Я не обиделся. Мне всегда было интересно читать твои ответы
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32006752
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 AlexUnik
Понятие унификация можно трактовать в общем по разному, уж простите меня книгу "Ужасного Билли" я не читал, вот только как это можно применить к базам данных я не в курсе.
Даже когда можно использовать уже созданную схему данных (что бывает без изменений довольно редко) бизнес правила могут существенно отличаться, как Вы будете применять "Унификацию" (она же стандартизация)?

P.S. Опыта у меня маловато, Вы уж мне разжуйте, плиз. (Без шуток чесс слово)
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32006771
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Genady
"Если Вы предлагаете стараться использовать одну и ту же схему данных для различных задач, то Вы ну скажем так - неправы"
Согласен, если бы (подставьте ваше высказывание), то я действительно неправ. Но даже схема данных не может быть вечно статичной. Выигрывают наиболее универсальные из них (на мой взгляд). Но разговор не об этом.
Я предлагал использовать не одну и ту же схему данных, а одну и ту же базу данных (читайте автора вопроса). Как ни странно, но это удаётся многим моим коллегам.
Насчет понятия "унификация" читайте определение выше. Насчет его применения в различных сферах нашей жизни - наберите в каком-либо поисковике слово "унификация" в сочетании с интересующей Вас областью ее реализации. Я думаю, информации будет гораздо больше, чем я бы мог Вам дать
С уважением, Александр.
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32006773
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Но даже схема данных не может быть вечно статичной.
Согласне, но причем здесь унификация.

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

>Я предлагал использовать не одну и ту же схему данных, а одну и ту же базу данных.
А смысл? Если задачи разные, схемы данных не связаны зачем все мешать в одну базу?

P.S. Причем здесь унификация ну вот никак не пойму
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32006774
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наверное, мы дейстительно говорим на разных языках. В команде это создало бы большие проблемы (помните, "лебедь, рак и щука"). Но нагружать трафик выяснением чье понятие лучше я, извините, не буду...
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32006815
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно к решению разных учетных задач применять схожие способы проектирования. Для чего заводятся объекты или имитации объектов (в терминах объектно-ориентированного программирования), которые находятся на более высоком уровне, нежели объекты SQL-сервера (таблицы, запросы, хранимые процедуры...), поскольку один объект (я называю их МАКРОобъектами) состоит из множества объектов SQL-сервера. Но такие макрообъекты в концептуальном плане ближе к предметной области. Я использую макрообъекты "справочник", "документ", "регистр", "журнал документов". Складывать систему можно из песчинок, можно из кирпичей (покрупнее), а можно из строительных блоков (ну совсем больших). Я предпочитаю последнее.
Я использую таблицы метаданных, в которых хранятся описания макрообъектов и их типы в рамках принятой мной концепции (допускаю, что не для всех случаев жизни она может сгодиться, но для встреченных мной на практике вполне подходит). Операции модификации записей в таблицах метаданных посредством прицепленных к этим таблицам триггеров приводят к появлению "пачками" новых таблиц, представлений и т.д., причем я над их структурой на уровне SQL-сервера даже не задумываюсь - все работает автоматом. Правда, для полноценной объектно-ориентированной модели нужно все это совокупить с аналогичным конструированием на клиенте.
В принципе, унификация, модульность и объектная ориентированность преследует примерно одни цели. Возможно, AlexUnik применил не совсем точный термин, но лично мне его смысл вполне понятен, и я с ним согласен. Может, это несколько неуклюже звучит, но все вместе выше изложенное я понимаю как унифицированный (а точнее, систематизированный) подход к проектированию.
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32006816
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Возможно, AlexUnik применил не совсем точный термин
Умгу, возможно
зачем же тогда удивляться, что я не понял? А там где не понял я задал вопрос, ответа не получил.

Garya, если не жалко, покажите примерчик Вашего макрообъекта, например "справочник", поподробнее, ну например его табличку с описанием.

2 AlexUnik & Garya Я не издеваюсь и не умничаю, правда интересно
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32007179
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Genady. Эта статья во многом устарела, но во второй ее части вкратце описаны принципы построения объектов, о которых я говорил. Начинай читать с главы "О базовой структуре системы, ее объектах и администрировании". Приводить пример справочника слишком объемно - задействованы таблицы и метаданных, и прав доступа, и многого другого (свойств записи, например, до которых недавно дотумкал).
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32007180
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извини, все рассказал, кроме ссылочки . Вот ссылочка: http://nsa.chat.ru/Raznoe_BigPrgOriginal.html
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32007193
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Garya
Спасибо за ответ,а то я уже полагал что его не будет


Концепция понятна, но насколько я понял она разработана, чтобы:
1. Обеспечить параллельную работу над проектом нескольких программистов
2. Ускорить разработку, используя заготовки (шаблоны) объектов
3. Обеспечить удобное администрирование в дальнейшем

Пункт 3 по моему предоставляет сам SQL сервер на достаточном уровне.
Пункт 1 и 2 к разработке схемы данных по моему не имеют никакого отношения (во всяком случае с точки зрения реляционной теории)

Я неправ?
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32007242
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я болел, поэтому давно не появлялся.
Повторяю, статья довольно старая. И писал я ее, когда сделать все это пытался в Access на манер а-ля-1С. Однако, отправные точки там обозначены.
А подчеркнуть хочу следующее. Для реализации конкретных бизнес-процессов можно писать приложение, оперируя сразу объектами среды разработки (в данном случае, таблицами, ХП и т.п. SQL server). А можно сделать полуфабрикат. Этакий пластилин-прослойку, из которой далее лепятся бизнес-процессы уже как из объектов, более близких к предметной области. Что называть "программированием"? Разработка пластилина-полуфабриката? Или разработка готового приложения из полуфабриката? В первом варианте всё-в-одном, и такое разделения как таковое отсутствует. Трудоемкость изготовления полуфабриката, а затем приложения из него, конечно, выше, чем просто приложения. НО! . Если структура бизнес-процессов подвержена динамике, то дальнейшее сопровождение жесткого (но быстро спроектированного первым способом) приложения окажется очень трудоемкой. А вот в варианте с полуфабрикатом модификация структуры бизнес-процессов заставляет сосредотачиваться собственно на самих бизнес-процессах и объектах прикладной области, нежели на неувязках в DRI, триггерах, и проч. и проч., которые при модификации около 3000 таблиц нарушаются по уже покрытым забвением причинам.
К примеру, понадобилось создать новые аналитические справочники и завязать на уже существующие регистры или на вновь создаваемые регистры. Я открываю таблицы метаданных и описываю новые макрообъекты. Справочник "Марсианские хроники". Иерархический. Количество уровней иерархии - 6. Поля - такие-то, такого-то типа, ссылается на такие-то справочники. Задаю правила его ведения, нажимаю OK. Срабатывают триггеры на самом SQL-server, которые просматривают сделаные мной изменения структуры метаданных. Появляется автоматом пяток новых таблиц уже с нужными DRI, индексами, констрейнтами и триггерами, десяток SP, несколько VIEW, все это красиво завязывается на уже существующие таблицы. На клиенте вообще все динамически синтезируется по таблицам метаданных. Все! И никаких страданий, синтаксических ошибок, мук с увязкой порядком подзабытых связей и т.п.
Решай сам, что лучше. Если ты просто разработчик, то для тебя, конечно, вариант 1 гораздо лучше во всех отношениях. Во-первых, быстрее и проще. Во-вторых, потом на сопровождении кучу денег можно наскрести на постоянных модификациях жесткого приложения (которые кроме тебя и сделать некому). А если ты постоянно занимаешься подстройкой чужих приложений под свои бизнес-процессы, то тебе будет больше по душе вариант2.
Теперь по пунктам.
1. SQL server суть многопользовательский. Если речь идет об одновременной модификации бизнес-процессов и перечня прикладных макрообъектов с использованием "пластилина" силами нескольких ммм... не программистов даже, а проектировщиков бизнес-процессов (автоматизаторов), так пусть себе на здоровие правят одновременно таблицы метаданных. Никаких проблем!
2. Интересно, сколько времени займет у тебя проектирование голыми средствами SQL-сервера номенклатурного справочника иерархической структуры с механизмом наследования технических характеристик, журнализацией, решением конфликтов репликации (с учетом очень запутанной схемы обмена информацией по множеству филиалов), заданием правил его ведения (чтобы в корень какой-нибудь ухарь не вколотил вместо наименования крупных номенклатурных групп какую-нибудь номенклатурную единицу), разграничением прав доступа на уровне записи, с возможностью иметь разные версии наименования одной номенклатуры в разных учетных периодах (представь, иногда и такое бывает необходимо), с автоматическим проецированием глобальных и номенклатурно-зависимыми связями между единицами измерения (1кг=0.001т=1000г - всегда и везде, 1уп=1000шт - только для "Сникерсов")? Ужели уложишься минут в 15, как при использовании "пластилина"?
3. Описанный в п.2 справочник - это совокупность нескольких таблиц, VIEW, хранимых процедур и многого другого. Допустим, всего в подобный макрообъект входит около 30 объектов SQL-сервера. Как ты полагаешь, что проще - дать права на доступ к "справочнику номенклатуры", или лазить по 30 объектам SQL-сервера и отдельно давать права доступа к каждой таблице, VIEW, хранимой процедуре и т.д., из которых этот объект состоит? В моей практике обычно задействуется около 150 аналитических справочников, 100 регистров, 200 видов документов, 150 отчетов. Это все на порядка 100 пользователей и порядка 10 видов прав доступа = 600000 - уже загнешься раздавать/отнимать права доступа. А помножь все это на 30. Конечно, роли ведение этого хозяйства сильно упрощают. Так я от них и не отказываюсь. Роли и пользователи системы отображаются в роли, логины и юзеров SQL-сервера. И когда я отнимаю доступ у кого-то к справочнику номенклатуры, то выдается залп команд DENY, запрещающих данному юзеру SELECT, UPDATE, INSERT, DELETE, EXECUTE по куче таблиц, вьюшек и хранимых процедур (я даже не задумываюсь, каких). Только кроме этих прав доступа у меня на макрообъектах имеют быть и такие, которых в SQL не предусмотрено. Звучат они так:
"право на просмотр истории модификации"
"право на просмотр версий записи по учетным периодам"
"право на блокировку/разблокировку учетных периодов регистра"
"право на просмотр удаленных записей"
А еще у SQL-сервера "в лоб" не предусмотрено разграничение доступа на уровне записей. Так что ежели это необходимо - то либо ручками, либо кликнуть мышкой по "пластилину" - и готово.
Рассказал много, но ощущаю, что все равно каждый остался при своем мнении
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32007245
Lohmatun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Идеология "пластилина" на самом деле очень похожа на 1С. А Вы этот "пластилин" (или хотя бы куски для примера) не выдаете (или может быть продаете?). Было бы очень любопытно...
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32007248
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, очень много взято именно у 1С, я этого не скрываю. Но в 1С хорошо взяли старт, а потом успокоились. Недоработок тьма, и, похоже, их устранять не собираются. Как и откровенные и грубые ошибки, с которыми оставляю один на один официальных ползователей (я из их числа). Я взял у них полезные идеи, но постарался отбросить имеющиеся у них недостатки. Еще взял несколько идей у "ИНФИН" (они, IMHO, тоже немало полезного напридумывали), у "Паруса", у "ИНФОСОФТ". И добавил собственных (которые вынашивал годами).

Давать и продавать пока нечего. Не готово пока. Нас всего пара человек (да и то, только на протяжении 1.5 месяцев), а до того разработку тащил в одиночку, параллельно занимаясь кучей других вопросов. Иногда был так загружен, что между одной и другой строчкой кода проходили по 2-х месяцев... Сейчас появился просвет. Похоже, руководство дотумкало, что две головы лучше, а руки у человека только две...
На SQL-2000 проект стал делать фактически с нуля и недавно. Прежний под SQL 7.0 (не доделанный)пересмотрен достаточно серьезно. А использование возможностей SQL2K требует новых подходов, и совсем других базовых приемов.
Ради хохмы: в 7.0 ну до того позарез мне нужны были INSTEAD-триггеры, что умудрился сотворить что-то вроде них на простых триггерах с рекурсией и с отслеживанием SPID. Очень похоже работают. Правда, на самом деле это обманка. Чтобы не откатывать транзакцию, я даю выполниться операции, а затем выполняю прямо противоположные действия (аннулирующие исходное действие) - таблица приходит в состояние как в момент старта INSTEAD-триггера. А во вспомогательных таблицах со SPID-полем для решения проблем многопользовательской работы делал имитацию INSERTED и DELETED INSTEAD-триггера. Во, как кувыркаться приходилось! И все равно результаты плачевные - обмануть репликацию не получается. Все обманные телодвижения повторяются в репликации.
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32007250
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей, не болейте, пожалуйста, больше. Это на Вас не хорошо влияет. Жизненный тонус явно снизился. ЖИЗНЬ ПРЕКРАСНА!!! чёрт возми...
Описанные Вами проблемы знакомы, думаю, многим. Но что делать, именно так в жизни всё происходит. Зато, всётаки полученный результат, радует намного больше!
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32007256
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Рассказал много, но ощущаю, что все равно каждый остался при своем мнении

Ну в общем да

Возможно потому, что я рассуждаю с колокольни разработчика БД и потому разделяю схему хранения данных и их использование (ну как в теории
) во всяком случае меня так учили.
Т. е. есть несколько правил которым я стараюсь следовать в силу своих возможностей
1. Не использовать уже имеющуюся модель данных (наработки использовать, конечно можно, но схема данных все равно строится заново)
2. В правильно построенной схеме данных не требуется вносить кардинальных изменений.
3. Похожие задачи не значит идентичны.

P.S. Большим опытом не обладаю, но вот рассуждаю пока так
...
Рейтинг: 0 / 0
Дилемма: разные базы данных
    #32007534
Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения за стороннее вмешательство в Вашу беседу.

Не стоит путать разделение данных и алгоритмов (теперь этот вопрос тоже спорный) с принципами выбора структур хранения для конкретного проекта. Был такой старый спор - что лучше, Clipper или FoxPro? Ответов два - либо тот, что лучше знаешь, либо тот, что больше подходит.

Ответить на конкретный вопрос - в старой базе или новую городить? - не так просто. It depends... Одно дело, если хотите сваять пилотный проект для получения заказа, другое, если Вам же поделку на своем же предприятии и обслуживать. Но хочу отметить то, что прозвучало, но не понято - стоимость разработки стоящего проекта стремится к нулю по ходу жизни, а стоимость поддержки растет и растет.

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

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

С уважением,
Игорь П.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Дилемма: разные базы данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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