Базы данных. Системы управления базами данных План лекции 1. Введение в банки данных..............................................................................................................1 1.1. Понятие банка данных...........................................................................................................1 1.2. Компоненты банка данных....................................................................................................1 1.3. Пользователи банков данных.................................................................................................2 Категории пользователей..........................................................................................................2 Функции администратора банка данных................................................................................2 1.4. Классификация банков данных.............................................................................................3 Классификация баз данных......................................................................................................3 Классификация СУБД...............................................................................................................4 2. Модели данных...............................................................................................................................4 2.1. Что такое модель данных.......................................................................................................4 2.2. Взаимосвязи в модели данных..............................................................................................5 2.3. Обзор моделей данных...........................................................................................................5 Иерархическая модель..............................................................................................................5 Сетевая модель данных............................................................................................................7 Реляционная модель данных....................................................................................................7 Постреляционная модель.........................................................................................................9 Объектно-ориентированная модель........................................................................................9 1. Введение в банки данных. 1.1. Понятие банка данных. Банк данных (БнД) является современной формой организации хранения и доступа к информации. Существует много определений банка данных. Мы будем использовать следующее определение: «Банк данных – это система специальным образом организованных данных (баз данных), программных, технических, языковых, организационно–методических средств, предназначенных для обеспечения централизованного накопления и коллективного многоцелевого использования данных». Термин банк данных не является общепризнанным. В литературе встречается также термин система баз данных, близкий по своему содержанию к понятию банка данных. Мы будем использовать термин банк данных. Однако очевидно, что нельзя отождествлять понятия база данных и банк данных. 1.2. Компоненты банка данных БнД является сложной человеко-машинной системой, включающей в свой состав различные взаимосвязанные и взаимозависимые компоненты, а именно: • информационная компонента; • программные средства; • языковые средства; • технические средства; • организационно–методические средства; • администраторы БнД. Ядром БнД является база данных (БД). База данных – это поименованная совокупность взаимосвязанных данных, находящихся под управлением системы управления базой данных (СУБД). Системой управления базой данных называется совокупность языковых и программных средств, облегчающих для пользователей выполнение всех операций, связанных с организацией хранения данных, их корректировки и доступа к ним. В качестве технических средств для БнД используется ЭВМ. Организационно – методические средства представляют собой различные инструкции, методические и регламентирующие материалы, предназначенные для пользователей разных категорий, взаимодействующих с БнД. Функционирование БнД невозможно без администраторов обеспечивающих создание, функционирование и развитие БнД. БнД - специалистов, 1.3. Пользователи банков данных. Категории пользователей. С банком данных в процессе его создания и функционирования взаимодействуют пользователи разных категории. Основной категорией пользователей являются так называемые конечные пользователи, т. е. те пользователи, для нужд которых и создается банк данных. В зависимости от особенностей создаваемого банка данных круг его конечных пользователей может существенно различаться. Это могут быть случайные пользователи, обращающиеся к базе данных время от времени, а могут быть и регулярные пользователи. Конечные пользователи могут отличаться друг от друга и степенью владения вычислительной техникой. От конечных пользователей не должно требоваться каких-то специальных знаний в области вычислительной техники и языковых средств. Администраторы банка данных тоже являются специфическими пользователями БнД. Обычно они обращаются к БнД не за информацией о предметной области, а к метаинформации, а также используют ресурсы БнД для выполнения своих функций. Функции администратора банка данных. В составе группы администраторов банка данных можно выделить различные подгруппы в зависимости от выполняемых ими функций. Численность группы администрации, выполняемые ими функции будут в некоторой степени зависеть от масштаба банка данных, специфики хранимой в нем информации, типа банка данных, особенностей используемых программных средств и некоторых других факторов. В составе администрации БнД должны быть системные аналитики, проектировщики структур данных и внешнего по отношению к банку данных информационного обеспечения, проектировщики технологических процессов обработки данных, системные и прикладные программисты, операторы, специалисты по техническому обслуживанию. Администраторы банка данных выполняют большой круг разнообразных функции. Перечислим основные из этих функций. 1. Анализ предметной области: описание предметной области, выявление ограничений целостности, определение статуса информации, определение потребностей пользователей, определение статуса пользователей и др. 2. Проектирование структуры базы данных: определение состава и структуры файлов базы данных, связей между ними и др. 3. Задание ограничений целостности при описании структуры базы данных и процедур обработки БД. 4. Первоначальная загрузка и ведение базы данных: разработка технологии первоначальной загрузки и ведения (изменения, добавления, удаления записей) БД, проектирование форм ввода, создание программных модулей, подготовка исходных данных, ввод и контроль ввода. 5. Защита данных. 6. Обеспечение восстановления БД: разработка программно-технологических средств восстановления БД, организация ведения системных журналов. 7. Анализ обращений пользователей к БД: сбор статистики обращений пользователей к БД, ее хранение и анализ. 8. Анализ эффективности функционирования БнД и развитие системы. 9. Работа с пользователями: сбор информации об изменениях в предметной области, об оценке пользователями работы БнД, определение регламента работы пользователей с БнД, обучение пользователей, консультирование пользователей. 10. Подготовка и поддержание системных программных средств. 1.4. Классификация банков данных. Банки данных являются сложными системами, и их классификация может быть произведена по разным признакам. Одни из признаков классификации и соответственно классификационные группировки относятся к банку данных в целом, другие — к отдельным его компонентам, третьи могут быть отнесены как к отдельному компоненту, так и к нескольким компонентам или банку в целом. Классификация баз данных. Центральной компонентой банка данных является классификационных признаков относится именно к ней. база данных, и большинство По форме представления информации различают видео- и аудиосистемы, а также системы мультимедиа. Эта классификация в основном показывает, в каком виде информация из баз данных выдается пользователям: в виде изображения, звука или дается возможность использования разных форм отображения информации. Понятие «изображение» здесь используется в широком смысле: это может быть символьный текст, неподвижное графическое изображение (рисунки, чертежи и т. п.), фотографии, географические карты, движущиеся изображения. Пока наибольшее практическое использование находят базы данных, содержащие обычные символьные данные. Эти базы данных, в свою очередь, могут быть разделены на неструктурированные, частично структурированные и структурированные. К неструктурированным БД могут быть отнесены базы, организованные в виде семантических сетей. Частично структурированными можно считать базы данных в виде обычного текста или гипертекстовые системы. По характеру организации хранения данных и обращения к ним различают локальные (персональные), общие (интегрированные) и распределенные базы данных. Базы данных могут классифицироваться по охвату предметной области. Причем эта классификация, в свою очередь, может производиться по разным признакам: по территориальному (всемирный, страна, город или какой-либо иной регион), временному (год, месяц, с начала века и т. п.), ведомственному, проблемному. Рассмотрим классификацию структурированных БД по типу используемой модели. Хранимые в базе данные имеют определенную логическую структуру – иными словами, описываются некоторой моделью представления данных (моделью данных), поддерживаемой СУБД. К числу классических относят следующие модели данных: • иерархическую; • сетевую; • реляционную. Кроме того, в последние годы появились и стали активно внедряться на практике следующие модели данных: • постреляционная; • многомерная; • объектно-ориентированная. Разрабатываются также всевозможные системы, основанные на других моделях данных, расширяющих известные модели. Классификация по типу модели распространяется не только на БД, но и на СУБД и БнД в целом. Классификация СУБД. Рассмотрим теперь ряд классификационных признаков, относящихся к СУБД. По языкам общения СУБД делятся на открытые, замкнутые и смешанные. Открытые системы — это системы, в которых для обращения к базам данных используются универсальные языки программирования. Замкнутые системы имеют собственные языки общения с пользователями БнД. Открытые системы в настоящее время используются редко. По числу уровней в архитектуре различают одноуровневые, двухуровневые, трехуровневые системы. В принципе возможно выделение и большего числа уровней. Под архитектурным уровнем СУБД понимают функциональный компонент, механизмы которого служат для поддержки некоторого уровня абстракции данных (логический и физический уровень, а также «взгляд» пользователя — внешний уровень). По выполняемым функциям СУБД делятся на информационные и операционные. Информационные СУБД позволяют организовать хранение информации и доступ к ней. Для выполнения более сложной обработки необходимо писать специальные программы. Операционные СУБД выполняют достаточно сложную обработку, например, автоматически позволяют получать агрегированные показатели, не хранящиеся непосредственно в базе данных, могут изменять алгоритмы обработки и т. д. 2. Модели данных. Система управления базами данных (СУБД) основывается на использовании определенной модели данных. Модель данных отражает взаимосвязи между объектами. 2.1. Что такое модель данных. Одна из главных функций администрации базы данных состоит в разработке концептуальной модели (или модели предметной области). Компонентами модели являются объекты и их взаимосвязи. Она обеспечивает концептуальное представление данных. Концептуальная модель служит средством общения между различными пользователями и поэтому разрабатывается без учета особенностей физического представления данных. Эта модель используется для выражения, организации, упорядочения и обмена представлениями. Она не зависит от применяемой СУБД. С помощью модели данных могут быть представлены объекты предметной области и взаимосвязи между ними. Современные СУБД основываются на иерархической, сетевой или реляционной модели, на комбинации этих моделей или на их некотором подмножестве. Концептуальную модель (называемую также «моделью предметной области») необходимо отобразить в логическую модель, обеспечиваемую конкретной СУБД, а логическую модель в свою очередь – в физическую. Логическая модель данных может быть либо реляционной, либо иерархической, либо сетевой. Термин «модель данных» мы приводим здесь в обобщенном смысле. В каждом конкретном случае речь может идти о концептуальной, логической или внутренней (физической) модели. 2.2. Взаимосвязи в модели данных. Взаимосвязь выражает отображение или связь между двумя множествами данных. Различают взаимосвязи типа «один к одному», «один ко многим» и «многие ко многим». 1. Если между двумя таблицами существует отношение один-к-одному, то это означает, что каждая запись в одной таблице соответствует только одной записи в другой таблице. 2. Когда объект, описываемый в одной из таблиц, имеет отношение к нескольким записям другой таблицы, возникает отношение «один-ко-многим». Этот тип отношения между таблицами наиболее часто встречается при проектировании структуры баз данных. 3. При отношении между двумя таблицами много-ко-многим каждая запись в одной таблице связана с несколькими записями в другой таблице. Для удобства работы с таблицами, имеющими такие отношения, обычно в базу данных добавляют ещё одну таблицу, которая находится в отношении один-ко-многим и много-к-одному к соответствующим таблицам. 2.3. Обзор моделей данных. Иерархическая и сетевая модели данных стали применяться в системах управления базами данных в начале 60-х годов. В начале 70-х годов была предложена реляционная модель данных. Эти три модели различаются в основном способами представления взаимосвязей между объектами. Иерархическая модель. Иерархическая модель базы данных состоит из объектов с указателями от родительских объектов к потомкам, соединяя вместе связанную информацию. Графическим способом представления иерархической структуры является дерево (рис. 2.1). Уровень 1 Уровень 2 Уровень 3 Рис. 2.1. Графическое изображение иерархической структуры Дерево представляет собой иерархию элементов, называемых узлами. Под элементами понимается совокупность атрибутов, описывающих объекты. В модели имеется корневой узел (корень дерева), который находится на самом верхнем уровне и не имеет узлов, стоящих выше него. У одного дерева может быть только один корень. Остальные узлы, называемые порожденными, связаны между собой следующим образом: каждый узел имеет только один исходный, находящийся на более высоком уровне, и любое число (один, два или более, либо ни одного) подчиненных узлов на следующем уровне. Примером простого иерархического представления может служить административная структура высшего учебного заведения: институт – отделение – факультет – студенческая группа (рис. 2.2). Уровень 1 Институт Уровень 2 Дневное отделение Вечернее отделение Заочное отделение Уровень 3 Факультет 1 Факультет 2 Факультет 1 Факультет 2 Факультет 1 Уровень 4 Группа 1 Группа 2 Группа n Рис. 2.2. Пример иерархической структуры Первые системы управления базами данных использовали иерархическую модель данных, и во времени их появление предшествует появлению сетевой модели. К достоинствам иерархической модели данных относятся эффективное использование памяти ЭВМ и неплохие показатели времени выполнения операций над данными. Недостатком иерархической модели является ее громоздкость для обработки информации с достаточно сложными логическими связями. На иерархической модели данных основано сравнительно ограниченное количество СУБД, в числе которых можно назвать зарубежные системы IMS, PC/Focus, Team-Up и Data Edge, а также отечественные системы Ока, ИНЭС и МИРИС. По принципу иерархической БД построены иерархические файловые системы и Реестр Windows. Сетевая модель данных. Отличие сетевой структуры от иерархической заключается в том, что каждый элемент в сетевой структуре может быть связан с любым другим элементом (рис. 2.3). Пример простой сетевой структуры показан на рис. 2.4. Студенческий коллектив Учебная группа Комната в общежитии Студент Рис. 2.3. Графическое изображение сетевой структуры Рис. 2.4. Пример взаимосвязей между элементами сетевой структуры Достоинством сетевой модели данных является возможность эффективной реализации по показателям затрат памяти и оперативности. Недостатком сетевой модели данных являются высокая сложность и жесткость схемы БД, построенной на ее основе. Наиболее известными сетевыми СУБД являются IDMS, db_VistaIII, СЕТЬ, СЕТОР и КОМПАС. Реляционная модель данных. Принципы реляционной модели были сформулированы в 1969—1970 годах Э. Ф. Коддом. Реляционная модель данных — логическая модель данных, прикладная теория, описывающая структурный аспект, аспект целостности и аспект обработки данных в реляционных базах данных. • Структурный аспект (составляющая) — данные в базе данных представляют собой набор отношений. • Аспект (составляющая) целостности — отношения (таблицы) отвечают определенным условиям целостности. РМД поддерживает декларативные ограничения целостности уровня домена (типа данных), уровня отношения и уровня базы данных. • Аспект (составляющая) обработки (манипулирования) — РМД поддерживает операторы манипулирования отношениями (реляционная алгебра, реляционное исчисление). Термин «реляционный» означает, что теория основана на математическом понятии отношение (relation). В качестве неформального синонима термину «отношение» часто встречается слово таблица. Необходимо помнить, что «таблица» есть понятие нестрогое и неформальное и часто означает не «отношение» как абстрактное понятие, а визуальное представление отношения на бумаге или экране. Некорректное и нестрогое использование термина «таблица» вместо термина «отношение» нередко приводит к недопониманию. Наиболее частая ошибка состоит в рассуждениях о том, что РМД имеет дело с «плоскими», или «двумерными» таблицами, тогда как таковыми могут быть только визуальные представления таблиц. Отношения же являются абстракциями, и не могут быть ни «плоскими», ни «неплоскими». Для лучшего понимания РМД следует отметить три важных обстоятельства: • модель является логической, то есть отношения являются (абстрактными), а не физическими (хранимыми) структурами; логическими • для реляционных баз данных верен информационный принцип: всё информационное наполнение базы данных представлено одним и только одним способом, а именно — явным заданием значений атрибутов в кортежах отношений. В реляционных базах данных кортеж — это элемент отношения, строка таблицы; упорядоченный набор из N элементов. • наличие реляционной алгебры позволяет реализовать декларативное программирование и декларативное описание ограничений целостности, в дополнение к навигационному (процедурному) программированию и процедурной проверке условий. Декларативное программирование подразумевает использование данных, а не написание кода для того, чтобы заставить приложение или компонент выполнить что-либо. Написание исходного кода иногда называют императивным программированием. Реляционная база данных представляет собой хранилище данных, организованных в виде двумерных таблиц. Любая таблица реляционной базы данных состоит из строк (называемых также записями или кортежами) и столбцов (называемых также полями). Строки таблицы содержат сведения о представленных в ней фактах (или документах, или людях, одним словом, - об однотипных объектах). На пересечении столбца и строки находятся конкретные значения содержащихся в таблице данных. Данные в таблицах удовлетворяют следующим принципам: 1) Каждое значение, содержащееся на пересечении строки и столбца, должно быть атомарным. 2) Значения данных в одном и том же столбце должны принадлежать к одному и тому же типу, доступному для использования в данной СУБД. 3) Каждая запись в таблице уникальна, то есть в таблице не существует двух записей с полностью совпадающим набором значений ее полей. 4) Каждое поле имеет уникальное имя. 5) Последовательность полей в таблице несущественна. 6) Последовательность записей в таблице несущественна. Несмотря на то, что строки таблиц считаются неупорядоченными, любая система управления базами данных позволяет сортировать строки и столбцы в выборках из нее нужным пользователю способом. Поскольку последовательность полей в таблице несущественна, обращение к ним производится по имени, и эти имена для данной таблицы уникальны (но не обязаны быть уникальными для всей базы данных). Поле или комбинацию полей, значения которых однозначно идентифицируют каждую запись таблицы, называют возможным ключом (или просто ключом). Если таблица имеет более одного возможного ключа, тогда один ключ выделяют в качестве первичного. Первичный ключ любой таблицы обязан содержать уникальные непустые значения для каждой строки. Поле, указывающее на запись в другой таблице, связанную с данной записью, называется внешним ключом. Иначе говоря, внешний ключ - это поле или набор полей, чьи значения совпадают с имеющимися значениями первичного ключа другой таблицы. Подобное взаимоотношение между таблицами называется связью. Связь между двумя таблицами устанавливается путем присвоения значений внешнего ключа одной таблицы значениям первичного ключа другой. Группа связанных таблиц называется схемой базы данных. Информация о таблицах, их полях, первичных и внешних ключах, а также иных объектах базы данных, называется метаданными. Достоинство реляционной модели данных заключается в простоте, понятности и удобстве физической реализации на ЭВМ. Именно простота и понятность для пользователя явились основной причиной ее широкого использования. К основным недостаткам реляционной модели относятся отсутствие стандартных средств идентификации отдельных записей и сложность описания иерархических и сетевых связей. Примерами зарубежных реляционных СУБД для ПЭВМ являются: DB2, Paradox, FoxPro, Access, Clarion, Ingres, Oracle. К отечественным СУБД реляционного типа относятся системы ПАЛЬМА и HyTech. Постреляционная модель. Классическая реляционная модель предполагает неделимость данных, хранящихся в полях записей таблиц. Постреляционная модель представляет собой расширенную реляционную модель, снимающую ограничение неделимости данных. Модель допускает многозначные поля – поля, значения которых состоят из подзначений. Набор значений многозначных полей считается самостоятельной таблицей, встроенной в основную таблицу. Достоинством постреляционной модели является возможность представления совокупности связанных реляционных таблиц одной постреляционной таблицей. Это обеспечивает высокую наглядность представления информации и повышение эффективности ее обработки. Недостатком постреляционной модели является сложность решения проблемы обеспечения целостности и непротиворечивости хранимых данных. Рассмотренная постреляционная модель данных поддерживается СУБД uniVers. К числу других СУБД, основанных на постреляционной модели данных, относятся также системы Bubba и Dasdb. Объектно-ориентированная модель. В объектно-ориентированной модели при представлении данных имеется возможность идентифицировать отдельные записи базы данных. Между записями и функциями их обработки устанавливаются взаимосвязи с помощью механизмов, подобных соответствующим средствам в объектно-ориентированных языках программирования. Стандартизированная объектно-ориентированная модель описана в рекомендациях стандарта ODMG-93 (Object Database Management Group – группа управления объектноориентированными базами данных). Логическая структура объектно-ориентированной БД внешне похожа на структуру иерархической БД. Основное различие между ними состоит в методах манипулирования данными. Для выполнения действий над данными в рассматриваемой модели БД применяются логические операции, усиленные объектно-ориентированными механизмами инкапсуляции, наследования и полиморфизма. Инкапсуляция ограничивает область видимости имени свойства пределами того объекта, в котором оно определено. Наследование, наоборот, распространяет область видимости свойства на всех потомков объекта. Полиморфизм в объектно-ориентированных языках программирования означает способность одного и того же программного кода работать с разнотипными данными. Поиск в объектно-ориентированной БД состоит в выяснении сходства между объектом, задаваемым пользователем, и объектами, хранящимися в БД. Основным достоинством объектно-ориентированной модели данных в сравнении с реляционной является возможность отображения информации о сложных взаимосвязях объектов. Объектно-ориентированная модель данных позволяет идентифицировать отдельную запись базы данных и определять функции их обработки. Недостатками объектно-ориентированной модели являются высокая понятийная сложность, неудобство обработки данных и низкая скорость выполнения запросов. К объектно-ориентированным СУБД относятся POET, Jasmine, Versant, O2, ODB-Jupiter, Iris, Orion, Postgres.