
- •1. Структурная схема микропроцессора (на примере i8086). Назначение регистров.
- •3. Организация основной памяти.
- •3. Структура и характеристики оперативной памяти
- •4. Модель osi
- •5. Стек протоколов tcp/ip
- •6. Классификация компьютерных сетей
- •7. Данные и модели данных
- •8. Модель данных «сущность-связь»
- •Ограничения целостности
- •9. Реляционная модель данных
- •10. Основные направления исследования в области ии
- •11. Метод резолюции в лппп.
- •12. Продукционная модель
- •13. Основные парадигмы языков программирования.
- •14. Основные понятия ооп: инкапсуляция, наследование, полиморфизм
- •1. Инкапсуляция
- •2. Полиморфизм
- •3. Наследование
- •15. Понятие алгоритма.
- •16. Понятие о временной и емкостной сложности алгоритма
- •17. Машина Тьюринга: детерминированная и недетерминированная
- •18. Понятие формального языка и формальной грамматики
- •19. Основные понятия теории графов.
- •20. Понятие количества информации и энтропии. Теорема Шеннона.
- •21. Деревья в теории графов.
- •22. Модели линейного программирования (постановка задачи, математическая модель, решение графическим методом).
- •23. Двойственность в задачах линейного программирования.
- •25. Элементы теории игр.
- •2. Подпрограммы. Процедуры и функции
- •3. Массивы
- •4. Записи
- •5. Работа с Динамическими данными
- •6. Динамические структуры данных. Линейные списки.
- •7. Динамические структуры данных: двоичные деревья
- •8. Работа с файлами
- •9.Операции целочисленной арифметики
- •10. Системы счисления. Перевод чисел из одной системы счисления в другую
- •11. Язык sql. Назначение и основные команды.
- •Манипулирование данными
- •Простые запросы
- •12. Алгоритмы внутренней сортировки.
- •13. Алгоритмы внешней сортировки
- •14. Нахождение кратчайших путей в графе
- •15. Поиск в ширину
- •16. Поиск остова и минимального остова.
- •17. Линейная модель работы информационно-поисковой системы.
- •18. Хеширование
- •Основные достоинства в-дерева
- •20. Логические вопросно-ответные системы:выполнение запросов различных типов.
- •21. Поиск в семантической сети.
- •22. Принципы динамического программирования. Иллюстрация на примере.
- •23. Адресация в Интернете
- •Доменные имена
- •Общий вид формата url-адреса
- •Как работает dns-сервер
- •24. Основные сервисы в сети Интернет.
- •Word Wide Web (www) - "Всемирная паутина"
- •Поиск информации в сети
- •VoIp сервис
- •Мессенджеры
- •25. Использование html. Структура Web(html) страницы.
8. Модель данных «сущность-связь»
Проектирование базы данных невозможно без инфологического моделирования. Цель инфологического моделирования – обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. В этой главе описана модель данных «СУЩНОСТЬ-СВЯЗЬ», наиболее часто используемая для инфологического моделирования. Как и любую модель данных, модель «СУЩНОСТЬ-СВЯЗЬ» следует рассматривать с трех сторон: определение структур данных, определение ОЦ и множество допустимых операций над данными.
Модель «СУЩНОСТЬ-СВЯЗЬ» предложена Питером Пин Шен Ченом и подробно описана в статье [44]. Данную модель часто называют ER-моделью (от английского «entity-relationship model»).
Будем считать, что любая предметная область представляет собой совокупность некоторых объектов реального мира, которые взаимодействуют между собой. В терминах ER-модели объекты реального мира называются сущностями (англ. «entity»). Для отражения в модели взаимодействия сущностей между собой используются связи (англ. «relationship»).
Таким образом, схема базы данных в ER-модели представляет собой множество множеств сущностей с определенным для каждого из них конечного непустого множества атрибутов и множество множеств связей, для каждого из которых определено конечное (может быть пустое) множество атрибутов, а также упорядоченный набор множеств сущностей, на которых строятся связи и для каждой из которых может быть определена роль.
Схему данных удобно изображать с помощью ER-диаграммы. На ней множества сущностей изображаются прямоугольниками, множества связей ромбами, соединенными с множествами сущностей, на которых строятся связи. Атрибуты изображаются помеченными дугами, направленными из множеств сущностей или связей в множества значений, изображаемые овалами.
Используется также свернутый вид ER-диаграммы (не обозначаются множества значений и атрибуты).
В качестве примера приведена ER-диаграмма БД ВУЗ в развёрнутом и свёрнутом виде.
Пример ЕR-диаграммы (рис. 6).
Развернутый вид Свернутый вид
факультеты
факультеты
ФИО_декана
кафедры
кафедры
ФИО_зав
ФИО
з/п
преподаватели
преподаватели
стаж
Рис. 6. Пример ER-диаграммы
Ограничения целостности
В ER-модели предусмотрены следующие виды ограничений целостности.
А) Ограничения на значения атрибутов, которые являются элементом схемы (структуры) данных. Представляют собой явные указания множеств допустимых значений для некоторых или всех атрибутов, а также соотношения между значениями атрибутов, которые должны выполняться. Множество значений может быть задано несколькими способами, в том числе перечислением допустимых значений, указанием типа (int, float, string и т.д.) или указанием условия принадлежности. В описаниях функций принадлежности и при определении допустимых отношений можно применять операции сравнения, логические связки и другие средства используемого языка определений ограничений целостности. На ER-диаграмме ограничения этого типа показаны в овалах.
B) Ограничения по методу ключа. Ключом сущности или связи называют атрибут (в случае простого ключа) или группу атрибутов (в случае составного ключа), значение которого(ых) уникально в данном множестве сущностей или связей. Ключ однозначно идентифицирует сущность или связь в соответствующем множестве. На ER-диаграмме ключевые атрибуты (в случае простых ключей) целесообразно выделять жирными дугами.
С) Ограничения по типу связи. Можно указать кардинальные числа сущностей в каждой связи. Совокупность этих чисел называется типом данной связи. Модель допускает только связи с кардинальными числами «1» и «M» («N», бесконечность). Тип связи «М:N» практически указывает на отсутствие ограничений. Максимальные кардинальные числа (тип связи) проставляются на ER-диаграмме.
D) Ограничения по существованию. Иногда сам факт существования сущности зависит от существования какой-либо связи данной сущности с другой сущностью (в этом случае минимальное кардинальное число данной сущности равно 1, а не 0). Тогда соответствующее множество сущностей называется множеством слабых сущностей относительно данной связи. В противном случае множества сущностей и связей называются множествами регулярных сущностей и связей. По умолчанию все множества являются регулярными. Множества слабых сущностей на ER-диаграмме обозначаются с помощью двойных линий.
Операции над данными
В связи с тем, что модель данных «СУЩНОСТЬ-СВЯЗЬ» используется в основном для инфологического моделирования, остановимся только на спецификационном подходе, как более абстрагированном от физической организации данных на внешнем носителе.
Развернутый вид Свернутый вид
факультеты
факультеты
1
1
ФИО_декана
кафедры
кафедры
N
название
N
ФИО_зав
1 ФИО 1
з/п
преподаватели
преподаватели
стаж
Рис. 7. Ограничения целостности
Для манипулирования данными в спецификационном языке для ER-модели достаточно селекции по данным и селекции по связям, и обыкновенных теоретико-множественных операций
Для примера рассмотрим здесь одну из модификаций удобного языка манипулирования данными – CABLE’а. (анг. «chaine based language» – язык, основанный на цепочках).
Практически, запрос представляет собой процесс прохождения по цепочке множеств сущностей и множеств связей, а в каждом звене этой цепочки возможна селекция. Этот этап назовем этапом селекции, в процессе селекции создается выборка нужной информации из базы данных.
Второй этап представляет собой манипулирование выбранными данными. На этом этапе выполняются одна или несколько из следующих операций над выбранными данными: печать, удаление, модификация.
Относительно высокая мощность CABLE’а при всей его простоте объясняется тем, что в ER-модели явным образом хранится информация о связях между объектами реального мира.
Рассмотрим команды языка.
А) select – создает выборку. Формат команды:
<выборка>=select <имя множества сущностей или связей>.[<условие>]\…
Множества сущностей с множествами связей должны чередоваться. Если, например, мы произвели селекцию по сущностям и перешли к множеству связей, то предметом для селекции будут служить только связи, в которые входят выбранные сущности, далее переходим к следующему множеству сущностей и т.д.
B) Теоретико-множественные операции: объединение (union), пересечение (intersect) и разность (minus).
C) Команды, определяющие действия над данными, вошедшими в выборку:
delete <выборка> - удаление записей, входящих в выборку.
output <выборка>.<список атрибутов через пробел> - вывод результата запроса
Возможны также и другие действия над данными.
Команды действий не определяют операции над данными, и поэтому определяются не моделью данных, а конкретной реализацией.
Пример запроса 1. Выдать ФИО всех преподавателей старше 40 лет.
S1= select ПРЕПОДАВАТЕЛИ.возраст>40
Output s1.ФИО
Пример запроса 2. Выдать ФИО всех преподавателей физико-математического факультета, получающих зарплату больше 5000 рублей.
S1 = select ФАКУЛЬТЕТЫ.название=’ФМФ’\СОСТОЯТЬ_ИЗ\ КАФЕДРЫ \ БЫТЬ_СОТРУДНИКОМ. З/п>5000\ ПРЕПОДАВАТЕЛИ
Output S1.ФИО
Пример запроса 3. Выдать названия тех кафедр ФМФ, на которых нет сотрудников со стажем больше 20 лет.
S1 = select ФАКУЛЬТЕТЫ.название=’ФМФ’\СОСТОЯТЬ_ИЗ\ КАФЕДРЫ
S2 = select ПРЕПОДАВАТЕЛИ.Стаж>20\БЫТЬ_СОТРУДНИКОМ\ КАФЕДРЫ
minus S1, S2
Output S1.название
Примечание. В s1 мы находим все кафедры ФМФ, а в S2 все кафедры, на которых есть сотрудники со стажем больше 20 лет. Для решения нашей задачи остается вычесть из множества s1 множество s2, что мы и делаем.
Заметим также, что при удалении данных автоматически удаляются связанные с ними слабые сущности и связи, т.е. поддерживается ограничение на существование.
Перечислим основные достоинства модели.
A) Естественность. Структуры в ER-модели сравнительно неплохо соответствуют структурам реального мира по сравнению со структурами в других моделях.
B) Возможность явного определения ограничений на существование.
C) Хранение явной информации о связях, что позволяет избежать неоднозначности в вопросе существования связи, что характерно для многих других моделей.
К недостаткам следует отнести.
A) Трудность практической реализации.
B) Неприспособленность для распределенных