powered by simpleCommunicator - 2.0.34     © 2025 Programmizd 02
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Файловая система в качестве БД.
25 сообщений из 78, страница 1 из 4
Файловая система в качестве БД.
    #33662962
oraweb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, мои мысли покажутся странными, сумбурными, тем не менее, попытаюсь изложить свою идею, возможно, найду понимание.
Что если подружить SQL c файловой системой напрямую, минуя всяких посредников в виде БД
Примерно так:
Если Linux:
SELECT * FROM /
Получаем:
/..
/.automount
/bin
/boot
/dev
/etc
/home
и т.д.
Думается, что такая "база" даст любой промышл. фору и уделает ее с потрохами по всем показателям.
Таким образом, вся поддержка базы отпадает, достаточно хорошо знать файловую систему, полномочия польз., резервирование, стандарт SQL и драйвер стыкующий FS с SQL.

Если что-то похожее уже имеется, дайте ссылку.
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33662968
Пьяный Лох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любая книжка по OLEDB содержит какой-нить пример типа "а теперь давайте построем оледиби провайдера поверх NTFS".

WinFS (когда появится) вообще на Юконе обещался быть.

SQL уже с чем только не подружили. И еще подружат не раз.
Новизны в идее не чувствуется...

З.Ы.
Был в своё время шокирован таким примером на VB (не про файловую систему, но все же):
Пристрелить freecell на машине GAMER
Код: plaintext
1.
2.
3.
4.
5.
SET WMI = GetObject("winmgmts:\\GAMER")

SET objs = WMI.ExecQuery("SELECT * FROM Win32_Process WHERE Name='freecell.exe'")
FOR EACH obj IN objs
   obj.Terminate( 0 )
NEXT
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33663398
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawebВозможно, мои мысли покажутся странными, сумбурными, тем не менее, попытаюсь изложить свою идею, возможно, найду понимание.
Что если подружить SQL c файловой системой напрямую, минуя всяких посредников в виде БД
Примерно так:
Если Linux:
SELECT * FROM /
Получаем:
/..
/.automount
/bin
/boot
/dev
/etc
/home
и т.д.
Думается, что такая "база" даст любой промышл. фору и уделает ее с потрохами по всем показателям.
Таким образом, вся поддержка базы отпадает, достаточно хорошо знать файловую систему, полномочия польз., резервирование, стандарт SQL и драйвер стыкующий FS с SQL.

Если что-то похожее уже имеется, дайте ссылку.

Теперь свой собственный internet-ресторан может открыть любой желающий!

Как на счет рекурсии?
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33663425
pgres
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да лажевая идея.
В любой субд disk IO работает слегка не так как в файловой системе так что насчет уделывания есть большие сомнения.
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33663479
AlexTheRaven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему, задача ФС - хранение плохо структурированной информации. Задача СУБД - хранение хорошо структурированной.

Обычно у ФС значительно меньше функций, чем у СУБД. Если пойти путём реализации этих функций для ФС - она начнёт превращаться в СУБД (путь WinFS). Вы уверены, что хотите стать вторым Эллисоном или Шуклиным?

С другой стороны, у многих функций ФС по работе с информацией на низком уровне нет аналогов в СУБД. Вы уверены, что рационально расширять ими SQL?

Но если вы решите сделать библиотеку, которая обеспечивает единообразную работу с информацией на высоком уровне для любой распространённой ФС с использованием SQL-подобных запросов - для многих она могла бы стать полезной.

Я аналогов не видел. Знаю, что есть VxFS (JFS), которая "снаружи" выглядит как ФС, а "изнутри" сильно напоминает СУБД, потому обладает большой надёжностью и быстродействием.
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33663503
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впринципе, если в любую СУБД встроить пару табличных функций, для доступа к файловой системе напрямую - было бы неплохо (иногда). Однако это такая дыра в системе безопасности что просто п-ц.
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33663612
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oraweb
Что если подружить SQL c файловой системой напрямую, минуя всяких посредников в виде БД

Думается, что такая "база" даст любой промышл. фору и уделает ее с потрохами по всем показателям.
Таким образом, вся поддержка базы отпадает, достаточно хорошо знать файловую систему, полномочия польз., резервирование, стандарт SQL и драйвер стыкующий FS с SQL.



Файловые системы (БД без СУБД) - с этого все начиналось. Это отбрасывает в 60 годы. Т.е. идея старая, до того как допрели что нуны посредники (т.е. пришли к идее СУБД), по-моему, када НАСА лобал какой космический проект.
Кроме того, такие системы и сейчас есть - это все допотпные системы. Мож там нет SQL, но есть, например, МУМПС.
Так шо это не идея вообще, а план по деградации матобеспечения ИС.
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33663718
oraweb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот вопрос возник в связи с проблемами хранения двоичных файлов в БД. Что лучше: картинка ~>100 Кб на диске или в базе? У кого-то уже давно есть однозначный ответ, но найдется немало противников решения это задачи в том или ином виде.
Вопрос структурирования можно решить осмысленным наименованием папок, которые выполняют функцию таблиц. В каждой папке-таблице имеются свои папки-поля(столбцы). В корне каждой папки-таблицы поместить текстовый файл, где построчно описывается структура папок-столбцов. Таким образом, можно хранить текстовые фалы в одной папке, картинки в другой и т.д. Если необходима индексация, то ее решать также размещением текстового фала в корне таблицы-папки. Таким образом при необходимости параллельно выполняется удаление, обновление, запись во всех папках и индексном фале.
Безопасностью занимается сама операционка, например, линукс с этой задачей неплохо справляется.
Применение: веб-странички с динамическим содержанием, где информацию удобнее хранить в файлах с уже готовым форматированием-оформлением +двоичные файлы - картинки там всякие архивы и пр.
Я в принципе не настаиваю. Мое дело предложить. Чем больше критики, тем лучше.
Более компетентно по данному вопросу может высказаться спец линуха
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33664772
MX -- ALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orawebЭтот вопрос возник в связи с проблемами хранения двоичных файлов в БД. Что лучше: картинка ~>100 Кб на диске или в базе? У кого-то уже давно есть однозначный ответ, но найдется немало противников решения это задачи в том или ином виде.
Вопрос структурирования можно решить осмысленным наименованием папок, которые выполняют функцию таблиц. В каждой папке-таблице имеются свои папки-поля(столбцы). В корне каждой папки-таблицы поместить текстовый файл, где построчно описывается структура папок-столбцов. Таким образом, можно хранить текстовые фалы в одной папке, картинки в другой и т.д. Если необходима индексация, то ее решать также размещением текстового фала в корне таблицы-папки. Таким образом при необходимости параллельно выполняется удаление, обновление, запись во всех папках и индексном фале.
Безопасностью занимается сама операционка, например, линукс с этой задачей неплохо справляется.
Применение: веб-странички с динамическим содержанием, где информацию удобнее хранить в файлах с уже готовым форматированием-оформлением +двоичные файлы - картинки там всякие архивы и пр.
Я в принципе не настаиваю. Мое дело предложить. Чем больше критики, тем лучше.
Более компетентно по данному вопросу может высказаться спец линуха


-медленно будет крутится
-многопользовательский доступ - как блокировать-разблокировать ?
-все сразу или несколько - как открыть ?

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

то есть организующим звеном является древовидный MUMPS
нечто подобное реализовано у нас в кадрах-зарплате
3000 фото лежат в файлах с именами=таб.номерам
база их выдергивает как понадобятся и выдает на экраны
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33665710
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AS/400. Пример где можно работать с файлом как с таблицей и как с файлом и наооборот.
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33665830
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX -- ALEX
базу - например MUMPS и там работать
в конце работы все опять раскидать по папкам

Хорошо шо есть Оракл, чтобы не знать всего этого гемора никогда.
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33666816
oraweb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не нравится идея с базой в виде файловой системы, то можно просто нарастить shell дополнительными возможностями написания команд в стиле SQL.
Примерно так
SELECT * FROM /home/user WHERE flag=l
Что равносильно ls -l /home/user
А потом при необходимости комбинировать shell-selectы в стиле SQL
И потом еще…
Все современные БД это шкаф, где есть полки и на каждой полке куча ящиков. Чтобы получить необходимые предметы с нужными характеристиками, нужно знать на какой полке они хранятся, в каком ряду ящиков размещаются, и какие предметы должны лежать в этих ящиках. Упрощенно, на уровне полок, это плоская модель хранения данных. Нужно знать координаты x и y.
А в случае БД в виде ФС каждый ящик в свою очередь может быть еще и полкой, в составе которой имеются свои ящики и так фактически до предела, на сколько это позволяет ФС.
Структурирование данных в этом случае не плоское и даже не 3-х мерное, а образно говоря, шарообразное и в тоже время упорядоченное.
Впрочем, чтобы все это понять, нужно еще иметь не плоское мышление.
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33667326
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, шарооборазное мыщление не всем дано :(
Полностью с Вами согласен

Вам уже сказали про AS/400 ?
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33667931
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMS. (VMS)
Теперешний владелец - HP
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33667943
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oraweb
Впрочем, чтобы все это понять, нужно еще иметь не плоское мышление.

Или плоское, но 60-х годов - када файловые БД были в ходу.
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33668283
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Вам уже сказали про AS/400 ?
Это немного не то.
На AS/400 нет вложенности каталогов (в общем смысле).
То бишь с корня ты видишь все каталоги (library)
В библиотеке могут лежать:
файлы (таблицы) с данными фиксированной длины.

индексы к ним (AKA logical views)

подкаталог с сырцами программ

подкаталог с откомпилированным кодом

обычный файл (в юниксовом понятии)

...

SQL доступен только для работы с первыми двумя типами данных.

P.S.
Я упростил, так что не пинайте, что забыл что-то ещё упомянуть.
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33668529
Зл0й
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БД на файлах стоились в 60х-70х годах на мэйфреймах которые поддерживают понятие "записи" на уровне ОС, даже с возможностью индексирования записей. Несколько позже появилась ОС VMS которая тоже поддерживала понятие записи, под ней был такой продукт RDB который был потом продан Ораклу. В общем данный подход обладал целым рядом существенных недостатков, в ходе устранения которых и появились современные реляционные СУБД.

А теперь "животрепещущий пример". Есть такая бухгалтерская система кредитного отдела, называется AFS. Стоит в большинстве крупных американских банков. Поставляется с исходным кодом, каждый банк содержит свою версию. Написана как раз на Коболе путем многократного вложения записей. Вся информация в системе пишется в 4 набора данных (файла в общепринятой терминологии). Уровень вложенности записей - высокий. Банк слился с другим банком и одно из полей пришлось увеличить с 9 символов до 15. На этот проект ушло пол-года упорной работы, была переписана куча кода на Коболе. А теперь подумайте сколько времении у вас уйдет на эту операцию в вашей любимой реляционной СУБД :)
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33668614
lazy-beaver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см исходный пост - в as/400 нельзя сделать "select * from '/'" -))
но если написать сторед-процедуру, то можно -))
кстати. и для IFS, а не только для library-based FS

Serge Reva
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33668619
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зл0йБД на файлах стоились в 60х-70х годах на мэйфреймах которые поддерживают понятие "записи" на уровне ОС, даже с возможностью индексирования записей. Несколько позже появилась ОС VMS которая тоже поддерживала понятие записи, под ней был такой продукт RDB который был потом продан Ораклу. В общем данный подход обладал целым рядом существенных недостатков, в ходе устранения которых и появились современные реляционные СУБД.

...


RDB юзал, или просто где-то слыхал про существование этого зверя?
Дык вот, RDB идеологически НИЧЕМ не отличается от Oracle v7-8. Мало того, этот продукт был кросс-платформным (до того как оракуль благополучно его похоронил; скупка по оракулю - вид конкурентной борьбы), и были версии даже под MS DOS. Под VMS использовалась RMS, дык там это основная файловая система...
Под VMS была и есть RMS (Record Management System). Есть - потому как система жива и успешно продается по сей день (описание всего барахла см. на www.hp.com)
В основе RMS - индексный файл, т.е. система изначально строится на индексах (чего угодно) + понятие версионности...
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33668625
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, существуют проекты free/open VMS.
Например:

http://www.openvms.org/
http://freevms.free.fr/indexGB.html (здесь фунукционал RMS еще не полностью)
... (гугль рулит)
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33669509
oraweb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На примере супермаркета все станет понятно.
В супермаркете все отсортировано по группам: Продукты, Книги, Одежда и т.д. это различные отделы. Соответственно создаем таблицу отделов.
Каждый отдел в свою очередь имеет свои секции, например: Продукты разделяются на мясные ликероводочные, кондитерские и т.д.
Секции, на примере ликероводочной, в свою очередь делятся на вина, водку, коньяки, пиво и т.д.
Можно еще и вина классифицировать, по различным признакам, но ограничимся тем, что есть, достаточно.
По своей сути вся эта классификация является древовидной (раннее писал шарообразной, что не совсем удачно) и чтобы описать ее нам нужно создать кучу таблиц и привязать друг другу связками по полю ID, например.
А в файловой системе ничего этого не потребуется. Т.к. сама ФС по своей сути древовидная. Таким образом, создаем папку supermarket, в ней папку Products, в папке Products создаем папку buhalovo, в папке buhalovo создаем папку wine и пишем:

