powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / О хранении разреженных массивов
25 сообщений из 42, страница 1 из 2
О хранении разреженных массивов
    #34276704
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а точнее - о понимании различия между логическими и физическими уровнями.
Нам тут мумпсятники в нос тыкали разреженными массивами, мол, их хранить неудобно, много места теряется в таблице с 1001 колонкой, 999 из которых пустые.
Так вот, дорогие мои сторонники мумпса : есть такая вполне себе реляционная субд Sybase IQ. Которая хранит данные на физическом уровне по столбцам. И вот в ней хоть тесять тысяч колонок в таблице заведите, но если в них ничего нет - то и на диске ничего не хранится.

В таком вот аксепте
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34276741
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один бит (NULL FLAG) на поле на таблице шириной в 1024 колонки - доп расход максимум 128 байт.
Индексы не пострадают, NULL в них писать незачем.
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34276803
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегалло

А что, кто-то понимает разреженные массивы как "редкозаполненные"?


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34276837
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегаллоно если в них ничего нет - то и на диске ничего не хранится.
Ну слава богу, мы уж переживать начали.
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34276923
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mv
Выбегалло

А что, кто-то понимает разреженные массивы как "редкозаполненные"?


Posted via ActualForum NNTP Server 1.3

а кто-то нет ? Кому-то непонятно, что в 99.(9) случаев фоновым элементом будет NULL ?
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34277009
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегалло
а кто-то нет ? Кому-то непонятно, что в 99.(9) случаев фоновым элементом
будет NULL ?

Ну, удачи вам. Веселых гигабайтов. Заполненных Null - ами.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34277209
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегаллоа точнее - о понимании различия между логическими и физическими уровнями.

К вопросу о понимании. Отсутствие элемента массива - это не пустое поле, а отсутствие самой записи, так что вообще ничего не хранится.
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34277252
Выбегаллоа точнее - о понимании различия между логическими и физическими уровнями.
Нам тут мумпсятники в нос тыкали разреженными массивами, мол, их хранить неудобно, много места теряется в таблице с 1001 колонкой, 999 из которых пустые.
Так вот, дорогие мои сторонники мумпса : есть такая вполне себе реляционная субд Sybase IQ. Которая хранит данные на физическом уровне по столбцам. И вот в ней хоть тесять тысяч колонок в таблице заведите, но если в них ничего нет - то и на диске ничего не хранится.

В таком вот аксепте
можно и попугая научить курить.
))) чего только не сделают с таблицами,
чтобы сделать их "наиболее эффективной и универсальной формой хранения данных".
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34277265
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мыш Летучийможно и попугая научить курить.
))) чего только не сделают с таблицами,
чтобы сделать их "наиболее эффективной и универсальной формой хранения данных".

Конечно, не все же такие умные, чтобы хранить ВСЕ возможные разновидности таблиц в ISAM
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34277326
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неплохо бы поиметь в студии определение разреженного массива.
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34277450
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНеплохо бы поиметь в студии определение разреженного массива.
это такие массивы, редкие.

если серьезно, то в М хранение данных организовано обычным страничным B-деревом, у которого используется динамический "составной" ключ, с произвольной длиной ключа. И вместо ссылки на данные у обычного индекса хранятся сами данные (тоже произвольной длины, в тех версиях М с которыми я работал, до 255 символов).

почему разработчики М называют это "разреженным массивом" - я не знаю.
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34277632
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда сначала что есть массив.
Например двумерным массивом назовем
отношение R(X1:T1,X2:T2,A:TA), на котором определена функциональная зависимость
F:(X1,X2)->A.

1) разреженность относительно текущего значения R :
R[X1,X2] < R[X1]*R[X2]

2) разреженность относительно области определения ФЗ:
R[X1,X2] < T1*T2
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34277950
Andreww
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 kdv

Вам как работавшему с М и свободному от догм, вопрос.

kdvв М хранение данных организовано обычным страничным B-деревом, у которого используется динамический "составной" ключ

А в памяти-то массивы (т.е. просто кусок памяти с адресацией) есть ?

А то чего-то я читал документацию по "будущему человечества постреляционной объектной (другие страшные слова добавить по вкусу) субд СФСРУ" нигде не увидал про работу с памятью, локаль, глобаль, туманные намёки, на то что хранится (я про память) всё в узлах и типа "так же как на диске".
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34277958
Andreww
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СФСРУ следует читать как CACHE :)
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34279232
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА в памяти-то массивы (т.е. просто кусок памяти с адресацией) есть ?
конечно есть. собственно,
set a(15)=10
и
set ^a(15)=10

отличаются только тем, что ^a будет сохранено на диск. А без "зычки" - в памяти. А какие уж они в памяти, "разреженные" или нет - это я не знаю.
"мерность" массивов в памяти, если мне память не изменяет :-), аналогичная дисковым.
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34279296
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
маркетоидная активность InterSystems построена на следующем:
CACHE представляет собой комбинацию из ядра нижнего уровня и нескольких надстроек.

1. собственно, ядро и язык M. Это то, где нет никаких объектов, SQL и прочего. Сплошные "разреженные массивы" что в памяти что на диске. Язык - интепретируемый.
для работы с массивами существует ряд операций: прямая запись и чтение, и перебор - получение следущего узла индекса на этом уровне или по уровню вглубь.
Например, мы сделали "массив" на диске (что присваивается элементам массива - в данном примере пофиг. в переменная в памяти - "локаль", на диске - глобаль)

set ^a(1)=..
set ^a(2)=..
set ^a(3)=..

потом захотели добавить "измерение" на уровень 2. и добавили
set ^a(2, 1)=...
set ^a(2, 'a)= ...
и так далее. Так вот, если в цикле применить $o(^a(x)) то оно будет "перебирать" элементы первого уровня, т.е. 1,2, 3. Если другую конструкцию (в диамсе 3.1 было $zo()), то будет перебирать 1, 2, 2.1, 2.а, 3.

Собственно, все. А. В конструкции ^a(1)=x значение x - строка. Чисел как таковых явно нет, т.е. они есть, но отличить в переменной число от строки можно написав if +a ...
"атрибуты" в M обычно хранят по образу
set ^a(1)='field1|field2|field3|'
в качестве разделителя может выступать любой символ. Есть функции вытаскивания "поля" из такой строки - $extract, $piece и т.п.

2. Поверх этого дела в CACHE есть надстройка SQL. Можно создавать "таблицы", но они превращаются в глобали этой прослойкой. Т.е. это эмуляция РМД

3. опять же поверх М есть надстройка Cache Object Language (или Script). Это объекты, которые при хранении опять же проецируются на глобали, но как то там можно писать триггеры и т.п.


Собственно, все, про "пост-реляционные" СУБД. :-)

Да. И разработчики, которые активно используют CACHE, они прослойку SQL практически никогда не используют, да и понятно, что тут она как козе баян. В основном используют М и COS.
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34279560
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv"атрибуты" в M обычно хранят по образу
set ^a(1)='field1|field2|field3|'А можно наверно и
set ^a(1,'field_name1')='field1'
set ^a(1,'field_name2')='field2'
?
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34279697
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelR kdv"атрибуты" в M обычно хранят по образу
set ^a(1)='field1|field2|field3|'А можно наверно и
set ^a(1,'field_name1')='field1'
set ^a(1,'field_name2')='field2'
?

Может быть и можно, но в примерах на M частенько наблюдается хранение информации не только в листьях, но и узлах

s ^a(1)='field1|field2|field3|'
s ^a(1,102)='line1'
s ^a(1,103)='line2'

при обходе дерева атрибуты от элементов(говоря языком XML) придётся, а даже намёка на схему в М я пока не обнаружил
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34280014
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод Выбегаллоа точнее - о понимании различия между логическими и физическими уровнями.

К вопросу о понимании. Отсутствие элемента массива - это не пустое поле, а отсутствие самой записи, так что вообще ничего не хранится.

К вопросу о понимании : вполне себе реляционная СУБД Sybase IQ таки да, ничего не хранит.
Как я уже говорил. Или до мумсоидов с первого раза не доходит ?
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34280018
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилНеплохо бы поиметь в студии определение разреженного массива.

Массив, в основном содержащий "фоновый элемент" (в условиях СУБД - чаще всего NULL)
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34280058
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRА можно наверно и
можно. смотря что делать. Можно вообще так:
set ^buh('накладные', 1)=...
set ^buh('счета-фактуры', 55)=...
set ....

для ссылок приходится делать отдельные узлы или глобали. например:
set ^a("транзисторы", "кт315а")="50/50/15/22/77"

если надо "сортировку" по параметру 1, то тогда делаем
set ^a("транзисторы по ...", 50)="кт315а"
таким образом мы можем при быстром доступе к "параметру" получить
"идентификатор" ссылки на полную "запись".
и т.д.

Изопропила даже намёка на схему в М я пока не обнаружил
по идее, она якобы не нужна. или ее можно хранить в другой глобали. или в этой же...
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34280081
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбегалло ИзопропилНеплохо бы поиметь в студии определение разреженного массива.

Массив, в основном содержащий "фоновый элемент" (в условиях СУБД - чаще всего NULL)

Тогда нужно постороить сначала отображение М-структуры на массив и только после этого рассуждать о "разреженности" массива
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34280538
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилНеплохо бы поиметь в студии определение разреженного массива.

Типа прикалываешься?
Сам попросил!:

• Массив – упорядоченный список, в котором все подсписки одного уровня имеют одинаковую длину.
• Вектор – одномерный массив, т.е. элементы массива не являются списками.
• Матрица – двумерный массив, подсписки которой имеют такую же длину, как и сама матрица. В более общем случае под матрицей предполагается двумерный массив.
• Под строками матрицы m понимают ее подсписки (т.е. m[ ]), а под столбцами – списки, состоящие из элементов подсписков, находящихся на одинаковых позициях (т.е. m[[All,i]]).
• Массивы, имеющие большую часть элементов равными нулю, т.е. больше половины массива, называются разреженными.
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34280690
MX -- ALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nik_x ИзопропилНеплохо бы поиметь в студии определение разреженного массива.

Типа прикалываешься?
Сам попросил!:

• Массив – упорядоченный список, в котором все подсписки одного уровня имеют одинаковую длину.
• Вектор – одномерный массив, т.е. элементы массива не являются списками.
• Матрица – двумерный массив, подсписки которой имеют такую же длину, как и сама матрица. В более общем случае под матрицей предполагается двумерный массив.
• Под строками матрицы m понимают ее подсписки (т.е. m[ ]), а под столбцами – списки, состоящие из элементов подсписков, находящихся на одинаковых позициях (т.е. m[[All,i]]).
• Массивы, имеющие большую часть элементов равными нулю, т.е. больше половины массива, называются разреженными.


-- может ли "m" быть не числом ?
-- а если часть элементов вообще отсутствует ?
-- а если "большая часть элементов " is Null ?
...
Рейтинг: 0 / 0
О хранении разреженных массивов
    #34280876
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nik-xТипа прикалываешься?
Сам попросил!:

• Массив – упорядоченный список, в котором все подсписки одного уровня имеют одинаковую длину.

какая то отсебятина. Что-то я не припоминаю таких дерзких трактований общепринятых терминов.
Массив это список из n элементов, действительно имеющих одинаковую длину.
А разреженный массив, это когда элементы массива, котором не заданы значения, не хранятся в массиве.

Но называть глобали "разреженным массивом" - imho криво, неправильно, и путает тех, кто не в курсе. Хотя м.б. и звучит.
- А как вы храните данные!
- Данные у нас хранятся в разреженных массивах!
- 8-0

это смешно даже по отношению к РСУБД, где таблица, сиречь "массив записей", является даже не "разреженным массивом", а неупорядоченным множеством. Тут, собственно, и разница моделей данных. М это работа с упорядоченными массивами (как правило перебор элементов массива), а Р - работа с множествами (операции над множествами).
...
Рейтинг: 0 / 0
25 сообщений из 42, страница 1 из 2
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / О хранении разреженных массивов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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