Аникин Александр Николаевич Разработка системы автоматизации процесса документирования объектов бд под управлением ms sql server диплом

Вид материалаДиплом

Содержание


Глава 3. Разработка программного обеспечения для автоматизации процесса документирования объектов базы данных. 35
Цель дипломной работы.
Глава 1 Обзор коллекции системных таблиц MS SQL Server 2005, предоставляющих метаданные об объектах баз данных.
1.1 Системные базы данных MS SQL Server 2005
1.1.1 Системная база данных Resource.
1.2. Обзор коллекции системных представлений Microsoft SQL Server, содержащие метаданные объектов БД.
1.2.1. Представления каталога (Transact-SQL)
1.2.2. Представления каталога объектов
Таблица 1.3. Структура представления sys.columns
Таблица 1.4. Структура представления sys.check_constraints
Таблица 1.5 Структура представления sys.foreign_keys
Таблица 1.6 Структура представления sys.indexes
Таблица 1.7. Структура представления sys.objects
Таблица 1.8. Структура представления sys.procedures
Таблица 1.8 Структура представления sys.tables
Таблица 1.9 Структура представления sys.views
Таблица 1.10 Структура представления sys.triggers
Таблица 1.11. Структура представления sys.default_constraints
1.2.3 Представление каталога sys.extended_properties
Таблица 1.12. Структура представления sys.extended_properties
...
Полное содержание
Подобный материал:
  1   2   3


ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Институт математики и компьютерных наук

Кафедра информационной безопасности


Допустить к защите в ГАК
Заведующий кафедрой
информационной безопасности,
д.т.н., профессор А.А. Захаров

“____” _________ 2010 г.


Аникин Александр Николаевич

Разработка системы автоматизации процесса документирования объектов БД под управлением MS SQL Server

(Дипломная работа)


Научный руководитель:

к.т.н., доцент

__________ Оленников Е.А.

Автор работы:

__________ Аникин А.Н.


Тюмень – 2010

Содержание

Введение 4

Глава 1 Обзор коллекции системных таблиц MS SQL Server 2005, предоставляющих метаданные об объектах баз данных. 6

Глава 2. Разработка базы данных для хранения информации об объектах документируемой базы данных. 21

Глава 3. Разработка программного обеспечения для автоматизации процесса документирования объектов базы данных. 35

Заключение. 37

Список используемой литературы: 38

39

Приложение 1. ER модель реестра объектов БД. 39

39

Приложение 2. Интерфейс приложения 40

Введение


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

Количество объектов БД может увеличиваться с развитием ИС. В этой ситуации важное значение имеет своевременное и полное документирование.

Очевидно, что отсутствие грамотно составленной документации БД негативно влияет на:
  • Дальнейшее развитие БД.
  • Сопровождение БД.
  • Безопасность данных.


На практике, документированию объектов базы данных не всегда уделяется должное внимание. Документирование не ведется или ведется не полностью (не регулярно). Особенно когда разрабатывается большой проект, принимают участие много разработчиков, отпущены минимальные сроки.

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


Полностью автоматизировать процесс документирования, невозможно. Однако существуют программы которые могут помочь составить грамотную документацию.

Например, программа ERwin для проектирования и документирования баз данных, позволяет создавать, документировать и сопровождать базы данных, хранилища и витрины данных.

ER-Studio, инструментарий, предназначенный для работы с моделями данных и их анализа на логическом и физическом уровне. Он предназначен для проектирования, создания и сопровождения баз данных.

Перечисленные средства не в полной мере позволяют решить задачу документирования объектов БД.

Поэтому, актуальной задачей является разработка инструмента, помогающего максимально облегчить работу по документированию БД.


Цель дипломной работы. Разработка системы автоматизации процесса документирования объектов БД под управлением MS SQL Server.


Задачи:
  • Разработка структуры БД для хранения информации об объектах документируемой БД.
  • Разработка ПО для облегчения процесса документирования объектов БД.

Глава 1 Обзор коллекции системных таблиц MS SQL Server 2005, предоставляющих метаданные об объектах баз данных.



Microsoft SQL Server 2005 – комплексная платформа баз данных, обеспечивающая управление данными в масштабе предприятия и оснащенная интегрированными средствами управления интеллектуальными ресурсами предприятия (BI). Ядро СУБД SQL Server 2005 обеспечивает более безопасное и надежное хранение реляционных и структурированных данных, позволяя создавать и обслуживать высокопроизводительные приложения обработки данных класса предприятия.

Важным преимуществом Microsoft SQL Server 2005 является тесная интеграция с Microsoft Visual Studio, Microsoft Office System.

1.1 Системные базы данных MS SQL Server 2005


Вся информация об объектах баз данных MS SQL Server 2005 хранится в системных базах данных. В состав SQL Server 2005 входят следующие системные базы данных:


Таблица 1.1 Системные базы данных

Системная база данных

Описание

master

В этой базе данных хранятся все данные системного уровня для экземпляра SQL Server.

msdb

Используется агентом SQL Server для планирования предупреждений и задач.

model

Используется в качестве шаблона для всех баз данных, создаваемых в экземпляре SQL Server. Изменение размера, параметров сортировки, модели восстановления и других параметров базы данных model приводит к изменению соответствующих параметров всех баз данных, создаваемых после изменения.

resource

База данных только для чтения. Содержит системные объекты, которые входят в состав SQL Server 2005. Системные объекты физически хранятся в базе данных Resource, но логически отображаются в схеме sys любой базы данных.

tempdb

Рабочее пространство для временных объектов или взаимодействия результирующих наборов.

1.1.1 Системная база данных Resource.


В отличие от других системных баз данных, база данных ресурсов предназначена только для чтения и содержит копии всех системных объектов в пользовательских базах данных. Системные объекты SQL Server, такие как sys.objects, физически расположены в базе данных Resource, а логически отображаются для каждой базы данных в схеме sys. База данных Resource не содержит ни пользовательских данных, ни метаданных. Именно запросы к это базе данных возвращают информацию об объектах исследуемой БД.


Логическая структура базы данных определяет структуру таблиц, хранимые процедуры, взаимоотношения между таблицами, список пользователей, правила, представления и другие объекты базы данных. Основными объектами в БД, являются объекты, представленные в таблице.


Таблица 1.2. Основные объекты базы данных MS SQL Server 2005

Имя объекта

Описание

Tables

Таблицы базы данных, в которых хранятся данные

Stored Procedures

Хранимые процедуры

Views

Представления (виртуальные таблицы) для частичного или полного отображения данных из таблиц

Keys

Ключи – один из видов ограничений целостности данных

Constraints

Ограничение целостности – объекты для обеспечения логической целостности данных

Indexes

Индексы – дополнительные структуры, призванные повысить производительность работы с данными

Users

Пользователи, обладающие доступом к базе данных

Roles

Роли, позволяющие объединять пользователей в группы

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

1.2. Обзор коллекции системных представлений Microsoft SQL Server, содержащие метаданные объектов БД.


Microsoft SQL Server 2005 предоставляет следующие коллекции системных представлений, содержащие метаданные:
  • Представления каталога. Возвращают данные об объектах БД.
  • Представления информационной схемы. Являются одним из способов получения метаданных об объектах.
  • Представления репликации. Эти представления содержат сведения, которые используются репликацией в Microsoft SQL Server.
  • Динамические административные представления и функции. Динамические административные представления и функции возвращают данные о состоянии сервера.
  • Представления служб Notification Services. Представления предоставляют объединенный просмотр данных приложения и экземпляра.

Все приведенные выше системные представления предоставляют максимум информации об объектах пользовательской БД. Рассмотрим подробнее некоторые из представлений которые наиболее подходят для решения поставленных задач.

1.2.1. Представления каталога (Transact-SQL)


Представления каталога возвращают данные, которые используются компонентом Microsoft SQL Server. Рекомендуется, чтобы использовались представления каталога, потому что они имеют наиболее универсальный интерфейс к метаданным каталога и предоставляют наиболее эффективный способ для получения, преобразования и представления настроенных форм этих данных. Все доступные для пользователя метаданные каталога предоставляются через представления каталога.

Некоторые представления каталога наследуют строки других представлений каталога. Например, представление каталога таблицы наследует от представления каталога объекты. Это означает, что представление каталога таблицы имеет столбцы, которые являются определенными для таблиц, а также все столбцы, которые принадлежат представлению каталога объекты.

1.2.2. Представления каталога объектов



В этом разделе содержатся следующие представления каталога:
  • sys.columns - Возвращает строку для каждого столбца объекта, имеющего столбцы, например, представления или таблицы.

Таблица 1.3. Структура представления sys.columns

Имя столбца

Тип данных

Описание

object_id

int

Идентификатор таблицы или представления, которому принадлежит этот столбец.

name

sysname

Имя столбца. Уникально в рамках одной таблицы или представления.

column_id

int

Идентификатор столбца. Уникален в рамках одной таблицы или представления.

user_type_id

int

Идентификатор типа столбца, определенного пользователем.

max_length

smallint

Максимальная длина столбца (в байтах).

is_nullable

bit

Разрешить в столбце значения NULL.

is_identity.

bit

столбец содержит значения identity.

is_computed

bit

столбец является вычисляемым.



  • sys.check_constraints - Содержит по одной строке для каждого объекта, являющегося ограничением CHECK.

Таблица 1.4. Структура представления sys.check_constraints

Имя столбца

Тип данных

Описание

object_id

int

Идентификатор ограничения.

name

sysname

Имя столбца. Уникально в рамках одной таблицы или представления.

parent_object_id

int


Идентификатор таблицы, которой принадлежит ограничение.

type_desc

nvarchar(60)

Описание типа ограничения.

create_date

datatime

Дата создания.

modify_date

datatime

Дата изменения.

definition

nvarchar(max)

Выражение SQL, определяющее данное значение по умолчанию.



  • sys.foreign_keys - Содержит по одной строке для каждого объекта, являющегося ограничением внешнего ключа.

Таблица 1.5 Структура представления sys.foreign_keys

Имя столбца

Тип данных

Описание

object_id

int

Идентификатор внешнего ключа.

name

sysname

Имя столбца. Уникально в рамках одной таблицы или представления.

parent_object_id

int


Идентификатор таблицы, которой принадлежит внешний ключ.

type_desc

nvarchar(60)

Описание типа ключа.

create_date

datatime

Дата создания.

modify_date

datatime

Дата изменения.

referenced_object_id

int


Идентификатор таблицы с которым осуществляется связь по данном внешнему ключу



  • sys.indexes - Содержит строку для каждого индекса, такого как таблица, представление или возвращающая табличное значение функция.


Таблица 1.6 Структура представления sys.indexes

Имя столбца

Тип данных

Описание

object_id

int

Идентификатор объекта, которому принадлежит данный индекс.

name

sysname

Имя индекса. Значение name уникально только в пределах объекта.

index_id

int

Идентификатор индекса. Значение уникально только в пределах объекта.

type_desc

nvarchar(60)

Описание типа индекса.



  • sys.objects – отображает все системные объекты.

Таблица 1.7. Структура представления sys.objects

Имя столбца

Тип данных

Описание

name

sysname

Имя объекта.

object_id

int

Идентификационный номер объекта. Уникален в пределах базы данных.

create_date

datetime

Дата создания объекта.

modify_date

datetime

Дата последней модификации объекта с помощью инструкции ALTER. Если объект является таблицей или представлением, то столбец modify_date также изменяется при создании или изменении кластеризованного индекса таблицы или представления.



  • sys.procedures - Содержит по строке для каждого объекта, являющегося процедурой какого-либо рода и определенного с типом sys.objects.type = P, X, RF или PC.

Таблица 1.8. Структура представления sys.procedures

Имя столбца

Тип данных

Описание

object_id

int

Идентификационный номер процедуры.

name

sysname

Имя процедуры.

create_date

datetime

Дата создания процедуры.

modify_date

datetime

Дата последней модификации.

type_desc

nvarchar(60)

Описание типа процедуры.



  • sys.tables - Возвращает по строке для каждого объекта таблицы, на данный момент только с типом sys.objects.type = U.

Таблица 1.8 Структура представления sys.tables

Имя столбца

Тип данных

Описание

object_id

int

Идентификационный номер процедуры.

name

sysname

Имя процедуры.

create_date

datetime

Дата создания процедуры.

modify_date

datetime

Дата последней модификации.

type_desc

nvarchar(60)

Описание типа таблицы.



  • sys.views - Содержит одну строку для каждого объекта представления со значением sys.objects.type = V.

Таблица 1.9 Структура представления sys.views

Имя столбца

Тип данных

Описание

object_id

int

Идентификационный номер представления.

name

sysname

Имя представления.

create_date

datetime

Дата создания представления.

modify_date

datetime

Дата последней модификации.

type_desc

nvarchar(60)

Описание типа представления.



  • sys.triggers - Содержит по одной строке для каждого объекта, являющегося триггером типа TR или TA. Имена триггеров DML существуют в пределах схемы и, следовательно, видимы в представлении

Таблица 1.10 Структура представления sys.triggers

Имя столбца

Тип данных

Описание

object_id

int

Идентификатор триггера.

name

sysname

Имя триггера. Уникально в пределах базы данных.

parent_object_id

int


Идентификатор родителя триггера.

parent_class

tinyint

Класс родителя триггера.

create_date

datatime

Дата создания.

modify_date

datatime

Дата изменения.



  • sys.default_constraints - Содержит строку для каждого объекта, являющегося определением по умолчанию (созданного как часть инструкции CREATE TABLE или ALTER TABLE.

Таблица 1.11. Структура представления sys.default_constraints

Имя столбца

Тип данных

Описание

object_id

int

Идентификатор ограничения.

name

sysname

Имя столбца. Уникально в рамках одной таблицы или представления.

parent_object_id

int


Идентификатор таблицы, которой принадлежит ограничение.

type_desc

nvarchar(60)

Описание типа ограничения.

create_date

datatime

Дата создания.

modify_date

datatime

Дата изменения.

definition

nvarchar(max)

Выражение SQL, определяющее данное значение по умолчанию.



1.2.3 Представление каталога sys.extended_properties


Расширенные свойства могут отображаться путем запроса по представлению каталога sys.extended_properties. В данном представлении предусмотрен простой метод возврата значений расширенных свойств, а для возврата дополнительных данных, например имен или типов объектов, связанных с расширенным свойством, данное представление может быть соединено с другими представлениями каталога. Запросы к представлению каталога sys.extended_properties возвращают описание объектов базы данных.


Таблица 1.12. Структура представления sys.extended_properties

Имя столбца

Тип данных

Описание

class

tinyint

Идентифицирует класс объекта, для которого определено свойство.

class_desc

nvarchar(60)

Описание класса объекта, для которого определено расширенное свойство.

major_id

int

Идентификатор объекта, для которого определено расширенное свойство, интерпретируемый в соответствии с его классом.

minor_id

int

Вторичный идентификатор элемента, для которого определено расширенное свойство, интерпретируемый в соответствии с его классом

name

sysname

Имя свойства, уникальное в пределах class, major_id и minor_id.

value

sql_variant

Значение расширенного свойства.



1. 3 Архитектура клиент/сервер


Клиент-серверная система характеризуется наличием двух взаимодействующих самостоятельных процессов - клиента и сервера.По такой схеме строятся системы обработки данных на основе СУБД, почтовые и другие системы.

В клиент-серверной системе функционируют (как минимум) два приложения - клиент и сервер. Хранением и непосредственным манипулированием данными занимается сервер баз данных, такой как Microsoft SQL Server.

Формирование пользовательского интерфейса возлагается на клиента. Логика обработки данных может выполняться как на клиенте, так и на сервере. Клиент посылает на сервер запросы, сформулированные, как правило, на языке SQL. Сервер обрабатывает эти запросы и передает клиенту результат.

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

1.4 ADO.NET как базовый объект доступа к базам данных


ADO.NET — новый этап в технологии ActiveX Data Objects (ADO, объекты

данных ActiveX). Если раньше в ADO упор делался на по-

стоянное соединение с базой данных, то в технологии использования

ADO.NET изначально заложена возможность работы приложения в состоя-

нии "разрыва" соединения с базой данных. В ADO.NET обеспечивается

возможность работы со всеми совместимыми с OLE DB источниками дан-

ных как в локальных сетях в рамках традиционных Windows-приложений,

так и в глобальных сетях (Интернет) в рамках Web-приложений.

1.4.1. Структура компонента доступа к данным ADO.NET


Большинство приложений, которые создаются для конечных пользователей, обеспечивают обработку информации, хранящейся в базах. С точки зрения разработчика желательно иметь единый механизм и единый набор объектов, обеспечивающих доступ к данным, независимо от масштабности решаемой задачи. В технологии Microsoft .NET создана достаточна гибкая и эффективная модель доступа к данным — ADO.NET, предоставляющая раз- работчикам набор объектов, на основе которых можно создавать приложения любого масштаба (от локальных до глобальных).

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

Независимо оттого, что будет происходить с данными, есть определенные фундаментальные понятия, обеспечивающие доступ к данным через компонент ADO.NET. В данном разделе дается общий обзор наиболее важных понятий.

1.4.2. Работа в отрыве от источника данных


В традиционных системах клиент-сервер при запуске приложения пользователем автоматически устанавливается связь с базой данных, которая поддерживается в "активном" состоянии до тех пор, пока приложение не будет закрыто.

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

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

В объектной модели ADO.NET можно выделяется несколько уровней.

Уровень данных. Это по сути дела базовый уровень, на котором располагаются сами данные (например, таблицы базы данных MS SQL Server). На данном уровне обеспечивается физическое хранение информации манипуляция с данными на уровне исходных таблиц (выборка, сортировка, добавление, удаление, обновление и т. п.).

Уровень бизнес-логики. Это набор объектов, определяющих, с какой базой данных предстоит установить связь и какие действия необходимо будет выполнить с содержащейся в ней информацией. Для установления связи с базами данных используется объект DataConnection. Для хранения команд, выполняющих какие либо действия над данными, используется объект DataAdapter. И, наконец, если выполнялся процесс выборки информации из базы данных, для хранения результатов выборки используется объект DataSet. Объект DataSet, по сути дела, представляет собой набор данных, "вырезанных" из таблиц основного хранилища, который может быть передан любой программе-клиенту, способной либо отобразить эту информацию конечному пользователю, либо выполнить какие-либо манипуляции с полученными данными.

Уровень приложения. Это набор объектов, позволяющих хранить и отображать данные на компьютере конечного пользователя. Для хранения информации используется уже знакомый нам объект DataSet, а для отображения данных имеется довольно большой набор элементов управления (DataGrid, TextBox, ComboBox, Label и т. д.). В Visual Studio .Net можно вести разработку двух типов приложений. В первую очередь это традиционные Windows-приложения (на основе Windows-форм), которые реализованы в виде ехе-файлов, запускаемых на компьютере пользователя.

1.4.3. Взаимодействие с базой данных через команды


В ADO.NET для манипуляции с данными могут использоваться команды, реализованные в виде SQL-запросов или хранимых процедур (DataCommand). Если в команде содержался SQL-запрос на выборку SELECT, то команда может вернуть набор данных. Вы можете выбрать из базы данных только определенные строки и колонки, используя объект DataReader, который работает достаточно быстро, поскольку использует курсоры read-only, forward-only. Команды работы с данными могут содержать параметры, т. е. могут использоваться параметризированные запросы. Значения параметров могут задаваться динамически, во время выполнения приложения.

1.4.4. Взаимодействие с базой данных через объект DataSet


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

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

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

Важно отметить то, что DataSet — пассивный контейнер для данных, который обеспечивает только их хранение. Что же нужно поместить в этот контейнер, определяется в другом объекте — адаптере данных DataAdapter. В адаптере данных содержатся одна или более команд, которые определяют, какую информацию нужно поместить в таблицы объекта DataSet, по каким правилам нужно синхронизировать информацию в конкретной таблице DataSet и соответствующей таблицей основной

базы данных и т. п. Адаптер данных обычно содержит четыре команды SELECT, INSERT, UPDATE, DELETE для выборки, добавления, корректировкии удаления записей.

1.4.5. Независимость набора данных DataSet от источника данных


Несмотря на то, что DataSet является фрагментом (кэшем) базы данных, он не имеет постоянной фактической связи с первоисточником. Объект DataSet — это контейнер, заполняемый информацией другим объектом — адаптером , данных - DataAdapter, который взаимодействует с первоисточником через SQL-запросы или хранимые процедуры. Один объект DataSet может взаимодействовать с несколькими объектами DataAdapter, каждый из которых обеспечивает наполнение данными таблиц контейнера.

Поскольку объект DataSet непосредственно не связан с источником данных, существует хорошая предпосылка для интеграции (объединения) данных, которые поступают из разных источников. Как только данные поступят в контейнер DataSet, пользователь может работать с ними как с единым информационным массивом, используя свойства и методы одного объекта, и абсолютно независимо от оригинального источника данных.