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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 29.06.2010
Размер файла 468,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Курсовая работа

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

2008

ВВЕДЕНИЕ В БАЗЫ ДАННЫХ

ВВЕДЕНИЕ

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

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

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

2. Возможность собирать, хранить и обрабатывать большое количество данных о реальных объектах и явлениях, то есть оснащение этих систем "памятью". Массив данных общего пользования в подобных системах называется базой данных. Концепция баз данных стала определяющим фактором при создании эффективных автоматизированных СОД.

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

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

Информация, данные, знания. Терминология

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

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

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

Подготовка информации состоит в её формализации, сборе и перенесении на машинные носители.

Обработка данных - это совокупность задач, осуществляющих преобразование массивов данных. Обработка данных включает в себя ввод данных в ЭВМ, отбор данных по каким-либо критериям, преобразование структуры данных, перемещение данных на внешней памяти ЭВМ, вывод данных, являющихся результатом решения задач, в табличном или в каком-либо ином удобном для пользователя виде.

Система обработки данных (СОД) - это набор аппаратных и программных средств, осуществляющих выполнение задач по управлению данными.

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

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

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

В дальнейшем речь пойдёт только об электронных базах данных, т.е. таких, которые хранятся и используются с помощью ЭВМ.

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

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

Автоматизированная информационная система

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

По сферам применения различают два основных класса АИС: информационно-поисковые (ИПС) и системы обработки данных (СОД). ИПС ориентированы, как правило, на извлечение подмножества хранимых данных, удовлетворяющих некоторому поисковому критерию. Пользователя ИПС интересует, в основном, извлекаемые из базы данных сведения, а не результаты их обработки (пример ИПС - справочные службы).

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

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

В документальной системе объект хранения - документ, который содержит информацию, относящуюся к определённой предметной области. Это могут быть графические изображения (например, географические карты); информация на естественном языке (монографии, тексты законодательных актов, научные отчёты и т.п.); звуковая информация (например, мелодии для системы, хранящей фонотеку) и т.д. Для обработки информации не важно, какие сведения хранятся в документах. Обычно документальные АИС реализуются в виде информационно-поисковых систем.

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

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

Фактографические АИС хранят сведения об объектах предметной области, их свойствах и взаимосвязях. Сведения о каждом объекте могут поступать в систему из множества различных источников. Кроме поиска и модификации данных, фактографические системы поддерживают статистические функции (нахождение суммы, минимума, максимума и т.п.).

Мы будем основное внимание обращать на фактографические АИС, имея в виду, что ИПС создаются с помощью те же программных средств и на тех же принципах, что и СОД, а специфические моменты обработки данных реализуются через приложения (программы, внешние по отношению к ядру СОД).

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

Предметная область информационной системы

Предметная область (ПО) информационной системы рассматривается как совокупность реальных процессов и объектов (сущностей), представляющих интерес для её пользователей.

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

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

Между объектами ПО могут существовать связи, имеющие различный содержательный смысл (семантику). Эти связи могут быть факультативными или обязательными (рис.1.1). Если вновь порождённый объект одного из типов оказывается по необходимости связанным с объектом другого типа, то между этими типами объектов существует обязательная связь. Иначе связь является факультативной.

Рис.1.1. Примеры обязательной и факультативной связей

Различают типы множественных связей: "один к одному" (1:1), "один ко многим" (1:n) и "многие ко многим" (m:n) (рис. 1.2).

Рис.1.2. Примеры типов множественных связей

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

Множества типов объектов ПО и экземпляров объектов, значения атрибутов объектов и связи между ними могут изменяться во времени. Поэтому каждому моменту времени можно сопоставить некоторое состояние ПО. Состояния ПО обладают совокупностью свойств (правил), которые характеризуют семантику ПО. Эти правила могут быть заданы с помощью так называемых ограничений целостности, которые накладываются на типы объектов, типы связей и/или их экземпляры.

Назначение и основные компоненты системы баз данных

Система БД включает два основных компонента: собственно базу данных и систему управления (рис. 1.3). Большинство СОД включают также программы обработки данных, которые обращаются к данным через систему управления.

Рис.1.3. Компоненты системы баз данных

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

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

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

Уровни представления данных

