Независимость данных в СУБД: физическая и логическая с примерами
⚡ Умное резюме
Независимость данных — это свойство СУБД, позволяющее изменять схему на одном уровне без необходимости внесения изменений на следующем, более высоком уровне. Она проявляется в двух формах: физической и логической, и обеспечивает разделение данных и программ, которые их используют.

Что такое независимость данных в СУБД?
Независимость данных определяется как свойство СУБД, позволяющее изменять схему базы данных на одном уровне без необходимости изменения схемы на следующем, более высоком уровне. Независимость данных помогает обеспечить разделение данных от всех программ, которые их используют.
Сохраненные данные можно использовать для вычислений и представления информации. Во многих системах независимость данных от внешних факторов является важной функцией для компонентов системы.
Типы независимости данных
In СУБД Существует два типа независимости данных:
- Независимость физических данных.
- Логическая независимость данных.
Оба типа основаны на многоуровневой структуре базы данных, поэтому полезно сначала рассмотреть эти уровни.
Уровни базы данных
Прежде чем мы перейдем к изучению независимости данных, важно освежить в памяти понятия уровней баз данных. База данных имеет три уровня, как показано на диаграмме ниже:
- Физический / Внутренний
- Концептуальный
- Внешний

Это те же самые слои, которые подробно описаны ниже. Схемы СУБДРассмотрим пример университетской базы данных. На разных уровнях реализация выглядит следующим образом:
| Тип схемы | Реализация |
|---|---|
| Внешняя схема |
Обзор 1°: Course_info(cid:int, cname:string) Обзор 2°: student_info(id:int, name:string) |
| Концептуальная схема |
Students(id: int, name: string, login: string, age: integer) Courses(id: int, cname: string, credits: integer) Enrolled(id: int, grade: string) |
| Физическая схема |
|
Физическая независимость данных
Физическая независимость данных помогает отделить концептуальный уровень от внутреннего или физического уровня. Она позволяет дать логическое описание базы данных без необходимости указывать физические структуры. По сравнению с логической независимостью, физическую независимость данных достичь проще.
Благодаря физической независимости вы можете изменять физические структуры хранения или устройства без какого-либо влияния на концептуальную схему. Любые внесенные изменения поглощаются картой.ping Между концептуальным и внутренним уровнями. Физическая независимость данных достигается за счет наличия внутреннего уровня базы данных и преобразования с концептуального уровня на внутренний.
Примеры изменений в условиях независимости физических данных
В силу физической независимости, ни одно из приведенных ниже изменений не повлияет на концептуальный уровень:
- Использование нового устройства хранения данных, такого как жесткий диск или магнитная лента.
- Изменение метода организации файлов в базе данных.
- Переключение на разные структуры данных.
- Изменение метода доступа.
- Модификация индексов.
- Изменения в методах компрессии или алгоритмы хеширования.
- Изменение расположения базы данных, например, с диска C на диск D.
Логическая независимость данных
Логическая независимость данных — это способность изменять концептуальную схему без изменения:
- Внешний вид.
- Внешние API или программы.
Любые внесенные изменения отражаются на карте.ping Между внешним и концептуальным уровнями. По сравнению с физической независимостью данных, достижение логической независимости данных представляет собой сложную задачу.
Примеры изменений в условиях логической независимости данных
В силу логической независимости, ни одно из приведенных ниже изменений не повлияет на внешний слой:
- Добавление, изменение или удаление нового атрибута, сущности или связи возможно без переписывания существующих прикладных программ.
- Объединение двух записей в одну.
- Разделение существующей записи на две или более записей.
Разница между физической и логической независимостью данных
| Логическая независимость данных | Физическая независимость данных |
|---|---|
| В основном это касается структуры или изменения определения данных. | В основном касается хранения данных. |
| Это сложно, поскольку извлечение данных в основном зависит от их логической структуры. | Легко получить. |
| По сравнению с физической независимостью, этого трудно достичь. | По сравнению с логической независимостью, этого легко достичь. |
| При добавлении или удалении новых полей необходимо внести изменения в прикладную программу. | Изменения на физическом уровне обычно не требуют изменений на уровне прикладной программы. |
| Изменения на логическом уровне имеют существенное значение всякий раз, когда изменяется логическая структура базы данных. | Для повышения производительности могут потребоваться или не потребоваться изменения на внутреннем уровне. |
| Занимается концептуальной схемой. | Обеспокоен внутренней схемой. |
| Пример: добавление, изменение или удаление нового атрибута. | Пример: изменение методов сжатия, алгоритмов хеширования, устройств хранения данных и т. д. |
Важность независимости данных
- Помогает улучшить качество данных.
- Делает обслуживание систем баз данных более доступным по цене.
- Обеспечивает соблюдение стандартов и повышает безопасность баз данных.
- В прикладных программах нет необходимости изменять структуры данных.
- Позволяет разработчикам сосредоточиться на общей структуре базы данных, а не на ее внутренней реализации.
- Значительно снижает несогласованность данных в базе данных.
- Позволяет вносить изменения на физическом уровне для повышения производительности системы.
