Databassystem omfattar komplexa datastrukturer. För att göra systemet effektivt när det gäller hämtning av data och minska komplexiteten vad gäller användarvänlighet använder utvecklare abstraktion, dvs döljer irrelevanta detaljer för användarna. Detta tillvägagångssätt förenklar databasdesign.
Abstraktionsnivå i ett DBMS
Det finns huvudsakligen 3 nivåer av dataabstraktion:
- Fysisk eller intern nivå
- Logisk eller konceptuell nivå
- Vy eller extern nivå
Fysisk eller intern nivå
Detta är den lägsta nivån av dataabstraktion. Den berättar för oss hur data faktiskt lagras i minnet. Åtkomstmetoder som sekventiell eller slumpmässig åtkomst och filorganisationsmetoder som B+-träd och hashing används för detsamma. Användbarhetsstorleken på minnet och antalet gånger posterna är faktorer som vi behöver veta när vi utformar databasen.
Anta att vi behöver lagra uppgifterna om en anställd. Lagringsblock och mängden minne som används för dessa ändamål hålls dolda för användaren.
Logisk eller konceptuell nivå
Denna nivå omfattar den information som faktiskt lagras i databasen i form av tabeller. Den lagrar också relationen mellan dataenheterna i relativt enkla strukturer. På denna nivå är informationen tillgänglig för användaren på vynivå okänd.
Vi kan lagra en anställds olika attribut och relationer t.ex. med chefen kan också lagras.
Den logiska nivån beskriver alltså hela databasen i termer av ett litet antal relativt enkla strukturer. Även om implementering av de enkla strukturerna på den logiska nivån kan involvera komplexa strukturer på fysisk nivå behöver användaren av den logiska nivån inte vara medveten om denna komplexitet. Detta kallas fysiskt dataoberoende. Databasadministratörer som måste bestämma vilken information som ska behållas i databasen använder den logiska abstraktionsnivån.
Vy eller extern nivå
Detta är den högsta abstraktionsnivån. Endast en del av den faktiska databasen ses av användarna. Den här nivån finns för att underlätta tillgången till databasen för en enskild användare. Användare ser data i form av rader och kolumner. Tabeller och relationer används för att lagra data. Det kan finnas flera vyer av samma databas. Användare kan bara se data och interagera med databaslagring och implementeringsdetaljer döljs för dem. Även om den logiska nivån använder enklare strukturer kvarstår komplexiteten på grund av mängden information som lagras i en stor databas. Många användare av databassystemet behöver inte all denna information; istället behöver de bara komma åt en del av databasen. Visningsnivån av abstraktion finns för att förenkla deras interaktion med systemet
Exempel: Vid lagring av kunddata
när börjar q2
- Fysisk nivå - den kommer att innehålla lagringsblock (bytesGBTBetc)
- Logisk nivå - den kommer att innehålla fälten och attributen för data.
- Visa nivå – det fungerar med CLI eller GUI tillgång till databasen
Huvudsyftet med dataabstraktion är att uppnå dataoberoende för att spara den tid och kostnad som krävs när databasen modifieras eller ändras.
Dataoberoende
Dataoberoende definieras huvudsakligen som en egenskap hos DBMS som hjälper dig att ändra databasschemat på en nivå i ett system utan att behöva ändra schemat på nästa nivå. det hjälper till att hålla data åtskilda från alla program som använder den.
Vi har nämligen två nivåer av dataoberoende som härrör från dessa abstraktionsnivåer:
- Phys i dataoberoende på kalnivå
- Dataoberoende på logisk nivå
Fysisk nivå Dataoberoende
Det hänvisar till egenskapen att kunna modifiera det fysiska schemat utan några förändringar av det konceptuella eller logiska schemat som gjorts i optimeringssyfte, t.ex. den konceptuella strukturen av databas skulle inte påverkas av någon förändring av lagringsstorleken på databassystemservern. Att byta från sekventiell till slumpmässig åtkomstfiler är ett sådant exempel. Dessa ändringar eller modifieringar av den fysiska strukturen kan innefatta:
- Använda nya lagringsenheter.
- Ändring av datastrukturer som används för lagring.
- Ändra index eller använda alternativa filorganisationstekniker etc.
Dataoberoende på logisk nivå
Det hänvisar till egenskapen att kunna modifiera det logiska schemat utan att påverka det externa schemat eller applikationsprogrammet. Användarvyn av data skulle inte påverkas av några ändringar av den konceptuella datavyn. Dessa ändringar kan inkludera infogning eller borttagning av attribut som ändrar tabellstrukturentiteter eller relationer till det logiska schemat etc.