Плоска база даних структура або модель даних, яка характеризується тим, що дані зберігаються у текстових файлах у вигляді таблиці.
Плоскі файли
У , як правило зберігається по одному запису у кожному рядку. Поля повинні мати фіксовану ширину або розділені знаками табуляції (TSV), пропусками, комами (CSV) або іншими символами. Таке надмірне форматування потрібне для того, щоб уникнути (колізії розділяючих символів). Плоска організація даних не передбачає структурних взаємозв'язків між даними, тобто дані роздруковані на листку паперу виглядатимуть так само як і у файлі, на відміну від більш складно організованих реляційних баз даних.
Класичним прикладом плоскої бази даних може вважатися телефонний довідник, що містить невеликі записи фіксованої довжини: Імені, Адреси та Номера телефону. Інший дуже поширений, хоча й не традиційний приклад, проста (не складена) HTML таблиця, яка складається із рядків і стовпців.
Реалізації
Телефонний довідник можна написати від руки у звичайній алфавітній книжці, можна на листі паперу і скористатися друкарською машинкою або текстовим редактором на комп'ютері і роздрукувати на принтері. Хоча є багато прикладів програмного забезпечення написаного спеціально для зручного створення і використання тих чи інших плоских баз даних.
Історичні реалізації
Виникнення плоских баз даних пов'язують з іменем американського статиста Германа Голлеріта, якому належить ідея про те, що персональні дані кожного резидента США такі як ім'я, вік тощо можуть бути представлені рядком із букв та цифр, розділених між собою пробілами довжиною рівно 80 символів. У 1888 р. Г. Голлеріт створив особливий пристрій — табулятор, у якому інформація, нанесена на спеціальні носії інформації перфокарти, розшифровувалася електричним струмом. Згодом, він продав свою концепцію і табулятор бюро перепису населення США. У 1890 р. табулятор використовувався для обробки даних дванадцятого перепису населення США, це була перша комп'ютеризована база даних, яка являла собою тисячі коробок заповнених перфокартами.
Протягом Другої світової війни американський уряд та великі корпорації використовували примітивні комп'ютери для найтиповіших задач бухгалтерського обліку, наприклад, обрахунку заробітної платні. Слід зазначити, що ці машини усе ще використовували 80-символьні перфокарти Голлеріта як основний носій при зберіганні й обробці даних. Підприємство Голлеріта згодом переросло у комп'ютерного гіганта фірму IBM, яка займає домінуючі позиції на ринку і сьогодні.
У 80-х роках XX століття на обох платформах як DOS, так і Macintosh, програми, що дозволяли користувачам створювати їхні власні плоскі бази даних стали такими ж популярними, як і текстові редактори або електронні таблиці. Приклади засобів моделювання плоских баз даних можна було знайти у ранніх версіях FileMaker та . Деякі програми забезпечували обмежені реляційні можливості, дозволяючи обмін даними між файлами.
Сучасні реалізації
Наразі небагато програм дозволяють створювати та використовувати плоскі бази даних загального використання, така можливість реалізована у Microsoft Works (доступна у деяких версіях Windows) та інколи називається ClarisWorks (доступна як для Windows, так і для Apple платформ). Водночас такі продукти як Paradox фірми Borland та Access фірми Microsoft пропонують прості засоби створення реляційних баз даних разом із вбудованими мовами програмування. Системи керування БД такі як MySQL або Oracle вимагають програмістських навичок для створення баз даних.
Багато сучасних програм широко використовують плоскі бази даних для зберігання своїх конфігураційних даних. Інші надають можливість користувачам бачити та редагувати плоскі бази даних використовуючи визначений наперед набір полів: ділові щоденники, каталоги книжок тощо.
XML дуже популярний формат зберігання даних у текстових файлах, однак XML допускає складні вкладені структури даних та визначення самих даних, тому було б некоректно називати XML засобом реалізації плоских баз даних.
Терміни та означення
Терміни, що вживаються для опису плоских баз даних та засобів їхньої підтримки, різні для кожної конкретної реалізації, проте їхня суть від цього не змінюється. Наприклад, FileMaker використовує термін «Find» в той час, як MySQL застосовує «Query». Інший приклад: термін «files» у FileMaker еквівалентний терміну «tables» у MySQL. Щоб уникнути плутанини наведемо такі означення:
Стовпець (поле) — деякий параметр, що характеризує об'єкт. В СКБД і FileMaker ця сутність називається полем (англ. field), у MySQL та Microsoft SQL Server — стовпцем (англ. column). Програма Microsoft Access використовує обидва терміни. Полем також часто називають перетин стовпця і рядка.
Рядок (запис) — набір значень стовпців. Кожен рядок плоскої бази даних містить один і той самий набір стовпців що й будь-який інший. У програмах FoxPro і FileMaker вживається термін запис (англ. record), у MySQL та Microsoft SQL Server — рядок (англ. row). Програма Microsoft Access використовує обидва терміни. Дуже важливо не плутати рядок таблиці (англ. row) і типом даних рядок (англ. string).
База даних — набір записів, де кожен запис містить усю доступну інформацію про конкретний об'єкт. Строго кажучи, плоска база даних не повинна містити нічого окрім самих даних та роздільників. У ширшому розумінні — це така база даних, яка зберігається в одному-єдиному файлі й має форму простої таблиці із рядків та стовпчиків, що не містять посилань один на одного або інші таблиці.
Приклади баз даних
Нехай задано наступну базу даних, ідентифікатор, ім'я вболівальника, назва команди, за яку він вболіває. Власне самі дані можуть бути подані у вигляді наступної таблиці
1 Дмитро Шахтар 3 Вячеслав Шахтар 4 Олександр Шахтар 5 Артем Динамо 7 Ігор Шахтар 6 Олег Шахтар 2 Олександр Динамо
Відповідно до означень поданих вище стовпчики цієї таблиці назвемо стовпцями або полями, а рядки — рядками або записами. Слід звернути увагу, що дані в середині одного поля — «однорідні». У першому стовпці це — ідентифікатори (унікальні номери), у другому — імена, у третьому — назви футбольних клубів. Також важливим є те, що поля в межах одного запису пов'язані семантично, тобто записи у даному прикладі можна читати так: «Артем вболіває за „Динамо“».
Для того, щоб перетворити дану таблицю на плоску базу даних, необхідно задати правило зберігання даних. Одним із найпростіших є таке: усі поля мають фіксовану ширину (якщо довжина запису менша ширини поля, заповнити місце пробілами), кожен новий запис повинен починатися із нового рядка. Той самий результат можна досягнути, розділяючи поля знаками табуляції, а записи — символом нового рядка. Файли такого формату називаються розділеними табуляцією.
Інший спосіб зберігання даних полягає у тому, що поля розділяються комами, а записи символами нового рядка. Дані у такому форматі називаються розділеними комами (CSV).
"1","Дмитро","Шахтар" "3","Вячеслав","Шахтар" "4","Олександр","Шахтар" "5","Артем","Динамо" "7","Ігор","Шахтар" "6","Олег","Шахтар" "2","Олександр","Динамо"
І ще один спосіб зберігання даних:
1-Дмитро-Шахтар/3-Вячеслав-Шахтар/4-Олександр-Шахтар/5-Артем-Динамо/7-Ігор-Шахтар/6-Олег-Шахтар/2-Олександр-Динамо
Усе це еквівалентні бази даних.
Редагування таких баз здається дуже простим коли даних небагато, проте зручність спеціальних засобів, які дозволяють читати, редагувати, створювати й стирати файли плоских баз даних стає особливо помітною на значних обсягах даних, крім того, реалізації СКПБД (систем керування плоскими базами даних) дозволяють перевіряти дані на відповідність типу і шаблону, здійснювати пошук тощо.
Швидкість і простота таких засобів є очевидними плюсами, але в міру зростання обсягів і складності самих даних з'являється необхідність у більш складному та гнучкому інструментарії такому як реляційні бази даних.
Різниця між плоскою і реляційною моделлю баз даних
Дуже важливо розуміти різницю між однотабличною плоскою базою даних, описаною вище і багатотабличною реляційною базою даних. Плоскі файли насправді є складовою частинами будь-якої реляційної бази даних і виступають як сховища індексів (indexes), обмежень (constraints), тригерів (triggers), відношень (foreign key relationships), планів фрагментації (fragmentation plans) та реплікації (replication plans) а також інших складових сучасних розподілених реляційних баз даних.
у наступному прикладі дві плоскі таблиці File1 та File2 зв'язані між собою зовнішнім ключем team у деякому реляційному відношенні R
File1
file-offsetidnameteam 0x008СергійДинамо 0x131ДмитроШахтар 0x273ВячеславШахтар 0x3B4ОлександрШахтар 0x4F5АртемДинамо 0x627ІгорШахтар 0x766ОлегШахтар 0x8A2ОлександрДинамо
File2
teamarena ДинамоНСК "Олімпійський" ШахтарРСК "Олімпійський"
Стовпець file-offset насправді не є частиною цього відношення він є прикладом індексу.
Індекс для File1
0x00000013 0x0000008A 0x00000027 0x0000003B 0x0000004F 0x00000076 0x00000062 0x00000000
Див. також
Джерела інформації
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Ploska baza danih struktura abo model danih yaka harakterizuyetsya tim sho dani zberigayutsya u tekstovih fajlah u viglyadi tablici Ploski fajliU yak pravilo zberigayetsya po odnomu zapisu u kozhnomu ryadku Polya povinni mati fiksovanu shirinu abo rozdileni znakami tabulyaciyi TSV propuskami komami CSV abo inshimi simvolami Take nadmirne formatuvannya potribne dlya togo shob uniknuti koliziyi rozdilyayuchih simvoliv Ploska organizaciya danih ne peredbachaye strukturnih vzayemozv yazkiv mizh danimi tobto dani rozdrukovani na listku paperu viglyadatimut tak samo yak i u fajli na vidminu vid bilsh skladno organizovanih relyacijnih baz danih Klasichnim prikladom ploskoyi bazi danih mozhe vvazhatisya telefonnij dovidnik sho mistit neveliki zapisi fiksovanoyi dovzhini Imeni Adresi ta Nomera telefonu Inshij duzhe poshirenij hocha j ne tradicijnij priklad prosta ne skladena HTML tablicya yaka skladayetsya iz ryadkiv i stovpciv RealizaciyiTelefonnij dovidnik mozhna napisati vid ruki u zvichajnij alfavitnij knizhci mozhna na listi paperu i skoristatisya drukarskoyu mashinkoyu abo tekstovim redaktorom na komp yuteri i rozdrukuvati na printeri Hocha ye bagato prikladiv programnogo zabezpechennya napisanogo specialno dlya zruchnogo stvorennya i vikoristannya tih chi inshih ploskih baz danih Istorichni realizaciyi Viniknennya ploskih baz danih pov yazuyut z imenem amerikanskogo statista Germana Gollerita yakomu nalezhit ideya pro te sho personalni dani kozhnogo rezidenta SShA taki yak im ya vik tosho mozhut buti predstavleni ryadkom iz bukv ta cifr rozdilenih mizh soboyu probilami dovzhinoyu rivno 80 simvoliv U 1888 r G Gollerit stvoriv osoblivij pristrij tabulyator u yakomu informaciya nanesena na specialni nosiyi informaciyi perfokarti rozshifrovuvalasya elektrichnim strumom Zgodom vin prodav svoyu koncepciyu i tabulyator byuro perepisu naselennya SShA U 1890 r tabulyator vikoristovuvavsya dlya obrobki danih dvanadcyatogo perepisu naselennya SShA ce bula persha komp yuterizovana baza danih yaka yavlyala soboyu tisyachi korobok zapovnenih perfokartami Protyagom Drugoyi svitovoyi vijni amerikanskij uryad ta veliki korporaciyi vikoristovuvali primitivni komp yuteri dlya najtipovishih zadach buhgalterskogo obliku napriklad obrahunku zarobitnoyi platni Slid zaznachiti sho ci mashini use she vikoristovuvali 80 simvolni perfokarti Gollerita yak osnovnij nosij pri zberiganni j obrobci danih Pidpriyemstvo Gollerita zgodom pereroslo u komp yuternogo giganta firmu IBM yaka zajmaye dominuyuchi poziciyi na rinku i sogodni U 80 h rokah XX stolittya na oboh platformah yak DOS tak i Macintosh programi sho dozvolyali koristuvacham stvoryuvati yihni vlasni ploski bazi danih stali takimi zh populyarnimi yak i tekstovi redaktori abo elektronni tablici Prikladi zasobiv modelyuvannya ploskih baz danih mozhna bulo znajti u rannih versiyah FileMaker ta Deyaki programi zabezpechuvali obmezheni relyacijni mozhlivosti dozvolyayuchi obmin danimi mizh fajlami Suchasni realizaciyi Narazi nebagato program dozvolyayut stvoryuvati ta vikoristovuvati ploski bazi danih zagalnogo vikoristannya taka mozhlivist realizovana u Microsoft Works dostupna u deyakih versiyah Windows ta inkoli nazivayetsya ClarisWorks dostupna yak dlya Windows tak i dlya Apple platform Vodnochas taki produkti yak Paradox firmi Borland ta Access firmi Microsoft proponuyut prosti zasobi stvorennya relyacijnih baz danih razom iz vbudovanimi movami programuvannya Sistemi keruvannya BD taki yak MySQL abo Oracle vimagayut programistskih navichok dlya stvorennya baz danih Bagato suchasnih program shiroko vikoristovuyut ploski bazi danih dlya zberigannya svoyih konfiguracijnih danih Inshi nadayut mozhlivist koristuvacham bachiti ta redaguvati ploski bazi danih vikoristovuyuchi viznachenij napered nabir poliv dilovi shodenniki katalogi knizhok tosho XML duzhe populyarnij format zberigannya danih u tekstovih fajlah odnak XML dopuskaye skladni vkladeni strukturi danih ta viznachennya samih danih tomu bulo b nekorektno nazivati XML zasobom realizaciyi ploskih baz danih Termini ta oznachennyaTermini sho vzhivayutsya dlya opisu ploskih baz danih ta zasobiv yihnoyi pidtrimki rizni dlya kozhnoyi konkretnoyi realizaciyi prote yihnya sut vid cogo ne zminyuyetsya Napriklad FileMaker vikoristovuye termin Find v toj chas yak MySQL zastosovuye Query Inshij priklad termin files u FileMaker ekvivalentnij terminu tables u MySQL Shob uniknuti plutanini navedemo taki oznachennya Stovpec pole deyakij parametr sho harakterizuye ob yekt V SKBD i FileMaker cya sutnist nazivayetsya polem angl field u MySQL ta Microsoft SQL Server stovpcem angl column Programa Microsoft Access vikoristovuye obidva termini Polem takozh chasto nazivayut peretin stovpcya i ryadka Ryadok zapis nabir znachen stovpciv Kozhen ryadok ploskoyi bazi danih mistit odin i toj samij nabir stovpciv sho j bud yakij inshij U programah FoxPro i FileMaker vzhivayetsya termin zapis angl record u MySQL ta Microsoft SQL Server ryadok angl row Programa Microsoft Access vikoristovuye obidva termini Duzhe vazhlivo ne plutati ryadok tablici angl row i tipom danih ryadok angl string Baza danih nabir zapisiv de kozhen zapis mistit usyu dostupnu informaciyu pro konkretnij ob yekt Strogo kazhuchi ploska baza danih ne povinna mistiti nichogo okrim samih danih ta rozdilnikiv U shirshomu rozuminni ce taka baza danih yaka zberigayetsya v odnomu yedinomu fajli j maye formu prostoyi tablici iz ryadkiv ta stovpchikiv sho ne mistyat posilan odin na odnogo abo inshi tablici Prikladi baz danihNehaj zadano nastupnu bazu danih identifikator im ya vbolivalnika nazva komandi za yaku vin vbolivaye Vlasne sami dani mozhut buti podani u viglyadi nastupnoyi tablici 1 Dmitro Shahtar 3 Vyacheslav Shahtar 4 Oleksandr Shahtar 5 Artem Dinamo 7 Igor Shahtar 6 Oleg Shahtar 2 Oleksandr Dinamo Vidpovidno do oznachen podanih vishe stovpchiki ciyeyi tablici nazvemo stovpcyami abo polyami a ryadki ryadkami abo zapisami Slid zvernuti uvagu sho dani v seredini odnogo polya odnoridni U pershomu stovpci ce identifikatori unikalni nomeri u drugomu imena u tretomu nazvi futbolnih klubiv Takozh vazhlivim ye te sho polya v mezhah odnogo zapisu pov yazani semantichno tobto zapisi u danomu prikladi mozhna chitati tak Artem vbolivaye za Dinamo Dlya togo shob peretvoriti danu tablicyu na plosku bazu danih neobhidno zadati pravilo zberigannya danih Odnim iz najprostishih ye take usi polya mayut fiksovanu shirinu yaksho dovzhina zapisu mensha shirini polya zapovniti misce probilami kozhen novij zapis povinen pochinatisya iz novogo ryadka Toj samij rezultat mozhna dosyagnuti rozdilyayuchi polya znakami tabulyaciyi a zapisi simvolom novogo ryadka Fajli takogo formatu nazivayutsya rozdilenimi tabulyaciyeyu Inshij sposib zberigannya danih polyagaye u tomu sho polya rozdilyayutsya komami a zapisi simvolami novogo ryadka Dani u takomu formati nazivayutsya rozdilenimi komami CSV 1 Dmitro Shahtar 3 Vyacheslav Shahtar 4 Oleksandr Shahtar 5 Artem Dinamo 7 Igor Shahtar 6 Oleg Shahtar 2 Oleksandr Dinamo I she odin sposib zberigannya danih 1 Dmitro Shahtar 3 Vyacheslav Shahtar 4 Oleksandr Shahtar 5 Artem Dinamo 7 Igor Shahtar 6 Oleg Shahtar 2 Oleksandr Dinamo Use ce ekvivalentni bazi danih Redaguvannya takih baz zdayetsya duzhe prostim koli danih nebagato prote zruchnist specialnih zasobiv yaki dozvolyayut chitati redaguvati stvoryuvati j stirati fajli ploskih baz danih staye osoblivo pomitnoyu na znachnih obsyagah danih krim togo realizaciyi SKPBD sistem keruvannya ploskimi bazami danih dozvolyayut pereviryati dani na vidpovidnist tipu i shablonu zdijsnyuvati poshuk tosho Shvidkist i prostota takih zasobiv ye ochevidnimi plyusami ale v miru zrostannya obsyagiv i skladnosti samih danih z yavlyayetsya neobhidnist u bilsh skladnomu ta gnuchkomu instrumentariyi takomu yak relyacijni bazi danih Riznicya mizh ploskoyu i relyacijnoyu modellyu baz danihDuzhe vazhlivo rozumiti riznicyu mizh odnotablichnoyu ploskoyu bazoyu danih opisanoyu vishe i bagatotablichnoyu relyacijnoyu bazoyu danih Ploski fajli naspravdi ye skladovoyu chastinami bud yakoyi relyacijnoyi bazi danih i vistupayut yak shovisha indeksiv indexes obmezhen constraints trigeriv triggers vidnoshen foreign key relationships planiv fragmentaciyi fragmentation plans ta replikaciyi replication plans a takozh inshih skladovih suchasnih rozpodilenih relyacijnih baz danih u nastupnomu prikladi dvi ploski tablici File1 ta File2 zv yazani mizh soboyu zovnishnim klyuchem team u deyakomu relyacijnomu vidnoshenni R File1 file offsetidnameteam 0x008SergijDinamo 0x131DmitroShahtar 0x273VyacheslavShahtar 0x3B4OleksandrShahtar 0x4F5ArtemDinamo 0x627IgorShahtar 0x766OlegShahtar 0x8A2OleksandrDinamo File2 teamarena DinamoNSK Olimpijskij ShahtarRSK Olimpijskij Stovpec file offset naspravdi ne ye chastinoyu cogo vidnoshennya vin ye prikladom indeksu Indeks dlya File1 0x00000013 0x0000008A 0x00000027 0x0000003B 0x0000004F 0x00000076 0x00000062 0x00000000Div takozhBaza danihDzherela informaciyiCe nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi