Лидеры рейтинга

ID: 401284

Михаил Александров

Советник

381

Россия, Санкт-Петербург


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

376

Россия, пос. Теплоозёрск, ЕАО


ID: 401888

puporev

Профессор

217

Россия, Пермский край


ID: 400669

epimkin

Профессионал

112


ID: 405338

vovaromanov.jr

1-й класс

105


ID: 242862

Hunter7007

Мастер-Эксперт

30

Россия, Омск


ID: 137394

Megaloman

Мастер-Эксперт

26

Беларусь, Гомель


8.10.2

13.10.2021

JS: 2.10.2
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-10-27 10:16:01-standard


Создание программ на языках Pascal, Delphi и Lazarus.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 160095

Раздел: Pascal / Delphi / Lazarus
Автор вопроса: Blackie
Дата: 10.02.2009, 13:34 Консультация закрыта
Поступило ответов: 1

Объясните, почему в качестве посредника между БД и программой принято делать представления (SQL-запросы). Какие преимущества это дает? Есть ли смысл использовать представление, если нужно вывести таблицу "как есть" (при этом такая таблица одна, а данные всех остальных таблиц данной БД выводятся с пом. представлений)?

Ответ # 243367 от Delph
Здравствуйте, Blackie!

Здесь всё зависит от задач, которые стоят перед Вами. Представление может не только собрать данные из нескольких таблиц, оно может так же провести некоторую фильтрацию, разграничить доступ к данным в зависимости от пользователя. В крупных проектах часто раграничивают права пользователей: данные даже одной таблицы могут быть полностью доступны только администратору, в то время как некоторая выборка из них - операторам (для каждого - своя). Можно наложить полный запрет на доступ к базовой таблице для операторов, одновременно сделать несколько представлений, каждое из которые фильтрует данные по некоторому правилу, и каждому оператору разрешить доступ к тому или иному представлению.
Третье важное применение представления - защита клиентского приложения от изменяющейся структуры базы данных. Поясню: требования к проекту могут измениться уже после того, как он окажется в процессе активной разработки. Например, какое-то из полей может вдруг стать вычисляемым или просто "переехать" в другую таблицу. Если чтение организовано через представления, а запись - через хранмые процедуры, то уже готовый код может и не заметить изменений в структуре, а это порой может сэкономить несколько месяцев работы целой группе программистов.

Повторюсь: внимательно посмотрите на задачу, стоящую перед Вами, и после этого Вы сможете решить, насколько эффективно будет использование такого посредника, как представление. Я же хочу упомянуть ещё об одном свойстве таких объектов: как правило, представление данных лежит внутри сервера СУБД в откомпилированном виде, поэтому если оно сложным образом собирает данные из нескольких таблиц, доступ к этим данным через него будет более быстрым, чем при использовании прямого SQL-запроса.

Delph

Посетитель
10.02.2009, 23:44
Мини-форум консультации # 160095
Нет сообщений в мини-форуме
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

puporev

Профессор

Рейтинг: 217

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 163

Gluck

9-й класс

Рейтинг: 82

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 0

Асмик Гаряка

Советник

Рейтинг: 0

Орловский Дмитрий

Мастер-Эксперт

Рейтинг: 0