sql >> Database teknologi >  >> RDS >> Mysql

De 8 mest populære databaser

Databaser driver næsten alle digitale platforme på planeten:Fra websteder, til blogs, til sociale medier, til streamingtjenester. De fleste slutbrugere kender databaser som MySQL som et værktøj til at gemme data. Det er en ret præcis, men grundlæggende beskrivelse af, hvad en database er. De er dog meget mere end det.

De forskellige typer databaser

Det generelle udtryk database forveksler ofte to separate og adskilte komponenter:databasen og Database Management System (DBMS). Databasen gemmer dataene, og DBMS er det værktøj, eller sæt af værktøjer, du bruger til at administrere dataene. DBMS er adresseret her, fordi det omfatter værktøjerne, der gør det muligt for databaseadministratorer at kommunikere med databasen, så de fuldt ud kan administrere og styre den.

Databasestyringssystemer er opdelt i tre lag:

  • Kunde :Fremsætter anmodninger via kommandolinjen eller en GUI-skærm ved hjælp af gyldige SQL-forespørgsler.
  • Server :Ansvarlig for al logisk funktionalitet på serveren.
  • Opbevaring :Håndterer datalagring.

Inden for disse lag er værktøjer såsom en trådbehandler, et forespørgselssprog, en parser, en optimering, en forespørgselscache, en buffer, tabelmetadatacache og en nøglecache. Disse stykker samles og udgør et kraftfuldt system, som administratorer, brugere og software kan bruge til at gemme og hente data.

Et afgørende aspekt af DBMS er forespørgselssproget. Dette er det specielle sprog, der bruges til at interagere med en database. Det er et meget bestemt sprog og skal bruges i henhold til specifikationerne fastsat af DBMS. Nogle DBMS'er har deres egne, proprietære forespørgselssprog, men de mest populære er:

  • SQL - Structured Query Language er et af de mest udbredte forespørgselssprog på markedet og bruges af MS SQL og MySQL.
  • XQuery - Bruger XML-filformatet til at udtrække og manipulere data.
  • OQL - Object Query Language er standardsproget for objektorienterede databaser, som ofte bruges i Big Data-brugssager.
  • SQL/XML - En kombination af SQL og XQuery og understøtter SQL-sætninger på XML-data.
  • GraphQL - Et open source-sprog, der kan arbejde med API'er og også en runtime, der kan bruges til forespørgsler mod eksisterende data.
  • LINQ - Language Integrated Query udtrækker og behandler data fra forskellige kilder, såsom XML-dokumenter og relationelle databaser.

Relationelle og ikke-relationelle databaser

DBMS' bruger to primære typer database:Relationel og ikke-relationel. Forskellen mellem disse to er vigtig, da de hjælper med at definere den bedste brugssag for en database.

En relationel database er en, der gemmer information i tabeller, der indeholder relaterede data. Det, der giver en relationsdatabase sit navn, er, at der kan laves relationer mellem to eller flere tabeller. Relationerne korrelerer rækker, der tilhører to forskellige tabeller, til en tredje tabel. Relationelle databaser bruges bedst, når de data, de indeholder, ikke ofte ændres, og når nøjagtigheden af ​​dataene er afgørende.

Ikke-relationelle databaser (også kaldet NoSQL-databaser) gemmer deres oplysninger i en ikke-tabelform. I stedet lagrer ikke-relationelle databaser data i datamodeller, hvoraf de fire mest almindelige typer er:

  • Dokumentorienteret - data gemmes som JSON-dokumenter.
  • Nøgleværdi - data gemmes i nøglepar.
  • Graf - data gemmes i en node-edge-node struktur.
  • Bred kolonne - data gemmes i et tabelformat med fleksible kolonner, der kan variere fra række til række.

Fordi de gemmer data på denne måde, er ikke-relationelle databaser meget mere fleksible. De kan gemme en lang række forskellige typer data. Dette gør dem ideelle, når det er nødvendigt at gemme enorme mængder af komplekse data, som når du arbejder med Big Data-applikationer.

Hvad skal man kigge efter i en database

Det første spørgsmål at stille er, "Skal jeg bruge en relationel eller ikke-relationel database?" En relationsdatabase bruges bedst til forekomster, der kræver ACID (Atomicitet, Konsistens, Isolation, Holdbarhed) overholdelse, datanøjagtighed, normalisering og enkelhed, men kræver ikke skalerbarhed, fleksibilitet og høj ydeevne. Et godt eksempel på en relationel databasebrug er et dynamisk, databasedrevet websted såsom WordPress.

På den anden side er en ikke-relationel database bedst brugt, når datafleksibilitet, hastighed og skalerbarhed er afgørende. Et godt eksempel på en ikke-relationel databasebrug er en cloud-baseret app, der afhænger af massiv skalering.

Denne liste over de otte mest populære databaser er opdelt i 4 relationelle og 4 ikke-relationelle databaser.

Relationelle databaser

Følgende er de mest populære relationsdatabaser på markedet i dag.

Oracle

Oracle-databasen blev oprindeligt udviklet i 1977, hvilket gør den til den ældste database på listen. Fra januar 2022 har Oracle topplaceringen som det mest udbredte relationelle databasestyringssystem i verden (med en Statista-score på 1266,89).

Oracle Database kommer i fem udgaver:

  • Enterprise - inkluderer alle DBMS-funktionerne samt muligheden for Oracle Real Application Clusters for høj tilgængelighed.
  • Personligt - inkluderer alle funktioner, minus muligheden for Oracle Real Application Clusters.
  • Standard - inkluderer basisfunktionalitet.
  • Express - letvægts og gratis begrænset version til både Windows og Linux.
  • Oracle Lite - for mobilenheder.

Den primære årsag til, at Oracle Database har den øverste markedsandelsplads, er, at den er en af ​​de mest skalerbare af de relationelle databaser. Det opnår den ved at dele sin arkitektur mellem det logiske og det fysiske. Ved at gøre dette bliver dataplaceringen irrelevant og gennemsigtig, hvilket giver mulighed for en mere modulær struktur, der kan ændres uden at påvirke selve databasen. Ved at bygge Oracle Database på denne måde er det muligt at dele ressourcer for at opnå et meget mere fleksibelt datanetværk.

Nogle af de iøjnefaldende funktioner i Oracle Database inkluderer:

  • Real Application Clustering (RAC) og portabilitet, der gør det muligt at skalere uden at miste ydeevne og datakonsistens.
  • Effektiv hukommelsescache.
  • Meget ydende partitionering, som gør det muligt at opdele større borde i adskillige stykker.
  • Varme, kolde og trinvise sikkerhedskopier ved hjælp af Recovery Manager-værktøjet.
  • Værktøjer til at kontrollere dataadgang og -brug.

Fordelene ved Oracle Database omfatter:

  • Bruger SQL-forespørgselssproget.
  • Høj ydeevne.
  • Bærbar (kan køre på næsten 20 netværksprotokoller og adskillige hardwareplatforme).
  • Instance Caging gør det muligt at køre flere databaseadministrationer fra en enkelt server.
  • Tallige udgaver, der passer bedst til din virksomhed og/eller brugssituation.
  • Klynger for skalerbarhed, belastningsbalancering, redundans og ydeevne.
  • Fejlgendannelse via RMAN-værktøjet (Recovery Manager).
  • PL/SQL-understøttelse.

Ulemperne ved Oracle Database omfatter:

  • Ejendomsbeskyttet - Oracle er ikke open source.
  • Kompleksitet - Det er en af ​​de mere komplekse relationsdatabaser på markedet.
  • Omkostninger - Oracle Database kan være op til 10 gange dyrere end MS SQL.

Find ud af, hvordan du bruger Oracle Database Express Edition med Linode.

MySQL

MySQL er en af ​​de mest populære open source relationsdatabaser på markedet. Ifølge DB-Engines er MySQL nummer 2, bag Oracle Database, i deres mest brugte databaser på markedet.

Udgivet i maj 1995, MySQL er modent og pålideligt. Det er en af ​​de mest pålidelige muligheder, der findes. MySQL er skrevet i C og C++ og kører på Linux, Solaris, macOS, Windows og FreeBSD og er licenseret under GPLv2.

MySQL er en relationsdatabase og skalerer ikke i samme omfang som en ikke-relationel database, men den understøtter multi-threading, hvilket gør det muligt at skalere den, så den kan håndtere op til 50 millioner plus rækker med en standardfil størrelsesgrænse på 4 GB, med en teoretisk grænse på 8 TB.

Nogle af de iøjnefaldende funktioner i MySQL inkluderer:

Sikkerhed - Bruger et solidt datasikkerhedslag til at beskytte følsomme data, og alle adgangskoder er krypteret.Rul tilbage - Tillader, at transaktioner rulles tilbage.Hukommelseseffektiv - Har meget lav hukommelseslækage.Produktiv - Bruger triggere, lagrede procedurer og visninger for højere produktivitet.Partitionering - Understøtter partitionering for at forbedre ydeevnen af ​​meget store databaser.GUI'er - MySQL Workbench GUI administrerer databasen.

Fordelene ved at bruge MySQL inkluderer:

  • Gratis - dette er en gratis open source-database, der kan installeres på så mange serverforekomster, som du har brug for.
  • Kendskab - MySQL bruger SQL-forespørgselssproget, så db-administratorer, der er fortrolige med sproget, er hurtige på ingen tid med dette DBMS. MySQL følger også den typiske klient/strukturarkitektur.
  • Hastighed - Er en af ​​de hurtigste relationsdatabaser, takket være en unik lagermotor.
  • Integration - MySQL nyder godt af integration i tusindvis af tredjepartsapplikationer, såsom bloggingsystemer, CRM'er, HRM'er, ERP'er og mange andre typer applikationer.

Lær, hvordan du installerer en MySQL-instans på en Linode-server.

Microsoft SQL Server

Microsoft SQL Server er DBMS udviklet af Microsoft. Denne database er en proprietær løsning, men den kan installeres på både Linux og Windows. MS SQL Server blev første gang udgivet den 24. april 1989 og tilbydes nu som fem forskellige udgaver:

  • Standard - Kernefunktionalitet påkrævet til de fleste applikationer.
  • Web - Lavprisindstilling, der adskiller sig fra standardudgaven med hensyn til maksimal tilladt hukommelse for bufferpuljen og maksimal beregningskapacitet.
  • Enterprise - Understøtter en bred vifte af datavarehusfunktioner og inkluderer avancerede funktioner såsom datakomprimering, forbedret sikkerhed og understøttelse af større datastørrelser.
  • Udvikler - Designet til udviklere og inkluderer muligheden for at oprette lagrede procedurer, funktioner og visninger.
  • Express - Begrænset til enkeltpersoner eller små organisationer og inkluderer ikke nogen af ​​de avancerede funktioner.

MS SQL Server arbejder med SQL-forespørgselssproget og bruger SQL Server Operating System (SQLOS), som administrerer hukommelse og I/O-ressourcer, jobs og databehandling.

Fordelene ved Microsoft SQL Server omfatter:

  • Native support til Visual Studio - Understøttelse af dataprogrammering er indbygget i Visual Studio, så DB-administratorer kan oprette, se og redigere databaseskemaer.
  • Fuldtekstsøgetjeneste - Giver mulighed for søgninger af ordbaserede forespørgsler.
  • Understøttelse af flere versioner - Tillader installation af flere versioner af MS SQL Server på én maskine.
  • Nem installation - Kan installeres med et enkelt klik.
  • Datagendannelse og -gendannelse - Indbyggede værktøjer til datagendannelse.
  • Support - MS SQL Server har et massivt fællesskab af brugere med masser af hjælp og support tilgængelig fra forskellige kilder.

Ulemperne ved MS SQL er få, men bør overvejes af enhver, der overvejer at adoptere denne databaseplatform. Disse ulemper omfatter:

  • Dyre og forvirrende priser.
  • Dårlig brugergrænseflade.
  • Giver kun delvis kontrol over databaser.

PostgreSQL

PostgreSQL (også kaldet Postgres) er et andet gratis og open source-databasestyringssystem, der oprindeligt fungerede som efterfølgeren til Ingres-databasen. PostgreSQL kalder sig selv, "Verdens mest avancerede open source relationsdatabase," og har i øjeblikket en markedsandel på 14,70 % for relationelle databaser.

PostgreSQL blev udgivet i 1996 og nyder en meget aktiv udviklingscyklus og et stort supportfællesskab. Det, der adskiller PostgreSQL fra andre open source relationsdatabaser, er, at det er et objektrelationelt databasestyringssystem, hvilket betyder, at det ligner en relationsdatabase, men det bruger en objektorienteret databasemodel.

PostgreSQL er katalogdrevet, så det lader brugere definere datatyper, indekstyper og funktionelle sprog, hvilket gør det mere udvidbart end andre relationelle databaser.

Nogle af de iøjnefaldende funktioner i PostgreSQL inkluderer:

  • ACID-overholdelse.
  • Meget samtidig.
  • Inkluderer NoSQL-understøttelse
  • Skema- og forespørgselssprogunderstøttelse for objekter, klasser, arv og funktionsoverbelastning.
  • Fælles tabeludtryk (de midlertidige resultater af en forespørgsel, som bruges i sammenhæng med en større forespørgsel).
  • Deklarativ partitionering (som reducerer den mængde arbejde, der kræves for at partitionere data).
  • Fuldtekstsøgning.
  • Understøttelse af Geografisk Informationssystem/Spatial Reference System (til indfangning, lagring, kontrol og visning af data relateret til positioner på Jordens overflade).
  • JSON-understøttelse.
  • Logisk replikering (som er en metode til at replikere dataobjekter baseret på en primær nøgle).

Fordelene ved PostgreSQL er:

  • Ideel til komplekse dataoperationer med store mængder.
  • Stærkt tilpasselig ved hjælp af plugins og brug af brugerdefinerede funktioner skrevet i C, C++ og Java.
  • Multi-version samtidighedskontrol (en avanceret teknik til at forbedre databasens ydeevne i et flerbrugermiljø).
  • Læselåse er ikke nødvendige, så det giver større skalerbarhed end andre relationelle databaser.
  • På tværs af platforme (tilgængelig til BSD, Linux, macOS, Solaris og Windows).

For så vidt angår ulemper, lider PostgreSQL nogle få, såsom:

  • Mere kompliceret end MySQL.
  • Langsommere end MySQL.
  • Ingen nem måde at migrere data fra andre RDBMS'er på.
  • Dårlig datakomprimering.
  • Kompliceret vandret skalering.
  • Dårlig klyngeunderstøttelse.
  • Ingen indbygget understøttelse af maskinlæring.

Se vores guide til, hvordan du installerer PostgreSQL på en Ubuntu 20.04-server for at få flere oplysninger.

Ikke-relationelle databaser

De følgende afsnit dækker de mest populære ikke-relationelle databaser på markedet i dag.

Redis

Redis er et datastrukturlager i hukommelsen, der bruges som en distribueret NoSQL-database med nøgleværdier. Redis står for Remote Dictionary Server og bruger et avanceret nøgleværdilager, der inkluderer valgfri holdbarhed. Redis omtales ofte som en datastrukturserver, fordi nøgler kan indeholde strenge, hashes, lister, sæt og sorterede sæt.

Redis er en flygtig database i hukommelsen, hvilket gør den til en god mulighed for systemer med en stor mængde hot data. Redis gemmer data i cache, hvilket gør læsning/skrivning hurtigere og data altid yderst tilgængelige.

De funktioner, der gør Redis enestående inkluderer:

  • Minimum kompleksitet sammenlignet med andre NoSQL-databaser.
  • Let og kræver ingen eksterne afhængigheder.
  • Fungerer i alle POSIX-miljøer.
  • Understøttelse af synkron, ikke-blokerende master/slave-replikering for høj tilgængelighed.
  • Kortlagt nøgleværdi-baseret cachesystem, som kan sammenlignes med memcached.
  • Ingen strenge regler for at definere skemaer eller tabeller.
  • Understøttelse af flere datamodeller eller typer.
  • Sharding support.
  • Kan bruges sammen med andre databaser for at reducere belastningen og øge ydeevnen.

Fordelene ved at bruge Redis omfatter:

  • Tillader lagring af nøgleværdi-par så store som 512 MB.
  • Bruger sin egen hashing-mekanisme.
  • Takket være datareplikering modstår Redis cache fejl og leverer stadig uafbrudt service.
  • Alle de populære programmeringssprog understøtter det.
  • Understøtter indsættelse af enorme mængder data i sin cache.
  • På grund af dens lille plads kan den installeres på Raspberry Pi- og ARM-hardware.

Ulemperne ved at bruge Redis inkluderer følgende:

  • Alle dine data skal passe i hukommelsen, og du kan ikke administrere flere data, end du har hukommelse.
  • Der er intet forespørgselssprog eller understøttelse af relationel algebra.
  • Tilbyder kun to muligheder for persistens (øjebliksbilleder og filer, der kun kan tilføjes).
  • Grundlæggende sikkerhedsfunktioner.
  • Kører kun på én CPU-kerne i enkelttrådstilstand, så skalerbarhed kræver flere forekomster af Redis.

Se vores guide til, hvordan du installerer og konfigurerer Redis på en Ubuntu 20.04-server for at få flere oplysninger.

MongoDB

MongoDB er en open source, dokumentorienteret NoSQL-database, fokuseret på datalagring i høj volumen. MongoDB betragtes som skemaløs, så den håndhæver ikke en bestemt struktur på dokumenter indeholdt i en samling. Denne NoSQL-database, der oprindeligt blev udgivet i 2009, bruger JSON-lignende dokumenter med valgfri skemaer og kan installeres på stedet eller administreres fuldt ud i skyen. MongoDB anses for at være en meget god kandidat til big data og kan bruges af organisationer i alle størrelser.

De funktioner, der får MongoDB til at skille sig ud, inkluderer:

  • Understøtter felt-, områdeforespørgsel og regex-søgninger.
  • Opnår høj tilgængelighed med replikasæt.
  • Understøtter sharding.
  • Kan bruges som et filsystem (kaldet GridFS).
  • Understøtter pipeline, kort-reducerende funktion og aggregeringsmetoder til en enkelt formål.
  • JavaScript understøttes i forespørgsler.
  • Understøtter samlinger af fast størrelse, kaldet samlinger med begrænset størrelse.
  • Indekser kan oprettes for at forbedre søgeydelsen.
  • Tillader, at der udføres operationer på grupperede data for enten et enkelt resultat eller beregnet resultat.

Fordelene ved MongoDB-databasen omfatter:

  • Understøtter et udtryksfuldt forespørgselssprog.
  • Ikke nødvendigt at bruge tid på at designe et databaseskema, fordi det er skemaløst.
  • Fleksibel og effektiv.
  • Understøtter geospatial effektivitet.
  • Understøtter flere dokument ACID-overgange.
  • Kræver ikke SQL-injektion.
  • Kan hurtigt integreres med Hadoop.
  • Open source og gratis at bruge.

Ulemperne ved MongoDB-databasen inkluderer:

  • Kræver en stor mængde hukommelse, især ved skalering.
  • 16 MB datadokumentlagergrænse.
  • 100-niveaugrænse for dataindlejring.
  • Understøtter ikke transaktioner.
  • Det er kompliceret at forbinde dokumenter.
  • Kan være langsom, hvis indekser ikke bruges korrekt.
  • Fordi relationer ikke er defineret godt, kan de føre til duplikerede data.

Se vores vejledning om MongoDB-brugstilfælde for mere information.

Apache Cassandra

Apache Cassandra er et open source, distribueret NoSQL-databasestyringssystem. Det er designet til at håndtere meget store mængder data på tværs af råvareservere. Cassandra blev oprindeligt udviklet inden for Facebook for at drive platformens indekssøgningsfunktion. I juli 2008 åbnede Facebook Cassandra via Google Code, og i marts 2009 blev det officielt et Apache Incubator-projekt.

De funktioner, der får Cassandra til at skille sig ud, omfatter:

  • Distribuerede noder har alle den samme rolle, så der er ikke et enkelt fejlpunkt.
  • Understøtter både replikering og multidatacenterreplikering.
  • Læse-/skrivegennemstrømningen stiger lineært, efterhånden som maskiner tilføjes for at opnå høj skalerbarhed.
  • Data replikeres automatisk til flere distribuerede noder.
  • Tilgængelighed og partitionstolerance er vigtigere end konsistens, og klassificerer det derved som et AP-system (inden for CAP-sætningen).
  • Understøtter Hadoop-integration med MapReduce-understøttelse.
  • Indeholder sit eget forespørgselssprog, Cassandra Query Language.

Apache Cassandras fordele omfatter:

  • Elastisk skalerbarhed gør det muligt at skalere Cassandra op og ned efter behov uden nedetid.
  • Følger en peer-to-peer-arkitektur, så fejl er sjældne sammenlignet med master-slave-konfigurationer.
  • Fire nøglemetoder til dataanalyse, herunder Solr-baseret integration, batchanalyse (med Hadoop-integration), ekstern analyse (ved hjælp af Hadoop og Cloudera/Hortonworks).
  • Nær realtidsanalyse.
  • Multidatacenter og hybrid cloud-understøttelse.
  • Data kan lagres som enten strukturerede, semi-strukturerede eller ustrukturerede data.

Ulemperne ved Apache Cassandra inkluderer:

  • Begrænset ACID-understøttelse.
  • Latency kan være et problem på grund af den store mængde I/O.
  • Data er modelleret omkring forespørgsler i stedet for struktur, hvilket kan resultere i dublerede oplysninger, der lagres adskillige gange.
  • Ingen støtte til deltagelse eller underforespørgsler.
  • Selvom skrivning er hurtig, kan læsning være langsom.
  • Begrænset officiel dokumentation.

Se vores vejledninger om Apache Cassandra for at lære mere.

CouchDB

CouchDB er vores sidste open source, dokumentorienterede NoSQL-database. Dette særlige værktøj gemmer data i JSON-dokumenter og bruger JavaScript som forespørgselssprog ved hjælp af MapReduce. CouchDB omfavner internettet ved at få adgang til dokumenter via HTTP. Når de først er tilgået, kan disse dokumenter forespørges, kombineres og transformeres med JavaScript. Denne NoSQL-database er perfekt egnet til både web- og mobilapplikationer, takket være direkte dokumenttransformationer og ændringsmeddelelser i realtid.

De funktioner, der får CouchDB til at skille sig ud, omfatter:

  • Databasereplikering på tværs af flere serverforekomster.
  • Hurtig indeksering og hentning.
  • REST-lignende grænseflade.
  • Flere biblioteker gør det nemt at bruge dit foretrukne sprog.
  • Browserbaseret GUI administrerer data, tilladelser og konfigurationer.
  • Understøttelse af replikering.
  • Følger alle funktioner i ACID-egenskaber.
  • Godkendelse og sessionssupport.
  • Sikkerhed på databaseniveau.
  • Indbygget understøttelse af Map/reduce (model til behandling og generering af store datasæt med en parallel, distribueret algoritme).

Fordele ved at bruge CouchDB inkluderer:

  • Mulighed for at gemme det samme dokument i flere databaseforekomster.
  • Serialiserede objekter kan gemmes som ustrukturerede data i JSON-dokumenter.
  • Redundant datalagring. Kan replikere og synkronisere med browsere via PouchDB.
  • Sharding og klyngeunderstøttelse.
  • Master-to-Master-replikering giver mulighed for kontinuerlig backup.

Ulemperne ved CouchDB inkluderer:

  • Langsommere end nogle NoSQL-databaser.
  • Kræver en masse overhead.
  • Vilkårlige forespørgsler er dyre.
  • Midlertidige visninger af massive datasæt er langsomme.
  • Ingen understøttelse af transaktioner.
  • Stor databasereplikering er upålidelig.

Se vores guide til brug af CouchDB 2.0 på Ubuntu 20.04 for at få flere oplysninger.

Konklusion

Uanset hvilket projekt du arbejder på, er der en database, der passer perfekt til dine behov. Uanset om du udvikler et lille dynamisk websted, der afhænger af høje niveauer af datakonsistens, hvor du vil bruge en relationel database, eller en app, der vil skalere til massive proportioner, hvor du vil bruge en ikke-relationel database, har du muligheder. Med Linode kan du arbejde med enhver af disse databaser for effektivt at gemme dine data og interagere med dine applikationer. Det er dog vigtigt at vide præcis, hvad din app har brug for fra en database, før du vælger hvilken. Træf det forkerte valg, og det kan blive dyrt at ombygge.


  1. Tilføj 2 måneder til det nuværende tidsstempel

  2. Modellering af en grundlæggende datastruktur til at administrere brugere, tråde og indlæg

  3. Tilføj interval til tidsstemplet ved hjælp af Ecto Fragments

  4. PHP-kommandoer ude af synkronisering