![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
phpmas |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 11.5.2011 Репутация: нет Всего: -1 |
Можно коротко объяснить зачем нужны представления?
|
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
они предоставляют возможность абстрагировать клиентское приложение от физического представления данных. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 3 Всего: 329 |
Можно сделать очень сложный запрос, а на клиенте выполнить просто select .... from <представление>.
Клиент может всё время выполнять select .... from <представление> и даже не зная о том, что на сервер условия запроса могут меняться. Допустим есть таблица с именем Table1 и представление с точно таким же именем. Если выполнить select .... from Table1, то запрос обратиться НЕ к таблице, а к представлению. Добавлено через 4 минуты и 4 секунды Представление, это как бы поименованный запрос. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Простой пример... надо изменить структуру БД.
Если всё завязано непосредственно на таблицы, то изменение структуры ведёт к переписыванию всех запросов, задеваемых изменением. Пример - содержимое некоего поля вынесено в таблицу-справочник, и вместо текстового поля у нас теперь ссылка на эту таблицу... и во все запросы приходится добавлять эту таблицу с соотв. джойном, вносить соотв. правки... застрелиться. Если всё завязано на представления - достаточно после изменения структуры откорректировать текст запроса представления так, чтобы оно отдавало тот же вид исходных данных на базе изменившихся таблиц... и (в первом приближении) всё. Т.е. вносим нужный джойн в представление, а запросы к представлению не изменяются. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 2 Всего: 54 |
это ты описываешь идеальный вариант, на практике ни разу не было таких изменений что бы не пришлось править view. это я к тому что надо долго думать перед тем как определить view. -------------------- Кольцов Виктор Владимирович |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
Даже когда исправить надо лишь план запроса? ![]() На моей практике... Внешние системы и репортеры, в абсолютном своем большинстве смотрят в базу исключительно через интерфейсные вьюхи. Для разраба преимущества такого подхода еще и в том, что в случае уточнения схемы данных поврежденные объекты становятся известны сразу, а не в процессе исполнения. Клиентские же приложения, не всякий раз смотрят во вьюхи, но как правило. Особенно в случаях, когда модификация таблы влечет за собой сколь нибудь сложные и обильные пересчеты. Приходится ее выполнять средствами instead of триггеров, как минимум для того, чтобы управлять порядоком захвата блокировок и избегать дедлоков. /* Впрочем, это еще и средство обхода специфичного для оракла ограничения на чтение мутирующих источников данных */ -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
А я для кого пишу, что
? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
Akina, я полагаю Frees имел в виду что в подавляющем большинстве случаев, при уточнении схемы данных приходится менять и структуру вьюхи - набор возвращаемых ею полей. И это, в свою очередь, влечет за собой перекомпиляцию приложения.
Это сообщение отредактировал(а) Zloxa - 29.6.2011, 08:45 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Гм... вот это как раз странно. И в этом случае как раз от наличия вьюхи нет никакого профиту. Но такое возможно лишь, если появляется новая сущность или новый атрибут сущности, вроде - а это уже далеко не изменения в способе хранения данных (приведение структуры из дебильного вида к каноническому не рассматриваем). -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
Ну да.. и именно такого рода уточнения схемы превалируют на практике ))) И именно по этой причине может показаться что выставлять оголтело вьюхи клиентам не имеет особого смысла. Казалось бы, если потребуется радикальным образом поменять структуру хранения, ничего не мешает сделать alter table rename, create veiw as select * from ..... Однако, из той же практики, средства доступа, бывает, несколько по разному рабтают с вьюхами и таблами. И когда мы таблу подменяем вьюхой, приложение перестает работать. Потому я, лично, предпочитаю сразу выставить гуйпрогеру вьюхи, чтобы не ограничиать себя в дальнейшем и, если чо, не идти к нему с поклоном, "мол прости засрантса, не подумал сразу, ты уж перепши там, чтоб обратно все заработало" -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 2 Всего: 54 |
Именно это я и хотел сказать. а разве план запроса из view не зависит от того как запрашиваешь? например дописал условие к селекту из view план поменяется.. или я неправ? -------------------- Кольцов Виктор Владимирович |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
[чушь. не правильно понял вопрос]
Добавлено через 6 минут и 9 секунд Ты прав. Но на план модифицированного запроса тоже можно влиять изменяя текст вьюхи. Хинты, альтерварианты и пр... Это сообщение отредактировал(а) Zloxa - 29.6.2011, 13:06 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Общие вопросы по базам данных" | |
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |