Светът е информация. В наши дни във всяка сфера на живота се използва едно или друго решение чрез информационни технологии.
Разбира се има и информационни решения, които не използват бази данни в общоприетия смисъл, но те е възможно да съхраняват данни във външни файлове.
В повечето случаи почти винаги има нужда от съхранение и управление на информация. Ето например ако вземем съвременните мобилни телефони (смартфони), които са вече конкурентни на възможности на компютрите. Те използват SQLite за съхранение на различни настройки или бележника с контакти.
За да можем да записваме, съхраняваме и управляваме данните и информацията е необходимо да използваме един или друг вид база данни. Различните бази данни помагат да се моделират различни процеси в отделни области на живота. Комбинацията от програмно решение (софтуер) и базата данни дават възможност да се управляват и моделират процеси в дългосрочен план. Дори в някои по-комплексни решения се добавят и мобилни приложения, които са инсталирани на различни мобилни устройства – смартфони, таблети и други.
С развитието на Internet Of Things (Интернет на Нещата – IoT) базите данни заемат ключова позиция.
Почти 100% от решенията в Интернет – платформи, уебсайтове, блогове, електронни магазини и др. не могат да се реализират без бази данни.
Съвременните решения чрез информационни технологии в по-голямата си част са немислими без участието на база данни като част от цялостната концепция.
Базите данни (databases) представляват логически свързани множества, които съхраняват данни в определен формат. Те предоставят възможности за съхранение и управление на информацията, така че по всяко време могат да се правят анализи и справки. В българската литература е възприет термина Системи за управление на бази от данни (СУБД). Различават се няколко основни вида бази данни, като най-разпространения вид са релационните бази данни (RDBMS – Relational Database Management Systems). С тях са реализирани почти 100% от решенията в Интернет – платформи, уебсайтове, блогове, електронни магазини и др. не могат да се реализират без бази данни.
Данни и Информация
Първоначалното събиране на данни е изключително важно да се проектира по такъв начин, че да се избере подходящ вид база данни.
Данните винаги са първичната информационна единица. В процес на анализ и интерпретация данните се превръщат в информация.
Да вземем за пример Единния Граждански Номер (ЕГН) – 8610126687. Той е само поредица от цифри, докато не се въведат правилата, че първите две цифри отговарят на годината на раждане, вторите на месеца на раждане, следващите две на датата на раждане и така нататък. Но без да въведем тези правила за анализ и интерпретация тези цифри не са нищо повече от поредица от символи.
Има различни бази данни според модела чрез който функционират. Той определя и начина на работа и обработка на данните и информацията.
Видове бази данни
Според основният си модел на работа се различават различни видове бази данни. Важно е да се отбележи, че в едно софтуерно решение е напълно възможно да се използват различни по тип бази данни.
Йерархични бази данни
В йерархичният модел на бази данни цялата информация се съхранява в определена йерархична последователност. Важна подробност е, че йерархичното дърво е обърнато с корена нагоре.
Мрежови бази данни
В мрежовият модел се разпределят данните посредством обекти. Обектите от една предметна област са обединени в мрежа, която се нарича множество.
Базата данни се разпределя на множества, които сами по себе си съдържат записи.
Характерно е че една съвкупност от записи може да се съдържа в една или няколко мрежи.
Достъпът до данните е бърз и с голяма скорост. Обаче, самият достъп изисква добро познаване на логическата структура.
Релационен модел
Релационният модел е най-разпространеният вид бази данни, който се изпозлва повсеместно са реализация на различни информационни решения.
Характерното за релационният модел е че данните са разпределени в таблици. Всяка таблица има характерно име.
Таблицата се състои от колони (полета, атрибути) и записи (редове). Колоните имат собствен тип данни и подходящо значещо име. Редовете се идентифицират посредством колоните.
Между различните таблици се изграждат връзки (constraints) посредством първичен и външен ключ и по този начин се създава възможност за комбиниране на данните.
Работата с релационния модел на база данни се базира на математическия модел за работа с множества и е доста улеснена в сравнение с другите видове бази данни.
Данните са с висока степен на независимост и позволяват различни видове комбинации.
Едни от най-разпространените бази данни са – MySQL, SQL Server, MS Access, SQLite, Oracle, Firebird, PostgreSQL.
Обектно ориентиран модел
Обектните видове бази данни са много различни от всички други модели. Те поддържат възможност за съхранение и организация на обекти с висока степен на оптимизация.
Обектният модел позволява съхранение на различни големи по обем неструктурирани данни като например – изображения, видео, глас и други.
Не-релационен модел – NoSQL
В този модел се отделят специфични бази данни, които често пъти се използват за управление и съхранение на огромни обеми от информация. Типичен представител на този модел това е MongoDB.
Типично за базите данни от тип NoSQL нямат типична поддръжка на ACID (Atomicity, Consistency, Isolation, Durability) транзакции. Транзакциите в базите данни представляват механизъм на пакетно изпълнение на поредица от стъпки. При възникване на проблем на дадена междинна стъпка се връщат данни в първоначален вид преди започване на транзакцията.
От своя страна базите данни с модел NoSQL се поделят на няколко вида – Хранилища по ключ и стойност, Документни хранилища, Граф.
Връзка към база данни
При изграждане на една информационна система, платформа, уебсайт, мобилно приложение е необходимо да се направи връзка към база данни. Това е необходимо ако избраното решение има нужда от това да използва данни. Ако приемем, че е необходимо да се прави връзка към база данни то тогава има няколко подхода. Чрез различни провайдери (ADO, ODBC, DAO, JDBC, OLE DB и др.). Също така връзка може да бъде направена чрез определени библиотеки в зависимост от избрания език за програмиране и разработка.
Почти всеки език за разработка притежава механизъм за връзка към база данни, понякога те се наричат ORM (Object Relational Mapping). Различните видове ORM имат осигурена поддръжка на определени бази данни.
ORM позволяват да се напише програмния код веднъж без да се налага да се променя ако се наложи да се смени базата данни. По този начин може да се реализира гъвкав механизъм за обръщение към различни бази данни в процеса на работа на дадена софтуерна система.
Езикът на базите данни
Най-разпространеният език за работа с базите данни се нарича SQL (Structured Query Language – Структуриран език за заявки). Различните бази данни използват по същество SQL, но с някои разлики във възможностите. SQL се използва за извличане на данни по различни критерии, манипулиране на данни, управление на транзакции, дефиниране и контролиране на данни.
Между различните производители на бази данни се е постигнало споразумение за пълна еднаквост в основните команди за управление на данните. Разликите се състоят в това, че някои бази данни имат допълнителни функции и възможности.
Често пъти е добра практика в работата на даден екип да има специализирани един или повече участника, които основно работят по базата данни и писането на инструкции и команди. Тези специалисти се наричат SQL Developers. По този начин се гарантира, че качеството на работа ще е по-високо, тъй като не е необходимо да се натоварва един специалист с работата по писане на инструкции за базата данни на SQL.
В заключение можем да отбележим, че е необходимо да се притежават фундаментални познания, умения и разбиране за работа с база данни от всеки член на екипа по даден проект. И то без значение дали ще има специализирано разделение на участниците в даден екип или не.
Ако всичко прочетено по-горе ви е заинтригувало, намирате проектирането на бази от данни за интересно, важно и отговорно начинаение, тогава можете да ги опознаете още по добре с нашия курс по база данни. Уменията, които ще придобиете по време на курса ще ви дадът възможност да упражнявате професията – „Специалист по бази данни“, като работите по различни ИТ проекти.