Kasaysayan ng mga database: database at DBMS

Sa isang mahabang panahon ang nakalipas sa isang bansa sa Amerika, sa isang malaking kumpanya ng IT, ang gawain ng pag-iimbak ng napakalaking halaga ng data minsan ay lumitaw. Ano ang mahirap tungkol doon, tanong mo? Pagkatapos ng lahat, ang mga malalaking kumpanya ay may pera, na nangangahulugang maaari kang bumili ng higit pang mga hard drive - at iyon lang.

Mahusay na ideya, ngunit tulad ng sinasabi nila, ang diyablo ay nasa mga detalye. Ang malalaking halaga ng data ay kailangang hindi lamang naka-imbak, ngunit binago din, at iba't ibang mga sample ang ginawa mula sa kanila. Bukod dito, kailangan mong pumili ng iba't ibang data mula sa iba't ibang lugar, at gawin din ito nang mabilis at maganda.

Sa pangkalahatan, ang lahat ay tulad ng dati: ang mga customer ay nais ng isang bagay na wala, at ang desisyon na bumili ng mga hard drive ay hindi gumana sa oras na ito.

Samakatuwid, ang mga programmer ng kumpanyang IT na ito ay nagpatumba ng mas malaking badyet para sa kanilang sarili, nagsagawa ng gawaing pananaliksik, at nang matapos ang badyet, nagharap sila ng isang pagtatanghal kung saan iminungkahi na mag-imbak ng data sa anyo ng isang Database. Sa isang database, ang lahat ng data ay naka-imbak sa mga talahanayan, at ang bawat talahanayan ay naka-imbak sa isang hiwalay na file. Lahat ng mapanlikha ay simple at lahat ay gumagana.

Ngunit ang gayong pagtatanghal ay hindi nababagay sa mga customer, at nagpatuloy ang nit-picking:

  • Nasaan ang pera, Lebowski?
  • Bakit mas mahusay ang Database kaysa sa magandang lumang imbakan ng data sa anyo ng isang set ng mga file?
  • Kailangan natin ng isang magandang solusyon, hindi iyon lang!
  • At kinuha nito ang buong badyet?

Nagkaroon ng patay na katahimikan sa presentation room. Gayunpaman, hindi inaasahan para sa lahat, ang sitwasyon ay na-save ng isang junior developer, na nagsabi na ang isang espesyal na programa ay naka-attach sa database - isang DBMS (Database Management System), na maaaring:

  • Lumikha, magbago at magtanggal ng mga database
  • Gumawa ng mga pagbabago sa mga database, ibig sabihin: magdagdag ng mga bagong tala, tanggalin ang mga luma at baguhin ang mga ito
  • At napakabilis ding magsagawa ng iba't ibang mga seleksyon ng anumang data

At tinatapos pa nga ng mga programmer ang pagdidisenyo ng isang espesyal na super-wika para sa pag-filter ng data - SQL . At sinasabi nila na sa tulong ng mahiwagang wikang SQL na ito, ang sinumang tagapamahala ay madaling mag-filter at makakuha ng anumang data mula sa database.

Ang mga programmer ay hindi pa tapos sa pagdidisenyo ng wika , kaya walang salita tungkol sa SQL at DBMS sa pagtatanghal.

Sa kagalakan ng lahat, humanga ang mga customer sa narinig nilang paliwanag, nagpahayag ng ilang magkasalungat na ideya tungkol sa kung ano dapat ang bagong wikang ito, at naglaan pa ng badyet para sa pagpipino nito.

Ang mga tagapamahala at ang Direktor ng Teknikal ay nagsimulang batiin ang isa't isa sa matagumpay na pagkumpleto ng proyekto, at agad na nagpunta upang ipagdiwang ang kaganapang ito, hindi lubos na napagtanto na ang junior programmer sa buong kuwentong ito ay ang pinakamahalagang tao ...

Mga sikat na DBMS at MySQL

Sa ngayon (summer 2022) mayroong daan-daang sikat na DBMS, kaya magiging kapaki-pakinabang para sa iyo na malaman ang tungkol sa ilan sa mga ito. Ano ang dapat kong simulan sa…

Sa isang banda, ang merkado ng enterprise DBMS ay nasa loob ng mga dekada. Samakatuwid, mayroon itong parehong kinikilalang mga pinuno at mga promising na bagong dating. Sa kabilang banda, ang mga kinakailangan sa negosyo ay patuloy na lumalaki, kaya ang mga diskarte sa pagbuo ng mga imprastraktura ng IT ng mga kumpanya ay patuloy na nagbabago.

Ngayon ay hindi mo na sorpresahin ang sinuman na may database mula sa isang kumpol ng ilang libong server na may pahalang at patayong sharding, ipinamahagi na mga transaksyon, pati na rin ang isang IT department ng ilang dosenang system administrator na pumupunta at nagbabago ng mga hard drive ng server ayon sa isang paunang natukoy na iskedyul.

Sa pangkalahatan, kung nagtatrabaho ka sa isang malaking kumpanya, malamang na magbabayad sila ng maraming pera para sa kanilang mga database, at gumamit ng isang bagay na tulad nito:

Oracle Database

Inilabas ng Oracle ang unang database nito noong 1979 (43 taon na ang nakakaraan). Agad niyang dinala ang pangalang Oracle 2.0 upang kumbinsihin ang mga customer na ang produkto ay hindi bago, ngunit nasubok sa oras.

Ang kasalukuyang bersyon ng database ay Oracle 21 c , kung saan ang letrang c ay mula sa salitang cloud , na, kumbaga, ay nagpapahiwatig na ang Oracle ay nakakasabay sa mga oras at ang mga solusyon nito ay ganap na katugma sa lahat ng teknolohiya ng cloud.

Microsoft SQL Server

Ang Microsoft ay kumikita ng maraming pera sa pagbebenta hindi sa Windows, ngunit mga solusyon sa server para sa katamtaman at malalaking negosyo. Microsoft Office, Microsoft SharePoint, Microsoft Server, atbp. At, siyempre, lahat ng ito ay nangangailangan ng isang mahusay na database. Samakatuwid, maraming mga kumpanya, gamit ang mga produkto at solusyon ng Microsoft, ay napipilitang gamitin ang database nito.

Ang DBMS ng Microsoft ay simpleng tinatawag na SQL Server , kaya kung marinig mo ang tanong na "Nagtrabaho ka ba sa SQL Server?" sa isang panayam, alamin na hindi ito abstract DBMS, ngunit Microsoft SQL Server.

PostgreSQL

Ito ay isang magandang libreng DBMS, na kadalasang ginagamit hindi lamang ng mga maliliit at katamtamang laki ng mga kumpanya, kundi pati na rin ng mga malalaking korporasyon. Ito ay isa sa mga database na inaalok ng Amazon AWS bilang isang DB-as-service.

MySQL

Ang MySQL ay isang napaka-tanyag na libre at open source na database. Ito ay mahusay na dokumentado, gumagana nang mabilis, at sumusuporta sa isang malawak na hanay ng mga tampok. Sa ngayon, available ang ika-8 bersyon ng DBMS na ito.

Noong 2008, binili ito ng Sun, na binili ng Oracle noong 2009. At ito ay nakinabang lamang sa kanya - ang produkto ay patuloy na umuunlad at nagpapabuti.

Matututunan natin kung paano magtrabaho sa mga database gamit ang MySQL Community Server 8.0 bilang isang halimbawa .

Mga talahanayan sa isang database: mga column at column

Ang iba't ibang DBMS ay maaaring mag-imbak ng data sa iba't ibang mga format, kaya kukunin namin ang pinakasimpleng at pinaka-klasikong opsyon - ang MySQL DBMS.

At kaagad ang tanong ay: kung paano mag-imbak, halimbawa, anumang mga dokumento sa accounting? Ang pinakamadaling opsyon ay iimbak ang bawat dokumento bilang isang Excel file. Pagkatapos ang lahat ng mga kaugnay na dokumento ay maaaring maimbak sa isang folder. Ito ay kung paano gumagana ang MySQL.

Isa pang pagkakatulad: sa wikang Java, mayroon kang mga klase at pakete sa iyong proyekto , ngunit sa parehong oras, ang mga klase at pakete ay kinakatawan sa disk bilang mga file at folder . May katulad na umiiral sa MySQL.

Ang data ng MySQL ay naka-imbak sa anyo ng mga talahanayan , na pinagsama sa mga database , ngunit sa parehong oras, ang mga talahanayan at database ay ipinakita sa disk bilang mga file at folder . Ang database ay isang folder, at ang mga file sa loob nito ay mga talahanayan.

Ang bawat talahanayan ay binubuo ng mga column at row . Halimbawa:

Mahalaga! Ang bawat column ay may pangalan at isang uri ng data , kaya ang lahat ng mga cell sa parehong column ay dapat mag-imbak ng mga halaga ng parehong uri .

Ang isang pagkakatulad ay maaaring iguguhit sa pagitan ng isang talahanayan sa MySQL at isang klase sa Java. Ang isang talahanayan ay isang klase, isang talahanayan, tulad ng isang klase, ay may natatanging pangalan. Ang mga column ng talahanayan ay mga field ng klase; ang mga column, tulad ng mga field, ay may natatanging pangalan at uri. Ang mga hilera ng talahanayan ay mga instance ng klase sa Java.

Ang isang klase ay maaaring umiral nang walang mga bagay, at ang isang talahanayan ay maaaring umiral nang walang mga hilera. Sa Java, maaari kang lumikha ng isang bagong bagay, at sa MySQL, maaari kang magdagdag ng isang bagong hilera sa isang talahanayan. Maaari mong baguhin ang mga halaga ng field ng isang bagay, at sa MySQL maaari mong baguhin ang mga halaga sa isang hilera.

Mas tamang sabihin na ang isang talahanayan ay hindi isang klase, ngunit isang koleksyon ng mga bagay ng isang partikular na klase. Kung sa MySQL mayroon kaming talahanayan ng Empleyado na may data sa mga empleyado, kung gayon sa Java gagamitin namin ang koleksyon ng ArrayList.

At, siyempre, ang tanong ay agad na lumitaw: kung paano makakuha ng ilang data mula sa koleksyon na ito?