×
Показано с 1 по 27 из 27
  1. #1
    Flatter Flatter вне форума
    Модератор "v.8" Аватар для Flatter
    Регистрация
    20.11.2002
    Адрес
    Вологда
    Сообщений
    125

    Оптимальная БД

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

  2. #2
    Dracosha Andrew Dracosha Andrew вне форума
    Фырчун Аватар для Dracosha Andrew
    Регистрация
    07.02.2002
    Адрес
    Санкт-Петербург
    Сообщений
    2,259
    Как избавится от избыточности, как добиться наилучшей синхронизации?
    А надо ли избавлятся от избыточности?

    Кстати, с синхронизацией вопрос давно решен....
    Всех благ!!!
    Чувелёв Андрей

    ps: Всё вышеизложенное является моим частным мнением и не может претендовать на полноту изложения.

  3. #3
    Flatter Flatter вне форума
    Модератор "v.8" Аватар для Flatter
    Регистрация
    20.11.2002
    Адрес
    Вологда
    Сообщений
    125
    Простой пример…
    Бухгалтерский учет оперирует информацией о контрагентах, CRM тоже. Пересечений между этими составляющими не особо много. Держать все данные этих составляющих вместе не всегда выгодно, вот и получается избыточность информации о контрагентах и вопрос о синхронизации этих данных. Легко может получится, что либо в бух учете не хватает каких либо данных которые знает CRM или, что данные разняться!

  4. #4
    Dracosha Andrew Dracosha Andrew вне форума
    Фырчун Аватар для Dracosha Andrew
    Регистрация
    07.02.2002
    Адрес
    Санкт-Петербург
    Сообщений
    2,259
    Простой пример…
    Ну вот, опят возвращаемся к лоскутной автоматизации.
    Не может быть таких проблем, если система одна.
    Всех благ!!!
    Чувелёв Андрей

    ps: Всё вышеизложенное является моим частным мнением и не может претендовать на полноту изложения.

  5. #5
    Flatter Flatter вне форума
    Модератор "v.8" Аватар для Flatter
    Регистрация
    20.11.2002
    Адрес
    Вологда
    Сообщений
    125
    Общая БД панацея?
    _______________________________________

    Как вариант для решения данной проблемы я пытался реализовать следующее:
    Рассматриваем БД как множества… N множеств имеют какие-то пересечения, находим простейшие, не дробимые, и считаем их основой. Из получившегося набора множеств путем объединения получаем любое из больших.

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

  6. #6
    Flatter Flatter вне форума
    Модератор "v.8" Аватар для Flatter
    Регистрация
    20.11.2002
    Адрес
    Вологда
    Сообщений
    125
    И при этом подходе мы не получаем лоскутной системы! Мы получаем гибко настраиваемые рабочие места, более легкое сопровождение. Все эти простейшие БД объединяются и работают как одно целое!

  7. #7
    Dracosha Andrew Dracosha Andrew вне форума
    Фырчун Аватар для Dracosha Andrew
    Регистрация
    07.02.2002
    Адрес
    Санкт-Петербург
    Сообщений
    2,259
    Рассматриваем БД как множества…
    При таком подходе требуется сначала дать определение базе данных.
    Всех благ!!!
    Чувелёв Андрей

    ps: Всё вышеизложенное является моим частным мнением и не может претендовать на полноту изложения.

  8. #8
    Flatter Flatter вне форума
    Модератор "v.8" Аватар для Flatter
    Регистрация
    20.11.2002
    Адрес
    Вологда
    Сообщений
    125
    Информационная область – совокупность конфигурации и БД, логически завершенная база данных. Любая ИО может быть полностью или частично использована в другой ИО. Дочерняя ИО т.е. ИО объекты (конфигурации) которой использованы в «материнской» ИО могут быть изменены только из самой «дочерней» ИО. Материнская ИО может только использовать эти объекты в собственной конфигурации. Работа с данными же происходит вне зависимости от принадлежности ИО т.е. данные дочерней ИО могут быть изменены как из дочерней так и материнской ИО.

    Информационная область состоит из:
    1. Конфигурации (структура данных, интерфейсные модули, методы работы с данными)
    2. Движок БД (алгоритмы получения/записи данных)
    3. Модули доступа к данным
    a. MS SQL Server Engine
    b. Oracle Engine
    c. …

    _____________
    Извиняюсь за сумбур ... Просто однажды Писал ТЗ "Комплес разработки бизнес приложений"
    Последний раз редактировалось Flatter; 17.04.2003 в 18:08.

  9. #9
    Dracosha Andrew Dracosha Andrew вне форума
    Фырчун Аватар для Dracosha Andrew
    Регистрация
    07.02.2002
    Адрес
    Санкт-Петербург
    Сообщений
    2,259
    Информационная область
    Это что то новое...

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

    "База данных - набор данных и правил их обработки."
    Слишком общее не правда ли?
    Всех благ!!!
    Чувелёв Андрей

    ps: Всё вышеизложенное является моим частным мнением и не может претендовать на полноту изложения.

  10. #10
    Flatter Flatter вне форума
    Модератор "v.8" Аватар для Flatter
    Регистрация
    20.11.2002
    Адрес
    Вологда
    Сообщений
    125
    Информационная область - это то, чего мне жутко не хватает... Ничего подобного реализованного я не видел... Поэтому в свое время и стал разрабатывать "Комплес разработки бизнес приложений". Но уперся в то, что затраты и риск огромные...

  11. #11
    Dracosha Andrew Dracosha Andrew вне форума
    Фырчун Аватар для Dracosha Andrew
    Регистрация
    07.02.2002
    Адрес
    Санкт-Петербург
    Сообщений
    2,259
    Информационная область - это то, чего мне жутко не хватает...
    Максим, давайте проработаем теоретичеускую часть и кто-нибудь (может и я) реализует.
    Всех благ!!!
    Чувелёв Андрей

    ps: Всё вышеизложенное является моим частным мнением и не может претендовать на полноту изложения.

  12. #12
    Flatter Flatter вне форума
    Модератор "v.8" Аватар для Flatter
    Регистрация
    20.11.2002
    Адрес
    Вологда
    Сообщений
    125
    Почему бы и нет... Правда наработки, которые у меня были сделаны в этом направлении частично утеряны... Прикрепляю файлик в котором частично описано, что я хотел сделать... Образно понять можно хоть там и недоработано... Совместными усилиями можно доработать до ума...
    Вложения Вложения

  13. #13
    Dracosha Andrew Dracosha Andrew вне форума
    Фырчун Аватар для Dracosha Andrew
    Регистрация
    07.02.2002
    Адрес
    Санкт-Петербург
    Сообщений
    2,259
    ;(

    Маловато ....

    Ладно, буду думать.
    К TOT: если что получиться интересное оформим в виде статьи?
    Всех благ!!!
    Чувелёв Андрей

    ps: Всё вышеизложенное является моим частным мнением и не может претендовать на полноту изложения.

  14. #14
    Flatter Flatter вне форума
    Модератор "v.8" Аватар для Flatter
    Регистрация
    20.11.2002
    Адрес
    Вологда
    Сообщений
    125
    Остальное это объектная модель с комментариями, но разрабатывал ее не я, и публиковать не имею права, так как она была частично взята для реализации одного коммерческого проекта.

  15. #15
    ToT ToT на форуме
    Модератор Аватар для ToT
    Регистрация
    16.08.2021
    Адрес
    г. Краснодар, Краснодарский край, Russia
    Сообщений
    1,935
    К TOT: если что получиться интересное оформим в виде статьи?
    Андрей,конешно.

  16. #16
    wanderer wanderer вне форума
    модератор "Нашей КИС"
    Регистрация
    13.03.2003
    Сообщений
    67
    Господа.
    Позвольте встрянуть.
    Если Вы полагаете объектно-ориентированное решение, то надо понимать, что SQL не подразумевает подобный подход. Делить задачу на маленькие объектные составляющие с методами доступа к таблицам - примитивизация SQL и, по сути, решение которое игнорирует всю мощь SQL. (Хотя конечно можно классы наследовать ) Использовать SQL базы как простой менеджер записей - не очень продуктивно.
    Если же вы полагаете строить некую динамическую интерпретационную систему с динамическими таблицами, описателями, встроенными языками и генераторами SQL запросов, то IMHO при более-менее сложной структуре, управление таким механизмом становится задачей чрезвычайно сложной, и все равно все упрется в необходимость писать SQL запросы, отвечающие требованиям данного момента, с учетом всех тонкостей текущей организации информационного поля. Да и медленно все это.

  17. #17
    Dracosha Andrew Dracosha Andrew вне форума
    Фырчун Аватар для Dracosha Andrew
    Регистрация
    07.02.2002
    Адрес
    Санкт-Петербург
    Сообщений
    2,259
    то надо понимать, что SQL не подразумевает подобный подход
    Ну вроде бы Postgress это позволяет? Или я не прав?
    Да и медленно все это
    Не факт, замедляет конечно, но кто сказал, что объектный подход должен быть реализован на SQL? Тут как раз и приходит необходимость 3-х звенной архитектуры.
    Кстати, самая медленная система из всех мне известных - 1С, однако её популярность обусловлена не скоростью, а простотой разработки (маркетинговые фокусы отложим в сторону).
    Всех благ!!!
    Чувелёв Андрей

    ps: Всё вышеизложенное является моим частным мнением и не может претендовать на полноту изложения.

  18. #18
    wanderer wanderer вне форума
    модератор "Нашей КИС"
    Регистрация
    13.03.2003
    Сообщений
    67
    > Ну вроде бы Postgress это позволяет? Или я не прав?
    Ну разве наследование структуры таблиц это уже ООП?
    > Тут как раз и приходит необходимость 3-х звенной архитектуры.
    Я не говорю о забвении принципов ООП в решении задачи. Я говорю, что объектная декомпозиция на уровне создания простых "базных" частей и обертка их объектами и последующее использование полученных оберток в процессе создания более сложных классов уничтожает мощь SQL.

  19. #19
    Dracosha Andrew Dracosha Andrew вне форума
    Фырчун Аватар для Dracosha Andrew
    Регистрация
    07.02.2002
    Адрес
    Санкт-Петербург
    Сообщений
    2,259
    уничтожает мощь SQL
    Хм, не хочу спорить, но ведь и ООП и SQL это просто инструмент?
    Можно копать ломом, можно лопатой, но пользуются почему и тем и другим. Зачем противоставлять одно другому?
    Всех благ!!!
    Чувелёв Андрей

    ps: Всё вышеизложенное является моим частным мнением и не может претендовать на полноту изложения.

  20. #20
    wanderer wanderer вне форума
    модератор "Нашей КИС"
    Регистрация
    13.03.2003
    Сообщений
    67
    Такое ощущение что мы путаем мягкое с теплым.
    Никто никому ничего не противопоставляет. Ну а по существу вопроса я высказывался выше. Я говорил только о высказываниях Flattera о информационном поле и о таблично-объектной декомпозиции задачи. См. мои сообщения выше.

  21. #21
    Flatter Flatter вне форума
    Модератор "v.8" Аватар для Flatter
    Регистрация
    20.11.2002
    Адрес
    Вологда
    Сообщений
    125
    Я говорил немного не о том...
    Полная универсальность это абсурд для пользователя, можно работать и в Access очень универсально. Но пользователь без адресного внедрения работать в нем не будет да и затраты для этого адресного внедрения со стороны программера слишком велики.

    На самом деле основа любого бизнес приложения это справочники которые и составляют БД. В связи с этим нам нужно просто классифицировать требования прилагаемые бизнес приложениями к БД, и исходя из этого описать объектную модель нашей разработки. А не объектную модель БД!!! Объектная БД это конечно хорошо, но требуется ли она? Нам нужно то всего лишь быстрые выборки и апдейты данных, проработанная структура и контроль ссылочной целостности.

  22. #22
    wanderer wanderer вне форума
    модератор "Нашей КИС"
    Регистрация
    13.03.2003
    Сообщений
    67
    С этим трудно спорить.

  23. #23
    Flatter Flatter вне форума
    Модератор "v.8" Аватар для Flatter
    Регистрация
    20.11.2002
    Адрес
    Вологда
    Сообщений
    125
    В этом направлении и нужно работать

  24. #24
    wanderer wanderer вне форума
    модератор "Нашей КИС"
    Регистрация
    13.03.2003
    Сообщений
    67
    Надо подумать сперва.

  25. #25
    Flatter Flatter вне форума
    Модератор "v.8" Аватар для Flatter
    Регистрация
    20.11.2002
    Адрес
    Вологда
    Сообщений
    125
    Есть еще интересные вопросы касающиеся «информационного поля» с одной стороны это делается для уменьшения избыточности данных, но свести избыточность к 0 значит замедлить систему и сильно завысить требования к железу. Необходимо найти оптимальное соотношение допустимой избыточности данных к производительности системы.

    Например:
    ИО№1: Данные о контрагентах организаций.
    Справочник «Контрагенты»

    ИО№2: CMR (работа с клиентами)
    Справочник «Контрагенты» (ИО№1)
    Справочник «Контактные лица» (подчинен справочнику «Контрагенты»)

    Есть несколько путей реализации:
    1) минимальная избыточность
    В ИО№2: хранятся только уникальные идентификаторы элементов (ИО№1) используемых в ИО№2 т.е. те у которых есть подчиненные. А все выборки для просмотра списков запросами к БД ИО№1
    2) Использование всех данных ИО№1 и их синхронизация в определенные моменты в ИО№2
    3) Производные от первых 2.

  26. #26
    Dracosha Andrew Dracosha Andrew вне форума
    Фырчун Аватар для Dracosha Andrew
    Регистрация
    07.02.2002
    Адрес
    Санкт-Петербург
    Сообщений
    2,259
    свести избыточность к 0 значит замедлить систему
    Теоретики, типа Детй, говорят о другом.
    Всех благ!!!
    Чувелёв Андрей

    ps: Всё вышеизложенное является моим частным мнением и не может претендовать на полноту изложения.

  27. #27
    Flatter Flatter вне форума
    Модератор "v.8" Аватар для Flatter
    Регистрация
    20.11.2002
    Адрес
    Вологда
    Сообщений
    125
    Зависит от конкретной реализации... Зачастую оптимизация по скорости сводится к увеличению избыточности!

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)