Часто в Интернете можно читать рассуждения на тему баз данных и их сравнительных достоинствах и недостатках. Однако очень многим читателям этих текстов они мало что говорят, потому что они изначально имеют очень смутное представление о том, что такое БД, как они работают и что умеют. Попробуем разобраться в этой теме на примере одной из наиболее распространённых СУБД – Oracle Database.
Oracle DB: как она устроена
В этом конкретном случае мы имеем дело с объектно-реляционной СУБД. Иными словами, она использует сразу две модели хранения информации: реляционную и объектно-ориентированную.
Первая представляет собой таблицу, в которой отдельные записи находятся между собой в различных отношениях. Вторая видит данные в качестве объекта с набором атрибутов и методов (способов, которыми они взаимодействуют с другими объектами).
В том, что касается доступа, Oracle функционирует по клиент-серверному принципу. Это значит, что СУБД по большей части располагается на сервере, вместе с собственно базой данных. В распоряжении пользователя оказывается только клиент, через который он взаимодействует с БД, пересылая и получая данные с сервера. Например, в Интернете роль клиента играет обычный браузер – он преобразует действия посетителей на сайте в запросы.
Главное достоинство такого подхода – повышенная надёжность и безопасность, а также удобство для клиентов. Он позволяет существенно снизить загрузку клиентских рабочих станций (не нужно хранить на компьютере копию БД), а также высвободить сетевые мощности. Единственный недостаток здесь – и даже не столько недостаток, сколько особенность – это то, что для нормальной работы клиент-серверных СУБД нужно очень мощное серверное «железо».
Как функционирует Oracle Database
В дополнение к информации, которая физически располагается на диске, существуют ещё и процессы, управляющие этой информацией. Набор всех процессов называется инстансом или экземпляром. Это понятие логическое, а не физическое – экземпляр существует только в оперативной памяти сервера. Если сервер выключить, то экземпляр пропадёт, но сами данные останутся.
Помимо собственно файлов с данными в состав БД входит ещё ряд сущностей:
- Управляющий файл – содержит основную информацию о базе данных (имя, дату создания и т.д.);
- Журналы активности – сюда заносятся сведения о всех происходящих с БД событиях;
- Резервные копии – позволяют восстановиться после непредвиденных ситуаций.
Oracle во многом обязана своей теперешней популярности именно тем, что опирается в своей работе на экземпляры. Это даёт ей почти неограниченные возможности в плане масштабирования, при этом обеспечивая крайне высокую скорость. На практике это работает так – чтобы повысить производительность сайта, для него покупаются дополнительные серверы. При этом для достижения нужного эффекта необходимо, чтобы серверные мощности работали координированно. А одной из основных черт Oracle DB и является возможность экземплярам на разных компьютерах бесшовно работать с одной и той же БД. Если, например, с одним из серверов произойдёт неполадка, его работу тут же подхватывает и продолжает другой – при этом пользователь ничего не заметит.
Таким образом, удаётся достичь сразу трёх целей: повысить производительность, обезопасить себя от неполадок, снизить стоимость обслуживания (если сервер требует ремонта, его можно спокойно отключить, не опасаясь, что это повлияет на работу всей системы).
Именно благодаря этому Oracle столь популярна в областях, где наиболее внимание уделяется стабильности при высоких нагрузках.