Привет, я инженер-строитель с некоторым опытом программирования, но я не знаком с широким спектром доступных сегодня опций. Надеюсь, вы могли бы дать мне какие-либо указатели лучший способ продолжить.
Я хочу создать и запросить базу данных измерений уровня земли в виде сетки. Во время земляных работ будет много измерений для каждого местоположения сетки в разное время, поэтому существует 4-е измерение времени.
Наблюдения, скорее всего, будут считаны из текстового файла. В каждой записи будет (2 x целое) положение сетки (строка и столбец), уровень земли (с плавающей запятой) и различные строковые информационные коды (всего может быть до 30 символов).
Сетки могут быть около 10000 строк х 10000 столбцов. Не каждое место в сетке будет иметь записи в каждом опросе, но обычно они имеют до ста записей. Во многих местах сетки не будет записей вообще (сайт не будет идеально прямоугольным).
Я хочу искать записи, извлекать данные и делать расчеты, например, рассчитать самый низкий или самый высокий уровень земли для каждого местоположения сетки. Я вполне уверен, что у меня будет возможность довольно просто программировать это на таких языках, как FORTRAN, BASIC или C, используя массивы. Хотя многие элементы массива были бы пустыми, и я предполагаю, что это неправильный способ сделать это, и большие базы данных, подобные этой, нуждаются в специальных инструментах, которые мне придется изучить, как их использовать.
Я думаю о возможных вариантах для платформы -
Используйте программу базы данных. Я не знаю, насколько мощными они могут быть, но я думаю, что они будут иметь много накладных расходов с GUI.
Использовать SQL? Об этом я немного знаю, но, похоже, это язык для баз данных. Я всегда использовал императивные языки, а не декларативные, и, как я понимаю из википедии, SQL является декларативным, я немного нервничаю из-за изменений. Я не совсем понимаю процесс его использования. Есть ли компилятор, который делает консольные программы? База данных хранится на диске? Извините за такие глупые вопросы.
Использовать такой API, как c-treeACE? Я думаю, что это может быть способ предложить мне знакомство с языком «сделай это, затем сделай это» (к сожалению, я так думаю, как инженер!). Но я надеюсь, что негласное управление памятью и обработкой, предлагаемое API, будет превосходить то, что я мог бы достичь с огромными массивами.
Или я могу сделать это на объектно-ориентированном языке и позволить компьютеру беспокоиться о требованиях к хранилищу. например, если бы я хранил записи как объекты с методами и свойствами, которые помогли бы мне получить нужные мне результаты из каждой записи - была бы это огромная раздутая программа по сравнению с 3)
Вероятно, будут сотни миллионов записей, и я хочу иметь возможность запрашивать и обрабатывать их за считанные минуты, а не часы (предпочтительно секунды!) На современном ПК с Windows. Если быть более точным, у меня есть процессор i7 с оперативной памятью 6 ГБ и твердотельный накопитель на 120 ГБ, работающий под управлением Windows 7 64 бит.
Надеюсь, у кого-то есть время, чтобы поделиться несколькими словами мудрости с новичком.