Какую отдачу от инвестиций можно получить при изучении теории множеств относительно проектирования баз данных и запросов? - PullRequest
4 голосов
/ 19 августа 2009

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

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

Мой вопрос таков: какую отдачу от инвестиций я бы увидел при изучении теории множеств? Могу ли я увидеть возврат инвестиций? Было бы быстрее изучить базу данных, просто написав больше запросов, или я должен уделить время теории множеств? Я не хочу упасть в кроличью нору. Я хочу хорошо разбираться с базой данных, но мне нужно добраться туда как можно быстрее.

Ответы [ 10 ]

6 голосов
/ 19 августа 2009

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

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

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

4 голосов
/ 12 октября 2009

Книга , База данных в глубине - Реляционная теория для практиков, написанная К.Дж. Дейтом, может быть вам подходит. Он в основном основан на теории, но рассматривает его в контексте баз данных.

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

2 голосов
/ 20 августа 2009

"Было бы быстрее изучить базу данных, просто написав больше запросов, или я должен уделить время теории множеств? Я не хочу провалиться в кроличью нору. Я хочу хорошо разбираться в базе данных, но мне нужно доберись как можно быстрее. "

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

Этого достаточно, чтобы вы продолжали учиться, по крайней мере, 10 лет, и мне кажется, что это действительно разумная оценка "как можно быстрее", чтобы получить ДЕЙСТВИТЕЛЬНО хорошо с базами данных.

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

1 голос
/ 20 августа 2009

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

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

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

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

1 голос
/ 19 августа 2009

Если под «теорией множеств» вы подразумеваете понимание пересечения, объединения, разницы и т. Д., То, безусловно, это поможет понять эти основы. Это не займет у вас много времени, и оно того стоит.

Не отвлекайтесь на аксиомы или бесконечности и т. Д.

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

0 голосов
/ 20 августа 2009

Я согласен с предыдущими ответами, но я хотел бы добавить некоторые мысли по этому поводу. Я имел в виду тот же вопрос некоторое время назад. Во-первых, изучение математики всегда хорошо, и наши навыки решения проблем остаются острыми. Во-вторых, уровень рентабельности инвестиций зависит от сложности ваших ежедневных проблем, посмотрите на NoCoug SQL Challenge и книгу Джо Селко SQL-загадки и ответы . Для простого проектирования базы данных, вероятно, теория множеств не сильно поможет. Наконец, я нахожу более полезным изучение методов математического доказательства (где теория множеств является большой частью этого), потому что они могут помочь вам доказать некоторые преобразования утверждений. Для справки по математическому доказательству вы можете обратиться к книге Как доказать это .

0 голосов
/ 19 августа 2009

Я думаю, что ответ зависит от вашего возраста. Если вы моложе, скажем, 22, и ваша основная задача - учиться, а не работать, тогда он непременно изучает теорию множеств, абстрактную алгебру и т. Д. Эта умственная гимнастика может помочь подготовить вас к будущим задачам программирования.

(Если вы изучали различные алгебраические структуры как часть вашей математической программы, то вы знаете, что, например, квадратные матрицы образуют алгебру с 3 операциями (сложение, умножение и умножение на скаляр). Затем вы встречаете реляционные базы данных и видите алгебра с 5 операциями над таблицами - выбор, проекция и три типа объединений, ничего страшного. Современная компьютерная криптография основана на теории колец, в частности, колец целых чисел и многочленов. И т. д.)

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

0 голосов
/ 19 августа 2009

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

Я бы предложил просто потратить немного времени на эксперименты с запросами и их результатами, а затем изучить основы индексов и различные типы соединений. Также может быть полезно получить книгу о конкретной СУБД, которую вы используете.

0 голосов
/ 19 августа 2009

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

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

0 голосов
/ 19 августа 2009

ИМХО, изучение теории множеств определенно улучшило бы вашу концептуальную модель того, что происходит с объектами таблиц, но для того, чтобы по-настоящему выздороветь, я думаю, что вам нужно разобраться и начать писать SQL производственного уровня, заниматься им на повседневной основе .

Прочитайте книги, специфичные для SQL, посмотрите реальные примеры, и самое главное - попробуйте сами.

В качестве примера я могу знать все самые глубокие аспекты работы компьютера вплоть до структуры TGEHP, но это мало поможет для решения моей нынешней «загадки» SQL:)

Darknight

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