12+
Введение в базы данных

Бесплатный фрагмент - Введение в базы данных

Коротко о главном

Объем: 92 бумажных стр.

Формат: epub, fb2, pdfRead, mobi

Подробнее

Предисловие

Данная книга основана на материалах лекций, которые автор читал студентам-заочникам ряда коммерческих ВУЗов. Поскольку лекции были только обзорными, а для их представления выделялось мало учебных часов, то излагаемый материал приходилось максимально ужимать, чтобы оставить только самое главное, без уточнения многих (не всегда нужных) технических деталей. При этом многие пояснения приходилось делать в наиболее простой и понятной форме, что называется «на пальцах». Опыт показал, что такая форма подачи материала оказалась достаточно эффективной и весьма приветствовалась слушателями, которые за короткое время могли сформировать системное представление об изучаемом предмете и потом вполне успешно сдать зачёт/экзамен.

По такому же принципу построена и эта книга: из большого материала «отжаты» только те сведения, которые необходимы для общего понимания изучаемого предмета. Здесь нет детального описания существующих СУБД, пространных объяснений правил составления SQL-запросов, способов разделения данных и механизмов технической реализации запросов в распределённых базах данных, описания моделей построения объектно-ориентированных СУБД, особенностей алгоритмов функционирования NoSQL СУБД и других такого рода технических деталей, необходимых только специалистам довольно узкого профиля. Поэтому тем, кто ищет такую информацию лучше обратиться к другим книгам. Более того, некоторые вопросы рассматриваемой проблематики в книге намеренно подаются без особой научной строгости, присущей «солидным» толстым учебникам и монографиям. Есть в тексте и небольшие повторы, намеренно сделанные для того, чтобы не нужно было «отматывать» текст назад в поисках контекстно необходимых ранее приведённых сведений.

Изложение ориентировано на тех, кто пока не особо хорошо представляет себе, как устроены базы данных и хранилища данных, как функционируют системы управления базами данных, но хотел бы составить себе об этом сколько-либо цельное представление. Опыт показывает, что даже люди, неплохо осведомлённые о том «как нажимать кнопки» компьютера, чтобы решить некоторую вполне конкретную задачу, не имеют представления о том, как её «решает компьютер». Поэтому возникновение нестандартной ситуации ставит их тупик: почему компьютер это делает, а это делать отказывается.

Разумеется, можно успешно управлять машиной и совершенно не знать, как она устроена. Однако в этом случае любая её самая незначительная поломка на удалённой от «цивилизации» дороге вызовет большие проблемы. И потому лучше хотя бы в самых общих чертах представлять что случилось, а для этого нужно, хотя в самом общем виде, понимать её устройство. То же самое верно и в отношении информационных технологий: стоит хотя бы приблизительно понимать, как они функционируют хотя бы для того, чтобы не ждать от них невозможного.

Если Вы считаете, что что-то уже понимаете в базах данных и потому сомневаетесь в том, стоит ли Вам читать эту книгу, то уяснить необходимость в этом можете, пройдя тестирование на одном из сайтов автора https://shurem.ru в разделе «Поддержка книг -> Введение в базы данных». Тесты будут размещены в ближайшее время после опубликования книги. Там же будут размещаться дополнения к книге. Но для того, чтобы этим воспользоваться придётся зарегистрироваться на сайте, поскольку проходить тесты могут только авторизованные пользователи. Тесты очень простые: их автоматически генерирует программное обеспечение сайта по специализированным словарям терминов. Если даже прохождение этих элементарных тестов вызовет у Вас проблемы, то, наверное, книгу имеет смысл читать. В противном случае — решайте сами.

Введение

В современных информационных системах (ИС) хранятся и обрабатываются большие массивы разнородных данных, имеющих сложные системы взаимосвязей.

Например, фирма может иметь множество поставщиков. Сведения о каждом поставщике включают определенный набор реквизитов (название фирмы, юридический и фактический адрес, номера телефонов, факсов, адреса электронной почты, номер счета в банке, название банка, его адрес, ФИО руководителя, контактных лиц и т.д.). Каждый поставщик может поставлять определенный набор материальных ценностей (товаров, материалов, комплектующих). Соответственно, каждая материальная ценность может характеризоваться своим набором параметров (код, артикул, единица измерения, технические характеристики, характеристики качества и т.д.). Поставщики имеют свои условия поставок (цены, скидки, минимальная заказываемая партия и т.д.). С каждым поставщиком имеется своя история взаимоотношений (какие договоры были заключены, какие ценности, когда, в каких количествах, по каким ценам и на какие склады предприятия поставлялись, какие платежи поставщику производились, какие претензии по поставкам были выявлены и т.д.).

Одновременно с этим ведутся массивы сведений о наличии и движении товарно-материальных ценностей на складах (какие были остатки на начало периода, какие ценности и от кого поступали, какие сотрудники предприятия за какие ценности ответственны, по чьей заявке и куда ценности передавались и т.д.). Хранятся сведения о выпуске готовой продукции, затратах материалов на ее изготовление, о клиентах, которым продукция отпускалась, произведенной ими оплате и т. д.

Таким образом, массивы данных, ведущиеся в ИС, так или иначе взаимосвязаны. Для возможности их автоматизированной обработки с помощью компьютеров должны существовать определенные правила хранения данных с поддержкой существующих между ними связей. Поэтому все ведущиеся в целях решения тех или иных задач массивы данных ИС объединяются в базу данных.

Определения базы данных

Существует множество разных определений понятия «база данных».

База данных — представленная в объективной форме совокупность самостоятельных материалов (статей, расчётов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ). (Гражданский кодекс РФ, ст. 1260).

Могут использоваться и другие определения.

База данных (БД) — это совокупность некоторых данных, предназначенных для хранения и обработки с помощью ЭВМ.

База данных — совокупность взаимосвязанных массивов данных, организованных по определенным правилам.

Определения из международных стандартов:

База данных — совокупность данных, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных.

База данных — совокупность данных, организованных в соответствии с концептуальной структурой, описывающей характеристики этих данных и взаимоотношения между ними, причем такое собрание данных, которое поддерживает одну или более областей применения.

Определения из авторитетных монографий:

База данных — организованная в соответствии с определёнными правилами и поддерживаемая в памяти компьютера совокупность данных, характеризующая актуальное состояние некоторой предметной области и используемая для удовлетворения информационных потребностей пользователей.

База данных — некоторый набор перманентных (постоянно хранимых) данных, используемых прикладными программными системами какой-либо организации.

База данных — совместно используемый набор логически связанных данных (и описание этих данных), предназначенный для удовлетворения информационных потребностей пользователей.

Следует различать понятия «база данных» и «система управления базами данных». Пока ограничимся следующим определением.

Система управления базами данных (СУБД) — программный комплекс, обеспечивающий обслуживание баз данных.

В большинстве представленных выше определений понятия «база данных» явно или неявно присутствуют следующие отличительные признаки.

1) БД хранится и обрабатывается в компьютерной системе. Таким образом, любые внекомпьютерные хранилища информации (архивы, библиотеки, картотеки и т. п.) базами данных не являются.

2) Данные в БД логически структурированы (систематизированы) с целью обеспечения возможности их эффективного поиска и обработки в вычислительной системе.

Структурированность подразумевает явное выделение составных частей (элементов), связей между ними, а также типизацию элементов и связей, при которой с типом элемента (связи) соотносится определённая семантика и допустимые операции.

3) БД включает схему, или метаданные, описывающие логическую структуру БД в формальном виде (в соответствии с некоторой метамоделью).

В соответствии с ГОСТ Р ИСО МЭК ТО 10032—2007, «постоянные данные в среде базы данных включают в себя схему и базу данных. Схема включает в себя описания содержания, структуры и ограничений целостности, используемые для создания и поддержки базы данных. База данных включает в себя набор постоянных данных, определенных с помощью схемы.

Система управления данными использует определения данных в схеме для обеспечения доступа и управления доступом к данным в базе данных» (п. 4.3).

Таким образом, БД хранит не только сами данные, но и их формализованное описание, позволяющее СУБД эффективно извлекать и обрабатывать данные БД. Поэтому не принято называть базами данных файловые архивы, Интернет-порталы или электронные таблицы, несмотря на то, что они в некоторой степени обладают признаками БД.

С формальной точки зрения БД представляет собой информационную модель реального мира. Ее содержимое описывает объекты, свойства (характеристики, признаки) объектов и их взаимосвязи.

В рамках приведенного во введении примера, поставщики — это отдельные объекты. Каждый объект описывается определенным набором свойств. Свойствами объекта «поставщик» являются: название фирмы, юридический и фактический адрес, номера телефонов, факсов, адреса электронной почты, номер счета в банке, название банка, его адрес, ФИО руководителя, контактных лиц и т. д. Другие объекты имеют другие свойства.

Каждый объект БД представляется записью, а свойства являются атрибутами записи. Атрибут записи — это элементарное данное (строка или несколько строк текста, число, графическое изображение и т.д.). Атрибут характеризует какое-то одно качество объекта. Однотипные объекты характеризуются однотипными записями, имеющими одинаковые наборы атрибутов. У разных записей значения одного и того же атрибута могут быть разными или одинаковыми.

Обычно требуется, чтобы записи БД описывали уникальные объекты. Например, нет смысла учитывать отдельно каждую единицу какого-либо вида товара. Поэтому в БД следует хранить только записи, характеризующие виды товаров и их количественные характеристики (например, остаток на складе, количество единиц, отпущенных по определенному документу и т.д.). Если различные экземпляры одного и того же вида товаров требуют индивидуального учета, то создаются разные записи, отличающиеся разными наборами атрибутов. Например, в БД могут быть записи, каждая из которых характеризует одну и ту же модель автомобиля. Поэтому часть атрибутов (код модели автомобиля) у разных записей могут быть одинаковы. Но должны быть и такие атрибуты, которые должны отличаться. Например, номер двигателя, регистрационный номер автомобиля. Благодаря им можно точно узнать, какой конкретно экземпляр автомобиля характеризуется данной записью.

Таким образом, существует некоторый набор атрибутов, совокупность значений которых является уникальной для каждой записи. Эти атрибуты называются ключевыми, а набор их значений образует ключ записи. Ключ записи однозначно идентифицирует запись и является уникальным именем записи, по которому её всегда можно распознать.

Классификация баз данных

Варианты классификации

Классификация по модели данных

— Иерархические.

— Сетевые.

— Реляционные.

Выделяют также:

— Объектные или объектно-ориентированные.

— Объектно-реляционные.

— Функциональные.

Классификация по среде постоянного хранения

— БД во вторичной памяти (традиционные БД): средой постоянного хранения является периферийная энергонезависимая память — как правило, жёсткий диск. В оперативную память СУБД помещает лишь данные, необходимые для текущей обработки.

— БД в оперативной памяти: все данные на стадии исполнения находятся в оперативной памяти.

— БД в третичной памяти: средой постоянного хранения является отсоединяемое от компьютера внешнее устройство массового хранения (третичная память) (магнитные ленты, оптические диски, карты памяти и т.д). Во вторичной памяти сервера хранится лишь каталог данных третичной памяти, файловый кэш и данные для текущей обработки; загрузка же самих данных требует специальной процедуры.

Классификация по содержимому

— Географические БД.

— Исторические БД.

— Научные БД.

— Мультимедийные БД.

— Экономические БД.

Классификация по степени распределённости

— Централизованная: БД, полностью поддерживаемая на одном компьютере.

— Распределённая: БД, составные части которой размещаются в различных узлах компьютерной сети в соответствии с каким-либо критерием.

Распределённые БД разделяются на:

— неоднородные: фрагменты распределённой БД в разных узлах сети поддерживаются средствами более одной СУБД;

— однородные: фрагменты распределённой БД в разных узлах сети поддерживаются средствами одной и той же СУБД;

— фрагментированные: методом распределения данных является вертикальное или горизонтальное фрагментирование.

— тиражированные: методом распределения данных является тиражирование (репликация).

Другие классификации БД

— Пространственная: БД, в которой поддерживаются пространственные свойства сущностей предметной области. Такие БД широко используются в геоинформационных системах.

— Временная (темпоральная): БД, в которой поддерживается какой-либо аспект времени, не считая времени, определяемого пользователем.

— Пространственно-временная: БД, в которой одновременно поддерживается одно или более измерений в пространстве и времени.

— Циклическая: БД, у которой объём хранимых данных не меняется со временем, поскольку в процессе сохранения данных одни и те же записи используются (перезаписываются) циклически.

Иерархическая модель данных

Иерархическая модель данных — представление базы данных в виде древовидной (иерархической) структуры, состоящей из объектов (данных) различных уровней.

Между объектами существуют связи, каждый объект верхнего уровня может иметь ссылки на несколько объектов более низкого уровня. Объект верхнего уровня (предок) может иметь несколько подчинённых объектов более низкого уровня (потомков). Но каждый потомок имеет только одного предка. Объекты, имеющие общего предка, называются близнецами.

В некотором смысле иерархической базой данных является файловая система, состоящая из корневого каталога, в котором имеется иерархия подкаталогов и файлов.

Пример. Иерархическая база данных содержит информацию о покупателях и их заказах. Объект «покупатель» — предок. Объект «заказ» — потомок. Объект «покупатель» будет иметь указатели от каждого заказчика к заказам данного покупателя (объекты «заказ»). В этой модели запрос, направленный вниз по иерархии, прост (например: какие заказы принадлежат этому покупателю); однако запрос, направленный вверх по иерархии, более сложен (например, какой покупатель поместил этот заказ). Также, трудно представить не иерархические данные при использовании этой модели.

Если потомок может иметь более одного предка, то использовать иерархическую модель данных невозможно или очень сложно.

Сетевая модель данных

Сетевая модель данных — логическая модель данных, являющаяся расширением иерархического подхода. Каждая объект данных может иметь произвольное число связей с другими объектами данных.

Разница между иерархической моделью данных и сетевой состоит в том, что в иерархических структурах запись-потомок должна иметь в точности одного предка, а в сетевой структуре данных у потомка может быть любое число предков.

Сетевая БД состоит из набора экземпляров определённого типа записи и набора экземпляров определённого типа связей между этими записями.

Тип связи определяется для двух типов записи: предка и потомка. Экземпляр типа связи состоит из одного экземпляра типа записи предка и упорядоченного набора экземпляров типа записи потомка. Для данного типа связи L с типом записи предка P и типом записи потомка C должны выполняться следующие два условия:

— каждый экземпляр типа записи P является предком только в одном экземпляре типа связи L;

— каждый экземпляр типа записи C является потомком не более чем в одном экземпляре типа связи L.

Примерный набор операций манипулирования данными в сетевой модели:

— найти конкретную запись в наборе однотипных записей;

— перейти от предка к первому потомку по некоторой связи;

— перейти к следующему потомку по некоторой связи;

— перейти от потомка к предку по некоторой связи;

— создать новую запись;

— уничтожить запись;

— модифицировать запись;

— включить в связь;

— исключить из связи;

— переставить в другую связь и т. д.

Достоинством сетевой модели данных является возможность эффективной реализации по показателям затрат памяти и оперативности.

Недостатком сетевой модели данных являются высокая сложность и жёсткость схемы БД, построенной на ее основе.

Реляционная модель данных

В реляционной модели данных информация представляется в виде прямоугольных таблиц. Каждая таблица состоит из строк и столбцов и имеет имя, уникальное внутри базы данных.

Таблица отражает тип объекта реального мира — сущность, а каждая её строка один конкретный объект — экземпляр сущности. Каждый столбец таблицы имеет уникальное для своей таблицы имя. Столбцы расположены в таблице в соответствии с порядком следования их имен при ее создании. Таблица должна иметь хотя бы один столбец.

В отличие от столбцов, строки не имеют имён, порядок их следования в таблице не определён, а количество — логически не ограничено. Так как строки в таблице не упорядочены, то невозможно выбрать строку по её позиции. Хотя в файле у каждой строки имеется номер, он не характеризует строку. Его значение изменяется при удалении строк из таблицы. Логически среди строк не существует «первой» и «последней».

Реляционная модель была разработана в начале 70х годов Коддом. Простота и гибкость модели привлекли к ней внимание разработчиков. В 80-х годах она получила широкое распространение, а реляционные СУБД стали промышленным стандартом.

Модель опирается на систему понятий реляционной алгебры, важнейшие из которых: таблица, строка, столбец, отношение и первичный ключ, а все операции сводятся к манипуляциям с таблицами.

В каждой таблице реляционной модели должен быть столбец или совокупность столбцов, значения которых однозначно идентифицируют каждую строку таблицы. Этот столбец или их совокупность называется первичным ключом таблицы.

Если таблица удовлетворяет требованию уникальности первичного ключа, то она называется отношением. В реляционной модели все таблицы должны быть преобразованы в отношения. Отношения реляционной модели связаны между собой. Связи поддерживаются внешними ключами. Внешний ключ это столбец (совокупность столбцов), значение которого однозначно характеризует значения первичного ключа другого отношения.

Связи моделей данных

Модели данных БД в какой-то степени могут быть взаимозаменяемыми. Так, например, относительно несложно на основе реляционной модели смоделировать иерархическую и сетевую модели. Примеры моделирования иерархической модели на основе реляционной можно посмотреть на некоторых сайтах автора (shurem.ru, trickster-zone.ru, fa-kit.ru, samopiska.ru), где средствами реляционной СУБД MySQL и несложных PHP-скриптов реализованы модели представления данных с произвольным уровнем иерархии.

Известны также случаи, когда разработчикам удавалось трансформировать реляционную модель данных в иерархическую. При этом, по их утверждениям, объём базы данных существенно сокращался, а скорость доступа к данным значительно возрастала.

Понятие системы управления базами данных

Средства, обеспечивающие создание и обслуживание баз данных образуют банк данных.

Банк данных — комплекс информационных, технических, программных, языковых и организационных средств обеспечивающих сбор, хранение, поиск и обработку данных.

Банк данных — более общее понятие, чем БД. Он включает одну или несколько БД и набор средств, необходимых для выполнения использующих их информационных процедур.

Многие операции по вводу, накоплению и организации доступа к данным являются независимыми от предметной области и могут быть определённым образом стандартизованы. Поэтому ведение баз данных часто представляет собой отдельную самостоятельную задачу. Для поддержки её решения используются специализированные программные комплексы — системы управления базами данных.

Система управления базами данных (СУБД, DBMS — Data Base Management System) — это совокупность программных и языковых средств, обеспечивающих описание, создание, использование и обслуживание баз данных.

БД и СУБД являются центральными элементами банка данных.

Каждая СУБД поддерживает только одну модель данных. Поэтому говорят об иерархических, сетевых и реляционных СУБД. Наиболее распространенными на текущий момент являются реляционные СУБД.

Многие прикладные программы, предназначенные для решения задач организационно-экономического управления, используют те или иные СУБД и без них функционировать не могут.

Одна и та же СУБД в ИС предприятия может использоваться совместно с прикладными программами, решающими различные задачи. Например, одна и та же СУБД может применяться совместно с программами для ведения бухгалтерского учета, управления продажами и технико-экономической подготовки производства. В каждом случае СУБД управляет различными массивами данных. Это возможно за счет того, что основные процедуры управления данными определённым образом формализованы и потому не зависят от предметной области. Таким образом, СУБД позволяют прикладным программам быть относительно независимыми от способов хранения и организации доступа к данным. Прикладная программа может ничего «не знать» о том, как и где хранятся данные. Если ей необходимы те или иные данные, то она запрашивает их у СУБД. Благодаря использованию СУБД прикладная программа становится относительно независимой от используемых ею данных.

Многие популярные прикладные программы являются интероперабельными (независимыми от источников используемых ими данных) и могут работать совместно с различными СУБД. Например, система программ «1С: Предприятие» может использовать 5 различных СУБД. Одна из них — файловая СУБД — разработана фирмой «1С» и является частью технологической платформы системы «1С: Предприятие». Другие — это СУБД сторонних поставщиков: Microsoft SQL Server, PostgreSQL, IBM DB2, Oracle Database. Программный комплекс «Галактика» (комплексная система автоматизации управления предприятиями российской разработки) может использовать БД, управляемые СУБД bTrieve, MS SQL-server, Oracle. Соответствующие версии модулей этого программного комплекса имеют абсолютно идентичный набор функциональных возможностей и отличаются только используемыми СУБД. Западные тиражные системы автоматизации управления предприятиями могут функционировать совместно с ещё большим числом СУБД.

Для обеспечения независимости прикладных программ от используемых СУБД разработаны специальные технологии: ODBC (Open DataBase Connectivity — открытое взаимодействие с базами данных), DAO — Data Access Objects (объекты доступа к данным) и др.

Если какая-либо СУБД имеет ODBC-драйвер и он установлен в Windows, то любая прикладная программа может использовать данные, хранящиеся в базе данных, созданной этой СУБД даже если сама СУБД на компьютере не установлена. Однако без СУБД эта программа не сможет изменить структуру БД.

В тоже время, многие прикладные программы создаются в расчёте на использование только одной конкретной СУБД. Часто они функционируют эффективнее, чем интероперабельные программы, поскольку в полной мере задействуют возможности данной СУБД.

Разделяют промышленные и персональные (настольные) СУБД.

Промышленные СУБД предназначены для ведения больших БД. Они в состоянии одновременно обеспечить доступ к ним со стороны большого числа пользователей. Наиболее известными промышленными СУБД являются Oracle, MS SQL-server, Sybase, Informix, DB2, InterBase, Progress, db_Vista, MySQL.

Обычно промышленные СУБД устанавливаются в единственном экземпляре на одном из сетевых серверов (сервер — ЭВМ или программа, предоставляющие определенный сервис другим ЭВМ или программам) и одновременно обслуживают запросы, поступающие от множества прикладных программ, выполняемых на рабочих станциях сети. При этом большинство современных промышленных реляционных СУБД используют единый язык запросов SQL (см. далее). Поэтому промышленные СУБД часто называют SQL-серверами.

Персональные СУБД предназначены для эксплуатации на отдельных рабочих местах и обслуживают БД, используемые отдельными лицами или небольшими рабочими группами. Поэтому их часто называют настольными СУБД, то есть применяемыми на отдельной рабочей станции. Наиболее известными из них являются: Access, Libre Office Base, MS Visual FoxPro, dBase.

Разница между промышленными и настольными СУБД не является строго выраженной. Многие промышленные СУБД имеют «облегчённые» версии, которые используются как персональные СУБД (Oracle-Lite, InterBase и др.). С другой стороны, персональные СУБД иногда используются совместно с прикладными программами, ориентированными для работы с большими БД. Например, MySQL нередко используется как промышленная СУБД. Однако в последнее время тиражные прикладные программы строят, ориентируясь на их применение совместно с промышленными СУБД. Например, в России нет ни одного сколько-либо широко распространённого тиражного программного продукта, который был бы основан на применении СУБД Access, хотя сама по себе она используется достаточно часто. Однако Access применяется, в основном, для решения частных задач, решение которых не обеспечивается специализированными прикладными программами.

Существуют как коммерческие, так и свободно распространяемые (бесплатные) СУБД.

Значительную часть мирового рынка универсальных промышленных СУБД занимают IBM DB2, Microsoft SQL Server и Oracle. Наряду с ними достаточно широкое распространение имеют Adabas, Cache, Firebird, Informix, Ingress, Interbase, Progress, Sybase, Teradata, ЛИНТЕР и ряд других. Существуют также СУБД для нишевых решений и специализированные: объектно-ориентированные СУБД, ХML-СУБД, СУБД для обработки потоковых данных, СУБД для работы с текстами и т. д.

Наиболее популярными открытыми СУБД являются: MySQL, Ingres, PostgreSQL, Berkeley DB.

MySQL. Создана компанией MySQL AB и предназначена для малых и средних приложений. Входит в широко используемый в Web набор программного обеспечения LAMP (Linux, Apache, MySQL, PHP) и имеет версии для всех основных программно-аппаратных платформ. В феврале 2008 года MySQL AB была куплена компанией Sun Microsystems, которая впоследствии была поглощена корпорацией Oracle. Несмотря на то, что MySQL является одним из конкурентов коммерческих решений Oracle, компания продолжает поддержку и развитие её открытой бесплатной редакции.

Ingres. Разработка системы ведётся с начала 70-х годов в Беркли под руководством Майкла Стоунбрейкера. Ingres является многопоточной СУБД корпоративного уровня, имеющей высокую производительность, широкую масштабируемость, высокий уровень безопасности и развитые средства управления. На основе этой СУБД реализованы коммерческие СУБД: Microsoft SQL Server, Sybase ASE, NonStop SQL. С середины 80-х годов коммерческая версия Ingres распространялась компанией Relational Technology. Впоследствии Ingres перешла в собственность Computer Associates, которая с 2004 года выпускает данную СУБД под Open Source лицензией.

PostgreSQL. Открытая объектно-реляционная СУБД, также созданная в Беркли под руководством Майкла Стоунбрейкера. СУБД является общественным проектом, не управляется какой-либо компанией и разрабатывается группой независимых разработчиков. На основе PostgreSQL разработаны несколько коммерческих СУБД.

Бесплатный фрагмент закончился.

Купите книгу, чтобы продолжить чтение.