Niezależność danych w DBMS: fizyczna i logiczna z przykładami
Jaka jest niezależność danych DBMS?
Niezależność danych jest zdefiniowana jako właściwość systemu DBMS, która pomaga zmienić schemat bazy danych na jednym poziomie systemu bazy danych bez konieczności zmiany schematu na kolejnym, wyższym poziomie. Niezależność danych pomaga oddzielić dane od wszystkich programów, które z nich korzystają.
Zapisane dane można wykorzystać do obliczeń i prezentacji. W wielu systemach niezależność danych jest podstawową funkcją komponentów systemu.
Rodzaje niezależności danych
In DBMS istnieją dwa rodzaje niezależności danych
- Fizyczna niezależność danych
- Logiczna niezależność danych.
Poziomy bazy danych
Zanim nauczymy się niezależności danych, ważne jest przypomnienie sobie poziomów baz danych. Baza danych ma 3 poziomy, jak pokazano na poniższym schemacie
- Fizyczne/wewnętrzne
- Konceptualistyczny
- Zewnętrzny

Rozważmy przykład uniwersyteckiej bazy danych. Na różnych poziomach wdrożenie będzie wyglądać następująco:
| Typ schematu | Wdrożenie |
|---|---|
| Schemat zewnętrzny |
Zobacz 1: Informacje o kursie (cid:int,cname:string) Zobacz 2: studentinfo(id:int. name:string) |
| Konceptualny Szema |
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 pomaga oddzielić poziomy koncepcyjne od poziomów wewnętrznych/fizycznych. Pozwala na podanie logicznego opisu bazy danych bez konieczności określania struktur fizycznych. W porównaniu z niezależnością logiczną łatwo jest osiągnąć fizyczną niezależność danych.
Dzięki niezależności fizycznej możesz łatwo zmieniać fizyczne struktury pamięci masowej lub urządzenia, wpływając na schemat koncepcyjny. Każda wprowadzona zmiana zostanie wchłonięta przez mapę.ping między poziomem koncepcyjnym a wewnętrznym. Fizyczna niezależność danych jest osiągana poprzez obecność poziomu wewnętrznego bazy danych, a następnie transformację z poziomu koncepcyjnego bazy danych na poziom wewnętrzny.
Przykłady zmian w obszarze Niezależność danych fizycznych
Ze względu na niezależność fizyczną żadna z poniższych zmian nie będzie miała wpływu na warstwę koncepcyjną.
- Korzystanie z nowego urządzenia pamięci masowej, takiego jak dysk twardy lub taśmy magnetyczne
- Modyfikowanie techniki organizacji plików w bazie danych
- Przechodzenie do różnych struktur danych.
- Zmiana sposobu dostępu.
- Modyfikowanie indeksów.
- Zmiany w technikach kompresji i algorytmach haszujących.
- Zmiana lokalizacji bazy danych z, powiedzmy, dysku C na dysk D
Logiczna niezależność danych
Niezależność danych logicznych to możliwość zmiany schematu koncepcyjnego bez zmiany
- Widoki zewnętrzne
- Zewnętrzne API lub programy
Wszelkie wprowadzone zmiany zostaną uwzględnione na mapieping pomiędzy poziomem zewnętrznym i koncepcyjnym.
W porównaniu z niezależnością danych fizycznych, osiągnięcie logicznej niezależności danych jest wyzwaniem.
Przykłady zmian w obszarze Niezależność danych logicznych
Ze względu na niezależność logiczną żadna z poniższych zmian nie będzie miała wpływu na warstwę zewnętrzną.
- Dodawanie/modyfikacja/usuwanie nowego atrybutu, encji lub relacji jest możliwe bez przepisywania istniejących programów użytkowych
- Połączenie dwóch rekordów w jeden
- Podział istniejącego rekordu na dwa lub więcej rekordów
Różnica między niezależnością danych fizycznych i logicznych
| Niezależność danych logiki | Fizyczna niezależność danych |
|---|---|
| Niezależność danych logicznych dotyczy głównie struktury lub zmiany definicji danych. | Dotyczy głównie przechowywania danych. |
| Jest to trudne, gdyż odzyskiwanie danych opiera się głównie na logicznej strukturze danych. | Jest to łatwe do odzyskania. |
| W porównaniu do logicznej niezależności fizycznej trudno jest osiągnąć logiczną niezależność danych. | W porównaniu z niezależnością logiczną łatwo jest osiągnąć fizyczną niezależność danych. |
| W przypadku dodania lub usunięcia nowych pól z bazy danych należy dokonać zmian w programie Aplikacyjnym. | Zmiana na poziomie fizycznym zwykle nie wymaga zmian na poziomie programu aplikacyjnego. |
| Modyfikacja na poziomach logicznych jest istotna zawsze, gdy zmieniane są struktury logiczne bazy danych. | Modyfikacje dokonane na poziomie wewnętrznym mogą, ale nie muszą, być potrzebne w celu poprawy wydajności konstrukcji. |
| Zajmuje się schematem pojęciowym | Dotyczy schematu wewnętrznego |
| Przykład: Dodaj/Modyfikuj/Usuń nowy atrybut | Przykład: zmiana technik kompresji, algorytmów haszujących, urządzeń pamięci masowej itp. |
Znaczenie niezależności danych
- Pomaga poprawić jakość danych
- Utrzymanie systemu baz danych staje się niedrogie
- Egzekwowanie standardów i poprawa bezpieczeństwa baz danych
- Nie musisz zmieniać struktury danych w programach użytkowych
- Pozwól programistom skoncentrować się na ogólnej strukturze bazy danych, zamiast martwić się o wewnętrzną implementację
- Pozwala na poprawę stanu nieuszkodzonego i niepodzielnego
- Niespójność bazy danych została znacznie zmniejszona.
- Łatwe wprowadzanie modyfikacji na poziomie fizycznym jest potrzebne w celu poprawy wydajności systemu.
Podsumowanie
- Niezależność danych jest właściwością systemu DBMS, która pomaga w zmianie Schemat bazy danych na jednym poziomie systemu bazodanowego bez konieczności zmiany schematu na wyższym poziomie.
- Dwa poziomy niezależności danych to 1) fizyczny i 2) logiczny
- Fizyczna niezależność danych pomaga oddzielić poziomy koncepcyjne od poziomów wewnętrznych/fizycznych
- Niezależność danych logicznych to możliwość zmiany schematu koncepcyjnego bez zmiany
- W porównaniu z niezależnością danych fizycznych, osiągnięcie logicznej niezależności danych jest wyzwaniem
- Niezależność danych Pomaga poprawić jakość danych
