Текущий архив: 2003.02.06;
Скачать: CL | DM;
ВнизФайл или БД Найти похожие ветки
← →
Programist21 (2003-01-08 09:26) [0]Народ, объясните пожалуйста, почему при хранении информации в
БД (по отношению к файлу), мы выигрываем скорость в доступе к
данным?
← →
vopros (2003-01-08 09:28) [1]Сам понял что сказал?
← →
Думкин (2003-01-08 09:38) [2]после вопроса про 30% - не стоит удивляться, до вечера далеко.
тяжело народ с праздников выходит, ох тяжело.
← →
Дмитрий К.К. (2003-01-08 09:46) [3]БД - это пожалуй, то, что на 100% оправдывает появление компьютеров.
← →
Карелин Артем (2003-01-08 11:28) [4]Когда я напился и выкурил полпачки сигарет на набережной (я курю...), то мне пришла в голову обалденная идея по вопросу, над которым я мучался пару месяцев.
← →
Думкин (2003-01-08 11:32) [5]не томи - поделись.
← →
Programist21 (2003-01-08 19:20) [6]Я щаз вам цитату из умной книжки проинсталю... только её найду!
← →
Jeer (2003-01-08 19:38) [7]Programist21 (08.01.03 09:26)
В случае с БД
Умные люди (математики, логики, системщики, etc) хорошо подумали и придумали, как тебе облегчить жизнь по доступу к данным(быстрому, удобному, надежному, многопользовательскому, etc)
В случае с файлом(ми) - Вы можете с ними посоревноваться в вышесказанном.
← →
Burmistroff (2003-01-08 19:53) [8]БД удобны тем, что их сейчас все поддерживают (в т.ч. и Web-серверы).
← →
Jeer (2003-01-08 20:14) [9]Burmistroff (08.01.03 19:53)
Вы уверены, что именно в этом дело ?
← →
Burmistroff (2003-01-08 22:06) [10]> Jeer
А собственно тогда в чем? Конечно БД позволяют программисту абстрагироваться от тонкостей реализации работы с файлами, являют собой некую унифицированную систему работы с данными. Ну и еще, есть механизмы индексации. Вот что я хотел сказать. Других преимуществ я не вижу.
← →
Jeer (2003-01-08 22:16) [11]Burmistroff (08.01.03 22:06)
Не совсем было ясно, что значит "все поддерживают" и какое отношение Web-серверы к этому имеют.
Человек спросил о главном - в чем разница между доступом посредством файловой системы ОС и доступом, посредством СУБД(правда некоторые СУБД лежат ниже уровня ОС, а некоторые ОС владеют механизмами СУБД, а часто FS и DB Engine рука об руку идут рядом).
ISAM - это и есть индексный метод доступа, используемый большинством современных СУБД.
Назвать это "ну и еще" у меня лично язык не поворачивается.
Другое дело, что в эпоху объектных технологий используются комбинированные и интегрированные СУБД (ORACLE, Postgres, Cache)/
← →
[NIKEL] (2003-01-08 23:35) [12]БД реализует грамотное хранение и обработку данных на носителях
что не позволяют простые файлы(если с ними обращаться как с просто файлами)...
СУБД определяют удобный интерфейс между данными которые они грамотно хранят и пользователями(клиентами) этих данных
← →
Аль (2003-01-09 04:10) [13]Интересно.. Преимущества - это из руководств и описаний разработчиков. Зачем велики изобретать, если это уже сделано? Но, по-моему, вопрос то оч интересный. Пользовать и ни разу не задаться подобными вопросми - хуже. Я за здоровую любознательность.. )
← →
Programist21 (2003-01-09 09:56) [14]Смотрите, у меня есть файл с данными: номер, фамилия и имя
студента, номер его группы. Так вот, я из своей программы
спокойно обрабатываю эту информацию. У меня не более 100
записей. Так вот, вопрос было бы корректнее ставить так: В
случае если записей больше 1000, 10000 или ещё больше, мне
должно быть выгодно использовать БД, а не работу с файлом. Так?
Но почему???
← →
Думкин (2003-01-09 10:04) [15]Для начала по примитиву пройдемся.
У тебя 758979-ая запись про Васю Пупкина - тебе надо ее найти.
Как ты будешь делать у себя? если по тупому - то действуй.
Но есть другие способы - да для этого надо держать избыточную инфу, но скорость может возрасти неимоверно.
Это для начала - сейчас, наверняка, еще подбросят чего-нить.
← →
Programist21 (2003-01-18 10:40) [16]И ответил только один чел... Да, мля...
← →
Sha (2003-01-18 10:58) [17]> Programist21 (18.01.03 10:40)
> И ответил только один чел... Да, мля...
Если у тебя заранее известны все возможные запросы и навсегда фиксирована структура данных, то в принципе возможно написать свою файловую систему, которая будет во много раз эффективнее любых баз данных. При этом правда придется немного попотеть над надежностью хранения, копированием-архивированием. Зато если получится - ты лучший. Если есть время и желание - тогда вперед. Прецеденты известны.
← →
Думкин (2003-01-18 11:03) [18]И получится новая база данных. %-)
← →
Sha (2003-01-18 11:06) [19]> Думкин © (18.01.03 11:03)
> И получится новая база данных. %-)
Ага. Специализированная.
← →
Думкин (2003-01-18 11:08) [20]а все-таки по дальнейшим пунктам никак?
← →
Юрий Зотов (2003-01-18 11:43) [21]> Programist21 (09.01.03 09:56)
> Смотрите, у меня есть файл с данными: номер, фамилия и имя
> студента, номер его группы. Так вот, я из своей программы
> спокойно обрабатываю эту информацию.
ОК. А теперь представьте себе, что Ваша программа установлена в отделе кадров и в деканате. Ну и еще где нибудь, где требуются данные о студентах. На каких-то кафедрах, например.
Информация должна быть единой для всех? Безусловно. Иначе получится полный беспорядок. Например, в деканате студента перевели в другую группу, а в отделе кадров об этом никто и не узнает. Значит, Ваш файл данных должен быть общим для всех.
Далее. Несколько копий Вашей программы могут работать с этим файлом одновременно? Безусловно. Иначе программа будет такой неудобной, что пользоваться ей будет просто невозможно. Представьте - из отдела кадров звонят в деканат и спрашивают:
- Вы сейчас работаете с программой?
- Да.
- Пожалуйста, выйдите из нее на 5 минут. А то тут студентка замуж вышла, ей надо фамилию поменять, а пока Вы работаете, мы этого сделать не можем.
И потом такие же звонки - по всем кафедрам, где есть Ваша программа. Например, в филиал во Владивостоке. И уж только потом меняется фамилия студентки. Кому нужно ТАКАЯ программа? Никому.
Итак, Ваша программа должна обеспечить ОДНОВРЕМЕННУЮ работу нескольких своих копий с ЕДИНЫМ файлом данных.
А теперь представьте, что с нескольких машин происходит одновременное ИЗМЕНЕНИЕ этого файла. Что получится? Полный капут этому файлу получится. И пропадут все Ваши данные безвозвратно и навсегда. Кому нужна такая программа? Никому.
Значит, Ваша программа должна учитывать такую возможность и правильно ее обрабатывать. Вы сможете это сделать?
Если Вы задали такой вопрос - то, скорее всего, не сможете. Потому что если бы могли, то, значит, Вы смогли бы написать и сервер БД. А тогда не спрашивали бы.
ОК, идем дальше и думаем - а как же быть? Ответ простой - Ваша программа должна хранить данные в БД. И работать с ней не напрямую, а через другую программу (сервер БД, BDE, еще что-то). И вот эта другая программа, написанная суперпрофессионалами, уже и обеспечит безопасный доступ к данным и их целостность. Сама, без Вашего участия. А также обеспечит скорость этого доступа (за счет буферизации), разграничение прав пользователей, разграничение предоставляемой им информации, гибкий язык запросов и еще целую кучу мощных и полезных вещей. И все это - без всяких трудозатрат с Вашей стороны.
Вот зачем нужны БД. Всего один пример.
← →
Programist21 (2003-01-18 12:31) [22]to Sha Зачем мне своя файловая система??? Мне прогу сделать
надо, а я незнаю что юзать БД или просто в файле всё сэйвить!
to Юрий Зотов Просто огромное спасибо за такое просвещение в
данном вопросе! Мне практически всё понятно. Но есть и
маленький вопрос: А что если программу использует один
пользователь, но всё же для него важно получить данные быстро.
Что тут выбрать файл или БД?
← →
Дмитрий К.К. (2003-01-18 13:03) [23]За те 10 дней (8 января - 18 января), шо ты решаешь, шо именно те выбрать, можно было уже написать приличную прогу, юзающую прелести СУБД.
← →
Юрий Зотов (2003-01-18 14:10) [24]> Programist21 (18.01.03 12:31)
Совет такой - если хотите долго мучиться над программой и иметь много головной боли, а в итоге получить "жесткую" программу, которую будет трудно расширять, то используйте файл. Если хотите быстро написать простую и надежную программу, которую потом будет намного легче сопровождать и развивать, то используйте БД.
Скорость доступа к данным в Вашем случае вряд ли важна - она в любом варианте будет высокой. В Вашей задаче это совсем не тот критерий, о котором нужно думать в первую очередь.
А Дмитрий К.К. © (18.01.03 13:03) сказал очень даже верно. Такая простая БД действительно пишется всего за несколько дней.
← →
Anatoly Podgoretsky (2003-01-18 14:37) [25]Дмитрий К.К. © (18.01.03 13:03)
Или тоже самое в случае типизированного файла. Тем более что в большинстве учебников это любимая задача для обучения.
Что думать, трясти надо.
← →
Sergey Masloff (2003-01-18 23:12) [26]Programist21 (18.01.03 12:31)
>Зачем мне своя файловая система??? Мне прогу сделать
>надо, а я незнаю что юзать БД или просто в файле всё сэйвить!
Если у тебя 10000 записей в плоской таблице и работает 1 человек то никакая СУБД тебе на фиг не нужна. Используй просто типизированный файл или что-то подобное. Скорость будет на высоте и не будет неприятного ощущения от стрельбы из пушки по воробъям.
В принципе задача такая что за неделю можно аккуратно написать оба варианта и сравнить на практике. Получишь ценный опыт и чувство глубокого удовлетворения от хорошо сделаной работы.
← →
Сергей Суровцев (2003-01-19 00:42) [27]Да ладно вам человеку мозги морочить. Вы же все под СУБД не иначе как Oracle понимаете, в крайнем случае IB. А ему для этой задачи одного dbf за глаза хватит.
База данных от файла, насколько я помню, отличается наличием структуры. Это позволяет гораздо проще осуществлять навигацию,
и гораздо быстрее поиск за счет вычисления смещения, а не перебором. Плюс индексы. Так что база данных конечно однозначно лучше.
← →
Sergey Masloff (2003-01-19 02:14) [28]Сергей Суровцев ©
>Да ладно вам человеку мозги морочить. Вы же все под СУБД не >иначе как Oracle понимаете, в крайнем случае IB. А ему для этой >задачи одного dbf за глаза хватит.
Ага. А в .dbf он ручками заголовок прочтет, свой навигатор напишет etc. И будет таскать BDE за своей программой постоянно наступая на грабли с конфликтами версий... Или будет линковать библиотеку для работы с .dbf.
>База данных от файла, насколько я помню, отличается наличием >структуры. Это позволяет гораздо проще осуществлять навигацию,
>и гораздо быстрее поиск за счет вычисления смещения, а не >перебором.
Да и у типизированного файла структура есть же ж. И при желании индексирование можно сделать. Только на 10000 записей это на фиг не нужно, потому что и так все летать будет.
Еще файл можно при начале работы в StringList залить ;-)
← →
Programist21 (2003-01-19 18:31) [29]to Дмитрий К.К Понимаете, дело не в этом. Если быть точнее, то
программу никакую я не писал. Просто меня этот вопрос в теории
очень сильно волновал (мучил). Вот и решил разобраться -
спросить.
to Sergey Masloff Спасибо. Возможно последую вашему примеру.
Вот только осталось разобраться как "правильно" с БД
работать :)))
(again) to Sergey Masloff Я обычно StringList и использую :)
Народ, ну тут прямо споры начинаются ;) Очень интересно вас слушать.
← →
Jeer (2003-01-19 22:53) [30]Programist21 (19.01.03 18:31)
При чем тут споры:))
Просто каждый хочет дать тебе свой совет, а ты уж разберись с тем, что тебе надо.
Коротко (для тебя):
1. Многопользовательская работа - однозначно готовая СУБД.
2. Однопользовательская работа
- небольшое число данных в несложной их структуре
(вполне подойдут любые собственные или типовые механизмы хранения данных, не связанные с СУБД)
- большое число данных и/или сложная их структура (опять же готовая СУБД, т.к. проще решать вопросы доступа по скорости или связанности данных).
← →
Programist21 (2003-01-20 23:22) [31]2Jeer Тогда спасибо за советы ;)
Страницы: 1 вся ветка
Текущий архив: 2003.02.06;
Скачать: CL | DM;
Память: 0.53 MB
Время: 0.012 c