Historik av databaser: databas och DBMS
För länge sedan i ett amerikanskt land, i ett stort IT-företag, uppstod en gång uppgiften att lagra mycket stora datamängder. Vad är det som är så svårt med det, frågar du? Stora företag har trots allt pengar, vilket gör att du kan köpa fler hårddiskar – och det är det.
Bra idé, men som de säger, djävulen sitter i detaljerna. Stora mängder data behövde inte bara lagras, utan också ändras, och olika prover gjordes från dem. Dessutom måste du välja olika data från olika platser och även göra det snabbt och vackert.
I allmänhet är allt som vanligt: kunderna ville ha något som inte finns, och beslutet att köpa hårddiskar fungerade inte den här gången.
![](https://cdn.codegym.cc/images/article/ffb700f7-60b3-4cfc-a274-a1a35a6b1f31/512.jpeg)
Därför slog programmerarna för detta IT-företag ut en större budget för sig själva, genomförde researcharbete och när budgeten var över presenterade de en presentation där det föreslogs att lagra data i form av en Databas. I en databas lagras all data i tabeller och varje tabell lagras i en separat fil. Allt genialt är enkelt och allt fungerar.
Men en sådan presentation passade inte kunderna, och nitplockningen fortsatte:
![](https://cdn.codegym.cc/images/article/a7850c1c-b3ee-403d-8453-dcc511174b7b/512.jpeg)
- Var är pengarna, Lebowski?
- Varför är databasen bättre än den gamla goda lagringen av data i form av en uppsättning filer?
- Vi behöver en riktigt bra lösning, inte så!
- Och det tog hela budgeten?
Det rådde dödstysthet i presentationsrummet. Men oväntat för alla räddades situationen av en junior utvecklare, som sa att ett speciellt program var kopplat till databasen - ett DBMS (Database Management System), som kan:
- Skapa, ändra och ta bort databaser
- Gör ändringar i databaser, nämligen: lägga till nya poster, ta bort gamla och ändra dem
- Och dessutom supersnabb att utföra olika val av data
Och programmerare håller till och med på att färdigställa ett speciellt superspråk för filtrering av data - SQL . Och de säger att med hjälp av detta magiska SQL-språk kan vilken chef som helst enkelt filtrera och hämta vilken data som helst från databasen.
![](https://cdn.codegym.cc/images/article/216e75d9-299a-44a8-9e0a-0cc1d26717a8/512.jpeg)
Programmerarna har bara inte designat färdigt språket än , så det finns inte ett ord om SQL och DBMS i presentationen.
Till allas glädje imponerades kunderna av förklaringen de hörde, uttryckte flera motstridiga idéer om hur det här nya språket skulle vara och till och med avsatte en budget för förfining.
Chefer och den tekniska direktören började gratulera varandra till det framgångsrika slutförandet av projektet och gick omedelbart för att fira denna händelse, utan att helt inse att juniorprogrammeraren i hela denna historia är den viktigaste personen ...
Populära DBMS och MySQL
För tillfället (sommaren 2022) finns det hundratals populära DBMS, så det kommer att vara användbart för dig att lära dig om några av dem. Vad ska jag börja med...
Å ena sidan har DBMS-marknaden för företag funnits i decennier. Därför har den både erkända ledare och lovande nykomlingar. Å andra sidan växer affärskraven ständigt, så sätt att bygga företags IT-infrastrukturer förändras ständigt.
Nu kommer du inte att överraska någon med en databas från ett kluster på ett par tusen servrar med horisontell och vertikal skärning, distribuerade transaktioner, samt en IT-avdelning på ett par dussin systemadministratörer som går och byter serverhårddiskar enl. ett förutbestämt schema.
I allmänhet, om du arbetar för ett stort företag, så betalar de troligen mycket pengar för sina databaser och använder något så här:
Oracle Database
![](https://cdn.codegym.cc/images/article/8a53ac38-0a59-466a-9597-f3e6bf618a43/800.jpeg)
Oracle släppte sin första databas redan 1979 (43 år sedan). Hon bar direkt namnet Oracle 2.0 för att övertyga kunderna om att produkten inte är ny, utan beprövad.
Den nuvarande versionen av databasen är Oracle 21 c , där bokstaven c kommer från ordet moln , vilket liksom antyder att Oracle hänger med i tiden och att dess lösningar är perfekt kompatibla med all molnteknologi.
Microsoft SQL Server
![](https://cdn.codegym.cc/images/article/532a4cde-2214-4bec-96db-bff84eb41af6/512.jpeg)
Microsoft tjänar mycket pengar på att sälja inte Windows, utan serverlösningar för medelstora och stora företag. Microsoft Office, Microsoft SharePoint, Microsoft Server, etc. Och allt detta kräver förstås en bra databas. Därför är många företag som använder Microsofts produkter och lösningar tvingade att använda sin databas.
Microsofts DBMS kallas helt enkelt SQL Server , så om du hör frågan "Har du arbetat med SQL Server?" vid en intervju, vet då att detta inte är ett abstrakt DBMS, utan Microsoft SQL Server.
PostgreSQL
![](https://cdn.codegym.cc/images/article/b31cfc41-69af-488e-8079-5433fa502551/512.jpeg)
Detta är ett bra gratis DBMS, som ofta används inte bara av små och medelstora företag, utan också av stora företag. Detta är en av databaserna som Amazon AWS erbjuder som en DB-as-service.
MySQL
![](https://cdn.codegym.cc/images/article/0ea0a78a-41d2-43c3-8cd0-b4c72d4c142a/512.jpeg)
MySQL är en mycket populär gratis databas med öppen källkod. Det är väldokumenterat, fungerar snabbt och stöder ett brett utbud av funktioner. Hittills är den åttonde versionen av detta DBMS tillgänglig.
2008 köptes den av Sun, som köptes av Oracle 2009. Och det gynnade bara henne - produkten utvecklas och förbättras hela tiden.
Vi kommer att lära oss hur man arbetar med databaser med MySQL Community Server 8.0 som exempel .
Tabeller i en databas: kolumner och kolumner
Olika DBMS kan lagra data i olika format, så vi tar det enklaste och mest klassiska alternativet - MySQL DBMS.
Och genast är frågan: hur lagrar man till exempel eventuella redovisningshandlingar? Det enklaste alternativet är att lagra varje dokument som en Excel-fil. Då kan alla relaterade dokument lagras i en mapp. Så här fungerar MySQL.
En annan analogi: i Java-språket har du klasser och paket i ditt projekt , men samtidigt representeras klasser och paket på disken som filer och mappar . Något liknande finns i MySQL.
MySQL-data lagras i form av tabeller , som kombineras till databaser , men samtidigt presenteras tabeller och databasen på disken som filer och mappar . Databasen är en mapp och filerna i den är tabeller.
Varje tabell består av kolumner och rader . Exempel:
![](https://cdn.codegym.cc/images/article/ef9c797e-174d-4b27-a109-ff88a837ac5a/512.jpeg)
Viktig! Varje kolumn har ett namn och en datatyp , så alla celler i samma kolumn måste lagra värden av samma typ .
En analogi kan dras mellan en tabell i MySQL och en klass i Java. En tabell är en klass, en tabell, som en klass, har ett unikt namn. Tabellkolumner är klassfält; kolumner, precis som fält, har ett unikt namn och typ. Tabellrader är klassinstanser i Java.
En klass kan existera utan objekt och en tabell kan existera utan rader. I Java kan du skapa ett nytt objekt och i MySQL kan du lägga till en ny rad i en tabell. Du kan ändra fältvärdena för ett objekt, och i MySQL kan du ändra värdena i rad.
Det är ännu mer korrekt att säga att en tabell inte är en klass, utan en samling objekt av en viss klass. Om vi i MySQL har en Employee-tabell med data om anställda, så skulle vi i Java använda ArrayList -samlingen
Och naturligtvis uppstår frågan omedelbart: hur får man viss data från denna samling?