Разработка базы данных для физики оборудования - PullRequest
3 голосов
/ 28 мая 2009

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

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

Настройка:

  • У нас есть около 200 детекторов и примерно 40 параметров, связанных с каждым детектором. Мы ожидаем, что из этих 40 параметров только немногие изменятся в ходе эксперимента. Большинство параметров, связанных с одним детектором, являются статическими.
  • Мы собираем данные для этого эксперимента по времени. Во время этих запусков параметры, загруженные в оборудование, не должны изменяться, хотя мы должны иметь возможность редактировать базу данных в любое время, чтобы подготовиться к следующему прогону. Текущий план:

    • База данных предоставит разницу между текущими параметрами и параметрами, использованными во время последнего запуска.
    • В начале нового запуска самые последние изменения базы данных загружаются в аппаратное обеспечение.
    • Параметры, используемые для предстоящего цикла, должны быть помечены номером цикла, а также текущей датой и временем. Это важно Мне нужна прогоненная история экспериментальной установки.
  • Будет несколько разных клиентов, которые будут читать и записывать в базу данных. Хотя изменения в базе данных будут редкими, я не могу гарантировать, что изменения не произойдут одновременно.

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

Мой текущий план - реализовать вышеуказанные требования с использованием базы данных sqlite, хотя я не уверен, что она сможет удовлетворить все мои требования. Есть ли какие-либо другие технологии, которые я должен изучить? Кто-нибудь делал что-то подобное? Я готов изучать любую технологию, пока она зрелая.

Советы и рекомендации приветствуются.

Спасибо,

Sean


Обновление 1 :

Доступ к базе данных :

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

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

Программа с доступом только для чтения - это наше программное обеспечение для анализа данных. Ему нужен доступ почти ко всем параметрам в базе данных, чтобы правильно отформатировать входящие данные в то, что мы можем правильно проанализировать. Количество подключений к базе данных должно быть> 10.

Резервные

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

Ответы [ 3 ]

1 голос
/ 28 мая 2009

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

1 голос
/ 28 мая 2009

Спроси у своих коллег.

Вы не говорите, какую физику вы делаете или насколько велика рабочая группа, но в моей дисциплине (физика элементарных частиц) есть глубокий репозиторий опыта установки и запуска именно таких систем ( мы называем это «медленное управление» и тому подобное). Есть довольно хороший шанс, что кто-то, с кем вы работаете, либо сделал это, либо знает кого-то, кто это сделал. Там может быть подробное описание последнего таймаута в чьей-то диссертации.

Лично я не имею ничего общего с этим, но я знаю это: одна общая черта - дизайн без удаления, перезаписи. Вы можете только добавить данные, но не удалять их. Это сохраняет ваши шансы выяснить, что действительно произошло в случае неприятностей


Возможно, я должен объяснить немного больше. Хотя это важная задача и должна быть выполнена правильно, на самом деле она не связана с физикой, поэтому вы не можете найти ее на Spiers или arXive.org . Никто не пишет статьи о разработке и внедрении баз данных медленного управления среднего размера. Но они иногда помещают это в свои диссертации. Самый простой способ найти указатель - это спросить группу людей вокруг лаборатории.

0 голосов
/ 28 мая 2009

Это не особо большая база данных по звукам вещей. Таким образом, вам, возможно, удастся обойтись без использования бесплатной базы данных Oracle , которая даст вам все виды большой гибкости при ведении журналов (не уверен, что это действительно так) и администрировании.

Ваше упоминание о «не подверженном коррупции» сразу после того, как вы говорите «Будет несколько разных клиентов, которые и читают, и записывают в базу данных», поднимает для меня красный флаг. Планируете ли вы создать какое-то приложение, которое имеет интерфейс для этого? Или вы планировали прямой доступ к БД через такой инструмент, как TOAD?

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

Резервные? Да, конечно! Вы должны делать не только ежедневные, еженедельные и ежемесячные резервные копии, но и полные и инкрементные. Кроме того, часто проверяйте свои резервные образы, чтобы убедиться, что они действительно работают.

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

Detectors
Parameters
Detector_Parameters

Некоторые дополнительные примечания:

Поскольку вы будете вносить так много изменений, я рекомендую использовать контроль версий, такой как SVN , чтобы отслеживать все ваши DDL и т. Д. Я также рекомендовал бы использовать что-то вроде bugzilla для устранения ошибок отслеживание (при необходимости) и использование google docs для управления групповыми документами.

Надеюсь, это поможет.

...