Кто и где использует PowerDesigner
Меня давно мучал вопрос кто и где использует Sybase PowerDesigner. read more
MindMap и системная динамика
На связь между картами памяти (MindMaps) и системно-динамическими моделями меня натолкнул пост
Вам нужен GPS для вашей mind-map? в LifeHacker. В самом деле, SD-модели описывают причинные зависимости между сущностями. Те же причинные зависимости могут быть описаны в виде Mind Maps. Причём существуют уже большие хорошо проработанные Mind Maps. Например, MasterMind Matrix mind map. Одной из самых лучших программ для работы с картами памяти является MindJet MindManager. Пока последняя (8-я) версия этого продукта не предоставляет никаких возможностей для интеграции с продуктами SD-моделирования.
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.
Также рассматриваются различные примеры и методика преподавания системной динамики.
Выбор программы для работы с требованиями
Сегодня решил убедиться, что Telelogic DOORS является лучшей программой для работы с требованиями. read more
Ошибка 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
Исследование структуры базы данных через таблицы 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.
Программа, сама исправляющая свои ошибки
Возможно ли в принципе написать программу, которая сама будет исправлять свои ошибки? То есть, если такая программа будет создана, то отпадёт необходимость в тестировании. Эта задача чем-то перекликается с задачей о написании программы, печатающей саму себя.
Подключение 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-файлами осуществляется медленно.
Программы для реверсивного инжиниринга БД
В своей работе я использовал следующие программы для реверсивного инжиниринга баз данных:
- Sybase PowerDesigner (PD) 12
- ErWin
- Microsoft Visio
- Sparx Enterprise Architect 7.1
- DB Visual Architect


osya






