Read the book: «Введение в базы данных. Коротко о главном»

Font::

© Евгений Шуремов, 2019

ISBN 978-5-0050-4770-0

Создано в интеллектуальной издательской системе Ridero

Предисловие

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

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

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

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

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

– Сетевые.

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

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

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

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

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

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

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

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

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

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

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

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

– Научные БД.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

The free sample has ended.

Genres and tags

Age restriction:
12+
Release date on Litres:
02 October 2019
Volume:
66 p. 11 illustrations
ISBN:
9785005047700
Download format:

Similar books