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.

  • ๐Ÿงฉ Kรคrnidรฉ: En fรถrรคndring pรฅ en schemanivรฅ absorberas av kartanpings, sรฅ hรถgre nivรฅer och applikationsprogram fรถrblir orรถrda.
  • ๐Ÿ’พ Fysisk sjรคlvstรคndighet: Lagringsenheter, filorganisation och index kan รคndras utan att det pรฅverkar det konceptuella schemat.
  • ๐Ÿ—‚๏ธ Logisk oberoende: Entiteter och attribut kan lรคggas till eller รคndras utan att externa vyer eller program behรถver skrivas om.
  • ๐Ÿ›๏ธ Tre nivรฅer: Fysiska, konceptuella och externa scheman utgรถr de lager som oberoende separerar.
  • โš–๏ธ Relativ svรฅrighetsgrad: Fysisk oberoende รคr lรคtt att uppnรฅ; logisk oberoende รคr svรฅrare eftersom program รคr beroende av logisk struktur.
  • ๐Ÿ”— Kartapings: Konceptuell-intern och extern-konceptuell kartapingDet รคr det som gรถr varje typ av oberoende mรถjlig.
  • โœ… Dra nytta: Lรคgre underhรฅllskostnader, bรคttre sรคkerhet och utvecklare fokuserade pรฅ design snarare รคn lagring.

Dataoberoende i DBMS

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:

  1. Fysisk dataoberoende.
  2. 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:

  1. Fysisk / Intern
  2. Conceptual
  3. Yttre
Nivรฅer av DBMS-arkitekturdiagram
Nivรฅer av DBMS ArchiTecture Diagram

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
  • Relationer lagrade som oordnade filer.
  • Index i den fรถrsta kolumnen av Studenter.

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:

  1. Externa vyer.
  2. 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:

  1. 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.
  2. Sammanfoga tvรฅ poster till en.
  3. 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.

Vanliga frรฅgor

Applikationsprogram och vyer รคr beroende av den logiska strukturen, sรฅ รคndrade entiteter eller attribut kan pรฅverka dem negativt. Fysisk lagring finns under det konceptuella schemat, sรฅ dess รคndringar fรถrblir dolda.

Kartanpings mellan nivรฅer. Fysisk sjรคlvstรคndighet bygger pรฅ den konceptuellt-interna kartanping, och logiskt oberoende fรถrlitar sig pรฅ den externt-konceptuella kartanping, sรฅ varje fรถrรคndring absorberas snarare รคn sprids.

Nej. Lรคgga till eller ta bortping Ett index รคr en fysisk fรถrรคndring som absorberas av fysisk dataoberoende. Frรฅgor returnerar samma resultat, bara snabbare eller lรฅngsammare, och ingen applikationskod behรถver รคndras.

Eftersom lagring kan รคndras fritt kan ett AI-justeringsverktyg migrera data till kolumnlagring eller lรคgga till index fรถr att pรฅskynda modelltrรคning, allt utan att รคndra de frรฅgor som applikationerna redan anvรคnder.

Fysiskt. Att flytta filer frรฅn en enhet till en annan รคndrar endast den interna nivรฅn. Tack vare fysisk dataoberoende pรฅverkas inte det konceptuella schemat och alla applikationsvyer.

Sammanfatta detta inlรคgg med: