ТЕМА 3


The Presentation inside:

Slide 0

ТЕМА 3 Взаимосвязи в модели данных


Slide 1

При проектировании БД нам потребуется различать взаимосвязи: между объектами между атрибутами одного объекта и между атрибутами различных объектов Взаимосвязь показывает взаимодействие 2-х множеств различных объектов. Различают взаимосвязи типа: «один к одному» «один ко многим» «многие ко многим» 1 1 2 3 1 1 2 3 1 2 3 1


Slide 2

Рассмотрим связи между объектами на примере автоматизации управления работой дилера по продаже легковых автомобилей. 1. Если клиент производит заказ на покупку автомобиля впервые, то осуществляется первичная регистрация его данных и сведений о сделанном заказе. Некоторые концептуальные требования 2. Если клиент производит заказ повторно, осуществляется регистрация только данного заказа. 3. Вне зависимости от того, сколько раз данный клиент производил заказы, он имеет уникальный идентификационный номер (уникальный ключ клиента).


Slide 3

Информация о каждом клиенте включает: - наименование клиента - адрес - телефон - факс - фамилию, имя, отчество - признак юридического лица - примечание Можно выделить следующие объекты: КЛИЕНТ МОДЕЛЬ АВТОМОБИЛЯ ЗАКАЗ ПРОДАВЕЦ Выделим атрибуты объекта КЛИЕНТ: «УНИКАЛЬНЫЙ КЛЮЧ» «НАИМЕНОВАНИЕ КЛИЕНТА» «АДРЕС КЛИЕНТА» и т.д. (пока)


Slide 4

Атрибуты объекта МОДЕЛЬ АВТОМОБИЛЯ: «УНИКАЛЬНЫЙ КЛЮЧ МОДЕЛИ» «НАИМЕНОВАНИЕ МОДЕЛИ» и т.д. ... Атрибуты объекта ЗАКАЗ: «КЛЮЧ КЛИЕНТА» «КЛЮЧ МОДЕЛИ» Атрибуты объекта ПРОДАВЕЦ: «УНИКАЛЬНЫЙ КЛЮЧ ПРОДАВЦА» «ФАМИЛИЯ» «ИМЯ ПРОДАВЦА» «ОТЧЕСТВО ПРОДАВЦА» ? «КЛЮЧ ПРОДАВЦА»


Slide 5

Взаимосвязь «один к одному» (между 2-мя типами объектов) ? Допустим, что в определенный момент времени один клиент может сделать только один заказ... Это допущение сделано с некоторой натяжкой... В этом случае между объектами КЛИЕНТ и ЗАКАЗ устанавливается взаимосвязь «один к одному» . КЛИЕНТ ЗАКАЗ Взаимосвязь «один ко многим» (между 2-мя типами объектов) времени один клиент может стать обладателем нескольких автомобилей, при этом один автомобиль не может принадлежать нескольким клиентам одновременно. КЛИЕНТ МОДЕЛЬ АВТОМОБИЛЯ ? В определенный момент


Slide 6

Продолжение... В этом случае: одной записи первого объекта (родительского) будет соответствовать несколько записей второго объекта (дочернего или подчиненного). 1 2 3 4 1 2 3 4 5 6 7 Взаимосвязь «один ко многим» очень распространена при разработке реляционных баз данных. В качестве родительского объекта часто выступает справочник, а в дочернем хранятся уникальные ключи для доступа к записям справочника. родительский дочерний


Slide 7

В нашем примере: в качестве справочника можно представить объект КЛИЕНТ, в котором хранятся сведения о всех клиентах. При обращении к записи определенного клиента нам будет доступен список всех покупок, которые он сделал и сведения о которых хранятся в объекте МОДЕЛЬ АВТОМОБИЛЯ. «Хитрая лиса» приобрел Mercedes, BMW и Toyota Corolla Объект «КЛИЕНТ» Объект «МОДЕЛЬ АВТОМОБИЛЯ»


Slide 8

Как определить какой тип связи существует между объектами 2-х множеств? интересуемых объектов нужно выделить один и проанализировать, с каким числом объектов другого множества он связан (взаимодействует). 1. Из первого множества Если этот объект взаимодействует со многими объектами другого множества, то это предпосылка к типу связи один-ко-многим. 2. С другой стороны, необходимо проанализировать ситуацию второго множества объектов, также выделив конкретного представителя этого множества.


Slide 9

Продолжение… Если объект второго множества взаимодействует с одним конкретным объектом первого множества, то тогда делается вывод: Тип этой связи - один-ко-многим. Если объект второго множества взаимодействует со многими объектами первого множества, то тогда делается вывод: Тип этой связи - многие-ко-многим. Если же объекты первого и второго множеств одинаково взаимодействуют друг с другом в одиночку, то делается вывод: Тип этой связи - один-к-одному


Slide 10

Продолжение… Один связан со многими Один связан с одним Примеры ТИП СВЯЗИ – ОДИН-КО-МНОГИМ Один связан с одним Один связан с одним ТИП СВЯЗИ – ОДИН-К-ОДНОМУ


Slide 11

Продолжение… Примеры ТИП СВЯЗИ – МНОГИЕ-КО-МНОГИМ Один связан со многими Один связан со многими


Slide 12

Замечания: В случае, если в дочернем объекте (МОДЕЛЬ АВТОМОБИЛЯ) будут какие-то записи, для которых нет соответствующих записей в объекте КЛИЕНТ, то они называются одинокими или потерянными. Таких ситуаций в таблицах нужно избегать. Это недопустимо!!! Для потерянных записей сведений о клиентах в таблице КЛИЕНТ мы не получим...


