История на базите данни: база данни и СУБД

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

Страхотна идея, но Howто се казва, дяволът е в детайлите. Големи количества данни трябваше не само да се съхраняват, но и да се променят, като от тях бяха напequalsи различни проби. Освен това трябва да изберете различни данни от различни места и да го направите бързо и красиво.

Като цяло всичко е Howто обикновено: клиентите искаха нещо, което не съществува, и решението за закупуване на твърди дискове този път не проработи.

Затова програмистите на тази ИТ компания извадиха по-голям бюджет за себе си, проведоха изследователска работа и когато бюджетът приключи, представиха презентация, в която беше предложено да съхраняват данни под формата на база данни. В база данни всички данни се съхраняват в таблици и всяка table се съхранява в отделен файл. Всичко гениално е просто и всичко работи.

Но такова представяне не се хареса на клиентите и брането на гниди продължи:

  • Къде са парите, Лебовски?
  • Защо базата данни е по-добра от доброто старо съхранение на данни под формата на набор от файлове?
  • Имаме нужда от наистина добро решение, не е това!
  • И отне целия бюджет?

В залата за презентации цареше гробна тишина. Но неочаквано за всички ситуацията беше спасена от млад разработчик, който каза, че към базата данни е прикрепена специална програма - СУБД ( система за управление на бази данни), която може:

  • Създаване, модифициране и изтриване на бази данни
  • Правете промени в базите данни, а именно: добавяне на нови записи, изтриване на стари и промяна на тях
  • И също така супер бързо за извършване на различни селекции на всяHowви данни

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

Програмистите просто още не са завършor проектирането на езика , така че в презентацията няма нито дума за SQL и СУБД.

За радост на всички клиентите бяха впечатлени от обяснението, което чуха, изразиха няколко противоречиви идеи за това Howъв трябва да бъде този нов език и дори отделиха бюджет за неговото усъвършенстване.

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

Популярни СУБД и MySQL

В момента (лято 2022) има стотици популярни СУБД, така че ще ви бъде полезно да научите за някои от тях. С Howво да започна...

От една страна, корпоративният пазар на СУБД съществува от десетилетия. Следователно има Howто признати лидери, така и обещаващи новодошли. От друга страна, изискванията на бизнеса непрекъснато нарастват, така че подходите за изграждане на ИТ инфраструктури на компаниите непрекъснато се променят.

Сега няма да изненадате никого с база данни от клъстер от няколко хиляди сървъра с хоризонтално и вертикално шардинг, разпределени транзакции, Howто и ИТ отдел от няколко дузини системни администратори, които отиват и сменят сървърните твърди дискове според предварително определен график.

Като цяло, ако работите за голяма компания, най-вероятно те плащат много пари за своите бази данни и използват нещо подобно:

База данни на Oracle

Oracle пусна първата си база данни през 1979 г. (преди 43 години). Тя веднага носи името Oracle 2.0, за да убеди клиентите, че продуктът не е нов, а изпитан във времето.

Текущата version на базата данни е Oracle 21 c , където буквата c е от думата cloud , което сякаш подсказва, че Oracle е в крак с времето и неговите решения са идеално съвместими с всички облачни технологии.

Microsoft SQL сървър

Microsoft прави много пари, продавайки не Windows, а сървърни решения за среден и голям бизнес. Microsoft Office, Microsoft SharePoint, Microsoft Server и т.н. И, разбира се, всичко това изисква добра база данни. Поради това много компании, използващи продуктите и решенията на Microsoft, са принудени да използват неговата база данни.

СУБД на Microsoft се нарича просто SQL Server , така че ако чуете въпроса „Работor ли сте с SQL Server?“ на интервю, тогава знайте, че това не е абстрактна СУБД, а Microsoft SQL Server.

PostgreSQL

Това е добра безплатна СУБД, която често се използва не само от малки и средни компании, но и от големи корпорации. Това е една от базите данни, които Amazon AWS предлага като DB-as-service.

MySQL

MySQL е много популярна безплатна база данни с отворен code. Той е добре documentиран, работи бързо и поддържа широк набор от функции. Към днешна дата е налична 8-та version на тази СУБД.

През 2008 г. беше закупен от Sun, който беше закупен от Oracle през 2009 г. И това само й беше от полза - продуктът непрекъснато се развива и подобрява.

Ще научим How да работим с бази данни, използвайки MySQL Community Server 8.0 като пример .

Таблици в база данни: колони и колони

Различните СУБД могат да съхраняват данни в различни формати, така че ще вземем най-простия и класически вариант - СУБД MySQL.

И веднага възниква въпросът: How да съхранявате например счетоводни documentи? Най-лесният вариант е да съхранявате всеки document като Excel файл. Тогава всички свързани documentи могат да се съхраняват в една папка. Ето How работи MySQL.

Друга аналогия: в езика Java имате класове и пакети във вашия проект , но в същото време класовете и пакетите са представени на диска като файлове и папки . Нещо подобно съществува в MySQL.

MySQL данните се съхраняват под формата на таблици , които се комбинират в бази данни , но в същото време таблиците и базата данни се представят на диска като файлове и папки . Базата данни е папка, а файловете в нея са таблици.

Всяка table се състои от колони и редове . Пример:

важно! Всяка колона има име и тип данни , така че всички клетки в същата колона трябва да съхраняват стойности от един и същи тип .

Може да се направи аналогия между table в MySQL и клас в Java. Таблицата е клас, tableта, Howто и класът, има уникално име. Колоните на tableта са полета на клас; колоните, подобно на полетата, имат уникално име и тип. Редовете на tableта са екземпляри на клас в Java.

Класът може да съществува без обекти, а tableта може да съществува без редове. В Java можете да създадете нов обект, а в MySQL можете да добавите нов ред към table. Можете да промените стойностите на полето на обект, а в MySQL можете да промените стойностите в ред.

Още по-правилно е да се каже, че tableта не е клас, а колекция от обекти от определен клас. Ако в MySQL имаме table Employee с данни за служителите, тогава в Java ще използваме колекцията ArrayList.

И, разбира се, веднага възниква въпросът: How да получите определени данни от тази колекция?