SELECT * FROM /home/user/supermarket/Products/buhalovo/wine

Получаем список вин, которые продаются в супермаркете 1.
А теперь напишите этот запрос, используя современные базы данных, если меня интересует какие вина продаются в супермаркете 2. Сколько потребуется условий WHERE чтобы объединить все таблицы? Немереное кол-во.
А я просто напишу:

SELECT * FROM /home/user/supermarket2/Products/buhalovo/wine

И все.

Любая конечная информация является листочком на дереве, но почему-то понадобилось все стволы и ветки обрубить, нарубить дрова и сделать дровяник - современные БД.
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33669554
oraweb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При этом хочу заметить, что полностью отказываться от СУБД не надо. Их уже в свою очередь имеет смысл применять в конечной стадии, т.с. на уровне листочков. Когда вина нужно дополнительно классифицировать по разным признакам - год изготовления, производитель, сухое или красное и т.д. Т.е. СУБД в обычном режиме применяем, в папке wine. На этом уровне "дровяной" подход уместен.
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33669563
-------------
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawebНа примере супермаркета все станет понятно.
В супермаркете все отсортировано по группам: Продукты, Книги, Одежда и т.д. это различные отделы. Соответственно создаем таблицу отделов.
Каждый отдел в свою очередь имеет свои секции, например: Продукты разделяются на мясные ликероводочные, кондитерские и т.д.
Секции, на примере ликероводочной, в свою очередь делятся на вина, водку, коньяки, пиво и т.д.
Можно еще и вина классифицировать, по различным признакам, но ограничимся тем, что есть, достаточно.
По своей сути вся эта классификация является древовидной (раннее писал шарообразной, что не совсем удачно) и чтобы описать ее нам нужно создать кучу таблиц и привязать друг другу связками по полю ID, например.

на самом деле эта классификация - сферическиконевакуумная :)
oraweb
А в файловой системе ничего этого не потребуется. Т.к. сама ФС по своей сути древовидная. Таким образом, создаем папку supermarket, в ней папку Products, в папке Products создаем папку buhalovo, в папке buhalovo создаем папку wine и пишем:

SELECT * FROM /home/user/supermarket/Products/buhalovo/wine

Получаем список вин, которые продаются в супермаркете 1.
А теперь напишите этот запрос, используя современные базы данных, если меня интересует какие вина продаются в супермаркете 2. Сколько потребуется условий WHERE чтобы объединить все таблицы? Немереное кол-во.
А я просто напишу:

SELECT * FROM /home/user/supermarket2/Products/buhalovo/wine


Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT products.* 
FROM Products
JOIN  Supemarkets ON (Products.market_id=Supemarkets.market_id) 
JOIN ProductCategories ON (Products.prod_cat_id=ProductCategories.prod_cat_id) 
JOIN ProductSubCategory ON (Products.prod_sub_cat_id=ProductSubCategory.prod_sub_cat_id)
WHERE market_name = 'supermarket2' AND prod_cat_name = 'buhalovo' AND prod_sub_cat_name = 'wine'
или же в стиле Tutorial D:
Код: plaintext
1.
2.
3.
 Products SEMIJOIN (Supermarkets WHERE market_name =  'supermarket2')
SEMIJOIN (ProductCategory WHERE prod_cat_name = 'buhalovo' )
SEMIJOIN (ProductSubCategory WHERE  prod_sub_cat_name = 'wine')

ЗЫ
oraweb
Любая конечная информация является листочком на дереве, но почему-то понадобилось все стволы и ветки обрубить, нарубить дрова и сделать дровяник - современные БД.

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


а если продукт относится и к ликероводочному, и к безалкогольным напиткам (например, тоник)?
ааа понял, понял, тогда вы просто в другие папку сделаете shortcut на этот продукт... гениально...
...
Рейтинг: 0 / 0
Файловая система в качестве БД.
    #33669734
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oraweb пишет:
> На примере супермаркета все станет понятно.

В первую очередь станет понятен уровень квалификации в рассматриваемом
вопросе.

> По своей сути вся эта классификация является древовидной (раннее писал
> шарообразной, что не совсем удачно) и чтобы описать ее нам нужно создать
> кучу таблиц и привязать друг другу связками по полю ID, например.

Уж деревья то в базе - достаточно банальная задача. И дерево для
описанной ранее задачи (и не только) можно реализовать в одной
простейшей таблице.

> И все.

Учи матчасть.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
25 сообщений из 78, страница 1 из 4
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Файловая система в качестве БД.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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