Дизайн базы данных - PullRequest
       11

Дизайн базы данных

0 голосов
/ 27 сентября 2008

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

РЕДАКТИРОВАТЬ: Для тех, кто хочет больше деталей ...

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

Еще одна вещь, которую я хочу включить - это идентификатор дела. Мы идентифицируем различные случаи, используя буквенно-цифровую строку идентификатора случая, которая соответствует определенной комбинации систем и важных входных параметров. Например, предположим, что датчик может обнаружить цель в 3 различных диапазонах в зависимости от режима, в идентификаторе случая будет символ, соответствующий каждому уровню диапазона обнаружения, помеченный 0, 1 или 2. Если имеется достаточно уровней В данном случае символы идентификатора регистра переключаются на буквы после 9. Этот идентификатор регистра определенно будет важным ключом в базе данных. После того, как мы сохранили данные, нам нужно извлечь определенные числа, чтобы составить диаграммы, сравнивающие разные случаи. В настоящее время мы создаем диаграммы в Excel, но недавно я добавил еще MATLAB.

Что касается технологии баз данных, я подумал, что я сделаю дизайн таблицы в Access для вещей-прототипов, а затем реализую ее в MS SQL Server. Я планирую использовать Ruby для создания отчетов HTML с таблицами данных и графиками.

Ответы [ 9 ]

2 голосов
/ 27 сентября 2008

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

Мы использовали дешевое решение (не бесплатное): Happy Fish . Он обеспечивает хороший способ визуализации данных даже для довольно сложного приложения с более чем сотней таблиц. Этот инструмент автоматически создает схему DDL для создания необходимых таблиц, индексов, ограничений внешнего ключа для вашей среды (включена поддержка Oracle, MySQL, Microsoft SQL Server и других).

Есть много дополнительных инструментов в этом ключе; Вы можете найти выбор бесплатных инструментов из Wikipedia .

2 голосов
/ 27 сентября 2008

Укажите следующее, и вы получите полезный ответ

  1. Тип базы данных (MsSQL, MySQL и т. Д.)
  2. Любые другие языки, которые вы используете с этим (C #, PHP)
  3. Данные, которые вы хотите сохранить
  4. Что вы планируете делать с данными (это может повлиять на то, как лучше их хранить и запрашивать), этот шаг очень необязательный
1 голос
/ 28 сентября 2008

Я бы предложил вам создать прототип в базе данных, которую вы планируете использовать. Доступ не подходит для этого типа данных в течение длительного периода времени. Поскольку Access Sql сильно отличается от SQL Server t-sql, а типы данных доступа отличаются от типов данных SQL Server (а мастер делает очень плохой выбор при конвертации), использование Access to prototype ничего не даст вам и может создать больше работы, воссоздающей вещи, которые вы уже сработало.

1 голос
/ 27 сентября 2008

симуляции чего?

Книга Шаблоны моделей данных: условные обозначения Дэвида Хэя содержит рецепты дизайна для ряда видов бизнеса. Может быть, вас вдохновляет модель оттуда?

1 голос
/ 27 сентября 2008

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

Хорошая отправная точка: эта статья в Википедии .

1 голос
/ 27 сентября 2008

Есть веб-сайт «Переполнение стека», на котором есть кучка умных людей, которые могут помочь. ; -)

Предоставьте более подробную информацию о том, что вы пытаетесь сохранить, и я уверен, что вы получите кучу полезных ответов.

0 голосов
/ 29 сентября 2008

Если вы собираетесь использовать Ruby, подумайте о создании своей базы данных, используя ActiveRecord (основной компонент Rails, но не привязанный исключительно к нему). Таким образом, вы сможете развивать свою схему с помощью миграций, что является хорошим способом управления вещами. По умолчанию ваша база данных реализована на SQLite, который, если вы не возражаете против потери графических аспектов Access, представляет собой симпатичный небольшой пакет (и, вероятно, самое внедряемое программное обеспечение для БД в мире, о котором мало кто знает). Переход на SQL Server должен быть безболезненным (я сделал это - никаких серьезных шрамов).

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

(Отказ от ответственности: я заново рожденный программист на Rails с долгой историей разработки приложений БД на базе Windows. Извиняюсь за непреднамеренную евангелизацию.)

0 голосов
/ 28 сентября 2008

Что касается основы СУБД: используйте SQL Server Express, а затем перейдите на SQL Server, если это необходимо Не используйте Access для этого.

0 голосов
/ 27 сентября 2008

Часто мы записываем варианты использования - кто и как собирается их использовать.

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

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

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

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