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

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

В этой статье

  • Обзор

  • Создание базы данных с помощью шаблона

  • Создание базы данных без использования шаблона

  • Копирование данных из другого источника в таблицу Access

  • Импорт, добавление или связывание данных из другого источника

  • Добавление части приложения

  • Открытие существующей базы данных Access

Обзор

При первом запуске Access, а также при закрытии базы данных без завершения работы Access отображается представление Microsoft Office Backstage.

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

Создание базы данных

Когда вы открываете Access, в представлении Backstage отображается вкладка “Новое”. Создать базу данных можно несколькими способами:

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

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

  • Шаблон из Office.com    В дополнение к шаблонам, поставляемым с Access, много других шаблонов доступно на сайте Office.com. Для их использования даже не нужно открывать браузер, потому что эти шаблоны доступны на вкладке Создать.

Добавление объектов в базу данных

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

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

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

Создание базы данных с помощью шаблона

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

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

  1. Если база данных открыта, нажмите на вкладке Файл кнопку Закрыть. В представлении Backstage откроется вкладка Создать.

  2. На вкладке Создать доступно несколько наборов шаблонов. Некоторые из них встроены в Access, а другие шаблоны можно скачать с сайта Office.com. Дополнительные сведения см. в следующем разделе.

  3. Выберите шаблон, который вы хотите использовать.

  4. Access предложит имя файла для базы данных в поле “Имя файла”. При этом имя файла можно изменить. Чтобы сохранить базу данных в другой папке, отличной от папки, которая отображается под полем “Имя файла”, нажмите кнопку замещающий текст, перейдите к папке, в которой ее нужно сохранить, и нажмите кнопку “ОК”. При желании вы можете создать базу данных и связать ее с сайтом SharePoint.

  5. Нажмите кнопку Создать.

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

    На вкладке Главная в группе Записи нажмите кнопку Удалить. Изображение кнопки

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

Дополнительные сведения о работе с шаблонами см. в статье Создание базы данных Access на компьютере с помощью шаблона.

К началу страницы

Создание базы данных без использования шаблона

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

  • Ввести, вставить или импортировать данные в таблицу, которая создается вместе с базой данных, и повторить эту процедуру для новых таблиц, которые создаются с помощью команды Таблица на вкладке Создание.

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

Создание пустой базы данных

  1. На вкладке Файл щелкните Создать и выберите вариант Пустая база данных.

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

  3. Нажмите кнопку Создать.

    Access создаст базу данных с пустой таблицей “Таблица1” и откроет ее в режиме таблицы. Курсор будет помещен в первую пустую ячейку столбца Щелкните для добавления.

  4. Чтобы добавить данные, начните вводить их или вставьте из другого источника (см. раздел Копирование данных из другого источника в таблицу Access).

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

Если на этом этапе вводить данные в таблицу “Таблица1” не нужно, нажмите кнопку Закрыть Изображение кнопки. Если вы внесли изменения в таблицу, будет предложено сохранить их. Нажмите кнопку Да, чтобы сохранить изменения, кнопку Нет, чтобы не сохранять их, или кнопку Отмена, чтобы оставить таблицу открытой.

Совет:  Access ищет файл с именем Blank.accdb в папке [диск установки]:Program FilesMicrosoft OfficeTemplates1049Access. Если он существует, blank.accdb является шаблоном для всех новых пустых баз данных. Все новые базы данных наследуют содержимое этого файла. Это отличный способ распространения содержимого по умолчанию, например номеров компонентов или заявлений об отказе от ответственности и политик компании.

Важно: Если хотя бы один раз закрыть таблицу “Таблица1” без сохранения, она будет удалена полностью, даже если в нее введены данные.

Добавление таблицы

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

Изображение ленты Access

