Вы здесь ▸ Технологии и инструменты ▸
Что такое “база данных”? Не все понимают, о чем здесь идет речь
Понятие “база данных” не относится к экзотическим. Если спросить любого человека, даже не специалиста, так или иначе связанного с информационными технологиями, что такое “база данных”, то ответ будет получен. Пусть неточный, расплывчатый, неполный – но получен. Хорошо ли это? С одной стороны да, хорошо. А вот с другой – нет. Здесь стоит до конца понимать не для всех очевидную значимость точного определения некоторых фундаментальных понятий. И не только относящихся к базам данных. В этом посте я попытался сделать короткий анализ понятия “база данных” и сформулировать собственные представления о том, почему это важно. См. также мнение ИИ.
Авторитетные определения понятия “база данных”
Нормативные документы
ГОСТ Р ИСО МЭК ТО 10032-2007 (ISO/IEC TR 10032:2003)
Совокупность данных, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных.
ГОСТ Р ИСО МЭК ТО 10032-2007: Эталонная модель управления данными
ISO/IEC TR 10032:2003: Information technology – Reference Model of Data Management
ISO/IEC 2382:2015
Совокупность данных, организованных в соответствии с концептуальной структурой, описывающей характеристики этих данных и взаимоотношения между ними, которая поддерживает одну или более областей применения.
ISO/IEC 2382:2015: Information technology – Vocabulary
Гражданский кодекс РФ
Представленная в объективной форме совокупность самостоятельных материалов (статей, расчётов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ).
Гражданский кодекс РФ, ст. 1260
Словари и энциклопедии
Oxford Dictionary of Computer Science
1. Normally and strictly, a body of information held within a computer system using the facilities of a *database management system. All accessing and updating of the information will be via the facilities provided by this software as will be the recording of information on the *log file, *database recovery, and multiaccess control. 2. Occasionally and colloquially, a collection of data on some subject however defined, accessed, and stored within a computer system. (This nontechnical use of the term can cause confusion to the nonspecialist as in: ‘We don’t use a database management system for our database, just straightforward VSAM files’).
1. Как правило, совокупность информации, хранящейся в компьютерной системе с использованием средств системы управления базами данных. Весь доступ к информации и ее обновление будут осуществляться с помощью средств, предоставляемых этим программным обеспечением, а также запись информации в файл журнала, восстановление базы данных и управление многоступенчатым доступом. 2. Иногда и в разговорной речи – сбор данных по какому-либо предмету, независимо от того, как они определены, доступны и хранятся в компьютерной системе. (Это нетехническое использование термина может вызвать путаницу у неспециалиста, например: “Мы не используем систему управления базами данных для нашей базы данных, только простые файлы VSAM’).
Oxford Dictionary of Computer Science
Wikipedia
An organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and analyze the data.
Организованная коллекция данных или тип хранилища данных, основанный на использовании системы управления базами данных (СУБД), программного обеспечения, которое взаимодействует с конечными пользователями, приложениями и собственно базой данных для получения и анализа данных.
https://en.wikipedia.org/wiki/Database
Терминологический словарь по основам информатики и вычислительной техники
Организованная совокупность данных во внешней памяти ЭВМ, предназначенная для длительного хранения и постоянного использования.
Ершов А.П., Шанский Н.М., Окунева А.П., Баско Н.В. ‘Терминологический словарь по основам информатики и вычислительной техники’ – Москва: Просвещение, 1991 – с.159
Монографии
Энциклопедия технологий баз данных
Организованная в соответствии с определёнными правилами и поддерживаемая в памяти компьютера совокупность данных, характеризующая актуальное состояние некоторой предметной области и используемая для удовлетворения информационных потребностей пользователей.
Когаловский М. Р. Энциклопедия технологий баз данных. – М.: Финансы и статистика, 2002. – 800 с. – ISBN 5-279-02276-4
Введение в системы баз данных
Некоторый набор перманентных (постоянно хранимых) данных, используемых прикладными программными системами какого-либо предприятия.
Дейт К. Дж. Введение в системы баз данных – Introduction to Database Systems. 8-е изд. – М.: Вильямс, 2005. – 1328 с. – ISBN 5-8459-0788-8 (рус.)
Базы данных. Проектирование, реализация и сопровождение. Теория и практика
Совместно используемый набор логически связанных данных (и описание этих данных), предназначенный для удовлетворения информационных потребностей организации.
Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика – Database Systems: A Practical Approach to Design, Implementation, and Management. 3-е изд. – М.: Вильямс, 2003. – 1436 с. – ISBN 0-201-70857-4.
Есть и другие определения базы данных. Например, в учебных курсах о базах данных часто используется это: “База данных – поименованная совокупность структурированных данных, относящихся к определенной предметной области”. См., например, здесь. Я в свой курс “Базы данных” тоже включил подобное.
Основные элементы определения
Основные элементы определения понятия “база данных” легко выявляются простым анализом используемых авторитетных определений. Вот что должно включать в себя достаточно полное определение:
- База данных – это данные.
- База данных имеет имя.
- Данные в базе данных относятся к предметной области, база данных является информационной моделью предметной области.
- Данные в базе данных хранятся на носителях информации в компьютерной системе.
- Данные в базе данных имеют определенную организацию или структуру.
- Для обработки данных в базе данных существуют допустимые операции.
- Структура данных и допустимые операции над ними образуют схему базы данных.
- Управление данным в базе данных и схемой базы данных осуществляется с помощью системы управления базами данных.
Наиболее полными с этой точки зрения определениями являются определения стандарта ISO/IEC 2382:2015, М.Р. Когаловского и монографии Коннолли и Бегга.
Основные элементы определения понятия “база данных” и их взаимосвязь изображены на диаграмме ниже.
![Компоненты определения понятия "база данных".](https://www.ivkconsulting.ru/wp-content/uploads/2024/02/db_definition.drawio_1.png)
Что в реальности?
Интересно посмотреть, как этому пониманию термина “база данных” соответствует образовательная практика ИТ. Анализ некоторых учебных курсов на популярных образовательных ресурсах удручает. Приведу несколько примеров в подтверждение этого.
Вот школа Skillfactory. Определение из глоссария: База данных – это имеющая название совокупность данных, которая отражает состояние объектов и их отношений в рассматриваемой предметной области. Ни слова о структуре данных, СУБД, компьютерной системе. Под это определение подходит и данный пост ;-).
Или статья Как работают базы данных в IT: разбор на примерах на Яндекс Практикум: База данных – это набор информации, которая хранится упорядоченно в электронном виде. Что же, выходит и любая папка с файлами – это тоже база данных? В определенном, очень обобщенном, смысле это так. Но очень слабо вписывается в идеи теории и практики баз данных.
Вот еще: База данных – это хранилище данных, у которых определенная внутренняя структура. Все просто – даже не данные, имеющие какую-то структуру, а просто хранилище. Это из курса “Основы реляционных баз данных” школы Хекслет.
А здесь результат – заметки “лучшего техноавтора 2021” на habr.com. Я даже не знаю, как комментировать эту профанацию: “база данных – то место для хранения данных“, “база данных – хранилище, куда приложение складывает свои данные“, “реляционная база данных — набор таблиц, хранящихся в одном пространстве“.
Кому и зачем нужна эта схоластика?
У некоторых возникнут вопросы: “И зачем это все? Кому нужна подобная схоластика?” Отвечаю.
- Понимание концепций. Знание точных определений помогает разработчику лучше понять концепции и принципы, лежащие в основе определяемых технологий. Вы никогда точно не сформулируете требования к функциональности и эффективности информационной системы, если вы не понимаете разницы между базой данных и СУБД, между базой данных и хранилищем данных, между данными и метаданными, между моделью данных и моделью предметной области.
- Проектирование и разработка. Зная точные определения, разработчик может правильно проектировать и разрабатывать информационную систему с использованием определяемых технологий. Например, понимание того, что такое база данных (см. выше), позволяет разработчику эффективно спроектировать архитектуру и компонентный состав информационной системы. Разработка концептуальной модели предметной области на основании представлений пользователей о данных, логической структуры и структуры хранения данных невозможно без понимания того, что вообще это все значит.
- Коммуникация. Знание точных определений помогает разработчику эффективно общаться с другими участниками команды, такими как архитекторы, аналитики данных и другие разработчики. Это помогает избежать путаницы и неоднозначности во время обсуждения концепций и требований к информационной системе.
- Отладка и устранение ошибок. Знание точных определений позволяет разработчику легче находить причины возникновения ошибок. Например, понимание концепции нормализации таблиц в реляционной базы данных помогает предотвратить дублирование данных и обеспечить логическую целостность информации.