Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.02.06;
Скачать: [xml.tar.bz2];

Вниз

Файл или БД   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.019 c
14-15939
Uncle Archi
2003-01-21 21:26
2003.02.06
Zip


1-15533
first_aid
2003-01-27 06:00
2003.02.06
Вопрос к тем кто использует в своих программах темы Win XP.


3-15518
Stenkz
2003-01-20 08:36
2003.02.06
Проблеммка - Визуальные компоненты - При обрабтке большой базы


14-15869
Alex
2003-01-19 13:03
2003.02.06
TabSet


14-15898
Kotka
2003-01-20 14:16
2003.02.06
Стоит посмотреть!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский