Переводчик: 飞龙
Лицензия: CC BY-NC-SA 4.0
Гордо использует Google Translate
В этой части книги мы рассмотрим несколько тем, которые не соответствуют структуре остальной части книги, но являются очень важными для начинающих разработчиков. Понимание того, как строятся данные в SQL базах данных, научит вас логически мыслить о требованиях хранения данных. Существует хорошо зарекомендовавший себя метод декомпозиции данных, эффективного хранения данных и доступа к ним. Недавние развития NoSQL баз данных делают это немного другим, но основные концепции дизайна реляционной базы данных всё ещё полезны. Вам понадобятся эти навыки каждый раз, когда вам потребуется хранить данные.
Большинство этих упражнений заставят вас работать с SQL базами данных, поэтому я рекомендую вам скачать двоичный файл sqlite3
с страницы загрузки SQLite3, если вы его ещё не установили. Мы будем использовать Python, так что он уже установлен во многих версиях Python, но иногда он недоступен. Если вы не можете запустить этот Python код в вашей Python оболочке:
>>> import sqlite3
```То ваш Python не имеет по умолчанию `sqlite3`. Вам придется разобраться, почему он пропал, и скорее всего вам потребуется установить другой пакет перед тем, как использовать его в Python.## Понимание SQL — это понимание таблиц
Перед началом этих упражнений вам нужно полностью понять одну концепцию, которая вызывает проблемы у большинства новичков в SQL.
> Каждый отдельный элемент в SQL базе данных представляет собой таблицу.Запомните это. Когда я говорю "таблица", я имею в виду что-то вроде электронной таблицы, где слева находятся строки, а сверху — столбцы. Обычно вы называете колонки некоторыми данными, которые вы помещаете в эту колонку. А каждая строка представляет собой то, что вы хотите поместить в таблицу. Это может быть аккаунт, список людей со своими данными, рецепт или даже автомобиль. Каждая строка — это автомобиль, а каждый столбец — это свойство автомобиля, которое вы хотите отслеживать. Это создаёт проблемы для большинства программистов, так как мы думаем о проблемах в виде деревьев. Объект содержит другой объект, внутри которого есть список, а в списке — словарь, содержащий строку, которая отображается в данные. Мы помещаем вещи друг в друга, и такой стиль данных плохо подходит для таблиц. Большинство программистов считают, что эти две структуры (таблица и дерево) не могут сосуществовать, но деревья и таблицы на самом деле очень похожи. Вы можете использовать практически любую структуру дерева и отобразить её в почти любой матрице, но вам нужно понять ещё один аспект SQL-баз данных: отношения. Связи делают SQL-базы данных более полезными по сравнению с электронными таблицами. Электронные таблицы позволяют создать множество листов и разместить в них различные типы данных, но затрудняют связывание этих листов между собой.Целью SQL-баз данных является возможность соединять таблицы через столбцы или другие таблицы. Талант SQL-баз данных заключается в том, чтобы использовать одну структуру (таблицу) для создания практически любой другой структуры данных путём соединения таблиц.Мы рассмотрим связи в SQL-базах данных, но краткий ответ таков: если вы можете создать дерево данных, то можно поместить это дерево в одну или несколько таблиц. На данном этапе книги мы можем упростить процесс преобразования группы связанных Python-классов в SQL-таблицы следующим образом:
+ Создайте таблицы для всех классов;
+ Установите колонку `id` в подчиненной таблице, указывающую на родительскую таблицу;
+ Для двух классов, связанных списками, создайте промежуточную таблицу.
Это сложнее, но основная идея остается такой же при переходе от групп классов к SQL. В действительности большинство систем, таких как Django, являются усложненной версией трех вышеупомянутых шагов.
## Что вы узнаете
Цель этого раздела — не научить вас становиться администратором баз данных SQL. Если вам интересна эта работа, я рекомендую изучить всё, что связано с Unix, а затем получить сертификат от компании, предоставляющей технические сертификации. Помните, что это не самая захватывающая работа, аналогично тому, как уход за большим зоопарком кошек не самый увлекательный вид деятельности. Кошки, а не котята.К концу шестого раздела вы будете знать, как работает SQL на базовом уровне. Это быстрое введение в SQL, завершающееся объектно-реляционным маппером (ORM), который похож на Django. Этот раздел представляет собой лишь первый шаг к пониманию работы SQL; его целью является предоставление вам достаточного количества информации, чтобы понять происходящее в системе Django.Если вы хотите продвинуться в этой области, я рекомендую книгу Джо Селко "SQL for Smarties" и некоторое время для её изучения. Книга Джо очень объемная, но она полностью охватывает тему, и он действительно мастер своего дела. Чтение этой книги сделает вас настоящим специалистом.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )