История на базите данни: база данни и СУБД
Преди много време в една американска страна, в голяма ИТ компания, веднъж възникна задачата да се съхраняват много големи количества данни. Какво толкова трудно има в това, ще попитате? В крайна сметка големите компании имат пари, което означава, че можете да купувате повече твърди дискове - и това е всичко.
Страхотна идея, но Howто се казва, дяволът е в детайлите. Големи количества данни трябваше не само да се съхраняват, но и да се променят, като от тях бяха напequalsи различни проби. Освен това трябва да изберете различни данни от различни места и да го направите бързо и красиво.
Като цяло всичко е Howто обикновено: клиентите искаха нещо, което не съществува, и решението за закупуване на твърди дискове този път не проработи.
![](https://cdn.codegym.cc/images/article/ffb700f7-60b3-4cfc-a274-a1a35a6b1f31/512.jpeg)
Затова програмистите на тази ИТ компания извадиха по-голям бюджет за себе си, проведоха изследователска работа и когато бюджетът приключи, представиха презентация, в която беше предложено да съхраняват данни под формата на база данни. В база данни всички данни се съхраняват в таблици и всяка table се съхранява в отделен файл. Всичко гениално е просто и всичко работи.
Но такова представяне не се хареса на клиентите и брането на гниди продължи:
![](https://cdn.codegym.cc/images/article/a7850c1c-b3ee-403d-8453-dcc511174b7b/512.jpeg)
- Къде са парите, Лебовски?
- Защо базата данни е по-добра от доброто старо съхранение на данни под формата на набор от файлове?
- Имаме нужда от наистина добро решение, не е това!
- И отне целия бюджет?
В залата за презентации цареше гробна тишина. Но неочаквано за всички ситуацията беше спасена от млад разработчик, който каза, че към базата данни е прикрепена специална програма - СУБД ( система за управление на бази данни), която може:
- Създаване, модифициране и изтриване на бази данни
- Правете промени в базите данни, а именно: добавяне на нови записи, изтриване на стари и промяна на тях
- И също така супер бързо за извършване на различни селекции на всяHowви данни
И програмистите дори завършват проектирането на специален суперезик за филтриране на данни - SQL . И те казват, че с помощта на този магически език SQL всеки мениджър може лесно да филтрира и да получи всяHowви данни от базата данни.
![](https://cdn.codegym.cc/images/article/216e75d9-299a-44a8-9e0a-0cc1d26717a8/512.jpeg)
Програмистите просто още не са завършor проектирането на езика , така че в презентацията няма нито дума за SQL и СУБД.
За радост на всички клиентите бяха впечатлени от обяснението, което чуха, изразиха няколко противоречиви идеи за това Howъв трябва да бъде този нов език и дори отделиха бюджет за неговото усъвършенстване.
Мениджърите и техническият директор започнаха да се поздравяват взаимно за успешното завършване на проекта и веднага отидоха да отпразнуват това събитие, без да осъзнават напълно, че младшият програмист в цялата тази история е най-важният човек ...
Популярни СУБД и MySQL
В момента (лято 2022) има стотици популярни СУБД, така че ще ви бъде полезно да научите за някои от тях. С Howво да започна...
От една страна, корпоративният пазар на СУБД съществува от десетилетия. Следователно има Howто признати лидери, така и обещаващи новодошли. От друга страна, изискванията на бизнеса непрекъснато нарастват, така че подходите за изграждане на ИТ инфраструктури на компаниите непрекъснато се променят.
Сега няма да изненадате никого с база данни от клъстер от няколко хиляди сървъра с хоризонтално и вертикално шардинг, разпределени транзакции, Howто и ИТ отдел от няколко дузини системни администратори, които отиват и сменят сървърните твърди дискове според предварително определен график.
Като цяло, ако работите за голяма компания, най-вероятно те плащат много пари за своите бази данни и използват нещо подобно:
База данни на Oracle
![](https://cdn.codegym.cc/images/article/8a53ac38-0a59-466a-9597-f3e6bf618a43/800.jpeg)
Oracle пусна първата си база данни през 1979 г. (преди 43 години). Тя веднага носи името Oracle 2.0, за да убеди клиентите, че продуктът не е нов, а изпитан във времето.
Текущата version на базата данни е Oracle 21 c , където буквата c е от думата cloud , което сякаш подсказва, че Oracle е в крак с времето и неговите решения са идеално съвместими с всички облачни технологии.
Microsoft SQL сървър
![](https://cdn.codegym.cc/images/article/532a4cde-2214-4bec-96db-bff84eb41af6/512.jpeg)
Microsoft прави много пари, продавайки не Windows, а сървърни решения за среден и голям бизнес. Microsoft Office, Microsoft SharePoint, Microsoft Server и т.н. И, разбира се, всичко това изисква добра база данни. Поради това много компании, използващи продуктите и решенията на Microsoft, са принудени да използват неговата база данни.
СУБД на Microsoft се нарича просто SQL Server , така че ако чуете въпроса „Работor ли сте с SQL Server?“ на интервю, тогава знайте, че това не е абстрактна СУБД, а Microsoft SQL Server.
PostgreSQL
![](https://cdn.codegym.cc/images/article/b31cfc41-69af-488e-8079-5433fa502551/512.jpeg)
Това е добра безплатна СУБД, която често се използва не само от малки и средни компании, но и от големи корпорации. Това е една от базите данни, които Amazon AWS предлага като DB-as-service.
MySQL
![](https://cdn.codegym.cc/images/article/0ea0a78a-41d2-43c3-8cd0-b4c72d4c142a/512.jpeg)
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 се състои от колони и редове . Пример:
![](https://cdn.codegym.cc/images/article/ef9c797e-174d-4b27-a109-ff88a837ac5a/512.jpeg)
важно! Всяка колона има име и тип данни , така че всички клетки в същата колона трябва да съхраняват стойности от един и същи тип .
Може да се направи аналогия между table в MySQL и клас в Java. Таблицата е клас, tableта, Howто и класът, има уникално име. Колоните на tableта са полета на клас; колоните, подобно на полетата, имат уникално име и тип. Редовете на tableта са екземпляри на клас в Java.
Класът може да съществува без обекти, а tableта може да съществува без редове. В Java можете да създадете нов обект, а в MySQL можете да добавите нов ред към table. Можете да промените стойностите на полето на обект, а в MySQL можете да промените стойностите в ред.
Още по-правилно е да се каже, че tableта не е клас, а колекция от обекти от определен клас. Ако в MySQL имаме table Employee с данни за служителите, тогава в Java ще използваме колекцията ArrayList
И, разбира се, веднага възниква въпросът: How да получите определени данни от тази колекция?
GO TO FULL VERSION