Я в основном системный администратор и не работаю напрямую с базами данных, кроме их установки, настройки учетных записей, предоставления привилегий и т. Д. Я понял, что если бы Босс подошел ко мне и спросил: «Что такое реляционная база данных?» Я, вероятно, не смог бы дать удовлетворительный ответ ... Я бы, может быть, пробормотал что-нибудь о хранимых данных и упорядоченных по категориям, которые вы можете запросить с помощью специального языка программирования (например, SQL).
Так может ли кто-нибудь дать хороший ответ начальнику о том, что такое реляционная база данных? И, может быть, чем это отличается от простого хранения данных на файловом сервере? Бонусные баллы за умные, но доступные аналогии и объяснение таблиц, столбцов, записей и полей. Я бы определил «Ответ босса» как быстрое объяснение из одного (может быть, двух) абзацев для нетехнических людей ... в основном вашего босса, в тех редких случаях они действительно спрашивают вас, чем вы занимаетесь весь день.
Реляционная база данных не просто хранит данные: он хранит отношения между данными и упрощает (ну, проще) использовать эти отношения. На заре терминологии реляционных баз данных таблицы назывались «отношениями», потому что в них хранились связанные биты данных (поля, теперь столбцы), а также отношения между этим отношением и другими отношениями.
Нормализация - это акт не усложняющих отношений: «Сделайте все как можно проще, но не проще». (Алан Перлис) Иногда «... но не проще» означает, что мы не храним вещи полностью нормализованными, потому что «проще» в конечном итоге оказывается более сложным. (Вы можете получить состояние по почтовому индексу, но зачем беспокоиться?)
Реляционная база данных - это метод структурирования данных, при котором один факт хранится в одном месте. Таким образом, если Джон и Джейн Доу работают в одной компании, вы можете хранить только уникальные для компании детали в одном месте (таблица). Вы бы хранили данные, уникальные для Джона и Джейн, в другом месте, и вы бы сохранили отношения Джона и Джейн к компании в третьем месте. В идеале это должно означать, что мне нужно изменить только одно поле / строку, если изменился номер факса компании.
Пожалуйста, поймите, что не все базы данных, размещенные в РСУБД, нормализованы должным образом. Компромиссы сделаны из соображений производительности и по другим причинам.
См. Статью о нормализации базы данных. http://en.wikipedia.org/wiki/Database_normalization
Есть две основные концепции, позволяющие различать системы реляционных баз данных. Во-первых, отношения между элементами сохраняются. Это табличная модель данных, объясненная с помощью аналогии с электронной таблицей. РСУБД становятся более сложными, чем электронные таблицы, потому что проще и обычнее иметь много ссылок между таблицами или рабочими листами (в зависимости от того, какую сторону аналогии вы используете).
Во-вторых, СУБД реализуют идею транзакции, КИСЛОТА свойства
Реляционная модель позволяет включать, запрашивать, сортировать, группировать и т. Д. Множество сложных отношений. Транзакционная модель гарантирует, что транзакции происходят полностью или не происходят вообще, поддерживая согласованность и точность модели отношений. Ну, по крайней мере, позволяя правильному программированию так сохранить.
Реляционная база данных похожа на книгу Excel со множеством рабочих листов и окружающей программной средой для оптимизации производительности, такой как индексирование и кэширование, обеспечения безопасного доступа для многих пользователей одновременно и позволяет вам эффективно просматривать данные, которые могут быть распространены. на многих различных листах.
База реляционных данных - это инструмент для хранения и извлечения данных, хранящихся в реляционной модели.
Реляционная модель данных строится в соответствии с небольшим числом (в зависимости от книги, которую вы читаете, 4 или 5 правил), которые обеспечивают согласованный доступ к данным, что позволяет доказать правильность дизайна и позволяет система управления базами данных (СУБД), которая выполняет большую часть работы по быстрому извлечению данных. Он также предоставляет инструменты для формального документирования структуры данных - реализация базы данных внутренне реализует большую часть документации.
Большинство людей не понимают, почему так важна правильность - это означает, что меньше вероятность появления ошибок при разработке решения - и что (например, 2 разных программиста, работающих в одинаковых областях, с меньшей вероятностью будут дублировать усилия).
Как отдельная сущность от внешнего интерфейса приложения и с согласованным представлением структуры данных, использование системы управления базами данных позволяет использовать различные инструменты во внешнем интерфейсе для разных целей, так что вы можете использовать гораздо больше готовых компонентов при построении решения.
Существуют и другие модели хранения данных, кроме реляционной, но ни одна из них (по моему опыту) не может сравниться ни с чем по простоте, гибкости и доступности инструментов для разработки и управления данными.
100% нетехнический ответ:
Реляционная база данных - это место для хранения данных таким образом, чтобы минимизировать избыточность и позволить вам легко выполнять поиск.
Предположим, база данных для зоомагазина. В магазине есть товары, есть покупатели и есть распродажи. Если бы мы поместили это в Excel, у вас могло бы быть это для столбцов:
Customer Name | Customer phone number | Customer address | Item bought | Price | Date
Первый клиент, миссис Смит, покупает корм для кошек:
Customer Name | Customer phone number | Customer address | Item bought | Price | Date Mrs Smith | 123-555-1234 | 10 Main St | Cat food | $15 | 2011-03-11
А еще миссис Смит хочет игрушку для кошек:
Customer Name | Customer phone number | Customer address | Item bought | Price | Date Mrs Smith | 123-555-1234 | 10 Main St | Cat food | $15 | 2011-03-11 Mrs Smith | 123-555-1234 | 10 Main St | Cat toy | $1 | 2011-03-11
И она в основном возвращается каждые 2 недели или около того и покупает те же вещи. С помощью этого метода вы дублируете много информации, что может привести к ошибкам. Вы также не можете хранить в нем инвентарь, это должен быть целый другой лист Excel, и его нужно будет обновлять при каждой продаже.
В базе данных у нас может быть три отдельных объекта: клиенты (с их информацией), предметы (с описанием и ценой) и продажа (связь между покупателями и предметами, с датой и количеством).
Здесь есть несколько хороших технических ответов. Но мой босс никого из них не понял!
Я бы начал с очень простого объяснения: «Если вы сохраните данные в файл, он появится в виде одного длинного списка. Реляционная база данных сохраняет данные больше как карту или график, поэтому разные части карты связаны друг с другом ... »
И пример - «.... например, ваше имя указывает на ваш адрес, который, в свою очередь, может указывать на ваш город».
За этим следуют бизнес-преимущества, о которых он заботится: «Преимущество этого в том, что намного дешевле писать код для извлечения сложных данных, например. «Найди мне всех людей, живущих в Сиэтле по фамилии Смит». Кроме того, реляционные базы данных очень надежны и быстры ».
И завершите это заявлением о достоверности: «Реляционные базы данных существуют уже много лет, это очень зрелая технология. Наш конкретный продукт - [здесь название продукта] ».
Мой босс - администратор баз данных, но с точки зрения непрофессионала:
Подумайте о двух таблицах в Excel и о функции ПРОСМОТР для ссылки на элементы одной таблицы в другую. Теперь увеличьте это как минимум в 10 раз.
Это примерно компьютерный уровень некоторых людей и работы.