Jezici upita za baze podataka - MQL - 5.0 out of 5 based on 1 vote
Jezici upita za baze podataka - MQL

Jezici upita za baze podataka - MQL

Kako pristupiti podacima u bazi podataka

SQL, MQL i Cypher

MQL

Kôd baza dokumenata SQL jezika nije pogodan za izravno korištenje, pa su se zato pojavili alternativni pristupi. MongoDB baza podataka, kao najpoznatiji i najrašireniji predstavnik baza dokumenata, koristi posebno razvijeni jezik upita od samog proizvođača baze podataka pod nazivom MQL (MongoDB’s Query Language). O čemu je riječ?

Budući da se dokumenti u MongoDB bazi čuvaju u JSON formatu (ili točnije u BSON – Binary JSON formatu zbog optimalnog zauzeća prostora i veće brzine obrade podataka), onda je nekako i logično da se upiti postavljaju u nečemu što također nalikuje JSON sintaksi.

Kako izgledaju MQL upiti najlakše je razumjeti na dva primjera prevođenja SQL upita u MQL sintaksu:

SQL:
----
SELECT COUNT(*) AS count
FROM person

SELECT band_name,
    SUM(price) AS total
FROM albums
GROUP BY band_name
ORDER BY total

MQL:
----
db.person.aggregate( [
    {
        $group: {
            _id: null,  
            count: { $sum: 1 }
        }
    }
] );

db.albums.aggregate( [
    {
        $group: {
            _id: “$band_name”,
            total: { $sum: “$price” }
        }
    },
    { $sort: { total: 1 } }
] );

 

Ako pogledate prateću sliku uz tekst s prikazom baze dokumenata o filmova nešto starijeg datuma, lako ćete primijetiti da je dio podataka (koji bi se u relacijskim bazama spremao u posebne tablice) u ovom slučaju jednostavno umetnut u osnovnu kolekciju dokumenata o filmovima. Naprimjer, žanrovi filmova, glumačka ekipa, scenaristi, osvojene nagrade i slično. Baza podataka o filmovima temeljena na dokumentima omogućava da u jednoj kolekciji budu obuhvaćeni svi mogući podaci o pojedinim filmovima, iako su neki od njih dostupni samo za dio filmova – npr. osvojene nagrade ili recenzije kritičara.

 

jeziciUpitaMongoPr

MongoDB Atlas: Primjer kako izgledaju podaci u cloud verziji baze dokumenata MongoDB.

 

Spomenimo usput da ovi podaci predstavljaju dio kolekcije demo podataka posebne cloud verzije baze podataka MongoDB. Korištenje cloud verzije ujedno predstavlja jedan od najjednostavnijih načina za upoznavanje s MongoDB bazom dokumenata, jer je veliki dio mogućnosti slobodno dostupan na web adresi: https://www.mongodb.com/atlas/database.
Budući da se u slučaju baza dokumenata velika većina međusobno povezanih podataka nalazi u okviru iste kolekcije dokumenata, a međusobno povezivanje različitih kolekcija u cilju dobivanja rezultata češće je izuzetak nego pravilo, za MQL upite vrijedi sljedeće:

MQL upite je jednostavnije pisati zato što ne trebate brinuti o međusobnom povezivanju velikog broja objekata da biste dobili željene podatke. Iako pri tome ipak morate znati sve atribute pojedine kolekcije dokumenata.

 

jeziciUpitaMongoPlan

MongoDB Atlas: Usporedba mogućnosti besplatne verzije baze s verzijama koje se naplaćuju.

 

Istovremeno je teže pisati MQL upite zato što se u njima pojavljuje veliki broj različitih vrsta zagrada (čega nema ni izbliza toliko puno u SQL upitima), pa je to mjesto gdje je najlakše napraviti greške kod pripreme upita. Ipak se čovjek vremenom navikne na sve, pa tako i na zagrade, naročito uz pomoć odgovarajućih alata za pisanje upita.

Kao i kod SQL upita, treba točno napisati što se sve želi dobiti i na koji način.

Iako MongoDB ne zahtijeva kreiranje objekata poput kolekcija dokumenata prije njihova korištenja, postoji i dio naredbi koje odgovaraju SQL DDL naredbama (ako ništa drugo, potrebne su za uklanjanje postojećih kolekcija dokumenata).

Rezultati MQL upita vraćaju se također u sveprisutnom JSON obliku, što je pogodno za sve alate ili aplikacije koje prirodno razumiju takav format podataka. Naprimjer, različite mobilne aplikacije.

Spomenimo na ovom mjestu kako se za pristup bazama dokumenata mogu koristiti i drugi jezici upita (npr. unQL), ali je to već tema za neku drugu priliku.

(Stranica 3 od 4)
« Prev All Pages Next » (Stranica 3 od 4)
Ocijeni sadržaj
(1 Glasaj)

// možda će vas zanimati

Newsletter prijava


Kako izgleda naš posljednji newsletter pogledajte na ovom linku.

Skeniraj QR Code mobitelom i ponesi ovu stranicu sa sobom

Jezici upita za baze podataka - VidiLAB - QR Code Friendly

Copyright © by: VIDI-TO d.o.o. Sva prava pridržana.