Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Внешний ключ и целостность данных. Базы данных InnoDB и MyIsam

Внешний ключ (FOREIGN KEY)

Определение 1

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

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

Связь между таблицами не равноправна. В связи существует главная и подчиненная таблица. Самые распространенные связи «один-к-одному» и «один-ко-многим». При связи «один-к-одному» строке главной таблицы отвечает одна или ни одной строки подчиненной таблицы. В связи «один-ко-многим» одной строке главной таблицы соответствует любое количество строк подчиненной таблицы.

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

Так как главная таблица всегда располагается со стороны «один», то у столбца, который участвует в связи по внешнему ключу, должно быть ограничение UNIQUE или PRIMARY KEY. Внешний ключ задают в процессе создания или изменения структуры подчиненной таблицы с помощью спецификации FOREIGN KEY:

Внешний ключ и целостность данных. Базы данных InnoDB и MyIsam. Автор24 — интернет-биржа заказчиков и авторов

Типы данных столбцов 1 и 2 должны быть попарно совместимыми, а списки столбцов 1 и 2 должны содержать одинаковое количество столбцов.

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

Внешний ключ и целостность данных. Базы данных InnoDB и MyIsam. Автор24 — интернет-биржа заказчиков и авторов

«Внешний ключ и целостность данных. Базы данных InnoDB и MyIsam» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

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

Внешний ключ и целостность данных. Базы данных InnoDB и MyIsam. Автор24 — интернет-биржа заказчиков и авторов

Базы данных InnoDB и MyIsam

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

Учитывая недостатки существующих СУБД в 2005 г. было разработано ядро СУБД InnoDB, которое стало поддерживаться MySQL.

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

Рассмотрим механизм хранения данных в ядрах СУБД MyISAM и InnoDB .

В InnoDB и в MyISAM данные хранятся в файлах. Различаются они тем, что MyISAM для каждой таблицы создает отдельный файл, InnoDB все хранит в общем по умолчанию. Также InnoDB поддерживает MVCC («мультиверсионность») – каждый пользователь, не мешая другим, работает с отдельным экземпляром базы данных. Все вышеназванное приводит к увеличению размера хранилища, что сказывается на производительности InnoDB.

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

В отличие от MyISAM, InnoDB ранее не поддерживал индекс FULLTEXT, что приводило к сложной организации полнотекстового поиска. С версии MySQL 5.6.4 индекс был включен в InnoDB.

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

Воспользуйся нейросетью от Автор24
Не понимаешь, как писать работу?
Попробовать ИИ
Дата написания статьи: 28.08.2016
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot