Реляционные базы данных хранят отношения – таблицы, состоящие из строк и столбцов. Строка отношения называется кортежем и представляет собой запись (record в смысле языка программирования, например, Pascal) о какой-либо сущности предметной области.
Таб.№
Фамилия
Имя
Отчество
Год рождения
А5
Соловьев
Александр
Александрович
Д16
Фомин
Василий
Иванович
Е4
Зубова
Оксана
Петровна
Б11
Булатов
Александр
Иванович
Рис. 21. Пример отношения
Запись состоит из определенных полей. В одну таблицу сводятся записи о сущностях, имеющие одинаковую структуру (одинаковые по смыслу поля). Столбец отношения, т.е. имя поля и значения этого поля для разных сущностей называется атрибутом. При этом количество атрибутов (столбцов) называется степенью отношения, а количество кортежей (строк) – кардинальностью отношения.
Значения элементов в столбце принадлежат одной и той же области определения, называемой доменом. Например, домен для последнего столбца на рис. множество целых неотрицательных чисел. Если же иметь в виду, что в данное отношение включены работники некоторой организации, которым наверняка не более 100 лет, то домен можно определить как множество целых чисел из интервала [текущий год – 100, текущий год – 14]. Последнее число определяет то, что малолетние дети тоже не могут быть работниками. Каждому домену может быть присвоено имя (в программировании известны такие имена доменов как int, integer, real, float, char и др.).
Реляционной схемой называется имя отношения, за которым следует множество пар имен атрибутов и доменов. В программировании семе соответствует определение типа записи. В целом же реляционная база данных – это набор нормализованных отношений.
В распределенной базе данных отношение может быть разделено на части, называемые фрагментами. Разделять отношение можно, «разрезая» таблицу по горизонтали, т.е. разделяя ее на подмножества кортежей, либо, «разрезая» по вертикали на подмножества атрибутов. В первом случае получаются горизонтальные фрагменты, во втором – вертикальные фрагменты. Возможна и смешанная фрагментация.
Фрагменты размещаются в различных локальных базах данных.
Причиной фрагментации является следование принципу локальности ссылок, в соответствии с которым данные, насколько это возможно, должны храниться как можно ближе к местам их использования и/или к местам их возникновения. Поскольку источники данных и пользователи привязаны к сайтам, находящимся в различных точках физического пространства, а реляционные схемы, которыми они пользуются, могут быть одинаковы, возникает естественная фрагментация.
Если по различным сайтам распределена информация о различных сущностях предметной области, то возникает горизонтальная фрагментация. Если об одних и тех же сущностях на разных сайтах имеется информация разного рода (известны значения разных атрибутов), то возникает вертикальная фрагментация.
Фрагментация может возникать и в связи с конфиденциальностью информации. Например, некоторые атрибуты кортежей могут быть доступны только с определенного сайта и храниться на этом сайте. Скажем, атрибут, отражающий состояние здоровья работника, доступен только в медицинской части организации. Получаем вертикальную фрагментацию.
Фрагментация обладает очевидными недостатками, для преодоления которых нужно прибегать к специальным мерам.
Первый недостаток заключается в усложнении поддержки целостности данных, второй – в снижении производительности приложений, использующих данные, находящиеся в различных фрагментах.