Исследование систем управления базами данных

введение 

      Актуальность  данной темы заключается в том, что  развитие средств вычислительной техники  обеспечило для создания и широкого использования систем обработки  данных разнообразного назначения. Разрабатываются  информационные системы для обслуживания различных систем деятельности, систем управления хозяйственными и техническими объектами, модельные комплексы для научных исследований, системы автоматизации проектирования и производства, всевозможные тренажеры и обучающие системы. Одной из важных предпосылок создания таких систем стала возможность оснащения их «памятью» для накопления, хранения и систематизация больших объемов данных. Другой существенной предпосылкой нужно признать разработку подходов, а также создание программных и технических средств конструирования систем, предназначенных для коллективного пользования. В этой связи потребовалось разработать специальные методы и механизмы управления  такого рода совместно используемыми ресурсами данных, которые стали называться базами данных. Исследования и разработки, связанные с проектированием, созданием и эксплуатации баз данных, а также необходимых для этих целей  языковых и программных инструментальных средств привели к появлению самостоятельной ветви информатики, получившей название системы управления данными.

      Объектом  данной курсовой работы является системы  управления базами данных.

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

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

      - охарактеризовать теоретические основы СУБД;

      - раскрыть структуру, функции и  классификацию систем управления  базами данных;

      - исследовать средства быстрой разработки баз данных;

        - сделать выводы и предложения по выполненной работе.

    Курсовая  работа состоит из трех глав.

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

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

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

      Основой для написания теоретической  базы послужили труды таких авторов  как, Афанасьев В.Н., Диго С.М., Козырев А.А.и другие.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Глава 1. Теоретические основы системы управления базами данных 

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

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

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

    1. одну или несколько баз данных;
    2. систему управления базами данных (СУБД);
    3. персонал, обеспечивающий работу банка данных.

     База  данных – это совокупность определенным образом организованных данных, хранящихся в запоминающих устройствах ЭВМ. Обычно данные хранятся на жестком диске сервера организации[2].

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

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

     Под понятием разделимости данных подразумевается возможность использования несколькими различными пользователями отдельных элементов, хранимых в базе данных. Имеется в виду, что каждый из пользователей сможет получить доступ к одним и тем же данным, возможно, даже одновременно (параллельный доступ). Такое разделение данных, с параллельным или последовательным доступом, частично является следствием того факта, что база данных имеет интегрированную структуру.

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

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

      1) каждый элемент таблицы — один элемент данных;

      2)все ячейки в столбце таблицы однородные, то есть все элементы в столбце имеют одинаковый тип (числовой, символьный и т. д.);

      3) каждый столбец имеет уникальное имя;

      4) одинаковые строки в таблице отсутствуют;

      5) порядок следования строк и столбцов может быть произвольным.

     Такая модель хранения данных обеспечивает удобство использования базы данных на ЭВМ. Учитывая, что таблицы базы данных могут быть связаны определенными отношениями, такая модель обеспечивает целостность данных и отсутствие избыточности хранения. Поэтому она и используется в большинстве современных баз данных.

     Система управления базами данных (СУБД) — специализированная программа или комплекс программ, предназначенная для организации и ведения базы данных. Она обеспечивает хранение данных и взаимодействие пользователя с БД, позволяя пользователям производить поиск, сортировку и выборку информации в базе данных, а некоторым пользователям - добавлять, удалять и изменять записи в БД[4].

     В зависимости от того, с какой базой  данных работает СУБД, она может  быть:

    1. иерархической
    2. сетевой
    3. реляционной
    4. объектно-реляционной
    5. объектно-ориентированной

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

 

1.2 Структура  и функции системы управления  базами данных 

     Системы управления базами данных обычно содержит следующие компоненты:

  1. ядро, которое отвечает за управление данными во внешней и оперативной памяти,
  2. процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода,
  3. подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД
  4. сервисные программы (внешние утилиты), обеспечивающие ряд дополнительных возможностей по обслуживанию информационной системы[5].

В связи с этим можно сформулировать основные функции СУБД:

     1. Определение данных.

     СУБД  должна предоставлять средства определения  данных в виде исходной формы (схемы  данных) и преобразования этих определений  в соответствующую объектную  форму. То есть СУБД преобразовывает  данные в форму, необходимую для  хранения их в базе данных.

     2. Манипулирование данными.

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

     3. Управление хранением данных  и доступом к ним.

     СУБД  осуществляет программную поддержку  хранения данных в запоминающем устройстве ЭВМ и управляет всеми действиями, производимыми с данными.

     4. Защита и поддержка целостности данных

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

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

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

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

     По степени универсальности различают два класса СУБД:

     1) системы общего назначения;

     2) специализированные системы.

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

 
    1. Классификация СУБД по способу доступа к базе данных

     По способу доступа к базам данных системы управления ими подразделяются на три типа[7]:

  1. Файл-серверные

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

     На  данный момент файл-серверные СУБД считаются устаревшими. Они могут применяться для обучения работе с базами данных или для хранения информации в небольших информационных системах. Например: Microsoft Access, Paradox, dBase.

  1. Клиент-серверные

     Такие СУБД состоят из клиентской части  и сервера. Клиент-серверные СУБД, в отличие от файл-серверных, обеспечивают разграничение доступа между пользователями и мало загружают сеть и клиентские машины. Сервер является внешней по отношению к клиенту программой, и по надобности его можно заменить другим. Недостаток клиент-серверных СУБД в самом факте существования сервера (что плохо для локальных программ — в них удобнее встраиваемые СУБД) и больших вычислительных ресурсах, потребляемых сервером.

     Клиент-серверные  СУБД предоставляют больше возможностей для профессиональной работы с данными, поэтому они чаще всего используются в крупных предприятиях и организациях. Они больше всего подходят к крупным информационным системам с одним или несколькими серверами, обладающими большой производительностью. Даже в случае большого количества пользователей, работающих с ними, они не очень сильно загружают сеть. Например: Firebird, Interbase, IBM DB2, MS SQL Server, Sybase, Oracle, PostgreSQL, MySQL, ЛИНТЕР.

  1. Встраиваемые

     Встраиваемая  СУБД — библиотека, которая позволяет унифицированным образом хранить большие объёмы данных на локальной машине. Доступ к данным может происходить через SQL либо через особые функции СУБД. Встраиваемые СУБД быстрее обычных клиент-серверных и не требуют установки сервера, поэтому востребованы в локальном ПО, которое имеет дело с большими объёмами данных (например, геоинформационные системы). Например: OpenEdge, SQLite, BerkeleyDB, один из вариантов Firebird, один из вариантов MySQL, Sav Zigzag, Microsoft SQL Server Compact, ЛИНТЕР.

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

Глава 2. Типы систем управления базами данных 

2.1 Иерархические и сетевые системы управления базами данных 

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

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

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

    Насколько запутанной являются схемы представления иерархических и сетевых баз данных, настолько и трудоемким является проектирование конкретных прикладных систем на их основе. Как показывает, опыт длительные сроки разработки прикладных систем нередко приводят к тому, что они постоянно находятся в стадии разработки и доработки[9].

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

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

    Для описания такой логической организации  данных ЯОД достаточно предусматривать для каждого сегмента данных только идентификацию входного для него сегмента. Так как в иерархической модели каждому входному сегменту данных соответствует N выходных, то такие модели весьма удобны для представления отношений типа 1:N в предметной области. Следует отметить, что в настоящее время не разрабатываются СУБД, поддерживающие на концептуальном уровне только иерархические модели. Как правило, использующие иерархический подход системы допускают связывание древовидных структур между собой и/или установление связей внутри них. Это приводит к сетевым даталогическим моделям СУБД. К основным недостаткам иерархических моделей следует отнести: неэффективность реализации отношений типа N:N, медленный доступ к сегментам данных нижних уровней иерархии, четкая ориентация на определенные типы запросов и др. В связи с этими недостатками ранее созданные иерархические СУБД подвергаются существенным модификациям, позволяющим поддерживать более сложные типы структур и, в первую очередь, сетевые и их модификации. Сетевая даталогическая модель СУБД во многом подобна иерархической: если в иерархической модели для каждого сегмента записи допускается только один входной сегмент при N выходных, то в сетевой модели для сегментов допускается несколько входных сегментов наряду с возможностью наличия сегментов без входов с точки зрения иерархической структуры.

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

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