Создание таблицы в режиме таблицы.    В режиме таблицы можно начать ввод данных сразу, структура таблицы при этом будет создаваться автоматически. Полям присваиваются имена с последовательными номерами (“Поле1”, “Поле2” и т. д.), а тип данных автоматически задается с учетом вводимых данных.

  1. на вкладке Создание в группе Таблицы нажмите кнопку Таблица. Изображение кнопки

    Access создаст таблицу и выделит первую пустую ячейку в столбце Щелкните для добавления.

  2. На вкладке Поля в группе Добавление и удаление выберите нужный тип поля. Если нужный тип поля не отображается, нажмите кнопку Другие поля Изображение кнопки.

  3. Откроется список часто используемых типов полей. Выберите необходимый тип поля, и Access добавит в таблицу новое поле в точке вставки.

    Поле можно переместить путем перетаскивания. При этом в таблице появляется вертикальная полоса вставки, указывающая место, где будет расположено поле.

  4. Чтобы добавить данные, начните вводить их в первую пустую ячейку или вставьте из другого источника (см. раздел Копирование данных из другого источника в таблицу Access).

  5. Для переименования столбца (поля) дважды щелкните его заголовок и введите новое название.

    Присвойте полям значимые имена, чтобы при просмотре области Список полей было понятно, что содержится в каждом поле.

  6. Чтобы переместить столбец, щелкните его заголовок для выделения столбца и перетащите столбец в нужное место. Можно выделить несколько смежных столбцов и перетащить их одновременно. Чтобы выделить несколько смежных столбцов, щелкните заголовок первого столбца, а затем, удерживая нажатой клавишу SHIFT, щелкните заголовок последнего столбца.

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

  1. На вкладке Создание в группе Таблицы нажмите кнопку Конструктор таблиц. Изображение кнопки

  2. Для каждого поля в таблице введите имя в столбце Имя поля, а затем в списке Тип данных выберите тип данных.

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

  4. Когда все необходимые поля будут добавлены, сохраните таблицу:

    • На вкладке Файл щелкните Сохранить.

  5. Вы можете начать вводить данные в таблицу в любое время, переключившись в таблицу и щелкнув первую пустую ячейку. Вы также можете вкопировать данные из другого источника, как описано в разделе “Копирование данных из другого источника в таблицу Access”.

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

Щелкните свойство поля, чтобы просмотреть его описание рядом со списком Свойства поля. Более подробные сведения можно получить, нажав кнопку справки.

В следующей таблице описаны некоторые наиболее часто изменяемые свойства полей.

Свойство

Описание

Размер поля

Для текстовых полей это свойство указывает максимально допустимое количество знаков, сохраняемых в поле. Максимальное значение: 255. Для числовых полей это свойство определяет тип сохраняемых чисел (“Длинное целое”, “Двойное с плавающей точкой” и т. д.). Для более рационального хранения данных рекомендуется выделять для хранения данных наименьший необходимый размер памяти. Если потребуется, это значение позже можно изменить.

Формат поля

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

Маска ввода

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

Значение по умолчанию

Это свойство позволяет задать стандартное значение, которое будет отображаться в этом поле при добавлении новой записи. Например, для поля “Дата/время”, в котором необходимо записывать дату добавления записи, в качестве значения по умолчанию можно ввести “Date()” (без кавычек).

Обязательное поле

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

К началу страницы

Копирование данных из другого источника в таблицу Access

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

При вставке данных в пустую таблицу приложение Access задает тип данных для каждого поля в зависимости от того, какие данные в нем находятся. Например, если во вставляемом поле содержатся только значения даты, для этого поля используется тип данных “Дата/время”. Если же вставляемое поле содержит только слова “Да” и “Нет”, для этого поля выбирается тип данных “Логический”.

Access называет имена полей в зависимости от того, что находится в первой строке в полученных данных. Если первая строка с данными похожа на последующие, Access определяет, что первая строка является частью данных, и присваивает полям общие имена (F1, F2 и т. д.). Если первая строка с данными не похожа на последующие строки, Access определяет, что первая строка состоит из имен полей. Access применит имена полей соответствующим образом и не включит первую строку в данные.

В Access имена присваиваются полям автоматически, поэтому во избежание путаницы поля следует переименовать. Это можно сделать следующим образом:

  1. Нажмите клавиши CTRL+S, чтобы сохранить таблицу.

  2. В режиме таблицы дважды щелкните заголовок каждого столбца и введите описательное имя поля для каждого столбца.

  3. Еще раз сохраните таблицу.

Примечание: Кроме того, для изменения имен полей можно переключиться в режим конструктора. Для этого в области навигации щелкните таблицу правой кнопкой мыши и выберите пункт Конструктор. Чтобы вернуться в режим таблицы, дважды щелкните таблицу в области навигации.

К началу страницы

Импорт, добавление или связывание данных из другого источника

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

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

    Группа "Импорт и связи" на вкладке "Внешние данные"

    Например, чтобы импортировать данные с листа Excel, нажмите кнопку Excel. Если вы не видите нужный тип программы, нажмите кнопку Дополнительно.

    Примечание: Если не удается найти нужный тип формата в группе Импорт и связи, может потребоваться запустить программу, в которой созданы эти данные, а затем сохранить в ней данные в файле общего формата (например, как текстовый файл с разделителями) перед импортом данных в Access.

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

  3. Выберите нужный параметр (все программы разрешают импорт, а некоторые — для их связываия) в области “Укажите, как и где нужно хранить данные в текущей базе данных”. Вы можете создать новую таблицу, использующую импортируемые данные, или (в некоторых программах) данные в существующую таблицу или связанную таблицу, которая поддерживает связь с данными в программе-источнике.

  4. Если будет запущен мастер, следуйте инструкциям на экране. На последней странице мастера нажмите кнопку Готово.

    При импорте объектов или связывании таблиц из базы данных Access открывается диалоговое окно Импорт объектов или Связь с таблицами. Выберите нужные элементы и нажмите кнопку ОК.

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

  5. Access предложит сохранить сведения о только что завершенной операции импорта. Если вы планируете повторить ее, нажмите кнопку Сохранить шаги импорта и введите нужные сведения. Позже для повторения этой операции достаточно будет нажать кнопку Сохраненные операции импорта Изображение кнопки на вкладке Внешние данные в группе Импорт и связи. Если вы не хотите сохранять сведения об операции, нажмите кнопку Закрыть.

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

К началу страницы

Добавление части приложения

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

Например, часть приложения “Примечания” состоит из таблицы с полем идентификатора, имеющим тип “Счетчик”, поля даты и поля MEMO. Ее можно добавить в базу данных и использовать как есть или с минимальными изменениями.

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

  2. Откройте вкладку Создание.

  3. В группе Шаблоны нажмите кнопку Части приложения. Появится список доступных частей.

  4. Щелкните часть приложения, которую вы хотите добавить.

К началу страницы

Открытие существующей базы данных Access

  1. На вкладке Файл нажмите кнопку Открыть.

  2. В диалоговом окне Открытие файла базы данных найдите базу данных, которую нужно открыть.

  3. Выполните одно из следующих действий.

    • Чтобы открыть базу данных в режиме по умолчанию, дважды щелкните ее (режим по умолчанию может быть указан в диалоговом окне Параметры Access или установлен административной политикой).

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

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

    • Щелкните стрелку рядом с кнопкой Открыть и выберите вариант Монопольно, чтобы открыть базу данных в монопольном режиме. Если ее затем попытается открыть другой пользователь, он получит сообщение “Файл уже используется”.

    • Щелкните стрелку рядом с кнопкой Открыть и выберите вариант Монопольно для чтения, чтобы открыть базу данных только для чтения. Другие пользователи при этом смогут открывать базу данных только для чтения.

Примечание: Вы можете напрямую открывать файлы данных внешних форматов, например dBASE, Microsoft Exchange или Excel. Кроме того, можно открыть напрямую любой источник данных ODBC, например Microsoft SQL Server. Access автоматически создаст базу данных Access в одной папке с файлом данных и добавит ссылки на все таблицы внешней базы данных.

Советы

  • Чтобы открыть одну из недавно использовавшихся баз данных, щелкните Последние на вкладке Файл и выберите имя файла базы данных. Access откроет базу данных, используя параметры, которые применялись при ее открытии в прошлый раз. Если список последних использовавшихся файлов не отображается, щелкните Параметры на вкладке Файл. В диалоговом окне Параметры Access нажмите кнопку Параметры клиента. В разделе Вывод на экран укажите количество документов, которые необходимо отобразить в списке “Последние документы” (не больше 50).

    Кроме того, на панели навигации представления Backstage можно отдемонстрировать последние базы данных (1) вкладка “Файл”, часть 2) базу данных, которую вы хотите открыть. В нижней части вкладки “Последние” выберите поле “Число последних баз данных”, а затем укажите нужное количество.

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

К началу страницы

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

Специализированных программ для формирования и ведения баз данных много. В том же MS Office для этого есть отдельное приложение — Microsoft Access. Но и в Excel достаточно возможностей для создания простых баз и удобного управления ими. Есть ограничение — количество строк базы данных в Excel не должно быть больше одного миллиона.

В статье разберёмся:

  • как выглядит база данных в Excel;
  • как её создать и настроить;
  • как работать с готовой базой данных в Excel — фильтровать, сортировать и искать записи.

База данных в Excel — таблица с информацией. Она состоит из однотипных строк — записей базы данных. Записи распределены по столбцам — полям базы данных.

Пример базы данных по продажам автомобилей в Excel
Скриншот: Excel / Skillbox Media

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

Каждая запись — строка таблицы — относится к одному объекту базы данных и содержит информацию о нём. В нашем примере записи характеризуют продажи, совершённые менеджерами автосалона.

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

Если в базе данных есть промежуточные пустые строки, ей нельзя управлять как единым объектом
Скриншот: Excel / Skillbox Media

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


Создаём структуру базы данных

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

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

  • «Менеджер»;
  • «Дата продажи»;
  • «Марка, модель»;
  • «Цвет»;
  • «Год выпуска»;
  • «Объём двигателя, л»;
  • «Цена, руб.».

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

Вводим названия полей базы данных и форматируем их
Скриншот: Excel / Skillbox Media

Создаём записи базы данных

В нашем примере запись базы данных — одна продажа. Перенесём в таблицу всю имеющуюся информацию о продажах.

При заполнении ячеек с записями важно придерживаться одного стиля написания. Например, Ф. И. О. менеджеров во всех строках вводить в виде «Иванов И. И.». Если где-то написать «Иван Иванов», то дальше в работе с БД будут возникать ошибки.

Переносим в базу данных информацию о продажах
Скриншот: Excel / Skillbox Media

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

В нашем примере данные в столбцах A, C и D должны быть в текстовом формате. Данные столбца B должны быть в формате даты — его Excel определил и присвоил автоматически. Данные столбцов E, F — в числовом формате, столбца G — в финансовом.

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

Меняем формат ячеек
Скриншот: Excel / Skillbox Media

В появившемся меню выберем нужный формат и настроим его. В нашем примере для ячейки «Цена, руб.» выберем финансовый формат, уберём десятичные знаки (знаки после запятой) и выключим отображение символа ₽.

Настраиваем формат ячеек
Скриншот: Excel / Skillbox Media

Также изменить формат можно на панели вкладки «Главная».

Изменить формат можно с помощью главной панели Excel
Скриншот: Excel / Skillbox Media

Присваиваем базе данных имя

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

Создаём название базы данных
Скриншот: Excel / Skillbox Media

В появившемся окне вводим имя базы данных без пробелов.

Вводим имя базы данных
Скриншот: Excel / Skillbox Media

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

База данных в Excel
Скриншот: Excel / Skillbox Media

Сейчас в созданной базе данных все записи расположены хаотично — не упорядочены ни по датам, ни по фамилиям менеджеров. Разберёмся, как привести БД в более удобный для работы вид. Все необходимые для этого функции расположены на вкладке «Данные».

На вкладке «Данные» расположены все необходимые инструменты для работы с БД в Excel
Скриншот: Excel / Skillbox Media

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

Подробнее о фильтрах в Excel говорили в этой статье Skillbox Media.

Выберем любую ячейку из базы данных и на вкладке «Данные» нажмём кнопку «Фильтры».

Устанавливаем фильтрацию в БД
Скриншот: Excel / Skillbox Media

В каждой ячейке шапки таблицы появились кнопки со стрелками.

Предположим, нужно показать только сделки менеджера Тригубова М. — нажмём на стрелку поля «Менеджер» и оставим галочку только напротив него. Затем нажмём «Применить фильтр».

Выбираем менеджера, данные о сделках которого нужно показать
Скриншот: Excel / Skillbox Media

Готово — в базе отражены данные о продажах только одного менеджера. На кнопке со стрелкой появился дополнительный значок. Он означает, что в этом столбце настроена фильтрация. Чтобы её снять, нужно нажать на этот дополнительный значок и выбрать «Очистить фильтр».

Результат фильтрации — в БД показаны продажи только одного менеджера
Скриншот: Excel / Skillbox Media

Записи БД можно фильтровать по нескольким параметрам одновременно. Для примера покажем среди продаж Тригубова М. только автомобили дешевле 2 млн рублей.

Для этого в уже отфильтрованной таблице откроем меню фильтра для столбца «Цена, руб.» и нажмём на параметр «Выберите». В появившемся меню выберем параметр «Меньше».

Фильтруем БД по второму критерию — авто дешевле 2 млн рублей
Скриншот: Excel / Skillbox Media

Затем в появившемся окне дополним условие фильтрации — в нашем случае «Меньше 2000000» — и нажмём «Применить фильтр».

Дополняем условие фильтрации
Скриншот: Excel / Skillbox Media

Готово — фильтрация сработала по двум параметрам. Теперь БД показывает только те проданные менеджером авто, цена которых ниже 2 млн рублей.

Результат фильтрации по двум параметрам
Скриншот: Excel / Skillbox Media

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

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

Для примера отсортируем сделки выбранного менеджера в хронологическом порядке — по датам. Для этого выделим любую ячейку в поле «Дата продажи» и нажмём кнопку «Сортировка».

Делаем сортировку по дате в БД
Скриншот: Excel / Skillbox Media

В появившемся окне выберем параметр сортировки «От старых к новым» и нажмём «ОК».

Настраиваем сортировку БД
Скриншот: Excel / Skillbox Media

Готово — теперь все сделки менеджера даны в хронологическом порядке.

Результат сортировки по датам продаж
Скриншот: Excel / Skillbox Media

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

Другой способ сортировки по дате в БД
Скриншот: Excel / Skillbox Media

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

Подробнее о пользовательской сортировке в Excel говорили в этой статье Skillbox Media.

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

Предположим, нужно найти в БД автомобиль стоимостью 14 млн рублей. Перейдём на вкладку «Главная» и нажмём на кнопку «Найти и выделить». Также быстрый поиск можно задавать с любой вкладки Excel — через значок лупы в правом верхнем углу экрана.

Нажимаем сюда, чтобы найти нужное значение в БД
Скриншот: Excel / Skillbox Media

В появившемся окне введём значение, которое нужно найти, — 14000000 — и нажмём «Найти далее».

Задаём параметр поиска
Скриншот: Excel / Skillbox Media

Готово — Excel нашёл ячейку с заданным значением и выделил её.

Результат поиска в БД Excel
Скриншот: Excel / Skillbox Media
  • В этой статье Skillbox Media собрали в одном месте 15 статей и видео об инструментах Excel, которые ускорят и упростят работу с электронными таблицами.
  • Также в Skillbox есть курс «Excel + Google Таблицы с нуля до PRO». Он подойдёт как новичкам, которые хотят научиться работать в Excel с нуля, так и уверенным пользователям, которые хотят улучшить свои навыки. На курсе учат быстро делать сложные расчёты, визуализировать данные, строить прогнозы, работать с внешними источниками данных, создавать макросы и скрипты.
  • Кроме того, Skillbox даёт бесплатный доступ к записи онлайн-интенсива «Экспресс-курс по Excel: осваиваем таблицы с нуля за 3 дня». Он подходит для начинающих пользователей. На нём можно научиться создавать и оформлять листы, вводить данные, использовать формулы и функции для базовых вычислений, настраивать пользовательские форматы и создавать формулы с абсолютными и относительными ссылками.

Другие материалы Skillbox Media по Excel

  • Как сделать сортировку в Excel: детальная инструкция со скриншотами
  • Как установить фильтр и расширенный фильтр в Excel: детальные инструкции со скриншотами
  • Как сделать ВПР в Excel: пошаговая инструкция со скриншотами
  • Основы Excel: работаем с выпадающим списком. Пошаговая инструкция со скриншотами
  • Основы Excel: как использовать функцию ЕСЛИ
  • Как сделать сводные таблицы в Excel: пошаговая инструкция со скриншотами

Время на прочтение
3 мин

Количество просмотров 44K

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

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

С содержанием таблиц удобно ознакомиться в формате excel:

Таблица "products"

Таблица “products”
Таблица "customers"
Таблица “customers”
Таблица "courier_info"
Таблица “courier_info”
Таблица "orders"
Таблица “orders”
Таблица "delivery_list"
Таблица “delivery_list”
Таблица "orders_products"
Таблица “orders_products”

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

Примечание: дабы не загружать статью всеми видами таблиц из запросов, визуально представлены будут только некоторые, а с остальными Вы без проблем можете поэкспериментировать сами.

Table "year_statistics"

Table “year_statistics”

Агрегация, группировка, сортировка

Сумма заказов за весь год:

SELECT SUM(amount_of_orders) AS orders_per_year FROM year_statistics;

Убывающая сортировка заказов по месяцам:

SELECT month_name, amount_of_orders
FROM year_statistics
ORDER BY amount_of_orders DESC;

Вывести месяц, где больше всего заказов:

SELECT month_name, amount_of_orders FROM year_statistics
WHERE amount_of_orders = (SELECT MAX(amount_of_orders)
FROM year_statistics);

Популярность районов по количествам клиентов:

SELECT district
FROM customers
GROUP BY district
ORDER BY COUNT(district) DESC;

Сколько каждый курьер доставил заказов:

SELECT courier_id, COUNT(order_id)
From delivery_list
WHERE date_arrived IS NOT NULL
GROUP BY courier_id;