Концепции многоуровневой архитектуры СУБД служат основой современной технологии БД. Эти идеи впервые были сформулированы в отчёте рабочей группы по базам данных Комитета по планированию стандартов Американского национального института стандартов (ANSI/X3/SPARC), опубликованному в 1975 г. В нем была предложена обобщенная трехуровневая модель архитектуры СУБД, включающая концептуальный, внешний и внутренний уровни (рис. 1.4).

Рис.1.4. Уровни представления данных

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

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

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

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

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

В архитектурной модели ANSI/SPARC предполагается наличие в СУБД механизмов, обеспечивающих междууровневое отображение данных “внешний - концептуальный” и “концептуальный - внутренний”. Функциональные возможности этих механизмов обеспечивают абстракцию данных и определяют степень независимости данных на всех уровнях.

1. ОСНОВНЫЕ МОДЕЛИ ДАННЫХ

1.1 Понятие модели данных

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

Модель данных - это комбинация трех составляющих:

1. Набора типов структур данных.

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

3. Набора общих правил целостности, которые прямо или косвенно определяют множество непротиворечивых состояний БД и/или множество изменений её состояния.

1.1.1 Типы структур данных

Структуризация данных базируется на использовании концепций "агрегации" и "обобщения". Первый вариант структуризации данных был предложен Ассоциацией по языкам обработки данных (Conference on Data Systems Languages, CODASYL) (рис.2.1).

Рис.2.1. Композиция структур данных по версии CODASYL

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

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

Рис.2.2. Примеры агрегатов: а) простой и б) составной агрегат

Запись - поименованная совокупность элементов данных или элементов данных и агрегатов. Запись - это агрегат, не входящий в состав никакого другого агрегата; она может иметь сложную иерархическую структуру, поскольку допускается многократное применение агрегации. Различают тип записи (её структуру) и экземпляр записи, т.е. запись с конкретными значениями элементов данных. Одна запись описывает свойства одного объекта ПО (экземпляра).

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

Иногда термин "запись" заменяют термином "группа".

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

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

Рис. 2.3. Пример диаграммы Бахмана для фрагмента БД "Город"

Здесь запись типа ПОЛИКЛИНИКА является владельцем записей типа ЖИТЕЛЬ и они связаны групповым отношением диспансеризация. Запись типа ОРГАНИЗАЦИЯ также является владельцем записей типа ЖИТЕЛЬ и они связаны групповым отношением работают. Записи типа РЭУ и типа ЖИТЕЛЬ являются владельцами записей типа КВАРТИРА с отношениями соответственно обслуживают и проживают. Таким образом, запись одного и того же типа может быть членом одного отношения и владельцем другого.

База данных - поименованная совокупность экземпляров групп и групповых отношений.

1.1.2 Операции над данными

Модель данных определяет множество действий, которые допустимо производить над некоторой реализацией БД для её перевода из одного состояния в другое. Это множество соотносят с языком манипулирования данными (Data Manipulation Language, DML).

Любая операция над данными включает в себя селекцию данных (select), то есть выделение из всей совокупности именно тех данных, над которыми должна быть выполнена требуемая операция, и действие над выбранными данными, которое определяет характер операции. Условие селекции - это некоторый критерий отбора данных, в котором могут быть использованы логическая позиция элемента данных, его значение и связи между данными.

По типу производимых действий различают следующие операции:

· идентификация данных и нахождение их позиции в БД;

· выборка (чтение) данных из БД;

· включение (запись) данных в БД;

· удаление данных из БД;

· модификация (изменение) данных БД.

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

1.1.3 Ограничения целостности

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

Неявные ограничения определяются самой структурой данных. Например, тот факт, что записи типа СОТРУДНИК являются обязательными членами какого-либо экземпляра набора данных ПОДРАЗДЕЛЕНИЕ, служит, по существу, ограничением целостности, означающим, что каждый сотрудник организации непременно должен быть в штате некоторого подразделения.

Явные ограничения задаются в схеме базы данных с помощью средств языка описания данных (DDL, Data Definition Language). В качестве явных ограничений чаще всего выступают условия, накладываемые на значения данных. Например, заработная плата не может быть отрицательной, а дата приема сотрудника на работу обязательно будет меньше, чем дата его перевода на другую работу. За выполнением этих ограничений следит СУБД в процессе своего функционирования.

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

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

1.2. Сетевая модель данных (СМД)

Сетевая модель позволяет организовывать БД, структура которых представляется графом общего вида (пример СМД - на рис. 2.3). Организация данных в сетевой модели соответствует структуризации данных по версии CODASYL. Каждая вершина графа хранит экземпляры сущностей (записи) и сведения о групповых отношениях с сущностями других типов. Каждая запись может хранить произвольное количество значений атрибутов (элементов данных и агрегатов), соответствующих экземпляру сущности.

Групповые отношения характеризуют следующие признаки:

1. Способ упорядочения подчинённых записей.

Поддерживаются три способа упорядочения:

· Очередь - добавление в конец списка (FIFO - first input, first output).

· Стек - добавление в начало списка (LIFO - last input, first output).

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

2. Режим включения подчинённых записей.

Режим включения бывает автоматический и ручной.

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

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

3. Режим исключения подчинённых записей.

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

В СМД применяются следующие операции над данными:

· запомнить: внесение информации в БД;

· включить в групповое отношение: установление связей между данными;

· переключить: переход члена набора к другому владельцу;

· обновить: модификация данных;

· извлечь: чтение данных;

· удалить: физическое или логическое удаление данных;

· исключить из группового отношения: разрыв связей между данными.

Связи между записями в СМД обычно выполнены в виде указателей (т.е. каждая запись хранит ссылки на другие однотипные записи и записи, связанные с ней групповыми отношениями). Подробнее об этом рассказано в разделе 5.5."Организация связей между хранимыми записями".

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

· от текущего экземпляра записи определённого типа к другим экземплярам записи этого же типа;

· из текущей вершины в любую вершину, с которой текущая связана групповым отношением.

Наиболее распространенной и стандартизованной из реализаций СМД является модель CODASYL. В соответствии с ней описание схемы БД осуществляется на языке COBOL, а манипулирование данными - с помощью включающего языка программирования высокого уровня.

1.3 Иерархическая модель данных (ИМД)

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

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

· имеется единственная особая вершина, называемая корнем, в которую не заходит ни одно ребро;

· во все остальные вершины заходит только одно ребро, а исходит произвольное количество ребер;

· граф не содержит циклов.

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

В иерархических моделях данных используется ориентация древовидной структуры от корня к листьям. Графическая диаграмма схемы базы данных называется деревом определения. Пример иерархической базы данных приведён на рис.2.4.

Рис.2.4. Пример иерархической базы данных

Каждая некорневая вершина связана с родительской записью иерархическим групповым отношением. Каждая вершина дерева соответствует сущности ПО, которая характеризуется произвольным количеством атрибутов, связанных с ней отношением 1:1. Атрибуты, связанные с сущностью отношением 1:n, образуют отдельную сущность и переносятся на следующий уровень иерархии. Тип вершины определяется типом сущности и набором её атрибутов. Каждая вершина дерева хранит экземпляры сущностей - записи. Следствием внутренних ограничений иерархической модели является то, что каждому экземпляру зависимой группы в БД соответствует уникальное множество экземпляров родительских групп - по одному экземпляру каждого типа вершин вышестоящих уровней.

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

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

Связи между записями в ИМД обычно выполнены в виде ссылок (т.е. хранятся адреса связанных записей). Подробнее об этом рассказано в разделе 5.5."Организация связей между хранимыми записями".

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

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

1.4 Реляционная модель данных (РМД)

1.4.1 Понятие отношения

Реляционная модель данных была предложена математиком Э.Ф. Коддом (Codd E.F.) в 1970 г. РМД является наиболее широко распространенной моделью данных и единственной из трех основных моделей данных, для которой разработан теоретический базис с использованием теории множеств.

В основе РМД лежит понятие отношения, представляющего собой подмножество декартова произведения доменов. Домен - это множество значений, которое может принимать элемент (например, множество целых чисел, множество комбинаций символов длиной N и т.п.).

Пусть D1, D2 ,…, Dk - произвольные конечные и не обязательно различные множества (домены). Декартово произведение этих множеств определяется следующим образом:

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

Пример. Для доменов D1 = (1,2), D2 = (A,B,C) декартово произведение D будет таким:

D = {(1,A), (1,B), (1,C), (2,A), (2,B), (2,C)}.

Подмножество декартова произведения доменов называется отношением.

Элементы отношения называют кортежами. Элементы кортежа принято называть атрибутами. Количество атрибутов кортежа определяет арность отношения. Отношения арности 1 называют унарными, арности 2 - бинарными, арности n - n-арными.

Отношение содержит информацию о сущностях одного типа. Каждый кортеж отношения соответствует одному экземпляру сущности.

1.4.2 Свойства отношений

Отношение обладает двумя основными свойствами:

1. в отношении не должно быть одинаковых кортежей, т.к. это множество;

2. порядок кортежей в отношении несущественен.

Отношение удобно представлять как таблицу, где строка является кортежем, столбец соответствует домену (рис. 2.5, отношение СТУДЕНТЫ).

домен 1 . . . . . . . . домен 2 . . . . . . . . .. . . . . . .домен 3 (ключ) . . . . . .. . . . . .домен 4 . . . . . . . .домен 5

Группа

ФИО студента

Номер зачётной книжки

Год рождения

Стипендия

С-72

Волкова Елена Павловна

С-12298

1981

566.40

С-91

Белов Сергей Юрьевич

С-12299

1980

400.00

. . .

С-72

Фролов Юрий Вадимович

С-14407

1981

0

Рис.2.5. Пример табличной формы представления отношения

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

Каждый атрибут определён на некотором домене, несколько атрибутов отношения могут быть определены на одном и том же домене (например, номера рабочего и домашнего телефона). Домен задаётся типом данных и ограничениями целостности, например, оклад - это число больше нуля. Значение атрибута может быть не определено в момент внесения записи в БД. Для таких случаев предусмотрено специальное значение - null, которое можно интерпретировать как "неизвестное значение".

Ключ отношения - это атрибут, значения которого идентифицируют кортеж. Таким образом, ключ имеет уникальные в рамках отношения значения. (На рис. 2.5 ключ выделен полужирным шрифтом). Если ключ состоит из нескольких атрибутов, он называется составным. Ключей может быть несколько; основной ключ - первичный, его значения не могут обновляться. Другие ключи называются возможными или потенциальными ключами.

РМД не поддерживает групповые отношения. Для связей между отношениями используются внешние ключи. Внешний ключ - это атрибут подчиненного отношения, который является копией первичного (или уникального) ключа родительского отношения. (Пример - отношение ДЕТИ, связанное с отношением СТУДЕНТЫ по внешнему ключу Номер зачётной книжки, рис. 2.6). Фактически, внешние ключи логически связывают экземпляры сущностей разных типов между собой. Т.о., внешний ключ можно трактовать как ограничение целостности на две таблицы, в соответствии с которым множество значений внешнего ключа является подмножеством значений ключа родительской таблицы. Если связь необязательная, то значение внешнего ключа может быть неопределённым (null).

Номер зачётной книжки

Имя, отчество ребенка

Дата рождения

С-12298

Антон Павлович

01.12.01

С-12298

Юлия Павловна

01.12.01

С-12299

Ольга Сергеевна

16.04.02

Рис.2.6. Связь отношений "Студенты" и "Дети" по внешнему ключу

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

Все операции над данными в РМД выполняются над отношением и требуют задания имени отношения. Если операция применяется к части отношения, то может потребоваться идентификация кортежа или группы кортежей и задания имён атрибутов. В РМД используются следующие операции над данными:

· запомнить: внесение информации в БД (требует формирования значений уникального ключа и обязательных атрибутов кортежа);

· обновить: модификация данных - изменение значений отдельных атрибутов кортежей;

· извлечь: чтение данных;

· удалить: физическое или логическое удаление данных (кортежа или группы кортежей).

Структуризация данных в РМД существенно отличается от структуризации данных по версии CODASYL. В таблице 2.1. приведено соответствие этих двух вариантов структуризации.

Таблица 2.1. Сравнение структуризации данных в РМД и по версии CODASYL

Термины версии CODASYL

Термины (и синонимы) РМД

Элемент данных

Атрибут (поле)

Агрегат

-

Запись (группа)

Кортеж (запись, строка)

Совокупность записей одного типа

Отношение (таблица)

Набор (групповое отношение)

-

База данных

База данных

1.4.3 Достоинства и недостатки РМД

Широкое распространение РМД объясняется в первую очередь простотой представления и формирования БД, универсальностью и удобством обработки данных, которая осуществляется с помощью декларативного языка запросов SQL (Structured Query Language).

Существуют два стандарта SQL, определённые американским национальным институтом стандартов (ANSI): SQL-89 (SQL1) и SQL-92 (SQL2). В настоящее время в стадии разработки находится новый стандарт - SQL3. Большинство коммерческих систем управления базами данных (СУБД) поддерживают стандарт SQL2, который принят ISO (International Standards Organization) в качестве международного стандарта. (Подробнее об SQL рассказано в [10]).

Моделирование ПО в рамках РМД создаёт некоторые сложности, т.к. в РМД нет специальных средств для отображения различных типов связей. Отсутствие множественных связей, например, "многие ко многим", вызывает увеличение объёма хранимой (дублируемой) информации. Отсутствие возможности указания типов связей (например, "работает" или "имеет"), приводит к тому, что семантика связей в принципе не может быть отражена в РМД и зависит от того, как связь интерпретируется приложениями.

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

В РМД нет понятий режим включения и класс членства, поэтому набор средств описания ограничений целостности очень мал. (Подробнее об этом рассказано в разделе 8.1."Обеспечение целостности данных").

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

1.4.4 Операции реляционной алгебры

Операндами для операций реляционной алгебры являются реляционные отношения. Результатом выполнения операций реляционной алгебры также является отношение. Использование реляционной алгебры накладывает на отношения два ограничения: порядок столбцов (полей) в отношении фиксирован; отношения конечны.

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

1. Проекция (projection, обозначается "р") - это унарная операция (выполняемая над одним отношением), служащая для выбора подмножества атрибутов из отношения R. Она уменьшает арность отношения и может уменьшить его мощность, исключая одинаковые кортежи.

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

3. Декартово произведение (cartesian product, обозначается "?") соответствует определению декартова произведения для РМД.

4. Объединение (union, обозначается " U") - это бинарная операция над односхемными отношениями R и S, результатом которой является отношение, включающее все кортежи обоих отношений без повторов.

5. Разность (set difference, обозначается "-") - это бинарная операция над односхемными отношениями (R-S), результатом которой является множество кортежей отношения R, не принадлежащих отношению S.

6. Пересечение (intersection, обозначается "?") - это бинарная операция над односхемными отношениями R и S, результатом которой является подмножество кортежей, принадлежащих обоим исходным отношениям.

7. Соединение (join, обозначается "") - это бинарная операция над разносхемными отношениями R и S. Кортежи результирующего отношения содержат все атрибуты обоих отношений (возможно, за исключением повторов). В общем случае соединение происходит по условию, которое определяет соотношение между значениями атрибутов из разных отношений. Если этим условием является равенство значений атрибутов, такое соединение называется эквисоединением. Естественным называется эквисоединение, построенное по условию равенства значений одинаковых атрибутов кортежей исходных отношений.

Фактически, соединение является подмножеством декартова произведения, для которого выполняется некоторое условие.

8. Деление (division, обозначается "/") - это бинарная операция над разносхемными отношениями R и S. Пусть отношение R содержит атрибуты {r1,r2,...,ri,...,rn}, а отношение S - атрибуты {r1,r2,...,ri}. Результирующее отношение содержит атрибуты {ri+1,...,rn}. Кортеж включается в результирующее отношение, если его декартово произведение с отношением S входит в R.

1.4.5 Преобразования операций реляционной алгебры

Операндами операций реляционной алгебры являются отношения, поэтому для их выполнения необходимо просмотреть все кортежи исходного отношения (или отношений). Следствием этого является большая размерность реляционных операций. Уменьшения размерности операций можно достичь, изменяя последовательность выполняемых операций. В качестве примера приведём отношения R1 и R2, содержащие по 1000 кортежей, причём только 10 кортежей в каждом отношении удовлетворяют условию F. Если выполнять следующую последовательность операций:

?F (R1 U R2),

то после выполнения объединения получится 2000 кортежей (если отношения не содержат одинаковых кортежей), а после селекции останется 20 записей. Если изменить последовательность выполнения операций:

?F (R1) U ?F (R2),

то после селекции останется по 10 записей из каждого отношения, объединение которых даст 20 требуемых кортежей. Следовательно, не потребуется хранить промежуточный результат в 2000 кортежей и просматривать его для поиска кортежей, удовлетворяющих условию.

Оптимизация выполнения запросов реляционной алгебры основана на понятии эквивалентности реляционных выражений. Операндами выражений являются переменные-отношения Ri и константы. Каждое выражение реляционной алгебры определяет отображение кортежей переменных-отношений Ri (i=1,…,n) в кортежи единственного отношения, которое получается в результате подстановки кортежей каждого Ri и выполнения всех определяемых выражением вычислений.

Два выражения реляционной алгебры считаются эквивалентными, если они описывают одно и то же отображение.

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

1. Закон коммутативности для декартовых произведений:

R1 ? R2 = R2 ? R1

2. Закон коммутативности для соединений (F - условие соединения):

R1???F R2 = R2 ??F R1

3. Закон ассоциативности для декартовых произведений:

(R1? R2 ) ? R3 = R1 ? (R2 ? R3)

4. Закон ассоциативности для соединений (F1,F2 - условия):

(R1???F R2 ) ?? F R3 = R1 ??F (R2??? F R3)

5. Комбинация селекций (каскад селекций):

?F1 (?F2 (R)) = ? F1/\F2(R)

6. Комбинация проекций (каскад проекций):

? A1,A2,...,Am (? B1,B2,...,Bn(R)) = ? A1,A2,...,Am (R)

где {Am} ? {Bn}.

7. Перестановка селекции и проекции:

?F (? A1,A2,...,Am (R)) = ? A1,A2,...,Am (?F (R))

8. Перестановка селекции с объединением:

?F (R1 U R2)=?F (R1) U ?F (R2)

9. Перестановка селекции с разностью:

?F (R1 - R2)=?F (R1) - ?F (R2)

10. Перестановка проекции с декартовым произведением:

? A1,A2,...,Am ( R1 ? R2 ) = ? C1,C2,...,Cn(R1)???? B1,B2,...,Bk(R2)

где {Cn} ? {Am}, {Bk} ? {Am} и атрибуты Cn представлены в отношении R1, а атрибуты Bk - в отношении R2.

11. Перестановка проекции с объединением:

? A1,A2,...,Am ( R1 U R2 ) = ? A1,A2,...,Am (R1) U ?A1,A2,...,Am (R2)

12. Перестановка селекции с декартовым произведением:

o ?F (R1 ? R2) = ?F (R1) ? R2

если F содержит атрибуты, присутствующие только в R1;

o ?F (R1 ? R2) = R1 ? ?F (R2)

если F содержит атрибуты, присутствующие только в R2;

o ?F (R1 ? R2) = ?F1(R1)?? ?F2 (R2)

если F=F1/\F2, и F1 содержит атрибуты, присутствующие только в R1, а F2 содержит атрибуты, присутствующие только в R2;

o ?F ( R1 ? R2 ) = ?F2 (??F1( R1) ? R2 )

если F=F1/\F2, и F1 содержит атрибуты, присутствующие только в R1, а F2 содержит атрибуты, присутствующие и в R1, и в R2.

1.5 Другие модели данных

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

1.5.1 Объектно-реляционные модели данных

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

К сожалению, до настоящего времени (2003 г.) разработчики не пришли к единому мнению о том, как следует определять ОРМД. Модели, поддерживаемые различными производителями СУБД, существенно отличаются по своим функциональным характеристикам, поэтому о включении объектов в РМД можно говорить только как об общем направлении развития баз данных. О перспективах этого направления свидетельствует тот факт, что ведущие фирмы-производители СУБД, в числе которых Oracle, Informix и INGRES, расширили возможности своих продуктов до объектно-реляционной СУБД (ОРСУБД).

В большинстве реализаций ОРМД объектами признаются агрегат и таблица (отношение), которая может входить в состав другой таблицы. Методы обработки данных представлены в виде хранимых процедур и триггеров, которые являются процедурными объектами базы данных, и связаны с таблицами. На внутреннем (физическом) уровне все данные ОРБД хранятся в виде отношений, и ОРСУБД поддерживают язык SQL.

1.5.2 Объектно-ориентированные модели данных

Ещё один подход к построению БД - использование объектно-ориентированных моделей данных (ООМД). Моделирование данных в ООМД базируется на понятии объекта. Для ООМД, как и в случае с ОРМД, не существует общепризнанной модели данных.

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

К достоинствам ООМД можно отнести широкие возможности моделирования предметной области, выразительный язык запросов и повышенную производительность. Эти модели обычно применяются для сложных предметных областей, для моделирования которых не хватает функциональности реляционной модели (например, систем автоматизации проектирования, издательских систем и т.п.).

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

В 1997 г. рабочая группа ODMG (Object Database Management Group), образованная фирмами-производителями ООСУБД, выпустила стандарт ODMG 2.0 для ООСУБД, в котором описана объектная модель, язык определения запросов, язык объектных запросов и связующие языки С++, Smalltalk и Java.

2. ЭЛЕМЕНТЫ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ

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

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

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

1. Корректность схемы БД, т.е. база должна быть гомоморфным образом моделируемой ПО, где каждому объекту ПО соответствуют данные в памяти ЭВМ, а каждому процессу - адекватные процедуры обработки данных.

2. Обеспечение ограничений (на объёмы внешней и оперативной памяти и другие ресурсы вычислительной системы).

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

4. Защита данных (от сбоев и несанкционированного доступа).

5. Простота и удобство эксплуатации.

6. Гибкость, т.е. возможность развития и адаптации к изменениям ПО и/или требований пользователей.

Удовлетворение первых 4-х требований обязательно для принятия проекта.

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

Процесс проектирования БД включает в себя следующие этапы:

1. Информационно-логическое (инфологическое) проектирование.

2. Определение требований к операционной обстановке, в которой будет функционировать информационная система.

3. Выбор СУБД и других инструментальных программных средств.

4. Логическое проектирование БД.

5. Физическое проектирование БД.

3.1. Инфологическое проектирование

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

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

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

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

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

· используемых методов анализа предметной области;

· правил именования и обозначения объектов ПО, атрибутов и связей;

· содержания и формата создаваемых ими документов.

Примечание. В тексте данного пособия используются следующие обозначения:


Подобные документы

  • Система управления базами данных как составная часть автоматизированного банка данных. Структура и функции системы управления базами данных. Классификация СУБД по способу доступа к базе данных. Язык SQL в системах управления базами данных, СУБД Microsoft.

    реферат [46,4 K], добавлен 01.11.2009

  • Программные продукты компании Microsoft: Access, Visual FoxPro7.0, dBASE. Возможности интеграции, совместной работы и использования данных. Системы управления базами данных (СУБД), их основные функции и компоненты. Работа с данными в режиме таблицы.

    курсовая работа [805,5 K], добавлен 15.12.2010

  • Назначение и основные функции системы управления базами данных СУБД, особенности и признаки их классификации. Архитектура баз данных (БД). Разработка распределенных БД. Язык структурированных запросов (SQL). Правила Кодда: требования к реляционным БД.

    курсовая работа [376,2 K], добавлен 21.07.2012

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

    курсовая работа [205,0 K], добавлен 11.12.2014

  • Структура и функции системы управления базами данных (СУБД). Управление хранением данных и доступом к ним. Защита и поддержка целостности данных. Надежность хранения данных во внешней памяти. Классификация СУБД по способу доступа к базе данных.

    презентация [3,7 M], добавлен 05.06.2014

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

    презентация [301,6 K], добавлен 17.04.2013

  • Основные этапы проектирования базы данных. Access как система управления базами данных (СУБД), ее предназначение, отличительные возможности. Работа с таблицами, их создание и редактирование. Порядок создания запросов. Способы защиты баз данных.

    лабораторная работа [3,1 M], добавлен 18.08.2009

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

    реферат [22,1 K], добавлен 27.04.2016

  • Хранение и обработка данных. Компоненты системы баз данных. Физическая структура данных. Создание таблиц в MS Access. Загрузка данных, запросы к базе данных. Разработка информационной системы с применением системы управления базами данных MS Access.

    курсовая работа [694,0 K], добавлен 17.12.2016

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

    курсовая работа [24,6 K], добавлен 11.07.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.