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
- Fysisk dataoberoende
- 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
- Fysisk/intern
- Conceptual
- Yttre

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 |
|
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
- Yttre vyer
- 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.
- Lรคgg till/รndra/Ta bort ett nytt attribut, entitet eller relation รคr mรถjligt utan omskrivning av befintliga applikationsprogram
- Slรฅr ihop tvรฅ poster till en
- 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
