Таблица (основание и результаты запроса) представляют собой отношение приложений.
Из (более ранней версии) this answer:
Для каждой базовой таблицы, АБД дает предиката --a естественного языка принудительной в- (named-) Заготовку шаблон заявления параметризованный именами столбцов.
-- chef with id NUMCUISINIER has name NOMCUIS and ...
CUISINIER(NumCuisinier, NomCuis, ...)
Базовая таблица содержит строки, которые, используя значения ее столбцы для заполнения (названные) пробелы, сделать истинное утверждение ака предложения.
CUISINIER
NumCuisinier | NomCuis | ...
----------------------------
1 | DURAND | ... -- chef with id 1 has name 'DURAND' and ...
...
-- AND for every absent row (NUMCUISINIER, NOMCUIS, ...),
NOT (chef with id NUMCUISINIER has name NOMCUIS and ...)
Каждое выражение SQL/раздел преобразует старое значение таблицы на новое значение, удерживающей строки, которые делают истинное утверждение от какого-то нового предиката, которое может быть выражено в терминах оригинала предиката.
Предикат R JOIN S
есть предикат R
AND
ред с предикатом S
. Предикат R ON/WHERE
condition
является предикатом R
AND
ред с condition
.
/* rows where
chef with id c.NUMCUISINIER has name c.NOMCUIS and ...
AND kitchen with id a.NUMCUISINE ...
AND c.NUMCUISINE = a.NUMCUISINE
*/
CUISINIER c join ATELIER_CUISINE a on c.NumCuisine = a.NumCuisine
Так мы делаем запрос, написав выражение SQL, присоединенное предикат характеризует отношения приложения (ака ассоциации), строки которой мы хотим.
FKs (внешние ключи) не являются отношениями.
Ограничения FK: отношения некоторых людей, но это не так. Это факты.
A FK таблицы представляет собой набор столбцов. «FK» также используется для обозначения связанного ограничения, которое мы имеем, когда у нас есть FK. Который, как и любое ограничение, является истинным утверждением в каждом состоянии базы данных. (Эквивалентно, каждая ситуация приложения.) Ограничение FK говорит, что значения для определенных столбцов в определенной таблице также являются значениями для определенных столбцов в некоторой другой таблице, где они образуют CK (ключ кандидата). (Эквивалентно, он говорит, что если некоторые значения/сущности удовлетворяют определенным отношениям приложений, то некоторые из них плюс некоторые другие значения/сущности удовлетворяют некоторому другому отношению приложения, где значения/сущности образуют CK.) PK (первичные ключи) - это просто некоторые CK, которые вы решили назвать PK.)
Ограничение FK связано с определенным отношением приложений, но это не значит, что для «FK (constraint)» используется «отношение»). («ФК» также используется для обозначения значения subrow для столбцов FK, или значения в строке для столбца одного столбца FK а.)
Вы должны знать , что каждое средство стола.
Предикаты должны поставляться дизайнером вместе со схемой. Вам нужно узнать, что означают таблицы. Затем выражайте свой предикат запроса в терминах них. Затем конвертируйте в SQL.
Иногда мы имеем угадываем в предикатах более или менее успешно через здравый смысл и именование. FKs и другие ограничения могут помочь с угадыванием. (? Подчеркнуты)
здравого смысла, имена, PKS и FKS (? "#") Предполагают, табличные значения для вас, как:
-- chef with id NUMCUISINIER has name NOMCUIS and start date DATEEMB and works in kitchen with id NUMCUISINE
CUISINIER(NumCuisinier, NomCuis, NateEmb, NumCuisine)
-- kitchen with id NUMCUISINE has phone number TELCUISINE and chef with id NUMCUISINIER as head chef
ATELIER_CUISINE(NumCuisine, TelCuisine, NumCuisinier)
ФКС не нужны для запроса
В SQL-запрос над строками, которые делают предикат в истинное предложение, всегда возвращенные строки. Не имеет значения, сколько строк на NumCuisiner
или NumCuisine
значение (т. Е. Являются ли они PK) или должно ли значение отображаться в другой таблице (то есть, являются ли они FK). Или какие-либо другие ограничения.
Нам нужно знать предикаты для запроса. Когда мы знаем их , нам не нужно знать никаких ограничений. Нам не нужно знать FK.
FKs, CKs, PKs, альтернативные ключи и уникальные наборы колонок (суперкниги) не имеют отношения к запросу, за исключением того, что если вы знаете, что что-то является суперключом из-за одного, тогда вы можете писать запросы, связанные с извлечением значения из результата с одной строкой , Но вы могли бы выразить тот же результат без экстракций.
Возможно, этому FK разрешено значение NULL. Таким образом, вы можете сначала создать одну запись, и они свяжут их. Но это все еще не имеет никакого смысла. – MarceloBarbosa
1. Что означает «вид отношений между таблицами»? Вы уже знаете о ПК и FK. 2. Ваши комментарии задают запрос. Измените это на свой вопрос. Но, * запрос для чего *? (И что вы пробовали?) – philipxy
1. Опять же, пожалуйста, используйте вырезать и вставить текст в свои изображения в свой вопрос. Используйте формат кода для таблиц. Мы не можем вырезать и вставлять изображения. Если вы не можете, используйте онлайн-OCR, затем вырежьте и вставьте. 2. Какой запрос? В вашем вопросе или описании запроса по-прежнему нет запроса. Вы имеете в виду * табличные определения * ?? Измените свой вопрос, чтобы быть понятным. Пожалуйста, отредактируйте свой вопрос, чтобы вы задали один вопрос *. Прямо сейчас ваш заголовок * один * (* неясный *) вопрос, и тело сообщения говорит, что вы * надеетесь *, но не задает вопрос *, и если бы он * сделал *, это было бы * second * вопрос. – philipxy