Niezależność danych w DBMS: fizyczna i logiczna z przykładami
⚡ Inteligentne podsumowanie
Niezależność danych to właściwość systemów DBMS, która pozwala na zmianę schematu na jednym poziomie bez wymuszania zmiany na wyższym poziomie. Występuje w dwóch formach: fizycznej i logicznej, i oddziela dane od programów, które z nich korzystają.

Czym jest niezależność danych w systemach DBMS?
Niezależność danych (Data Independence) to właściwość systemu DBMS, która umożliwia zmianę schematu bazy danych na jednym poziomie systemu bez konieczności wprowadzania zmian w schemacie na wyższym poziomie. Niezależność danych pozwala na oddzielenie danych od wszystkich programów, które z nich korzystają.
Możesz wykorzystać te zapisane dane do obliczeń i prezentacji. W wielu systemach niezależność danych jest kluczową funkcją poszczególnych komponentów systemu.
Rodzaje niezależności danych
In DBMS Istnieją dwa rodzaje niezależności danych:
- Niezależność danych fizycznych.
- Logiczna niezależność danych.
Oba typy baz danych opierają się na warstwowej strukturze bazy danych, dlatego warto najpierw przejrzeć te poziomy.
Poziomy bazy danych
Zanim poznamy niezależność danych, ważne jest przypomnienie sobie poziomów bazy danych. Baza danych ma trzy poziomy, jak pokazano na poniższym diagramie:
- Fizyczne / Wewnętrzne
- Konceptualistyczny
- Zewnętrzny

Są to te same warstwy, które opisano szczegółowo w Schematy DBMSRozważmy przykład bazy danych uniwersytetu. Na różnych poziomach implementacja wygląda następująco:
| Typ schematu | Wdrożenie |
|---|---|
| Schemat zewnętrzny |
Widok 1: Course_info(cid:int, cname:string) Widok 2: student_info(id:int, nazwa:string) |
| Schemat koncepcyjny |
Students(id: int, name: string, login: string, age: integer) Courses(id: int, cname: string, credits: integer) Enrolled(id: int, grade: string) |
| Schemat fizyczny |
|
Fizyczna niezależność danych
Fizyczna niezależność danych pozwala oddzielić poziom koncepcyjny od poziomu wewnętrznego, czyli fizycznego. Pozwala na logiczny opis bazy danych bez konieczności określania struktur fizycznych. W porównaniu z niezależnością logiczną, osiągnięcie fizycznej niezależności danych jest łatwe.
Dzięki niezależności fizycznej możesz zmieniać fizyczne struktury pamięci masowej lub urządzenia bez wpływu na schemat koncepcyjny. Każda wprowadzona zmiana jest absorbowana przez mapę.ping między poziomem koncepcyjnym a wewnętrznym. Fizyczna niezależność danych jest osiągana poprzez obecność poziomu wewnętrznego bazy danych i transformację z poziomu koncepcyjnego na poziom wewnętrzny.
Przykłady zmian w ramach niezależności danych fizycznych
Ze względu na niezależność fizyczną żadna z poniższych zmian nie wpłynie na warstwę koncepcyjną:
- Użycie nowego urządzenia pamięci masowej, np. dysku twardego lub taśmy magnetycznej.
- Zmiana sposobu organizacji plików w bazie danych.
- Przechodzenie do różnych struktur danych.
- Zmiana sposobu dostępu.
- Modyfikowanie indeksów.
- Zmiany w technikach kompresji lub algorytmy mieszające.
- Zmiana lokalizacji bazy danych, np. z dysku C na dysk D.
Logiczna niezależność danych
Logiczna niezależność danych to zdolność do zmiany schematu koncepcyjnego bez zmiany:
- Widok zewnętrzny.
- Zewnętrzne API lub programy.
Każda wprowadzona zmiana jest absorbowana przez mapęping między poziomem zewnętrznym a koncepcyjnym. W porównaniu z fizyczną niezależnością danych, osiągnięcie logicznej niezależności danych jest wyzwaniem.
Przykłady zmian w ramach niezależności danych logicznych
Ze względu na niezależność logiczną żadna ze zmian podanych poniżej nie wpłynie na warstwę zewnętrzną:
- Dodawanie, modyfikowanie lub usuwanie nowych atrybutów, jednostek lub relacji jest możliwe bez konieczności ponownego pisania istniejących programów aplikacyjnych.
- Łączenie dwóch rekordów w jeden.
- Podzielenie istniejącego rekordu na dwa lub więcej rekordów.
Różnica między niezależnością danych fizycznych i logicznych
| Logiczna niezależność danych | Fizyczna niezależność danych |
|---|---|
| Głównie dotyczy to struktury i zmiany definicji danych. | Dotyczy głównie przechowywania danych. |
| Trudne, ponieważ odzyskiwanie danych zależy głównie od struktury logicznej. | Łatwe do odzyskania. |
| W porównaniu do niezależności fizycznej, jest to trudne do osiągnięcia. | W porównaniu do niezależności logicznej jest ona łatwa do osiągnięcia. |
| Jeśli dodasz lub usuniesz nowe pola, musisz wprowadzić zmiany w programie aplikacji. | Zmiana na poziomie fizycznym zazwyczaj nie wymaga zmiany na poziomie programu aplikacyjnego. |
| Modyfikacja na poziomie logicznym jest istotna zawsze, gdy zmienia się logiczna struktura bazy danych. | Zmiany na poziomie wewnętrznym mogą lub nie być konieczne w celu poprawy wydajności. |
| Zajmuje się schematem koncepcyjnym. | Zainteresowany schematem wewnętrznym. |
| Przykład: dodawanie, modyfikowanie lub usuwanie nowego atrybutu. | Przykład: zmiana technik kompresji, algorytmów haszujących, urządzeń pamięci masowej itp. |
Znaczenie niezależności danych
- Pomaga poprawić jakość danych.
- Sprawia, że konserwacja systemu baz danych staje się bardziej przystępna cenowo.
- Egzekwuje standardy i poprawia bezpieczeństwo baz danych.
- Nie ma potrzeby zmiany struktur danych w programach aplikacyjnych.
- Umożliwia programistom skupienie się na ogólnej strukturze bazy danych, a nie na wewnętrznej implementacji.
- Znacznie zmniejsza niespójność bazy danych.
- Umożliwia wprowadzanie modyfikacji na poziomie fizycznym w celu zwiększenia wydajności systemu.
