Fundamentals of Database Systems, 7:e upplagan, täcker ett brett utbud av nyckelbegrepp inom databasteori och praktik. Här är en uppdelning av de stora områdena som omfattas:
i. Kärndatabaskoncept:
* Introduktion till databaser:
* Syftet med databassystem
* Databasesystemarkitekturer (klient-server, etc.)
* Databasanvändare och administratörer
* Fördelar med att använda en DBMS
* databasmodeller (relation, ER, EER):
* Relationsmodell:
* Grundläggande koncept:relationer, tuples, attribut, domäner
* Keys:Primär, utländsk, kandidat, supernycklar
* Integritetsbegränsningar:Enhetsintegritet, referensintegritet
* Relational Algebra:Select, Project, Union, Intersection, Difference, Join, Division Operations.
* Entity-Relationship (ER) Modell:
* Enheter, attribut, relationer
* Er diagram (ritning och tolkning)
* Kardinalitets- och deltagandebegränsningar
* Svaga enheter
* Relationstyper (en-till-en, en-till-många, många-till-många)
* Enhanced ER (EER) Modell:
* Underklasser och superklasser
* Specialisering och generalisering
* Attribut av attribut
* Begränsningar för specialiseringar/generaliseringar (osammanhängande, överlappande, total, partiell)
* Kategorier (fackliga typer)
* databasdesign:
* Konceptuell design (med ER eller EER -modellering)
* Logisk design (Mapping ER/EER till ett relationellt schema)
* Fysisk design (lagringsstrukturer, indexering, frågeformisering)
* Normalisering (se nedan)
* Relationsdatabasdesign:
* Funktionella beroenden
* Normalisering (1NF, 2NF, 3NF, BCNF, 4NF, 5NF)
* Nedbrytning och förlustfri nedbrytning
* Beroende av beroende
ii. SQL (strukturerat frågespråk):
* grundläggande SQL -frågor:
* Välj från var klausuler
* Jämförelseoperatörer, logiska operatörer
* Beställningsresultat (beställning av)
* Ställ in operationer (Union, korsar, utom)
* Aggregerade funktioner (räkning, summa, genomsnitt, min, max)
* Grupp av och har klausuler
* sammanfogar:
* Inre sammanfogningar (Equi-Join, Natural Join)
* Yttre sammanfogningar (vänster, höger, full)
* Självjoins
* Subqueries:
* Korrelerade och okorrelerade underkunskaper
* Subqueries i Select, från var klausuler
* Data Definition Language (DDL):
* Skapa tabell, ändra tabell, droppbord
* Definiera begränsningar (primär nyckel, utländsk nyckel, unikhet, check)
* Data Manipulation Language (DML):
* Infoga, uppdatera, ta bort uttalanden
* Visningar:
* Skapa och använda vyer
* Materialiserade vyer
* Transaktioner:
* Börja transaktion, begå, rollback
* Syraegenskaper (atomicitet, konsistens, isolering, hållbarhet)
* inbäddad SQL: (Ibland täckt, beroende på djupet)
* Använda SQL på ett värdprogrammeringsspråk
iii. Databas System Implementation &Management:
* Lagringsstrukturer:
* Filorganisation (hög, sorterad, hashed)
* Indexering (primär, sekundär, kluster, oskyldig)
* B-träd och B+-trees
* Frågebehandling och optimering:
* Fråga att analysera, validering, optimering
* Frågeutförandeplaner
* Kostnadsuppskattning
* Gå med i algoritmer
* Transaktionshantering:
* Samtidskontroll (låsning, tidsstämpel)
* Deadlock Handling (upptäckt, förebyggande, undvikande)
* Återställningstekniker (loggning, skuggsökning)
* Säkerhet:
* Autentisering och auktorisation
* Åtkomstkontroll (beviljande och återkallande av privilegier)
* Kryptering
* Databasrevision
iv. Avancerade databaskoncept (ofta introducerade, men kanske inte i stort djup):
* Objektorienterade databaser:
* Objekt, klasser, arv, polymorfism
* Objektrelationell kartläggning (ORM)
* distribuerade databaser:
* Datafragmentering och replikering
* Distribuerad frågebehandling
* Distribuerad transaktionshantering
* Datalagring och OLAP:
* Datalagerarkitektur
* OLAP-operationer (roll-up, borr-down, skivning, tärning)
* Data mining
* NoSQL -databaser:
* Nyckelvärdesbutiker, dokumentdatabaser, kolumnfamiljebutiker, grafdatabaser
* Cap Theorem
* Använd fall för NoSQL -databaser
* big data: (kort nämnt)
* Hadoop, Spark
* nya trender (Beroende på hur det senaste utskriften är, kan dessa beröras)
* Grafdatabaser
* Blockchain och databaser
* AI och databaser
Sammanfattningsvis ger boken en omfattande introduktion till databasesystem som täcker kärnbegreppen för implementering av relationsdatabasdesign, SQL och databasesystemet. Det berör också mer avancerade ämnen för att ge en bredare förståelse av fältet. Täckningsdjupet för avancerade ämnen kan variera.