Подходят ли эти данные для хранения в базе данных? - PullRequest
4 голосов
/ 22 февраля 2010

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

У меня есть тестирование некоторых физических моделей (скажем, данные аэродинамической трубы; что-то похожее), где для каждой модели (M-1234) у меня есть:

name (M-1234)  
length L  
breadth B  
height H  
L/B ratio  
L/H ratio  
...  
lot of other ratios and dimensions ...
force versus speed curve given in the form of a lot of points for x-y plotting  
...  
few other similar curves (all of them of type x-y).

Теперь я пытаюсь сохранить это каким-то разумным образом, чтобы пользователь, который будет использовать базу данных, мог прийти и посмотреть, какие из десяти моделей ближе всего подходят к L / B = 2,5 (или некоторым другим подобным). потребность). Затем для этого каким-то образом получите все данные этих моделей, включая данные кривой (в формате простого текстового файла).

Является ли база данных sql (или любая другая, если на то пошло) подходящим способом обработки чего-то подобного? Или я должен использовать другой подход?

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

Ответы [ 3 ]

2 голосов
/ 22 февраля 2010

Да, база данных, вероятно, лучший подход для этого.

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

Чтобы дать вам идею:

Вы можете иметь основную таблицу model с полями name, width и т. Д. Затем подтаблицу (ы) для любых значений, которые могут появляться более одного раза, что ссылается на model (ищите «внешний ключ»).

Затем подтаблицу для ваших реальных кривых, снова возвращаясь к model.

Как на самом деле моделировать кривые в БД, я не знаю, так как я не знаю, как вы моделируете их. Но если у него много цифр, он может перейти в БД.

Кажется, вы мало знаете о реляционных СУБД. Вы можете прочитать что-нибудь в Википедии или сделать несколько простых руководств по СУБД (в PostgreSQL есть несколько: http://www.postgresql.org/docs/8.4/interactive/tutorial.html, но есть много других). Затем выберите для проверки СУБД (PostgreSQL, вероятно, неплохой выбор, но опять же есть много других).

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

Еще одна вещь: эти вопросы, вероятно, больше подходят для serverfault.com.

2 голосов
/ 22 февраля 2010

Я думаю, то, что вы ищете, возможно. Я использую Postgresql здесь, но любая база данных должна работать. Это моя тестовая база данных

CREATE TABLE test ( id serial primary key, ratio double precision ); COPY test (id, ratio) FROM stdin; 1 0.29999999999999999 2 0.40000000000000002 3 0.59999999999999998 4 0.69999999999999996 .

Затем, чтобы найти ближайшие значения для конкретного отношения

select id,ratio,abs(ratio-0.5) as score from test order by score asc limit 2;

В этом случае я ищу 2 ближайших к 0,5

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

0 голосов
/ 22 февраля 2010

Возможно, это научные данные: вам могут пригодиться библиотеки / форматы, предназначенные для произвольных научных данных: HDF5 http://www.hdfgroup.org/ (обратите внимание, я не эксперт)

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