You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/bg/2-Working-With-Data/06-non-relational/README.md

21 KiB

Работа с данни: Нерелационни данни

 Скетч от (@sketchthedocs)
Работа с NoSQL данни - Скетч от @nitya

Тест преди лекцията

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

Електронни таблици

Електронните таблици са популярен начин за съхранение и изследване на данни, защото изискват по-малко усилия за настройка и започване. В тази лекция ще научите основните компоненти на електронна таблица, както и формули и функции. Примерите ще бъдат илюстрирани с Microsoft Excel, но повечето части и теми ще имат подобни имена и стъпки в сравнение с други софтуери за електронни таблици.

Празен Microsoft Excel работен файл с два работни листа

Електронната таблица е файл и ще бъде достъпна в файловата система на компютър, устройство или облачна файлова система. Самият софтуер може да бъде браузър-базиран или приложение, което трябва да бъде инсталирано на компютър или изтеглено като приложение. В Excel тези файлове също се дефинират като работни книги и тази терминология ще се използва в останалата част от лекцията.

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

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

Управление на инвентаризация

Файлът на електронната таблица, наречен "InventoryExample", е форматирана таблица с артикули в инвентаризацията, която съдържа три работни листа, като табовете са обозначени "Inventory List", "Inventory Pick List" и "Bin Lookup". Ред 4 от работния лист Inventory List е заглавието, което описва стойността на всяка клетка в колоната на заглавието.

Подчертана формула от примерен инвентарен списък в Microsoft Excel

Има случаи, когато стойността на клетка зависи от стойностите на други клетки, за да се генерира нейната стойност. Работният лист Inventory List следи разходите за всеки артикул в инвентара, но какво ако трябва да знаем стойността на всичко в инвентара? Формулите извършват действия върху данните в клетките и се използват за изчисляване на стойността на инвентара в този пример. Тази електронна таблица използва формула в колоната Inventory Value, за да изчисли стойността на всеки артикул, като умножи количеството под заглавието QTY и разходите под заглавието COST. Двойно щракване или маркиране на клетка ще покаже формулата. Ще забележите, че формулите започват със знак за равенство, последван от изчислението или операцията.

Подчертана функция от примерен инвентарен списък в Microsoft Excel

Можем да използваме друга формула, за да съберем всички стойности на Inventory Value и да получим общата стойност. Това може да бъде изчислено чрез добавяне на всяка клетка, за да се генерира сумата, но това може да бъде трудоемка задача. Excel има функции, или предварително дефинирани формули за извършване на изчисления върху стойностите на клетките. Функциите изискват аргументи, които са необходимите стойности за извършване на тези изчисления. Когато функциите изискват повече от един аргумент, те трябва да бъдат изброени в определен ред, иначе функцията може да не изчисли правилната стойност. Този пример използва функцията SUM и използва стойностите на Inventory Value като аргумент, за да генерира общата стойност, изброена под ред 3, колона B (наричана още B3).

NoSQL

NoSQL е общ термин за различните начини за съхранение на нерелационни данни и може да се интерпретира като "не-SQL", "нерелационни" или "не само SQL". Тези типове системи за бази данни могат да бъдат категоризирани в 4 типа.

Графично представяне на база данни с ключ-стойност, показващо 4 уникални числови ключа, свързани с 4 различни стойности

Източник от Блог на Michał Białecki

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

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

Източник от Microsoft

Граф бази данни описват връзките в данните и са представени като колекция от възли и ръбове. Възелът представлява обект, нещо, което съществува в реалния свят, като студент или банково извлечение. Ръбовете представляват връзката между два обекта. Всеки възел и ръб имат свойства, които предоставят допълнителна информация за тях.

Графично представяне на колонна база данни, показващо клиентска база данни с две групи колони, наречени Identity и Contact Info

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

Документни бази данни с Azure Cosmos DB

Документните бази данни се основават на концепцията за база данни с ключ-стойност и се състоят от серия от полета и обекти. Тази секция ще разгледа документните бази данни с емулатора Cosmos DB.

База данни Cosmos DB отговаря на дефиницията за "не само SQL", където документната база данни на Cosmos DB разчита на SQL за заявяване на данни. Предишната лекция за SQL обхваща основите на езика и ще можем да приложим някои от същите заявки към документна база данни тук. Ще използваме емулатора Cosmos DB, който ни позволява да създаваме и изследваме документна база данни локално на компютър. Прочетете повече за емулатора тук.

Документът е колекция от полета и стойности на обекти, където полетата описват какво представлява стойността на обекта. По-долу е даден пример за документ.

{
    "firstname": "Eva",
    "age": 44,
    "id": "8c74a315-aebf-4a16-bb38-2430a9896ce5",
    "_rid": "bHwDAPQz8s0BAAAAAAAAAA==",
    "_self": "dbs/bHwDAA==/colls/bHwDAPQz8s0=/docs/bHwDAPQz8s0BAAAAAAAAAA==/",
    "_etag": "\"00000000-0000-0000-9f95-010a691e01d7\"",
    "_attachments": "attachments/",
    "_ts": 1630544034
}

Полетата от интерес в този документ са: firstname, id и age. Останалите полета с подчертавания са генерирани от Cosmos DB.

Изследване на данни с емулатора Cosmos DB

Можете да изтеглите и инсталирате емулатора за Windows тук. Вижте тази документация за опции как да стартирате емулатора за macOS и Linux.

Емулаторът стартира прозорец в браузъра, където изгледът Explorer ви позволява да изследвате документи.

Изгледът Explorer на емулатора Cosmos DB

Ако следвате инструкциите, щракнете върху "Start with Sample", за да генерирате примерна база данни, наречена SampleDB. Ако разширите SampleDB, като щракнете върху стрелката, ще намерите контейнер, наречен Persons. Контейнерът съдържа колекция от елементи, които са документите в контейнера. Можете да изследвате четирите индивидуални документа под Items.

Изследване на примерни данни в емулатора Cosmos DB

Заявяване на документни данни с емулатора Cosmos DB

Можем също да заявим примерните данни, като щракнем върху бутона за нова SQL заявка (вторият бутон отляво).

SELECT * FROM c връща всички документи в контейнера. Нека добавим условие WHERE и намерим всички под 40 години.

SELECT * FROM c where c.age < 40

Изпълнение на SELECT заявка върху примерни данни в емулатора Cosmos DB, за да се намерят документи със стойност на полето age, която е по-малка от 40

Заявката връща два документа, като стойността на полето age за всеки документ е по-малка от 40.

JSON и документи

Ако сте запознати с JavaScript Object Notation (JSON), ще забележите, че документите изглеждат подобно на JSON. В тази директория има файл PersonsData.json с повече данни, които можете да качите в контейнера Persons в емулатора чрез бутона Upload Item.

В повечето случаи API-та, които връщат JSON данни, могат директно да бъдат прехвърлени и съхранени в документни бази данни. По-долу е даден друг документ, който представлява туитове от акаунта на Microsoft в Twitter, извлечени чрез Twitter API и след това добавени в Cosmos DB.

{
    "created_at": "2021-08-31T19:03:01.000Z",
    "id": "1432780985872142341",
    "text": "Blank slate. Like this tweet if youve ever painted in Microsoft Paint before. https://t.co/cFeEs8eOPK",
    "_rid": "dhAmAIUsA4oHAAAAAAAAAA==",
    "_self": "dbs/dhAmAA==/colls/dhAmAIUsA4o=/docs/dhAmAIUsA4oHAAAAAAAAAA==/",
    "_etag": "\"00000000-0000-0000-9f84-a0958ad901d7\"",
    "_attachments": "attachments/",
    "_ts": 1630537000

Полетата от интерес в този документ са: created_at, id и text.

🚀 Предизвикателство

Има файл TwitterData.json, който можете да качите в базата данни SampleDB. Препоръчително е да го добавите в отделен контейнер. Това може да се направи, като:

  1. Щракнете върху бутона за нов контейнер в горния десен ъгъл
  2. Изберете съществуващата база данни (SampleDB), създайте идентификатор за контейнера
  3. Задайте ключ за разделяне на /id
  4. Щракнете върху OK (можете да игнорирате останалата информация в този изглед, тъй като това е малък набор от данни, който се изпълнява локално на вашата машина)
  5. Отворете новия си контейнер и качете файла с Twitter данни чрез бутона Upload Item

Опитайте да изпълните няколко SELECT заявки, за да намерите документи, които съдържат Microsoft в полето text. Подсказка: опитайте да използвате ключовата дума LIKE.

Тест след лекцията

Преглед и самостоятелно обучение

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

  • Тази архитектурна документация описва характеристиките на различните типове нерелационни данни: Нерелационни данни и NoSQL.

  • Cosmos DB е облачна нерелационна база данни, която може също да съхранява различните типове NoSQL, споменати в тази лекция. Научете повече за тези типове в този Microsoft Learn модул за Cosmos DB.

Задание

Soda Profits


Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.