русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Обобщенные структуры или модели данных


Дата добавления: 2013-12-24; просмотров: 2151; Нарушение авторских прав


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

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

Любая модель данных должна содержать три компоненты:

1. структура данных - описывает точку зрения пользователя на представление данных.

2. набор допустимых операций, выполняемых на структуре данных. Модель данных предполагает, как минимум, наличие языка определения данных (ЯОД), описывающего структуру их хранения, и языка манипулирования данными (ЯМД), включающего операции извлечения и модификации данных.

3. ограничения целостности - механизм поддержания соответствия данных предметной области на основе формально описанных правил.

В процессе исторического развития в СУБД использовалось следующие модели данных:

§ иерархическая,

§ сетевая,

§ реляционная.

В последнее время все большее значение приобретает объектно-ориентированный подход к представлению данных.


Глава 2. Модель «сущность-связь»

2.1.Назначение модели «сущность-связь»

Прежде, чем приступать к созданию системы автоматизированной обработки информации, разработчик должен сформировать понятия о предметах, фактах и событиях, которыми будет оперировать данная система. Для того, чтобы привести эти понятия к той или иной модели данных, необходимо заменить их информационными представлениями. Одним из наиболее удобных инструментов унифицированного представления данных, независимого от реализующего его программного обеспечения, является модель «сущность-связь» (entity - relationship model, ER - model).



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

Модель «сущность-связь» была предложена в 1976 г. Питером Пин-Шэн Ченом.

2.2.Элементы модели «сущность-связь».

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

Сущность (entity) – любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, типом сущности может быть ГОРОД, а экземпляром – Москва, Киев и т.д. Сущность представляет собой множество атрибутов.

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

Пример:
Рассмотрим множество студентов института. Каждого из них можно описать с помощью характеристик Номер зачетки, ФИО, Год рождения, Номер Группы. Поэтому, сущность СТУДЕНТ имеет атрибуты Номер_зачетки, ФИО, Год_рождения, Номер_Группы. Используя нотацию языка Pascal этот факт можно представить как:

type employe = record

number : string[6];

FIO : string[50];

God_rogdenia : integer;

Gruppa : string[6];

end;

 

В дальнейшем для определения сущности и ее атрибутов будем использовать обозначение вида

СТУДЕНТ(Номер_зачетки, ФИО, Год_рождения, Номер_Группы).

Группы, в которых учатся студенты, можно описать как

ГРУППА(Номер_Группы, Наименование, Староста).

Множество значений (область определения) атрибута называется доменом. Например, для атрибута Год_рождения домен (назовем его Год) задается интервалом целых чисел больших нуля, а для атрибута Пол домен задается значениями “мужской” и “женский”.

Ключ – минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся. Для сущности Студент ключом является атрибут Номер_зачетки или набор: Номер_группы, Номер_по_списку (последний атрибут необходимо в этом случае добавить в сущность СТУДЕНТ).

Связь (relationship) – ассоциирование двух или более сущностей. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных – это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи. А так как в реальных базах данных нередко содержатся сотни или даже тысячи сущностей, то теоретически между ними может быть установлено более миллиона связей. Наличие такого множества связей и определяет сложность инфологических моделей

Примеры:

поскольку каждый студент учится в какой-либо группе, между сущностями СТУДЕНТ и ГРУППА существует связь «учится в» или ГРУППА-СТУДЕНТ;

могут существовать и связи между сущностями одного типа, например связь РОДИТЕЛЬ - ПОТОМОК между двумя сущностями ЧЕЛОВЕК.

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

Роль сущности в связи - функция, которую выполняет сущность в данной связи. Например, в связи РОДИТЕЛЬ-ПОТОМОК сущности ЧЕЛОВЕК могут иметь роли «родитель» и «потомок». Указание ролей в модели «сущность-связь» не является обязательным и служит для уточнения семантики связи.

 

