У чым розніца паміж файлавай сістэмай і базай дадзеных?


адказ 1:

База даных, як правіла, выкарыстоўваецца для захоўвання звязаных, структураваных дадзеных з дакладна вызначанымі фарматамі дадзеных эфектыўным спосабам для ўстаўкі, абнаўлення і / або пошуку (у залежнасці ад прыкладання).

З іншага боку, файлавая сістэма з'яўляецца неструктураваным сховішчам дадзеных для захоўвання любых, магчыма, не звязаных паміж сабой дадзеных. Файлавая сістэма больш агульная і базы дадзеных будуюцца на агульных паслугах захоўвання дадзеных, якія прадастаўляюцца файлавымі сістэмамі.

Таксама існуюць адрозненні ў чаканым узроўні абслугоўвання файлавых сістэм і баз дадзеных. У той час як базы дадзеных павінны быць нязменнымі ў любы час (падумайце пра банкі, якія пераследуюць грошы!), Забяспечваючы адзінкавыя транзакцыі і настойлівыя запісы, файлавая сістэма дае значна больш свабодныя гарантыі паслядоўнасці, замкнёнасці і даўгавечнасці. База даных выкарыстоўвае складаныя алгарытмы і пратаколы для рэалізацыі надзейных сховішчаў у патэнцыйна ненадзейных файлавых сістэмах. Менавіта гэтыя алгарытмы робяць даражэйшае захоўванне базы дадзеных з пункту гледжання выдаткаў на апрацоўку і захоўванне, што робіць агульныя файлавыя сістэмы прывабным варыянтам для дадзеных, якія не патрабуюць дадатковых гарантый базы дадзеных.

Аднак па меры прагрэсу тэхналогіі радкі становяцца размытымі, паколькі некаторыя файлавыя сістэмы выконваюць функцыі, якія раней адпавядалі дамене баз дадзеных (транзакцыі, дадатковыя запыты), а некаторыя базы дадзеных аслабляюць традыцыйныя абмежаванні на паслядоўнасць, ізаляцыю і даўгавечнасць. ZFS і BTRFS можна разглядаць як прыклады для першага, прыклады MongoDB і CouchDB для другога.


адказ 2:

Розніца паміж сістэмай апрацоўкі файлаў і СКБД:

1. Сістэма кіравання базамі дадзеных каардынуе фізічны і лагічны доступ да дадзеных, у той час як сістэма апрацоўкі файлаў каардынуе толькі фізічны доступ.

2. Сістэма кіравання базамі дадзеных дазваляе гнуткі доступ да дадзеных (г.зн. запытам), у той час як сістэма апрацоўкі файлаў дазваляе загадзя зададзены доступ да дадзеных (г.зн. скампіляваных праграм).

3. Сістэма кіравання базамі дадзеных каардынуе некалькі карыстальнікаў, якія атрымліваюць доступ да тых жа дадзеных адначасова. Сістэма апрацоўкі файлаў звычайна распрацавана такім чынам, што адна або некалькі праграм могуць адначасова атрымліваць доступ да розных файлаў дадзеных. У сістэме апрацоўкі файлаў дзве праграмы могуць атрымаць доступ да файла адначасова, толькі калі абедзве праграмы маюць доступ да чытання.

4. Знішчэнне - гэта кіраванне ў СКБД, але не ў файлавай сістэме.

5. Несанкцыянаваны доступ абмежаваны ў СКБД, але не ў файлавай сістэме.

6. СУБД забяспечвае рэзервовае капіраванне і аднаўленне, а дадзеныя, страчаныя ў файлавай сістэме, не могуць быць адноўлены.

7. СКБД прапануе некалькі карыстацкіх інтэрфейсаў. Дадзеныя ізалююцца ў файлавай сістэме.


адказ 3:

Адна з рэчаў, якую лёгка забыць, - гэта тое, што кампутары - гэта машыны. У той час як у нас ёсць магчымасць успрымаць навакольны свет і мець складаныя механізмы, якія дазваляюць нам рабіць каштоўнасныя меркаванні, мець зносіны з іншымі людзьмі і выкарыстоўваць логіку для вырашэння праблем, кампутары працуюць праз складаныя электрычныя ланцугі, якія ў канчатковым выніку працуюць уключае або выключае. У сучасных кампутарах ёсць мільёны гэтых маленькіх камутатараў, званых транзістарамі. У адрозненне ад першых дзён, калі кампутары былі значна прасцей, праграмісты маглі эфектыўна выкарыстоўваць перфакарты для напісання простых праграм. Кампутары сёння настолькі складаныя і шырока распаўсюджаныя, што людзі распрацавалі абстракцыі, каб зрабіць працу з кампутарамі так, як мы працуем у рэальным свеце. Акрамя таго, па меры прасоўвання тэхналогій, тое, як мы рабілі рэчы, паступова састарэла, таму нам трэба распрацаваць больш эфектыўныя спосабы вядзення справы.

Адной з папярэдніх абстракцый, якую мы распрацавалі, была канцэпцыя "файла". Файл - гэта проста інфармацыя ў фармаце, які кампутар можа зразумець. Вельмі просты прыклад гэтага - тэкставы файл. У пісьмовым англійскім тэксце ёсць абмежаваная колькасць знакаў, якія могуць быць прадстаўлены ў вельмі невялікай колькасці (з некаторымі абмежаваннямі). У прыватнасці, у першапачатковым фармаце амерыканскага стандартнага кода для абмену інфармацыяй (ASCII) былі вызначаны лічбы, якія кампутары могуць разумець па сімвалах, якія выкарыстоўваюцца на англійскай мове. Напрыклад, вялікай літары "А" прысвоілі нумар 65. Самае галоўнае ў стандартах - гэта тое, што яны адвольныя. Для камп'ютэраў нічога не патрабуецца, каб прысвоіць лічбу 65 літары "А". Гэта было проста рашэнне, якое хтосьці прыняў і пераканаў іншых скарыстацца стандартам, і гэта было прынята. Пазней людзі выявілі, што 255 сімвалаў недастаткова для асвятлення моў свету і розных распрацаваных стандартаў, што ў канчатковым выніку адпавядае сённяшняму стандарту Unicode. Такім чынам, тэкставы файл проста складаецца з шэрагу лічбаў, якія прадстаўляюць тэкст у пэўным сімвальным фармаце. Выява таксама можа быць сканавана на кампутар і захавана ў пэўным фармаце.

Самае галоўнае ў файлах - гэта ўсе нумары шэрагу. Паміж карцінай і раманам ці праграмай нічога прынцыпова не адрозніваецца. Аднак ёсць ключавое патрабаванне. Файлы павінны быць захаваны. Кампутары бескарысныя, калі трэба ствараць усё з нуля пры кожным запуску іх. З самых ранніх дзён арыфметыкі склаліся розныя спосабы захоўвання інфармацыі - пачынаючы з перфакартаў, дзе наяўнасць або адсутнасць дзіркі вызначае, уключалася ці не. Пазней з'явіліся электрамагнітныя стандарты, у якіх малюсенькая колькасць жалеза змяшчалася на пластыкавы дыск і намагнічвалася ці не. Гэта прывяло да жорсткіх дыскаў з мноствам розных слаёў, потым аптычных стандартаў (CD, DVD, BluRay) і найноўшых цвёрдых дыскаў. Штуршком для большасці з іх з'яўляецца павелічэнне прасторы для захоўвання і скарачэнне часу, неабходнага для доступу да файлаў. Несумненна, што тэхналогіі, якія мы сёння выкарыстоўваем для захоўвання, не будуць аднолькавымі праз 20 гадоў.

У гэтым (нарэшце!) Прадстаўлены першы з двух умоў - файлавая сістэма. Файлавая сістэма, як вынікае з назвы, простая сістэма для захоўвання файлаў. Як і ў фарматах сімвалаў, кожны можа тэарэтычна распрацаваць уласны спосаб захоўвання файлаў, але гэта немэтазгодна. У самых ранніх файлавых сістэмах выкарыстоўваецца табліца размеркавання файлаў (FAT), лагічна табліца, якая падзяляе жорсткі дыск на кластары, а файлы прысвойваюцца кластарам. Па гістарычных і простых прычынах файлавыя сістэмы FAT (асабліва ExFAT і FAT32) фактычна з'яўляюцца файлавымі сістэмамі для абмену дадзенымі паміж некалькімі прыладамі, платформамі і аперацыйнымі сістэмамі. Напрыклад, калі вы фатаграфуеце лічбавую камеру і захаваеце яе на SD-карце, магчыма, будзе выкарыстоўвацца файлавая сістэма FAT. Іншыя распаўсюджаныя з іх - новая тэхналагічная файлавая сістэма (NTFS) для Windows / DOS, пашыраная файлавая сістэма (EXT2 / 3/4) для Linux і іерархічная файлавая сістэма (HFS) для Mac.

