Базы данных — Урок 3. Реляционные базы данных
Реляционные базы данных, как мы уже знаем, состоят из таблиц. Каждая таблица состоит из столбцов (их называют полями или атрибутами) и строк (их называют записями или кортежами). Таблицы в реляционных базах данных обладают рядом свойств. Основными являются следующие:
-
В таблице не может быть двух одинаковых строк. В математике таблицы, обладающие таким свойством, называют отношениями — по-английски relation, отсюда и название — реляционные.
Все будет понятнее на примере. Предположим, мы захотели создать базу данных для форума. У форума есть зарегистрированные пользователи, которые создают темы и оставляют сообщения в этих темах. Эта информация и должна храниться в базе данных.
Теоретически (на бумаге) мы можем все это расположить в одной таблице, например, так:
Но это противоречит свойству атомарности (одно значение в одной ячейке), а в столбцах Темы и Сообщения у нас предполагается неограниченное количество значений. Значит, нашу таблицу надо разбить на три: Пользователи, Темы и Сообщения.
Наша таблица Пользователи удовлетворяет всем условиям. А вот таблицы Темы и Сообщения — нет. Ведь в таблице не может быть двух одинаковых строк, а где гарантия, что один пользователь не оставит два одинаковых сообщения, например:
Кроме того, мы знаем, что каждое сообщение обязательно относится к какой-либо теме. А как это можно узнать из наших таблиц? Никак. Для решения этих проблем, в реляционных базах данных существуют ключи.
Первичный ключ (сокращенно РК — primary key) — столбец, значения которого во всех строках различны. Первичные ключи могут быть логическими (естественными) и суррогатными (искусственными). Так, для нашей таблицы Пользователи первичным ключом может стать столбец e-mail (ведь теоретически не может быть двух пользователей с одинаковым e-mail). На практике лучше использовать суррогатные ключи, т.к. их применение позволяет абстрагировать ключи от реальных данных. Кроме того, первичные ключи менять нельзя, а что если у пользователя сменится e-mail?
Суррогатный ключ представляет собой дополнительное поле в базе данных. Как правило, это порядковый номер записи (хотя вы можете задавать их на свое усмотрение, контролируя, чтобы они были уникальны). Давайте внесем поля первичных ключей в наши таблицы:
Теперь каждая запись в наших таблицах уникальна. Нам осталось установить соответствие между темами и сообщениями в них. Делается это также при помощи первичных ключей. В таблицу сообщения мы добавим еще одно поле:
Теперь понятно, что сообщение с принадлежит теме «О рыбалке» (id темы = 4), созданной Васей, а остальные сообщения принадлежать теме «О рыбалке» (id темы = 1), созданной Кириллом. Такое поле называется внешний ключ (сокращенно FK — foreign key). Каждое значение этого поля соответствует какому-либо первичному ключу из таблицы «Темы». Так устанавливается однозначное соответствие между сообщениями и темами, к которым они относятся.
Последний нюанс. Предположим, у нас добавился новый пользователь, и зовут его тоже Вася:
Как мы узнаем, какой именно Вася оставил сообщения? Для этого поля автор в таблицах «Темы» и «Сообщения» мы сделаем также внешними ключами:
Наша база данных готова. Схематично ее можно представить так:
В нашей маленькой базе данных всего три таблички, а если бы их было 10 или 100? Понятно, что сразу невозможно представить все таблицы, поля и связи, которые нам могут понадобиться. Именно поэтому проектирование базы данных начинается с ее концептуальной модели, которую мы и рассмотрим в следующем уроке.
Научись программировать на Python прямо сейчас!
- Научись программировать на Python прямо сейчас
- Бесплатный курс
Если этот сайт оказался вам полезен, пожалуйста, посмотрите другие наши статьи и разделы.
Что такое столбчатая база данных?
Столбчатые базы данных в сравнении с реляционными базами данных
Реляционные базы данных оптимизированы для хранения строк данных и применяются, как правило, для транзакционных приложений. Столбчатые базы данных оптимизированы для быстрого извлечения столбцов данных и применяются, как правило, в аналитических приложениях. Использование столбчатых таблиц баз данных для хранения оказывает большое влияние на производительность аналитических запросов, поскольку значительно снижает общие требования к операциям дискового ввода-вывода и сокращает объем данных, которые требуется загружать с диска.
Как и другие базы данных NoSQL, столбчатые базы данных предназначены для горизонтального масштабирования с использованием распределенных кластеров недорогого оборудования для увеличения пропускной способности, что делает их идеальным решением для хранения данных и обработки больших данных.
Основные понятия о таблицах базы данных
Для одной таблицы создается несколько файлов, содержащих данные, индексы, ключи и т.п. Имя главного файла таблицы (файла, содержащего данные) – оно же является именем таблицы – задается при создании таблицы. Имена остальных файлов таблицы назначаются автоматически, причем имена всех этих файлов совпадают с именем таблицы, за исключением расширений имен; разные расширения указывают на содержимое соответствующего файла.
Каждая таблица БД, состоящая из строк и столбцов, предназначена для хранения информации об однотипных объектах системы. Строка таблицы называется записью , а столбец таблицы — полем .
В таблицах могут определяться ключи и индексы. Ключ – это комбинация полей, данные в которых однозначно определяют каждую запись в таблице. Простой ключ состоит из одного поля, а сложный (составной) – из нескольких полей. Поля, по которым построен ключ, называются ключевыми . Ключ служит для однозначной идентификации записей таблицы, а также для предотвращения повторений значений ключа. При этом значения отдельных полей составного ключа могут повторяться. Такой ключ называется первичным ключом.
Индекс , как и ключ, строится по полям таблицы, однако он может допускать повторение значений составляющих его полей. Поля, по которым построен индекс, называют индексными . Индексы именуются при их создании. Индекс служит для сортировки таблиц по индексным полям. Кроме того, при использовании индексирования повышается скорость поиска данных в таблице.
В таблице приведен список типов полей таблиц dBASE, а также описание значений, которые может содержать поле рассматриваемого типа.
Строка символов. Длина не более 255 символов
Добавление и удаление столбца в таблице
Access позволяет добавлять или удалять столбцы в таблице данных несколькими способами. Для добавления или удаления столбцов и установки типов данных для этих столбцов можно использовать режим таблицы. Вы также можете добавить поля из области задач или открыть таблицу, лежащую в основе таблицы данных, и добавить поле в режиме конструктора. В этой статье описывается использование каждого из этих методов.
Дополнительные сведения о создании и использовании таблиц см. в статьях Создание формы с помощью инструмента «Таблица» и Работа с таблицами.
В этой статье
- Понятие столбцов в таблицах данных
- Добавление столбца в режиме таблицы
- Удаление столбца в режиме таблицы
- Добавление столбца в режиме конструктора
- Удаление столбца в режиме конструктора
- Сведения о том, как Access задает типы данных при вводе информации
- Настройка типов данных, которые не определены в режиме таблицы
Понятие столбцов в таблицах данных
Таблицей данных называется визуальное представление информации, содержащейся в таблице базы данных, или результатов, полученных по запросу. Столбец в таблице данных по сути является полем в таблице базы данных. Когда вы добавляете или удаляете столбец из таблицы данных, вы добавляете или удаляете поле из таблицы, которая лежит в основе этой таблицы данных. Если это поле содержит данные, эта информация также удаляется.
Работа со столбцами
Access позволяет быстрее и проще добавлять или удалять поля таблицы, поскольку пользователь может выполнять эти задачи в режиме таблицы. По умолчанию все таблицы в режиме таблицы теперь содержат пустой столбец с подписью Нажмите, чтобы добавить. Для добавления столбца введите данные в первую пустую ячейку под заголовком этого столбца. Можно также вставить один или несколько фрагментов данных в пустой столбец. Больше не нужно использовать режим конструктора для добавления или удаления столбцов, хотя при желании вы можете воспользоваться им.
Кроме того, больше не нужно задавать наиболее распространенные типы данных для нового столбца. По умолчанию поля в таблице базы данных должны содержать определенные типы данных, такие как текст, дата и время, числа и т. д. Обычно типы данных задаются при разработке таблиц для базы данных. Однако Access теперь определяет большинство типов данных при первом вводе данных в новый столбец. Например, если вы введете имя в первое поле новой таблицы, Access задаст для этого поля тип данных «Текст». Если вы введете дату, Access присвоит этому полю тип данных «Дата и время» и т. д. При вставке смешанных данных, например почтовых индексов нескольких стран/регионов, Access выбирает тип, который лучше всего подойдет для сохранения этой информации (обычно это тип данных «Текст»). Дополнительные сведения см. в разделе Сведения о том, как Access задает типы данных при вводе информации, приведенном далее в этой статье.
Дополнительную информацию о настройке типов данных см. в статье Типы данных для баз данных Access на настольных компьютерах. Ознакомиться с правилами проектирования реляционных баз данных можно в статье Основные сведения о создании баз данных.
В следующих разделах описано, как добавлять и удалять столбцы в таблицах данных в режиме таблицы и в режиме конструктора.
Добавление столбца в режиме таблицы
В этом разделе описано, как использовать режим таблицы, чтобы добавить в таблицу столбец, задать имя столбца и ввести данные. В процессе работы помните, что при следовании данным инструкциям вы добавляете и изменяете поле в таблице, лежащей в основе вашей таблицы данных.
- В области навигации найдите и дважды щелкните таблицу, к которой хотите добавить поле. Приложение Access откроет эту таблицу в режиме таблицы.
- Прокрутите таблицу влево или вправо (в зависимости от региональных и языковых настроек Windows) и найдите пустой столбец. По умолчанию фраза Нажмите, чтобы добавить отображается в заголовке пустого столбца.
- Введите данные в первую пустую строку под заголовком. -или- Вставьте один или несколько фрагментов данных в поле, начиная с первой пустой ячейки. Сохраните изменения. В зависимости от типа введенных вами данных Access устанавливает тип данных для поля. Например, если вы введете имя, Access присвоит полю тип данных «Текст». Дополнительные сведения о назначении типов данных в Access см. в разделе Сведения о том, как Access задает типы данных при вводе информации. Сведения о настройке типов данных вручную см. в разделе Настройка типов данных, которые не определены в режиме таблицы, приведенном далее в этой статье.
- Дважды щелкните заголовок столбца и введите имя нового поля. -или- Щелкните правой кнопкой мыши заголовок столбца и выберите из контекстного меню пункт Переименовать поле. Затем введите имя этого поля.
- Сохраните изменения.
Удаление столбца в режиме таблицы
Прежде чем удалить столбец из таблицы данных, запомните несколько важных сведений.
- При удалении столбца происходит удаление всех данных, находящихся в этом столбце, и это действие невозможно отменить. Поэтому перед удалением столбца создайте резервную копию таблицы.
- Некоторые типы столбцов невозможно удалить без проведения некоторой дополнительной работы. Например, вы не сможете удалить поле первичного ключа в режиме таблицы. Для выполнения этой задачи необходимо использовать режим конструктора. Кроме того, вам не удастся удалить первичный ключ или поле подстановки без предварительного удаления связи между полем и таблицами, из которых это поле берет данные. Информация по удалению связанных полей выходит за рамки этой статьи. Дополнительные сведения см. в статьях «Основные сведения о создании баз данных», «Добавление и изменение первичного ключа таблицы» в Access,создание, изменение и удаление связи, а также создание и удаление многофаентного поля.
Удаление столбца в режиме таблицы
- Щелкните правой кнопкой мыши строку заголовка столбца, который вы хотите удалить.
- В контекстном меню выберите команду Удалить поле.
- Нажмите кнопку Да, чтобы подтвердить удаление.
- Сохраните изменения.
Добавление столбца в режиме конструктора
Если вы знакомы с более ранними версиями Access, возможно, у вас есть некоторый опыт работы в режиме конструктора. Режим конструктора предоставляет больше свободы действия, чем режим таблицы, поскольку позволяет пользователю указывать все доступные типы данных и создавать поле подстановки, не выходя из режима конструктора.
Добавление столбца в режиме конструктора
- В области навигации щелкните правой кнопкой мыши таблицу, которую вы хотите изменить, и в контекстном меню выберите пункт Конструктор. -или- В строке состояния Access выберите режим конструктора.
- В столбце Имя поля выберите пустую строку и введите имя нового поля.
- В столбце Тип данных рядом с именем нового поля выберите тип данных для нового столбца.
- Сохраните изменения.
Удаление столбца в режиме конструктора
Правила удаления столбцов, применяемые в режиме таблицы, действуют и при работе в режиме конструктора. При удалении столбца удаляются все содержащиеся в нем данные. Кроме того, перед удалением первичного ключа или поля подстановки необходимо сначала удалить связи между этими полями.
Дополнительные сведения см. в статьях «Основные сведения о создании баз данных», «Добавление и изменение первичного ключа таблицы в Access»и «Создание или удаление многоценного поля».
Удаление столбца в режиме конструктора
- В области навигации щелкните правой кнопкой мыши таблицу, которую вы хотите изменить, и в контекстном меню выберите пункт Конструктор. -или- В строке состояния Access выберите режим конструктора.
- Выберите поле (строку), которое нужно удалить.
- На вкладке Конструктор в группе Сервис нажмите Удалить строки. -или- Нажмите клавишу DELETE.
- Сохраните изменения.
Сведения о том, как Access задает типы данных при вводе информации
При создании пустой таблицы Access задает тип данных для каждого поля при первом вводе данных в него. В следующей таблице указаны типы данных, которые присваиваются полю при вводе в него тех или иных данных.
Примечание: Присвоить тип данных «Вложение» или «Объект OLE», а также включить поддержку редактирования расширенного текста путем ввода данных в поле невозможно.
В таблице ниже показано, каким образом Access задает тип данных для поля при вводе данных в режиме таблицы.
Вводимые данные
Тип данных для поля, назначаемый Access
Краткий текст (текст)
Блок текста или текста и чисел длиной более 256 символов.
Длинный текст (Memo)
Примечание: Режим таблицы не позволяет форматировать текст как RTF. Кроме того, если вы включите для поля Memo свойство Только добавление, Access по умолчанию скроет любой текст, когда вы поместите курсор в это поле.
Информацию о форматировании текста как RTF см. в статье Создание или удаление поля форматированного текста..
Access распознает следующие протоколы IP: http, ftp, gopher, wais, file, https, mhtml, mailto, msn, news, nntp, midi, cid, prospero, telnet, rlogin, tn3270, pnm, mms, outlook.
Примечание: Чтобы приложение Access распознало протокол и присвоило полю тип данных «Гиперссылка», после обозначения протокола не должно быть пробела.