Databasernes historie: database og DBMS
For lang tid siden opstod i et amerikansk land, i en stor it-virksomhed, opgaven med at opbevare meget store mængder data engang. Hvad er så svært ved det, spørger du? Store virksomheder har jo penge, hvilket betyder, at du kan købe flere harddiske – og det er det.
God idé, men som de siger, djævelen er i detaljerne. Store mængder data skulle ikke kun lagres, men også ændres, og der blev lavet forskellige prøver fra dem. Desuden skal du vælge forskellige data fra forskellige steder og også gøre det hurtigt og smukt.
Generelt er alt som det plejer: Kunderne ville have noget, der ikke eksisterer, og beslutningen om at købe harddiske virkede ikke denne gang.
![](https://cdn.codegym.cc/images/article/ffb700f7-60b3-4cfc-a274-a1a35a6b1f31/512.jpeg)
Derfor slog programmørerne i denne IT-virksomhed et større budget ud for sig selv, udførte researcharbejde, og da budgettet var slut, præsenterede de en præsentation, hvor det blev foreslået at gemme data i form af en Database. I en database er alle data gemt i tabeller, og hver tabel er gemt i en separat fil. Alt genialt er enkelt og alt fungerer.
Men sådan en præsentation passede ikke kunderne, og nit-plukningen fortsatte:
![](https://cdn.codegym.cc/images/article/a7850c1c-b3ee-403d-8453-dcc511174b7b/512.jpeg)
- Hvor er pengene, Lebowski?
- Hvorfor er databasen bedre end den gode gamle lagring af data i form af et sæt filer?
- Vi har brug for en rigtig god løsning, ikke det er det!
- Og det tog hele budgettet?
Der var dødsstille i præsentationslokalet. Men uventet for alle blev situationen reddet af en juniorudvikler, som sagde, at et særligt program var knyttet til databasen - et DBMS (Database Management System), som kan:
- Opret, rediger og slet databaser
- Foretag ændringer i databaser, nemlig: tilføje nye poster, slette gamle og ændre dem
- Og også superhurtig til at udføre forskellige valg af enhver data
Og programmører er endda ved at færdiggøre design af et særligt supersprog til filtrering af data - SQL . Og de siger, at ved hjælp af dette magiske SQL-sprog kan enhver leder nemt filtrere og hente data fra databasen.
![](https://cdn.codegym.cc/images/article/216e75d9-299a-44a8-9e0a-0cc1d26717a8/512.jpeg)
Programmørerne er bare ikke færdige med at designe sproget endnu , så der er ikke et ord om SQL og DBMS i præsentationen.
Til alles glæde var kunderne imponerede over den forklaring, de hørte, gav udtryk for flere modstridende ideer om, hvordan dette nye sprog skulle være, og tildelte endda et budget til dets forfining.
Ledere og den tekniske direktør begyndte at lykønske hinanden med den vellykkede afslutning af projektet og gik straks for at fejre denne begivenhed uden fuldt ud at indse, at juniorprogrammøren i hele denne historie er den vigtigste person ...
Populære DBMS og MySQL
I øjeblikket (sommeren 2022) er der hundredvis af populære DBMS, så det vil være nyttigt for dig at lære om nogle af dem. Hvad skal jeg starte med...
På den ene side har virksomhedens DBMS-markedet eksisteret i årtier. Derfor har den både anerkendte ledere og lovende nytilkomne. På den anden side vokser forretningskrav konstant, så tilgange til opbygning af virksomheders IT-infrastrukturer ændrer sig konstant.
Nu vil du ikke overraske nogen med en database fra en klynge på et par tusinde servere med horisontal og vertikal sharding, distribuerede transaktioner, samt en IT-afdeling på et par dusin systemadministratorer, der går og skifter serverharddiske iflg. en forudbestemt tidsplan.
Generelt, hvis du arbejder for en stor virksomhed, så betaler de højst sandsynligt mange penge for deres databaser og bruger noget som dette:
Oracle Database
![](https://cdn.codegym.cc/images/article/8a53ac38-0a59-466a-9597-f3e6bf618a43/800.jpeg)
Oracle udgav sin første database tilbage i 1979 (43 år siden). Hun bar straks navnet Oracle 2.0 for at overbevise kunderne om, at produktet ikke er nyt, men tidstestet.
Den nuværende version af databasen er Oracle 21 c , hvor bogstavet c er fra ordet cloud , der sådan set antyder, at Oracle følger med tiden og dets løsninger er perfekt kompatible med alle cloud-teknologier.
Microsoft SQL Server
![](https://cdn.codegym.cc/images/article/532a4cde-2214-4bec-96db-bff84eb41af6/512.jpeg)
Microsoft tjener mange penge på at sælge ikke Windows, men serverløsninger til mellemstore og store virksomheder. Microsoft Office, Microsoft SharePoint, Microsoft Server osv. Og alt dette kræver selvfølgelig en god database. Derfor er mange virksomheder, der bruger Microsoft-produkter og -løsninger, tvunget til at bruge deres database.
Microsofts DBMS hedder simpelthen SQL Server , så hvis du hører spørgsmålet “Har du arbejdet med SQL Server?” ved et interview, så ved, 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 et godt gratis DBMS, som ofte bruges ikke kun af små og mellemstore virksomheder, men også af store virksomheder. Dette er en af de databaser, som Amazon AWS tilbyder som en DB-as-service.
MySQL
![](https://cdn.codegym.cc/images/article/0ea0a78a-41d2-43c3-8cd0-b4c72d4c142a/512.jpeg)
MySQL er en meget populær gratis og open source-database. Det er veldokumenteret, fungerer hurtigt og understøtter en lang række funktioner. Til dato er den 8. version af dette DBMS tilgængelig.
I 2008 blev det købt af Sun, som blev købt af Oracle i 2009. Og det gavnede hende kun – produktet udvikler og forbedres hele tiden.
Vi vil lære at arbejde med databaser ved at bruge MySQL Community Server 8.0 som eksempel .
Tabeller i en database: kolonner og kolonner
Forskellige DBMS kan gemme data i forskellige formater, så vi vil tage den enkleste og mest klassiske mulighed - MySQL DBMS.
Og umiddelbart er spørgsmålet: hvordan opbevarer man for eksempel eventuelle regnskabsbilag? Den nemmeste mulighed er at gemme hvert dokument som en Excel-fil. Så kan alle relaterede dokumenter gemmes i én mappe. Sådan fungerer MySQL.
En anden analogi: i Java-sproget har du klasser og pakker i dit projekt , men samtidig er klasser og pakker repræsenteret på disken som filer og mapper . Noget lignende findes i MySQL.
MySQL-data gemmes i form af tabeller , som kombineres til databaser , men samtidig præsenteres tabeller og databasen på disken som filer og mapper . Databasen er en mappe, og filerne i den er tabeller.
Hver tabel består af kolonner og rækker . Eksempel:
![](https://cdn.codegym.cc/images/article/ef9c797e-174d-4b27-a109-ff88a837ac5a/512.jpeg)
Vigtig! Hver kolonne har et navn og en datatype , så alle celler i samme kolonne skal gemme værdier af samme type .
Der kan drages en analogi mellem en tabel i MySQL og en klasse i Java. En tabel er en klasse, en tabel har ligesom en klasse et unikt navn. Tabelkolonner er klassefelter; kolonner har ligesom felter et unikt navn og type. Tabelrækker er klasseforekomster i Java.
En klasse kan eksistere uden objekter, og en tabel kan eksistere uden rækker. I Java kan du oprette et nyt objekt, og i MySQL kan du tilføje en ny række til en tabel. Du kan ændre feltværdierne for et objekt, og i MySQL kan du ændre værdierne i en række.
Det er endnu mere korrekt at sige, at en tabel ikke er en klasse, men en samling af objekter af en bestemt klasse. Hvis vi i MySQL har en Employee-tabel med data om medarbejdere, så ville vi i Java bruge ArrayList- samlingen
Og selvfølgelig opstår spørgsmålet straks: hvordan får man visse data fra denne samling?
GO TO FULL VERSION