|
|
|
Структура БД со сложными зависимостями
|
|||
|---|---|---|---|
|
#18+
Добрый день, обращаюсь к сообществу SQL за помощью по проектированию структуры БД с точки зрения оптимальности на будущее. Цель: проектируется база данных для анализа влияния параметров и составляющих материала на его итоговые характеристики. Зависимости не устанавливаются изначально. Т.е. в рамках влияниях хим. состава на прочность в базу данных могут вноситься зависимости прочности как от одного химического элемента, так сразу и от нескольких. Такая информация нужна для дальнейшей аналитики и построения хранилищ данных. Поэтому есть справочник типа Dimensions_analog_types (что-то типа иерархического набора всех возможных параметров и составляющих, которые можно измерить) ID Name Dimensions_analog (это уже конкретные параметры без значений) ID Name ParentID Аналогично для параметров описательного типа (например способ производства или выбор метода приготовления исходных данных (тоже влияет)) Dimensions_descrete_types ID Name Dimensions_descrete ID Name ParentID Есть таблица непосредственно характеристик материала Facts: ID Name Есть рабочие таблицы с номерами эксперимента Experiments: ID Number Experiment_date Соответственно, где нужна помощь. Я не пойму, как оптимально увязать два типа измерений (аналоговый со значениями Value и дискретный, с описанием схем). То есть можно сделать таблицу конечно следующего вида Itog: ID ExperimentID Dimension_analog1_id Dimension_analog1_value Dimension_analog2_id ... Dimension_descrete1_id Dimension_descrete1_value ... Fact1ID Fact1Value Но как-то мне кажется такая структура неоптимальной. ДУмал, что связки Dimension_analog1_id Dimension_analog1_value можно вынести в другую таблицу, вспомогательную, но все равно не уверен, что это лучшее решение. Тем более зависимости изначально описываются по схеме многие ко многим, поэтому не хочется создавать избыточность. Посоветуйте, как быть, если встречали схожие проблемы. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2010, 09:22 |
|
||
|
Структура БД со сложными зависимостями
|
|||
|---|---|---|---|
|
#18+
funksterДобрый день, обращаюсь к сообществу SQL за помощью по проектированию структуры БД с точки зрения оптимальности на будущее .Опишите процедуру снятия параметров, чем отличается "аналоговые" параметры от "дискретных"? Это происходит параллельно или независимо? Не совсем по теме, но все же. С точки зрения оптимальности на будущее подумайте о смене идентификаторов. Dimensions_analog, Dimensions_descrete и (самое сладкое :)) Dimensions_descrete_types - слишком длинновато, имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2010, 12:13 |
|
||
|
Структура БД со сложными зависимостями
|
|||
|---|---|---|---|
|
#18+
funkster, Во-первых, хорошо бы увидеть что-то типа графической схемы вашей структуры, а то из описания не понятно: где заканчивается одна таблица и начинается другая И присоединяюсь к Senya_L: что есть дискретные параметры, что - аналоговые? Какое, вообще, значение для хранения в БД имеет способ получения данных? На сколько я понимаю, вам надо хранить: 1) перечень образцов, которые собственно испытываются; 2) описание химического состава материала; 3) параметры тех. процесса получения материала (образцов); 4) характеристики образцов, полученные в ходе испытаний; 5) историю экспериментов, где одна строка описывает испытания одного образца, т.е. связывает первые четыре пункта. Из нее будут браться данные для статистической обработки и анализа. По п.2, как минимум, нужен справочник всех возможных компонентов и таблица, хранящая пропорции компонентов для каждого образца (или группы образцов, полученных за один прием). По п.3: справочник технологических операций с их режимами и таблицу, связывающую образцы и технологические операции, произвидимые при их получении (их состав, порядок и режимы). По п.4: Справочник измеряемых параметров образцов с их единицами измерения, методиками измерений и т.д. Как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2010, 13:34 |
|
||
|
Структура БД со сложными зависимостями
|
|||
|---|---|---|---|
|
#18+
baracsПо п.3: справочник технологических операций с их режимами и таблицу, связывающую образцы и технологические операции, произвидимые при их получении (их состав, порядок и режимы). Точнее, не "порядок", а "очередность". И произв о димые, конечно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2010, 13:40 |
|
||
|
Структура БД со сложными зависимостями
|
|||
|---|---|---|---|
|
#18+
> Т.е. в рамках влияниях хим. состава на прочность в базу данных могут вноситься зависимости прочности Эмпирически посчитанные? Или измеренные? Или и те, и другие? > Поэтому есть справочник типа С расчетами все аналогично. Берется образец, берутся параметры, берутся характеристики образца, изменяется параметр, изменяются характеристики образца, считаем корреляцию и характеристики процесса, записываем. > как оптимально увязать два типа измерений (аналоговый со значениями Value и дискретный, с описанием схем) Группа аналоговых и группа дискретных параметров. Считать будет удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2010, 14:38 |
|
||
|
Структура БД со сложными зависимостями
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Поэтому есть справочник типа С расчетами все аналогично. Берется образец, берутся параметры, берутся характеристики образца, изменяется параметр, изменяются характеристики образца, считаем корреляцию и характеристики процесса, записываем.Автор сказал:авторЗависимости не устанавливаются изначально.Не уверен, но имхо его интересует фактология, а не расчеты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2010, 20:38 |
|
||
|
Структура БД со сложными зависимостями
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, что пишу только в конце дня. Графически сложно представить структуру, поскольку я только ее проектирую. Попробую описать примером: Есть допустим кирпич - это наш (Experiment). Number - 1, например. Нам нужно, чтобы его прочность и морозостойкость была на заданном уровне (Это Facts). Уровень - это соответственно Value. На них влияют сырьевой состав из компонентов 1 и 2, которые мы варьируем в промежутках определенных - это Dimensions_analog. (от 5 до 15 и от 40 до 50, например) При этом влияет способ приготовления: безобжиговый и обжиговый (это Dimensions_descrete). Соответственно Value 1 и 2 Почему разделение на аналоговые и дискретные. Потому что, мы в случае аналоговых значений можем интерполировать и экстраполировать значения. Таким образом, формирую некую аналитическую зависимость. Дискретные же вещи - носят описательный характер. Но оба понятия нужны для описания процесса и формирования корректных зависимостей. Наша же цель и есть построение этих зависимостей. Senya_L, Я переименую таблицы, просто так понятней будет, на мой взгляд, на данном этапе. baracs, вот и вопрос, как связать первые 4 пункта, когда в одном эксперименте может быть 3 аналоговоизменяющиеся и 2 дискретноизменяющиеся величины, влияющие на 2 свойства, а во втором 2 и 1, влияющие на 1 свойство. Вы все верно поняли, я так и решил первые задачи, но вот с 5й проблема. Можно записывать через разделитель, а потом парсить, но при больших объемах - дело трудоемкое будет, мне кажется. guest_20040621, ну вот группировать и не получается, как хотелось бы. Senya_L, да, меня расчеты не беспокоят, поскольку они и так понятны. Меня беспокоит работоспособность базы при большом количестве данных. Как ее сделать оптимальнее. Загнать эти данные в какие-нибудь избыточные структуры - не проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2010, 22:24 |
|
||
|
Структура БД со сложными зависимостями
|
|||
|---|---|---|---|
|
#18+
> Наша же цель и есть построение этих зависимостей. Это понятно. Не понятно, в чем проблема. Берем кирпич. Выбираем метод. Для выбранного метода варьируем параметры а и б. Получаем две таблицы шага испытаний (линки к дискретным и непрерывным параметрам) плюс таблица испытаний (идентификатор + описание эксперимента). Ну, или заведите не две, а четыре таблицы: две - для условий и две - для результатов соответственно (связь посредством таблицы испытаний), если будете изучать повторяемость характеристик. > беспокоит работоспособность базы при большом количестве данных Не парьтесь. При текущей стоимости вычислительных ресурсов и дискового пространства это копейки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2010, 22:48 |
|
||
|
Структура БД со сложными зависимостями
|
|||
|---|---|---|---|
|
#18+
> Не уверен, но имхо его интересует фактология, а не расчеты. Эксперимент проводится совсем без теоретической базы? Какие-то соображения при выборе параметров существуют, вряд ли выбор случаен. Я бы хранил и ожидаемые значения: места занимают мало, а расхождения теоретических и практических результатов сразу видны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2010, 22:53 |
|
||
|
Структура БД со сложными зависимостями
|
|||
|---|---|---|---|
|
#18+
funksterЕсть допустим кирпич - это наш (Experiment). Number - 1, например. Кирпич - это не эксперимент, это образец. Чтобы результат эксперимента имел какую-то ценность, надо испытать несколько одинаковых образцов (простите, если повторяю очевидные вещи ). Так вот, испытание каждого образца и есть строка в таблице, которую я назвал "история экспериментов". funksterНам нужно, чтобы его прочность и морозостойкость была на заданном уровне (Это Facts). Уровень - это соответственно Value. Какие характеристики вам нужно получить, это отдельная история. Речь, пока, про хранение экспериментальных данных в БД. funksterНа них влияют сырьевой состав из компонентов 1 и 2, которые мы варьируем в промежутках определенных - это Dimensions_analog. (от 5 до 15 и от 40 до 50, например) Во-первых, вы его (сырьевой состав) варьируете с некоторым шагом (по-другому просто не получится ). Т.е. причем тут аналоговость? Вы сами себя запутываете этой терминологией. Во-вторых изменить сырьевой состав можно только при изготовлении следующей партии образцов. Т.е. при испытаниях одного образца состав - константа. funksterПри этом влияет способ приготовления: безобжиговый и обжиговый (это Dimensions_descrete). Соответственно Value 1 и 2 Угу. Это параметры техпроцесса, которые, для конкретного образца, тоже константа. funksterПотому что, мы в случае аналоговых значений можем интерполировать и экстраполировать значения. Таким образом, формирую некую аналитическую зависимость. Дискретные же вещи - носят описательный характер. Но оба понятия нужны для описания процесса и формирования корректных зависимостей. Наша же цель и есть построение этих зависимостей. Да сколько угодно! Но это уже обработка результатов экспериментов, а мы сейчас - про их хранение (форум-то про проетирование БД ). funksterbaracs, вот и вопрос, как связать первые 4 пункта, когда в одном эксперименте может быть 3 аналоговоизменяющиеся и 2 дискретноизменяющиеся величины, влияющие на 2 свойства, а во втором 2 и 1, влияющие на 1 свойство. Надеюсь, я выше пояснил... funkster вот с 5й проблема. Можно записывать через разделитель, а потом парсить Что записывать через разделитель? Таблица "история экспериментов": id образца (по нему из справочников вытягиваются и химсостав и параметры техпроцесса); Прочность; Морозостойкость; Еще характеристики... И не надо ничего парсить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2010, 11:48 |
|
||
|
Структура БД со сложными зависимостями
|
|||
|---|---|---|---|
|
#18+
Попробую нарисовать, что получается. Потом выложу на суд общественности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2010, 16:45 |
|
||
|
Структура БД со сложными зависимостями
|
|||
|---|---|---|---|
|
#18+
Вариант, как я изначально хотел сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2010, 23:54 |
|
||
|
Структура БД со сложными зависимостями
|
|||
|---|---|---|---|
|
#18+
Вариант, как в итоге получилось. Видимо пал жертвой излишней типизации. Это костяк данных, если будет интересно, то потом выложу структуру со всей получившийся базой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2010, 23:56 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36517859&tid=1542807]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
175ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 476ms |

| 0 / 0 |
