Начать работу

Как создать свою собственную базу данных

27 Янв 2022

Введение

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

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

Зачем создавать собственную базу данных

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

1. Данных становится очень много

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

2. Становится трудно находить нужную информацию

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

Кроме потери времени, эти поиски постоянно мешают вам в решении важных задач.

3. Необходимо делиться информацией или работать с ней совместно

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

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

Этапы создания собственной базы данных

Весь процесс создания базы данных можно разбить на 4 этапа.

1. Анализ и выработка требований к базе данных

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

2. Выбор инструментов создания базы данных

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

3. Создание структуры базы данных

Выбрав инструмент, нужно создать в нём структуру базы. Это очень важный этап, так как неверная структура не позволит вам организовать правильный поиск и может затруднить масштабирование и доработку базы данных. Надо понимать, что по мере наполнения вашей базы данными вносить изменения в её структуру станет всё труднее и труднее.

4. Наполнение базы данных

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

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

Можно выделить 4 основных типа инструментов для создания собственной базы данных:

  • табличные редакторы;
  • файловое хранилище;
  • классические СУБД;
  • онлайн-базы данных.

Постараемся разобраться в сфере применения, в плюсах и минусах этих инструментов.

Табличные редакторы

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

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

Современный табличный редактор, такой как MS Excel, имеет удобный интерфейс, огромное количество функций, возможность создавать простые интерфейсы, специализированный язык программирования.

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

Также стоит отметить, что в последнее время всё более популярными становятся онлайн-табличные редакторы, такие как Google Sheets, Smartsheet и т. д. Их функциональность пока уступает классическим табличным редакторам, но по удобству и доступности они уже во многом их превосходят.

Ограничения

  • В табличных редакторах очень трудно создать жесткую структуру данных. В таблицах четыре основных структурных элемента — листы, строки, столбцы и ячейки. Когда вы начинаете создавать документ, то наделяете эти элементы определенным смыслом и тем самым создаете структуру данных, связи и ограничения. Но вы это создаете у себя в мозгу. Сама программа не знает, что ячейки одной строки связаны между собой и описывают один конкретный объект, что в некоторых ячейках находятся данные, а в других — названия столбцов.
    И такая вариативность, и гибкость хороша, когда у вас небольшой объем несложных по структуре данных и вы не работаете над данными совместно.
  • Табличные редакторы не предназначены для работы с большим количеством данных. Когда у вас несколько тысяч записей, проблем, как правило, не возникает, но с ростом количества записей с такой таблицей становится трудно работать. Кроме того, значительно повышается риск случайной порчи или удаления данных. Достаточно один раз неудачно отсортировать их, и вы можете полностью потерять целостность данных.
  • Трудно связывать данные. Если у вас есть несколько таблиц и данные в них логически связаны, то нужно их объединять и в самом редакторе. Это можно сделать, но потребуются определенные усилия и жесткий контроль за содержимым всех участвующих в связях ячейках и листах. Ибо достаточно сделать несколько неправильных изменений, и вы можете потерять важную информацию.
  • Совместная работа. Изначально таблицы предназначались в основном для однопользовательского применения. Сейчас современные онлайн-редакторы позволяют работать совместно. Но дав доступ на изменение данных, вы со временем можете обнаружить, что важные данные были искажены или удалены и это опять может быть связано с тем, что другие люди неправильно поняли их структуру и как данные связаны.

Файловое хранилище

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

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

При этом структура хранения информации создается с помощью иерархии папок и стандартизированных имен файлов, например: тип документа, номер документа, дата документа или дата съемки, место съемки.

Плюсом такого решения является простота реализации и понятность. Но и у файлового хранилища есть ряд ограничений.

Ограничения

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

Классические СУБД

Классические СУБД — это самое мощное и гибкое решения для создания баз данных.

С помощью них вы можете создать совершенно любую базу данных, любого масштаба и интерфейса. Практически все корпоративные системы сделаны на основе той или иной СУБД. Как правило, это Microsoft SQL Server или Oracle. В большинстве онлайн-платформ и веб-сайтов применяется СУБД MySQL.

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

Но, как вы понимаете, идеальных решений не бывает, и у такого подхода есть свои недостатки.

Ограничения

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

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

Время. На разработку интерфейса потребуется время. И как часто бывает, времени потребуется существенно больше, чем будет изначально запланировано.

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

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

Конструкторы онлайн-баз данных

Конструкторы онлайн-баз данных появились значительно недавно и стали возможны благодаря появлению современной и недорогой облачной инфраструктуры (amazon aws, google cloud, ms azure) и развитию технологий построения многофункциональных web-интерфейсов.

Современные конструкторы онлайн-баз данных стремятся соединить возможности корпоративных СУБД с простотой использования современных веб-приложений.

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

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

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

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

  • доступность;
  • простота настройки и администрирования;
  • быстрота создания баз данных;
  • небольшие затраты на сопровождение.

Но и тут, конечно, есть свои ограничения.

Ограничения

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

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

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

От чего зависит выбор решения

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

  • от объема создаваемой базы данных;
  • количества пользователей;
  • сложности структуры базы данных;
  • состава функций по управлению данными;
  • имеющегося бюджета;
  • требуемого срока реализации.

Но я бы дал следующие советы:

  1. Если вы собираетесь хранить структурированные данные небольшого объема и в основном для личного использования, то, я думаю, стоит выбрать табличный редактор.
  2. Если вам нужно хранить исключительно файлы и использовать их совместно с небольшим количеством людей, понимающих и соблюдающих структуру и правила наименования файлов и папок, то стоит выбрать файловое хранилище.
  3. Если вам нужна специализированная база данных и сделанный под вас интерфейс со множеством уникальных функций, тесно увязанная с вашими бизнес-процессами и другими используемыми системами, то вам необходима классическая база данных и заказная разработка интерфейса.
  4. Если вам нужна, с одной стороны, понятная и простая многопользовательская база данных, а с другой, — обладающая основными функциями и возможностями классических баз данных, то стоит посмотреть в сторону конструкторов онлайн-баз данных.
    Также конструктор подойдёт в том случае, если вы не определились с выбором инструмента создания базы данных. Начав её делать в конструкторе, вы легко сможете впоследствии мигрировать на другое решение.

На что также стоит обратить внимание при создании собственной базы данных

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

Неправильные требования

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

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

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

Может так оказаться, что те же недорогие конструкторы баз данных готовы покрыть 80-90% ваших требований и оставшиеся 10-20% не стоят тех денег и усилий, которые потребуются для их реализации. Также не стоить забывать, что сейчас так всё быстро меняется, что к тому времени, как вы реализуете 100% нужного вам функционала, сама задача может уже коренным образом измениться.

Плохое юзабилити

При разработке требований к базе данных и создании интерфейса часто допускается одна и таже ошибка — игнорирование вопросов, связанных с юзабилити интерфейса.

А именно от правильного юзабилити во многом зависит эффективность работы с создаваемой базой данных.

Плохо проработанный интерфейс приводит к дополнительным потерям времени на обучение сотрудников и работу с самой базой данных.

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

И тут могут возникнуть проблемы с удобством интерфейса и производительностью ввода данных.

Чем меньше времени вы будете тратить на ввод данных, поиск, изменение, тем больше эффекта вы получите от использования своей базы данных.

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

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

Заключение

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

Начни сейчас

Введите в поле свой e-mail, и вам на почту придёт приглашение
Я принимаю соглашение сайта об обработке персональных данных.