Browsing all articles in Системный анализ
Aug
17

Кто и где использует PowerDesigner

Меня давно мучал вопрос кто и где использует Sybase PowerDesigner. read more

Jul
10

MindMap и системная динамика

На связь между картами памяти (MindMaps) и системно-динамическими моделями меня натолкнул пост

Вам нужен GPS для вашей mind-map? в LifeHacker. В самом деле, SD-модели описывают причинные зависимости между сущностями. Те же причинные зависимости могут быть описаны в виде Mind Maps. Причём существуют уже большие хорошо проработанные Mind Maps. Например, MasterMind Matrix mind map. Одной из самых лучших программ для работы с картами памяти является MindJet MindManager. Пока последняя (8-я) версия этого продукта не предоставляет никаких возможностей для интеграции с продуктами SD-моделирования.

Jun
29

An introduction to System Thinking

Сегодня прочитал книгу An Introduction to system Thinking, рекомендованную Байрамом. Автор Барри Ричмонд – один из идеологов программы STELLA.  В книге рассматриваются пять базовых Flow Templates:

  • External Resource Template
  • Co-flow Template
  • Draining Template
  • Stock-adjustment Template
  • Compounding Template

и пять базовых окружений (infrastructure):

  • Overshoot and Collapse
  • Slippery/Sticky Perceptions
  • Main Chain
  • Attribute Tracking
  • Relative Attractiveness.

Также рассматриваются различные примеры и методика преподавания системной динамики.

Apr
25

Выбор программы для работы с требованиями

Сегодня решил убедиться, что Telelogic DOORS является лучшей программой для работы с требованиями. read more

Apr
23

Ошибка SQLSTATE = 37000 в PowerDesigner

При реверсивном инжиниринге баз данных SQL Server 2008 в Sybase PowerDesigner 15 иногда возникает ошибка “Unable to list the tables.  [Microsoft][ODBC SQL Server Driver][SQL Server][Statement(s) could not be prepared. SQLSTATE = 37000]” read more

Apr
17

Исследование структуры базы данных через таблицы sys.objects, sys.columns, sys.types

Системные таблицы sys.sysobjects, sys.syscolumns, sys.systypes являются устаревшими и оставлены для обратной совместимости. Вместо этих таблиц следует использовать таблицы sys.objects, sys.columns и sys.types соответственно.

Далее рассмотрим несколько запросов с использованием этих таблиц:

--Объекты БД и соответствующие колонки
select o.name, c.name
from sys.objects o
  inner join sys.columns c on c.object_id = o.object_id
order by 1, 2
--Объекты БД и соответствующие поля с типами и максимальной длиной
select o.name, c.name, t.name, c.max_length
  from sys.objects o
  inner join sys.columns c on c.object_id = o.object_id
  inner join sys.types t on c.system_type_id = t.system_type_id
where t.user_type_id = t.system_type_id
order by 1, 2, 3
--Объекты БД и количество полей в них
select o.name, count(c.name)
  from sys.objects o
  inner join sys.columns c on c.object_id = o.object_id
group by o.name
order by 1
--Все пользовательские таблицы БД, содержащие поля типа image или ntext
select o.name, c.name, t.name, c.max_length
  from sys.objects o
  inner join sys.columns c on c.object_id = o.object_id
  inner join sys.types t on c.system_type_id = t.system_type_id
where t.user_type_id = t.system_type_id
  and t.name in ('image', 'ntext')
  and o.type = 'U'
order by 1, 2, 3
--Все пользовательские таблицы БД, содержащие поля типа image или ntext, и количество полей в них
select t.name, COUNT(c.name)
from
  (select o.object_id, o.name
  from sys.objects o
    inner join sys.columns c on c.object_id = o.object_id
    inner join sys.types t on c.system_type_id = t.system_type_id
  where t.user_type_id = t.system_type_id
    and t.name in ('image', 'ntext')
    and o.type = 'U'
  ) t
  left join sys.columns c on c.object_id = t.object_id
group by t.name
order by 2
--Все пользовательские таблицы, содержащие
--1. Поле типа image или ntext
--2. Поле типа nvarchar длины 2000
select distinct o.name, count(c.name)
from sys.objects o
  left join sys.columns c on o.object_id = c.object_id
  inner join
  (select o.object_id
  from sys.objects o
    inner join sys.columns c on c.object_id = o.object_id
    inner join sys.types t on c.system_type_id = t.system_type_id
  where t.user_type_id = t.system_type_id
    and t.name in ('image', 'ntext')
    and o.type = 'U'
  ) t1 on o.object_id = t1.object_id
  inner join
  (select o.object_id
  from sys.objects o
    inner join sys.columns c on c.object_id = o.object_id
    inner join sys.types t on c.system_type_id = t.system_type_id
  where t.user_type_id = t.system_type_id
    and t.name = 'nvarchar'
    and c.max_length = 2000
    and o.type = 'U'
  ) t2 on o.object_id = t2.object_id
group by o.name

Оказывается, в MS SQL комментарии к полям таблиц и к самим таблицам добавляются неочевидным путём – через хранимую процедуру sys.sp_addextendedproperty.

Apr
17

Программа, сама исправляющая свои ошибки

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

Apr
17

Подключение MindManager 8 к базам данных

MindManager 8 имеет существенные ограничения и недостатки при работе с базами данных:

  • Поддерживается только MS SQL Server 2005. К SQL Server 2008 не подключается ни через доменную авторизацию, ни через авторизацию по логину и паролю.
  • Не поддерживается доменная авторизация при подключении к SQL Server. Можно авторизоваться только по логину и паролю.
  • Нельзя подключиться к mdf-файлу базы MS SQL Server (проверялись файлы версий 2005 и 2008).
  • Флаги “In connected maps” – “Show field in topic text” и “Show field in custom properties” работают инверсно. То есть, например, чтобы показать поле в названии узла нужно сбросить флаг “Show field in topic text”.
Настройки подключения к базе данных

Настройки подключения к базе данных

  • Фильтры по Resultset не поддерживают Wildcards или регулярные выражения. При вводе произвольной текстовой строки в поле “Filter” выбираются все записи, содержащие эту строку. Хотя можно ввести несколько терминов, разделённых пробелами и будут выбраны все записи, содержащие хотя бы один термин.
  • Разница между полями “Enter text to find” и “Filter” в том, что в если в поле Filter ввести несколько терминов, то будут искаться записи, содержащие хотя бы один из терминов. А если ввести несколько терминов в поле “Enter text to find”, то будет искаться вся строка целиком. Ни wildcards, ни регулярные выражения в поле “Enter text to find” также не поддерживаются.
  • Работа с Excel-файлами осуществляется медленно.
Mar
31

Программы для реверсивного инжиниринга БД

В своей работе я использовал следующие программы для реверсивного инжиниринга баз данных:

  • Sybase PowerDesigner (PD) 12
  • ErWin
  • Microsoft Visio
  • Sparx Enterprise Architect 7.1
  • DB Visual Architect

read more