Обозначения сущностей:

Элемент диаграммы Обозначает
ИМЯ

независимая сущность
зависимая сущность

Список атрибутов приводится внутри прямоугольника, обозначающего сущность. Атрибуты, составляющие ключ сущности, группируются в верхней части прямоугольника и отделяются горизонтальной чертой.

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

Набор связей (relationship set) - это отношение между n (причем n не меньше 2) сущностями.

В случае n=2, т.е. когда связь объединяет две сущности, она называется бинарной. Доказано, что n-арный набор связей (n>2) всегда можно заменить множеством бинарных, однако первые лучше отображают семантику предметной области.

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

§ Связь один к одному (обозначается 1:1). Это означает, что в такой связи экземпляру сущности с одной ролью всегда соответствует не более одного экземпляра сущности с другой ролью.

§ В рассмотренном нами примере это связь «является старостой», поскольку в каждой группе может быть только один староста, а студент может быть старостой только в одной группе. Данный факт представлен на следующем рисунке, где прямоугольники обозначают сущности, а ромб - связь. Так как степень связи для каждой сущности равна 1, то они соединяются одной линией.

§

§ Рис. 2.1 Обозначение связи один к одному.

§

Другой важной характеристикой связи помимо ее степени является класс принадлежности входящих в нее сущностей или кардинальность связи. Так как в каждой группе обязательно должен быть староста, то каждому экземпляру сущности «ГРУППА» должен соответствовать экземпляр сущности «СТУДЕНТ». Однако, не каждый студент является старостой группы, следовательно в данной связи не каждый экземпляр сущности «СТУДЕНТ» имеет ассоциированный с ним экземпляр сущности «ГРУППА».

Таким образом, говорят, что сущность «СТУДЕНТ» имеет обязательный класс принадлежности (этот факт обозначается также указанием интервала числа возможных вхождений сущности в связь, в данном случае это 1,1), а сущность «ГРУППА» имеет необязательный класс принадлежности (0,1). Теперь данную связь мы можем описать как 0,1:1,1. В дальнейшем кардинальность бинарных связей степени 1 будем обозначать следующим образом:

§

0,1

 

§ Связь один ко многим (1:n). В данном случае экземпляру сущности с одной ролью может соответствовать любое число экземпляров сущности с другой ролью. Такова связь ГРУППА-СТУДЕНТ. В каждой группе может учиться произвольное число студентов, но студент может учиться только в одной группе.

§

§

 

§ Рис. 2.2 Обозначение связи один ко многим.

 

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

Здесь также необходимо учитывать класс принадлежности сущностей. Каждый студент должен учиться в какой-либо группе, но не каждая группа (например, вновь сформированный) должна включать хотя бы одного студента. Поэтому сущность «ГРУППА» имеет обязательный, а сущность «СТУДЕНТ» необязательный классы принадлежности. Кардинальность бинарных связей степени n будем обозначать так:

§

0,M
1,M

 

Связь много к одному (n:1). Эта связь аналогична отображению 1:n.

§ Связь многие ко многим (n:n). В этом случае каждая из ассоциированных сущностей может быть представлена любым количеством экземпляров.

§ Пусть на рассматриваемом нами институте существует несколько научных секций (научных групп, кружков и т.д.), в которые входят студенты разных групп. Поскольку каждый студент может входить в несколько (в том числе и ни в одну) секций, а каждая секция должна включать не менее одного студента, то связь между сущностями СТУДЕНТ и СЕКЦИЯ имеет степень n:n.

§

§ Рис. 2.3 Обозначение связи многие ко многим.

Обозначение кардинальности связей:

Элемент диаграммы Обозначает
0,1
0,M
1,M

 

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

Обозначения связей:

Элемент диаграммы Обозначает
идентифицирующая связь
неидентифицирующая связь

 



<== предыдущая лекция | следующая лекция ==>
Основные типы данных | 


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.071 сек.