Реляционные СУБД: обзор базы данных, примеры

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

История разработки

Реляционная база данных СУБД была изобретена в начале 1970-х Э. Ф. Коддом, молодым ученым-программистом IBM. В специальной статье по РБД он предложил перейти от хранения данных в иерархических структурах к организации их в таблицах, имеющих строки и столбцы.

К 1960-м годам собралось огромное количество данных, хранящихся на новых мэйнфрейм-компьютерах мира, многие из которых были компьютерами IBM System 360. Это стало проблемой для дальнейшего развития цифровых технологий. Расчеты на мэйнфреймах были дорогими, часто стоили сотни долларов в минуту. Существенной частью этих затрат была сложность, связанная с управлением базой данных (БД).

В 1973 году лаборатория Сан-Хосе, ныне Almaden, начала разрабатывать программу под названием System R (реляционый) с целью применить теорию отношений с помощью так называемой промышленной реализации. Это качество стало определяющим, чтобы определить, какие СУБД называются реляционными. В результате реализации этого проекта было изобретена новая революционная система хранения, ставшая основой успеха IBM.

Дон Чемберлин и Рэй Бойс изобрели SQL для структурированных данных, который сегодня наиболее широко применяются. Патриция Селингер разработала оптимизатор на основе затрат, делающий работу с реляционными БД более рентабельной и эффективной. А Раймон Лори изобрел компилятор, сохраняющий процедуры запросов к БД для будущего использования.

В 1983 году IBM представила второе семейство реляционных СУБД DB2 с целью управления данными. Сегодня DB2 по-прежнему производят миллиарды транзакций каждый день, являясь самым успешным программным продуктом IBM. По словам Арвинда Кришны, генерального менеджера IBM Information Management, DB2 продолжает оставаться лидером в области инновационного ПО для реляционных баз данных (РБД).

Доктор Кодд, известный своим коллегам как Тед, был удостоен звания стипендиата IBM в 1976 году, а в 1981 году Ассоциация вычислительной техники вручила ему премию Тьюринга за вклад, внесенный в разработку РБД.

Принципы создания

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

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

Термины и типы

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

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

Альтернативные структуры

База данных NoSQL - это альтернатива РБД, которая особенно полезна для работы с большими наборами распределенных данных.

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

Примеры реляционных СУБД

SQLite - это популярная БД SQL с открытым исходным кодом. ПО может хранить всю БД в одном файле. Самым значительным преимуществом, которое она обеспечивает, является то, что все данные могут храниться локально без подключения к серверу. SQLite стала популярной для БД в мобильных телефонах, КПК, MP3-плеерах, телевизионных приставках и других электронных гаджетах.

MySQL - еще одна популярная реляционная модель СУБД SQL с открытым исходным кодом. Обычно она применяется в веб-приложениях и часто доступна с помощью PHP. Главные преимущества ее - простота использования, ценовая доступность, надежность. Некоторые из недостатков проявляются в том, что при масштабировании она страдает от низкой производительности, разработка с применением открытого исходного кода отстает с тех пор, как Oracle установил контроль над MySQL и не включает в себя некоторые расширенные функции.

PostgreSQL - это реляционная модель данных СУБД SQL с использованием открытого исходного кода, которая не контролируется какой-либо корпорацией. Обычно ее используют для разработки веб-приложений. PostgreSQL - простая, надежная и бюджетная программа с большим сообществом разработчиков. Имеет дополнительные функции в виде поддержки внешнего ключа, не требуя сложной настройки. Главный ее недостаток - она работает медленнее, чем иные БД, такие как MySQL. Она также менее популярна, чем MySQL, что затрудняет доступ хостов или поставщиков услуг, которые предлагают управляемые экземпляры PostgreSQL.

Система управления RDBMS

RDBMS - система управления реляционными базами данных, разработанная EF Codd от IBM и способная создавать, изменять и администрировать РБД. Многие существующих на сегодня БД являются продолжением этой вековой модели. Сохраненные данные обрабатываются с применением реляционных операторов в СУРБД.

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

Отличия RDBMS от обычной СУБД

СУБД хранит данные в виде файлов, тогда как RDBMS хранит данные в виде таблицы. СУБД позволяет нормализовать данные, а RDBMS поддерживает связь между данными, хранящимися в ее таблицах. Обычная СУБД не предоставляет ссылки. Она просто хранит данные своих файлов. Структурированный подход RDBMS поддерживает распределенную РБД в отличие от обычной системы управления базами данных. СУБД ориентирована на широкий спектр применений, ее особенности позволяют использовать ее во всем мире.

Особенности RDBMS:

  1. Общая реализация столбца, а также многопользовательский доступ включены в функции RDBMS.
  2. Потенциал этой модели реляционных СУБД был более чем оправдан современными возможностями применения.
  3. Лучшая безопасность обеспечивается созданием таблиц.
  4. Некоторые таблицы могут быть защищены системой.
  5. Пользователи могут устанавливать барьеры доступа к контенту. Это очень полезно в компаниях, где менеджер может решить, какие данные предоставляются сотрудникам и клиентам. Таким образом, можно настроить индивидуальный уровень защиты данных.
  6. Обеспечение будущих требований, поскольку новые данные могут быть легко добавлены к существующим таблицам и согласованы с ранее доступным содержимым. Это функция, которой нет ни в одной БД плоских файлов.

Структурная таблица

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

Существует нескольких типов таблиц:

  1. Базовая, которая создается и содержит постоянные данные.
  2. Временная, в которой хранятся промежуточные результаты запроса.

Элементы таблиц:

  1. Столбцы имеют упорядоченный набор: DEPTNO, DEPTNAME, MGR и ADMK DEPT. Все они должны быть однотипными данными.
  2. Строки - каждая содержит данные для одного отдела.
  3. Значения на пересечении столбца и строки. Например, PLANNING - это значение столбца DEPT NAME в строке для отдела B01.

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

Индекс используется для двух целей:

  1. Для повышения быстродействия получения значений данных.
  2. Для уникальности.

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

Основные ключи

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

  1. Он должен иметь значение, то есть не быть нулевым.
  2. Он должен иметь уникальный индекс.
  3. Можно иметь более одного уникального ключа в таблице.
  4. Иностранный ключ - внешний ключ, указанный в ограничении ссылочной целостности, чтобы его существование зависело от первичного или родительского ключа.

Модель сетевой базы данных

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

Преимущества сетевой БД:

  1. Концептуально проста и легка в разработке.
  2. Доступ к данным проще и гибче по отношению к иерархической модели и не позволяет члену существовать без родителя.
  3. Может обрабатывать сложные данные из-за своего отношения «многие ко многим». Это позволяет более естественное моделирование отношений между записями или объектами реляционной СУБД в отличие от иерархической.
  4. Благодаря своей гибкости легче перемещается и находит информацию в сетевой БД.
  5. Такая структура изолирует управляющие программы от сложных физических данных.

Объектно-ориентированная система

В объектно-ориентированных БД все данные являются объектами. Они могут быть связаны друг с другом отношением «является частью» для представления более крупных составных элементов.

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

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

Процесс проектирования

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

Алгоритм проектирования:

  1. Определяют цель БД для анализа требований.
  2. Собирают требования. Выполняют сбор данных, организацию таблиц и указывают первичные ключи.
  3. Выбирают один или несколько столбцов в качестве так называемого первичного ключа с целью идентификации строк.
  4. Создают отношения между таблицами. Сила реляционной БД заключается в отношениях между таблицами. Наиболее важным аспектом при разработке РБД является выявление взаимосвязей между ними.
  5. Необходимо выбрать необходимый тип данных для конкретного столбца. Обычно типы данных содержат: целые числа, строку (или текст), дату, время, двоичный код, коллекцию, например перечисление и набор.
  6. Уточняют дизайн, добавив больше столбцов.
  7. Создают новую таблицу для необязательных данных, используя отношение один к одному.
  8. Разбивают большой стол на два меньших стола.
  9. Применяют правила нормализации, чтобы проверить, является ли база данных структурно правильной и оптимальной.
  10. Индекс может быть определен для одного столбца, набора столбцов, называемого составным индексом, или части столбца, называемой частичным индексом. Можно создать более одного индекса в таблице. Например, если часто ищут клиента, используя либо customer Name либо phone Number, можно ускорить поиск, построив индекс по столбцу customer Name, а также phone Number.
  11. Большинство СУБД автоматически строит индекс по первичному ключу.

Создание БД Access

Когда используется реляционная СУБД Access, нельзя просто начать процесс ввода данных. Нужно применить дизайн РБД, поделив информационный блок на ряд таблиц. Они соединяются с использованием реляционных объединений, когда поле одной совпадает с полем другой таблицы.

Алгоритм создания БД:

  1. Предварительно определяют данные и составляют список требуемых полей (фрагментов информации) с использованием разных типов данных.
  2. Устраняют лишние поля. Не допускается хранить одинаковую информацию более чем в одном месте. В случае когда можно вычислить одно поле, используя другое, сохраняют одно.
  3. Организовывают поля. Формируют их соответственно описанию, в связи с чем каждая группа преобразовывается в таблицу.
  4. Добавляют таблицы кодов с сокращениями.
  5. Включают в БД таблицу названий и коды из двух букв.
  6. Выбирают первичный ключ.
  7. Связывают таблицы.

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

Комментарии