Что такое реляционная база данных? [закрыто]

9

Я в основном системный администратор, и я не работаю напрямую с базами данных, кроме их установки, настройки учетных записей, предоставления привилегий и так далее. Я понял, что если Босс подошел ко мне и спросил: «Что такое реляционная база данных?» Я, вероятно, не смог бы дать удовлетворительный ответ ... Я мог бы что-то пробормотать о данных, хранящихся и упорядоченных по категориям, к которым можно обращаться с помощью специального языка программирования (например, SQL).

Так может ли кто-нибудь дать хороший «ответ боссу» о том, что такое реляционная база данных? А может, чем это отличается от простого хранения данных на файловом сервере? Бонусные баллы за умные, но доступные аналогии и объяснения таблиц, столбцов, записей и полей. Я бы определил «Ответ босса» как краткое (возможно, два) параграфа объяснения для нетехнических людей ... в основном, для вашего босса, в тех редких случаях они фактически спрашивают вас, чем вы занимаетесь весь день.


источник
2
Не уверен, что серверный сбой - подходящее место для этого вопроса, хотя это и полезно. Возможно DBA.SE или Programmers.SE .
Orbling
1
Почему ваш босс задал такой вопрос и, что еще более важно, какое отношение это имеет к системному администрированию?
Джон Гарденерс,
1
@John Gardeniers, это может принадлежать здесь, потому что многие «системные администраторы» носят шляпу «администрирования базы данных», что означает, что они хорошо понимают, как работает СУБД. Что касается того, почему боссы задают вопросы, которые они делают, кто знает, но знание того, как четко донести концепцию, является хорошей вещью ИМО.
Зоредаче
1
@Zoredache, на работе я ношу много шляп. Это не значит, что они все на тему для SF.
Джон Гарденерс,
Приведенные ниже ответы очень хороши, но имейте в виду, что вы можете иметь нереляционные базы данных (например, btrieve) и поддерживать отношения между нормализованными данными посредством правильной логики приложения.
Марк Хендерсон

Ответы:

16

Реляционная база данных не просто хранит данные : она хранит отношения между данными и позволяет легко (ну, проще) использовать эти отношения. В первые дни терминологии реляционных баз данных таблицы назывались «отношениями», поскольку в них хранились связанные биты данных (поля, теперь столбцы), а также отношения между этим отношением и другими отношениями.

Нормализация - это акт несложных отношений: «Сделай все как можно проще, но не проще». (Алан Перлис) Иногда «... но не проще» означает, что мы не храним вещи полностью нормализованные, потому что «проще» оказывается более сложным. (Вы можете получить состояние из почтового индекса, но зачем?)

geekosaur
источник
10

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

Пожалуйста, поймите, что не все базы данных, размещенные в СУБД, должным образом нормализованы. Компромиссы сделаны для производительности и других причин.

Смотрите статью о нормализации базы данных. http://en.wikipedia.org/wiki/Database_normalization

Zoredache
источник
4

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

Во-вторых, СУБД реализуют идею транзакции, свойства ACID

  • атомарность,
  • консистенция,
  • изоляция и
  • долговечность

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

mpez0
источник
3

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

Джоэл Коэль
источник
1

База реляционных данных - это инструмент для хранения и извлечения данных, хранящихся в реляционной модели.

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

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

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

Существуют и другие модели, помимо реляционной, для хранения данных, но ни одна другая (по моему опыту) не подходит так просто, гибко и предоставляет инструменты для разработки и управления вашими данными.

symcbean
источник
1

100% нетехнический ответ:

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

Предположим, база данных для зоомагазина. В магазине есть товары, есть клиенты, есть продажи. Если бы мы поместили это в Excel, вы могли бы иметь это для столбцов:

Имя клиента | Телефон клиента | Адрес клиента | Товар куплен | Цена | Свидание

Первый клиент, миссис Смит, покупает корм для кошек:

Имя клиента | Телефон клиента | Адрес клиента | Товар куплен | Цена | Свидание
Миссис смит | 123-555-1234 | 10 Main St | Корм для кошек | 15 долларов США | 2011-03-11

И тогда миссис Смит тоже хотела бы игрушку для кошки:

Имя клиента | Телефон клиента | Адрес клиента | Товар куплен | Цена | Свидание
Миссис смит | 123-555-1234 | 10 Main St | Корм для кошек | 15 долларов США | 2011-03-11
Миссис смит | 123-555-1234 | 10 Main St | Игрушка кота | $ 1 | 2011-03-11

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

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

MPelletier
источник
Кроме того, это очень важно отметить: pinaldave.com/blogfolder/dilbert5.jpg
MPelletier
1

Несколько хороших технических ответов здесь. Но мой босс не поймет никого из них!

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

И пример - «.... например, ваше имя указывает на ваш адрес, который, в свою очередь, может ссылаться на ваш город».

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

И завершите его заявлением о достоверности: «Реляционные базы данных существуют уже много лет, являются очень зрелыми технологиями. Наш конкретный продукт [название продукта здесь] '.

Джон Уайт
источник
0

Мой начальник - администратор базы данных, но с точки зрения мирян:

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

Это про компьютерный уровень некоторых людей и работы.

thing2k
источник