Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

16 Июнь 2019, 00:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice  без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 »   Вниз
  Печать  
Автор Тема: Что такое Представление таблиц?  (Прочитано 10867 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Syzygy
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Подмосковье
Сообщений: 1 522


WWW
« Стартовое сообщение: 21 Май 2010, 20:18 »

Коллеги, не могу въехать, что же это за зверь такой. Я спросил у справки, справка мне ответила:
Цитата: Справка ООо
Представление таблицы - это запрос, который сохраняется с базой данных.
Непонимающий
Сильно легче мне от этого не стало, т.к. запросы вроде бы тоже сохраняются с базой данных. Так в чём же принципиальное отличие Представления от обычного Запроса?
Записан

A Matter of Life and Death
PiVV
Гость
« Ответ #1: 21 Май 2010, 21:29 »

Есть подозрение, что так перевели то, что по английски называется "View" - ссылка.
Записан
kpalagin
Участник
**
Offline Offline

Сообщений: 32


« Ответ #2: 21 Май 2010, 21:35 »

У представления есть имя и к нему можно по этому имени обращаться, в отличие от запроса. См http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%28%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%29

Например (в псевдокоде)
create view kpalaginmessages as
select from messages where author = 'kpalagin'

а затем
select * from kpalaginmessages where date>'1.1.10'
Записан

Syzygy
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Подмосковье
Сообщений: 1 522


WWW
« Ответ #3: 21 Май 2010, 21:44 »

Друзья, спасибо за ссылки, но я всё равно не понял, что оно есть такое. Мне бы суть ухватить Грустный

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

Но что такое это самое Представление? Определение из вики просто убило.
Записан

A Matter of Life and Death
VlhOwn
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 076


« Ответ #4: 21 Май 2010, 21:51 »

Это просто аналог запроса. Но если запрос - это, грубо говоря, процедура в терминах языков программирования, то представление - это макрокоманда - вместо имени представления подставляется текст SQL-запроса, составляющего это представление. Запросы вычисляются, представления заменяются своим "телом" на этапе компиляции.
Таким образом, представления позволяют визуально структурировать и упрощать сложные запросы.

Некоторый аналог из языка Си: #define ....
« Последнее редактирование: 21 Май 2010, 21:57 от VlhOwn » Записан
prof-alex
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 354


« Ответ #5: 21 Май 2010, 22:12 »

Определение из вики просто убило.
Какое слово не понятно?

Реализация view очень сильно разнится у разных SQL-серверов, но суть одна.
Записан


«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» Э. Дейкстра
Syzygy
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Подмосковье
Сообщений: 1 522


WWW
« Ответ #6: 21 Май 2010, 22:30 »

Представление (англ. view, в сленге программистов часто используется в качестве заимствования из английского — «вьюшка») — виртуальная (логическая) таблица, представляющая собой поименованный запрос (алиас к запросу), который будет подставлен как подзапрос при использовании представления.

Собственно, "виртуальная таблица". Создал представление, открыл на редактирование - по сути, просто SQL-код. Какая же это таблица?

Дальше совсем всё тяжко... Представление - это виртуальная таблица, которая поименнованный запрос, который будет подставлен как подзапрос при испьзовании представления. Чтобы понять рекурсию, надо понять рекурсию...

Как я понял из объяснение Валеры, запросы - это SQL-код, который выполняется и выводит результат (часть таблицы). Представление - это тот же самый SQL-код, которые также выполняется, но он как бы "инкапсулирован" в некий объект (это самое представление) и этот объект имеет имя. Т.е. вместо того, чтобы говорить базе - вот тут вот выберешь то-то по таким-то условиям из того-то места, говоришь - сделай мне следующее представление (код которого и выбирает это самое то-то по таким-то условиями из того-то места).
Записан

A Matter of Life and Death
VlhOwn
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 076


« Ответ #7: 21 Май 2010, 22:40 »

Рома, суть не в том, что кто-то куда-то инкапсулирован. Вот этот код
У представления есть имя и к нему можно по этому имени обращаться, в отличие от запроса. См http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%28%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%29

Например (в псевдокоде)
create view kpalaginmessages as
select from messages where author = 'kpalagin'

а затем
select * from kpalaginmessages where date>'1.1.10'

порождает следующий код
select * from (select * from messages where author = 'kpalagin') where date>'1.1.10'
не в момент исполнения запроса, а в момент его синтаксического разбора. И потом уже этот запрос исполняется.
« Последнее редактирование: 21 Май 2010, 22:42 от VlhOwn » Записан
Syzygy
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Подмосковье
Сообщений: 1 522


WWW
« Ответ #8: 21 Май 2010, 22:55 »

Так. Сейчас попробую перевевести на русский:

Создать Представление Кирилл как:
   Выбрать сообщения, где Автор="Кирилл" (Выбираются записи, где автор - Кирилл)

а затем

Выбрать из  "Кирилла", то, где дата > 1.1.10
т.е. Выбрать сообщения где автор равен "Кирилл" и дата > 1.1.10 (Выбираются записи, где автор - Кирилл и дата - не меньше 1.1.10)

Так получается?
« Последнее редактирование: 21 Май 2010, 23:00 от Syzygy » Записан

A Matter of Life and Death
VlhOwn
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 076


« Ответ #9: 21 Май 2010, 23:02 »

Да.
Записан
prof-alex
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 354


« Ответ #10: 22 Май 2010, 03:45 »

Создал представление, открыл на редактирование - по сути, просто SQL-код. Какая же это таблица?
В общем случае да, но есть реализации допускающие вставку и модификацию данных в представлении. Так что вроде и таблица, но заполняется данными из других источников. Ну в википедии об этом написано.
Записан


«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» Э. Дейкстра
Helen
Администратор
**
Offline Offline

Пол: Женский
Расположение: Екатеринбург
Сообщений: 2 564


WWW
« Ответ #11: 22 Май 2010, 08:21 »

Я использую представление в качестве сохранённого длинного запроса из нескольких таблиц.

Например, для работы часто нужна фильтрация по списку работающие сотрудников. Утомительно всякий раз писать длинный запрос, который сначала составляет этот список, а потом отбирает в нём по нужным критериям. Поэтому запрос, составляющий список, сохранён в виде представления

Представление таблицы
Такая лексема у нас есть в интерфейсе?
Записан
Syzygy
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Подмосковье
Сообщений: 1 522


WWW
« Ответ #12: 22 Май 2010, 08:26 »

Такая лексема у нас есть в интерфейсе?
Есть "Представление (таблицы)" - в интерфейсе. В справке именно представление таблиц.
Записан

A Matter of Life and Death
BigAndy
Участник
**
Offline Offline

Сообщений: 16


« Ответ #13: 22 Май 2010, 16:02 »

Друзья, спасибо за ссылки, но я всё равно не понял, что оно есть такое. Мне бы суть ухватить
Представления - это запросы, которые выполняются движком базы данных, создаваемые DDL'ом Create View.... Собственно запросы -те, что сохраняются в движке ООО. Для ООО представления являются простыми таблицами. И обрабатывются как таблицы.
Учитывая многообразие запросов движка БД, различия могут быть обчень большими.
Записан
dr.Faust
Администратор
**
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 340


« Ответ #14: 22 Май 2010, 16:43 »

Ключевое слово здесь:
Для ООО представления являются простыми таблицами. И обрабатывются как таблицы.
Запрос - некоторый код формирующий результат - тоже таблицу, но на основе исходной. Как если бы кто-то взял бумажную таблицу и отобрав в ней, допустим, только чётные записи построил из них новую.
Представление, это как если бы этот кто-то не строил новую таблицу, а изогнул гормошкой исходную так, что в ней остались бы видны только чётные записи. для создания представления используется запрос, тот что юзался в первом случае.
Записан

Свобода информации - свобода личности!
Страниц: 1 2 »   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!