2.2 Реляционные системы управления базами данных 

    Реляционный подход стал широко известен благодаря  первым работам Е.Кодда, которые  появились около 1970г. В течение  долгого времени реляционный  подход рассматривался как удобный  формальный аппарат анализа баз данных, не имеющий практических перспектив, так как его реализация требовала слишком больших машинных ресурсов. Только с появлением персональных ЭВМ реляционные и близкие к ним системы неожиданно стали распространяться, практически не оставив места другим моделям. Один из самых естественных способов представления данных для пользователей - это двумерная таблица. Она привычна для пользователя, понятна и обозрима, ее легко запомнить. Поскольку любая сетевая структура может быть разложена в совокупность древовидных структур, то и любое представление данных может быть сведено к двумерным плоским файлам. Связи между данными могут быть представлены в форме двумерных таблиц [10].

    Таблица обладает следующими свойствами:

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

    - все столбцы в таблице однородные. Это означает, что элементы столбца имеют одинаковую природу.

    - столбцам присвоены уникальные имена.

    - в таблице нет двух одинаковых строк.

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

    Чем же принципиально отличаются реляционные  модели от сетевых и иерархических? Вкратце на это можно ответить следующим образом: иерархические и сетевые модели данных - имеют связь по структуре, а реляционные - имеют связь по значению. Проектирование баз данных традиционно считалось очень трудной задачей. Реляционная технология значительно упрощает эту задачу в трех различных направлениях:

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

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

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

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

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

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

3.1 Microsoft Access как интерактивная реляционная система управления базами данных 

      Microsoft Access - это интерактивная реляционная СУБД  для WINDOWS. Это программа, которую вы можете использовать для хранения и извлечения данных в зависимости от отношений, которые вы установили. Работа с ней упрощена посредством манипулятора мыши. Графические возможности оболочки производят большое впечатление при изготовлении высококачественных отчетов и распечаток. Все это благодаря поддержки True-type шрифтов и встраивания OLE-объектов в рамках среды WINDOWS. Новинкой программы Access является Cue Cards - Система суфлирования. Это обучающая система, предоставляющая пользователю рекомендации по выходу из реальных ситуаций при решении прикладных задач. При знании английского языка пользователь всегда сможет получить подсказку о том, что следует делать далее[13].

      Access также предоставляет в распоряжение пользователя механизмы работы с базами данных различных форматов. К примеру, можно прямо обращаться к базам данных dBASE, Paradox или Btrieve без конвертирования их в формат, используемый Access. В состав пакета Access также входит язык Access Basic (встроенный диалект языка Visual Basic), дающий возможность формирования специализированных систем управления базами данных.

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

      Активизируйте окно Microsoft Access и выберите в меню File директиву New Database (или щелкните кнопкой New Database в строке пиктограмм). Microsoft Access высвечивает диалоговое окно New Database и автоматически дает имя вашей базе данных, которое вы можете заменить.

      В строке File Name, напечатайте ваш вариант  имени базы данных. Оно может содержать до 8 символов без пробелов. Microsoft Access автоматически добавляет расширение. MDB к имени вашей базы данных, если Вы этого не сделали.

      Если  вы хотите хранить базу данных в  определенном месте, выберите соответствующую  директорию в списке директорий Directories list.

Исследование систем управления базами данных