Dataoberoende i DBMS: Fysiskt och logiskt med exempel

Vad รคr dataoberoende fรถr DBMS?

Dataoberoende definieras som en egenskap hos DBMS som hjรคlper dig att รคndra databasschemat pรฅ en nivรฅ i ett databassystem utan att behรถva รคndra schemat pรฅ nรคsta hรถgre nivรฅ. Dataoberoende hjรคlper dig att hรฅlla data รฅtskilda frรฅn alla program som anvรคnder dem.

Du kan anvรคnda denna lagrade data fรถr berรคkning och presentation. I mรฅnga system รคr dataoberoende en vรคsentlig funktion fรถr komponenter i systemet.

Typer av dataoberoende

In DBMS det finns tvรฅ typer av dataoberoende

  1. Fysisk dataoberoende
  2. Logiskt dataoberoende.

Nivรฅer av databas

Innan vi lรคr oss dataoberoende รคr det viktigt att uppdatera databasnivรฅer. Databasen har 3 nivรฅer som visas i diagrammet nedan

  1. Fysisk/intern
  2. Conceptual
  3. Yttre
Nivรฅer av databas
Nivรฅer av DBMS ArchiTecture Diagram

Tรคnk pรฅ ett exempel pรฅ en universitetsdatabas. Pรฅ de olika nivรฅerna kommer implementeringen att se ut sรฅ hรคr:

Typ av schema Genomfรถrande
Externt schema

Visa 1: Kursinformation(cid:int,cname:string)

Visa 2: studeninfo(id:int.namn:strรคng)

Konceptuellt Shema
Students(id: int, name: string, login: string, age: integer) 
Courses(id: int, cname:string, credits:integer) 
Enrolled(id: int, grade:string)
Fysiskt schema
  • Relationer lagrade som oordnade filer.
  • Index i den fรถrsta kolumnen av Studenter.

Fysiska data oberoende

Fysiskt dataoberoende hjรคlper dig att skilja konceptuella nivรฅer frรฅn de interna/fysiska nivรฅerna. Det lรฅter dig ge en logisk beskrivning av databasen utan att behรถva specificera fysiska strukturer. Jรคmfรถrt med logiskt oberoende รคr det lรคtt att uppnรฅ fysisk dataoberoende.

Med fysisk oberoende kan du enkelt รคndra de fysiska lagringsstrukturerna eller enheterna med en effekt pรฅ det konceptuella schemat. Alla รคndringar som gรถrs kommer att absorberas av kartan.ping mellan den konceptuella och interna nivรฅn. Fysisk dataoberoende uppnรฅs genom nรคrvaron av databasens interna nivรฅ och sedan omvandlingen frรฅn databasens konceptuella nivรฅ till den interna nivรฅn.

Exempel pรฅ รคndringar under Fysiskt dataoberoende

Pรฅ grund av fysiskt oberoende kommer nรฅgon av nedanstรฅende fรถrรคndringar inte att pรฅverka det konceptuella lagret.

  • Anvรคnda en ny lagringsenhet som hรฅrddisk eller magnetband
  • ร„ndring av filorganisationstekniken i databasen
  • Byte till olika datastrukturer.
  • ร„ndra รฅtkomstmetod.
  • ร„ndring av index.
  • ร„ndringar av komprimeringstekniker eller hashalgoritmer.
  • ร„ndring av plats fรถr databasen frรฅn sรคg C-enhet till D-enhet

Logiska dataoberoende

Logiskt dataoberoende รคr fรถrmรฅgan att รคndra det konceptuella schemat utan att fรถrรคndras

  1. Yttre vyer
  2. Externt API eller program

Alla รคndringar som gรถrs kommer att absorberas av kartanping mellan externa och konceptuella nivรฅer.

Jรคmfรถrt med fysisk dataoberoende รคr det utmanande att uppnรฅ logiskt dataoberoende.

Exempel pรฅ รคndringar under logiskt dataoberoende

Pรฅ grund av logiskt oberoende kommer nรฅgon av รคndringarna nedan inte att pรฅverka det externa lagret.

  1. Lรคgg till/ร„ndra/Ta bort ett nytt attribut, entitet eller relation รคr mรถjligt utan omskrivning av befintliga applikationsprogram
  2. Slรฅr ihop tvรฅ poster till en
  3. Dela ett befintligt rekord i tvรฅ eller flera poster

Skillnaden mellan fysiskt och logiskt dataoberoende

Logica Data Oberoende Fysiska data oberoende
Logiskt dataoberoende handlar frรคmst om strukturen eller att รคndra datadefinitionen. Frรคmst handlar det om lagring av data.
Det รคr svรฅrt dรฅ hรคmtning av data huvudsakligen รคr beroende av datas logiska struktur. Det รคr lรคtt att hรคmta.
Jรคmfรถrt med logiskt fysiskt oberoende รคr det svรฅrt att uppnรฅ logiskt dataoberoende. Jรคmfรถrt med logiskt oberoende รคr det lรคtt att uppnรฅ fysisk dataoberoende.
Du mรฅste gรถra รคndringar i applikationsprogrammet om nya fรคlt lรคggs till eller tas bort frรฅn databasen. En fรถrรคndring av den fysiska nivรฅn behรถver vanligtvis inte รคndras pรฅ applikationsprogramnivรฅ.
Modifiering pรฅ de logiska nivรฅerna รคr betydande nรคrhelst de logiska strukturerna i databasen รคndras. ร„ndringar som gรถrs pรฅ interna nivรฅer kan behรถvas eller inte fรถr att fรถrbรคttra strukturens prestanda.
Bekymrad รถver konceptuellt schema Bekymrad รถver internt schema
Exempel: Lรคgg till/ร„ndra/Ta bort ett nytt attribut Exempel: fรถrรคndring av komprimeringstekniker, hashalgoritmer, lagringsenheter, etc

Vikten av dataoberoende

  • Hjรคlper dig att fรถrbรคttra kvaliteten pรฅ datan
  • Underhรฅll av databassystem blir รถverkomligt
  • Upprรคtthรฅllande av standarder och fรถrbรคttring av databassรคkerhet
  • Du behรถver inte รคndra datastrukturen i applikationsprogram
  • Tillรฅt utvecklare att fokusera pรฅ den allmรคnna strukturen i databasen snarare รคn att oroa sig fรถr den interna implementeringen
  • Det lรฅter dig fรถrbรคttra tillstรฅnd som รคr oskadat eller odelat
  • Databasinkonsekvens reduceras avsevรคrt.
  • Enkelt gรถra รคndringar i den fysiska nivรฅn behรถvs fรถr att fรถrbรคttra systemets prestanda.

Sammanfattning

  • Dataoberoende รคr egenskapen hos DBMS som hjรคlper dig att รคndra Databasschema pรฅ en nivรฅ i ett databassystem utan att behรถva รคndra schemat pรฅ nรคsta hรถgre nivรฅ.
  • Tvรฅ nivรฅer av dataoberoende รคr 1) fysisk och 2) logisk
  • Fysiskt dataoberoende hjรคlper dig att skilja konceptuella nivรฅer frรฅn de interna/fysiska nivรฅerna
  • Logiskt dataoberoende รคr fรถrmรฅgan att รคndra det konceptuella schemat utan att fรถrรคndras
  • Jรคmfรถrt med fysisk dataoberoende รคr det utmanande att uppnรฅ logiskt dataoberoende
  • Dataoberoende Hjรคlper dig att fรถrbรคttra kvaliteten pรฅ data

Sammanfatta detta inlรคgg med: