|
|
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
Всем привет. Поставили задачу создать БД пусков ракет. Почитав основы, наглядевшись и поизучав примеры структур блогов, интернет-магазинов и прочего решил приступить к проектированию, но в процессе столкнулся с трудностями. Имеются следующие данные: Есть 3 вида ракет на которых запускают спутники. Пуск ракеты контролируется датчиками которые снимают ряд параметров (давление в камерах, температура в отсеках, координаты и пр.). Параметров 1000 шт. на каждую ракету, их список точно известен. Параметры сгруппированы по системам (200 параметров по системе управления, 250 - по двигателям, 100 - по системе навигации и тд.) От пуска к пуску различается только информация снятая с этих параметров. Также есть таблица с замечаниями. Замечания могут быть как к системе в целом так и к параметрам (например температура по параметру "темп128" вышла за допустимые пределы). Необходимо иметь выборку со списком пусков выбранной ракеты, с замечаниями определенного параметра ракеты (т.е. со всех пусков), замечания по всем параметрам к конкретному пуску, замечание к системе и прочие комбинации. Пока вижу такие таблицы: Код: plaintext 1. 2. 3. 4. 5. 6. Проблемы: 1. Большая таблица с данными параметров (3ракеты*20пусков*1000параметров). Как бы ее разбить на три таблицы для каждой ракеты? 2. Что-то не догоняю как сделать таблицу с замечаниями к системе на определенном пуске. 3. Общая проблема - кажется слишком много пересечений данных. 4. Ну и в целом хотелось бы услышать какие-нибудь рекомендации и советы общего плана. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 20:13 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
>1. Большая таблица с данными параметров (3ракеты*20пусков*1000параметров). Как бы ее разбить на три таблицы для каждой ракеты? Не нужно. И таблица не такая большая. >2. Что-то не догоняю как сделать таблицу с замечаниями к системе на определенном пуске. ЗАМЕЧАНИЕ_ПУСК (id_пуск, текст_замечания) >3. Общая проблема - кажется слишком много пересечений данных. Определите что значит "пересечение данных" и почему вы видите в этом проблему. >4. Ну и в целом хотелось бы услышать какие-нибудь рекомендации и советы общего плана. Сделайте вьюшки на вашу EAV - чтобы запрашивать самые популярные параметры для отчетов (я не верю в отчеты для людей с 1000 полями). Отчеты удобнее строить по нормальным источникам данных со строками и полями. типа create view v_start as select id_пуска, max (case when id_параметра='давление в камерах' then данные else null end) as давление в камерах, max (case when id_параметра='температура в отсеках' then данные else null end) as температура в отсеках max (case when id_параметра='координаты ' then данные else null end) as координаты from ПУСК join ПАРАМЕТР_ДАННЫЕ on ПУСК.id=ПАРАМЕТР_ДАННЫЕ.id_пуска group by id_пуска ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 20:40 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
>mikh, сегодня, 20:13 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1255224&msg=20348519][20348519] >...ПАРАМЕТР_ДАННЫЕ(id, id_пуска, id_параметра, данные) Я бы попытался создать для параметров документ Excel. Сей документ в формате архивного файла хранить в папке файлового сервера (легче делать дефрагментацию). Если используете MS SQL - возможны другие варианты. Поле -данные- в строке -ПАРАМЕТР_ДАННЫЕ- может содержать имя файла (символьный вариант Guid). Выборку из ПАРАМЕТР_ДАННЫЕ (включая подстановку из справочников) отображаете в гриде. Двойной щелчок на поле данные - загрузка Excel-файла данных в рабочую папку, разархивация и вызов Excel. С уважением, Владимир ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 20:42 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
mikh, При каждом пуске каждый параметр имеет не более одного значения? Или может быть много значений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 20:42 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
>ВМоисеев, сегодня, 20:42 [20348601] Прибавление. Если потребуется обработка цепочки значений конкретных параметров то придется усложнить схему. 1. Для работы с параметрами запуска создаем класс. 2. Записываем значения параметров запуска в поля класса. 3. Сериализуем класс. 4. Архивируем сериализацию. 5. Записываем архив (byte[]) в поле -данные- записи базы данных или файл. ----- 6. Читаем выборку ExecuteReader и в цикле обрабатываем поле поле данных. . . . nRow = 0; //-- Число строк в выборке reader = command.ExecuteReader(); //-- Формируем коллекцию из выборки lst_Договоры = new List<row_Договор>(); while (reader.Read()) { nRow++; if (nRow == гп.max_Выборка) break; //-- Это максимум что можем отобразить, надо уточнять запрос DbToRow(0); //-- Отображаем строку выбоки на объект класса lst_Договоры.Add(xrow); } . . . //-- Строку выборки из базы данных отражаем на объект класса private void DbToRow(int i) { xrow = new row_Запуск(); xrow.pk_Запуск = (Guid)reader.GetSqlGuid(i); i++; . . . xrow.bt_Данные = (byte[])reader.GetSqlBytes(i++).ToSqlBinary(); } 7. Десериализуем класс из bt_Данные 8. Берем нужные данные из класса и куда-то временно записываем, можно массив (классов) (индекс - nRow) или что-то другое 9. ... и далее, работаем коллега С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2017, 22:11 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
ГДЕ ВРЕМЯ рядом с каждым параметром? p.s. Это к вашему пункту №4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 09:21 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
SERG1257Определите что значит "пересечение данных" и почему вы видите в этом проблему. Если посмотреть на диаграмму связей, то видна "зацикленность". Не знаю как объяснить, но вижу что что-то тут не так))) Ощущение, что в процессе добавления данных возможна какая-то коллизия. Не видел схем с похожей замкнутостью таблиц. Может это и нормально, не знаю. miksoftПри каждом пуске каждый параметр имеет не более одного значения? Или может быть много значений? В данном случае данные параметра это не делимая единица - массив байт, 200-500Кб каждый параметр. ВМоисеев, не, Excel не катит. Нужна БД с вебмордой. Всем спсибо, буду потихоньку переваривать написанное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 09:38 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
experience, не понял, время ЧЕГО? Данные параметра в чистом виде это двумерный массив момент_времени-значение_параметра. в таблице данных параметра будет храниться этот массив в хитро сжатом виде, т.е. в []byte ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 09:42 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
ВМоисеев, что касается значений параметров, то я уже описал выше, значения параметра нужны именно в виде байтового среза. а описанный вами вариант про хранение сжатых файлов excel можно применить к хранению документов пуска/ракеты/параметра ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 09:55 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
mikhexperience, не понял, время ЧЕГО? Данные параметра в чистом виде это двумерный массив момент_времени-значение_параметра. в таблице данных параметра будет храниться этот массив в хитро сжатом виде, т.е. в []byte каждый параметр со своим моментом? вы о времени в первом посте не обмолвились и словом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 10:50 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
>mikh, сегодня, 09:38 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1255224&msg=20349557] [20349557] >В данном случае данные параметра это не делимая единица - массив байт, 200-500Кб каждый параметр. Ба, да Вы "сырец" хотите хранить. В своё время "обсасывали" идею заменить дискретность функцией или сплайном. Если Ваш выбор данность, то запись всех параметров запуска последовательно в файл, упаковка его и запись в папку файлового сервера. Суррогатный ключ записи в таблице базы данных по запускам есть переменная часть имени файла. Что, не хватает мощности цифромолки для обработки сырца? С уважением, Владимир ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 11:34 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
>ВМоисеев, сегодня, 11:34 [20350049] Уточнение. Так Вы хотите хранить необработанные битовые строки (телеметрию), содержащие значения всех параметров в момент опроса (сеанса)? Тогда в процессе запуска только в файл по-строчно, по завершению - разбор полета, формирование массивов (списков) значений по конкретным параметрам, обработка, запись в базу данных. С уважением, Владимир ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 11:59 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
>Не знаю как объяснить, но вижу что что-то тут не так) Давайте проведем мысленный эксперимент и уберем EAV для простоты Ракеты бывают трех (на данный момент известных) типов так? У каждого типа свой набор параметров, так? Но некоторые параметры не зависят от типа (встречаются у всех) Пуск - это событие с конкретной ракетой конкретного типа - то есть у пуска в принципе не может быть какого-либо набора параметров если ракета "не той системы", то бишь простой запрос типа покажи мне параметры пуска обернется чем-то типа пуск_id, общие_параметры, параметры_системы1, параметры_системы2, параметры_системы3 причем только один из наборов параметров (1,2 или 3) будет иметь значения. При добавлении другой системы (я знаю что "этого не может быть, потому что не может быть никогда") ситуация будет еще хуже. Если все так как я описал, то ваша ситуация укладывается в шаблон "наследование" обсосанный много раз на этом форуме. Решение - разбиение таблицы пусков на несколько по типу параметров pusk_common (pusk_id, common_param) pusk_1 (pusk_id, param1) pusk_2 (pusk_id, param2) pusk_3 (pusk_id, param3) и запрос типа Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 17:20 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
mikhНеобходимо иметь выборку со списком пусков выбранной ракеты, Напоминает бессмертное "свинья даёт 12 сало в день". И ведь что самое смешное, этого никто не увидел. mikhНу и в целом хотелось бы услышать какие-нибудь рекомендации и советы общего плана. Честно? Выбросить это и попытаться для начала хотя бы примерно понять предметную область. А то ракеты многоразовые, зато значение параметра, скажем, "температура в камере сгорания первой ступени" ровно одно на все сто двадцать секунд работы её двигателей. Я уж не говорю о таких мелочах, как то, что у одного-единственного "Протона" (это, я так понимаю, и есть "вид ракеты") в зависимости от целевой орбиты может различаться даже количество ступеней (и как следствие, состав получаемой телеметрии). ВМоисеевЯ бы попытался создать для параметров документ Excel. Сей документ в формате архивного файла хранить в папке файлового сервера В очередной раз не знаю, плакать или смеяться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2017, 19:25 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
ВМоисеев>ВМоисеев, сегодня, 11:34 [20350049] Так Вы хотите хранить необработанные битовые строки (телеметрию), содержащие значения всех параметров в момент опроса (сеанса)? Ба, да Вы "сырец" хотите хранить. В своё время "обсасывали" идею заменить дискретность функцией или сплайном. Если Ваш выбор данность, то запись всех параметров запуска последовательно в файл, упаковка его и запись в папку файлового сервера. Суррогатный ключ записи в таблице базы данных по запускам есть переменная часть имени файла. Что, не хватает мощности цифромолки для обработки сырца? да, телеметрия, в каком виде бы она ни была, хранится в поле data таблицы param_data. дальнейшая ее судьба за рамками темы))) работать с телеметрией мощностей хватает. все это - попытка организовать и систематизировать в одном месте всю информацию. SERG1257, у каждой ракеты свой список телеметрируемых параметров. да, названия параметров с двух разных ракет могут совпасть, но данные совершенно разные, и соответственно рассматривать их нужно как две разные сущности. softwarer, softwarerНапоминает бессмертное "свинья даёт 12 сало в день". И ведь что самое смешное, этого никто не увидел. самое смешное это то, что вы в этом увидели что-то смешное. softwarerЧестно? Выбросить это и попытаться для начала хотя бы примерно понять предметную область. А то ракеты многоразовые, зато значение параметра, скажем, "температура в камере сгорания первой ступени" ровно одно на все сто двадцать секунд работы её двигателей. Я уж не говорю о таких мелочах, как то, что у одного-единственного "Протона" (это, я так понимаю, и есть "вид ракеты") в зависимости от целевой орбиты может различаться даже количество ступеней (и как следствие, состав получаемой телеметрии). чушь несете, честное слово, начиная с многоразовости ракет:)) опросность датчика температуры 50Гц, это говорит о том, что за все 120 сек значений будет не "ровно одно" как вы говорите, а 50*120=6000. и это только один из шести двигателей первой ступени того же протона. да и параметр "температура в камере сгорания первой ступени" чисто условный, такого нет. количество ступеней у протона три. всегда. да, идут обсуждения двухступенчатого протона, но это всего лишь идут обсуждения, не более. и вообще, такое ощущения что вы меня провоцируете. потому что с такой уверенностью, присущей вашему сообщению, писать такие вещи как минимум глупо. костяк форума, я так понимаю, это спецы в области администрирования и работы с БД, и обращаются сюда за помощью и консультациями люди из других областей, в том числе. вас в этом костяке я не представляю, ибо был бы ответ по существу, и специалист космической отрасли из вас тоже никакой. сорри за оффтоп ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2017, 21:08 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
mikhчушь несете, честное слово, начиная с многоразовости ракет:)) Вот как странно бывает, придумали её Вы, а несу почему-то я. mikhопросность датчика температуры 50Гц, это говорит о том, что за все 120 сек значений будет не "ровно одно" как вы говорите, а 50*120=6000. Уже ближе. А на самом деле и секунд не сто двадцать, и значения в принципе могут быть не все. mikhпараметр "температура в камере сгорания первой ступени" чисто условный, Естественно. mikhколичество ступеней у протона три. всегда. А четвёртую, когда она есть, называют разгонным блоком (зевая). mikhи вообще, такое ощущения что вы меня провоцируете. Вы преувеличиваете собственную значимость. mikhкостяк форума, я так понимаю, это спецы в области администрирования и работы с БД, и обращаются сюда за помощью и консультациями люди из других областей, Люди из других областей обычно адекватно сознают свои потребности и обращаются в форум "Работа" с вопросом "сколько будет стоить сделать то, что мне нужно?" mikhя не представляю, Это не удивительно. mikhи специалист космической отрасли из вас тоже никакой. Смотря с кем сравнивать. Объективно - меньше чем никакой. Но по сравнению со студентом, который для своей контрольной выдумал многоразовые ракеты, заложил единственный выводимый спутник, не предусмотрел даже поля "результат запуска" итп - очень даже приличный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2017, 21:57 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
>mikh, сегодня, 21:08 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1255224&msg=20356025][20356025] >...да, телеметрия, в каком виде бы она ни была, хранится в поле data таблицы param_data ... Пустой разговор. Если Вы храните информацию по пуску в форме битовой строки, каждый пакет имеет заголовок и концевик, каждый кадр ... то информация должна быть записана в файл, ибо нужно иметь возможность по байтного чтения потока. Мы обрабатывали в Excel (точнее загружался документ Excel, из него вызывался модуль C#, читал поток, формировал значения в столбцах таблицы) и строили графики в Excel и нужные формулы тоже записывали в Excel. Понятно, что не в реальном времени. С уважением, Владимир ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2017, 23:05 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
давайте танцевать от печки - какие запросы вы будете давать к базе? Как вы будете пополнять базу? Какие требования к базе? Ибо СУБД очень хреново работает с массивом байтов (оно может его только считать и записать) - может проще засунуть ВСЕ данные пуска в BLOB и дать клиенту разбираться. 2 softwarer я так понял что это учебная задача ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2017, 05:00 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
SERG1257, задача не учебная. и по большей степени поставлена самому себе, чтобы, повторюсь, систематизировать все рабочие материалы по пускам. я себе четко представляю как это должно выглядеть ибо с этим работаю. примеры запросов: 1. список пусков протона за 2013-2016 года (дата_пуска, выводимый_спутник) 2. список телеметрируемых параметров системы управления протона (название_параметра, описание_параметра) 3. замечания к параметрам при пуске протона 2.07.2013 (система, параметр, текст_замечания) 4. замечания к работе системы управления при пуске протона 2.07.2013 года (текст_замечания). Тут выводятся замечания и к системе и к параметрам системы управления. 5. вернуть данные параметра "темп128" протона при пуске 2.07.2013 (данные), т.е. возвращает просто byte[] 6. вернуть данные параметров системы управления протона при пуске 2.07.2013 (имя_параметра, данные_параметра) 7. вернуть данные параметра "темп128" протона с пусков 16.05.2014г и 16.05.2015г (id_пуска, название_параметра, данные_параметра) и т.д. по всей видимости есть и мой косяк, что меня не понимают - хреново объяснил, но не понимаю зачем уделять так много внимания, например, полю data (данные параметра), когда четко написал, как расценивать это поле. в приведенных в первом посте таблицах только те поля которых достаточно для общего представления, естественно их гораздо больше. думаю, тему можно закрывать, раз пошла такая пьянка-непонятка:)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2017, 07:55 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
>softwarer, вчера, 19:25 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1255224&msg=20355851] [20355851] >...В очередной раз не знаю, плакать или смеяться. Если не знаете - скачите, благо есть примеры. По существу. Я допускаю, что информационная система может включать не только базу данных, но и хранилище функциональных приложений и хранилище документов. Я допускаю, что поля записи таблицы базы данных могут содержать ссылки на приложение и документ. Я допускаю, что запрос к базе данных может формировать новый документ, в частности, многостраничный документ Excel. Мне при обработки телеметрии пришлось столкнуться как минимум, с двумя особенностями: 1. значение содержит помеху. 2. каждый замер есть битовый информационный пакет, грубо говоря, разбитый на кадры. Кадр может содержать одно значение конкретного параметра, а может и несколько. 3. Поэтому и хотелось перейти к функциям или сплайнам, как носителям информации. 4. для прокурора нужно хранить упакованный сырец данных запуска. Но это только моё мнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2017, 10:55 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
Ну чё? Кто первый будет крыть всех козырями (секретными документами или хотя бы для служебного пользования)? Начиная со слов - вот файл примера... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2017, 11:47 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
softwarermikhНеобходимо иметь выборку со списком пусков выбранной ракеты, Напоминает бессмертное "свинья даёт 12 сало в день". И ведь что самое смешное, этого никто не увидел. В данном случае "ракета" - это, очевидно, конкретный вид/комплектация. ВМоисеев Я допускаю, что информационная система может включать не только базу данных, но и хранилище функциональных приложений и хранилище документов. Я допускаю, что поля записи таблицы базы данных могут содержать ссылки на приложение и документ. Я допускаю, что запрос к базе данных может формировать новый документ, в частности, многостраничный документ Excel. Вы это не допускаете , Вы это советуете - это немного разные вещи ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2017, 16:17 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
>поставлена самому себе, чтобы, повторюсь, систематизировать все рабочие материалы по пускам Я и говорю - учебная, то бишь результат не продукт, а опыт. Мне непонятна связь ракеты и системы в вашей базе (параметры у вас системы, а пуск ракеты.), может ли у ракеты быть несколько систем, а система стоять на нескольких ракетах. При этом я говорю о модели данных (протоны там или быстрые разумом невтоны не суть дело важно) Давайте оставаться в рамках форума Проектирование БД, для посратся есть ПТ там и обсуждайте перспективы ракетной отрасли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2017, 17:24 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
>Кот Матроскин, сегодня, 16:17 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1255224&msg=20357080] [20357003] >Вы это не допускаете, Вы это советуете - это немного разные вещи ;) Я думаю, что изюминка этой задачи в том, как хранятся данные телеметрии. И допускаю, что реляционная база данных может иметь поля со ссылками на функционал и документ с данными, и обработка выборки может строить новый документ. Не все этот подход принимают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2017, 17:40 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
ВМоисеев>Кот Матроскин, сегодня, 16:17 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1255224&msg=20357080] [20357003] Я думаю, что изюминка этой задачи в том, как хранятся данные телеметрии. ТС-а этот вопрос, как мы видим, волнует мало - видимо, для этого есть основания. И обсуждать excel-и и executereader-ы в форуме проектирования БД - действительно людей смешить SERG1257 Мне непонятна связь ракеты и системы в вашей базе (параметры у вас системы, а пуск ракеты.), Да, этот момент у ТС-а прописан мутно, я тоже прочел сообщение несколько раз, прежде чем понял :) "система" у него - "двигатели", "система навигации" и т.п., для каждого вида ракеты - свои (почему-то) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2017, 18:09 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
ВМоисеевПо существу. Я допускаю, что Если по существу, то для прокурора нужно хранить сырые данные, для обработки данные нужно хранить удобно, а хранить функциональное приложение совместно с экземпляром данных - очевидный идиотизм. Предложение сделать БД, в которой ключевые по значимости данные хранятся вне БД - можно даже не комментировать, а Excel там просто никоим боком кроме "а я, а я, а я делал вот так!". С тем же успехом можно предложить хранить эти данные в pdf. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2017, 18:10 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
mikh, Всё, что тут написано про Excel, наверное, стоит отнести к 1-апрельским шуткам. По задаче: 1.Сделать справочник параметров с ед. измерения. Параметры должны быть абстрагированы от конкретных ракет, конкретных систем. Т.е. Если в справочнике будет такая запись "Давление в камере сгорания" - то уже ошибка. 2. Справочник систем. Тут перечисляются все системы, абстрагированные от конкретных ракет. 3. Справочник ракет - тут будет всего, как я понял, три записи. Далее высшая математика для товарисча с Excel: 4. Связываем отношением Многие-Ко-Многим Ракеты с системами Т.е. делаем таблицу Ракета_Система. 5. Связываем отношением Многие-Ко-Многим Системы с Параметрами, т.е. делаем таблицу Система_Параметр, в эту-же таблицу добавляем поля характеризующие рабочий диапазон изменения параметра , это при условии, что одинаковые системы в разных ракетах должны эксплуатироваться одинаково. Если это не так, придётся добавлять таблицу связывающую Ракету_Систему_Параметр. Для таблицы Система_Параметр наверное, лучше сделать денормализацию - сделать суррогатный ключ СистемаПараметр_ID Итак, в общих чертах, грубыми мазками определили, как должна описываться ракета. Далее создаём таблицы накопления данных. 1. Пуск ракеты. Здесь описываем дату, время пуска, тип ракеты (ссылка на справ. ракет), температуру на стартовом столе, атмосферное давление и т.п. 2. ТелеметрияПолёта Здесь должно быть как минимум три поля: поле ID_Пуска, поле СистемаПараметр_ID, время снятия параметра, числовое значение параметра Всё. Как-то так. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2017, 20:28 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
zeon11 Для таблицы Система_Параметр наверное, лучше сделать денормализацию - сделать суррогатный ключ СистемаПараметр_ID Чтобы зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2017, 21:36 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
>softwarer, сегодня, 18:10 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1255224&msg=20357155] [20357155] >...для обработки данные нужно хранить удобно... Я и предлагаю, как вариант, способ хранения обработанной телеметрии в виде множества упакованных массивов значений параметров в одном файле (документе данных) вне базы данных. Файл имеет имя из суррогатного ключа записи таблицы. >... а хранить функциональное приложение совместно с экземпляром данных ... если удобно, но не настаиваю. >... Предложение сделать БД, в которой ключевые по значимости данные хранятся вне БД ... Документы Word, Excel и изображения храню вне базы данных, в ней только ссылки. >...Excel там просто никоим боком кроме ... можно предложить хранить эти данные в pdf Пользователю в Excel удобно обрабатывать данные, строить графики. В предельном случае, все данные выбранного пуска нужно перебросить в Excel, в этом случае удобно функционал иметь в виде Excel файла с передачей ему в качестве параметра документа данных. Из Excel вызываем модуль C# ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2017, 00:23 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
Кот Матроскинzeon11 Для таблицы Система_Параметр наверное, лучше сделать денормализацию - сделать суррогатный ключ СистемаПараметр_ID Чтобы зачем? Таблица ТЕЛЕМЕТРИЯ будет достаточно большая, и если всё делать правильно, то в ней для идентификации числового показателя нужны следующие поля: ID_Пуска, ID_Системы, ID_Пaраметра, время снятия параметра, числовое значение параметра. т.е. всего 5 полей. Что-бы уменьшить эту таблицу, может-быть и имеет смысл второй и третий ID заменить на один СистемаПараметр_ID. С другой стороны, мы не знаем, как ТС собирается обрабатывать данные из таблицы ТЕЛЕМЕТРИЯ, и, действительно, согласен с Вами, тогда появится лишний JOIN, что может быть критично. Тут надо смотреть в целом на задачу, что ТС или его руководство хочет получить от информационной системы. Вполне возможен вариант, когда в таблицу телеметрия имеет смысл ввести и ID_Ракеты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2017, 05:24 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
ВМоисеев ...... В предельном случае, все данные выбранного пуска нужно перебросить в Excel, в этом случае удобно функционал иметь в виде Excel файла с передачей ему в качестве параметра документа данных. Из Excel вызываем модуль C# ... Э-э-эх вы-ы-ы! Мальчиш-Плохиш! Зачем вы выдали Проклятым Буржуинам нашу ВОЕННУЮ ТАЙНУ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2017, 05:43 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
SERG1257, Кот Матроскин, соглашусь, если смотреть со стороны термин "система" тут не клеится. правильней будет назвать "группа", т.е. группа параметров определенной ракеты объединенная каким-либо смыслом. zeon11, спасибо за развернутый ответ, натолкнули на размышления. стало немного яснее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2017, 10:53 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
zeon11 Что-бы уменьшить эту таблицу, может-быть и имеет смысл второй и третий ID заменить на один СистемаПараметр_ID. Ээ, а в чем уменьшение-то? Не проще разрядность правильную для ключей подобрать? P.S. Кстати, у ТС-а сделано как раз так, как Вы предлагаете ;) и поэтому ID системы нет в таблице телеметрии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2017, 11:33 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
>zeon11, вчера, 05:43 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1255224&msg=20357770] [20357770] >Э-э-эх вы-ы-ы! М-да. В свое время принимал участие в разработке имитатора (модели) формирования значений телеметрии пуска - формирование битового потока и восстановление из него модельных значений. Привожу фрагмент восстановленных значений. Столбец - фрагмент массива значений параметра Строка - фрагмент восстановленного пакета Столбцов (параметров) в модели меньше 1000, строк порядка 10_000. p.s. zeon11, не торопитесь писать оперу, и бежать в 1 отдел - это данные модели. Но объем данных вполне реален. Компонента VSTO для книги Excel вполне работоспособна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 11:44 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
ВМоисеев, Не обижайтесь, но у меня позиция следующая: Если какая-то контора обрабатывает данные телеметрии, а это как правило очень много данных, если есть штат программистов в этой конторе, почему для обработки данных используется EXCEL? Почему они не могут написать свой инструмент? Не хватает квалификации или что? Я понимаю, когда в какой-либо конторе "Рога&Копыта" берут девочку, которой ставят задачу, а у девочки кругозор ограничен только Word и Excel, и она решает задачу в том, что знает. Но у Вас-то как я понимаю, другая ситуация. Я-бы ещё понял, если-бы использовались специализированные программы профессионального стат. анализа данных, типа SPSS, но использовать Excel для больших объёмов данных, для представления данных в графическом виде - извините, но это какая-то халтура. Вы тут написали, что в Вашей модели 10 000 строк. Это вообще ни о чём. ТС пишет, что у него датчики опрашиваются с частотой 50гц - т.е. за 1 минуту 3000 значений. И это только по одному параметру. За 1 минуту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 16:59 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
zeon11, обрабатывать с помощью Excel в принципе можно. Если его возможности устраивают - глупо тратить время и силы на "свой инструмент". Но что меня глубоко и принципиально радует - это предложение засунуть данные внутрь Экселя и хранить таким образом. Потому что это автоматом подразумевает следующее: вот у меня есть "приложение в Экселе". Вот у меня три года назад был пуск, я засунул данные в Эксель и сохранил. А теперь я открываю данные этого пуска - и все модификации приложения, которые сделаны за эти три года, тут же ушли лесом, все исправленные ошибки снова появились. Красота ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 17:05 |
|
||
|
Проектирование базы данных пусков ракет
|
|||
|---|---|---|---|
|
#18+
>zeon11, сегодня, 16:59 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1255224&msg=20361950] [20361950] >...Почему они не могут написать свой инструмент?... С построения своего в принципе и начали. А "хотелки"? Формулы то надо менять. Графики по фрагментам различных параметров в одних осях строить. Я привел пример не полной обработки - в принципе, это не совсем физические значения величин, скорее значения АЦП. Различных мелочей хватает. Да и конструкция ракет одного типа меняется, появляются новые, удаляется часть старых параметров. До какого-то момента нас удовлетворяло хранение значений параметров в столбцах таблицы и хранение этой таблицы в файле, точнее ПО в VSTO Excel (. rar). Интересный момент - битовая последовательность сырца примерно 800_000 байт, сжатый вариант - 76_000 (но это на имитаторе). Потом решили быпо хранить сжатые столбцы параметров пуска в одном бинарном файле. Надо иметь ввиду, что наличие VSTO представляет возможность переложить большую часть программирования на c#, Excel используется для представления информации. Я не считаю, что подобный подход - панацея на все случаи. Но он имеет право на жизнь для подобных задач. И в базе данных можно хранить ссылку на файл со не структурированной информацией. В процессе построения выборки можно вызвать некое функциональное приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 18:09 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1540190]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 184ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...