Oracle

Ang Oracle ay hindi ang pinakasikat na database, ngunit ito ang pinakasikat. Kahit na ito ay maaaring argued na ang pinakasikat. Tingnan kung paano magbilang . Kung titingnan mo lang ang bilang ng mga kumpanya, ang MySQL ay ang pinakasikat na database: ito ay medyo maganda at ganap na libre :)

Ngunit maaari rin itong isaalang-alang nang iba. Kung mayroong isang kumpanya na may isang milyong mga customer na gumagamit ng Oracle at 5 mga kumpanya na may isang daang mga customer na gumagamit ng MySQL, ang Oracle ay may isang milyong mga customer at MySQL 500 mga tao lamang.

Sa pangkalahatan, kung kukuha ka ng malalaking kumpanya na may pera at titingnan kung aling DBMS ang pipiliin nila, halos isang-katlo ng lahat ng kumpanya sa mundo ang nakaupo sa Oracle. Isang bagay na tulad nito.

Bilang isang programmer, mas malamang na magtrabaho ka sa hinaharap sa Oracle kaysa sa MySQL. Mayroong isang mahusay na video sa Internet na nagpapakita kung paano nagbago ang katanyagan ng DBMS sa nakalipas na 20 taon.

MySQL

Ang pangalawang pinakasikat sa lahat ng DBMS ay MySQL. At ito ang una sa kasikatan sa lahat ng libreng DBMS. Ngayon naiintindihan mo na kung bakit namin natutunan ang SQL mula sa kanyang halimbawa. Ang hype ay hype, at ang negosyo ay medyo konserbatibo sa pagpili ng imprastraktura.

Sa prinsipyo, napag-usapan na natin ang tungkol sa MySQL. Sa sandaling binili sila ng Sun , pagkatapos ng Oracle . Na, mabuti, napakahirap tawaging isang korporasyon ng kabutihan.

Sila ang, pagkatapos ng pagkuha ng Sun, ay patuloy na nagsisikap na bayaran ang Java.

Oo, parehong pagmamay-ari ng Sun ang Java at MySQL bago ito binili ng Oracle.

Ang katotohanang ito at ang reputasyon ng Oracle ay medyo natakot sa mga developer ng MySQL, na nagpasya na i-fork ang MySQL project at tawagin itong MariaDB.

Ang MariaDB ay talagang isang clone ng MySQL na may ilang mga quirks sa pagpapatupad na nagbibigay-daan sa iyo upang malibot ang mga nuances ng mga patent at lisensya.

Gayunpaman, ang Oracle ay hindi rin tanga. Upang maiwasan ang pag-leak ng mga customer at developer sa MariaDB, patuloy na pinopondohan ng Oracle ang pagbuo at pagpapaunlad ng MySQL, na patuloy na libre.

At para maupo sa dalawang upuan, inilabas ang isang bayad na MySQL Enterprise para sa mga corporate client , na hindi naiiba sa MySQL Community Edition , ngunit ang mga lisensya ay mas angkop para sa negosyo.

PostgreSQL

Ang isa pang kawili-wiling DBMS ay ang PostgreSQL (binibigkas na "postgres cue").

Ito ay isa pang libreng DBMS na mabilis na sumikat sa mga nakaraang taon. Bagama't malayo pa ito sa MySQL.

Pangunahing nakatuon ang PostgreSQL sa distributed work. Ang mga lakas nito ay:

  • Mataas ang pagganap at maaasahang mga mekanismo ng transaksyon at pagtitiklop
  • Extensible system ng mga built-in na programming language: PL SQL, PL JS, PL Python, ...
  • Pamana ng mesa
  • Kakayahang mag-index ng mga geometric (sa partikular, heograpikal) na mga bagay
  • Built-in na suporta para sa semi-structured na data sa JSON format na may kakayahang i-index ang mga ito
  • Extensibility (ang kakayahang lumikha ng mga bagong uri ng data, mga uri ng index, programming language, extension modules, ikonekta ang anumang panlabas na mapagkukunan ng data)

Alam mo ba kung bakit ito tinawag? Narito kung paano ito naging…

Mga 50 taon na ang nakalilipas, noong unang bahagi ng 70s, nagsimula ang Unibersidad ng Berkeley na bumuo ng sarili nitong relational na DBMS at tinawag itong Ingres .

Noong unang bahagi ng 80s, iniwan ni Propesor Michael Stonebreaker ang proyekto at nagpasya na magsulat ng sarili niyang DBMS na may blackjack at courtesans. Siya at ang kanyang mga mag-aaral ay nagsimulang magsulat ng sarili nilang DBMS, na tinawag nilang simpleng Post Ingres , na pinaikli sa Postgres sa hinaharap .

At dahil ang pangalang Postgres ay walang kahulugan sa sinuman, napagpasyahan na idagdag ang SQL suffix dito. Ganito ang naging resulta ng PostgreSQL, na agad na nawala ang dobleng S, at nagsimulang isulat bilang PostgreSQL. Ngunit sinabi mo ang pangalan, kailangan mong basahin ito tulad ng PostgresQL.

NoSQL

Kung interesado ka sa mga database, tiyak na narinig mo na ang tungkol sa mga database ng NoSQL . Nagmamadali akong magalit sa iyo: Ang NoSQL ay puro pangalan sa marketing , at naroon ang SQL. Naputol lang siya.

Anong itsura? Isipin ang isang magandang web page na nakasulat sa HTML, CSS at JavaScript... na binuksan sa isang 1995 browser. Gumagana ito sa lakas ng 10% ng CSS at hindi talaga sinusuportahan ang JavaScript. At ang bagong stripped-down na standard na ito ay tinatawag na… NoHtml .

Halimbawa, ang mga JOIN sa pagitan ng mga talahanayan ay maaaring hindi suportado sa NoSQL, at pagkatapos ay kailangan mong tularan ito sa antas ng Java code sa programa, o iimbak ang lahat ng data ng mga nauugnay na talahanayan sa isang malaking talahanayan.

At kung sa kaso ng NoHtml ay tila nagbalik tayo 20 taon na ang nakakaraan, kung gayon sa kaso ng NoSQL, ang rollback ay nangyayari sa isang lugar sa paligid ng 40 taon.

Kunin, halimbawa, ang Cassandra NoSQL database na ginagamit ng Facebook upang mag-imbak ng data ng bilyun-bilyong user. Sa totoo lang, binuo nila ito at pagkatapos ay nai-post ito bilang isang proyekto ng OpenSource.

Magsimula tayo sa pinakakawili-wili - lahat ng DBMS code ay nakasulat sa Java . Ang C++ code ay malamang na tumakbo nang mas mabilis, ngunit magkakaroon ng higit pang mga bug. At ang Java code ay mas madaling mapanatili at bumuo.

Ang pangkalahatang format ng mga kahilingan sa Casandra DBMS ay mukhang pamilyar na pamilyar:

  SELECT columns  
  FROM table 
  WHERE condition
  GROUP BY columns 
  ORDER BY sorting 
  LIMIT quantity

Tulad ng nakikita mo, nandiyan ang SQL. Alam mo ba kung ano ang kulang dito? SUMALI ! Maaari ka lamang pumili ng data mula sa isang talahanayan :)

Narito ang isang quote mula sa opisyal na dokumentasyon:

Hindi ka makakapagsagawa ng mga pagsali sa Cassandra . Kung nagdisenyo ka ng modelo ng data at nalaman mong kailangan mo ng isang bagay tulad ng pagsali, kakailanganin mong gawin ang gawain sa panig ng kliyente , o gumawa ng denormalized na pangalawang talahanayan na kumakatawan sa mga resulta ng pagsali para sa iyo.