Самае галоўнае, што файлавая сістэма ўплывае толькі на захоўванне файла, а не на сам файл. Для праграмы, чытанне файла з файлавай сістэмы FAT, NTFS або HFS выглядае аднолькава.

Базы дадзеных вырашаюць яшчэ адну праблему. У той час як файлавыя сістэмы не клапоцяцца аб захоўваемых дадзеных (гэта адвольна), базы дадзеных дазваляюць структураваць дадзеныя. Яны таксама прапануюць магчымасць запытаць гэтыя дадзеныя, то ёсць хутка знаходзіць інфармацыю. Яны таксама прапануюць бяспеку. Напрыклад, у многіх файлавых сістэмах вы можаце вызначыць, хто можа прачытаць цэлы файл, але не яго частку.

Структураваныя дадзеныя азначаюць, што дызайнер базы дадзеных вызначае, якую інфармацыю трэба захоўваць і ў якім фармаце яна павінна захоўваць. Дапусцім, у вас ёсць база дадзеных кантактнай інфармацыі. База даных можа прымусіць у полі нумара тэлефона быць толькі нумары (тып дадзеных). Калі карыстальнік спрабуе ўвесці нумар тэлефона з лістом, база дадзеных вяртае памылку. Праграма, якая выкарыстоўвае базу дадзеных, не абавязкова правярае гэта (але гэта можа быць і па іншых прычынах). Паколькі база дадзеных фармуе фармат, праграма гарантуе, што інфармацыя з базы дадзеных знаходзіцца ў такім фармаце. Калі ёсць поле для дня нараджэння, база дадзеных гарантуе, што гэта дата, а не тэкст.

Запыт выкарыстоўвае метады інфармацыйных тэхналогій для хуткага пошуку ўсіх дадзеных, пошуку умоў або сартавання інфармацыі. Напрыклад, у базах дадзеных усе людзі могуць быць адсартаваны ў алфавітным парадку, альбо тыя, чый дзень нараджэння ў студзені, можна знайсці.

Як і ў файлавых сістэмах, існуе шэраг сістэм баз дадзеных (і сапраўды тыпаў сістэм баз дадзеных), кожная з якіх мае розныя перавагі: Microsoft SQL Server, Oracle, MySQL і PostgreSQL часта выкарыстоўваюцца рэляцыйныя сістэмы баз дадзеных. Базы дадзеных звычайна з'яўляюцца самімі файламі (некаторыя абстракцыі робяць саму базу дадзеных папкай), таму дадзеныя захоўваюцца ў файлавай сістэме.

Я адзначаў гэта раней, але звычайна базы дадзеных самі па сабе не з'яўляюцца тым, што "бачыць" канчатковы карыстальнік. Веб-сайт, як Amazon або eBay, выкарыстоўвае базу дадзеных, але карыстальнікі ўзаемадзейнічаюць з так званым "узроўнем бізнес-правілаў". Гэта праграмаванне проста правярае, што ўсё зроблена правільна, перш чым яго ўнесці ў базу дадзеных. Напрыклад, гэты ўзровень перашкаджае людзям атрымліваць што-небудзь ад Amazon, не плацячы за гэта. Адміністратары базы дадзеных - гэта людзі, якія працуюць непасрэдна на ўзроўні баз дадзеных.

Такім чынам, праца з кампутарамі па сутнасці - гэта працэс, у якім мы перакладаем рэальны свет у рэпрэзентацыю, якую кампутар можа зразумець - па сутнасці, у лічбах. Файлы ў розных фарматах ўтрымліваюць інфармацыю - няхай гэта будзе тэкставы файл з сімваламі, прадстаўленым лічбамі альбо выявай, ці што-небудзь яшчэ. Спосаб захавання гэтай файлавай сістэмы, найбольш распаўсюджанай з якіх з'яўляецца файлавая сістэма FAT (File Allocation Table). Замест таго, каб проста прымушаць адвольную інфармацыю, базы дадзеных прымушаюць добра структураваць дадзеныя, дазваляюць запыты хутка звужаць альбо сартаваць інфармацыю, а таксама забяспечваць вялікую бяспеку.