Базы данных (БД)

Предисловие

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

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

Значительная часть учебных материалов основана на MS Access (а, скорее, жестко привязана), который нельзя воспринимать, как реальную СУБД. Практика показала, что данная среда является достаточно эффективной для написания мало подготовленными пользователями интерфейса для обращения к серверным БД. Однако самостоятельное значение MS Access чрезвычайно преувеличено. Также данная среда малопригодна для обучения ввиду нестандартной и, зачастую, неверной реализации ряда возможностей. Это только мое мнение, но хочется настоятельно порекомендовать учесть его.

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

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

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

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

Любые ошибки, допущенные на первом этапе, разрушительно отражаются на всей работе. Можно ли найти причину этого и устранить её?

Естественно, что разработкой БД занимается профессиональный программист. Но он обычно ничего не понимает в конкретной предметной области, в чём ему помогает специалист. Последний, в свою очередь, ничего не понимает в базах данных. Стоп! Почему это? Ведь он учился в школе и вузе!

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

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

Этапы разработки

В реальной разработке БД и программы для ее обслуживания с определенной долей условности можно выделить следующие этапы.

  1. Изучение исходных данных.
  2. Написание технического задания (ТЗ).
  3. Создание структуры базы данных и составляющих ее таблиц.
  4. Разработка пользовательского интерфейса для работы с БД, разработка типовых отчетов.
  5. Написание Справки и документации.

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

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

Классификация СУБД

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

Различают реляционные (абсолютное большинство), иерархические (NoSQL, IMS), сетевые (IDMS) модели данных и соответствующие этим моделям СУБД. Также можно выделять объектно-ориентированные, специализированные (документ-ориентированные, химические...) и работающие в режиме реального времени. Помимо этого, возникают определенные основания для классификаций, связанные со сферой или методикой применения, используемыми технологиями или устройствами, а также другие подходы, зачастую высосанные из пальца. Объективно говоря, одна и та же СУБД может быть отнесена к нескольким классам в зависимости от подхода.

Исторически первыми стали реляционные СУБД (от англ. relation — отношение, связь). Они же абсолютно доминируют по распространенности и значимости.

Более подробная информация по отдельным представителям приведена здесь.

Реляционные СУБД

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

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

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

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

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

Таблицы

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

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

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

Схематичное представление таблицы реляционной базы данных

Поле 1Поле 2...Поле i 
    Запись 1
    ...
    Запись j

Литература, ресурсы

  1. Мейер М. Теория реляционных баз данных, М.: Мир, 1987, 608 с.
  2. Крёнке Д. Теория и практика построения баз данных. 8-е изд., СПб.: Питер, 2003, 800 с.
  3. Кнут Д.Э. Искусство программирования (The Art of Computer Programming) в 3-х томах, пер. с англ., 2005–2010.

Контрольные вопросы

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

Задания

  1. Имеется база данных об учениках. Ежегодно приходят новые. Как сделать так, чтобы не вводить некоторую информацию о них, если здесь ранее учились их старшие братья/сестры (помощь оператору). +То же самое, но на глобальном уровне.
  2. В федеральную базу данных предлагают занести ФИО гражданина, даты и места его рождения и смерти, пол, СНИЛС, ИНН, гражданство и сведения о семейном положении.
    Вопросы для д/з (до 15 баллов):
    1. описать структуру основной БД (без справочников!). Цена каждого лишнего символа = 200 МБ. Любое превышение должно быть обоснованно письменно (в сопроводительном письме).
    2. думать внимательно, что вынести в справочники. Цена каждой ошибки измеряется гигабайтами.
    3. к ссылочным полям дописать: размер суммы полей в байтах и предполагаемое число записей.
    4. посчитать ориентировочный объем из расчета 200 млн чел. с учетом обсужденной на занятии структуры, количеств и объема справочников.
    Оформить расчеты в виде таблицы в Excel (xlsx), озаглавив все колонки. Основные сведения для расчетов вынести на отдельный лист, они будут константами.
    Ориентировочное время выполнения — 1 час. В связи с этим срок выполнения — до начала следующего занятия. Списывать друг у друга нельзя!

Copyright © 1993–2020 Мацкявичюс Д.А. Все права защищены.
Никакая часть сайта не может быть воспроизведена никаким способом без письменного разрешения правообладателя и явной ссылки на данный ресурс.