Database
 sql >> база данни >  >> RDS >> Database

Електронни таблици срещу бази данни:Време ли е за смяна? Част 1

Електронните таблици – Excel, Google Sheets или лист с друго име – са наистина страхотни и мощни инструменти. Но също така и базите данни. Кога трябва да се придържате към електронна таблица? Кога трябва да преминете към база данни?

Можете да използвате електронни таблици и бази данни за подобни цели. Като се има предвид, че както организират данни, така и улесняват отчитането, понякога може да е трудно да се определи кой е най-добрият за използване. Така че нека поговорим за плюсовете и минусите на всяка опция.

В началото...

Ако тепърва започвате в бизнеса, електронната таблица (или „лист“) почти винаги е първият ви избор. Стартиращите фирми рядко разполагат с бюджет за поддръжка на персонализирана база данни. Освен това вашият бизнес е нов; няма да имате представа дали ще остане малък, ще се превърне в огромна корпорация или ще бъде някъде по средата.

Друг фактор е, че структурата и организацията на вашия бизнес вероятно ще се променят с разрастването му. Така че наистина изграждането на база данни в началото не е често срещана опция. Това е мястото, където обикновено се включват листовете.

Най-важната причина за използването на листове е, че те са налични. Можете да започнете да използвате Microsoft Excel, Google Sheets или всяка друга програма за електронни таблици само с няколко щраквания. Не е нужно да планирате сложна структура; можете просто да въвеждате данните си, да правите изчисления и отчети и да споделяте информацията с колеги. Sheets предлагат много страхотни вградени възможности и могат да проведат малък бизнес за известно време.

Така че да приемем, че имате всичките си данни на листове. Защо трябва да обмислите изграждането на база данни? С други думи, защо да си усложняваш живота, ако всичко работи?

В този момент бих ви предложил да се запитате колко добре работи всичко. Не забравяйте, че всичко работи добре, докато не спре да работи. В случай на листове, колкото повече данни имате, толкова повече проблеми можете да срещнете. Как базите данни ви помагат да избегнете тези проблеми? И кога трябва да помислите за смяна?

Използване на електронни таблици за организиране на данни

Да предположим, че сме създали компания, която предоставя телекомуникационни и интернет услуги на клиенти. Трябва да проследим кой клиент в момента се абонира за коя услуга. Клиентите могат да имат повече от една активна услуга наведнъж и услугата може да изтече в края на определен период или да се поднови автоматично.

Нека да разгледаме решение, което използва листове.

Просто сме направили списък с всички данни, които имаме, т.е. има комбинация от данни на едно място. Имаме данни за клиенти (колони A до E), типове услуги (колона F) и подробности за услугата (колони G, H и J).

На пръв поглед всичко изглежда доста добре. Можем да прегледаме всички данни, без да извършваме сложни действия. Можем да филтрираме нужните ни данни и да създадем централни таблици или графики за целите на отчитането. Дотук добре.

Но ако продължим да използваме листове, когато получим повече клиенти, можем да стигнем до момент, когато всичко стане твърде голямо, за да може листовете да го управляват. И това носи нов набор от проблеми.

Потенциални проблеми с електронните таблици

В сравнение с електронните таблици, базите данни са сложни. Но тези „усложнения“ служат на полезна цел; те предотвратяват или поне минимизират следните проблеми:

Качество на данните

Качеството и последователността на данните са огромен проблем за по-големите листове. Въпреки че възнамеряваме да съхраняваме данните правилно, проблеми с качеството на данните са много често срещани. Хората правят грешки или имаме неочаквана информация за въвеждане. Помислете само как сценариите for по-долу могат да представляват проблем:

  1. Искаме да добавим нов клиент, без да посочваме техния тип услуга. Трябва ли да добавим подробности за клиента и да пропуснем подробностите за услугата? Ако можем да вмъкнем само клиенти, които имат подробности за услугата, това е аномалия при вмъкване .
  2. Ами ако добавим данни за услугата, когато станат достъпни, след като създадем записа на клиента?
  3. Ами ако клиент се абонира за множество услуги? Трябва ли да създадем нов запис за всяка услуга, тъй като можем да имаме само един тип услуга на запис?
  4. Ами ако имаме няколко записа за един клиент и трябва да актуализираме информацията за този клиент? Освен ако не променим информацията във всички съответни редове, нашите данни ще бъдат непоследователни. Можем да имаме два различни адреса за един и същ акаунт; при това обстоятелство как бихме могли да разберем кои данни са верни?
  5. Какво се случва, когато изтрием данни? Ако изтрием целия ред, губим всички данни на този клиент. Това не е добра идея; по-добре е да премахнете само техните сервизни данни и да запазите данните им за клиентите. Но как можем да направим това, ако всичко се съхранява заедно в един ред?
  6. Ами ако само един клиент се абонира за услуга и ние изтрием този запис? Ако изтрием записа на този клиент, ще изтрием ли и всички записи за тази услуга? (Това се нарича аномалия на изтриване .) Това означава ли, че вече не предлагаме тази услуга? Ако все още я предлагаме, загубихме всички параметри, свързани с тази услуга.

Очевидно ще има усложнения при съхраняването на данните за всеки бизнес. Всички сме получавали проблеми с качеството на данните – напр. получихме сметки за услуги, които не сме поръчали, бяха таксувани два пъти за едно и също нещо или изпратихме пакет на грешен адрес. Тези неща се случват и при малък набор от данни е относително лесно да ги поправите. Но какво се случва, когато имаме хиляди или дори милиони редове? Скоро ще посветим почти цялото си време на коригиране на тези проблеми.

Проблеми с производителността

Проблеми с производителността се случва, когато наборите от данни станат твърде големи, за да може един лист да се обработва ефективно. Ще изпитате проблеми с качеството на данните много по-рано, отколкото проблеми с производителността, но това не означава, че проблемите с производителността са маловажни. Au contraire; проблемите с производителността могат да бъдат дори по-опасни от проблемите с качеството на данните.

Обичайно е да търсите конкретни редове, да вмъквате нови редове, да актуализирате или изтривате стойности на клетки в съществуващи редове и да изтривате цели редове. Всички тези действия изискват много филтриране, което не е проблем за малък набор от данни. Но когато вашите листове станат наистина големи, дори една проста операция може да отнеме минути. Да прекарате половината от работния си ден в очакване на филтъра да си свърши работата едва ли е разумен избор.

Има и свързаният проблем с излишъка – съхраняване на едни и същи данни многократно на диска (например клиентските данни се съхраняват отново и отново в няколко реда). Това също ще окаже влияние върху производителността.

При приличен хардуер листовете с хиляди редове ще бъдат наред. Но когато влезете в десетки хиляди редове, проблемите с производителността могат да вдигнат грозните си глави. Излишно е да казвам, че листове със стотици хиляди или дори милиони редове ще имат изключително лошо представяне.

От друга страна, базите данни са тук, за да решават проблеми с производителността. Когато всичко е настроено правилно, работата с милиони редове няма да представлява никакви предизвикателства.

Управление на исторически данни и отчети

Още един важен проблем с листовете е проследяването на промените в данните във времето. Ако просто изтриете данни от листове, ще ги загубите. Ако решите да съхранявате ежедневен лист (за да уловите всички промени и да запазите исторически данни), скоро ще се окажете погребани под тонове листове. Създаването на отчети от такава структура наистина отнема много време и качеството на всички отчети, генерирани от нея, би било много съмнително.

Имате ли такива проблеми с вашите данни?

В днешната статия обсъдихме някои недостатъци при използването на листове за организиране на много данни. Изпитвали ли сте някога някой от тези проблеми? Готови ли сте да изведете бизнеса си на следващото ниво? Ако отговорът е "да", вие сте на правилното място! Следващата седмица ще научим как една база данни решава проблеми със съхраняването на данни в листове.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разделяне на бюджет

  2. Най-добрите подходи за групирана медиана

  3. Разлика между SQL и NoSQL

  4. NextForm v3:Пет опции за миграция на данни и бази данни

  5. SQL изявление WHERE