В процессе обработки данных возникает необходимость использования более сложных действий над данными, чем позволяют навигационные и спецификационные операции. Например, при выполнении операций селекции необходимо автоматически поддерживать целостность данных. Этого можно добиться путем создания специальной программы, которая будет осуществлять проверку большого количества данных. Эта программа, естественно, потребует использования локальных операций манипулирования над данными. С другой стороны, она может рассматриваться как глобальная операция проверки целостности данных.
Такие глобальные операции называют процедурами базы данных. Другими словами — это обобщенные операции изменения состояния базы данных. Процедура базы данных рассматривается как единая макрооперация, при выполнении которой ни одна другая процедура или программа не может обратиться к данным. Поэтому такие процедуры или операции называют еще транзакциями.
Один из видов процедур БД — вычисление значений, которые непосредственно в ней не хранятся, например вычисление сумм, подсчет числа экземпляров, определение минимума, максимума. Процедуры этого вида называют функциями агрегации.
Важный вид процедур БД — вычисление значений атрибута, например, вычисление возраста студента по дате его рождения и текущей календарной дате. Процедура базы данных, обеспечивающая вычисление значения какого-либо атрибута, называется виртуальным атрибутом. Для пользователя он представляется как обычный атрибут, обладающий теми же свойствами, что и любой другой атрибут.
Процедуры БД применяются также для контроля целостности, контроля доступа к данным, расширения языка данных операциями, первоначально в них не предусмотренными.
Особый вид процедур БД составляют процедуры, активизирующиеся при определенных условиях и выполняющих одну или более операций включения, удаления или модификации. Такие процедуры называют запускаемыми включением, удалением, обновлением.
Анализируя различия между процедурами БД и операциями, можно отметить следующее:
1. Процедуры при своем выполнении могут захватывать обширные области данных;
2. Процедуры могут реализовать широкий круг действий;
3. Вызовы процедур не выполняются пользователем;
4. Процедуры обычно описываются в схеме данных, в то время как операции включаются в пользовательскую программу.
Появление и использование БД привело к необходимости создания специальных программ, обеспечивающих управление данными, хранящимися в базе, т. е. систем управления базой данных (СУБД).
Таким образом, СУБД — это специальный пакет программ, посредством которого реализуется централизованное управление БД и обеспечивается доступ к данным. База данных вместе с системой управления его являются составными частями банка данных.
Развитие СУБД привело к появлению ряда языков описания состояния предметной области, которое в СУБД интерпретируется состоянием БД. Множество допустимых состояний БД определяется схемой БД, задаваемой на языке определения данных (ЯОД).
Изменение состояния БД и извлечение данных из базы для последующей обработки обеспечивается средствами языка манипулирования данными (ЯМД).
Описание структуры данного некоторого типа на формализованном языке называют схемой этого данного. Язык описания данных — это язык высокого уровня, предназначенный для схемы БД. С его помощью описываются типы данных, хранящихся в базе, и их структура. Язык манипулирования данными (ЯМД) используется при написании прикладных программ, обращающихся к данным, хранящимся в базе. Основной функцией ЯМД является выполнение операций ввода-вывода при обработке информационной базы. Собственно говоря, совокупность ЯОД и ЯМД и определяет модель данных, понимаемую как совокупность методов и средств определения логической структуры БД.
В качестве моделей данных, наиболее широко используемых при создании БД, обычно применяются: реляционная; сетевая; иерархическая. Рассмотрим их детально.
22. 4. Реляционная модель данных
Основные понятия. В основе реляционной модели данных (РМД) лежит математическая теория отношений. Этим определяется и название модели (RELATION — отношение). Отношение служит средством структуризации данных.
Таким образом, представив n-местное отношение в виде таблицы, тем самым определенным образом структурируем данные. Поэтому, естественно, подобные образования называют реляционной структурой или реляционным типом. Массив данных, представленный набором реляционных структур, образует реляционную БД, и схема реляционной БД будет представлена набором схем отношений:
R1(A11, A12,,..., A1k);
R2(A21, A22,,..., A2l);
…………………….
Rm(Am1, Am2,...,Amn),
где А1j— имя атрибута, Rj— имя отношения.
Ограничения модели. Число ограничений в реляционной модели невелико, что обеспечивает достаточную свободу в выборе представления типов связей и сущностей. Основным ограничением является невозможность представления в отношении дубликатов строк. Это ограничение позволяет уточнить понятие ключа отношения. В РМД ключ определяется как подмножество атрибутов, позволяющих однозначно идентифицировать кортеж. Так как дубликаты строк в отношении запрещаются, то это означает, что каждое отношение имеет, по крайней мере, один ключ (состоящий из всех атрибутов). Отношение может иметь и несколько ключей, называемых возможными ключами. Один из возможных ключей выбирается в качестве первичного. Следует иметь в виду, что первичный ключ не разрешается обновлять и никакой из его компонентов не может принимать значение «неопределено».
Второе ограничение модели состоит в том, что порядок столбцов в таблице является значимым. Пренебрегать упорядочением столбцов можно только в том случае, если каждому столбцу присвоено уникальное имя.
На значения атрибутов в модели можно задавать ограничения в явном виде. Большинство явных ограничений, встречающихся на практике, это ограничения на зависимости между атрибутами. Явное задание ограничений обеспечивает возможность самостоятельного исследования зависимостей между атрибутами.
Зависимость отражает тот факт, что один объект зависит от другого. В РБД в качестве таких объектов рассматриваются либо аргументы, либо кортежи. Одним из основных типов зависимостей, рассматриваемых в реляционных БД, являются функциональные зависимости.
Рассмотрим формальное определение функциональной зависимости, принимая следующие обозначения. Большими буквами А, В, С,... обозначим одиночные атрибуты, X, Y, Z — множество атрибутов, а а, b, с,... и х, у, z,... — соответствующие им значения. Большие буквы R, S будем применять для обозначения отношений.
Предположим, что существует некоторое универсальное отношение U, в котором каждый атрибут имеет уникальное имя. При этом будем считать, что множество атрибутов любого другого отношения представляет собой некоторое подмножество атрибутов универсального отношения U.
Пусть А и В атрибуты отношения R. Тогда говорят, что атрибут В отношения R функционально зависит от атрибута А, если в каждый момент времени каждому значению а соответствует не более одного значения b. Функциональную зависимость f атрибута В от атрибута А обозначают: f:A→B.
Эту зависимость f можно также представить множеством упорядоченных пар {<а, b>|а A, b
В}, в которых каждому значению а соответствует только одно значение b. При этом говорят, что В функционально зависит (или просто зависит) от A, а A функционально определяет (или определяет) В.
Если существует единственная функциональная зависимость В от A, то ее обозначают просто А→В. В случае отсутствия между ними функциональной зависимости вводят обозначения А≠В.
Если А→В и одновременно В→А, то между А и В существует взаимно однозначное соответствие, что записывается как А↔В.
Пусть: f:A1, А2,... ,Ап→В и g:A1, А2,..., Ат→В, где т<п. Так как атрибуты A1, А2,..., Ат функционально определяют В, то Ат+1, Ат+2,... ,Ап называют посторонними в f. В этом случае В неполно зависит от
A1, А2,... ,Ап. Если для данного f не существует g с вышеуказанными свойствами, т. е. левая часть f не содержит посторонних атрибутов, то говорят, что реализуется полная функциональная зависимость.
Пусть имеется множество атрибутов A1, А2,... ,Ап отношения R, а также множество F функциональных зависимостей X→Y, где X и Y — подмножества атрибутов множества A1, А2,..., Ап. Тогда из функциональных зависимостей, входящих в F, могут быть выведены другие функциональные зависимости, присущие отношению R.
Обозначим через F+ замыкание множества функциональных зависимостей F, т. е. полное множество зависимостей, которое можно получить из F. Множество зависимостей F+ можно построить из F на основе следующих правил вывода функциональных зависимостей (ФЗ):
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |


