Historikk av databaser: database og DBMS
For lenge siden i ett amerikansk land, i et stort IT-selskap, oppsto oppgaven med å lagre svært store datamengder en gang. Hva er så vanskelig med det, spør du? Tross alt har store selskaper penger, noe som betyr at du kan kjøpe flere harddisker – og det er det.
Flott idé, men som de sier, djevelen er i detaljene. Store mengder data måtte ikke bare lagres, men også endres, og det ble laget ulike prøver fra dem. Dessuten må du velge forskjellige data fra forskjellige steder, og også gjøre det raskt og vakkert.
Generelt er alt som vanlig: Kundene ville ha noe som ikke eksisterer, og beslutningen om å kjøpe harddisker fungerte ikke denne gangen.
![](https://cdn.codegym.cc/images/article/ffb700f7-60b3-4cfc-a274-a1a35a6b1f31/512.jpeg)
Derfor slo programmererne til dette IT-selskapet ut et større budsjett for seg selv, utførte forskningsarbeid, og da budsjettet var over, presenterte de en presentasjon der det ble foreslått å lagre data i form av en Database. I en database lagres alle data i tabeller, og hver tabell lagres i en egen fil. Alt genialt er enkelt og alt fungerer.
Men en slik presentasjon passet ikke kundene, og nitplukkingen fortsatte:
![](https://cdn.codegym.cc/images/article/a7850c1c-b3ee-403d-8453-dcc511174b7b/512.jpeg)
- Hvor er pengene, Lebowski?
- Hvorfor er databasen bedre enn den gode gamle lagringen av data i form av et sett med filer?
- Vi trenger en veldig god løsning, ikke det er det!
- Og det tok hele budsjettet?
Det var dødsstille i presentasjonsrommet. Imidlertid, uventet for alle, ble situasjonen reddet av en juniorutvikler, som sa at et spesielt program var knyttet til databasen - en DBMS (Database Management System), som kan:
- Opprette, endre og slette databaser
- Gjør endringer i databaser, nemlig: legge til nye poster, slette gamle og endre dem
- Og også superrask å utføre ulike valg av data
Og programmerere er til og med ferdig med å designe et spesielt superspråk for filtrering av data - SQL . Og de sier at ved hjelp av dette magiske SQL-språket kan enhver leder enkelt filtrere og hente data fra databasen.
![](https://cdn.codegym.cc/images/article/216e75d9-299a-44a8-9e0a-0cc1d26717a8/512.jpeg)
Programmererne er bare ikke ferdige med å designe språket ennå , så det er ikke et ord om SQL og DBMS i presentasjonen.
Til alles glede ble kundene imponert over forklaringen de hørte, uttrykte flere motstridende ideer om hvordan dette nye språket skulle være, og til og med bevilget et budsjett for å foredle det.
Ledere og teknisk direktør begynte å gratulere hverandre med den vellykkede gjennomføringen av prosjektet, og gikk umiddelbart for å feire denne begivenheten, uten å helt innse at juniorprogrammereren i hele denne historien er den viktigste personen ...
Populære DBMS og MySQL
For øyeblikket (sommeren 2022) er det hundrevis av populære DBMS, så det vil være nyttig for deg å lære om noen av dem. Hva skal jeg begynne med...
På den ene siden har DBMS-markedet for bedrifter eksistert i flere tiår. Derfor har den både anerkjente ledere og lovende nykommere. På den annen side vokser forretningskravene stadig, så tilnærminger til å bygge IT-infrastrukturer til selskaper er i stadig endring.
Nå vil du ikke overraske noen med en database fra en klynge på et par tusen servere med horisontal og vertikal skjæring, distribuerte transaksjoner, samt en IT-avdeling på et par dusin systemadministratorer som går og bytter serverharddisk iht. en forhåndsbestemt tidsplan.
Generelt, hvis du jobber for et stort selskap, betaler de mest sannsynlig mye penger for databasene sine, og bruker noe sånt som dette:
Oracle Database
![](https://cdn.codegym.cc/images/article/8a53ac38-0a59-466a-9597-f3e6bf618a43/800.jpeg)
Oracle ga ut sin første database tilbake i 1979 (43 år siden). Hun bar umiddelbart navnet Oracle 2.0 for å overbevise kundene om at produktet ikke er nytt, men tidstestet.
Den nåværende versjonen av databasen er Oracle 21 c , hvor bokstaven c er fra ordskyen , som så å si antyder at Oracle følger med tiden og løsningene deres er perfekt kompatible med alle skyteknologier.
Microsoft SQL Server
![](https://cdn.codegym.cc/images/article/532a4cde-2214-4bec-96db-bff84eb41af6/512.jpeg)
Microsoft tjener mye penger på å selge ikke Windows, men serverløsninger for mellomstore og store bedrifter. Microsoft Office, Microsoft SharePoint, Microsoft Server osv. Og alt dette krever selvfølgelig en god database. Derfor er mange selskaper som bruker Microsoft-produkter og -løsninger tvunget til å bruke databasen.
Microsofts DBMS kalles ganske enkelt SQL Server , så hvis du hører spørsmålet "Har du jobbet med SQL Server?" på et intervju, så vet du at dette ikke er en abstrakt DBMS, men Microsoft SQL Server.
PostgreSQL
![](https://cdn.codegym.cc/images/article/b31cfc41-69af-488e-8079-5433fa502551/512.jpeg)
Dette er en god gratis DBMS, som ofte brukes ikke bare av små og mellomstore bedrifter, men også av store selskaper. Dette er en av databasene som Amazon AWS tilbyr som en DB-as-service.
MySQL
![](https://cdn.codegym.cc/images/article/0ea0a78a-41d2-43c3-8cd0-b4c72d4c142a/512.jpeg)
MySQL er en veldig populær gratis og åpen kildekodedatabase. Den er godt dokumentert, fungerer raskt og støtter en lang rekke funksjoner. Til dags dato er den åttende versjonen av denne DBMS tilgjengelig.
I 2008 ble den kjøpt av Sun, som ble kjøpt av Oracle i 2009. Og det kom bare henne til gode - produktet utvikles og forbedres hele tiden.
Vi vil lære hvordan du arbeider med databaser ved å bruke MySQL Community Server 8.0 som eksempel .
Tabeller i en database: kolonner og kolonner
Ulike DBMS kan lagre data i forskjellige formater, så vi tar det enkleste og mest klassiske alternativet - MySQL DBMS.
Og umiddelbart er spørsmålet: hvordan lagrer for eksempel eventuelle regnskapsdokumenter? Det enkleste alternativet er å lagre hvert dokument som en Excel-fil. Da kan alle relaterte dokumenter lagres i én mappe. Slik fungerer MySQL.
En annen analogi: i Java-språket har du klasser og pakker i prosjektet ditt , men samtidig er klasser og pakker representert på disken som filer og mapper . Noe lignende finnes i MySQL.
MySQL-data lagres i form av tabeller , som kombineres til databaser , men samtidig presenteres tabeller og databasen på disken som filer og mapper . Databasen er en mappe, og filene i den er tabeller.
Hver tabell består av kolonner og rader . Eksempel:
![](https://cdn.codegym.cc/images/article/ef9c797e-174d-4b27-a109-ff88a837ac5a/512.jpeg)
Viktig! Hver kolonne har et navn og en datatype , så alle celler i samme kolonne må lagre verdier av samme type .
En analogi kan trekkes mellom en tabell i MySQL og en klasse i Java. En tabell er en klasse, en tabell, som en klasse, har et unikt navn. Tabellkolonner er klassefelt; kolonner, som felt, har et unikt navn og type. Tabellrader er klasseforekomster i Java.
En klasse kan eksistere uten objekter, og en tabell kan eksistere uten rader. I Java kan du lage et nytt objekt, og i MySQL kan du legge til en ny rad i en tabell. Du kan endre feltverdiene til et objekt, og i MySQL kan du endre verdiene på rad.
Det er enda riktigere å si at en tabell ikke er en klasse, men en samling av objekter av en bestemt klasse. Hvis vi i MySQL har en Employee-tabell med data om ansatte, vil vi i Java bruke ArrayList -samlingen
Og selvfølgelig oppstår spørsmålet umiddelbart: hvordan få visse data fra denne samlingen?
GO TO FULL VERSION