Slide 13

Взаимосвязь «многие ко многим» (между 2-мя типами объектов) ? В рассматриваемом примере продавец может обслужить нескольких клиентов (т.е. продать автомобиль). ? С другой стороны, приобретая автомобиль в различное время, каждый клиент вполне может быть обслужен различными продавцами. о б с л у ж и в а н и е...


Slide 14

КЛИЕНТ ПРОДАВЕЦ Между объектами КЛИЕНТ и ПРОДАВЕЦ существует взаимосвязь «многие ко многим» . Объект «КЛИЕНТ» Объект «ПРОДАВЕЦ» При просмотре данных в таблице «ПРОДАВЕЦ» мы сможем узнать, какие продавцы обслуживали определенного клиента.


Slide 15

Однако в объекте «ПРОДАВЕЦ» придется завести несколько записей для каждого продавца. Каждая запись будет соответствовать каждому обслуживанию клиента. При таком подходе мы столкнемся с серьезными ПРОБЛЕМАМИ! Например, мы не сможем ввести в объекте ПРОДАВЕЦ уникальный ключ продавца, т.к. один продавец будет обслуживать нескольких клиентов. Что делать в этой ситуации? недостатки


Slide 16

РЕШЕНИЕ согласно теории реляционных баз данных для хранения взаимосвязи «многие ко многим» требуется 3-и объекта: по одному для каждой сущности и один для хранения связей между ними (промежуточный объект). ! !


Slide 17

Преобразованные таблицы Объект «КЛИЕНТ» Объект «ПРОДАВЕЦ» Связующий объект


Slide 18

Наряду с взаимосвязями между объектами существуют взаимосвязи между атрибутами объектов. Здесь различают те же типы взаимосвязей Один к одному Один ко многим Многие ко многим 1?1 Допустим, клиент имеет ключ (номер), который является уникальным идентификатором. Он не изменяется при поступлениях заказов от данного клиента. 1.


Slide 19

Если наряду с номером клиента в БД хранится другой уникальный идентификатор (например, номер паспорта), то между ними существует связь: ОДИН-К-ОДНОМУ Имя клиента и его номер существуют совместно. НОМЕР КЛИЕНТА НОМЕР ПАСПОРТА 2. Каждому клиенту присваивается уникальный номер. Клиентов с одинаковыми именами может быть много, но все они имеют различные номера. Это означает, что данному номеру соответствует только одно имя.


Slide 20

НАПРИМЕР: Петр Иван 2 5 1 4 В итоге: ИМЯ КЛИЕНТА НОМЕР КЛИЕНТА ОДИН-КО-МНОГИМ Имеем связь типа:


Slide 21

3. Несколько клиентов с одинаковыми именами могли быть обслужены несколькими продавцами. Несколько продавцов с одинаковыми именами могли получить заказы от нескольких клиентов. Между атрибутами «ИМЯ КЛИЕНТА» и «ИМЯ ПРОДАВЦА» существует взаимосвязь ИМЯ КЛИЕНТА ИМЯ ПРОДАВЦА МНОГИЕ-КО-МНОГИМ


Slide 22

Типы логической модели данных Существует три основных типа логической модели данных: ИЕРАРХИЧЕСКАЯ СЕТЕВАЯ РЕЛЯЦИОННАЯ Они отличаются друг от друга способами представления взаимосвязей между объектами. Иерархическая и сетевая модели данных стали применяться в СУБД в начале 60-х годов. В начале 70-х годов была предложена реляционная модель данных.


Slide 23

Иерархическая модель строится по принципу иерархии объектов Один тип объекта является главным, а остальные, находящиеся на низших уровнях иерархии, - подчиненными. Уровень 1 и т.д. Схема иерархической модели


Slide 24

Между главным и подчиненными объектами устанавливается связь «один ко многим». Аналогично, для каждого экземпляра главного объекта может быть несколько экземпляров подчиненных типов объектов. Узлы и ветви образуют иерархическую древовидную структуру, которая предполагает несколько уровней подчинения. Узел - совокупность атрибутов, описывающих объект. Наивысший в иерархии узел называется корневым (это главный тип объекта). Корневой узел находится на первом уровне иерархии, подчиненные - на втором, третьем и т.д. уровнях. иерархическая модель применяется для организаций различного профиля: военных, административных, образовательных и т.д.


Slide 25

понятия главного и подчиненного объектов несколько расширены. Любой объект может быть и главным и подчиненным. Главный объект обозначается термином «владелец набора», а подчиненный - термином «член набора». Используется, например, в сетевых коммуникациях передачи данных. В сетевой модели данных


Slide 26

Один и тот же объект в данной модели может одновременно выступать: и в роли владельца, и в роли члена набора. Это означает, что каждый объект может участвовать в любом числе взаимосвязей. Реляционная модель данных В реляционной модели данных объекты и взаимосвязи между ними представляются с помощью таблиц. Взаимосвязи также рассматриваются в качестве объектов.


Slide 27

Таблица 1 Таблица 2 Таблица 3 Связь 2 Связь 1 Каждая таблица представляет один объект. таблица должна иметь первичный ключ (ключевой элемент) - поле или комбинацию полей, которые единственным образом идентифицируют каждую строку в таблице. В данной модели Благодаря своей простоте и естественности представления реляционная модель получила наибольшее распространение в СУБД для персональных компьютеров. Схема реляционной модели


Slide 28

закончена Тема


×

HTML:





Ссылка: