Эта статья предназначена в первую очередь для администраторов СУБД Oracle (и желающих ими стать), будет весьма полезна для разработчиков-прикладников, а также для пользователей этой сложной системы. Нас всех ждет увлекательное путешествие в мире Oracle, а я помогу не заблудиться в нем.
Начнем мы с самых азов, с самого простого и постепенно будем двигаться дальше и дальше. Предупреждаю сразу — это будет непросто. Но ведь Вы готовы разделить со мною трудности? Если так — то вперед!
Почему это будет трудно для Вас? Потому что надо не просто пробежать глазами по тексту, не просто получить удовольствие от процесса чтения, не просто удовлетвориться чтением заумного материала, а РАБОТАТЬ над текстом. Именно РАБОТАТЬ . Я часто буду описывать сложные взаимосвязи, если Вы их не изобразите на бумаге, не проштудируете каждый пункт, то останется пробел.
Пробелы будут накапливаться, пока не образуются огромные пустоты. В конце концов, Вы зададитесь вопросом: «Чему я научился?». Думаю, Вы уже догадались, каков будет ответ.
Оракулы Простыми Словами | ChainLink и Band Protocol Oracle
Поставьте перед собой цель — «понять ВСЕ», если все же что-то оказалось непонятным — скорее всего в этом виноват я. Пишите мне, и в следующих выпусках мы рассмотрим непонятные вопросы значительно подробнее.
Почему это будет трудно для меня? Дело в том, что я тоже буду учиться вместе с моими подписчиками. А так как на мне лежит ответственность за Ваше продвижение вперед, так как я должен буду отвечать на вопросы, собирать материал, то я просто обязан идти на шаг вперед. И, пока Вы будете изучать текущий выпуск, мне надо будет готовить следующий.
Как я и обещал, начнем мы с самого простого.
Краткая история ORACLE.
В 1977г. Ларри Эллисон, Боб Майнер и Эд Оуэтс организовали свое дело, назвав фирму Relational Software Incorporated (RSI). Именно эта компания положила начало системе управления реляционными базами данных (СУРБД) Oracle. Эллисон, Майнер и Оуэтс решили разработать СУРБД, используя язык C и SQL-интерфейс. И вскоре вышла первая версия (прототип).
Покупателям в 1979г. была представлена СУРБД Oracle версии 2, которая работала на Digital PDP-11, под управлением ОС RSX-11. Затем была портирована на систему DEC VAX.
1983г. стал вестником релиза версии 3, который привнес изменения в язык SQL, увеличил производительность системы и добавил некоторые другие улучшения. В отличие от предыдущих, третья версия была полностью написана на С. С этого момента RSI сменила свое название на Oracle Corporation.
Oracle версии 4 был представлен в 1984г. Эта версия поддерживала как ОС VAX, так и IBM VM. Эта версия предоставляла возможность многопользовательского стабильного чтения данных. Версия 5 появилась в 1985г. и стала поворотным пунктом на рынке СУБД, так как впервые представила технологию клиент-сервер, используя SQL*Net. Пятая версия стала также одной из первых MS DOS программ, перешагнувших через 640Kb-ый барьер.
В 1988г. Oracle представила версию 6. В этой версии появилась низкоуровневая блокировка и множество других изменений, увеличивших производительность и функциональность (включая генерацию последовательностей и отложенные записи). Oracle работает уже на множестве платформ и на разных операционных системах. В 1991г. вышел Сервер Параллельной Обработки СУРБД Oracle версии 6.1 для системы DEC VAX. Вскоре эта версия стала поддерживать и другие платформы.
Что такое VirtualBox и как ей пользоваться.
Релиз Oracle 7 вышел в 1992г., было произведено множество архитектурных изменений в области памяти и операций ввода-вывода. Oracle 7 — это уже полноценный СУРБД-продукт, к какому привыкли пользователи и используется много лет.
В 1997г. вышла версия 8, которая привнесла объектную модель, новые свойства и средства администрирования.
В 1999г. вышла версия 8i (Oracle 8.1.5) со встроенным языком Java.
В 2001г. вышла версия 9i. По словам разработчиков, было сделано более 400 изменений по сравнению с предыдущей версией. Характерные изменения — «интеллектуализация» автоматизированных систем и расширение возможностей для аналитики.
Как видите, продукту Oracle уже 25 лет, а нам предстоит наверстать все эти «упущенные» годы за значительно более короткий срок. Последняя версия продукта включает в себя 75 разных серверных продуктов, но большинство из них выходят за рамки нашего курса.
Основные понятия и условные сокращения
Прежде, чем мы начнем изучение Oracle, необходимо, чтобы всем были ясны термины, которые будут встречаться в тексте. В каждом выпуске рассылки будет раздел «Основные понятия», чтобы читатели не тратили свое время на поиск определений незнакомых слов.
БД (DB) — База Данных. Совокупность данных, специально организованных для упрощения их извлечения. База данных — это действительные данные.
СУБД (DBMS) — Система Управления Базами Данных. Программное обеспечение Oracle — это СУБД.
СУРБД (RDBMS) — Система Управления Реляционными Базами Данных. Внутренний доступ к данным осуществляется реляционным способом. Oracle — это СУРБД.
Буфер — это некоторый объем оперативной памяти, используемый для хранения данных. Буфер содержит данные, которые предполагается использовать, или которые использовались совсем недавно. В большинстве случаев, буфер — это копия блока данных, который хранятся на жестком диске.
Данные в буфере могут быть изменены и записаны на диск, буфер может быть создан и для временного хранения данных. Применительно к Oracle — буферы содержат те блоки данных, к которым недавно обращались. Совокупность буферов составляет кэш буферов данных (database buffer cache). Также в буфере сохраняются временные записи журнала операций, которые затем записываются на диск (буфер журнала операций).
Кэш — область памяти для быстрого доступа к данным. С точки зрения аппаратного обеспечения — это небольшой (применительно к оперативной памяти) объем памяти, который значительно быстрее основной памяти. Этот объем памяти используется для снижения времени, необходимого на частую загрузку данных или инструкций в центральный процессор (ЦП). ЦП сам по себе содержит встроенный кэш.
В Oracle кэшем считается набор буферов (block buffers — т.е. блоки данных в оперативной памяти) и разделяемый пул (shared pool), поскольку они служат для хранения данных и инструкций, способствующих быстрому доступу. Кэширование — очень полезный механизм, значительно увеличивающий скорость доступа к данным. Так как обычно не удается уместить все буферы в оперативной памяти, то применяют специальные алгоритмы (самый распространенный — это хранение наиболее часто используемых блоков).
Блок (Block) — самая маленькая единица хранения данных в СУБД Oracle. Содержит заголовочную информацию и сам блок (данные или PL/SQL-код). Размер блока конфигурируется от 2 до 16Kb.
Узкое место (Bottleneck) — компоненты, ограничивающие производительность или эффективность системы.
Словарь данных (Data Dictionary) — набор таблиц, используемых для поддержания информации о БД.
Контрольная точка (Checkpoint) — операция, приводящая к тому, что все измененные данные (блоки данных в памяти) записываются на диск. Это ключевой фактор в проблеме быстрого восстановления базы данных после сбоя.
Схема (Schema) — коллекция объектов БД.
SGA (System Global Area) — разделяемая область памяти, используемая для хранения данных и управляющей информации экземпляра Oracle. SGA размещается в памяти при запуске экземпляра Oracle, и освобождается при завершении работы. SGA составляют буферы данных, буфер журнала изменений и разделяемый пул (shared pool). Это одно из самых важных понятий и мы рассмотрим его более подробно позднее.
Конфигурации ORACLE
Существует много видов конфигураций. Давайте рассмотрим основные из них, проанализируем и определим характеристики.
OLTP (Online Transaction Processing) — оперативная обработка транзакций. Это самая распространенная конфигурация. OLTP-система состоит из пользователей, которые взаимодействуют с системой. Эти системы обычно используются для оперативного ввода первичной информации (заполнение контрактов, проверка номеров кредитных карт, асинхронные транзакции и др.).
Характерные черты OLTP-систем : обычно поддерживает большое число пользователей, работающих с СУРБД. Так как пользователи ждут возвращения данных на запросы, то большое значение имеет время ответа. OLTP-системы сопряжены с интенсивными процессами чтения-записи. В зависимости от приложения рейтинг чтения-записи может варьироваться.
DSS (Decision Support System) — системы поддержки принятия решений, используются в процессах принятия решений. Эти решения могут быть основаны на такой информации, как интенсивность продаж в определенных регионах, выборка покупателей определенного продукта, сортированный список электронных адресов и др.
Характерные черты DSS : долго выполняющиеся запросы в противовес большим объемам данных. Пользователи DSS-систем вынуждены ждать ответа на запрос минуты, часы, а иногда и несколько дней. Данные обычно собираются из разных источников, а затем происходит их обработка. DSS-система сопряжена с интенсивным процессом чтения (процессы записи
происходят гораздо реже).
Хранилище данных (Data Warehouse) — это крупномасштабная система, которая состоит как из OLTP, так и из DSS. Эти системы, как правило, работают с сотнями гигабайт данных и обслуживают огромное количество пользователей.
Характерные черты хранилища данных : имеет некоторые атрибуты DSS-систем, т.е. долго выполняющиеся запросы, а также компоненты для работы в реальном времени. Эти компоненты часто используются в качестве источников данных для DSS-запросов.
Информационная лавка (Data Mart) — это уменьшенная версия хранилища данных (ориентирована на решение узкоспециализированных задач), при этом сохраняет многие особенности Data Warehouse.
Характерные черты информационной лавки : обычно 100 гигабайт данных или менее. Так же, как и хранилище данных поддерживает большое количество пользователей и позволяет генерировать сложные решения.
Видео-сервер : позволяет поддерживать большое количество видеопотоков. Эти видеопотоки могут использоваться по заказу, в качестве развлечения и как обучающие курсы.
Характерные черты видео-сервера : должен иметь широкую полосу пропускания, чтобы поддерживать несколько видеопотоков. Также, должен быть способен справляться с большой нагрузкой ввода/вывода. При чтении с устройств, загружаются сразу большие блоки данных, которые мало фрагментированы.
Веб-сервер : предназначен для работы со статическими и динамическими веб-страницами. Эти страницы могут быть как очень простыми, так и комплексными, генерируемыми из базы данных. Веб-сервер Oracle, как правило, используется для коммерческих веб-приложений. Такие
приложения позволяют покупателям просматривать каталоги, которые содержат изображения товаров и даже видео иллюстрации. Покупатель может приобрести понравившийся товар.
Характерные черты веб-сервера Oracle : обычно поддерживает значительное число пользователей, содержит большое число данных, к которым обращаются часто, и, в то же время, данные, к которым обращаются не очень часто. Производительность сервера может улучшить большое количество оперативной памяти.
OLAP(Online Analytical Processing) — аналитическая обработка в реальном времени. Обычно используется вместе с многомерными данными. OLAP-пользователи — это финансовые аналитики или маркетинговый персонал, работающий с данными на глобальном уровне.
Характерные черты OLAP-систем : требуют большого объема дисковой памяти и мощных вычислительных систем. OLAP-система может поддерживать лишь небольшое количество пользователей. Однако число пользователей зависит от конкретной конфигурации.
Заключение
Итак, мы познакомились с историей Oracle Corporation, выучили несколько важных понятий и узнали важнейшие конфигурации. Можете поздравить себя — Вы начали погружение в чудесный мир Oracle.
Ссылки по теме
- Каталог программ Oracle
- Купить программу Oracle Database Enterprise Edition
- Купить Oracle Database Standard Edition One
- Задать вопрос ONLine по покупке программ в интернет магазине ITShop
05.2013 | ||
Источник: www.interface.ru История СУБД Oracle — первой коммерчески успешной реляционной СУБДДо середины 70-х годов информация в базах данных распределялась по старинному иерархическому, или «древовидному», принципу, который до сих пор используется в настольных операционных системах. Первые прототипы реляционных СУБД существовали уже в 70-е годы ХХ века. Однако мало кто верил в возможность добиться эффективной реализации таких систем. Тем не менее, к концу 1980-х годов реляционные системы заняли на мировом рынке СУБД доминирующее положение. В связи с этим многие компании стали позиционировать свои СУБД как «реляционные» в рекламных целях. Но далеко не всегда они имели для этого достаточно оснований. Поэтому автор реляционной модели данных Эдгар Кодд в 1985 году опубликовал свои знаменитые «12 правил Кодда», которым должна удовлетворять каждая РСУБД. Одним из первых прототипов реляционных баз данных была система System R. Это проект компании IBM, который появился в 1976 году. Он вдохновил будущих основателей Oracle на создание собственной реляционной СУБД , но сам так и не получил коммерческого успеха. Главным среди создателей Oracle был Ларри Эллисон, который вместе с Бобом Майнером и Эдом Оутсом до Oracle работал над проектом для ЦРУ. В ряде источников говорится, что ему было присвоено кодовое наименование «Oracle». В 1977 году молодой программист Ларри Эллисон бросил учебу в Йельском университете, чтобы начать собственный бизнес. В распоряжении Ларри Эллисона тогда было всего $1200. Он уговорил вложиться двух указанных выше друзей, но стартовый капитал от этого вырос всего на $500. 16 июня 1977 года Эдом Оутсом, Бобом Майнером и Ларри Эллисоном в Калифорнии (США) была основана компания Software Development Laboratories, вскоре переименованная в Relational Software Inc. Молодые программисты начали разработку системы управления базами данных (СУБД), построенной на принципах реляционной алгебры. Oracle 2Первая коммерческая версия СУБД Oracle получила название Oracle 2. Такой ход должен был дать заказчикам понять, что система надежна и даже прошла проверку временем. В конце 70-х главным конкурентным преимуществом СУБД Oracle была высокая скорость обработки огромных массивов информации, которую отметили все эксперты. В отличие от System R, для работы которой был необходим мощный суперкомпьютер — мейнфрейм, Oracle 2 справлялась с обработкой информации на более «миниатюрных» машинах. Эти и другие преимущества привели к тому, что в начале 80-х годов СУБД начала стремительно распространяться.
Ларри Эллисон — основатель Oracle Oracle стала исторически первой и одной из наиболее развитых реализаций архитектуры клиент/сервер. Переносимость и масштабируемость всегда имели высокий приоритет у разработчиков Oracle. Это сыграло ключевую роль в достижении успеха компании на рынке СУБД. Oracle 2 работала на мини-компьютере PDP-11 фирмы Digital Equipment в операционной среде RSX-11. Большая часть Oracle была написана на ассемблере PDP-11, а отдельные компоненты — на новом для того времени языке C. Уже в те дни система была портируемой и работала в других операционных средах PDP-11: IAS, RSTS и UNIX. Тогда же было принято решение о переносе Oracle в новую ОС VMS. Благодаря этому СУБД Oracle заняла обширную нишу корпоративных информационных систем на быстро растущем рынке VAX. Еще одной важной особенностью системы стала полная реализация возможностей нового языка запросов SQL — подзапросы, операция соединения и так далее. Благодаря этому многократно выросла производительность труда SQL-программистов.
Конечно, над СУБД нужно было еще долго работать. В Oracle 2, например, не поддерживались транзакции: если в процессе обновления базы данных происходил сбой, предыдущее состояние БД восстановить было практически невозможно. Поэтому пользователи были вынуждены часто делать резервные копии базы данных во избежание потерь информации. 29 октября 1982 года компания переименована в Oracle Systems. Oracle 3 и 4В 1983 году на рынок вышла Oracle 3. Она была полностью переписана на С. Это во многом помогло решить проблему переносимости Oracle на широкий спектр платформ – их тогда было не менее 20. Кроме того, было реализовано атомарное выполнение транзакций: операция либо выполнялась полностью, либо не выполнялась вообще, соответственно, транзакция либо завершалась успешно по всем изменениям базы данных, либо откатывала все сделанные ею изменения. С выходом Oracle 4 система была портирована на большие компьютеры c ОС VM и MVS, а также на персональный компьютер с 640 килобайтами оперативной памяти. Также была реализована модель контроля доступа к базе данных, которая гарантировала, что результат запроса не противоречит состоянию базы данных на начало запроса. Благодаря этому было устранено известное противоречие между процессами чтения и записи. Oracle 5В 1985 году Oracle выпустила на рынок версию 5.0, в которой была впервые введена архитектура клиент/сервер. Кроме того, компания выпустила SQL*Net – сетевой продукт, обеспечивающий прозрачное соединение между клиентом и базой данных или между двумя базами данных. В версии 5.1 были впервые реализованы распределенные запросы — это давало возможность обращаться к данным, физически размещенным в разных узлах. Несколько взаимодействующих серверов могли создать у пользователя многих физически разнесенных баз данных иллюзию единой логической базы данных. 12 марта 1986 года состоялось первичное публичное размещение акций Oracle Corporation. Высокие темпы роста позволили Oracle выйти на IPO с прибылью в $55 миллионов в 1986 году и всего за три года удесятерить прибыль до $584 миллиона. Oracle 6Разработчики версии 6 стремились создать инструмент построения крупномасштабных информационных систем, ориентированных на обработку транзакций в режиме реального времени. Были введены генераторы последовательностей и блокировка на уровне записи. В это же время Oracle стал первым многопользовательским сетевым сервером баз данных для OS/2, Xenix, Banyan Vines и Macintosh. В версии 6 были заложены принципиально новые возможности, в полном объеме реализованные позже:
КризисВ 1990 году компания столкнулась с серьезными проблемами, сообщив о значительных убытках. Эллисону пришлось уволить более 400 сотрудников для сокращения издержек. Он также распустил практически весь топ-менеджмент, в числе которого были близкие Ларри люди, в течение 10 лет вместе с ним приумножавшие славу и благосостояние Oracle. Ларри оставил в компании Боба Майнера, которого всегда считал одаренным программистом и просто хорошим добрым человеком. Столь жесткие методы Ларри объяснил так:
Я испытывал невероятное чувство признательности всем, кто работал со мной, всем, с кем вместе мы создавали Oracle. Но у меня не было выбора. Я должен был уволить их, понимая, что если этого не сделать, то вскоре просто не будет никакого Oracle. Я чувствовал, прежде всего, ответственность перед всей компанией, перед всем персоналом, всеми акционерами и клиентами. Кроме того, из-за совершенных ошибок в регистрации продаж и учёта ещё не прошедших сделок в бухгалтерских документах у Oracle возникли сложности с регуляторами на местном рынке. В результате Oracle оказалась близка к банкротству, а такие конкуренты, как Informix и Sybase, начали медленно увеличивать свою долю на рынке. На тот момент конкуренция между крупными игроками рынка достигла своего апогея — 90-ые могли запомниться многим, как период рекламной войны Oracle и Informix. Так, последняя выкупила билборд рядом с офисом Oracle и разместила на нем надпись «Осторожно, динозавры переходят дорогу», намекая на устаревшие технологии Oracle. Однако Ларри все-таки нашел решение: он сформировал новый управленческий штат, который был «натаскан» на громадные объемы производства и жесткую конкуренцию. В результате через определенное время Oracle снова вернулась на прежние высоты. А в 1992 году релиз Oracle 7 окончательно изменил ситуацию в лучшую сторону. Oracle 7Помимо общего повышения эффективности ввода/вывода, использования центрального процессора и работы с памятью, версия СУБД Oracle 7 обладала рядом инновационных архитектурных решений:
В версии 7 были полностью реализованы декларативные ограничения ссылочной целостности в соответствии со стандартами ANSI/ISO. В рамках этих ограничений (первичные и внешние ключи) пользователь мог специфицировать каскадное удаление связанных с некоторым первичным ключом записей. Процедуры PL/SQL могли описываться на уровне схемы базы данных (хранимые процедуры) и вызываться любым приложением, другими процедурами и триггерами. Другим важным нововведением стали триггеры базы данных.
Триггеры могут определяться на уровне операций (DELETE, INSERT, UPDATE) или на уровне отдельных строк (FOR-EACH-ROW-триггеры, которые, к тому же, могут работать со старыми и новыми значениями строк). С помощью триггеров можно реализовать сложные правила контроля целостности, прав доступа, вывода значений и прочее. Управление безопасностью и целостностью существенно упростилось благодаря введению ролей.
В 1994 году компания выпустила версию Oracle 7.1, в том числе и для IBM PC. Ранее Oracle не рассматривала эту платформу как серверную, а ограничивалась лишь созданием для нее клиентских частей своей СУБД. В Oracle 7.1 появилась опция параллельных запросов (parallel query option), а также возможность определения количества серверных процессов, необходимых для выполнения SQL-запроса, на основе результатов работы оптимизатора запросов. В данной версии была достигнута полная интеграция PL/SQL и SQL, введен встроенный пакет DBMS_SQL и асинхронная симметричная репликация данных вместе с асинхронным вызовом удаленных процедур.
Oracle 8 и 9В 1997 году вышла версия 8, в которой появились объектная модель, новые свойства и средства администрирования. Oracle 8.0 была более надежной по сравнению с предыдущей версией, обладала большей устойчивостью к высоким нагрузкам. Кроме того, в ней была реализована возможность партиционирования таблиц. В 1998 году компания анонсировала Oracle 8i Release 1 (8.1.5). Буква «i» означает, что версия обладает поддержкой Интернета. Начиная с Oracle 8.1.5 в последующих версиях появляется встроенная в СУБД виртуальная машина Java (JVM). Далее вышла версия Oracle 8i Release 2 (8.1.6), которая поддерживала XML, а также содержала определенные новшества, связанные с созданием хранилищ данных. В 2001 году появилась версия Oracle 9i Release 1 (9.0.1), в которой было сделано более 400 изменений по сравнению с предыдущей. Среди них – «интеллектуализация» автоматизированных систем и расширение возможностей для аналитики. В новой версии появились средства обработки XML-документов, технология Oracle RAC (Real Application Clusters) – как замена Oracle Parallel Server (OPS), механизм создания репликаций Oracle Streams, скроллируемый курсор для программ на Си и C++, встроенная в СУБД поддержка OLAP и Data Mining, переименование столбцов и ограничений целостности, поддержка Java 1.3.1 и Unicode 3.1. Лучшие финансовые годыСогласно данным Giga Information Group (The RDBMS Market: An Update, апрель 2001 года), общий объем рынка СУБД в 2000 году возрос по сравнению с 1999 годом на 20% и составил в денежном выражении $8,8 миллиарда. Основные факторы развития: поддержка электронной коммерции, поддержка хранилищ данных и консолидация серверов. Примерное разделение рынка СУБД для платформы Unix. Примерное разделение рынка СУБД для платформы Windows NT. В 2004 году появилась версия Oracle 10g Release 1 (10.1.0). Буква «g» в названии обозначает «Grid» («сеть») и символизирует поддержку Grid-вычислений. Этот год стал одним из самых успешных в истории компании – норма прибыли составила 38% (самый высокий показатель за все время существования корпорации), годовой оборот возрос до 7% ($10,2 миллиарда), доходы от продаж ПО поднялись на 12% ($8,1 миллиарда), чистая прибыль выросла на 16% ($2,7 миллиарда). Офис Oracle в России и СНГ вошел в тройку лучших представительств Oracle по темпам роста в регионе ЕМЕА (Европа, Ближний Восток и Африка), а также пятый год подряд — в пятерку лучших среди 145 представительств Oracle в мире. До наших днейВ 2005-м была анонсирована Oracle 10g Release 2 (10.2.0.1). А в 2007-м – Oracle 11g Release 1 (11.1.0.6). Состояние рынка СУБД на 2007 год В 2009 году компания выпустила Oracle 11g Release 2 (11.2.0.1). В версию была введена новая для Oracle возможность «горячего» (без остановки сервера) внесения изменений в метаданные и бизнес-логику на PL/SQL – это стало возможным благодаря механизму одновременной поддержки нескольких версий схемы и логики под названием editions. 2013 год — вышла версия 12c (12.1.0.1), основное новшество — поддержка подключаемых баз данных (pluggable database), обеспечивающая свойства мультиарендности и живой миграции баз данных, суффикс «c» в названии обозначает cloud (облако). 24 апреля 2015 года стало известно о планах Oracle перевести почти все свои продукты в облако. Таким образом, американская компания решила изменить свою бизнес-модель, чтобы соответствовать изменениям на рынке. В сентябре 2016 года Ларри Эллисон объявил о создании в Oracle дата-центров для работы с IaaS второго поколения и заявил, что лидерство компании Amazon на облачном рынке подходит к концу. Цель компании – предложить клиентам Oracle пакет услуг, где будут совмещены IaaS, PaaS и SaaS («ПО как услуга»). Источник: habr.com База данных Oracle DB: как она устроена и чем хорошаРазбираемся, как работает популярная СУБД от Oracle, какие у неё есть фишки и чем она отличается от других баз данных. Иллюстрация: Clay Banks / Unsplash / Annie для Skillbox Media Максим Сафронов Автор, редактор, IT-журналист. Рассказывает о новых технологиях, цифровых профессиях и полезных инструментах для разработчиков. Любит играть на электрогитаре и программировать на Swift. Чтобы сайтам и приложениям было удобно работать с данными, используют СУБД — системы управления базами данных. О том, как они работают, мы писали в предыдущей статье. А сегодня будем препарировать СУБД от Oracle — всё ещё самую популярную базу данных в мире для энтерпрайза по версии TOPDB. Вот о чём поговорим в этой статье:
Коротко: для чего нужны СУБДВсё, что вы видите в интернете, состоит из данных: текста, фотографий, мемов, постов, переписок и так далее. Чтобы облегчить себе жизнь, разработчики придумали хранить всю эту информацию в базах данных. Но сама по себе база данных мало что умеет — по сути, это текстовый файлик, лежащий на сервере. Представьте, что вы пришли за какой-то книгой в библиотеку. Если просто начать кричать куда-то в стеллажи: «Дай мне „Гарри Поттера“», ничего не случится — разве что выйдет высоченный «товарищ» Джона Уика и придётся срочно искать томик русских народных сказок. Но если обратиться к библиотекарю, эффект будет гораздо лучше: он посмотрит каталог и быстро принесёт нужные книги. Если переложить нашу аналогию на язык машин, то библиотекарь — это как раз система управления базами данных. И вот для чего она может пригодиться:
А теперь займёмся нашей Oracle DB. Что такое Oracle DatabaseOracle DB — это культовая СУБД, разработанная ещё в семидесятые программистами Ларри Эллисоном и Бобом Майнером (которые, к слову, до этого работали на ЦРУ). Культовой её считают потому, что это первая коммерчески успешная СУБД, работающая по реляционной модели. «Реляционная»означает, что все записи в базе данных упорядочены в виде таблиц. Раньше было не так: банки и крупные госучреждения хранили данные как попало — во множестве разных файликов без единой системы. Связи между файликами тоже не было — то есть если у какого-то клиента менялся, например, номер телефона, приходилось менять это вручную и сразу везде. А тут пришли очкастые программисты из Oracle и, вооружившись модной тогда реляционной моделью, разложили всё по полочкам. А точнее, по таблицам. Идея в том, что таблицы в реляционных БД связаны между собой специальными ключами — если добавить или удалить что-то в одной, все остальные таблицы об этом узнают и сами обновятся. Вот как выглядит реляционная база данных на примере университетской ведомости с оценками: Обратите внимание: в таблице «Оценки за экзамены» нет данных о студентах и предметах — только ссылки на их ID. Если Вася Иванов, к примеру, перейдёт в другую группу, нам нужно будет поправить это только в одной таблице — «Студенты». Во всех остальных таблицах данные обновятся автоматически. Со временем данные стали усложняться и простых записей в табличках стало не хватать. Поэтому Oracle добавила своей СУБД фишки объектной модели. Теперь появилась возможность хранить данные в виде объектов — сущностей, которые могут содержать много разных свойств и передавать их друг другу. Например, вот как будет выглядеть та же самая база данных с оценками, если записи в ней организовать по объектной модели: Формально Oracle DB правильнее называть объектно-реляционнойСУБД. То есть она позволяет реализовать сразу два подхода: хочешь простой сайт или блог — используй реляционные таблички; нужна сложная логика для какой-нибудь ERP-системы — можно заморочиться с объектной структурой. Как работает Oracle DatabaseВ основе работы Oracle DB лежит клиент-серверная модель. Суть у неё простая:
Фишка клиент-серверной модели в том, что вся работа с данными вынесена на сервер — пользователю не нужно держать у себя на компьютере копию базы данных. Достаточно скачать приложение-клиент и пулять себе запросы к серверу в любое время дня и ночи, чтобы получить нужные мемы с котами. На самом сервере тоже всё хитро: помимо данных, которые физически лежат на диске, есть ещё процессы, которые этими данными управляют. Набор всех процессов в СУБД Oracle DB называют экземпляром— по сути, это программная оболочка для файлов, которая существует только в оперативке сервера. Если выключить сервер из розетки, экземпляр удалится, а сами файлы с данными останутся. Допустим, вы зашли на популярный маркетплейс, чтобы купить кроссовки. Вот как будет выглядеть серверная логика, если под капотом маркетплейса Oracle DB:
Всеми этими процессами, начиная от получения запроса на сервере и заканчивая отправкой ответа, как раз и управляет Oracle. Структура базы данных OracleКак мы выяснили, СУБД Oracle состоит из двух сущностей: самой базы данных и её экземпляра. То есть из файлов на диске и процессов в оперативной памяти сервера. Вот чем они различаются: Управляющий файл.Здесь хранится самая важная информация о БД: имя, время создания, расположение других файлов и так далее. Журналы активности.Всё, что происходит с БД: запись, чтение, удаление и так далее. «Записать в журнал активности». «Создать резервную копию». «Восстановиться из резервной копии». «Поставить запрос в очередь». «Заархивировать данные в базе». «Провести диагностику данных». |