Материал: Разработка программных средств для актуализации структур баз данных при расчётах и оптимизации трубопроводных систем

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

2.1    Общая характеристика современной теории баз данных


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

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

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

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

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

2.1.1 Реляционные СУБД

Реляционные СУБД основаны на реляционной модели, которая бала разработанная Э.Коддом в 1970 году. Реляционная модель позволяет представлять информацию в виде набора двумерных таблиц, связанных между собой посредством совместно используемых полей данных, называемых ключами. Реляционные базы данных предоставляют более простой доступ к данным и обеспечивают повышенную надежность и целостность благодаря отсутствию избыточной информации [16].

Реляционная модель опирается на систему понятий, важнейшими из которых являются отношение, кортеж, атрибут, первичный ключ, внешний ключ [18].

Отношение двумерная таблица специального вида, обладающая следующими свойствами:

• все значения атрибутов атомарны;

• отсутствуют одинаковые строки;

• столбцам однозначно присвоены имена;

• все значения каждого столбца однородные;

• все строки и столбцы могут просматриваться в любом порядке и любой последовательности безотносительно к их информационному содержанию и смыслу [17].

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

Первичный ключ - уникальный идентификатор кортежей в таблице. Это может быть комбинация одного или нескольких столбцов.

Внешний ключ используется для ссылки на кортежи другого отношения, содержащие соответствующие значения первичного ключа [19].

Реляционная модель данных, содержащая набор четких предписаний к базовой организации любой реляционной СУБД, позволяет пользователям производить выборки информации из БД, указав только список интересующих таблиц и те условия, которым должны удовлетворять выбираемые данные. СУБД скрывает от пользователя выполняемые ею последовательные просмотры таблиц, выполняя их наиболее эффективным образом. Очень важная особенность реляционных СУБД состоит в том, что результатом выполнения любого запроса к таблицам БД является также таблица, которую можно сохранить в БД, а также по отношению к которой можно выполнять новые запросы [16].

Базовым требованием к реляционным СУБД является наличие мощного и в тоже время простого языка SQL (Structured Query Language), позволяющего выполнять все необходимые пользователям операции. К достоинствам языка SQL - относится наличие международных стандартов. Эти стандарты полностью поддерживаются практически во всех современных коммерческих реляционных СУБД.

.1.2   Объектно-ориентированные СУБД

Разработка систем объектно-ориентированных баз данных началась в середине 80-х годов в связи с необходимостью удовлетворения требований приложений, отличных от тех, которые обслуживаются системами реляционных баз данных [16].

Любая сущность реального мира в объектно-ориентированной модели моделируется в виде объекта. Любой объект при своем создании получает генерируемый системой уникальный идентификатор, который связан с объектом во все время его существования и не меняется при изменении состояния объекта.

Каждый объект характеризуется состоянием и поведением. Состояние объекта - набор значений его атрибутов. Поведение объекта - набор методов (программный код), оперирующих состоянием объекта. Значение атрибута объекта - это тоже некоторый объект или множество объектов. Взаимодействие между объектами производится на основе передачи сообщений и выполнении соответствующих методов.

Множество объектов с одним и тем же набором атрибутов и методов образует класс объектов. Класс, объекты которого могут служить значениями атрибутов объектов другого класса, называется доменом этого атрибута. Допускается порождение нового класса на основе уже существующего класса - наследование. В этом случае новый класс, называемый подклассом существующего класса (суперкласса), наследует все атрибуты и методы суперкласса. В подклассе, кроме того, могут быть определены дополнительные атрибуты и методы. Различаются случаи простого и множественного наследования. В первом случае подкласс может определяться только на основе одного суперкласса, во втором случае суперклассов может быть несколько. Если в системе поддерживается единичное наследование классов, набор классов образует древовидную иерархию. При поддержании множественного наследования классы связаны в ориентированный граф [20].

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

2.1.3 Объектно-реляционные СУБД

Реляционные СУБД, в отличие от объектно-ориентированных СУБД, имеют реально работающие стандарты - стандарты на язык запросов SQL. Кроме того, существует огромная база заказчиков, которые пока не готовы отказаться от реляционной технологии. Поэтому производители реляционных СУБД пошли по пути внедрения объектной технологии в отработанную и популярную технологию реляционных СУБД. Эта модель является частью последнего стандарта SQL, называемого SQL-99 (или SQL:1999, а также SQL3), и представляет собой вариант расширения обычной реляционной модели за счет формализации многих общепринятых концепций объектно-ориентированного проектирования. Указанный стандарт служит основой для построения объектно-реляционных систем баз данных [16].

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

• инкапсуляцию (сокрытие деталей реализации внутри типа);

• полиморфизм (применимость одной операции к разным типам и разный способ вычисления в зависимости от типа);

• позднее связывание (определение реального типа объекта в момент исполнения);

• расширяемость (возможность определить новый тип);

• наследуемость типов (возможность определить новый тип на основе существующего);

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

Итак, объектно-реляционный подход представляет собой расширение классических реляционных СУБД, базирующихся на языке SQL. Язык SQL и, соответственно, реляционная модель, расширяются возможностью вводить абстрактные типы данных и организовывать иерархию типов и данных. Следовательно, обеспечиваются все требования, ассоциируемые с объектно-ориентированной технологией, но при этом обеспечивается совместимость со старыми приложениями, инструментами и технологиями.

2.2    Существующие технологии

2.2.1 Генерации SQL скрипта структуры БД

Программа (или script) на языке SQL представляет собой простой текстовый файл. Написанный SQL-скрипт запускаем через WI_SQL (IB_SQL). Преимущество SQL скрипта не только в его простоте. Во-первых, что все действия фиксируются, как в нормальной программе, второе - WI_SQL записывает в отчет ошибки выполнения SQL команд. И в-третьих, пока проект находится на стадии идеи, не требуется разработка каких-либо дополнительных средств.

Рисунок 6 Структура БД

Для того чтобы запустить программу с сервером MSSQL необходимо уже иметь настроенный MSSQL и базу данных.

В этой базе данных запустить следующий SQL script (рис.6):

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_A_Detail_A_Master]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)TABLE [dbo].[A_Detail] DROP CONSTRAINT FK_A_Detail_A_Masterexists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_A_Master_A_MasterName]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)TABLE [dbo].[A_Master] DROP CONSTRAINT FK_A_Master_A_MasterNameexists (select * from dbo.sysobjects where id = object_id(N'[dbo].[A_Detail]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)table [dbo].[A_Detail]exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[A_Master]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)table [dbo].[A_Master]exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[A_MasterName]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)table [dbo].[A_MasterName]TABLE [dbo].[A_Detail] (

[A_Detail_ID] [int] IDENTITY (1, 1) NOT NULL ,

[A_Master_ID] [int] NOT NULL ,

[A_DetailData] [varchar] (50) COLLATE Cyrillic_General_CI_AI NOT NULL ,

[A_DetailSM] [float] NOT NULL

) ON [PRIMARY]TABLE [dbo].[A_Master] (

[A_Master_ID] [int] IDENTITY (1, 1) NOT NULL ,

[A_MasterCod] [varchar] (20) COLLATE Cyrillic_General_CI_AI NOT NULL ,

[A_MasterName_ID] [int] NOT NULL ,

[A_MasterName_ID1] [int] NOT NULL,

[Perc] [float] NOT NULL

) ON [PRIMARY]TABLE [dbo].[A_MasterName] (

[A_MasterName_ID] [int] IDENTITY (1, 1) NOT NULL ,

[A_MasterName] [varchar] (50) COLLATE Cyrillic_General_CI_AI NOT NULL

) ON [PRIMARY]TABLE [dbo].[A_Master] WITH NOCHECK ADD[PK_A_Master] PRIMARY KEY CLUSTERED

(

[A_Master_ID]

) ON [PRIMARY]TABLE [dbo].[A_MasterName] WITH NOCHECK ADD[PK_A_MasterName] PRIMARY KEY CLUSTERED

(

[A_MasterName_ID]

) ON [PRIMARY]TABLE [dbo].[A_Master] WITH NOCHECK ADD[IX_A_Master] UNIQUE NONCLUSTERED

(

[A_MasterCod]

) ON [PRIMARY]TABLE [dbo].[A_MasterName] WITH NOCHECK ADD[IX_A_MasterName] UNIQUE NONCLUSTERED

(

[A_MasterName]

) ON [PRIMARY]TABLE [dbo].[A_Detail] ADD[FK_A_Detail_A_Master] FOREIGN KEY

(

[A_Master_ID]

) REFERENCES [dbo].[A_Master] (

[A_Master_ID]

)TABLE [dbo].[A_Master] ADD[FK_A_Master_A_MasterName] FOREIGN KEY

(

[A_MasterName_ID]

) REFERENCES [dbo].[A_MasterName] (

[A_MasterName_ID]

)TABLE [dbo].[A_Master] ADD[FK_A_Master_A_MasterName1] FOREIGN KEY

(

[A_MasterName_ID1]

) REFERENCES [dbo].[A_MasterName] (

[A_MasterName_ID]

)

GO

Приведённый SQL скрипт позволяет создать структуру базы данных с таблицами, полями, ключами. Создание связей и создание таблиц. Можно видеть, что данные в одной таблице являются ключами в другой таблице.

2.2.2 Microsoft SQL Server 2005

Microsoft SQL Server 2005- это законченное решение для управления и анализа данных, позволяющее оперативно развертывать масштабируемые Web-приложения нового поколения. SQL Server 2005 - ключевой компонент поддержки электронной коммерции, интерактивных деловых приложений и хранилищ данных, обеспечивающий масштабируемость, необходимую для поддержки развивающихся, динамических сред. В SQL Server 2005 предусмотрена широчайшая поддержка ХМL (Extensible Markup Language) и других форматов, функций производительности и доступности, гарантирующих своевременное решение поставленных задач, а также развитой функциональности управления и настройки, позволяющей автоматизировать выполнение рутинных задач и снизить совокупную стоимость владения. Кроме того, SQL Server 2005 в полном объеме использует преимущества Windows 2000, а так же поддерживает до 32 процессоров и до 64 гигабайт (Гб) оперативной памяти. SQL Server 2005 - это реляционная СУБД, которая использует язык Transact SQL для пересылки сообщений между компьютером клиента и компьютером, на котором работает SQL Server 2005 [26].

В состав SQL Server 2005 входит множество инструментов и функций, упрощающих процесс установки, развертывания, управления и использования баз данных. SQL Server 2005 предоставляет администраторам баз данных полный набор инструментов, необходимых для тонкой настройки SQL Server 2005 в составе промышленных онлайновых систем. SQL Server 2005 также эффективно работает в небольших однопользовательских системах, при этом издержки на администрирование минимальны. Установка или обновление SQL Server 2005 происходит под управлением приложения, которое направляет действия пользователя при вводе сведений, необходимых программе установки. Программа установки автоматически определяет наличие ранней версии SQL Server. После завершения установки можно запустить мастер обновления (SQL Server 2005 Upgrade wizard), под руководством которого будет быстро выполнен процесс обновления. Таким образом, весь процесс установки или обновления завершается быстро, причем пользователю приходится вводить минимум информации [27].

Механизм баз данных SQL Server 2005 представляет собой надежный сервер, способный управлять базами данных терабайтного объема, к которым одновременно обращаются тысячи пользователей. В то же время при работе с параметрами по умолчанию SQL Server 2005 поддерживает такие функции, как динамическая самонастройка. SQL Server 2005 автоматически и динамически меняет свою конфигурацию в процессе работы. По мере роста числа пользователей, подключенных к SQL Server 2005, он может динамически выделять необходимые ресурсы, например память. При снижении загруженности SQL Server 2005 освобождает ресурсы и возвращает их системе. Если на сервере одновременно запускаются другие приложения, SQL Server 2005 обнаружит выделение для них дополнительной виртуальной памяти и уменьшит объем используемой им виртуальной памяти, чтобы снизить издержки на подкачку страниц. SQL Server 2005 также способен автоматически увеличивать или уменьшать размер базы данных по мере добавления или удаления информации. Некоторые функции SQL Server 2005 увеличивают масштабируемость системы. Например, SQL Server 2005 динамически регулирует степень дробления блокировок для каждой таблицы, на которую ссылается запрос, в него также входит оптимизированная поддержка высокоскоростных операций для больших объемов данных. Кроме того, SQL Server 2005 способен планировать параллельное исполнение, при котором обработка оператора SQL разделяется на несколько частей. Каждая часть может быть выполнена на отдельном процессоре, в этом случае формирование полного результирующего набора осуществляется быстрее, чем в том случае, когда отдельные части операторов выполняются последовательно [26, 28].

Доступны различные редакции SQL Server 2005, способные удовлетворить самые разные требования заказчиков (организаций и отдельных лиц) к производительности, исполняющей среде и стоимости [28].

Enterprise Edition. Эта редакция - полный вариант SQL Server, наиболее часто предлагаемый организациям. Enterprise Edition отличается развитыми возможностями масштабируемости и надежности, необходимыми для решения важных задач интерактивного ведения бизнеса и Интернет-приложений. Эта редакция в полном объеме использует преимущества наиболее совершенного аппаратного обеспечения, поддерживая до 32 процессоров и 64 Гб ОЗУ. Кроме того, SQL Server 2005 Enterprise Edition включает дополнительные функции анализа.