CodeGym/Java kurs/All lectures for SV purposes/Avancerad kunskap om databaser

Avancerad kunskap om databaser

Tillgängliga

1.1 Princip för uppbyggnad av föreläsningar

Du och jag började vår bekantskap med databaser underifrån . Detta är ett inslag i min personliga inställning till att undervisa människor. När jag pratar om nya ämnen berättar jag alltid först hur man använder vissa verktyg i praktiken. Och redan när jag vet att en person vet hur man använder dem börjar jag berätta hur allt fungerar.

Det finns flera anledningar till detta tillvägagångssätt, men den främsta är att den mest värdefulla och mest saknade resursen i inlärningsprocessen är elevernas motivation .

Detta tillvägagångssätt skiljer sig något från det vi är vana vid, som används i skolor och universitet. Men allt är klart: när du studerar i skolan eller universitetet har du rätt prioriteringar: att studera är det viktigaste i livet just nu.

Om du ägnar dig åt självutbildning i vuxen ålder måste du ofta redan kombinera dina studier med arbete, hushållssysslor, vård av barn eller äldre föräldrar. Och här kommer ofta studier inte att vara första prioritet.

Allt handlar om prioriteringar. Det finns till och med ett sådant koncept i startupsvärlden - Fail Fast, fail så snabbt som möjligt . Det låter konstigt, men i själva verket är det mycket vettigt: uppgiften för en startup är att snabbt kontrollera om hans hypotes är korrekt. Och om det inte är sant, behöver du inte spendera år av ditt liv på det, det är bättre att förstå så tidigt som möjligt att det inte finns någon efterfrågan på en viss tjänst eller produkt.

När jag undervisar i Java och SQL använder jag samma tillvägagångssätt: jag ger dig möjligheten att så tidigt som möjligt förstå om du har bråttom från programmering eller inte . Gillar du programmering, och själv har kunnat lista ut hur du kan arbeta med loopar och arrayer, så har du med hjälp av mentorer och ett genomarbetat program alla möjligheter att genomföra dina studier och hitta ett jobb.

Men ett annat faktum är inte mindre viktigt: på ett par lediga dagar kan du förstå att programmering inte är något för dig. Du kanske helt enkelt inte är intresserad av det, och det är okej . Så du behöver inte spendera månader av ditt liv på det.

Endast 40 % av utexaminerade arbetar inom den specialitet de fått vid universitetet. Tänk på det, folk studerade i 5-6 år, och 60% av dem bestämde sig för att inte arbeta inom sin specialitet. Ja, en del av den kunskap som erhållits används fortfarande, men ungefär hälften av den gör det inte.

Detta är värdet av Fail Fast-konceptet – att så tidigt som möjligt förstå att ett visst yrke, en viss person eller en viss hobby inte passar dig. Och slösa inte din tid och energi på dem. I det långa loppet är detta en mycket bra strategi.

1.2 SQL och allt, allt, allt

Vi är klara med den filosofiska introduktionen, låt oss återgå till att lära oss SQL.

SQL-språk och DBMS är lite olika saker. Själva SQL-språket är en sorts standard som beskriver vad som kan skrivas i SQL-frågor till databasen. DBMS är redan implementeringar av denna standard. Vissa DBMS implementerar vissa funktioner i standarden, den andra - andra och så vidare.

Ju dyrare DBMS är, desto fler funktioner i standarden implementerar det. Dessutom implementerar många DBMS ofta sina egna unika funktioner utanför SQL-standarderna. Ibland leder detta till portabilitetsproblem: SQL-frågor skrivna för en DBMS kanske inte fungerar bra för en annan.

Java har också en liknande situation. Om ett Java-program är skrivet under Windows kommer det inte att fungera normalt på Linux. För att lösa detta problem introducerar Java specialklasser som har olika implementeringar för olika operativsystem. Exempel: Path-klass som har implementeringar av WindowsPath, LinuxPath, etc.

Den andra delen av problemet löses med hjälp av versionshantering. Alla framgångsrika innovationer från olika språk eller DBMS läggs till den nya JDK- eller SQL-standarden. Du vet redan att det finns olika versioner av JDK, och ju nyare version, desto fler funktioner har den. Det är samma sak med SQL.

I SQL-språket finns det flera versioner av dess standard, som är namngivna efter år:

  • SQL:1999
  • SQL:2003
  • SQL:2006
  • SQL:2011
  • SQL:2016
  • SQL:2019

Goda nyheter : vi kommer inte att studera dessa standarder. För det första kommer det att ta år att studera och bemästra allt detta. Och för det andra är dessa standarder som versioner av Android: bara 5-10 år efter releasen blir standarden enormt utbredd.

I databaser med stora mängder data behöver människor tillförlitlighet och stabilitet. "It works, don't touch it" är mottot för alla som arbetar med databaser. Och övergången till en ny version av databaser görs vart femte år, när alla fördelar med en sådan lösning redan är uppenbara.

1.3 Bortom konsolerna

Som jag sa ovan tar det år att bli en databasproffs. En professionell kan många saker som vi inte kommer att studera. Men jag ska prata lite om vad mer som finns i databaserna.

Nästan alla moderna databaser stöder:

1 procedurspråk (PL)

RDBMS stödjer möjligheten att skriva procedurer och funktioner som körs på SQL Server och kan göra många saker med data under frågor. Till exempel, en gång skrev jag PL SQL-frågor till Oracle-servern, som som svar på frågan genererade ... en HTML-sida med data. Jo det kan du.

2 händelser (utlösare)

Alla moderna DBMS stödjer mekanismen för händelser, som kallas triggers i SQL-språket. En trigger uppstår som ett svar på någon handling. Du kan till exempel fånga upp alla försök att skriva till databasen och lägga till den exakta tidpunkten för deras ändring på nya rader.

3 Loggning

Moderna databaser försöker vara supersnabba, så ofta skrivs alla ändringar (nya rader, raderade rader, ändrade rader) först till en speciell fil som kallas en logg. Och först efter en tid kommer SQL-servern att slå samman dessa poster med huvuddatabasen.

På vissa sätt liknar detta beteendet hos Garbage Collector i Java: den markerar också helt enkelt objekt som borttagna först, och utför minnesrensning och optimering under inaktiva tider.

4 plugins

Till DBMS, såväl som till många program, kan du skriva dina egna plugins. Sådana plugins låter dig lägga till unika datatyper, funktioner för att arbeta med dem eller ändra standardbeteendet för DBMS. Detta är särskilt användbart när du arbetar med en öppen källkodsdatabas och det finns några buggar.

5 Distribuerat arbete (kluster)

Ett typiskt scenario för en modern SQL-server är ett kluster av flera servrar. Det enklaste alternativet är när data skrivs till en server och läses från en grupp servrar. I det här fallet kan du konfigurera olika scenarier för databassynkronisering mellan SQL-servrar.

6 Skärning

När det finns mycket data börjar de delas upp i olika databaser. Upp till det faktum att en tabell kan lagras i delar i olika databaser.

Skärning kan vara vertikal och horisontell. Vertikal skärning innebär att bordet så att säga skärs av vertikala linjer, medan horisontell skärning skärs till horisontella.

Till exempel beslutade vi att dela upp all data i tabellen efter år: för 2019 - en tabell, för data från 2020 - den andra och så vidare. Detta kommer att vara horisontell skärning.

7 knuffa den icke-knuffande

I ett visst skede i utvecklingen av databaser började mer och mer affärslogik läggas till dem. Det hela började med procedurer, funktioner, generering av webbsidor av servrar och slutade med tillägget av stöd för nästan alla populära språk till DBMS: Python, JavaScript och till och med Java och C++.

Låter coolt tills du börjar gå in i detaljerna: vill du verkligen skriva din webbapplikations affärslogik i Java, som kommer att köras inuti en SQL-server, där det inte finns JDK, java-bibliotek, ramverk, lite minne och mycket andra restriktioner?

Kommentarer
  • Populär
  • Ny
  • Gammal
Du måste vara inloggad för att lämna en kommentar
Den här sidan har inga kommentarer än