Сетевая модель данных

Содержание

Слайд 2

СОДЕРЖАНИЕ Краткая история Сетевая структура данных Операции над сетевой структурой данных

СОДЕРЖАНИЕ

Краткая история
Сетевая структура данных
Операции над сетевой структурой данных
Ограничения целостности сетевой структуры данных
Преимущества

и недостатки
Слайд 3

История возникновения Data Base Task Group (DBTG) CODASYL Отчеты DBTG в

История возникновения

Data Base Task Group (DBTG) CODASYL
Отчеты DBTG в 1971

и 1978 г.
Предложена сетевая модель данных, поддерживающая связи типа m:n
Впервые специфицированы языки БД:
ЯОД схемы (концептуальный уровень)
ЯОД подсхемы (внешний уровень)
Язык определения хранимых данных – ЯОХД (внутренний уровень)
ЯМД
Реализация - Integrated Database Management System (IDMS) компании Cullinet Software, Inc.,
Слайд 4

Поле и тип записи Графическая нотация: ПРЕПОДАВАТЕЛЬ (ФИО, Должность, Адрес) Поле

Поле и тип записи

Графическая нотация:

ПРЕПОДАВАТЕЛЬ (ФИО, Должность, Адрес)

Поле данных – элементарное

поименованное данное. Его экземпляр представляет значение данного.
Тип записи – поименованная совокупность имен полей:

ПРЕПОДАВАТЕЛЬ

ФИО

Должность

Адрес

ПРЕПОДАВАТЕЛЬ

Иванов

профессор

Киев

Экземпляр типа записи – набор экземпляров полей:

Слайд 5

Ключи Две или более записи одного типа могут быть идентичными в

Ключи

Две или более записи одного типа могут быть идентичными в сетевой

базе данных с точки зрения значений их полей.

Ключ базы данных (КБД) – это уникальный внутренний идентифи-катор записи. КБД автоматически присваивается записи при ее запоминании в БД и не изменяется при любых изменениях записи.

Ключ CALC – это внутренний идентификатор записи, который присваивается ей на основании значений определенных полей (элементов данных) записи.

Слайд 6

Набор Набор – это поименованная двухуровневая иерархическая связь типов записей. С

Набор

Набор – это поименованная двухуровневая иерархическая связь типов записей. С помощью

композиции наборов строятся многоуровневые иерархические и сетевые структуры.

Владелец набора
Члены набора

Экземпляр набора включает один экземпляр записи-владельца и любое количество экземпляров каждого типа записи-члена набора

Таким образом, набор описывает двухуровневую иерархическую связь типа один-ко-многим.

Слайд 7

Пример набора и его экземпляра

Пример набора и его экземпляра

Слайд 8

Многоуровневая иерархия

Многоуровневая иерархия

Слайд 9

Представление связей m:n

Представление связей m:n

Слайд 10

Схема и экземпляр связи m:n Преподаватели Лекции Дисциплины

Схема и экземпляр связи m:n

Преподаватели

Лекции

Дисциплины

Слайд 11

Циклы и петли

Циклы и петли

Слайд 12

Варианты сетевой структуры данных

Варианты сетевой структуры данных

Слайд 13

Приложение и СУБД Рабочая область пользователя (РОП) содержит: индикаторы текущего состояния, записи, статус ошибки.

Приложение и СУБД

Рабочая область пользователя (РОП) содержит:
индикаторы текущего состояния,
записи,
статус ошибки.

Слайд 14

Операции сетевой модели данных Выборка данных: FIND (поиск записи) GET (выбора

Операции сетевой модели данных

Выборка данных:
FIND (поиск записи)
GET (выбора записи)
Манипулирование данными:
STORE (запоминание

нового экземпляра записи)
INSERT (вставка записи-члена в экземпляр набора)
REMOVE (удаление записи-члена из экземпляра набора)
DELETE (удаление текущей записи)
MODIFY (модификация текущей записи)
Слайд 15

Операции выбора данных Прямой поиск. Находит требуемую запись и соответствующим образом

Операции выбора данных

Прямой поиск. Находит требуемую запись и соответствующим образом изменяет

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

FIND

Помещает найденную запись в РОП.

GET

Слайд 16

Нахождение записи по ключу БД FIND [имя-записи] RECORD BY DATABASE KEY

Нахождение записи по ключу БД

FIND [имя-записи] RECORD BY DATABASE KEY [переменная]

Синтаксис:

Пример:

X=10;


FIND Faculty RECORD BY DATABASE KEY X;
If Error_Status=0 then GET Faculty;
Else Print "Not Found !";
Слайд 17

Нахождение записи по ее полям Чтобы найти запись по ее полям,

Нахождение записи по ее полям

Чтобы найти запись по ее полям, такие

поля должны быть определены в схеме БД как, так называемые, CALC-ключи.

FIND [имя-записи] RECORD BY CALC-KEY

Синтаксис:

Пример: Найти запись лекции, у которой поле LID равно «L3». (Поле LID определено как CALC-поле)

Lecture.LID = "L3";
FIND Lecture RECORD BY CALC-KEY;

Слайд 18

Просмотр экземпляра набора Экземпляр набора может быть представлен как «кольцо», состоящее

Просмотр экземпляра набора

Экземпляр набора может быть представлен как «кольцо», состоящее из

экземпляра-владельца и экземпляров членов набора. Записи-члены набора упорядочены.

SUBJECT

LECTURE

Is taught at

Has

TEACHER

Слайд 19

Следующая запись-член в экземпляре набора FIND NEXT [имя-записи] RECORD IN [имя-набора]

Следующая запись-член в экземпляре набора

FIND NEXT [имя-записи] RECORD IN [имя-набора] SET

Синтаксис:

Пример:

FIND

NEXT Lecture RECORD IN Has SET;

Текущий экземпляр набора “Has”

L2 - текущая запись-член набора “Has”

L3 - следующая запись-член набора “Has”

Error_Status != 0 – достигнут конец записей-членов в экземпляре набора

Слайд 20

Предыдущая запись в экземпляре набора FIND PRIOR [имя-записи] RECORD IN [имя-набора]

Предыдущая запись в экземпляре набора

FIND PRIOR [имя-записи] RECORD IN [имя-набора] SET

Синтаксис:

Пример:

FIND

PRIOR Lecture RECORD IN Has SET;

L3 - текущая запись-член набора “Has”

Текущий экземпляр набора “Has”

L2 - Предыдущая запись-член набора “Has”

Error_Status != 0 – достигнуто начало записей-членов в экземпляре набора

Is_taught_at

Слайд 21

Первая, последняя запись в экземпляре набора FIND FIRST|LAST [имя-записи] RECORD IN

Первая, последняя запись в экземпляре набора

FIND FIRST|LAST [имя-записи] RECORD IN [имя-набора]

SET

Синтаксис:

Пример:

FIND FIRST Lecture RECORD IN Has SET;

Текущий экземпляр набора “Has”

L1 - первая запись-член набора “Has”

Error_Status != 0 – экземпляр набора не имеет записей-членов

L1 L2 L3 L4 L5

S1 S2 S3

T1 T2

Слайд 22

Нахождение записи-владельца текущего экземпляра набора FIND OWNER OF [имя-набора] SET Синтаксис:

Нахождение записи-владельца текущего экземпляра набора

FIND OWNER OF [имя-набора] SET

Синтаксис:

Пример:

FIND OWNER

OF Has SET

Текущий экземпляр набора “Has”

L2 - текущая запись-член набора “Has”

T1 - запись-владелец набора “Has”

Слайд 23

Пример X = ”T1”; FIND Teacher RECORD BY DATABASE KEY X;

Пример

X = ”T1”;
FIND Teacher RECORD BY DATABASE KEY X;
FIND LAST

Lecture RECORD IN Has SET;
FIND OWNER OF Is_taught_at SET;
FIND LAST Lecture RECORD IN Is_taught_at SET;
FIND NEXT Lecture RECORD IN Has SET;
FIND OWNER OF Is_taught_at SET;

T1
L3
S2
L4
L5
S3

Слайд 24

Запоминание экземпляра записи Создать экземпляр записи в РОП; Выполнить команду STORE.

Запоминание экземпляра записи

Создать экземпляр записи в РОП;
Выполнить команду STORE.

STORE [тип-записи]

RECORD

Синтаксис:

Пример:

STORE Teacher RECORD

Вставка производится в экземпляр текущего набора

Слайд 25

Присоединение экземпляра записи из БД к экземпляру набора Сделать требуемый экземпляр

Присоединение экземпляра записи из БД к экземпляру набора

Сделать требуемый экземпляр набора

текущим
Сделать присоединяемый экземпляр записи текущим
Выполнить команду INSERT

INSERT [тип-записи] RECORD INTO [тип-набора] SET

Синтаксис:

Пример:

x=31; FIND Teacher RECORD BY DATABASE KEY x;
y=24; FIND Lecture RECORD BY DATABASE KEY y;
INSERT Lecture RECORD INTO Has SET;

Слайд 26

Отсоединение экземпляра записи от экземпляра набора Сделать требуемый экземпляр записи текущим

Отсоединение экземпляра записи от экземпляра набора

Сделать требуемый экземпляр записи текущим
Выполнить команду

REMOVE

REMOVE [тип-записи] RECORD FROM [тип-набора] SET

Синтаксис:

Пример: Удалить все лекции у преподавателя с ID 31.

x=31; FIND Teacher RECORD BY DATABASE KEY x;
Loop: FIND NEXT Lecture RECORD IN Has SET;
IF Error_Status=0 THEN BEGIN; REMOVE Lecture RECORD FROM Teacher SET;
GO TO Loop;
END;

Слайд 27

Изменение экземпляра записи Команда MODIFY копирует значение записи из РОП в

Изменение экземпляра записи

Команда MODIFY копирует значение записи из РОП в текущий

экземпляр записи БД.

Пример: Заменить у преподавателя с ключом базы данных 31 имя на «Иванов».

x=31; FIND Teacher RECORD BY DATABASE KEY x;
GET Teacher RECORD;
Teacher.Name = ”Иванов”;
MODIFY RECORD;

Слайд 28

Удаление экземпляра записи из БД Команда DELETE удаляет текущий экземпляр записи

Удаление экземпляра записи из БД

Команда DELETE удаляет текущий экземпляр записи из

БД
Владелец набора может быть удален, когда в этом наборе отсутствуют записи-члены

DELETE [тип-записи] RECORD

Синтаксис:

Пример: Удалить лекцию с ID 21.

x=21; FIND Lecture RECORD BY DATABASE KEY x;
DELETE Lecture RECORD;