КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Обновление данных в представлениях
Все обновления, выполненные в таблице базы данных, немедленно отображаются во всех представлениях, включающих обращение к этой таблице. Подобным же образом, можно ожидать, что если данные были изменены в представлении, то это изменение будет отображено и в той таблице (таблицах) базы данных, на которой оно построено. Однако это не так. В стандарте ISO указано, что представления могут быть обновляемыми только в тех системах, которые отвечают некоторым четко определенным требованиям. Согласно стандарту ISO представление может быть обновляемым в том и только в том случае, если: · в его определении не используется ключевое слово DISTINCT, т.е. результатов определяющего запроса не исключаются дублирующиеся строки; · каждый элемент в списке предложения SELECT определяющего запроса представляет собой имя столбца (а не константу, выражение или обобщающую функцию), причем имя каждого из столбцов упоминается в этом списке не более одного раза; · в предложении FROM указана только одна таблица – т.е. представление должно быть создано на базе единственной таблицы, по отношению к которой пользователь должен обладать необходимыми правами доступа; если исходная таблица сама является представлением, то это представление также должно отвечать указанным условиям; данное требование исключает возможность обновления любых представлений, построенных на базе соединения, объединения (UNION), пересечением (INTERSECT) или разности (EXEPT) таблиц; · предложение WHERE не должно включать никаких вложенных запросов типа SELECT, которые ссылаются на таблицу, указанную в предложении FROM; · Определяющий запрос не должен содержать предложений GROUP BY и HAVING. Кроме того, любая строка данных, добавляемая через представление, не должна нарушать требования поддержки целостности данных, установленных для исходной таблицы представления. Например, при добавлении через представление новой строки таблицы во все столбцы, отсутствующие в этом представлении, будут введены значения NULL. Однако при этом должны соблюдаться все требования NOT NULL, указанные в описании исходной таблицы представления. Основную концепцию, используемую при формулировании обсуждаемых ограничений, можно выразить с помощью следующего определения. Обновляемое представление. Для того чтобы представление было обновляемым, СУБД должна иметь возможность однозначно отобразить любую его строку или столбец на соответствующую строку или столбец его исходной таблицы. 13.6. Использование фразы WITH CHECК/OPTION. В представление помещаются только те строки, которые удовлетворяют условию WHERE в определяющем запросе. Если строка в представлении будет изменена таким образом, что она перестанет удовлетворять этому условию, то эта строка должна исчезнуть из данного представления. Аналогичным образом, в представлении будут появляться новые строки всякий раз, когда вставка или обновление данных в представлении приведет к тому, что новые строки будут удовлетворять условию WHERE. Строки, которые добавляются или исключаются из представления, принято называть мигрирующими. В общем случае фраза WITH CHECK OPTION оператора CREATE VIEW используется для предотвращения миграции строк из представления. Если для обновляемого представления указан параметр WITH CHECK OPTION, будут отвергаться все попытки добавления новых или изменения существующих записей таким образом, чтобы нарушалось условие WHERE оператора SELECT данного представления. Эта функция может оказаться настолько полезной, что работать с представлениями окажется удобнее, чем с таблицами базы данных. В том случае, когда оператор INSЕRT или UРDATE нарушает условия, указанные в предложении WHERE определяющего запроса, выполнение затребованной операции отменяется. В результате появляется возможность реализовать в базе данных дополнительные ограничения, направленные на сохранение корректности и целостности данных. Следует отметить, что фразу WITH CHECK OPTION можно указывать для обновляемых представлений.
Дата добавления: 2014-01-07; Просмотров: 261; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |