logo search
DB

Генерация отношений при степени связи 1:1.

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

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

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

  1. Генерация отношений при степени связи 1:n и m:n.

При степени связи 1:n рассматриваются четыре случая:

1. Класс принадлежности обеих сущностей обязательный

2. Класс принадлежности односвязной – необязательный, n-связной – обязательный

3. Класс принадлежности односвязной – обязательный, n-связной – необязательный

4. Класс принадлежности обеих сущностей необязательный

В 1 и 2 случаях формируются два отношения, в 3 и 4 – три отношения.

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

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

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

  1. Необходимость применения множественных связей и генерация отношений при данном типе связей.

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

  1. Стандарт SQL.

Structured Query Language ориентирован на операции с данными, представленными в виде логически взаимосвязанных совокупностей таблиц. Особенность предложений этого языка состоит в том, что они ориентированы в большей степени на конечный результат обработки данных, чем на процедуру этой обработки. SQL сам определяет, где находятся данные, какие индексы и даже наиболее эффективные последовательности операций следует использовать для их получения: не надо указывать эти детали в запросе к базе данных.

Предложения языка:

В предложениях можно выполнять:

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