Лекции и практики (1). Курс лекций и материалы для практических занятий
Скачать 1.01 Mb.
|
Лекция 2.ОСНОВНЫЕ МОДЕЛИ ДАННЫХМодель данных является инструментом моделирования произвольной предметной области. Понятие модели данныхМодель данных – это совокупность правил порождения структур данных в базе данных, операций над ними, а также ограничений целостности, опреде- ляющих допустимые связи и значения данных, последовательность их измене- ния [5]. Итак, модель данных состоит из трёх частей: Набор типов структур данных. Здесь можно провести аналогию с языками программирования, в которых тоже есть предопределённые типы структур данных, такие как скалярные данные, векторы, массивы, структуры (например, тип struct в языке Си) и т.д. Набор операторов или правил вывода, которые могут быть применены к любым правильным примерам типов данных, перечисленных в (1), чтобы находить, выводить или преобразовывать информацию, содержащуюся в любых частях этих структур в любых комбинациях. Такими операциями являются: создание и модификация структур данных, внесение новых данных, удаление и модификация существующих данных, поиск данных по различным условиям. Набор общих правил целостности, которые прямо или косвенно опреде- ляют множество непротиворечивых состояний базы данных и/или мно- жество изменений её состояния. Правила целостности определяются типом данных и предметной областью. Например, значение атрибута Счётчикявляется целым числом, т.е. может состоять только из цифр. А ограничения предметной области таковы, что это число не может быть меньше нуля. Теперь рассмотрим подробнее наборы, составляющие модель данных. Типы структур данных Структуризация данных базируется на использовании концепций "агре- гации" и "обобщения". Один из первых вариантов структуризации данных был предложен Ассоциацией по языкам обработки данных (Conference on Data Sys- tems Languages, CODASYL) (рис. 2.1). Рис. 2.1. Композиция структур данных по версии CODASYL Элемент данных – наименьшая поименованная единица данных, к кото- рой СУБД может обращаться непосредственно и с помощью которой выполня- ется построение всех остальных структур. Для каждого элемента данных дол- жен быть определён его тип. Агрегат данных – поименованная совокупность элементов данных внут- ри записи, которую можно рассматривать как единое целое. Агрегат может быть простым (включающим только элементы данных, рис. 2.2,а) и составным(включающим наряду с элементами данных и другие агрегаты, рис. 2.2,б). Рис. 2.2. Примеры агрегатов: а) простой и б) составной агрегат Запись – поименованная совокупность элементов данных или элементов данных и агрегатов. Запись – это агрегат, не входящий в состав никакого друго- го агрегата; она может иметь сложную иерархическую структуру, поскольку допускается многократное применение агрегации. Различают тип записи (её структуру) и экземпляр записи, т.е. запись с конкретными значениями элемен- тов данных. Одна запись описывает свойства одной сущности ПрО (экземпля- ра). Иногда термин "запись" заменяют термином "группа". Пример записи, содержащей сведения о сотруднике, приведён на рис. 2.3. Рис. 2.3. Пример записи типа СОТРУДНИК Эта запись имеет несколько элементов данных (Номер пропуска, Долж-ность, Поли т.д.) и три агрегата: простые агрегаты ФИОи Адреси повторяю- щийся агрегат Телефоны. (Повторяющийся агрегат может включаться в запись произвольное число раз). Среди элементов данных (полей записи) выделяются одно или несколько ключевых полей. Значения ключевых полей позволяют классифицировать сущ- ность, к которой относится конкретная запись. Ключи с уникальными значени- ями называются потенциальными. Каждый ключ может представлять собой аг- регат данных. Один из ключей назначается первичным, остальные являются вторичными. Первичный ключ идентифицирует экземпляр записи, его значе- ние должно быть уникальным и обязательным для записей одного типа. Для примера на рис. 2.3 потенциальными ключами являются поля № пропускаи Паспорт, а первичным ключом целесообразнее выбрать поле № пропуска, т.к. оно явно занимает меньше памяти, чем паспортные данные. Набор (или групповое отношение) – поименованная совокупность запи- сей, образующих двухуровневую иерархическую структуру. Каждый тип набо- ра представляет собой связь между двумя или несколькими типами записей. Для каждого типа набора один тип записи объявляется владельцем набора, остальные типы записи объявляются членами набора. Каждый экземпляр набо- ра должен содержать только один экземпляр записи типа владельца и столько экземпляров записей типа членов набора, сколько их связано с владельцем. Для группового отношения также различают тип и экземпляр. Групповые отношения удобно изображать с помощью диаграммы Бахма- на, которая названа так по имени одного из разработчиков сетевой модели дан- ных. Диаграмма Бахмана – это ориентированный граф, вершины которого соот- ветствуют группам (типам записей), а дуги – групповым отношениям (рис. 2.4). Рис. 2.4. Пример диаграммы Бахмана для фрагмента БД "Город" Здесь запись типа ПОЛИКЛИНИКАявляется владельцем записей типа ЖИТЕЛЬи они связаны групповым отношением диспансеризация. Запись типа ОРГАНИЗАЦИЯтакже является владельцем записей типа ЖИТЕЛЬи они свя- заны групповым отношением работают. Записи типа РЭУи типа ЖИТЕЛЬяв- ляются владельцами записей типа КВАРТИРАс отношениями соответственно обслуживаюти проживают. Таким образом, запись одного и того же типа может быть членом одного отношения и владельцем другого. База данных – поименованная совокупность экземпляров групп и груп- повых отношений. Это самый высокий уровень структуризации данных. Примечание: структуризация данных по версии CODASYL используется в сетевой и иерар- хической моделях данных. В реляционной модели принята другая структуризация данных, основанная на теории множеств. Операции над данными Модель данных определяет множество действий, которые допустимо производить над некоторой реализацией БД для её перевода из одного состоя- ния в другое. Это множество соотносят с языком манипулирования данными (Data Manipulation Language, DML). Любая операция над данными включает в себя селекцию данных (select), то есть выделение из всей совокупности именно тех данных, над которыми должна быть выполнена требуемая операция, и действие над выбранными дан- ными, которое определяет характер операции. Условие селекции – это некото- рый критерий отбора данных, в котором могут быть использованы логическая позиция элемента данных, его значение и связи между данными. По типу производимых действий различают следующие операции: идентификация данных и нахождение их позиции в БД; выборка (чтение) данных из БД; включение (запись) данных в БД; удаление данных из БД; модификация (изменение) данных БД. Обработка данных в БД осуществляется с помощью процедур базы дан- ных – транзакций. Транзакцией называют упорядоченное множество опера- ций, переводящих БД из одного согласованного состояния в другое. Транзакция либо выполняется полностью, т.е. выполняются все входящие в неё операции, либо не выполняется совсем, если в процессе её выполнения возникает ошибка. Ограничения целостности Ограничения целостности – это правила, которым должны удовлетво- рять значения элементов данных. Ограничения целостности делятся на явные и неявные. Неявные ограничения определяются самой структурой данных. Напри- мер, тот факт, что запись типа СОТРУДНИКимеет поле Дата рождения, слу- жит, по существу, ограничением целостности, означающим, что каждый со- трудник организации имеет дату рождения, причём только одну. Явные ограничения включаются в структуру базы данных с помощью средств языка контроля данных (DCL, Data Control Language). В качестве явных ограничений чаще всего выступают условия, накладываемые на значения дан- ных. Например, номер паспорта является уникальным, заработная плата не мо- жет быть отрицательной, а дата приёма сотрудника на работу обязательно бу- дет меньше, чем дата его перевода на другую работу. Также различают статические и динамические ограничения целостно- сти. Статические ограничения присущи всем состояниям ПрО, а динамические определяют возможность перехода ПрО из одного состояния в другое. Приме- рами статических ограничений целостности могут служить требование уни- кальности индивидуального номера налогоплательщика (ИНН) или задание ограниченного множества значений атрибута "Пол" ('м' и 'ж'). В качестве при- мера динамического ограничения целостности можно привести правило, кото- рое распространяется на поля-счётчики: значение счётчика не может умень- шаться. За выполнением ограничений целостности следит СУБД в процессе свое- го функционирования. Она проверяет ограничения целостности каждый раз, когда они могут быть нарушены (например, при добавлении данных, при уда- лении данных и т.п.), и гарантирует их соблюдение. Если какая-либо команда нарушает ограничение целостности, она не будет выполнена и система выдаст соответствующее сообщение об ошибке. Например, если задать в качестве ограничения правило «Остаток денежных средств на счёте не может быть от- рицательным», то при попытке снять со счёта денег больше, чем там есть, си- стема выдаст сообщение об ошибке и не позволит выполнить эту операцию. Таким образом, ограничения целостности обеспечивают логическую непроти- воречивость данных при переводе БД из одного состояния в другое. В настоящее время разработано много различных моделей данных. Ос- новные – это сетевая, иерархическая и реляционная модели. |