|
Программирование >> Реализация целостности данных
ГЛАВА ЩЯОНнаЯ алгебра Ограничение Оператор ограничения только те записи, которые удов- летворяют заданному критерию выборки. Он реализуется при помощи выражения 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).
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 авто-матическ стаапяет общие поля - эффектный трюк , весьма облегчающий жизнь программистам.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |