powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ХП и вьюхи
25 сообщений из 361, страница 1 из 15
ХП и вьюхи
    #39104647
sky2high
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Подскажите, в каких случаях уместнее использовать хранимые процедуры, а в каких создавать вьюхи?

Слышал такую позицию:
для измения базы - использовать хп,
для вывода из базы - view.

Может, кто-то подскажет точнее?
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39104654
sky2high
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Немного переформулипую вопрос.
Для вывода данных, что из этого использовать? Стоит ли делать хранимки типа getStudents(group_id) или лучше view?
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39104673
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sky2highдля измения базы - использовать хп,
для вывода из базы - view.
внезапно
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39104742
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вьюхи могут вполне редактируемыми быть
хранимки могут возвращать наборы данных
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39104774
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если можете сделать view - лучше сделать view.
Бывает так что view сделать не получится.
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39104792
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинЕсли можете сделать view - лучше сделать view.
Я бы сказал чуть иначе: если можете обойтись без view - не делайте view.
С процедурами - аналогично.

Ибо при использовании не к месту наносят больше вреда чем пользы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39104798
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sky2highЗдравствуйте.
Подскажите, в каких случаях уместнее использовать хранимые процедуры, а в каких создавать вьюхи?

Слышал такую позицию:
для измения базы - использовать хп,
для вывода из базы - view.

Может, кто-то подскажет точнее?

Для всего -- ХП.

View практически бесполезно использовать.
Можно какие-то часто используемые повторно части запросов оформлять в виде view, но это нужно уметь делать так, чтобы
это не влияло на производительность. Фактически там можно использовать только фильтры и JOIN-ы и выражения.
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39104809
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivДля всего -- ХП.
в какой СУБД?
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39104888
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПодскажите, в каких случаях уместнее использовать хранимые процедуры, а в каких создавать вьюхи?

Ну вроде они могут совместно использоваться. Вьюхи, например, можно использовать в ХП, чтобы избежать использования в оных таблиц. Что как бы повышает независимость ХП от структуры БД: в каких-то случаях удастся поменять структуру БД и вьюху, а код ХП не трогать..

Вообще цель представления: как бы представлять данные в виде соотвествующем взглядам группы пользователей. Тогда как в таблицах наиболее абстрактные данные, их которых могут быть получены представления.
Например, в таблице "Люди" (Пиплы, если по англицки), а в представлении "Студенты"

ХП - это типа процедурное расширение декларативных языков БД, например SQL.

Т.е. как бы нет явного отрицания одного другим.
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39104899
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoВообще цель представления: как бы представлять данные в виде
соотвествующем взглядам группы пользователей.
Это так в каком-нибудь Access-е. В остальных СУБД view это просто хранимый запрос (иногда
с материализованным result set-ом). Соответственно и применяется исключительно для
упрощения запросов, посылаемых из приложения. При избыточном использовании способны
провалить производительность под плинтус.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39104919
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovvadiminfoВообще цель представления: как бы представлять данные в виде
соотвествующем взглядам группы пользователей.
Это так в каком-нибудь Access-е. В остальных СУБД view это просто хранимый запрос (иногда
с материализованным result set-ом). Соответственно и применяется исключительно для
упрощения запросов, посылаемых из приложения. При избыточном использовании способны
провалить производительность под плинтус.

И в каком-нибудь Access-е, это тоже "просто хранимый запрос". Способ хранения это что-то физическое, а там было исключительно про логическое. Имеет значение именнованность и что возвращает.
Потому можно применять и для представления пользоватей, и для повышения независимости и для повторности: например, какой-то запрос часто юзается в других. Я, например, в коде ХП стараюсь исключать в принципе использования таблиц напрямую.
Оракл типа берет много физики на себя, потому подминать логику ради физики вроде не часто приходится.
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39105305
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sky2high,
для вывода из базы view уместно использовать в случае "горизонтального" распределения прав доступа на таблицу.
Когда не надо видеть всю таблицу, а только определенный набор полей (если СУБД не поддерживает функционал).

К примеру, по пользователям - для всех доступна вьюха "имя + роль + внутренний телефон", в схеме администратора "имя+роль+хэш пароля+персональные данные+CVV банковской карты с балансом". Все перечисленные поля и куча других = лежат в одной таблице.

Второй вариант использования - инкапуслирование типичных сложных запросов ТОЛЬКО в случае если планируется периодическое объединение структуры в рамках других запросов.

Если же конечная цель - вывод данных на клиента - имхо удобнее пользовать хранимую процедуру вместо представления.

Хранимые же процедуры - ИМХО наиболее предпочтительны для использования во всех остальных случаях, особенно для ввода/изменения данных.
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39105307
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sky2highЗдравствуйте.
Подскажите, в каких случаях уместнее использовать хранимые процедуры, а в каких создавать вьюхи?


View и ХП предназначены для облегчения работы с БД.
View чтобы не писать большой и сложный запрос, которым часто пользуются.
ХП, для облегчения работы по изменению данных.
Хотя это не "стандарт".

Например в PostgreSQL можно создать view который по поведению не я отличаться от обычной таблицы (можно описать действия на SELECT, INSERT, UPDATE)

А так все зависит от конкретной задачи которая стоит перед вами.
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39105422
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83sky2high,
для вывода из базы view уместно использовать в случае "горизонтального" распределения прав доступа на таблицу.
Когда не надо видеть всю таблицу, а только определенный набор полей (если СУБД не поддерживает функционал).
это не актуально для интернет и других многозвенных приложений. Если обычный клиент-сервер, то здесь конечно различные горизонтальные, вертикальные, диагональные и т.п. права нужно настраивать и поддерживать.
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39105490
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmMasterZivДля всего -- ХП.
в какой СУБД?

В любой, где есть ХП, разумеется....
:-)
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39105492
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoDimitry SibiryakovПодскажите, в каких случаях уместнее использовать хранимые процедуры, а в каких создавать вьюхи?

Ну вроде они могут совместно использоваться. Вьюхи, например, можно использовать в ХП, чтобы избежать использования в оных таблиц.


Да ну, не... Ты шутишь, да ?
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39105499
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХП существенно повышают безопасность, т.к. пользователь не имеет доступа к таблицам.

В отличие от запроса, ХП может содержать очень сложную логику.
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39105502
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulView и ХП предназначены для облегчения работы с БД.
View чтобы не писать большой и сложный запрос, которым часто пользуются.
ХП, для облегчения работы по изменению данных.


Не.
View -- это как подпрограммы на SQL. Предназначены для возможности повторного использования кода на SQL.
Но, к сожалению, в 80% случаев для этой цели они не подходят, потому что в итоге не работают.

Процедуры предназначены для реализации логики на стороне БД, и они, напротив, подходят очень хорошо для этого и
очень хорошо работают.

Для именно облегчения работы -- это ORM, но они для аналитических запросов не подходят от слова "совсем".
ХП трудно назвать облегчением, потому что писать-то кода приходится больше...
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39105529
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivВ любой MS SQL , где есть ХП, разумеется....
Так будет всё же точнее.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39105541
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMasterZivВ любой MS SQL , где есть ХП, разумеется....
Так будет всё же точнее.
еще нужно добавить что в старых двухзвенных приложениях построенных на множестве программного кода
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39105609
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivvadiminfoпропущено...

Ну вроде они могут совместно использоваться. Вьюхи, например, можно использовать в ХП, чтобы избежать использования в оных таблиц.


Да ну, не... Ты шутишь, да ?
Ну тада еще типа шутка: ф-ии ХП могут использоваться во Вьхах. Продолжение скептическое отношение к идее противопочтавления ХП и Вьюх.

MasterZivView -- это как подпрограммы на SQL. Предназначены для возможности повторного использования кода на SQL.

Возможно, это все же это принижение достоинства РМД в наличии в нем View. Например, против ООМД. Чисто кодерская сторона дела.

Однако, БД может быть использована разными типами потребителей (тем более программ). И данные могут иметь много разных представлений.
Да и если брать кодерскую сторону дела, то все же есть еще нежелание лезть лишний паз в код.
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39105731
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sky2highСтоит ли делать хранимки типа getStudents(group_id) или лучше view?
Хранимки удобнее в тех случаях, когда набор данных может получаться разными способами (например, в зависимости от group_id обращение должно идти к разным таблицам). Вьюхи удобнее в тех случаях, когда один набор данных должен фильтроваться и/или агрегироваться разными способами (например, то по group_id, то по student_id, то по среднем баллу в зачётке). Итого в нормально спроектированной базе вьюхи почти всегда удобнее.
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39105733
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНе.
View -- это как подпрограммы на SQL. Предназначены для возможности повторного использования кода на SQL.


Об этом и речь.

MasterZivНо, к сожалению, в 80% случаев для этой цели они не подходят, потому что в итоге не работают.


У меня с точностью до наоборот.
View всегда был удобным инструментом.

MasterZivПроцедуры предназначены для реализации логики на стороне БД, и они, напротив, подходят очень хорошо для этого и
очень хорошо работают.


Опять же для меня с точностью до наоборот.
Все что не укладывается в РМД, лучше в ХП не делать, а делать в более удобных ЯП. :-)

MasterZivДля именно облегчения работы -- это ORM, но они для аналитических запросов не подходят от слова "совсем".
ХП трудно назвать облегчением, потому что писать-то кода приходится больше...

Ну мое знакомство с ORM, показало для меня, что ORM скорее он мешает чем помогает.
Хотя для самых простых случаев облегчает разработку.
Но шаг влево, шаг в право, проще самому написать SQL запрос, чем пытаться сделать "нужный" Entity.
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39105809
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sky2highНемного переформулипую вопрос.
Для вывода данных, что из этого использовать? Стоит ли делать хранимки типа getStudents(group_id) или лучше view?
Конечно же view - это просто "виртуальная table" которая может объединять данные из нескольких физических, процедура - функция, которая может возвращать и результирующий набор в том числе. Ну и одно принимает параметры, другое - нет.

p.s. не слушайте вредных советов о типа "нормально спроектированных базах" где view по определению больше чем процедур. От качества проектирования это конечно же не зависит. Отличие выше, что удобнее или чего требует задача, то и используйте.
...
Рейтинг: 0 / 0
ХП и вьюхи
    #39106149
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sky2highа в каких создавать вьюхи?
Когда нужно сделать индекс по двум полям из разных таблиц))
...
Рейтинг: 0 / 0
25 сообщений из 361, страница 1 из 15
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ХП и вьюхи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]