powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование базы данных пусков ракет
37 сообщений из 37, показаны все 2 страниц
Проектирование базы данных пусков ракет
    #39429531
mikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Поставили задачу создать БД пусков ракет. Почитав основы, наглядевшись и поизучав примеры структур блогов, интернет-магазинов и прочего решил приступить к проектированию, но в процессе столкнулся с трудностями.

Имеются следующие данные:
Есть 3 вида ракет на которых запускают спутники. Пуск ракеты контролируется датчиками которые снимают ряд параметров (давление в камерах, температура в отсеках, координаты и пр.). Параметров 1000 шт. на каждую ракету, их список точно известен. Параметры сгруппированы по системам (200 параметров по системе управления, 250 - по двигателям, 100 - по системе навигации и тд.) От пуска к пуску различается только информация снятая с этих параметров. Также есть таблица с замечаниями. Замечания могут быть как к системе в целом так и к параметрам (например температура по параметру "темп128" вышла за допустимые пределы).

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

Пока вижу такие таблицы:
Код: plaintext
1.
2.
3.
4.
5.
6.
РАКЕТА ( id , название)
СИСТЕМА( id ,  id_ракеты , название)
ПУСК ( id ,  id_ракеты , дата_пуска, выводимый_спутник )
ПАРАМЕТР ( id ,  id_системы , название, описание, ) 
ПАРАМЕТР_ДАННЫЕ( id ,  id_пуска ,  id_параметра , данные)       //ПОЛУЧИТСЯ ОООЧЕНЬ БОЛЬШАЯ ТАБЛИЦА 
ЗАМЕЧАНИЕ_ПАРАМЕТР( id_параметр_данные , текст_замечания) 

Проблемы:
1. Большая таблица с данными параметров (3ракеты*20пусков*1000параметров). Как бы ее разбить на три таблицы для каждой ракеты?
2. Что-то не догоняю как сделать таблицу с замечаниями к системе на определенном пуске.
3. Общая проблема - кажется слишком много пересечений данных.
4. Ну и в целом хотелось бы услышать какие-нибудь рекомендации и советы общего плана.

Спасибо!
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39429546
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>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_пуска
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39429550
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>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.

С уважением,
Владимир
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39429551
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikh,

При каждом пуске каждый параметр имеет не более одного значения? Или может быть много значений?
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39429578
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>ВМоисеев, сегодня, 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. ... и далее, работаем коллега

С уважением,
Владимир.
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39429704
experience
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГДЕ ВРЕМЯ рядом с каждым параметром?

p.s. Это к вашему пункту №4
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39429722
mikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257Определите что значит "пересечение данных" и почему вы видите в этом проблему.

Если посмотреть на диаграмму связей, то видна "зацикленность". Не знаю как объяснить, но вижу что что-то тут не так))) Ощущение, что в процессе добавления данных возможна какая-то коллизия. Не видел схем с похожей замкнутостью таблиц. Может это и нормально, не знаю.

miksoftПри каждом пуске каждый параметр имеет не более одного значения? Или может быть много значений?
В данном случае данные параметра это не делимая единица - массив байт, 200-500Кб каждый параметр.

ВМоисеев, не, Excel не катит. Нужна БД с вебмордой.

Всем спсибо, буду потихоньку переваривать написанное.
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39429727
mikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
experience, не понял, время ЧЕГО? Данные параметра в чистом виде это двумерный массив момент_времени-значение_параметра. в таблице данных параметра будет храниться этот массив в хитро сжатом виде, т.е. в []byte
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39429748
mikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеев, что касается значений параметров, то я уже описал выше, значения параметра нужны именно в виде байтового среза. а описанный вами вариант про хранение сжатых файлов excel можно применить к хранению документов пуска/ракеты/параметра
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39429815
experience
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikhexperience, не понял, время ЧЕГО? Данные параметра в чистом виде это двумерный массив момент_времени-значение_параметра. в таблице данных параметра будет храниться этот массив в хитро сжатом виде, т.е. в []byte

каждый параметр со своим моментом?
вы о времени в первом посте не обмолвились и словом...
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39429874
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>mikh, сегодня, 09:38 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1255224&msg=20349557] [20349557]
>В данном случае данные параметра это не делимая единица - массив байт, 200-500Кб каждый параметр.

Ба, да Вы "сырец" хотите хранить. В своё время "обсасывали" идею заменить дискретность функцией или сплайном.
Если Ваш выбор данность, то запись всех параметров запуска последовательно в файл, упаковка его и запись в папку файлового сервера. Суррогатный ключ записи в таблице базы данных по запускам есть переменная часть имени файла.
Что, не хватает мощности цифромолки для обработки сырца?

С уважением,
Владимир
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39429914
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>ВМоисеев, сегодня, 11:34 [20350049]
Уточнение.
Так Вы хотите хранить необработанные битовые строки (телеметрию), содержащие значения всех параметров в момент опроса (сеанса)?
Тогда в процессе запуска только в файл по-строчно, по завершению - разбор полета, формирование массивов (списков) значений по конкретным параметрам, обработка, запись в базу данных.

С уважением,
Владимир
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39430356
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Не знаю как объяснить, но вижу что что-то тут не так)
Давайте проведем мысленный эксперимент и уберем 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.
select * 
from pusk p
left join pusk1 p1 on p.pusk_id=p1.pusk_id
left join pusk2 p1 on p.pusk_id=p2.pusk_id
left join pusk3 p1 on p.pusk_id=p3.pusk_id
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431138
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikhНеобходимо иметь выборку со списком пусков выбранной ракеты,
Напоминает бессмертное "свинья даёт 12 сало в день". И ведь что самое смешное, этого никто не увидел.

mikhНу и в целом хотелось бы услышать какие-нибудь рекомендации и советы общего плана.
Честно? Выбросить это и попытаться для начала хотя бы примерно понять предметную область. А то ракеты многоразовые, зато значение параметра, скажем, "температура в камере сгорания первой ступени" ровно одно на все сто двадцать секунд работы её двигателей. Я уж не говорю о таких мелочах, как то, что у одного-единственного "Протона" (это, я так понимаю, и есть "вид ракеты") в зависимости от целевой орбиты может различаться даже количество ступеней (и как следствие, состав получаемой телеметрии).

ВМоисеевЯ бы попытался создать для параметров документ Excel. Сей документ в формате архивного файла хранить в папке файлового сервера
В очередной раз не знаю, плакать или смеяться.
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431175
mikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеев>ВМоисеев, сегодня, 11:34 [20350049]
Так Вы хотите хранить необработанные битовые строки (телеметрию), содержащие значения всех параметров в момент опроса (сеанса)?
Ба, да Вы "сырец" хотите хранить. В своё время "обсасывали" идею заменить дискретность функцией или сплайном.
Если Ваш выбор данность, то запись всех параметров запуска последовательно в файл, упаковка его и запись в папку файлового сервера. Суррогатный ключ записи в таблице базы данных по запускам есть переменная часть имени файла.
Что, не хватает мощности цифромолки для обработки сырца?

да, телеметрия, в каком виде бы она ни была, хранится в поле data таблицы param_data. дальнейшая ее судьба за рамками темы)))
работать с телеметрией мощностей хватает. все это - попытка организовать и систематизировать в одном месте всю информацию.

SERG1257, у каждой ракеты свой список телеметрируемых параметров. да, названия параметров с двух разных ракет могут совпасть, но данные совершенно разные, и соответственно рассматривать их нужно как две разные сущности.

softwarer,
softwarerНапоминает бессмертное "свинья даёт 12 сало в день". И ведь что самое смешное, этого никто не увидел.
самое смешное это то, что вы в этом увидели что-то смешное.

softwarerЧестно? Выбросить это и попытаться для начала хотя бы примерно понять предметную область. А то ракеты многоразовые, зато значение параметра, скажем, "температура в камере сгорания первой ступени" ровно одно на все сто двадцать секунд работы её двигателей. Я уж не говорю о таких мелочах, как то, что у одного-единственного "Протона" (это, я так понимаю, и есть "вид ракеты") в зависимости от целевой орбиты может различаться даже количество ступеней (и как следствие, состав получаемой телеметрии).
чушь несете, честное слово, начиная с многоразовости ракет:))
опросность датчика температуры 50Гц, это говорит о том, что за все 120 сек значений будет не "ровно одно" как вы говорите, а 50*120=6000. и это только один из шести двигателей первой ступени того же протона. да и параметр "температура в камере сгорания первой ступени" чисто условный, такого нет.
количество ступеней у протона три. всегда. да, идут обсуждения двухступенчатого протона, но это всего лишь идут обсуждения, не более.
и вообще, такое ощущения что вы меня провоцируете. потому что с такой уверенностью, присущей вашему сообщению, писать такие вещи как минимум глупо.
костяк форума, я так понимаю, это спецы в области администрирования и работы с БД, и обращаются сюда за помощью и консультациями люди из других областей, в том числе. вас в этом костяке я не представляю, ибо был бы ответ по существу, и специалист космической отрасли из вас тоже никакой.

сорри за оффтоп
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431188
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikhчушь несете, честное слово, начиная с многоразовости ракет:))
Вот как странно бывает, придумали её Вы, а несу почему-то я.

mikhопросность датчика температуры 50Гц, это говорит о том, что за все 120 сек значений будет не "ровно одно" как вы говорите, а 50*120=6000.
Уже ближе. А на самом деле и секунд не сто двадцать, и значения в принципе могут быть не все.

mikhпараметр "температура в камере сгорания первой ступени" чисто условный,
Естественно.

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

mikhи вообще, такое ощущения что вы меня провоцируете.
Вы преувеличиваете собственную значимость.

mikhкостяк форума, я так понимаю, это спецы в области администрирования и работы с БД, и обращаются сюда за помощью и консультациями люди из других областей,
Люди из других областей обычно адекватно сознают свои потребности и обращаются в форум "Работа" с вопросом "сколько будет стоить сделать то, что мне нужно?"

mikhя не представляю,
Это не удивительно.

mikhи специалист космической отрасли из вас тоже никакой.
Смотря с кем сравнивать. Объективно - меньше чем никакой. Но по сравнению со студентом, который для своей контрольной выдумал многоразовые ракеты, заложил единственный выводимый спутник, не предусмотрел даже поля "результат запуска" итп - очень даже приличный.
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431209
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>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. Понятно, что не в реальном времени.

С уважением,
Владимир
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431228
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давайте танцевать от печки - какие запросы вы будете давать к базе? Как вы будете пополнять базу? Какие требования к базе?
Ибо СУБД очень хреново работает с массивом байтов (оно может его только считать и записать) - может проще засунуть ВСЕ данные пуска в BLOB и дать клиенту разбираться.

2 softwarer я так понял что это учебная задача
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431240
mikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 (данные параметра), когда четко написал, как расценивать это поле. в приведенных в первом посте таблицах только те поля которых достаточно для общего представления, естественно их гораздо больше.

думаю, тему можно закрывать, раз пошла такая пьянка-непонятка:))
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431251
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>softwarer, вчера, 19:25 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1255224&msg=20355851] [20355851]
>...В очередной раз не знаю, плакать или смеяться.
Если не знаете - скачите, благо есть примеры.

По существу.
Я допускаю, что информационная система может включать не только базу данных, но и хранилище функциональных приложений и хранилище документов. Я допускаю, что поля записи таблицы базы данных могут содержать ссылки на приложение и документ.
Я допускаю, что запрос к базе данных может формировать новый документ, в частности, многостраничный документ Excel.
Мне при обработки телеметрии пришлось столкнуться как минимум, с двумя особенностями:
1. значение содержит помеху.
2. каждый замер есть битовый информационный пакет, грубо говоря, разбитый на кадры. Кадр может содержать одно значение конкретного параметра, а может и несколько.
3. Поэтому и хотелось перейти к функциям или сплайнам, как носителям информации.
4. для прокурора нужно хранить упакованный сырец данных запуска.
Но это только моё мнение.
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431263
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну чё? Кто первый будет крыть всех козырями (секретными документами или хотя бы для служебного пользования)? Начиная со слов - вот файл примера...
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431321
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarermikhНеобходимо иметь выборку со списком пусков выбранной ракеты,
Напоминает бессмертное "свинья даёт 12 сало в день". И ведь что самое смешное, этого никто не увидел.

В данном случае "ракета" - это, очевидно, конкретный вид/комплектация.


ВМоисеев Я допускаю, что информационная система может включать не только базу данных, но и хранилище функциональных приложений и хранилище документов. Я допускаю, что поля записи таблицы базы данных могут содержать ссылки на приложение и документ.
Я допускаю, что запрос к базе данных может формировать новый документ, в частности, многостраничный документ Excel.

Вы это не допускаете , Вы это советуете - это немного разные вещи ;)
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431335
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>поставлена самому себе, чтобы, повторюсь, систематизировать все рабочие материалы по пускам
Я и говорю - учебная, то бишь результат не продукт, а опыт.
Мне непонятна связь ракеты и системы в вашей базе (параметры у вас системы, а пуск ракеты.), может ли у ракеты быть несколько систем, а система стоять на нескольких ракетах.
При этом я говорю о модели данных (протоны там или быстрые разумом невтоны не суть дело важно)
Давайте оставаться в рамках форума Проектирование БД, для посратся есть ПТ там и обсуждайте перспективы ракетной отрасли.
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431341
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Кот Матроскин, сегодня, 16:17 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1255224&msg=20357080] [20357003]
>Вы это не допускаете, Вы это советуете - это немного разные вещи ;)
Я думаю, что изюминка этой задачи в том, как хранятся данные телеметрии. И допускаю, что реляционная база данных может иметь поля со ссылками на функционал и документ с данными, и обработка выборки может строить новый документ. Не все этот подход принимают.
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431352
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>Кот Матроскин, сегодня, 16:17 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1255224&msg=20357080] [20357003]

Я думаю, что изюминка этой задачи в том, как хранятся данные телеметрии.
ТС-а этот вопрос, как мы видим, волнует мало - видимо, для этого есть основания.
И обсуждать excel-и и executereader-ы в форуме проектирования БД - действительно людей смешить

SERG1257 Мне непонятна связь ракеты и системы в вашей базе (параметры у вас системы, а пуск ракеты.),
Да, этот момент у ТС-а прописан мутно, я тоже прочел сообщение несколько раз, прежде чем понял :)
"система" у него - "двигатели", "система навигации" и т.п., для каждого вида ракеты - свои (почему-то)
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431353
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевПо существу.
Я допускаю, что
Если по существу, то для прокурора нужно хранить сырые данные, для обработки данные нужно хранить удобно, а хранить функциональное приложение совместно с экземпляром данных - очевидный идиотизм. Предложение сделать БД, в которой ключевые по значимости данные хранятся вне БД - можно даже не комментировать, а Excel там просто никоим боком кроме "а я, а я, а я делал вот так!". С тем же успехом можно предложить хранить эти данные в pdf.
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431396
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikh,

Всё, что тут написано про Excel, наверное, стоит отнести к 1-апрельским шуткам.
По задаче:
1.Сделать справочник параметров с ед. измерения. Параметры должны быть абстрагированы от конкретных ракет, конкретных систем. Т.е. Если в справочнике будет такая запись "Давление в камере сгорания" - то уже ошибка.
2. Справочник систем. Тут перечисляются все системы, абстрагированные от конкретных ракет.
3. Справочник ракет - тут будет всего, как я понял, три записи.

Далее высшая математика для товарисча с Excel:
4. Связываем отношением Многие-Ко-Многим Ракеты с системами
Т.е. делаем таблицу Ракета_Система.
5. Связываем отношением Многие-Ко-Многим Системы с Параметрами, т.е.
делаем таблицу Система_Параметр, в эту-же таблицу добавляем поля характеризующие рабочий диапазон изменения параметра , это при условии, что одинаковые системы в разных ракетах должны эксплуатироваться одинаково. Если это не так, придётся добавлять таблицу связывающую Ракету_Систему_Параметр. Для таблицы Система_Параметр наверное, лучше сделать денормализацию - сделать суррогатный ключ СистемаПараметр_ID


Итак, в общих чертах, грубыми мазками определили, как должна описываться ракета.

Далее создаём таблицы накопления данных.
1. Пуск ракеты.
Здесь описываем дату, время пуска, тип ракеты (ссылка на справ. ракет), температуру на стартовом столе, атмосферное давление и т.п.
2. ТелеметрияПолёта
Здесь должно быть как минимум три поля: поле ID_Пуска,
поле СистемаПараметр_ID,
время снятия параметра,
числовое значение параметра

Всё. Как-то так. Удачи.
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431410
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11 Для таблицы Система_Параметр наверное, лучше сделать денормализацию - сделать суррогатный ключ СистемаПараметр_ID

Чтобы зачем?
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431433
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>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# ...
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431457
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскинzeon11 Для таблицы Система_Параметр наверное, лучше сделать денормализацию - сделать суррогатный ключ СистемаПараметр_ID

Чтобы зачем?

Таблица ТЕЛЕМЕТРИЯ будет достаточно большая, и если всё делать правильно, то в ней для идентификации числового показателя нужны следующие поля:
ID_Пуска,
ID_Системы,
ID_Пaраметра,
время снятия параметра,
числовое значение параметра.

т.е. всего 5 полей.

Что-бы уменьшить эту таблицу, может-быть и имеет смысл второй и третий ID заменить на один СистемаПараметр_ID.

С другой стороны, мы не знаем, как ТС собирается обрабатывать данные из таблицы ТЕЛЕМЕТРИЯ, и, действительно, согласен с Вами, тогда появится лишний JOIN, что может быть критично.
Тут надо смотреть в целом на задачу, что ТС или его руководство хочет получить от информационной системы. Вполне возможен вариант, когда в таблицу телеметрия имеет смысл ввести и ID_Ракеты.
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431458
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
......
В предельном случае, все данные выбранного пуска нужно перебросить в Excel, в этом случае удобно функционал иметь в виде Excel файла с передачей ему в качестве параметра документа данных. Из Excel вызываем модуль C# ...

Э-э-эх вы-ы-ы! Мальчиш-Плохиш! Зачем вы выдали Проклятым Буржуинам нашу ВОЕННУЮ ТАЙНУ?
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431495
mikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257, Кот Матроскин,
соглашусь, если смотреть со стороны термин "система" тут не клеится. правильней будет назвать "группа", т.е. группа параметров определенной ракеты объединенная каким-либо смыслом.

zeon11, спасибо за развернутый ответ, натолкнули на размышления. стало немного яснее.
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431505
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11
Что-бы уменьшить эту таблицу, может-быть и имеет смысл второй и третий ID заменить на один СистемаПараметр_ID.

Ээ, а в чем уменьшение-то? Не проще разрядность правильную для ключей подобрать?
P.S. Кстати, у ТС-а сделано как раз так, как Вы предлагаете ;) и поэтому ID системы нет в таблице телеметрии.
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39431906
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>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 вполне работоспособна.
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39432197
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
Не обижайтесь, но у меня позиция следующая:
Если какая-то контора обрабатывает данные телеметрии, а это как правило очень много данных, если есть штат программистов в этой конторе, почему для обработки данных используется EXCEL? Почему они не могут написать свой инструмент? Не хватает квалификации или что? Я понимаю, когда в какой-либо конторе "Рога&Копыта" берут девочку, которой ставят задачу, а у девочки кругозор ограничен только Word и Excel, и она решает задачу в том, что знает. Но у Вас-то как я понимаю, другая ситуация. Я-бы ещё понял, если-бы использовались специализированные программы профессионального стат. анализа данных, типа SPSS, но использовать Excel для больших объёмов данных, для представления данных в графическом виде - извините, но это какая-то халтура.
Вы тут написали, что в Вашей модели 10 000 строк. Это вообще ни о чём. ТС пишет, что у него датчики опрашиваются с частотой 50гц - т.е. за 1 минуту 3000 значений. И это только по одному параметру. За 1 минуту.
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39432201
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11, обрабатывать с помощью Excel в принципе можно. Если его возможности устраивают - глупо тратить время и силы на "свой инструмент". Но что меня глубоко и принципиально радует - это предложение засунуть данные внутрь Экселя и хранить таким образом. Потому что это автоматом подразумевает следующее: вот у меня есть "приложение в Экселе". Вот у меня три года назад был пуск, я засунул данные в Эксель и сохранил. А теперь я открываю данные этого пуска - и все модификации приложения, которые сделаны за эти три года, тут же ушли лесом, все исправленные ошибки снова появились. Красота
...
Рейтинг: 0 / 0
Проектирование базы данных пусков ракет
    #39432258
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>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 используется для представления информации.
Я не считаю, что подобный подход - панацея на все случаи. Но он имеет право на жизнь для подобных задач. И в базе данных можно хранить ссылку на файл со не структурированной информацией. В процессе построения выборки можно вызвать некое функциональное приложение.
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование базы данных пусков ракет
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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