Воскресенье , 5 апреля 2020
Главная / Студентам / ОПБД / Лекция 1. Основные понятия теории баз данных

Лекция 1. Основные понятия теории баз данных

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

Информационные системы имеют следующие особенности: 

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

Другими словами, информационная система требует создания в памяти ЭВМ  динамически обновляемой  модели внешнего мира с использованием единого хранилища - базы данных (БД).  

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

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

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

Основные функции СУБД: 

  • управление данными во внешней памяти (на дисках); 
  • управление данными в оперативной памяти; 
  • журнализация изменений и восстановление базы данных после сбоев; 
  • поддержание языков БД (язык определения данных, язык манипулирования данными). 

История возникновения БД 

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

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

Вторая область — это использование средств вычислительной техники в автоматических или автоматизированных информационных системах.  

Информационная система представляет собой программно-аппаратный комплекс, обеспечивающий выполнение следующих функций: 

  1. надежное хранение информации в памяти компьютера; 
  2. выполнение специфических для данного приложения преобразований информации и вычислений; 
  3. предоставление пользователям удобного и легко осваиваемого интерфейса. 

Обычно такие системы имеют дело с большими объемами информации, имеющей достаточно сложную структуру.  

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

Пользователи видят файл как линейную последовательность записей и могут выполнить над ним ряд стандартных операций: 

  • создать файл (требуемого типа и размера); 
  • открыть ранее созданный файл; 
  • прочитать из файла некоторую запись (текущую, следующую, предыдущую, первую, последнюю); 
  • записать в файл на место текущей записи новую, добавить новую запись в конец файла. 

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

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

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

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

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

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

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

История развития БД 

Концепция БД сложилась в конце 60-х годов прошлого столетия и с тех пор постоянно развивалась.  

Первый этап сложился к началу 60-х годов прошлого века и характеризуется следующими признаками: 

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

Второй этап относится к середине 60-х годов и имеет следующие особенности: 

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

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

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

Четвертый этап датируется второй половиной 70-х годов. На этом этапе были реализованы следующие основные характеристики СУБД: 

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

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

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

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

Классификация БД 

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

  1. По форме представления информации: фактографические и документальные. 
  1. По типу используемой модели данных: иерархические, сетевые, реляционные. 
  1. По типологии хранения данных: локальные (централизованные) и распределённые (удалённые) БД. 

Классификация не является полной. Различные источники предоставляют разнообразную классификацию.Разрыв страницы 

Вопросы для самоконтроля: 

  1. Дайте определения понятиям: информационная система, предметная область. 
  2. Что называется базой данных и каково ее место в ИС? 
  3. В чем различие между данными и метаданными? 
  4. Каково назначение систем управления базами данных? 
  5. Для чего используется словарь данных? 
  6. Назовите этапы развития БД. 
  7. Какую роль в развитии технологии БД сыграло появление ПК? 
  8. Каковы функции СУБД?