Schema spy — поиск аномалий в базах данных

SchemaSpy — анализатор схемы базы данных и генератор визульного представления о схеме или базы данных. Очень полезный инструмент для ознакомления или анализа схемы. Умеет представить всю схему в виде XML, и составить порядок таблиц при загрузке данных (бывает очень нужно) и порядок удаления (конечно drop user <username> cascade или drop database спасет, но если надо очистить только данные — самое то).

Поддерживаемые базы данных:

db2, firebird, hsqldb, oracle, mssql, mysql, sybase, PostgreSQL

Находит следующие аномалии:

· Columns whose name and type imply a relationship to another table’s primary key

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

· Tables without indexes

Здесь все ясно. Если из базы данных что-то надо извлекать (искать) то наличие индексов ускорит этот процесс.

· Columns that are flagged as both ‘nullable’ and ‘must be unique’

Колонка объявленная как Nullable, но при этом имеет ограничение (constraint) уникальности (или первичный ключ).

· Tables that contain a single column

Таблицы только с одной колонкой. Зачем они нужны? Иногда нужны. Для построения динамических списков (диапазонов) с последующим соединением с другой таблицой или создание списка со значением по умолчанию. Что бы использовать к примеру один insert и один select, а не делать вставку в цикле. Хотя для этой цели можно использовать определенную системную таблицу, зная что в ней достаточно записей для построения требуемого диапазона.

· Tables with incrementing column names, potentially indicating denormalization
Таблицы в которых есть колонки с именем, отличающимся только последними цифрами, то есть Col1, Col2 .. Coln.

· Columns whose default value is the word ‘NULL’ or ‘null’, but the SQL NULL value may have been intended

Колонки со значениями NULL или null (интересная аномалия).

я бы добавил в анализ аномалий:

  • Таблицы без записей,
  • Таблицы в которых количество полей больше 20, 35, 30 .. n
  • Колонки которые можно сделать not null
  • Колонки которые можно сделать unique
  • Индексы которые не могут при выборках (когда диапазон значений очень маленький, а записей очеь много)

 

Интерфейс к командной строке (GUI)

SchemaSpyGUI — что бы легче было составить командную строку (только с 15-ой попытки заполнил все правильно для oracle, и с 5-ой для mysql)

Требования:

· Jdbc драйвера.

· GraphViz – опционально, для построения графического представления. Под windows я так и не добился его работы.

 

Technorati Tags: ,

Tags: , , , , , ,

Смотрите также: