Приложения

Введение в базу данных отношений

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

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

Типы отношений базы данных

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

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

Отношения с самообращением: особый случай

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

Создание отношений с иностранными ключами

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

Рассмотрим снова пример таблиц «Учителя и ученики». Таблица Teachers содержит только идентификатор, имя и столбец курса:

Учителя

InstructorID

Имя учителя

Курс

001

Джон Доу

английский
002

Джейн Шмо

математический

Таблица «Студенты» включает в себя идентификатор, имя и столбец внешнего ключа:

Ученики

Студенческий билет

Имя студента

Teacher_FK
0200

Лоуэлл Смит

001
0201

Брайан Шорт

001
0202

Корки Мендес

002
0203

Моника Джонс

001

Столбец Teacher_FK в таблице «Ученики» ссылается на значение первичного ключа  инструктора в таблице «Учителя». Часто разработчики баз данных используют «PK» или «FK» в имени столбца, чтобы легко идентифицировать первичный ключ или столбец внешнего ключа.

Эти две таблицы иллюстрируют отношения «один ко многим» между учителями и учениками.

Отношения и ссылочная целостность

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

Реализация отношений

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

Если вы пишете SQL напрямую, вы сначала должны создать таблицу Teachers, объявив столбец идентификатора первичным ключом:

CREATE TABLE Teachers (InstructorID INT AUTO_INCREMENT PRIMARY KEY, имя 
учителя VARCHAR (100),
курс VARCHAR (100)
);

Когда вы создаете таблицу учеников, вы объявляете столбец Teacher_FK внешним ключом, ссылающимся на столбец InstructorID в таблице учителей:

CREATE TABLE Учащиеся ( 
StudentID INT AUTO_INCREMENT PRIMARY KEY,
Student_Name VARCHAR (100), Teacher_FK INT,
FOREIGN KEY (Teacher_FK) ССЫЛКИ Учителя (InstructorID))
);

Использование отношений для объединения таблиц

После того как вы создали одно или несколько отношений в своей базе данных, используйте их мощь, используя запросы SQL JOIN для объединения информации из нескольких таблиц. Наиболее распространенным типом объединения является SQL INNER JOIN или простое соединение. Этот тип объединения возвращает все записи, которые удовлетворяют условию соединения из одной или нескольких таблиц. Например, это условие JOIN вернет Student_Name, Teacher_Name и Course, где внешний ключ в таблице Students соответствует первичному ключу в таблице Teachers:

SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.Course 
ОТ студентов
INNER СОЕДИНЯЙТЕСЬ Учителя
ON Students.Teacher_FK = Teachers.InstructorID;

Этот оператор создает таблицу примерно так:

Возвращенная таблица из оператора соединения SQL

Student_Name Teacher_Name Курс 
Лоуэлл Смит Джон Доу Английский
Брайан Шорт Джон Доу Английский
Корки Мендес Джейн Шмо Математика
Моника Джонс Джон Доу Английский

Похожие посты
Приложения

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

Приложения

Лучшие онлайн-инструменты для встреч

Приложения

11 лучших бесплатных почтовых аккаунтов

Приложения

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