Программирование >>  Реализация целостности данных 

1 ... 32 33 34 [ 35 ] 36 37 38 ... 124


ГЛАВА ЩЯОНнаЯ алгебра

Ограничение

Оператор ограничения только те записи, которые удов-

летворяют заданному критерию выборки. Он реализуется при помощи выражения WHERE оператора SELECT, например:

SELECT * FROM Employees WHERE LastName = DavOlio ;

Для базы данных этот оператор возвращает запись, от-

носящуюся к сотруднику Нэнси Даволио (Nancy Davolio), поскольку однофамильпев в этой компании у нее нет (символ *, подставленный вместо списка полей оператора SELECT, означает все поля ).

Критерий выборки, задаваемый в условии WHERE, может быть

сколь угодно сложным. Допускаются операции AND и OR над логическими выражениями. Выражение проверяется для каждой отдельной записи из набора. В результирующий набор включаются все записи, для которых результатом проверки условия WHERE будет True. Записи, для которых результат проверки условия WHERE - значение Гя/.или Null, не включаются в результирующий набор.

Проекция

Как мы только что убедились, ограничение позволяет сделать горизонтальный разрез набора данных. же, напротив, делает вертикальный разрез - возвращает подмножество полей оригинального

набора данных.

Эта операция выполняется в SQL простым перечислением полей в <списке полей> оператора SELECT. В результирующий набор записей включаются только те поля, которые есть в списке. Например, чтобы получить список сотрудников компании, можно использовать

следующий оператор:

SELEC FirstName, Extension

FROM Employees

ORDER BY LastName, FilД-NamR:

Оператор ORDER BY сортирует данные. В нашем примере полученный список будет отсортирован в алфавитном порядке: сначала

по полю LastName, затем по ]]0лю tirsiName.

Соединение

Операции соединения, пожалуй, наиболее распространены из всех ре-операций. Вряд ли я переоценю их значение, если скажу, что эти операции составляют фундамент реляционной модели - ведь без них декомпозиция данных не имела бы никакого смысла



невозможности вновь соединить данные, разбитые на множество отношений. Оператор соединения как раз и выполняет эту работу: объединяет наборы записей, основываясь на сравнении значений одного или нескольких их нолей. .

Соединения реализуются при помощи оператора Ю IN в онерато-ре SELECT. В зависимости от типа сравнения полей, указываемых в операторе, а также от о. каким образом обрабатываются результаты сравнения, соединения можно разделить на несколько видов. Рассмотрим каждый из них.

Эквисоединения

Соединение, в основе которого лежит оператор равенства, называется В результате возвра-только те для которых значения указанных полей совнадают.

Рассмотрим типичный случай связанных таблиц, полученных в результате процесса нормализации еУ.О - первичный ключ таблицы Orders и внешний ключ таблицы Order Details (рис. 5-1).

Orders

J f

OrderlD

CustomerlD

Employee ID

OrderDate

Required Date

ShippedDate

ShipVia

Freight

ShipName

ShipAddrcss

ShipCity

ShipRegion

ShipPostalCode

ShipCountry

Onjor Details

OrderlD

ProductlD

UnitPrice

Quantity

Discoont

Puc. 5-1, Эт МОЖНО соединить, используй агПОр JOIN

Чтобы соединить енормализовать) таблицы, используйте следующий оператор SELECT:

SELECT OrderlD ustonerlD, [Order Details]. ProductlR

FROM Orders

INNER JOIN [Order Details] ON Orders. OrderlD = [Order Details]. OrderlD WHERE (((Orders.OrderID)=10248));



ГЛАВА оннзя аягебр

После выполнения этого оператора вы получите набор записей, показанный на рис. 5-2.

02AЭЛЫEY М

1024Bi VINET 72

Рис. 5-2. Этот набор записей являетсатам соединения таблиц Orders и Order Details

ПРИМЕЧАНИЕ Если вы выполните этот запрос к базе данных Northwind в Access 2000, то в наборе результатов увидите имя клиента, а не его идентификатор (CuslomerrO) В Access смиестпует возможность отображать не то, что непосредственно хранится в полях если при создании таб-

лицы использовался элемент управления, позволяющий просматривать и преобразовывать значения (lookup control). Это, несомненно, облегчает интерактивную работу с Access, однако может доставить много дополнительных трудностей тем, кто хочет с помощью этой базы данных проиллюстрировать выполнение какого-либо оператора.

Естественные соединения

Естественные соединения (natural joins) - это частный случай эквисо-единений; соединения, удовлетворяющие следующим условиям:

основаны на операторе равенства;

в них участвуют все общие поля;

в результирующий набор записей включен только один набор общих полей.

Естественные соединения ничем не выделяются среди остальных

видов соединений - они не представляют собой особых случаев обработки данных, и механизм СУБД не предусматривает для них специальной поддержки. Это всего лишь наиболее распространенный вид соединений, что отражено в их названии.

Один особый случай естественных соединений достаточно интересен с точки зрения его обработки механизмом СУБД Microsoft Jet. Если между двумя таблицами существует связь один ко многим , и включенные в представление, находятся на стороне многие этой связи, механизм СУБД Microsoft Jet выполнит стан-дартну auiuw автоматического исправления записей (Row Fix-Up или Ыокир). Если в курсоре используются поля, которые содержатся в критерии соединения, механизм СУБД Microsoft Jet авто-матическ стаапяет общие поля - эффектный трюк , весьма облегчающий жизнь программистам.



1 ... 32 33 34 [ 35 ] 36 37 38 ... 124

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика