Средство проверки нормализации схемы базы данных?

здесь вы строите свой вектор data без указания x, поэтому x равно x1 = 1... xn = length(data)

, просто укажите соответствующий x, и он будет работать

points(n_data, data[n_data],col=2)
points(p_data, data[p_data],col=3)
9
задан Mike Sherrill 'Cat Recall' 24 February 2018 в 13:56
поделиться

5 ответов

Это можно сделать, и есть по крайней мере 2 особенно доступных инструмента, которые могут сделать нормализацию для вас: GeneXus и DeKlarit. Они используют процесс под названием NormalizationBySynthesis

6
ответ дан 4 December 2019 в 12:22
поделиться

Я думаю, что это трудно реализовать.

Как, таблица

Id | Name | Surname | SSN 

находится в 1 нФ, и

Id | Name | Surname | Mobile

не, но Вы не можете сказать это ни от дизайна, ни от данных, только от имени поля.

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

0
ответ дан 4 December 2019 в 12:22
поделиться

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

enter image description here

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

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

Сравните со статическими инструментами анализа кода. Предположим, что Вы пишете приложение и поставляете его Вашему клиенту, и клиент говорит, "почему я не могу послать электронное письмо из этого приложения?" Как статический инструмент анализа кода сказал бы Вам об исключении желаемой функции? Это не может знать те требования.

Аналогично, как был бы аналитический инструмент нормализации базы данных знать, подходит ли это для UserAccount таблица, чтобы иметь сингл MobilePhoneNumber атрибут, или если это более соответствовало бы числам отдельного телефона в другую таблицу так отдельный пользователь, мог бы иметь несколько перечисленных телефонов?

6
ответ дан 4 December 2019 в 12:22
поделиться

Это не может быть сделано.

Нормализация определяется с точки зрения функциональных зависимостей который

  1. Не может быть выражен в SQL
  2. Не может быть выведен из данных

Можно посмотреть на таблицу такой как

A | B
--+--
1 | 1
1 | 2

и выведите, что B не зависит от (потому что он имеет два отличных значения для единственного значения A), но Вы никогда не можете выводить, что зависимость действительно существует, например, май или не может зависеть от B.

0
ответ дан 4 December 2019 в 12:22
поделиться

Я тоже думал об этой проблеме. Теоретически это возможно, и на эту тему есть несколько исследовательских работ. раньше на www.dbtools.cs.cornell.edu был довольно крутой инструмент. Его разработал известный автор Рагху Рамакришнан. В настоящее время он работает в Yahoo Research. Для получения дополнительной информации вы можете обратиться к следующим статьям

  1. Diederich, T. и Митон Дж. (1988), «Новые методы и быстрые алгоритмы для нормализации базы данных», ACM Transactions on Database Systems, 13 (3), 339-365.
  2. Bernstein, PA (1986), » полный интерактивный инструмент, названный JMathNorm, для реляционной базы данных (RDB) нормализация с использованием Mathematica. Это продолжение прототипа разработаны теми же авторами [1] с включение второй нормальной формы (2NF) и нормальная форма Бойса-Кодда (BCNF) в дополнение к существующим Модуль третьей нормальной формы (3NF). В инструмент, разработанный в этом исследовании, полный и может использоваться в режиме реального времени дизайн базы данных, а также помощь в обучение фундаментальным понятиям БД нормализация для студентов с ограниченным математический фон. JMathNorm также поддерживает интерактивное использование модули для экспериментов основные операции над множеством, такие как закрытие и полное закрытие вместе с модулями для получения минимального крышка набора функциональных зависимостей и тестирование атрибута для кандидат ключ. Графический интерфейс JMathNorm интерфейс написан на Java и использует средство JLink компании Mathematica для управления ядром Mathematica.

    Меня также очень интересует ответ на этот вопрос. Если кто-нибудь нашел инструмент, сообщите нам об этом!

3
ответ дан 4 December 2019 в 12:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: