Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Система управления базами данных
На сегодняшний день компьютер занял прочную позицию в нашей повседневной жизни. Современный человек на сегодняшний день не представляет себе ни одно предприятие без компьютеризации и автоматизации процесса. С помощью компьютера можно управлять большими потоками данных и создавать масштабные базы данных. База данных — совокупность данных или сведений относящихся к определенной теме или задаче, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных [2]. Базы данных делят на три основных типа: - табличные (реляционные); - сетевые; - иерархические. Наиболее распространенными в практике являются реляционные базы данных. Реляционная база данных представляет собой множество взаимосвязанных таблиц, каждая из которых содержит информацию об объектах определенного типа. Каждая строка таблицы включает данные об одном объекте, а столбцы таблицы содержат различные характеристики этих объектов — атрибуты. Строки таблицы называются записями; все записи имеют одинаковую структуру — они состоят из полей, в которых хранятся атрибуты объекта. Каждое поле записи содержит одну характеристику объекта и имеет строго определенный тип данных. Все записи имеют одни и те же поля, только в них содержатся разные значения атрибутов [2]. Реляционные базы данных удобны тем, что для получения ответов на различные запросы существует разработанный математический аппарат, который называется исчислением отношений или реляционной алгеброй [2]. Иерархическая модель данных это сбой совокупность элементов, связанных между собой по определенным правилам. Иерархическая модель данных строится по принципу иерархии типов объектов, то есть один тип объекта является главным, а остальные, находящиеся на низших уровнях иерархии - подчиненными [2]. Между главным и подчиненными объектами устанавливается взаимосвязь «один ко многим». Иными словами, для данного главного типа объекта существует несколько подчиненных типов объектов. В то же время для каждого экземпляра главного объекта может быть несколько экземпляров подчиненных типов объектов [6]. Узлы и ветви образуют иерархическую древовидную структуру. Узел является совокупностью атрибутов, описывающих объект. Наивысший в иерархии узел называется корневым (это главный тип объекта). Корневой узел находится на первом уровне. Зависимые узлы (подчиненные типы объектов) находятся на втором, третьем и др. уровнях [2]. К достоинства иерархической модели данных можно отнести: - эффективное использование памяти и неплохие показатели временных затрат на выполнение операций; - пригодны для формирования БД с теми данными, которые сами по себе имеют иерархическую структуру. Соответственно возможностям организации реляционных, иерархических и сетевых информационных структур, существуют и аналогичные виды баз данных. В них данные представлены в формах, адекватных соответствующим структурам [6]. Однако иерархические и сетевые базы данных являются гораздо менее распространенными, чем реляционные и не могут быть реализованы с помощью наиболее популярных СУБД, входящих в состав программного обеспечения ЭВМ [5]. Для работы с данными используются системы управления базами данных. Основные функции СУБД — это определение данных, обработка данных и управление данными [2]. Предметная область - часть реального мира, подлежащая изучению с целью организации управления и автоматизации. Предметная область представляется множеством фрагментов. Каждый фрагмент предметной области характеризуется множеством объектов и процессов, использующих объекты, а также множеством пользователей, характеризуемых различными взглядами на предметную область [8]. Атрибут – это свойство объекта, его характеристика. Для баз данных атрибутом является поле – элемент данных в кортеже [1]. Сущность – это совокупность объектов, обладающих одинаковым набором свойств (атрибутов) [2]. Данные – это формализованное представление информации, на каком-либо носителе, доступное для обработки и обмена между людьми [3]. Система управления базами данных (СУБД) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных [1]. Основные функций СУБД: 1 управление данными во внешней памяти (на дисках); 2 управление данными в оперативной памяти с использованием дискового кэша; 3 журнализация изменений, резервное копирование и восстановление базы данных после сбоев; 4 поддержка языков БД (язык определения данных, язык манипулирования данными) [2]. Обычно современная СУБД содержит следующие компоненты: - ядро, которое отвечает за управление данными во внешней и оперативной памяти и журнализацию; - процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода; - подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД, а также сервисные программы (внешние утилиты), обеспечивающие ряд дополнительных возможностей по обслуживанию информационной системы [2]. Первоначально СУБД применялись только в крупных организациях с мощной аппаратной поддержкой, необходимой для работы с большими объемами данных [2]. Первые СУБД были очень большими и дорогими системами работающими только на мощных компьютерах. Это все следует из того, что для хранения большого объема данных нужды были компьютерные системы [2]. На сегодняшний день с разработкой современных компьютеров с большим объемом памяти все информация помещается в на одном диске, и этого достаточно чтобы работать с базой данных на компьютере [1]. Индекс - объект базы данных, создаваемый с целью повышения производительности поиска данных. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в произвольном порядке, и их поиск по заданному критерию путем последовательного просмотра таблицы строка за строкой может занимать много времени [7]. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет искать строки, удовлетворяющие критерию поиска. Ускорение работы с использованием индексов достигается в первую очередь за счёт того, что индекс имеет структуру, оптимизированную под поиск — например, сбалансированного дерева [3]. Некоторые СУБД расширяют возможности индексов введением возможности создания индексов по столбцам представлений или индексов по выражениям. Кроме того, индексы могут быть объявлены как уникальные и как не уникальные. Уникальный индекс реализует ограничение целостности на таблице, исключая возможность вставки повторяющихся значений [2]. Запросы - важнейший инструмент для извлечения информации из одной или нескольких таблиц БД. С помощью запроса можно вносить изменения в саму базу данных. Запрос может служить источником данных для форм, отчетов и страниц доступа к данным. Запрос позволяет решать многие задачи не прибегая к программированию [7]. По способу организации взаимодействия с базой данных через сеть, СУБД делятся на: - СУБД с централизованной архитектурой; - СУБД с архитектурой файл-сервер; - СУБД с архитектурой клиент-сервер; - СУБД с трехуровневой архитектурой: «тонкий клиент» - сервер приложений – сервер базы данных [2]. В СУБД с централизованной архитектурой, СУБД и сама база данных размещается и функционирует на центральном миникомпьютере, а пользователи получают доступ к базе данных при помощи обычных терминалов – компьютер рассматривается просто как устройство ввода и отображения информации: на мэйнфрейм передаются нажатия клавиш, в обратном направлении передаются данные, отображаемые непосредственно на мониторе пользователя [7]. В СУБД с архитектурой файл-сервер база данных хранится на сервере, а копии СУБД устанавливаются на компьютерах пользователей. Файл базы данных находящийся на сервере, совместно используется всеми пользователями одновременно, при помощи сетевого программного обеспечения и самой операционной системы. Ярким примером такой архитектуры является СУБД MS Access: копии СУБД установлены на компьютере каждого пользователя, а сам файл базы данных находится на сервере в сетевой папке [8]. Архитектура файл-сервер позволяет добиться приемлемой производительности, т.к. в распоряжении каждой копии СУБД находятся все ресурсы компьютера пользователя. С другой стороны, производительность такой схемы для каждого пользователя, напрямую зависит от характеристик компьютера пользователя. Кроме того, такая схема работы значительно загружает сеть [17]. При архитектуре клиент-сервер база данных хранится на сервере, а СУБД подразделяется на две части: клиентскую и серверную. Клиентская часть СУБД выполняется на стороне клиента и обеспечивает интерактивное взаимодействие с пользователем и формирование запросов к базе данных (на языке SQL) [2]. Большинство современных СУБД реализованы по архитектуре клиент-сервер: Oracle, MS SQL Server, PostgreSQL, MySQL, Informix, DB2 и др. Однако и архитектура клиент-сервер не лишена недостатков. Если деловая логика взаимодействия с базой данных (логика, определяющая порядок работы предприятия: какие таблицы и в каком порядке заполнять, что делать при добавлении нового сотрудника и т.д.) изменяется, то приходится заново переписывать клиентские программы (водить новые формы, менять порядок их заполнения и т.д.) [19]. Если изменения происходят слишком часто, а количество рабочих мест велико, то постоянная переустановка программного обеспечения становится серьезной проблемой [7]. В таких случаях следует переходить к трехуровневой архитектуре: «тонкий клиент» - сервер приложений – сервер базы данных. При трехуровневой архитектуре в функции клиентской части («тонкий клиент») входит только интерактивное взаимодействие с пользователем, а вся деловая логика вынесена на сервер приложений, который собственно и обеспечивает формирование запросов к базе данных, передаваемых на выполнение серверу базы данных [9]. «Тонкий клиент» находится на компьютере пользователя и чаще всего представляет собой Web-браузер (например, Internet Explorer) с применением соответствующей HTML-странице апплетов Java или компонентов ActiveX. Сервер приложений находится на сервере и может являться специализированной программой или обычным Web-сервером, вызывающим для обработки HTTP-запроса внешнюю программу через интерфейс CGI [2]. Система управления базами данных обладают как преимуществами по сравнению с файловыми системами, так и недостатками. Преимущества: - Контроль за избыточностью данных. Попытки освободить избыточное количество занимаемого место что бы не хранить несколько копий одного и того же элемента; - Непротиворечивость данных. Сократить риск противоречивых состояний. Если элемент информации хранится в базе данных в нескольких экземплярах, то система в свою очередь следит за тем чтобы копии не противоречили друг другу [2]; - Больше полезной информации при том же объеме хранимых данных; - Совместное использование данных. База данных принадлежит группам пользователей которым предоставлен доступ. Это упрощает обработку информации которой теперь может заниматься не один человек, а группа пользователей которые в свою очередь могут работать с большим количеством информации [10]; - Поддержка целостности данных. Корректность и непротиворечивость хранимой в базе данных информации; - Повышенная безопасность. Защита данных от несанкционированного доступа со стороны пользователей и посторонних лиц. В целях защиты данных система обеспечения безопасности может быть выражена в форме учетных имен и паролей для идентификации пользователей, которые зарегистрированы в этой базе данных; - Применение стандартов. Интеграция позволяет администратору баз данных определять и применять необходимые стандарты; - Повышение эффективности с ростом масштабов системы [2]; - Возможность нахождения компромисса для противоречивых требований. Потребности одних пользователей могут противоречить потребностям других пользователей. База данных контролируется администратором который принимает взвешенное решение о наилучшем использование базы данных в зависимости от определенной ситуации; - Повышение доступности данных и их готовности к работе. Данные в результате интеграции становятся непосредственно доступными конечным пользователям; - Улучшение показателей производительности. На базовом уровне СУБД обеспечивает все низкоуровневые процедуры работы с файлами, которую обычно выполняют приложения. Этот факт позволяет программисту сконцентрироваться на разработке более специальных, необходимых пользователям функций; - Упрощение сопровождения системы за счет независимости от данных. В СУБД описания сведений отделены от приложений, а потому приложения защищены от изменений; - Улучшенное управление параллельностью. Предусмотрена возможность параллельного доступа к данным. Это очень помогает при одновременном доступе к одному и тому же файлу нескольких пользователей; - Развитые службы резервного копирования и восстановления. В современных СУБД предусмотрены средства сокращения объема потерь информации от возникновения различных сбоев и несанкционированного доступа посторонних лиц[2]. Недостатки: - Сложность. Функционал СУБД сопровождается ее значительным усложнением. Каждый разработчик СУБД должен понимать принцип работы системы. - Размер программного обеспечения. СУБД занимает много места на диске и требовать большого объема оперативной памяти для эффективного функционирования; - Стоимость СУБД. Стоимость СУБД может варьироваться в очень широких пределах; - Дополнительные затраты на аппаратное обеспечение. Для нормальной работы СУБД может потребоваться приобрести дополнительные устройства хранения информации; - Затраты на преобразование приложений. Затраты на приобретение существующих приложений и обучение персонала; - Более серьезные последствия при выходе системы из строя. Выход из строя одного из ее компонентов СУБД может привести к полному или частичному прекращению работы предприятия [10];
|