Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемich.tsu.ru
1 ТЕМА 3 Взаимосвязи в модели данных
2 При проектировании БД нам потребуется различать взаимосвязи: между объектами между атрибутами одного объекта и между атрибутами различных объектов Взаимосвязь показывает взаимодействие 2-х множеств различных объектов. Взаимосвязь показывает взаимодействие 2-х множеств различных объектов. Различают взаимосвязи типа : Различают взаимосвязи типа : «один к одному» «один ко многим» «многие ко многим»
3 Рассмотрим связи между объектами на примере автоматизации управления работой дилера по продаже легковых автомобилей. Общее описание предметной области Если клиент производит заказ на покупку автомобиля впервые, то осуществляется первичная регистрация его данных и сведений о сделанном заказе. 2. Если клиент производит заказ повторно, осуществляется регистрация только данного заказа. 3. Вне зависимости от того, сколько раз данный клиент производил заказы, он имеет уникальный идентификационный номер (уникальный ключ клиента).
4 Информация о каждом клиенте включает: - наименование клиента - адрес - телефон - факс - фамилию, имя, отчество - признак юридического лица - примечание Можно выделить следующие объекты: КЛИЕНТ МОДЕЛЬ АВТОМОБИЛЯ ЗАКАЗПРОДАВЕЦ Выделим атрибуты объекта КЛИЕНТ: «УНИКАЛЬНЫЙ КЛЮЧ» «НАИМЕНОВАНИЕ КЛИЕНТА» «АДРЕС КЛИЕНТА» и т.д. (пока)
5 Атрибуты объекта МОДЕЛЬ АВТОМОБИЛЯ: Атрибуты объекта МОДЕЛЬ АВТОМОБИЛЯ: «УНИКАЛЬНЫЙ КЛЮЧ МОДЕЛИ» «НАИМЕНОВАНИЕ МОДЕЛИ» и т.д.... Атрибуты объекта ЗАКАЗ: Атрибуты объекта ЗАКАЗ: «КЛЮЧ КЛИЕНТА» «КЛЮЧ МОДЕЛИ» Атрибуты объекта ПРОДАВЕЦ: Атрибуты объекта ПРОДАВЕЦ: «УНИКАЛЬНЫЙ КЛЮЧ ПРОДАВЦА» «ФАМИЛИЯ» «ИМЯ ПРОДАВЦА» «ОТЧЕСТВО ПРОДАВЦА» «КЛЮЧ ПРОДАВЦА»
6 Взаимосвязь «один к одному» (между 2-мя типами объектов) Допустим, что в определенный момент времени один клиент может сделать только один заказ... Допустим, что в определенный момент времени один клиент может сделать только один заказ... Это допущение сделано с некоторой натяжкой... Это допущение сделано с некоторой натяжкой... В этом случае между объектами КЛИЕНТ и ЗАКАЗ устанавливается взаимосвязь «один к одному». В этом случае между объектами КЛИЕНТ и ЗАКАЗ устанавливается взаимосвязь «один к одному». КЛИЕНТКЛИЕНТЗАКАЗЗАКАЗ Взаимосвязь «один ко многим» (между 2-мя типами объектов) времени один клиент может стать обладателем нескольких автомобилей, при этом один автомобиль не может принадлежать нескольким клиентам одновременно. времени один клиент может стать обладателем нескольких автомобилей, при этом один автомобиль не может принадлежать нескольким клиентам одновременно. КЛИЕНТКЛИЕНТ МОДЕЛЬ АВТОМОБИЛЯ В определенный момент В определенный момент
7 Продолжение... В этом случае: одной записи первого объекта (родительского) будет соответствовать несколько записей второго объекта (дочернего или подчиненного) Взаимосвязь «один ко многим» очень распространена при разработке реляционных баз данных. Взаимосвязь «один ко многим» очень распространена при разработке реляционных баз данных. В качестве родительского объекта часто выступает справочник, а в дочернем хранятся уникальные ключи для доступа к записям справочника. родительский дочерний
8 В нашем примере: в качестве справочника можно представить объект КЛИЕНТ, в котором хранятся сведения о всех клиентах. При обращении к записи определенного клиента нам будет доступен список всех покупок, которые он сделал и сведения о которых хранятся в объекте МОДЕЛЬ АВТОМОБИЛЯ. «Хитрая лиса» приобрел Mercedes, BMW и Toyota Corolla «Хитрая лиса» приобрел Mercedes, BMW и Toyota Corolla Объект «КЛИЕНТ» Объект « МОДЕЛЬ АВТОМОБИЛЯ »
9 Как определить какой тип связи существует между объектами 2-х множеств? один интересуемых объектов нужно выделить один и проанализировать, с каким числом объектов другого множества он связан (взаимодействует). интересуемых объектов нужно выделить один и проанализировать, с каким числом объектов другого множества он связан (взаимодействует). 1. Из первого множества 1. Из первого множества Если этот объект взаимодействует со многими объектами другого множества, то это предпосылка к типу связи один-ко-многим. 2. С другой стороны, необходимо проанализировать ситуацию второго множества объектов, также выделив конкретного представителя этого множества.
10 Продолжение… Если объект второго множества взаимодействует с одним конкретным объектом первого множества, то тогда делается вывод : Тип этой связи - один-ко-многим. Если объект второго множества взаимодействует со многими объектами первого множества, то тогда делается вывод : Тип этой связи - многие-ко-многим. Если же объекты первого и второго множеств одинаково взаимодействуют друг с другом в одиночку, то делается вывод : Тип этой связи - один-к-одному
11 Продолжение… Один связан со многими Один связан со многими Один связан с одним Один связан с одним ТИП СВЯЗИ – ОДИН-КО-МНОГИМ Один связан с одним ТИП СВЯЗИ – ОДИН-К-ОДНОМУ
12 Продолжение… ТИП СВЯЗИ – МНОГИЕ-КО-МНОГИМ ТИП СВЯЗИ – МНОГИЕ-КО-МНОГИМ Один связан со многими
13 Замечания: В случае, если в дочернем объекте (МОДЕЛЬ АВТОМОБИЛЯ) будут какие-то записи, для которых нет соответствующих записей в объекте КЛИЕНТ, то они называются одинокими или потерянными. Таких ситуаций в таблицах нужно избегать. Таких ситуаций в таблицах нужно избегать. Это недопустимо!!! Для потерянных записей сведений о клиентах в таблице КЛИЕНТ мы не получим...
14 Взаимосвязь «многие ко многим» (между 2-мя типами объектов) Взаимосвязь «многие ко многим» (между 2-мя типами объектов) В рассматриваемом примере продавец может обслужить нескольких клиентов (т.е. продать автомобиль). С другой стороны, приобретая автомобиль в различное время, каждый клиент вполне может быть обслужен различными продавцами. С другой стороны, приобретая автомобиль в различное время, каждый клиент вполне может быть обслужен различными продавцами час час час. о б с л у ж и в а н и е...
15 КЛИЕНТКЛИЕНТПРОДАВЕЦПРОДАВЕЦ Между объектами КЛИЕНТ и ПРОДАВЕЦ существует взаимосвязь «многие ко многим». Между объектами КЛИЕНТ и ПРОДАВЕЦ существует взаимосвязь «многие ко многим». Объект «КЛИЕНТ» Объект «ПРОДАВЕЦ» НАПРИМЕР: При просмотре данных в таблице «ПРОДАВЕЦ» мы сможем узнать, какие продавцы обслуживали определенного клиента.
16 Однако в объекте «ПРОДАВЕЦ» придется завести несколько записей для каждого продавца. Однако в объекте «ПРОДАВЕЦ» придется завести несколько записей для каждого продавца. Каждая запись будет соответствовать каждому обслуживанию клиента. При таком подходе мы столкнемся с серьезными ПРОБЛЕМАМИ! мы не сможем ввести в объекте ПРОДАВЕЦ уникальный ключ продавца, т.к. один продавец будет обслуживать нескольких клиентов.
17 РЕШЕНИЕ согласно теории реляционных баз данных для хранения взаимосвязи «многие ко многим» требуется 3-и объекта: согласно теории реляционных баз данных для хранения взаимосвязи «многие ко многим» требуется 3-и объекта: по одному для каждой сущности и один для хранения связей между ними (промежуточный объект). ! ! ! ! Промежуточный объект будет содержать идентификаторы связанных объектов. объект 1 объект 2 связующий объект
18 Преобразованные таблицы Объект «КЛИЕНТ» Объект «ПРОДАВЕЦ» Связующий объект
19 Наряду с взаимосвязями между объектами существуют взаимосвязи между атрибутами объектов. Здесь различают те же типы взаимосвязей Здесь различают те же типы взаимосвязей Один к одному Один ко многим Многие ко многим Взаимосвязи между атрибутами 1 Допустим, клиент имеет ключ (номер), который является уникальным идентификатором. Он не изменяется при поступлениях заказов от данного клиента
20 Если наряду с номером клиента в БД хранится другой уникальный идентификатор (например, номер паспорта ), то между ними существует связь: ОДИН-К-ОДНОМУ Имя клиента и его номер существуют совместно. Имя клиента и его номер существуют совместно. НОМЕР КЛИЕНТА НОМЕР ПАСПОРТА НОМЕР ПАСПОРТА 2. Каждому клиенту присваивается уникальный номер. Каждому клиенту присваивается уникальный номер. Клиентов с одинаковыми именами может быть много, но все они имеют различные номера. Это означает, что данному номеру соответствует только одно имя. Это означает, что данному номеру соответствует только одно имя. 1 1
21 НАПРИМЕР: Н А П Р И М Е Р : Петр Иван В итоге: ИМЯ КЛИЕНТА НОМЕР КЛИЕНТА НОМЕР КЛИЕНТА ОДИН-КО-МНОГИМ Имеем связь типа: Имеем связь типа:
22 3. Несколько клиентов с одинаковыми именами могли быть обслужены несколькими продавцами. Несколько продавцов с одинаковыми именами могли получить заказы от нескольких клиентов. Между атрибутами «ИМЯ КЛИЕНТА» и «ИМЯ ПРОДАВЦА» существует взаимосвязь Между атрибутами «ИМЯ КЛИЕНТА» и «ИМЯ ПРОДАВЦА» существует взаимосвязь ИМЯ КЛИЕНТА ИМЯ ПРОДАВЦА ИМЯ ПРОДАВЦА МНОГИЕ-КО-МНОГИМ
23 Существует три основных типа логической модели данных: Существует три основных типа логической модели данных: Они отличаются друг от друга способами представления взаимосвязей между объектами. Они отличаются друг от друга способами представления взаимосвязей между объектами. Иерархическая и сетевая модели данных стали применяться в СУБД в начале 60-х годов. В начале 70-х годов была предложена реляционная модель данных.
24 строится по принципу иерархии объектов Один тип объекта является главным, а остальные, находящиеся на низших уровнях иерархии, - подчиненными. Один тип объекта является главным, а остальные, находящиеся на низших уровнях иерархии, - подчиненными. Уровень 1 Уровень 2 Уровень 3 и т.д. Схема иерархической модели
25 Между главным и подчиненными объектами устанавливается связь «один ко многим». Аналогично, для каждого экземпляра главного объекта может быть несколько экземпляров подчиненных типов объектов. Узлы и ветви образуют иерархическую древовидную структуру, которая предполагает несколько уровней подчинения. Узлы и ветви образуют иерархическую древовидную структуру, которая предполагает несколько уровней подчинения. Узел - совокупность атрибутов, описывающих объект. Наивысший в иерархии узел называется корневым (это главный тип объекта). Корневой узел находится на первом уровне иерархии, подчиненные - на втором, третьем и т.д. уровнях. Корневой узел находится на первом уровне иерархии, подчиненные - на втором, третьем и т.д. уровнях. иерархическая модель применяется для организаций различного профиля: военных, административных, образовательных и т.д.
26 понятия главного и подчиненного объектов несколько расширены. понятия главного и подчиненного объектов несколько расширены. Любой объект может быть и главным и подчиненным. Любой объект может быть и главным и подчиненным. Главный объект обозначается термином «владелец набора», а подчиненный - термином «член набора». Главный объект обозначается термином «владелец набора», а подчиненный - термином «член набора». Схема сетевой модели данных Используется, например, в сетевых коммуникациях передачи данных. Используется, например, в сетевых коммуникациях передачи данных. В сетевой модели данных
27 Один и тот же объект в данной модели может одновременно выступать: и в роли владельца, и в роли члена набора. Это означает, что каждый объект может участвовать в любом числе взаимосвязей. Это означает, что каждый объект может участвовать в любом числе взаимосвязей. В реляционной модели данных объекты и взаимосвязи между ними представляются с помощью таблиц. В реляционной модели данных объекты и взаимосвязи между ними представляются с помощью таблиц. Взаимосвязи также рассматриваются в качестве объектов.
28 Таблица 1 Таблица 2 Таблица 3 Каждая таблица представляет один объект. образом таблица должна иметь первичный ключ (ключевой элемент) - поле или комбинацию полей, которые единственным образом идентифицируют каждую строку в таблице. В данной модели Благодаря своей простоте и естественности представления реляционная модель получила наибольшее распространение в СУБД для персональных компьютеров.
29 закончена
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.