Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
4.1.3 Использование представлений для скрытия сложного синтаксисаЕще одно применение представлений — скрытие SQL-операторов со сложным синтаксисом. Это может делаться для того, чтобы избавить разработчиков от необходимости вводить сложный оператор всякий раз, когда им требуется определенное представление, или для того, чтобы разработчики, не знающие SQL, могли тем не менее воспользоваться преимуществами, которые предоставляют сложные SQL-операторы. Кроме того, как и в случае использования представлений для вычислений, это обеспечивает единообразие результатов. Два наиболее распространенных варианта использования представлений в данной ипостаси — это скрытие соединений и скрытие вложенных запросов.
Предположим, что продавцам-консультантам галереи необходимо знать, какими художниками интересуется тот или иной клиент. Поскольку связь между сущностями CUSTOMER и ARTIST имеет вид N:M, она представлена в виде таблицы пересечения. Таким образом, чтобы отобразить сведения об интересах клиентов, необходимо выполнить два соединения: сначала соединить таблицы CUSTOMER и CUSTOMER_ARTIST_INT, а затем полученный результат соединить с таблицей ARTIST. Представление, содержащее эти два соединения, конструируется с помощью следующего SQL-оператора: CREATE
VIEW CustomerInterests AS
Этот оператор выполняет стандартное двойное соединение. Обратите внимание на использование псевдонимов для таблиц (С вместо CUSTOMER, C1 вместо CUSTOMER_ARTIST_INT, А вместо ARTIST). Такие псевдонимы упрощают выражения ON. Например, проще написать С.CustomerlD = C1.CustomerlD, чем CUSTOMER.CustomerlD = CUSTOMER_ARTIST_INT.CustomerlD. Использовать псевдонимы не обязательно. Также обратите внимание на переименование С.Name в Customer и A.Name в Artist. Такое переименование выполнять необходимо, в противном случае в пердставлении оказались бы два столбца с именем Name. СУБД не смогла бы различить эти два столбца и выдала бы ошибку при создании представления. Следующий оператор запрашивает данные из представления Customer Interests и сортирует результаты по столбцу Customer: SELECT
*
Результат получился следующий:
Представления используются также для скрытия группировки и встроенных функций. Рассмотрим следующее определение представления: CREATE VIEW ArtistWorkNet AS
Это представление соединяет таблицы TRANSACTION, WORK и ARTIST и создает вычисляемый столбец NetPrice. С этим представлением можно выполнять различные операции на языке SQL, как если бы NetPrice был обычным столбцом таблицы. Например, чтобы отобразить совокупную прибыль от продажи каждой картины, можно использовать следующий оператор: SELECT Name, Title, Copy, SUM(NetPrice) AS TotalNet
Результаты выполнения этого запроса показаны ниже:
У представлений имеется еще три важных применения. Во-первых, они могут обеспечивать определенный уровень абстракции между приложением базы данных и реальными таблицами. Этот уровень абстракции может быть важен, когда источник данных может меняться. Чтобы понять, о чем идет речь, рассмотрим следующее определение представления: CREATE
VIEW CustomerTablel AS
В сущности, это представление присваивает таблице CUSTOMER псевдоним CustomerTablel. Представление CustomerTablel можно обрабатывать точно таким же образом, как и таблицу CUSTOMER. Если в коде приложения используется имя CustomerTablel, то источник данных, на котором основано это представление, может меняться, не вызывая необходимости переписывать приложение. Следовательно, в определенный момент в будущем, если источником данных о клиентах станет другая таблица, например, NEW_CUSTOMER, все, что потребуется сделать, — это переопределить представление CustomerTablel следующим образом: CREATE
VIEW CustomerTablel AS
Весь код приложения, в котором используется имя CustomerTablel, без проблем будет работать с новым источником данных. Из-за потенциальной необходимости в изменении источников данных некоторые организации никогда не предоставляют разработчикам доступ к реальным таблицам. Вместо этого используются представления, базирующиеся на данных из этих таблиц. Такая стратегия повышает гибкость для будущих проектов по разработке баз данных и упрощает их перепроектирование.
|
1 |
Оглавление
|