Общие запросы и использование операторов IN, EXISTS, UNION и др.

Выборка клиентов, которые живут в районе “South”:

SELECT * FROM Customers
WHERE district IN ('South');

Информация о заказах, которые не были доставлены клиентам:

SELECT * FROM delivery_list
WHERE taken NOT IN ('Yes');

Запрос продуктов из меню, которые были заказаны:

SELECT menu_name FROM products
WHERE EXISTS
(SELECT * FROM orders_products
WHERE orders_products.product_id = products.product_id);

Запрос тех продуктов, которые не заказывали:

SELECT menu_name FROM products
WHERE NOT EXISTS
(SELECT * FROM orders_products
WHERE orders_products.product_id = products.product_id);

Получаем общую таблицу с информацией о клиентах и курьеров:

SELECT 'Customer' AS category, first_name, last_name, phone_number
FROM customers
UNION
SELECT 'Employee' AS category, first_name, last_name, phone_number
FROM courier_info;

INNER, NATURAL, CROSS, LEFT JOIN

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

SELECT orders_products.order_id, products.menu_name, quantity,
ROUND(price*quantity, 2) AS total_price
FROM orders_products
INNER JOIN products ON orders_products.product_id = products.product_id
ORDER BY order_id, quantity;

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

SELECT *, SEC_TO_TIME(TIMESTAMPDIFF(second, date_get, date_arrived))
AS time_of_delivery
FROM orders
NATURAL JOIN delivery_list;

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

SELECT DISTINCT courier_info.courier_id, customers.district
FROM courier_info
CROSS JOIN customers WHERE courier_info.delivery_type = 'car'
ORDER BY courier_id;

И напоследок запрос на информацию об имени клиента, его мобильном телефоне и номере заказа:

SELECT customers.first_name, customers.last_name,
customers.phone_number, orders.order_id
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id;

Заключение

По итогу мы с вами разобрали множество полезных запросов на выборку SQL. Были показаны основные и более редкие операции. В сущности не важно, сколько данных в Вашей таблице – десять или тысяча, от этого запросы не поменяются, а всегда будут оставаться такими же. Главное, чтобы был понятен смысл, количество данных играет намного меньшую роль. Бояться и расстраиваться от того, что у Вас пока не получается получить желаемый запрос, совершенно глупо. Абсолютно нормально, если Вы гуглите, читаете книгу на интересующую тему, а результата так и нет. На это может уходить от десятка минут до целых дней. Мы все люди и одному человеку не под силу знать все. Наберитесь терпения, спросите у товарищей, на форумах и просто продолжайте искать сами, у Вас все получится! Удачи.

В современном мире нужны инструменты, которые бы позволяли хранить, систематизировать и обрабатывать большие объемы информации, с которыми сложно работать в Excel или Word.

Подобные хранилища используются для разработки информационных сайтов, интернет-магазинов и бухгалтерских дополнений. Основными средствами, реализующими данный подход, являются MS SQL и MySQL.

Продукт от Microsoft Office представляет собой упрощенную версию в функциональном плане и более понятную для неопытных пользователей. Давайте рассмотрим пошагово создание базы данных в Access 2007.
Microsoft Access 2007

Microsoft Access 2007 – это система управления базами данных (СУБД), реализующая полноценный графический интерфейс пользователя, принцип создания сущностей и связей между ними, а также структурный язык запросов SQL. Единственный минус этой СУБД – невозможность работать в промышленных масштабах. Она не предназначена для хранения огромных объемов данных. Поэтому MS Access 2007 используется для небольших проектов и в личных некоммерческих целях.

Но прежде чем показывать пошагово создание БД, нужно ознакомиться с базовыми понятиями из теории баз данных.

Определения основных понятий

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

  1. Предметная область – множество созданных таблиц в базе данных, которые связаны между собой с помощью первичных и вторичных ключей.
  2. Сущность – отдельная таблица базы данных.
  3. Атрибут – заголовок отдельного столбца в таблице.
  4. Кортеж – это строка, принимающая значение всех атрибутов.
  5. Первичный ключ – это уникальное значение (id), которое присваивается каждому кортежу.
  6. Вторичный ключ таблицы «Б» – это уникальное значение таблицы «А», использующееся в таблице «Б».
  7. SQL запрос – это специальное выражение, выполняющее определенное действие с базой данных: добавление, редактирование, удаление полей, создание выборок.

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

Создание БД

Для наглядности всей теории создадим тренировочную базу данных «Студенты-Экзамены», которая будет содержать 2 таблицы: «Студенты» и «Экзамены». Главным ключом будет поле «Номер зачетки», т.к. данный параметр является уникальным для каждого студента. Остальные поля предназначены для более полной информации об учащихся.

Итак, выполните следующее:

  1. Запустите MS Access 2007.
  2. Нажмите на кнопку «Новая база данных».
  3. В появившемся окне введите название БД и выберите «Создать».
    Создание базы данных в Access 2007

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

Создание и заполнение таблиц

После успешного создания БД на экране появится пустая таблица. Для формирования ее структуры и заполнения выполните следующее:

  1. Нажмите ПКМ по вкладке «Таблица1» и выберите «Конструктор».
  2. Теперь начинайте заполнять названия полей и соответствующий им тип данных, который будет использоваться.
    Инициализация полей

    Внимание! Первым полем принято устанавливать уникальное значение (первичный ключ). Для него предпочтительно числовое значение.

  1. После создания необходимых атрибутов сохраните таблицу и введите ее название.
  2. Снова нажмите ПКМ по вкладке с уже новым название и выберите «Режим таблицы».
  3. Заполните таблицу необходимыми значениями.

Совет! Для тонкой настройки формата данных перейдите на ленте во вкладку «Режим таблицы» и обратите внимание на блок «Форматирование и тип данных». Там можно кастомизировать формат отображаемых данных.

Создание и редактирование схем данных

Перед тем, как приступить к связыванию двух сущностей, по аналогии с предыдущим пунктом нужно создать и заполнить таблицу «Экзамены». Она имеет следующие атрибуты: «Номер зачетки», «Экзамен1», «Экзамен2», «Экзамен3».

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

  1. Перейти во вкладку «Работа с базами данных».
  2. Нажать на кнопку «Схема данных».
  3. Если схема не была создана автоматически, нужно нажать ПКМ на пустой области и выбрать «Добавить таблицы».
  4. Выберите каждую из сущностей, поочередно нажимая кнопку «Добавить».
  5. Нажмите кнопку «ОК».

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

  1. Перетащите общее поле из одной таблицы в другую.
  2. В появившемся окне выберите необходимы параметры и нажмите «ОК».
  3. Теперь в окне должны отобразиться миниатюры двух таблиц со связью (один к одному).
    Схема данных

Выполнение запросов

Что же делать, если нам нужны студенты, которые учатся только в Москве? Да, в нашей БД только 6 человек, но что, если их будет 6000? Без дополнительных инструментов узнать это будет сложно.

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

Виды запросов

SQL синтаксис реализует принцип CRUD (сокр. от англ. create, read, update, delete — «создать, прочесть, обновить, удалить»). Т.е. с помощью запросов вы сможете реализовать все эти функции.

На выборку

В этом случае в ход вступает принцип «прочесть». Например, нам нужно найти всех студентов, которые учатся в Харькове. Для этого нужно:

  1. Перейти во вкладку «Создание».
  2. Нажать кнопку «Конструктор запросов» в блоке «Другие».
  3. В новом окне нажмите на кнопку SQL.
  4. В текстовое поле введите команду: SELECT * FROM Студенты WHERE Адрес = “Харьков”; где «SELECT *» означает, что выбираются все студенты, «FROM Студенты» – из какой таблицы, «WHERE Адрес = “Харьков”» – условие, которое обязательно должно выполняться.
  5. Нажмите кнопку «Выполнить».
  6. На выходе мы получаем результирующую таблицу.
    Результат выборки

А что делать, если нас интересуют студенты из Харькова, стипендии у которых больше 1000? Тогда наш запрос будет выглядеть следующим образом:

SELECT * FROM Студенты WHERE Адрес = “Харьков” AND Стипендия > 1000;

а результирующая таблица примет следующий вид:

На создание сущности

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

  1. Перейти во вкладку «Создание».
  2. Нажать кнопку «Конструктор запросов» в блоке «Другие».
  3. В новом окне нажмите на кнопку SQL, после чего в текстовое поле введите команду:

CREATE TABLE Преподаватели
(КодПреподавателя INT PRIMARY KEY,
Фамилия CHAR(20),
Имя CHAR (15),
Отчество CHAR (15),
Пол CHAR (1),
Дата_рождения DATE,
Основной_предмет CHAR (200));

где «CREATE TABLE» означает создание таблицы «Преподаватели», а «CHAR», «DATE» и «INT» – типы данных для соответствующих значений.

  1. Кликните по кнопке «Выполнить».
  2. Откройте созданную таблицу.

Внимание! В конце каждого запроса должен стоять символ «;». Без него выполнение скрипта приведет к ошибке.

На добавление, удаление, редактирование

Здесь все гораздо проще. Снова перейдите в поле для создания запроса и введите следующие команды:

Создание формы

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

  1. Откройте интересующую таблицу.
  2. Перейдите во вкладку «Создание».
  3. Нажмите на необходимый формат формы из блока «Формы».

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

  4. С помощью навигационных кнопок переходите к следующей записи и вносите изменения.

Все базовые функции MS Access 2007 мы уже рассмотрели. Остался последний важный компонент – формирование отчета.

Формирование отчета

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

Если вы никогда не сталкивались с подобной функцией, рекомендуется воспользоваться встроенным «Мастером отчетов». Для этого сделайте следующее:

  1. Перейдите во вкладку «Создание».
  2. Нажмите на кнопку «Мастер отчетов» в блоке «Отчеты».
  3. Выберите интересующую таблицу и поля, нужные для печати.
  4. Добавьте необходимый уровень группировки.
    Добавление группировки
  5. Выберите тип сортировки каждого из полей.
  6. Настройте вид макета для отчета.
    Выбор вида макета
  7. Выберите подходящий стиль оформления.

    Внимание! В официальных документах допускается только стандартный стиль оформления.

  8. Просмотрите созданный отчет.

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

  1. Нажмите ПКМ на вкладке отчета и выберите «Конструктор».
  2. Вручную расширьте интересующие столбцы.
    Редактирование отчета
  3. Сохраните изменения.

Вывод

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

Для проектирования более сложных БД необходимо разбираться в объектно-ориентированном программировании и изучать такие СУБД, как MS SQL и MySQL. А для тех, кому нужна практика составления запросов, рекомендую посетить сайт SQL-EX, где вы найдете множество практических занимательных задачек.

Удачи в освоении нового материала и если есть какие-либо вопросы – милости прошу в комментарии!

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

А если вы знакомы с SQL и вас не остановили предыдущие термины, на всякий случай напомним, что:

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

***

Есть минимум два требования, которые должны быть соблюдены при проектировании структуры БД:

  1. Сохранить всю информацию после разделения её на таблицы.
  2. Минимизировать избыточность того, как эта информация хранится.

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

Ниже перечислены некоторые рекомендации, которые помогут добиться эффективной структуры:

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

Используйте хотя бы третью нормальную форму

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

Нормальных форм существует целых 6 штук, однако обычно соблюдают всего лишь 3 и для начала этого более чем достаточно.

Первая нормальная форма

Для примера будем использовать отношение сотрудники_отделы_проекты. В нём есть информация о номере сотрудника, его фамилии, номере отдела, в котором он работает, номере телефона отдела и так далее.

Это отношение, как и любое другое, автоматически находится в первой нормальной форме:

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

Вторая нормальная форма

В нашем случае у таблицы выше имеется сложный (составной) ключ {Н_СОТР, Н_ПРО}. От части ключа Н_СОТР зависят неключевые атрибуты ФАМ, Н_ОТД, ТЕЛ. От части ключа Н_ПРО зависит неключевой атрибут ПРОЕКТ. А вот атрибут Н_ЗАДАН зависит от всего составного ключа, так как сотрудник может выполнять одно задание в одном проекте.

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

Наконец, третья нормальная форма

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

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

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

Используйте проверочные ограничения

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

В первую очередь БД поможет с ограничением значений, которые принимают поля.

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

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

Стоит убедиться, что обязательность заполнения (NOT NULL) проверяется для полей, которые строго не должны оставаться пустыми.

Используйте CHECK, чтобы убедиться, что значения входят в диапазон (например чтобы цена не была отрицательной).

Не храните ФИО в одном поле, также как и полный адрес

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

Установите для себя правила именования таблиц и полей

Сложно работать с данными, которые выглядят как-то так: user.firstName, user.last_name, user.birthDate. Конечно, каждый программист в праве сам выбирать для себя стиль наименования, но для SQL рекомендуется выбрать наименование с подчёркиванием. Потому что не все SQL-движки одинаково работают с заглавными буквами, а помещать всё в кавычки бывает утомительно.

Ещё нужно определиться как будут называться таблицы — во множественном числе (users) или в единственном (user). Каждая базовая структура в БД обычно настроена на множественное число, поэтому и именовать таблицы стоит соответственно.

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

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

Перевод статьи «A humble guide to database schema design»

Добавить комментарий