Indholdsfortegnelse:
- Intet behov for at skrive SQL
- Har ikke brug for måneder at designe skema
- Mindre datatransformationskode (ETL)
- Nemmere at opretholde kode
- Udfør kode tæt på dataene for den bedste ydeevne
- Masser af open source-valgmuligheder
- Nem at skalere
- Eventual konsistens datamodel
- Esoterisk sprogunderstøttelse
- JavaScript end-to-end
Video: Must read books for computer programmers ? 2024
Populariteten af NoSQL databaser stammer fra det store antal udviklere, der er begejstrede for at bruge dem. Udviklere ser NoSQL som en aktiverende og befriende teknologi. I modsætning til den traditionelle relationelle tilgang giver NoSQL dig en måde at arbejde på med data, der ligger tættere på applikationen end den relationelle datamodel.
Udviklere vedtager NoSQL-teknologier af mange grunde, hvoraf nogle er fremhævet her:
Intet behov for at skrive SQL
Skriv struktureret forespørgselssprog (SQL) - og gør det godt - er bane for mange virksomhedsudvikleres eksistens. Denne smerte er, fordi det ikke er nemt at skrive meget komplekse forespørgsler med flere sammenføjninger på tværs af relaterede tabeller. Desuden er det i lyset af regelmæssig databaseændringer over tid at opretholde en kompleks forespørgselskode et job i sig selv.
Virksomhedsudviklere har opfundet en række måder at undgå at skrive SQL. En af de mest populære måder er ved brug af Object-Relational Mapping (ORM) biblioteket, Hibernate. Hibernate tager en konfigurationsfil og en eller flere genstande og abstraherer den ubehagelige SQL, så udviklere ikke behøver at bruge det. Dette kommer selvfølgelig til en prisfordeling og løser ikke alle forespørgselsbrugssager. Nogle gange skal du falde tilbage til SQL.
NoSQL-databaser giver deres egne forespørgselssprog, som er indstillet til, hvordan dataene administreres af databasen og til de operationer, som udviklere oftest udfører. Denne tilgang giver en enklere forespørgselsmekanisme end indlejrede SQL-sætninger gør.
Nogle NoSQL-databaser giver også en SQL-grænseflade til forespørgsel af NoSQL-databaser, hvis udviklere ikke kan bryde SQL-vanen!
Har ikke brug for måneder at designe skema
Schema-agnosticisme i NoSQL-databaser giver dig mulighed for hurtigt at indlæse data uden at skulle oprette et relationsschema over en periode på flere måneder. Du behøver ikke at analysere foran hver enkelt datapost, du skal gemme i NoSQL, som du gør med en RDBMS.
Mindre datatransformationskode (ETL)
Et almindeligt problem med relationelle databaser, der kommer fra at have et opadgående skema-design, er, at du skal tvinge ikke-relationelle data til rækker og kolonner. Denne makuleringsmekanisme sammen med andre kodemetoder, der præprocesserer information til opbevaring og efterprocesser den til hentning, kaldes ekstrakt, transformer og belastning (ETL) .
Denne kode tvinger udviklere til at tage deres flotte skinnende objekt og dokumentmodeller og skrive kode til at gemme alle de sidste elementer. At gøre det er ubehageligt og fører også til højtuddannede udviklere, der skriver dårlig udførelse og uinteressant VVS-kode.
NoSQL databaser giver dig mulighed for at holde de lagrede datastrukturer meget tættere på deres originale formular. Data, der flyder ind imellem systemer, findes typisk i et XML-format, mens der er tale om webapplikationer, der er formateret i et JSON-dokument. At være i stand til at gemme, administrere og søge JSON er en stor fordel for applikationsudviklere.
Nemmere at opretholde kode
Alle koden, du skriver, skal opretholdes. Ved at holde databasestrukturer tæt på applikationskodens datformater, minimerer du mængden af kode, hvilket igen minimerer vedligeholdelsen af kode- og regressionsprøvning, som du skal gøre over tid.
Når datastrukturerne ændres på en RDBMS, skal du gennemgå alle SQL-koder, der kan bruge de ændrede tabeller. I NoSQL tilføjer du blot støtte til de nye elementer, eller bare ignorere dem! Meget lettere at vedligeholde, takket være den schema-agnostiske karakter af NoSQL databaser.
Udfør kode tæt på dataene for den bedste ydeevne
En RDBMS giver gemte procedurer til udførelse af kode på en databaseserver. Denne kode udføres på ét sted. Denne nyttige tilgang er grundlaget for mange analytiske og komplekse datahåndteringsapplikationer.
Mange NoSQL-databaser tillader, at denne type kode distribueres på tværs af alle servere, der lagrer relevante data, hvilket muliggør større parallelisering af arbejdsbyrden. Denne fremgangsmåde er især vigtig for store indtag af data, der kræver behandling og for komplekse aggregeringsanalyser på forespørgsels tid.
Brugerdefinerede funktioner (UDF'er) og server-side scripting i en række NoSQL databaser giver denne distribuerede kapacitet. UDF'er ligner Hadops MapReduce-kapacitet, bortset fra UDF'er kan ske i realtid i stedet for i batch-tilstand og kræver ikke det samme udlæg i infrastruktur, som Hadoop plus en database ville kræve.
Masser af open source-valgmuligheder
I mange virksomhedssoftwareområder mangler valg af en solid open source-løsning. Kun en eller to udbredte muligheder kan eksistere. Tilgængeligheden af færdigheder og lokal støtte til landene er endnu større problemer.
Der er dog en myriade af open-source NoSQL databaser. Mange af disse har fuldt udviklede kommercielle virksomheder, der tilbyder support og har kontorer globalt. Så hvis du har brug for support eller flere funktioner, kan du i sidste ende flytte til disse versioner.
Dette reducerer omkostningerne ved at vedtage NoSQL-teknologi og giver dig mulighed for at "prøve, før du køber. "Denne tilgængelighed af open source-alternativer har fået kommercielle virksomheder i NoSQL-rummet til at tilbyde gratis men veludstyrede versioner af deres software eller at tilbyde specielle opstartslicenser til små organisationer.
Nem at skalere
Du behøver ikke at få en dyr DBA til at tilbringe dage, der refactoring SQL, og skabe materialiserede visninger for at øge hver tommers ydeevne ud af NoSQL-systemer.
Nøgletal butikker kan håndtere hundredtusindvis af operationer pr. Server. Alle typer NoSQL kan skaleres vandret på tværs af relativt billige råvareservere.Så det er meget nemmere at skalere din databasekluster med NoSQL end med traditionelle relationsdatabaser.
På grund af deres evne til at skalere, passer NoSQL databaser også godt ind i offentlige og private skyer. NoSQL databaser er designet til at være fleksible og udvide og kontrakt som anvendelser til din ansøgningsændring. Denne evne kaldes ofte elasticitet .
Eventual konsistens datamodel
Selvom missionskritiske tilfælde kræver ACID-overholdelse, skal hver applikation ikke gøre det. At være i stand til at slappe af konsistens på tværs af meget store klynger kan være nyttigt til nogle applikationer.
NoSQL databaser giver dig mulighed for at slappe af disse begrænsninger eller at blande og matche stærk konsistens og svag konsistens i den samme database til forskellige rekordtyper.
Esoterisk sprogunderstøttelse
Næsten meget alle databaser understøtter de vigtigste programmeringssprog som Java og C #. NET. Mange databaser understøtter gerne PHP, Python og Ruby on Rails.
NoSQL har et blomstrende sæt sprogdrivere til et endnu bredere udvalg af programmeringssprog. Hvis din organisation har et domæne-specifikt sprog, kan du godt finde support til det i en NoSQL-database.
JavaScript end-to-end
JavaScript brug har eksploderet i de seneste år. Det er et praktisk script sprog både på nettet og takket være Node. js, på server-side.
Mange NoSQL-databaser understøtter nu fuld end-to-end JavaScript-udvikling. Det betyder, at din organisation nu kan bruge den samme pool af programmeringssprogfærdigheder til at udarbejde webapplikationer og API'er med mellemliggende data og forretningslogik samt håndtere back-end databaseudløser og MapReduce-baseret analytisk behandling ved siden af dataene.
Som følge heraf er den samlede ejeromkostninger (TCO) for NoSQL i sammenligning med andre databaseteknologier lavere.