- •1. Технические средства информатики
- •1.1. Типы эвм
- •1.1.1. Краткая история создания эвм
- •1.1.1.1. Механические и электромеханические вычислительные машины
- •1.1.1.2. Электронные вычислительные машины
- •1.1.2. Архитектура эвм
- •1.1.3. Классификация современных эвм
- •1.2. Аппаратные средства эвм
- •1.2.1. Состав и особенности основных устройств
- •Внутренняя память.
- •1.2.2. Периферийные устройства (устройства ввода/вывода)
- •1.2.3. Внешняя память
- •1.3. Представление данных в эвм
- •1.3.1. Единицы измерения количества и объема информации
- •1.3.2. Системы счисления
- •III (три); lix (пятьдесят девять); dlv (пятьсот пятьдесят пять).
- •1.3.3. Типы данных и их представление
- •1.3.3.1. Базовые типы данных
- •1.3.3.2. Целые типы данных
- •1.3.3.3. Вещественные типы данных
- •1.3.3.4. Текстовый тип данных
- •1.3.3.5. Логический тип данных
- •1.3.3.6. Кодирование графической информации
- •1.3.3.7. Кодирование звуковой информации
- •1.3.4. Структуры данных. Файловая структура
- •1.3.4.1. Структуры данных
- •1.3.4.2. Файловая структура
- •1.4. Компьютерные сети
- •1.4.1. Основные особенности компьютерных сетей
- •1.4.2. Основные концепции сетевого программного обеспечения
- •1.4.3. Топология локальной сети
- •1.4.4. Основные устройства обеспечения сетевого взаимодействия
- •1.4.5. Основные особенности глобальной сети Internet
- •1.4.6. Виды услуг в Internet
- •2. Алгоритмические средства информатики (представление данных)
- •2.1. Основные особенности информации
- •2.1.1. Данные и знания
- •2.1.2. Информационное моделирование
- •2.2. Уровни моделей данных
- •2.3. Абстракции
- •2.4. Множество. Кортеж
- •2.5. Домены и атрибуты
- •2.6. Отношения
- •2.7. Табличное представление данных
- •2.8. Представление данных в виде графа
- •2.9. Отображение
- •2.10. Виды связи
- •2.11. Типы моделей представления данных
- •2.11.1. Реляционная модель
- •2.11.2. Иерархическая модель
- •2.11.3. Сетевая модель
- •2.11.3. Сетевая модель
- •2.11.3. Сетевая модель
- •2.12. Ограничения целостности
- •2.12.1. Виды ограничений целостности
- •2.12.2. Явные ограничения целостности
- •2.13. Операции над данными
2.8. Представление данных в виде графа
Графом называется кортеж двух множеств
G = <X, R>,
где X = {x1, x2, ..., xn} – множество вершин,
R = {r1, r2, ..., rm} – множество рёбер (дуг), соединяющих вершины множества X.
Если дуги не имеют направлений, то граф называется неориентированным. Если дуги имеют направления, то граф называется ориентированным. Часто граф изображается в виде схемы.
В неориентированном графе каждая дуга – это множество, состоящее из двух элементов, соединяющихся данной дугой. Например, если ri соединяет вершины xj и xk, то ri = {xj, xk}.
В ориентированном графе каждая дуга ri представляется кортежем, то есть ri = <xj, xk>. При этом в первой позиции указывается вершина, из которой дуга исходит, а во второй позиции – вершина, к которой эта дуга направлена.
Например,
Данный граф – неориентированный. Здесь множество вершин состоит из семи элементов X = {x1, ..., x7}, а множество дуг – из восьми элементов R = {r1, ..., r8}, где r1 = {x1, x2}, r2 = {x1, x3}, r3 = {x1, x5} и т.д.
Например, для рассматриваемого примера графы описания интенсионала типа объекта СЛУЖАЩИЙ имеют следующий вид:
Первый граф определяет тип объекта СЛУЖАЩИЙ как агрегат атрибутов, составляющих этот тип. Второй граф показывает, что атрибут Номер является ключевым.
Заметим, что схемы агрегации и обобщения являются графами. С помощью графа можно показать ключевой атрибут. В таком графе вершины соответствуют атрибутам, составляющим тип. Вершину, соответствующую ключевому атрибуту, соединяют направленными дугами с вершинами, соответствующими другим атрибутам. Если ключ составной (состоит из нескольких атрибутов), то в графе указывается формальная (внутренняя) вершина, позволяющая связать атрибуты, составляющие ключ, и остальные атрибуты.
Например, тот факт, что в типе объекта
ПОСТАВЩИК(Имя, Адрес, Товар, Сумма, Количество)
ключ состоит из атрибутов Имя и Адрес, можно показать следующим графом:
Граф – это удобная форма представления связей (как интенсиональных, так и экстенсиональных). При этом каждая вершина представляет тип объекта, конкретную реализацию или множество реализаций. Дуги между вершинами соответствуют типу связи или реализации связи. Связь, обычно, именуется, а дуга, которой она изображается, соединяет две вершины, помечаемые именами типов объектов.
Например, тип связи НАНИМАТЕЛЬ типов объектов СЛУЖАЩИЙ и КОМПАНИЯ можно представить следующим образом:
Часто в моделях данных одновременно используют графы и таблицы: граф с вершинами-таблицами. В этом случае связи между атрибутами одного и того же типа объекта представляются таблицами, а связи между типами объектов – дугами графа.
2.9. Отображение
Правило (обозначим его R), которое элементам одного множества (например, S1) ставит в соответствие элементы другого множества (например, S2), называется отображением из S1 в S2. Кратко это записывается следующим образом:
Пусть S1 = {c1, c2, . . ., c6}, S2 = {d1, d2, . . ., d7} и задано конкретное отображение R : S1 → S2.Тогда графически подобное отображение можно представить следующим образом:
Здесь показано, какие соответствия устанавливает данное отображение R для каждого элемента множества S1 с элементами множества S2.
R : S1 → S2.
Отображение описывает связь элементов множества S1 с элементами множества S2.
Отображение используется в моделировании данных как способ описания связей как между атрибутами, так и между типами объектов. При этом имеются в виду связи между элементами множеств, поскольку атрибуты и типы объектов представляются множеством конкретных реализаций. Рассматривая эти связи, предполагается, что существует некоторое правило, которое ставит в соответствие элементам одного множества элементы другого множества. Если это правило известно, то оно формулируется интенсионально, а если неизвестно, то может быть представлено экстенсионально перечислением связанных элементов. Связи между элементами этих множеств могут быть различны. Соответственно этому будут различны и отображения. Кроме них, могут существовать и различные отображения из S2 в S1, которые элементам множества S2 ставят в соответствие элементы множества S1.
Если a – элемент множества S1 (то есть a S1), то множество соответствующих ему элементов в S2 называется его образом при отображении R и обозначается R(a). Совокупность всех элементов в S1, образом которых является элемент b S2, называется прообразом этого элемента.
Отображение Q : S2 → S1 называется обратным отображению R : S1 → S2, если оно любому элементу b S2 ставит в соответствие такое множество Q(b) элементов в S1, образом которых при отображении R является данный элемент b, то есть b = R(Q(b)). Таким образом, обратное отображение – это не любое отображение из S2 в S1, а непосредственно связанное с прямым указанным выше требованием. Заметим, что для любого отображения существует обратное ему отображение. Отображение, обратное отображению R : S1 → S2, обозначается R-1 : S2 → S1.
Следует иметь в виду, что правило соответствия (то есть отображение) может быть задано как угодно – формулой, таблицей, словесным описанием и т.д.
Например, пусть в документе НА_СКЛАДЕ для каждого склада указаны все находящиеся в нем виды товаров, а в документе ГДЕ_ТОВАР для каждого вида товара указано, в каких складах находятся товары этого вида. При этом данные документы соответствуют друг другу (согласованы друг с другом). Тогда в краткой форме это выражается следующим образом:
НА_СКЛАДЕ : СКЛАД → ТОВАР
ГДЕ_ТОВАР : ТОВАР → СКЛАД
НА_СКЛАДЕ = ГДЕ_ТОВАР-1
С помощью отображений, в частности, удобно записывать условия принадлежности при интенсиональном определении отношений.
Например, пусть необходимо записать отношение ПОСТАВКА между множествами
ПОСТАВЩИК = {p1, p2, ..., pn} и
ТОВАР = {t1, t2, ..., tm}
при условии, что поставщик поставляет данный товар.
Декартово произведение этих множеств можно записать так:
Q = ПОСТАВЩИК × ТОВАР = {<p, t> | p ПОСТАВЩИК; t ТОВАР}
Для записи отношения необходимо указать дополнительное условие. Для этого определим отображение
ПОСТ : ПОСТАВЩИК → ТОВАР
Тогда отношение ПОСТАВКА записывается следующим образом:
ПОСТАВКА = {<p, t> | p ПОСТАВЩИК; t товар; t ПОСТ(p)}
Здесь ПОСТ(p) – образ элемента p в множестве ТОВАР, то есть множество всех товаров, поставляемых поставщиком p. Запись t ПОСТ(p) означает, что t – один из товаров, поставляемых поставщиком p.
Если для каждого a S1 существует образ в S2, то есть R(a) S2, то R называется полным (полностью определенным на S1) отображением. Если в S1 существуют элементы, для которых нет образов в S2, то R называется частичным или неполным (частично определенным на S1) отображением.
Данный рисунок показывает, что отображение R является неполным, а R-1 – полным.
Здесь образы элементов множества S1 находятся в множестве S2 и формируются отображением R. При этом прообразы устанавливаются для элементов множества S2 и находятся в S1. Например, для c3 образом является множество R(c3) = {d2, d3, d4}, а прообраз элемента d3 – множество R –1(d3) = {c1, c3}.
Например, из данного рисунка видно, что кардинальное число элемента c1 равно трем, элемента c2 – нулю, элемента c6 – двум.
Из рисунка следует, что для отображения R : S1 → S2 минимальное кардинальное число равно нулю, а максимальное – трем. Для обратного отображения R–1 : S2 → S1 минимальное кардинальное число равно единице, а максимальное – трем.
Количество элементов одного множества, связанных с одним элементом другого (то есть количество элементов в образе этого элемента), называется кардинальным числом данного элемента. Для любого отображения можно определить минимальное и максимальное кардинальные числа. Минимальным (максимальным) кардинальным числом при отображении R : S1 → S2 называется минимальное (максимальное) количество элементов в образах элементов множества S1. Заметим, что значение минимального кардинального числа указывает на полноту отображения: для полного оно больше нуля, а для частичного – равно нулю.