|
Программирование >> Реализация целостности данных
Все операции выполняются над целым отношением, и результатом выполнения этих операций также является целое отношение. Этот принцип называется замыканием. Если у вас имеется опыт работы с базами данных Microsoft Access, вы, конечно, догадались, что в данном случае представляет собой отношение - это набор записей или, в терминах SQL Server, набор результатов. Формулируя принципы реляционной модели, доктор Кодд выбрал термин отношение tipn), потому что он однозначен (в то время как, например, термин таблица имеет множество дополнительных значений). Весьма распространено следующее заблуждение: реляционная модели вана так потому, что она определяет отношение жду таблицами амом деле название этой модели происходит от отношений, в ее основе. В рамках реляционной модели данные представлены в виде отношения на концептуальном уровне; однако при этом совсем не дается никаких указаний, каким образом данные будут реализованы на физическом уровне. Разделение концептуального и логического уровней давно стало привычным для нас; но всего лишь 30 лет назад этот метод произвел тоящий переворот в области программирования баз данных. Ранее программирование баз данных сводилось в основном к написанию программного кода для физического управления устройствами, предназначенными для храненияданных. В действительности отношения не нуждаются в физическом представлении. Некий набор записей может соответствовать некоей физической таблице, размещенной на диске, а может быть и сформирован из столбцов нескольких десятков таблиц с вычисляемыми полями, значения которых вообще нигде не хранятся. Такой набор записей является отношением, поскольку организован в виде строк и столбцов, и его значения - скаляры. Его существование абсолютно, никак не зависит от физической реализации. Принцип замыкания заключается в том, что и базовые таблицы, и результаты операций над ними на концептуальном уровне представляются как отношения. Он позволяет непосредственно использовать результаты одной операции в качестве исходных данных для выполнения другой. Таким образом, и Microsoft Jet, и SQL Server дают возможность использовать результаты одного запроса для составления нового. Этот принцип реализует в области разработки баз данных функциональность, аналогичную подпрограммам в процедурном программировании - возможность инкапсуляции сложных или часто повторяющихся операций для повторного использования. Предположим, вы составили запрос с именем eQuery, выполняющий операпию конкатенации над данными и помещающий имя и фамилию физического лица в вычисляемое поле FullName. Вы можете составить следующий запрос, в которое тг£)мег)?будет выступать в качестве источника. Вычисляемое поле Name используется в этом случае точно так же, как любое другое поле базовой таблицы. Заново выполнять вычисления, в результате которых будет получено имя физического лица, не нужно. чтобы все значения в являлись скаляра- ми, может иногда создавать дополнительные трудности и соблюдается не абсолютно строго. Принцип существования одного и только одного значения для любой строки и любого столбца субъективен и зависит от семантики модели данных. Например, имя и фамилия физического лица в одной модели могут быть представлены как одно значение, а в других моделях - разбиты на несколько отдельных значений (например, имя и фамилию или обращение, имя, отчество и фамилию). С точки зрения абстрактной теории ни один из этих вариантов не является более правильным, чем остальные; представление данных зависит от выбранного варианта реализации системы. Термины, используемые IB реляционной теории На рис приведен пример отношения и наглядно представлены формальные названия его основных выделенных компонентов. Читатели, знакомые с основами реляционной теории, могут заметить, что данное отношение не приведено к нормальной форме. Тем не менее, оно все равно остается отношением, поскольку данные представлены в виде строк и столбцов и все значения являются скалярами. Кортеж Атрибут Заголовок
-Тело Рис. 1-3. Компоненты отношения ЧАСТЬ 1 Тйория раяящионнШ 6iP3 йаниь Как мы условились ранее ением называется вся структура в целом. Каждая строка, содержащая жадные, является кортежем. Строго говоря, каждая строка является ежем. однако - как правило, опускается. Число кортежей в отношении определяет мощность отношения- В приведенном на рис. 1-3 примере мощность отношения равна П. Каждый столбец отношения называется атрибутом. Число атрибутов в отношении определяем wocmh этого отношения, для проиллюстрированного примера она равняется трем. Каждое отношение можно разделить на две части - заголовок и тело. Тело отношения состоит из кортежей, в то время как заголовок не имеет более мелких компонентов структуры. Обратите внимание - название каждого из атрибутов состоит из двух терминов, разделенных двоеточием (например ;;Сы/7-е/!С>).Первая часть названия - непосредственно имя атрибута, вторая - имя домена. Домен атрибута - это вид данных, которые представляет данный атрибут (в приведенном примере - валюта). Понятие тмен не эквивалентно понятие ип данных . Различие между этими двумя понятиями будет подробно обсуждаться далее в этой . .и: . На практике домен в заголовках часто не указывается. Тело отношения состоит из неупорядоченного набора кортежей (число кортежей может быть любым, от 0 и более). Остановимся на некоторых важных моментах рвьг1. отношение не упорядочено. Понятие номер строки не применимо к отношению. Для отношений вдствует никакого внутреннего порядка. Во-вторых, отношение может иметь нулевое число кортежей так называемое пустое отношение торое. тем не менее, является отношением). В третьих, отношение представляет собой набор. Элементы в этом наборе по определению уникально имруечтые. Поэтому чтобы таблица являлась отношением, каждая ее строка должна быть уникально идентифицируемой, записи в ней не должны повторяться. Читателей, знакомых с документацией к Access или SQL Server, возможно, удивит, что они не встречали там терминов, используемых в этой книге. Однако следует заметить, что здесь я использую терминологию, общепринятую в технической литературе; терминология, используемая Microsoft, несколько отличается от нее. (Я специально ввела эти термины в чтобы читатели не смущались, услышав где-нибудь, например, об п-кортежах и третьей размерности). Ни в коем случае не следует забывать, что отношения определяются исключительно на концептуальном уровне. Как только речь заходит о конкретных примерах из области баз данных, отношения становятся наборами записей (для Microsoft Jet) или наборами результатов (для
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |