какие возможные действия входят в описание модели данных субд
Вторая стадия концептуального проектирования (Модели данных СУБД. Представление концептуальной модели средствами модели данных СУБД)
6.1. Представление концептуальной модели средствами модели данных СУБД
Общие представления о моделях данных СУБД
Элемент данных (поле) – наименьшая поименованная единица данных. Используется для представления значения атрибута.
Запись – поименованная совокупность полей. Используется для представления совокупности атрибутов сущности (записи о сущности).
Экземпляр записи – запись с конкретными значениями полей.
Первичный ключ – минимальный набор полей записи, однозначно идентифицирующий экземпляр записи файла.
Файл – поименованная совокупность экземпляров записей одного типа. Используется для представления однородного набора сущностей.
Набор файлов – поименованная совокупность файлов, обрабатываемых в системе. Используется для представления нескольких наборов сущностей.
Введем понятие » группа «, обобщающее понятия » файл » и » запись «.
Группа – это поименованная совокупность элементов данных и других групп.
Важнейшим понятием концептуальной модели является понятие связи между сущностями (наборами сущностей). В моделях данных СУБД соответствующее понятие отражается понятием » групповое отношение «.
Групповое отношение – поименованное бинарное отношение, заданное на двух множествах экземпляров рассматриваемых групп. По характеру бинарных связей различают групповые отношения вида 1:1, 1:M, M:1, M:N. Пары чисел называют коэффициентами группового отношения. В групповом отношении один член группы назначается владельцем отношения, другой – членом.
База данных – поименованная совокупность экземпляров групп и групповых отношений.
Для представления группового отношения используется две формы:
а) Графовая. Группы изображаются вершинами графа, связи между группами – дугами, направленными от группы-владельца к группе-члену с указанием имени отношения и коэффициента.
По типу графов различают:
б) Табличная. Связь между группами изображается таблицей, столбцы которой представляют ключи соответствующих групп. Для формального описания таблицы используется математическое (теоретико-множественное) понятие отношения. Соответствующая модель данных называется реляционной моделью.
Модель данных СУБД описывается следующим образом:
В качестве основных элементарных операций обычно рассматриваются следующие: поиск записи с заданным значением ключа, чтение нужной записи, добавление записи, корректировка, удаление. В моделях данных СУБД также предусматриваются специальные операции для установления групповых отношений.
Построение модели данных базы данных (отображение концептуальной модели в модель данных СУБД)
Общие представления о моделях данных СУБД
В соответствии с основными этапами проектирования базы данных после построения концептуальной модели выбирается система управления базой данных, с помощью которой будет организована база данных и работа с ней. Каждая СУБД поддерживает определенные виды и типы данных, а также средства представления связей между данными, составляющими модель данных СУБД. Вторая стадия проектирования базы данных состоит в представлении построенной на предидущей стадии концептуальной модели средствами модели данных СУБД или в отображении концептуальной модели в модель данных СУБД. Этот этап часто называют логическим проектированием базы данных. Полученная при этом модель часто также называется концептуальной моделью или схемой (но специфицированной к понятиям модели данных СУБД). В некоторых источниках полученную модель называют логической структурой данных или моделью данных базы данных.
Можно по-разному характеризовать понятие модели данных СУБД. С одной стороны, модель данных СУБД – это способ структурирования данных, которые рассматриваются как некоторая абстракция в отрыве от предметной области. С другой стороны, модель данных СУБД– это инструмент представления концептуальной модели предметной области и динамики ее изменения в виде базы данных.
Учитывая обе вышеуказанные стороны, определим основные структуры моделей данных СУБД, используемые для представления концептуальной модели предметной области (сущностей, атрибутов, связей).
Элемент данных (поле) – наименьшая поименованная единица данных. Используется для представления значения атрибута.
С элементом данных неразрывно связано понятие «тип данных», который может принимать соответствующее поле. В разных СУБД могут использоваться разные типы данных, наиболее распространенными из которых (используемые во многих СУБД) являются следующие: числовой (numeric), символьный (char), дата (date) и т.д.
Запись – поименованная совокупность полей. Используется для представления совокупности атрибутов сущности (записи о сущности).
Экземпляр записи – запись с конкретными значениями полей.
Первичный ключ – минимальный набор полей записи, однозначно идентифицирующих экземпляр записи файла.
Файл – поименованная совокупность экземпляров записей одного типа. Используется для представления однородного набора сущностей.
Набор файлов – поименованная совокупность файлов, обрабатываемых в системе. Используется для представления нескольких наборов сущностей.
Введем понятие «группа», обобщающее понятия «файл» и «запись».
Группа – это поименованная совокупность элементов данных или элементов данных и других групп.
Важнейшим понятием концептуальной модели является понятие связи между сущностями (наборами сущностей). В моделях данных СУБД соответствующее понятие отражается понятием «групповое отношение».
Групповое отношение – поименованное бинарное отношение, заданное на двух множествах экземпляров рассматриваемых групп. По характеру бинарных связей различают групповые отношения вида 1:1, 1:M, M:1, M:N. Пары чисел называют коэффициентами группового отношения. В групповом отношении один член группы назначается владельцем отношения, другой – членом.
База данных – поименованная совокупность экземпляров групп и групповых отношений.
Для представления группового отношения используется две формы:
а) Графовая. Группы изображаются вершинами графа, связи между группами – дугами, направленными от группы-владельца к группе-члену с указанием имени отношения и коэффициента.
По типу графов различают:
· иерархическую модель (граф без циклов – дерево);
· сетевую модель (ориентированный граф общего вида).
б) Табличная. Связь между группами изображается таблицей, столбцы которой представляют ключи соответствующих групп. Для формального описания таблицы используется математическое (теоретико-множественное) понятие отношения. Соответствующая модель данных называется реляционной моделью.
Модель данных СУБД описывается следующим образом:
· определены возможные типы и характеристики логических структур данных (полей, записей, файлов);
· заданы правила составления структур более общего типа из структур более простых типов (например, записей из полей, файлов из записей и т.д.);
· определен способ представления связей (отношений) между файлами и записями) с помощью дополнительных полей ;
· определены возможные действия над структурами и правила их выполнения, включающие:
— основные элементарные операции над данными;
— обобщенные операции (процедуры);
— средства контроля относительно простых условий корректности операций добавления, обновления или удаления данных (ограничения), реализуемые автоматически запускаемыми при выполнении вышеуказанных операций специальными процедурами (триггерами);
— средства контроля сколь угодно сложных условий корректности выполнения определенных действий (правила);
— специальный класс процедур (триггеры).
В качестве основных элементарных операций обычно рассматриваются следующие: поиск записи с заданным значением ключа, чтение нужной записи, добавление записи, корректировка, удаление. В моделях данных СУБД также предусматриваются специальные операции для установления групповых отношений.
Обобщенные операции или процедуры – последовательность операций, реализующая определенный алгоритм обработки данных. Процедуры могут инициироваться СУБД автоматически, а также могут запускаться пользователем. Примерами процедур являются процедуры копирования БД, восстановления БД, процедуры, вычисляющие значения определенных атрибутов в БД по значениям других атрибутов, и т.п.
Средства контроля используются для реализации ограничений целостности концептуальной модели. Простейшие средства контроля – ограничения – используются для реализации как внешних ограничений концептуальной модели, так и внутренних ограничений модели данных. В качестве последних ограничений, в частности, реализованы ограничения на ввод данных несоответствующего типа, несоответствующей характеристики (по числу битов, по числу полей, по количеству записей и т.п.). Более сложные средства контроля (правила) позволяют вызывать выполнение определенной последовательности операций (сколь угодно сложной) при изменении или добавлении данных в БД и тем самым реализовывать ограничения целостности, описанные с помощью специальных конструкций.
Построение модели данных базы данных (отображение концептуальной модели в модель данных СУБД)
Результатом зтой стадии проектирования будет концептуальная модель, специфицированная к конкретной СУБД.
6.2 Типовые модели данных СУБД и представление концептуальной модели
6.2.1. Сетевая модель данных
Это одна из наиболее ранних моделей данных СУБД. Типовая сетевая модель данных характеристику наиных (Data Base Task Group – DBTG) системного комитета CODASYL (Conference of Data System Languages), основными функциями которого были анализ известных фирменных систем обработки управленческих данных с единых позиций и в единой терминологии, обобщение опыта организации таких систем и разработка рекомендаций по созданию соответствующих систем. Результаты работы комитета CODASYL изложены в [12]. Структура данных сетевой модели определяется в терминах раздела 36.1 (элемент, агрегат, запись, группа, групповое отношение, файл, база данных).
Рассмотрим для примера представление группового отношения M:N. В модель вводится дополнительная группа (дополнительный вид записей). Элементы этой записи представляют собой указатели на две исходные группы и указатели на экземпляры рассматриваемой дополнительной записи, связывающие их в список (цепь), соответствующий M и (или) N членам группового отношения (рис. 6.1.).
Рис. 6.1. Представление связей типа M:N
Представление связей 1:1, 1:M, N:1 является частным случаем связи типа M:N и осуществляется аналогично рассмотренному выше.
Заметим, что группа может быть членом более чем одного группового отношения. В этом случае вводится несколько дополнительных групп-указателей, а в группе – владельце отношений вводится несколько полей – указателей на дополнительные группы. Тогда множество записей (групп) и связей между ними образует некую сетевую структуру (ориентированный граф общего вида). Вершинами графа являются группы; дугами графа, направленными от владельца к члену группового отношения, – связи между группами.
Сетевая модель данных поддерживает все необходимые операции над данными, реализованные как действия со списковыми структурами.
Рис. 30. Представление связей типа M:N
Сетевая модель данных является, вероятно, наиболее общей по возможностям представления концептуальной модели. По сути, любая ER-диаграмма без каких-либо изменений представляется средствами сетевой модели. К недостаткам сетевой модели обычно относят сложность получаемой на её основе концептуальной схемы и большую трудоемкость понимания соответствующей схемы внешним пользователем.
Рассмотрим пример записи части ER-диаграммы ПРИМЕР(СТУДЕНТ и ФАКУЛЬТЕТ) из предыдущей лекции в терминах сетевой СУБД. Для примера рассмотрим несколько экземпляров сущности СТУДЕНТ и сущности ФАКУЛЬТЕТ (рис. 6.2.).
Рис. 6.2. Примеры экземплярв сущностей
Пусть студенты Иванов, Петров, Мишин учатся на факультете ВМК, Сидоров и Кашин на механико-математическом факультете. Тогда сетевая модель соответствующего фрагмента ER-диаграммы будет выглядеть следующим образом (рис. 6.3).
Рис. 6.3. Пример сетевой модели концептуального представления.
Заметим, что в дополнительном файле один из указателей не потребовался, так как рассматриваемая связь имеет тип 1:N, а не M:N. Значок Χ обозначает отсутствие дальнейшей связи.
Наиболее существенным недостатком сетевой модели является «жесткость» получаемой концептуальной схемы. Связи закреплены в записях в виде указателей. При появлении новых аспектов использования этих же данных может возникнуть необходимость установления новых связей между ними. Это требует введения в записи новых указателей, т.е. изменения структуры БД, и, соответственно, переформирования всей базы данных.
СУБД, поддерживающие сетевую модель, широко использовались на вычислительных системах серии IBM 360/370 (ЕС ЭВМ). В качестве примеров таких систем можно указать IDMS, UNIBAD (БАНК), и их аналоги СЕДАН, СЕТОР. На персональных компьютерах сетевые СУБД не получили широкого распространения. Примером сетевой СУБД для персонального компьютера является db_VISTA III. Отметим, что система db_VISTA реализована на языке С и поэтому является переносимой. Система может эксплуатироваться на ПЭВМ типа IBM PC, SUN, Macintosh.
6.2.2. Иерархическая модель данных
Это также одна из наиболее ранних моделей данных. Реализация групповых отношений в иерархической модели, как и в сетевой, может осуществляться с помощью указателей и представляется в виде графа. Однако, в отличие от сетевой модели, здесь существует ряд принципиальных особенностей.
1. Групповые отношения являются отношениями соподчиненности. Группа (запись) – владелец отношения имеет подчиненные группы – члены отношений. Исходная группа называется предком, подчиненная – потомком.
2. Групповые отношения образуют иерархическую структуру, которую можно описать как ориентированный граф следующего вида:
— имеется единственная особая вершина (соответствующая группе), называемая корнем, в которую не заходит ни одно ребро (группа не имеет предков);
— во все остальные вершины входит только одно ребро (все остальные группы имеют одного предка), а исходит произвольное количество ребер (группы имеют произвольное количество потомков);
3. Иерархическая модель данных может представлять совокупность нескольких деревьев. В терминологии иерархической модели деревья, описывающие структуру данных, называются деревьями описания данных, а сами структурированные данные (база данных) – деревьями данных.
Особенностью реализации операций поиска в иерархической модели является то, что операция всегда начинает поиск с корневой вершины и специфицирует иерархический путь (последовательность связанных вершин) от корня до вершины, экземпляры которой удовлетворяют условиям поиска.
Необходимо отметить, что программы, реализующие операции иерархической модели, существенно проще, чем аналогичные программы для сетевой модели, т.к. здесь много легче осуществлять навигацию по структуре. Целесообразность появления иерархической модели обусловлена, конечно, тем, что большинство организационных систем реального мира имеют иерархическую структуру (административное деление страны, организационная структура предприятия и т.п.). Соответствующее концептуальное представление также будет иметь иерархическую структуру и естественным образом может быть описано в терминах иерархической модели. В качестве недостатков иерархической модели можно назвать вышеуказанные недостатки сетевой.
СУБД, поддерживающие иерархическую модель, достаточно широко использовались на вычислительных системах IBM 360/370 (ЕС ЭВМ). В качестве примеров таких систем можно указать IMS, OKA и широко тиражируемую в СССР отечественную разработку ИНЕС. Примером иерархической СУБД для персональных ЭВМ является отечественная система НИКА (адаптация системы ИНЕС к IBM PC).
6.2.3. Реляционная модель данных
Учитывая отмеченные в предыдущих разделах недостатки сетевых и иерархических моделей, можно сформулировать желательные требования к модели данных:
— модель должна быть понятна пользователю, не имеющему особых навыков в программировании;
— появление новых аспектов использования данных и необходимость введения новых связей не должны приводить к реструктуризации всей модели данных и базы данных в целом.
Моделью данных, удовлетворяющей вышеуказанным требованиям, является реляционная модель, часто называемая также табличной.
Основным используемым понятиям здесь является понятие отношения, представляемого в виде таблицы, столбцы которой соответствуют атрибутам сущности (структура строки таблицы аналогична структуре записи). Каждый атрибут может принимать определенное множество значений, называемое доменом. Строка таблицы с конкретными значениями полей здесь называется кортежем (соответствует понятию «экземпляр записи»). Поля таблицы предполагаются элементарными (неделимыми). Таким образом, понятие «таблица» здесь соответствует понятию «файл» модели данных. Первичный ключ здесь –минимальный набор атрибутов, однозначно идентифицирующий кортеж в отношении.
Групповое отношение может представляться двумя способами. При первом способе в таблицы, соответствующие группам – членам отношения, добавляются столбцы ключевых полей (атрибутов) другого члена отношения (связь описывается через ключевые атрибуты). При втором способе групповое отношение определяется как дополнительная группа (дополнительная таблица). Столбцами этой дополнительной таблицы являются ключи групп – членов отношения. Таким образом, при любом способе соответствующая модель данных представляет собой совокупность структур таблиц.
Рассмотрим пример записи ER-диаграммы (см. рис. 5.2.) в терминах реляционных баз данных.
Сначала представим таблицы, соответствующие сущностям.
Код | Фамилия | Дата рождения | Место рождения |
Представим таблицы, описывающие связи.
Таблица «Студент учится на факультете»
Код студента | Номер факультета |
Таблица «Студент учится по специальности»
Код студента | Номер специальности |
Таблица «На факультете имеются специальности»
Номер факультета | Номер специальности |
Заметим, что здесь реализован вышеописанный второй способ представления групповых отношений. Очевидно, что можно построить много вариантов таблиц, представляющих соответствующую ER-диаграмму.
Для приведенных таблиц не указаны домены атрибутов. Отсутствие указания доменов приводит к неоднозначной интерпретации содержания таблицы. Например, две таблицы с одинаковыми атрибутами
Код студента | Фамилия | Дата рождения | Место рождения |
могут иметь разное смысловое значение и, соответственно, разное содержание (в одной таблице содержатся сведения о всх студентах факультета, в другой таблице сведения только о старостах факультета). Для устранения неоднозначной интерпретации в случае отсутствия указания доменов используют имя таблицы (СТУДЕНТ; СТАРОСТА)
Поддержка различных способов записи диаграмм «сущность – связь» (нотаций).
Например, при использовании программы MS Visio в качестве основной используется так называемая реляционная нотация. В данной системе обозначений связи обозначаются стрелками между сущностями и названия связей не пишутся. Название сущности выделяется цветом, поля, входящие в первичный ключ, отделяются чертой от остальных атрибутов. Обязательные атрибуты отображаются с помощью полужирного шрифта. Кроме того, слева от атрибута указывается, входит ли данный атрибут в первичный ключ, а также является ли атрибут внешним ключом.
Поддержка проектирования информационных хранилищ.
Поддержка совместного проектирования.
Поддержка триггеров, хранимых процедур и шаблонов.
Развитые средства проверки корректности моделей данных Reverse Engineering (генерация модели данных на основе анализа существующей базы данных), включая восстановление связей по индексам.
Автоматическая генерация SQL DDL для создания баз данных.
Полная совместимость и поддержка двадцати типов СУБД.
Приведем в качестве примера использования данного CASE-средства диаграмму «сущность – связь» фрагмента базы данных студентов. В сущности СТУДЕНТ (STUDENT) сохраняются анкетные данные о студентах. Помимо этой сущности на диаграмме приведены сущности-справочники: виды предшествующего образования (ОБРАЗОВАНИЕ-EDUCATION), данные о гражданстве (ГРАЖДАНСТВО- CITIZENSHIP), а также данные о специальности по которой он обучается (СПЕЦИАЛЬНОСТЬ-PROGRAM).). Сущности связаны между собой. Напомним, что мы выделяем две стадии процесса концептуального моделирования базы данных:
— построение обобщенной концептуальной модели, не зависящей от деталей реализации;
— отображение обобщенной концептуальной модели средствами модели данных выбранной конкретной СУБД.
На рисунках 28 и 29 приведены диаграммы «сущность – связь», представляющие концептуальную модель на первой и второй стадиях.. Демонстрация разных представлений концептуальной модели используется в ERwin для удобства разных категорий пользователей (специалистов предметной области и программистов). двух видах. Еще раз заметим, что это разное представление одной модели.
[Ш4]
Рис. 28 Общая ER-диаграмма, не зависящая от деталей реализации
Это представление позволяет сконцентрироваться на описании бизнес-правил, а следующее представление – на представлении модели в конкретной СУБД. В частности, на разных уровнях могут отличаться названия полей. В нашем примере в СУБД используются английские названия полей, а на пкрвом представлении мы определяем русские названия.
Рис. 29. Концептуальное представление, специфицированное к конкретной СУБД
На второй стадии диаграмма будет выглядеть по-разному в зависимости от того, для какого сервера баз данных будет использоваться данная модель и, соответственно, какие типы данных есть в данной СУБД. Приведенная на рисунке 29 диаграмма построена для СУБД Oracle 8.0.
После создания модели мы можем сгенерировать с помощью CASE-средства соответствующую структуру баз данных. Генерация осуществляется с помощью выполнения автоматически создаваемого скрипта.
Вопросы данной лекции рассматриваются в 2.
Контрольные тесты к лекции 6
Задача 1. Общие представления о модели данных?
Вариант 1.
Что такое модель данных СУБД?
+ð+ способ структурирования данных в СУБД
+ð+ виды и типы данных, поддерживаемые СУБД
+ð+ инструмент представления концептуальной модели в конкретной СУБД
ð концептуальная модель, специфицированная к конкретной СУБД
Вариант 2.
Какие понятия используются при описании данных в терминах модели данных?
ð атрибут
ð сущность
ð+ +поле
+ð+ запись
ð строка
+ð+ экземпляр записи
+ð+ файл
Какие формы используются для представления группового отношения?
+ð+ графовая
ð+ +табличная
ð строковая
ð столбцовая
ð+ +реляционная
Задача 2. Что входит в описание модели данных СУБД?
Вариант 1.
Как описываются структуры данных в модели данных СУБД?
+ð+ представляются конкретные типы данных и их характеристики
ð предлагается описать любые типы данных и их характеристики
+ð+ определены способы составления структур более общего вида из структур простых видов
ð предлагается описать способы составления структур более общего вида из структур простых видов
ð+ +представляются конкретные средства реализации связей
ð предлагается описать необходимые способы реализации связей
Вариант 2.
Какие возможные действия входят в описание модели данных СУБД?
+ð+ элементарные операции над данными
+ð+ обобщенные операции над данными (процедуры)
+ð+ средства контроля ограничений целостности
ð операции по анализу данных
ð действия, реализуемые прикладными программами
ð типы и характеристики структур данных
ð операции над данными
Задача 3.Как концептуальная модель специфицируется в терминах модели данных СУБД?
Вариант 1.
Как представляются сущности ER-диаграммы при отображении обобщенного представления средствами модели данных СУБД?
ð записями
ð атрибутами
ð файлами
ð+ таблицами
Как представляются атрибуты ER-диаграммы при отображении обобщенного представления средствами модели данных СУБД?
+ð+ полями с указанием выбранного типа данных СУБД и характеристики данных
ð полями с указанием задаваемыми пользователем типом
данных и характеристики данных
ð экземплярами записей
ð конкретными значениями
Вариант 3.
Как представляются связи, изображенные на ER-диаграмме при отображении обобщенного представления средствами модели данных СУБД?
ð с помощью стрелок
ð с помощью указателей
+ð+ с помощью понятий, описанных в выбранной СУБД
ð с помощью терминов, определенных пользователем
ð с помощью понятий ER-диаграммы
Задача 4. Что такое сетевая модель данных?
Вариант 1.
Как представляется сущность в сетевой модели?
ð записью
ð графом
ð строкой таблицы
ð+ +вершиной графа
Вариант 2.
Как представляется групповое отношение (связь) в сетевой модели?
+ð+ указателем
+ð+ дугой
ð дополнительным файлом
ð записью
Вариант 3.
Основные особенности сетевой модели.:
ð простота алгоритмов поиска
ð поиск начинается с корневой вершины
+ð+ удобство представления любой концептуальной модели
ð добавление новых сущностей и связей не требует изменения всей структуры базы данных
+ð+ высокая трудоемкость программирования
Задача 5. Что такое иерархическая модель данных?
Вариант 1.
Как представляется сущность в иерархической модели?
ð записью
ð деревом
ð строкой таблицы
ð+ +вершиной графа
Вариант 2.
Как представляется групповое отношение (связь) в иерархической модели?
+ð+ указателем
+ð+ ребром
ð записью
ð деревом
ð вершиной графа
Вариант 3.
Основные особенности иерархической модели.
+ð+ простота алгоритмов поиска
ð+ +поиск начинается с корневой вершины
ð удобство представления любой концептуальной модели
ð добавление новых сущностей и связей не требует изменения всей структуры базы данных
Задача 6. Что такое реляционная модель данных?
Вариант 1.
Как представляется сущность в реляционной модели?
ð строкой таблицы
ð столбцом таблицы
ð+ +таблицей
ð набором таблиц
Вариант 2.
Как представляется групповое отношение (связь) в реляционной модели?
ð строками таблицы
+ð+ столбцами таблицы
+ð+ таблицей
ð набором таблиц
Вариант 3.
Каковы основные достоинства реляционной модели?
+ð+ понятна для пользователя
+ð+ добавление новых сущностей и связей не требует изменения всей структуры базы данных
+ð+ поддерживается многими СУБД
ð не требует навыков работы с компьютером
Вариант 4.
Как выглядит концептуальная схема реляционной базы данных?
+ð+ набор заголовков таблиц с именами атрибутов
ð набор таблиц с данными
ð+ +совокупность схем отношений
ð текущие значения соответствующих отношений
Задача 7.Что такое многомерная модель данных?
Вариант 1.
Когда целесообразно использовать многомерную модель данных?
ð большое количество таблиц с данными
ð большой объем данных в таблицах
+ð+ большое количество таблиц одной структуры при разных значениях параметров.
ð большое количество атрибутов в таблице
Вариант 2.
Для каких основных целей используется многомерная модель?
ð для быстрого поиска информации
+ð+ для сравнительного анализа
+ð+ для оперативной аналитической обработки
+ð в технологии olap
Вариант 3.
Какие понятия характеризуют многомерный куб?
+ð+ измерение
+ð+ ячейка
+ð+ поле
+ð+ показатель
+ð+ размерность
Вариант 4.
Какие дополнительные операции определены в многомерной модели?
ð анализ данных
ð+ срез данных
ð+ агрегация данных
ð визуализация данных
Задача 8.Что такое автоматизированное проектирование баз данных?
Вариант 1.
Какие основные причины использования программных систем автоматизированного проектирования?
+ð+ необходимость создания нескольких последовательных версий базы данных
+ð+ целесообразность создания на первом этапе пробной версии базы данных
+ð+ необходимость сокращения затрат на начальное проектирование базы данных
ð необходимость сокращения затрат на окончательную доработку базы данных
Вариант 2.
Какие этапы создания базы данных поддерживаются средствами автоматизированного проектирования?
+ð+ разработка ER-диаграммы
+ð+ разработка программ создания структуры базы данных
+ð+ разработка интерфейса пользователя
ð разработка прикладных программ
Вариант 3.
При использовании каких СУБД для создания базы данных можно пользоваться средствами автоматизированного проектирования?
ð любых
+ð+ тех, для которых предназначено соответствующее средство
+ð+ для каких-то этапов создания базы данных – любых, для других этапов – только тех, для которых предназначено соответствующее средство
ð СУБД и средства автоматизированного проектирования обязательно должны быть разработаны одной фирмой-производителем
Литература
1. Мартин Дж. Организация баз данных в вычислительных системах: Пер. с англ. /Под ред. А.А. Стогния и А.Л. Щерса. – М.: Мир, 1980. – 664 с.
2. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для вузов. – СПб.: КОРОНА принт, 2000. – 416 с.
3. Горев А., Ахаян Р., Макашарипов С. Эффективная работа с СУБД. СПб.: Питер, 1997. – 700 с.
4. Карпова Т. Базы данных. Модели, разработка, реализация. – СПб.: Питер, 2001. – 304 с.
5. Саймон А.Р. Стратегические технологии баз данных: менеджмент на 2000 год: Пер. с англ. / Под ред. и с предисл. М.Р. Когаловского. – М.: Финансы и статистика, 1999. – 479 с.
6. Ульман Дж. Д., Уидом Дж. Введение в системы баз данных: Пер. с англ. – М.: Лори, 2000. – 374 с.
7. Швецов В.И., Визгунов А.Н., Мееров И.Б. Базы данных. Учебное пособие. Н.Новгород: Изд-во ННГУ, 2004. 271 с.
8. Хаббард Дж. Автоматизированное проектирование баз данных: Пер. с англ. под ред. А.Л. Щерса. – М.: Мир, 1984. – 296 с..
Лекция 7. Формализация реляционной модели
В лекции рассматриваются вопросы, связанные с формализацией наиболее распространенной в настоящее время модели данных СУБД – реляционной модели. Здесь рассматривается формализованное описание отношений и средств манипулирования данными в реляционной модели.
Ключевые словатермины: атрибут, домен, схема отношения, отношение, ключ отношения, реляционное исчисление, реляционная алгебра, операции реляционной алгебры, объединение, разность, декартово произведение, проекция, селекция, пересечение, q-соединение, естественное соединение.
Цель лекции: рассмотреть формализованное описание реляционной модели и операций манипулирования данными как основу для использования математических методов проектирования баз данных и основу создания языков запрсов к базе данных.
7.1. Формализованное описание отношений
и схемы отношений
Как уже отмечалось в п. 6.2.3, реляционная модель описывает представление данных в виде двумерной таблицы, называемой отношением. Наименованиями столбцов этой таблицы служат имена атрибутов. Рассмотрим формализованное описание соответствующих понятий.
ПустьA1, A2,…, An имена атрибутов. Каждому имени атрибута Ai соответствует допустимое множество значений, которые может принимать атрибут Ai. Это множество значений Di называется доменом атрибута Ai, . По определению, домены являются непустыми конечными или счетными множествами. Уточним, что в теории реляционных баз данных домен рассматривается как множество значений одного (причем простого) типа данных. Понятию домена Di соответствует множество значений, стоящих в столбце Ai рассматриваемой таблицы.
Схемой отношения R 1, A2, …, An> называеся конечное множество имен атрибутов 1, A2, …, An>, причем атрибут Ai принимает значение из множества Di (i=1, 2,…n), где n – арность отношения.
Понятию «схема отношения» соответствует описание структуры двумерной таблицы (имена столбцов и допустимые множества значений).
Отношением r со схемой R называется конечное множество отображений
D:< D1È D2È…ÈDn >, таких, что
tk(Ai) Î Di, ;
.
Отображение tk называется k-м кортежем, n – размерность кортежа.
Понятию k-го кортежа соответствует множество значений, стоящих в k-й строке рассматриваемой таблицы.
Понятию отношения r соответствует множество значений, стоящих во всех строках рассматриваемой таблицы.
Ключом отношения r со схемой R называется минимальное подмножество K = i1, Ai2,…, Aim>Í1, A2, …, An>, где
Í<1, 2, …, n>, такое, что любые два различных кортежа t1, t2 Îr (t1 ¹ t2) не совпадают по значениям множества K =i1, Ai2, …, Aim>.
Возможны случаи, когда отношение r имеет несколько ключей. Такие ключи называются потенциальными (возможными). Выбранный из них ключ для идентификации кортежей называется первичным ключом. Таким образом, достаточно знать значение кортежа на множестве K, чтобы однозначно его идентифицировать. Ключ используется для представления связей между отношениями. С этой целью первичный ключ одного отношения включается в структуру (набор атрибутов) связанного с ним отношения. Для второго отношения соответствующий ключ называется внешним ключом.
Совокупность схем отношений, используемых для представления концептуальной модели, называется схемой реляционной базы данных (реляционной моделью данных). Текущие значения соответствующих отношений называются реляционной базой данных.
Выпишем реляционную модель данных примера из предыдущей лекции (см. рис. 6.3.). Введем обозначения атрибутов всех соответствующих сущностей. Пусть A1 – код студента, A2 – фамилия, A3 – дата рождения, A4 – место рождения, A5 – номер факультета, A6 – название факультета, A7 – номер специальности, A8 – название специальности. Обозначим схему отношения СТУДЕНТ как R1, ФАКУЛЬТЕТ как R2, СПЕЦИАЛЬНОСТЬ как R3, СТУДЕНТ УЧИТСЯ НА ФАКУЛЬТЕТЕ как R4, СТУДЕНТ УЧИТСЯ ПО СПЕЦИАЛЬНОСТИ как R5, НА ФАКУЛЬТЕТЕ ИМЕЮТСЯ СПЕЦИАЛЬНОСТИ как R6.
Тогда реляционная модель соответствующего примера описывается следующей совокупностю схем отношений:
Напомним, что понятие «схема отношения» соответствует описанию структуры таблицы. Таблица с заполненными значениями (заполненными строками) соответствует понятие «отношение». Для данного примера отношения, соответствющие вышеуказанным схемам отношений будем обозначать
Отметим следующие свойства отношения:
1. Отношение имеет имя, которое отличается от имен всех других отношений.
2. Каждое значение элементов кортежей представляется простым (атомарным) типом данных.
3. Каждый атрибут имеет уникальное имя.
4. Значения всех атрибутов являются атомарными (неделимыми). Это следует из определения домена как множества значений простого типа данных, т.е. среди значений домена не могут содержаться множества.
1. Отметим следующие свойства отношения:
1.5. Порядок рассмотрения атрибутов в схеме отношения (отношении) не имеет значения, т.к. для ссылки на значение атрибута в кортеже отношения всегда используется имя атрибута.
2.1.Значения всех атрибутов являются атомарными (неделимыми). Это следует из определения домена как множества значений простого типа данных, т.е. среди значений домена не могут содержаться множества.
3.6. Порядок рассмотрения кортежей в отношении не имеет значения, т.к. отношение представляет собой множество кортежей, а элементы множества, по определению теории множеств, неупорядочены.
7.2. Манипулирование данными в реляционной модели
Для манипулирования данными в реляционной модели используются два формальных аппарата:
§- реляционная алгебра, основанная на теории множеств;
§- реляционное исчисление, базирующееся на исчислении предикатов первого порядка.
Механизмы реляционной алгебры и реляционного исчисления эквивалентны, т.е. для любого допустимого выражения реляционной алгебры можно построить эквивалентную формулу реляционного исчисления и наоборот
Отличаются два этих формальных аппарата уровнем процедурности. Выражения реляционной алгебры строятся на основе алгебраических операций (высокого уровня), и подобно тому, как интерпретируются арифметические и логические выражения, выражение реляционной алгебры также имеет процедурную интерпретацию. Другими словами, запрос, представленный на языке реляционной алгебры, может быть реализован как последовательность элементарных алгебраических операций с учетом их старшинства и возможного наличия скобок.
Для формулы реляционного исчисления однозначная интерпретация (соответствующая однозначная последовательность действий), вообще говоря, отсутствует. Формула только устанавливает условия, которым должны удовлетворять кортежи результирующего отношения. Поэтому языки реляционного исчисления являются более непроцедурными или декларативными.
Операции, реализуемые с помощью указанных аппаратов, обладают важным свойством: они замкнуты на множестве отношений. Это означает, что выражения реляционной алгебры и формулы реляционного исчисления определяются над отношениями реляционных БД и результатом вычисления также являются отношения. В результате любое выражение или формула могут интерпретироваться как отношение, что позволяет использовать их в других выражениях или формулах.
Как мы увидим, алгебра и исчисление обладают большой выразительной мощностью, очень сложные запросы к базе данных могут быть выражены с помощью одного выражения реляционной алгебры или одной формулы реляционного исчисления. Именно по этой причине такие механизмы включены в реляционную модель данных. Конкретный язык манипулирования реляционными БД называется реляционно полным, если любой запрос, выражаемый с помощью одной операции реляционной алгебры или одной формулы реляционного исчисления, может быть выражен с помощью одного оператора этого языка.
Заметим, что крайне редко алгебра или исчисление принимаются в качестве полной основы какого-либо языка БД. Обычно (как, например, в случае языка SQL) язык основывается на некоторой смеси алгебраических и логических конструкций. Тем не менее знание алгебраических и логических основ языков баз данных часто бывает полезно на практике.
7.3. Операции реляционной алгебры
Операции реляционной алгебры определены на множестве отношений и являются замкнутыми относительно этого множества (образуют алгебру). Оказывается, что любой произвольный запрос к БД можно представить в виде последовательности, составленной из пяти основных операций реляционной алгебры. Рассмотрим эти операции.
Объединение r È s