Dataoberoende i DBMS: Fysiskt och logiskt med exempel
โก Smart sammanfattning
Dataoberoende รคr en egenskap hos DBMS som lรฅter schemat pรฅ en nivรฅ รคndras utan att tvinga fram en รคndring pรฅ nรคsta hรถgre nivรฅ. Det finns i tvรฅ former, fysiskt och logiskt, och hรฅller data separerat frรฅn de program som anvรคnder det.

Vad รคr dataoberoende i ett DBMS?
Dataoberoende definieras som en egenskap hos DBMS som hjรคlper dig att รคndra databasschemat pรฅ en nivรฅ i ett databassystem utan att schemat behรถver รคndras pรฅ nรคsta hรถgre nivรฅ. Dataoberoende hjรคlper dig att hรฅlla data separerade frรฅn alla program som anvรคnder dem.
Du kan anvรคnda dessa lagrade data fรถr berรคkning och presentation. I mรฅnga system รคr dataoberoende en viktig funktion fรถr systemets komponenter.
Typer av dataoberoende
In DBMS Det finns tvรฅ typer av dataoberoende:
- Fysisk dataoberoende.
- Logiskt dataoberoende.
Bรฅda typerna vilar pรฅ den lagerbaserade designen av en databas, sรฅ det รคr bra att granska dessa nivรฅer fรถrst.
Nivรฅer i en databas
Innan vi lรคr oss om dataoberoende รคr det viktigt att vi repetiterar databasnivรฅerna. Databasen har tre nivรฅer, som visas i diagrammet nedan:
- Fysisk / Intern
- Conceptual
- Yttre

Dessa รคr samma lager som beskrivs i detalj under DBMS-schemanBetrakta ett exempel pรฅ en universitetsdatabas. Pรฅ de olika nivรฅerna ser implementeringen ut sรฅ hรคr:
| Typ av schema | Genomfรถrande |
|---|---|
| Externt schema |
Vy 1: Kursinfo(cid:int, cnamn:strรคng) Vy 2: student_info(id:int, namn:strรคng) |
| Konceptuellt schema |
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
Fysisk dataoberoende hjรคlper dig att separera den konceptuella nivรฅn frรฅn den interna eller fysiska nivรฅn. Det lรฅter dig ge en logisk beskrivning av databasen utan att behรถva specificera fysiska strukturer. Jรคmfรถrt med logisk oberoende รคr det enkelt att uppnรฅ fysisk dataoberoende.
Med fysiskt oberoende kan du รคndra de fysiska lagringsstrukturerna eller enheterna utan att det konceptuella schemat pรฅverkas. Alla รคndringar som gรถrs absorberas av kartan.ping mellan den konceptuella och interna nivรฅn. Fysisk dataoberoende uppnรฅs genom nรคrvaron av databasens interna nivรฅ och omvandlingen frรฅn den konceptuella nivรฅn till den interna nivรฅn.
Exempel pรฅ fรถrรคndringar under fysisk dataoberoende
Pรฅ grund av fysiskt oberoende kommer ingen av รคndringarna nedan att pรฅverka det konceptuella lagret:
- Anvรคnda en ny lagringsenhet, till exempel en hรฅrddisk eller ett magnetband.
- รndra filorganisationstekniken i databasen.
- Byte till olika datastrukturer.
- รndra รฅtkomstmetod.
- รndring av index.
- รndringar av kompressionstekniker eller hashing-algoritmer.
- รndra databasens plats, till exempel frรฅn C-enheten till D-enheten.
Logiska dataoberoende
Logiskt dataoberoende รคr fรถrmรฅgan att รคndra det konceptuella schemat utan att รคndra:
- Externa vyer.
- Externa API:er eller program.
Alla รคndringar som gรถrs absorberas av kartanping mellan den externa och konceptuella nivรฅn. Jรคmfรถrt med fysisk dataoberoende รคr det utmanande att uppnรฅ logisk dataoberoende.
Exempel pรฅ fรถrรคndringar under logisk dataoberoende
Pรฅ grund av logiskt oberoende kommer ingen av รคndringarna nedan att pรฅverka det externa lagret:
- Det รคr mรถjligt att lรคgga till, รคndra eller ta bort ett nytt attribut, entitet eller relation utan att befintliga applikationsprogram behรถver skrivas om.
- Sammanfoga tvรฅ poster till en.
- Att dela upp en befintlig post i tvรฅ eller fler poster.
Skillnaden mellan fysisk och logisk dataoberoende
| Logiska dataoberoende | Fysiska data oberoende |
|---|---|
| Frรคmst involverad i strukturen eller รคndring av datadefinitionen. | Frรคmst handlar det om lagring av data. |
| Svรฅrt, eftersom hรคmtningen av data huvudsakligen beror pรฅ den logiska strukturen. | Lรคtt att hรคmta. |
| Jรคmfรถrt med fysiskt oberoende รคr det svรฅrt att uppnรฅ. | Jรคmfรถrt med logisk oberoende รคr det lรคtt att uppnรฅ. |
| Du mรฅste gรถra รคndringar i applikationsprogrammet om nya fรคlt lรคggs till eller tas bort. | En fรถrรคndring pรฅ fysisk nivรฅ krรคver vanligtvis inte en fรถrรคndring pรฅ applikationsprogramnivรฅ. |
| Modifiering pรฅ logisk nivรฅ รคr betydande nรคr databasens logiska strukturer รคndras. | Modifieringar pรฅ intern nivรฅ kan behรถvas eller inte behรถvas fรถr att fรถrbรคttra prestandan. |
| Bekymrad รถver det konceptuella schemat. | Bekymrad รถver det interna schemat. |
| Exempel: lรคgg till, รคndra eller ta bort ett nytt attribut. | Exempel: fรถrรคndring i komprimeringstekniker, hashalgoritmer, lagringsenheter etc. |
Vikten av dataoberoende
- Hjรคlper dig att fรถrbรคttra datakvaliteten.
- Gรถr underhรฅll av databassystem mer รถverkomligt.
- Upprรคtthรฅller standarder och fรถrbรคttrar databassรคkerheten.
- Du behรถver inte รคndra datastrukturer i applikationsprogram.
- Tillรฅter utvecklare att fokusera pรฅ databasens allmรคnna struktur snarare รคn den interna implementeringen.
- Minskar databasinkonsekvens avsevรคrt.
- Lรฅter dig gรถra modifieringar pรฅ fysisk nivรฅ fรถr att fรถrbรคttra systemets prestanda.
