Section outline

  • ЛЕКЦИЯ 12

    NoSQL бази от данни

    В последните години се наблюдава бързо нарастване на обема на генерираните, обработвани, анализирани и архивирани масиви от данни. В допълнение се появят специфични типове от данни, генерирани от нови източници като сензори, системи за мониторинг, GP S- системи и др. Всичко това поставя предизвикателства относно управлението на подобни обемни масиви.

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

    В реалния живот обаче не винаги е възможно всички данни, които ще се събират и съхраняват да са със строго определена предварително структура. Често в данните може да се забележи някаква обща структура, но не всички я спазват напълно. Някои атрибути са общи за повечето елементи, други само за малка част или се отнасят за отделен елемент. Допълнителни елементи и атрибути могат да възникват без предварително да са предвидени в схемата на данните. Такива данни се наричат полуструктурирани, като за тяхното представяне най-често се използват модели, базирани на йерархичния (дървовиден) модел на данните.

    Съществуват и т.нар. неструктурирани данни, които имат съвсем неопределена схема. Пример за такива данни са Web страниците в HTML (HyperText Markup Language) формат, наричани още и HTML документи.

    Всичко това означава, че традиционните релационни бази от данни, при които се срещат до 10 стандартни типа, работи се с езика SQL и се спазват принципите на нормализация стават непригодни за обработването на големи множества от данни. Това води до създаването на нов клас от продукти, наречени NoSQL бази от данни, които не поддържат SQL и/или не са релационни. В тази група попадат продукти, които са доста технологично и архитектурно разнообразни, възникнали около определени потребности. Следва да се има предвид, че са правени много опити за използването на SQL за многопотребителски достъп до големи масиви от данни – обектни СУБД, чисти XML бази от данни или специализирани СУБД  – всички тези алтернативи са погълнати от релационните СУБД (обикновено XML се използва за индексиране на текстове) или от OLAP средствата. Терминът NoSQL описва софтуерни продукти, които позволяват използването на нерелационни бази от Web разработчици.