Архитектурные свойства вычислительных систем

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

Важнейшие свойства архитектуры ВС:

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

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

Универсальность ВС.

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

В вычислительных системах могут быть реализованы не только любые алгоритмы, доступные ЭВМ, но и параллельные алгоритмы решения сложных задач. Последнее следует из определений модели коллектива вычислителей и, в частности, алгоритма функционирования ВС.

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

Таким образом, вычислительные системы сочетают в себе достоинства цифровой техники, где процесс вычислений в основном задаётся алгоритмически (точнее: программно) и аналоговой техники, где процесс вычислений предопределяется структурными схемами.

Структурная универсальность позволяет говорить и о специализированности ВС: для каждой задачи допустима автоматическая настройка такой конфигурации из ресурсов ВС, которая наиболее адекватна алгоритму решения задачи. Итак, вычислительная система – это средство, в котором диалектически сочетаются противоположные свойства универсальности и специализированности.

Производительность.

В отличие от ЭВМ, построенных на основе модели вычислителя, ВС не имеют принципиальных ограничений в наращивании производительности. Рост производительности в них достигается за счёт не только повышения физического быстродействия микроэлектронных элементов, а главным образом увеличения числа вычислителей. Следует подчеркнуть, что благодаря свойству однородности наращиваемость ВС осуществляется простым подключением дополнительных вычислений без конструктивных изменений первоначального состава системы. При этом достигается простота настройки программного обеспечения на заданное число вычислителей в системе. На основании последнего обеспечивается совместимость ВС различной производительности.

Реконфигурируемость. Структурная и функциональная гибкость ВС вытекает из широких возможностей систем по статической и динамической реконфигурации. Статическая реконфигурация ВС обеспечивается: варьированием числа вычислителей, их структуры и состава; выбором для вычислителей числа полюсов для связи c другими вычислителями; возможностью построения структур в виде графов, относящихся к различным классам; допустимостью применения в качестве связей каналов различных типов, различной физической природы и различной протяжённости и т.п. Благодаря приспособленности ВС к статической реконфигурации достигается адаптация системы под область применения на этапе её формирования.

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

Надёжность и живучесть вычислительных систем.Данные два понятия семантически близки, оба призваны характеризовать архитектурные способности ВС по выполнению возглавляемых на них функций. Однако каждое из них отражает специфические особенности ВС по использованию исправных ресурсов при переработке информации.

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

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

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

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

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

Самоконтроль и самодиагностика вычислительных систем. Организация надёжного и живучего функционирования вычислительных систем связана с контролем правильности их работы и с локализацией неисправностей в них. В системах–коллективах вычислителей может быть применён нетрадиционный подход к контролю и диагностике:

· В качестве контрольно-диагностического ядра ВС могут быть использованы любые исправные вычислители и в пределе ядро любого произвольно выбранного вычислителя,

· Выбор ядра системы и определение её исправности могут быть произведены автоматически (с помощью средств ВС).

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

Технико-экономическая эффективность вычислительных систем. Конструктивная однородность позволяет резко сократить сроки разработки и изготовления систем, приводит к высокой технологичности производства, упрощает и статическую, и динамическую реконфигурации ВС, облегчает их техническую эксплуатацию. Она существенно упрощает процесс организации взаимодействий между вычислителями ВС и облегчает создание программного обеспечения. Полнота воплощения трёх основных принципов модели позволяет заметно ослабить зависимость между ростом производительности ВС и увеличением трудоёмкости их проектирования и изготовления, а также создания системного программного обеспечения. Они открывают возможность построения высокопроизводительных экономически приемлемых вычислительных систем при существующей физико-технологической базе. Более того, возможность неограниченно наращивать производительность позволяет применить для построения ВС микроэлектронные элементы с быстродействием, далеким от предельного, и следовательно, обладающие более высокой надежностью и меньшим энергопотреблением. В свою очередь, последнее приводит к снижению расходов на установку искусственного климата и содержание эксплуатационного персонала ВС.

Реляционные модели   Реляционная модель данных (РМД) — логическая модель данных, прикладная теория построения баз данных, которая является приложением к задачам обработки данных таких разделов математики, как теория множеств и логика первого порядка. На реляционной модели данных строятся реляционные базы данных. Реляционная модель данных включает следующие компоненты: · Структурный аспект (составляющая) — данные в базе данных представляют собой набор отношений. · Аспект (составляющая) целостности — отношения (таблицы) отвечают определенным условиям целостности. РМД поддерживает декларативные ограничения целостности уровня домена (типа данных), уровня отношения и уровня базы данных. · Аспект (составляющая) обработки (манипулирования) — РМД поддерживает операторы манипулирования отношениями (реляционная алгебра, реляционное исчисление). Кроме того, в состав реляционной модели данных включают теорию нормализации. Термин «реляционный» означает, что теория основана на математическом понятии отношение (relation). В качестве неформального синонима термину «отношение» часто встречается слово таблица. Необходимо помнить, что «таблица» есть понятие нестрогое и неформальное и часто означает не «отношение» как абстрактное понятие, а визуальное представление отношения на бумаге или экране. Некорректное и нестрогое использование термина «таблица» вместо термина «отношение» нередко приводит к недопониманию. Наиболее частая ошибка состоит в рассуждениях о том, что РМД имеет дело с «плоскими», или «двумерными» таблицами, тогда как таковыми могут быть только визуальные представления таблиц. Отношения же являются абстракциями и не могут быть ни «плоскими», ни «неплоскими». Для лучшего понимания РМД следует отметить три важных обстоятельства: · модель является логической, то есть отношения являются логическими (абстрактными), а не физическими (хранимыми) структурами; · для реляционных баз данных верен информационный принцип: всё информационное наполнение базы данных представлено одним и только одним способом, а именно — явным заданием значений атрибутов в кортежах отношений; в частности, нет никаких указателей (адресов), связывающих одно значение с другим; · наличие реляционной алгебры позволяет реализовать декларативное программирование и декларативное описание ограничений целостности, в дополнение к навигационному (процедурному) программированию и процедурной проверке условий. Принципы реляционной модели были сформулированы в 1969—1970 годах Э. Ф. Коддом (E. F. Codd). Идеи Кодда были впервые публично изложены в статье «A Relational Model of Data for Large Shared Data Banks»[1][2], ставшей классической. Строгое изложение теории реляционных баз данных (реляционной модели данных) в современном понимании можно найти в книге К. Дж. Дейта. «C. J. Date. An Introduction to Database Systems» («Дейт, К. Дж. Введение в системы баз данных»). Наиболее известными альтернативами реляционной модели являются иерархическая модель, и сетевая модель. Некоторые системы, использующие эти старые архитектуры, используются до сих пор. Кроме того, можно упомянуть об объектно-ориентированной модели, на которой строятся так называемые объектно-ориентированные СУБД, хотя однозначного и общепринятого определения такой модели нет. 1 ОСНОВНЫЕ ПОНЯТИЯ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ Итак, мы получили представление о том, что хранится в базе данных. Теперь необходимо понять, как сущности, атрибуты и связи отображаются на структуры данных. Это определяется моделью данных. Традиционно все СУБД классифицируются в зависимости от модели данных, которая лежит в их основе. Принято выделять иерархическую, сетевую и реляционную модели данных. Иногда к ним добавляют модель данных на основе инвертированных списков. Соответственно говорят об иерархических, сетевых, реляционных СУБД или о СУБД на базе инвертированных списков. По распространенности и популярности реляционные СУБД сегодня — вне конкуренции. Они стали фактическим промышленным стандартом, она была разработана Коддом еще в 1969-70 годах на основе математической теории отношений и опирается на систему понятий, важнейшими из которых являются таблица, отношение, строка, столбец, первичный ключ, внешний ключ. Реляционной считается такая база данных, в которой все данные представлены для пользователя в виде прямоугольных таблиц значений данных, и все операции над базой данных сводятся к манипуляциям с таблицами. Таблица состоит из строк и столбцов и имеет имя, уникальное внутри базы данных. Таблица отражает тип объекта реального мира (сущность), а каждая ее строка — конкретный объект. Так, таблица Деталь содержит сведения о всех деталях, хранящихся на складе, а ее строки являются наборами значений атрибутов конкретных деталей. Каждый столбец таблицы — это совокупность значений конкретного атрибута объекта. Так, столбец Материал представляет собой множество значений "Сталь", "Олово", "Цинк", "Никель" и т.д. В столбце Количество содержатся целые неотрицательные числа. Значения в столбце Вес — вещественные числа, равные весу детали в килограммах. Эти значения не появляются из воздуха. Они выбираются из множества всех возможных значений атрибута объекта, которое называется доменом (domain). Так, значения в столбце материал выбираются из множества имен всех возможных материалов — пластмасс, древесины, металлов и т.д. Следовательно, в столбце Материал принципиально невозможно появление значения, которого нет в соответствующем домене, например, "вода" или "песок". Каждый столбец имеет имя, которое обычно записывается в верхней части таблицы (Рисунок 1). Оно должно быть уникальным в таблице, однако различные таблицы могут иметь столбцы с одинаковыми именами. Любая таблица должна иметь по крайней мере один столбец; столбцы расположены в таблице в соответствии с порядком следования их имен при ее создании. В отличие от столбцов, строки не имеют имен; порядок их следования в таблице не определен, а количество логически не ограничено. Рисунок 1. Основные понятия базы данных. Архитектурные свойства вычислительных систем - student2.ru Так как строки в таблице не упорядочены, невозможно выбрать строку по ее позиции — среди них не существует "первой", "второй", "последней". Любая таблица имеет один или несколько столбцов, значения в которых однозначно идентифицируют каждую ее строку. Такой столбец (или комбинация столбцов) называется первичным ключом (primary key). В таблице Деталь первичный ключ — это столбец Номер детали. В нашем примере каждая деталь на складе имеет единственный номер, по которому из таблицы Деталь извлекается необходимая информация. Следовательно, в этой таблице первичный ключ — это столбец Номер детали. В этом столбце значения не могут дублироваться — в таблице Деталь не должно быть строк, имеющих одно и то же значение в столбце Номер детали. Если таблица удовлетворяет этому требованию, она называется отношением (relation). Взаимосвязь таблиц является важнейшим элементом реляционной модели данных. Она поддерживается внешними ключами (foreign key). Рассмотрим пример, в котором база данных хранит информацию о рядовых служащих (таблица Служащий) и руководителях (таблица Руководитель) в некоторой организации (Рисунок 2). Первичный ключ таблицы Руководитель — столбец Номер (например, табельный номер). Столбец Фамилия не может выполнять роль первичного ключа, так как в одной организации могут работать два руководителя с одинаковыми фамилиями. Любой служащий подчинен единственному руководителю, что должно быть отражено в базе данных. Таблица Служащий содержит столбец Номер руководителя, и значения в этом столбце выбираются из столбца Номер таблицы Руководитель (см. Рисунок 2). Столбец Номер Руководителя является внешним ключом в таблице Служащий. Рисунок 2. Взаимосвязь таблиц базы данных. Архитектурные свойства вычислительных систем - student2.ru Таблицы невозможно хранить и обрабатывать, если в базе данных отсутствуют "данные о данных", например, описатели таблиц, столбцов и т.д. Их называют обычно метаданными. Метаданные также представлены в табличной форме и хранятся в словаре данных (data dictionary). Помимо таблиц, в базе данных могут храниться и другие объекты, такие как экранные формы, отчеты (reports), представления (views) и даже прикладные программы, работающие с базой данных. Для пользователей информационной системы недостаточно, чтобы база данных просто отражала объекты реального мира. Важно, чтобы такое отражение было однозначным и непротиворечивым. В этом случае говорят, что база данных удовлетворяет условию целостности (integrity). Для того, чтобы гарантировать корректность и взаимную непротиворечивость данных, на базу данных накладываются некоторые ограничения, которые называют ограничениями целостности (data integrity constraints). 2 ОГРАНИЧИТЕЛЬНЫЕ УСЛОВИЯ, ПОДДЕРЖИВАЮЩИЕ ЦЕЛОСТНОСТЬ В реляционной модели Кодда есть несколько ограничительных условий, используемых для проверки данных в базе данных, а также для придания осмысленности структуре данных. Принято выделять следующие ограничения:
  • Категорная целостность;
  • Целостность на уровне ссылок;
  • Функциональные зависимости.
2.1 ЦЕЛОСТНОСТЬ КАТЕГОРИИ (СУЩНОСТИ) И ССЫЛОК В целостной части реляционной модели данных фиксируются два базовых требования целостности, которые должны поддерживаться в любой реляционной СУБД. Первое требование называется требованием целостности сущности (entity integrity). Объекту или сущности реального мира в реляционных БД соответствуют кортежи отношений. Конкретно требование состоит в том, что любой кортеж любого значения-отношения любой переменной отношения должен быть отличим от любого другого кортежа этого значения отношения по составным значениям заранее определенного множества атрибутов переменной отношения, т. е., другими словами, любая переменная отношения должна обладать первичным ключом. На самом деле, требование целостности сущности полностью звучит следующим образом: у любой переменной отношения должен существовать первичный ключ, и никакое значение первичного ключа в кортежах значения-отношения переменной отношения не должно содержать неопределенных значений (NULL). Конечно, теоретически любой кортеж, заносимый в сохраняемое отношение, должен содержать все характеристики моделируемой им сущности реального мира, которые мы хотим сохранить в базе данных. Однако на практике не все эти характеристики могут быть известны к тому моменту, когда требуется зафиксировать сущность в базе данных. Простым примером может быть процедура принятия на работу человека, размер заработной платы которого еще не определен. В этом случае сотрудник отдела кадров, который заносит в отношение СЛУЖАЩИЕ кортеж, описывающий нового служащего, просто не может обеспечить значение атрибута СЛУ_ЗАРП (любое значение домена РАЗМЕРЫ_ВЫПЛАТ будет неверно характеризовать зарплату нового сотрудника). Эдгар Кодд предложил использовать в таких случаях неопределенные значения. Неопределенное значение не принадлежит никакому типу данных и может присутствовать среди значений любого атрибута, определенного на любом типе данных (если это явно не запрещено при определении атрибута). Если a – это значение некоторого типа данных или NULL, op – любая двуместная «арифметическая» операция этого типа данных (например, +), а lop – операция сравнения значений этого типа (например, =), то по определению: a op NULL = NULL NULL op a = NULL a lop NULL = unknown NULL lop a = unknown Здесь unknown – это третье значение логического, или булевского, типа, обладающее следующими свойствами: NOT unknown = unknown true AND unknown = unknown true OR unknown = true false AND unknown = false false OR unknown = unknown Так вот, первое из требований — требование целостности сущности — означает, что первичный ключ должен полностью идентифицировать каждую сущность, а поэтому в составе любого значения первичного ключа не допускается наличие неопределенных значений. (В классической реляционной модели это требование распространяется и на возможные ключи; в SQL-ориентированных СУБД такое требование для возможных ключей не поддерживается.) Второе требование, которое называется требованием целостности по ссылкам (referential integrity), является более сложным. Очевидно, что при соблюдении нормализованности отношений сложные сущности реального мира представляются в реляционной БД в виде нескольких кортежей нескольких отношений. Например, представим, что требуется представить в реляционной базе данных сущность ОТДЕЛ с атрибутами ОТД_НОМЕР (номер отдела), ОТД_РАЗМ (количество служащих) и ОТД_СЛУ (множество сотрудников отдела). Для каждого служащего нужно хранить СЛУ_НОМЕР (номер сотрудника), СЛУ_ИМЯ (имя сотрудника) и СЛУ_ЗАРП (заработная плата сотрудника). Как мы увидим при правильном проектировании соответствующей БД в ней появятся два отношения: ОТДЕЛЫ {ОТД_НОМЕР, ОТД_РАЗМ} (первичный ключ – {ОТД_НОМЕР}) и СОТРУДНИКИ {СЛУ_НОМЕР, СЛУ_ИМЯ, СЛУ_ЗАРП, СЛУ_ОТД_НОМ} (первичный ключ – {СЛУ_НОМЕР}). Как видно, атрибут СЛУ_ОТД_НОМ вводится в отношение СЛУЖАЩИЕ не потому, что номер отдела является собственным свойством сотрудника, а лишь для того, чтобы иметь возможность при необходимости восстановить полную сущность ОТДЕЛ. Значение атрибута СЛУ_ОТД_НОМ в любом кортеже отношения СЛУЖАЩИЕ должно соответствовать значению атрибута ОТД_НОМ в некотором кортеже отношения ОТДЕЛЫ. Атрибут такого рода (возможно, составной) называется внешним ключом (foreign key), поскольку его значения однозначно характеризуют сущности, представленные кортежами некоторого другого отношения (т. е. задают значения их первичного ключа). Конечно, внешний ключ может быть составным, т. е. состоять из нескольких атрибутов. Говорят, что отношение, в котором определен внешний ключ, ссылается на соответствующее отношение, в котором такой же атрибут является первичным ключом. Требование целостности по ссылкам, или требование целостности внешнего ключа, состоит в том, что для каждого значения внешнего ключа, появляющегося в кортеже значения-отношения ссылающейся переменной отношения, либо в значении-отношении переменной отношения, на которую указывает ссылка, должен найтись кортеж с таким же значением первичного ключа, либо значение внешнего ключа должно быть полностью неопределенным (т. е. ни на что не указывать) Для нашего примера это означает, что если для сотрудника указан номер отдела, то этот отдел должен существовать. Заметим, что, как и первичный ключ, внешний ключ должен специфицироваться при определении переменной отношения и представляет собой ограничение на допустимые значения-отношения этой переменной. Другими словами, определение внешнего ключа представляет собой определение ограничения целостности базы данных. Ограничения целостности сущности и по ссылкам должны поддерживаться СУБД. Для соблюдения целостности сущности достаточно гарантировать отсутствие в любой переменной отношения значений-отношений, содержащих кортежи с одним и тем же значением первичного ключа (и запрещать вхождение в значение первичного ключа неопределенных значений). С целостностью по ссылкам дело обстоит несколько сложнее. Понятно, что при обновлении ссылающегося отношения (вставке новых кортежей или модификации значения внешнего ключа в существующих кортежах) достаточно следить за тем, чтобы не появлялись некорректные значения внешнего ключа. Но как быть при удалении кортежа из отношения, на которое ведет ссылка? Здесь существуют три подхода, каждый из которых поддерживает целостность по ссылкам:
  • Первый подход заключается в том, что вообще запрещается производить удаление кортежа, для которого существуют ссылки (т. е. сначала нужно либо удалить ссылающиеся кортежи, либо соответствующим образом изменить значения их внешнего ключа).
  • При втором подходе при удалении кортежа, на который имеются ссылки, во всех ссылающихся кортежах значение внешнего ключа автоматически становится полностью неопределенным.
  • Наконец, третий подход (каскадное удаление) состоит в том, что при удалении кортежа из отношения, на которое ведет ссылка, из ссылающегося отношения автоматически удаляются все ссылающиеся кортежи.
В развитых реляционных СУБД обычно можно выбрать способ поддержания целостности по ссылкам для каждого случая определения внешнего ключа. Конечно, для принятия такого решения необходимо анализировать требования конкретной прикладной области. 3 ОПЕРАЦИИ НАД РЕЛЯЦИОННЫМИ ДАННЫМИ Множество операций над реляционными данными образуют реляционную алгебру. Каждая операция использует одну или две таблицы. Основных операций восемь, которые разбиты на две группы. 3.1 ТРАДИЦИОННЫЕ ОПЕРАЦИИ
  1. Объединение двух отношений (С1 = А U В) предполагает, что на входе задано два односхемных отношения А и В. Результат объединения есть построенное по той же схеме отношение С, содержащее все кортежи А и все кортежи отношения В.
Архитектурные свойства вычислительных систем - student2.ru Архитектурные свойства вычислительных систем - student2.ru Архитектурные свойства вычислительных систем - student2.ru Архитектурные свойства вычислительных систем - student2.ru
  1. Пересечение двух отношений (С2=А U В) предполагает на входе два односхемных отношения А и В. На выходе создается отношение по той же схеме, содержащее только те кортежи отношения А, которые есть в отношении В.
Архитектурные свойства вычислительных систем - student2.ru Архитектурные свойства вычислительных систем - student2.ru Архитектурные свойства вычислительных систем - student2.ru Архитектурные свойства вычислительных систем - student2.ru Архитектурные свойства вычислительных систем - student2.ru Архитектурные свойства вычислительных систем - student2.ru Архитектурные свойства вычислительных систем - student2.ru Архитектурные свойства вычислительных систем - student2.ru Архитектурные свойства вычислительных систем - student2.ru
  1. Вычитание двух отношений (С3=А-В). Все три отношения строятся по одной схеме. В результирующее отношение С3 включаются только те кортежи из А, которых нет в отношении В.
Архитектурные свойства вычислительных систем - student2.ru Архитектурные свойства вычислительных систем - student2.ru
  1. Декартово произведение (С4=А X В). Ее важное отличие от предшествующих состоит в том, что отношения А и В могут быть построены по разным схемам, а схема отношения С4 включает все атрибуты отношении А и В.
a b c Архитектурные свойства вычислительных систем - student2.ru x y = a a b b c c x y x y x y

3.2 СПЕЦИАЛЬНЫЕ ОПЕРАЦИИ

  1. Операция селекция (горизонтальное подмножество) выполняется по строкам. На входе операции используется одно отношение. Результат выборки есть новое отношение, построенное по той же схеме, содержащее подмножество кортежей исходного отношения, удовлетворяющих условию выборки.
  2. Операция проекция (вертикальное подмножество). На входе операции используется одно отношение. Результирующее отношение включает подмножество атрибутов исходного. Каждому кортежу исходного отношения соответствует такой кортеж в результирующем отношении, что значения одинаковых атрибутов этих двух кортежей совпадают. Но при этом в результирующем отношении кортежи-дубликаты устраняются, в связи с чем мощность результирующего отношения может быть меньше мощности исходного.
  3. Операция соединение естественное. На входе операции используется два отношения; обозначим их А и В. В каждом из отношений выделен атрибут, по которому будет осуществляться соединение; предположим, это атрибуты А1 и Б2). Оба атрибута должны быть определены на одном и том же домене. Схема результирующего отношения включает все атрибуты А и все атрибуты отношения В. Допускается, чтобы в схеме результирующего отношения вместо двух атрибутов, по которым выполняется соединение, был представлен только один. Операция соединение похожа на декартово произведение. Отличие состоит в том, что декартово произведение предполагает сцепление, каждого кортежа из А с каждым кортежем из В, а в операции соединения кортеж из отношения А сцепляется только с теми кортежами из В, для которых выполнено условие: В1=А1.
a1 a2 a3 b1 b1 b3 Архитектурные свойства вычислительных систем - student2.ru b1 b2 b3 c1 c2 c3 a1 a2 a3 b1 b1 b3 c1 c1 c3
  1. Операция деление. На входе операции используется два отношения А и В. Пусть отношение А, называемое делимым, содержит атрибуты (А1,А2, ...,Аn). Отношение В – делитель -содержит подмножество атрибутов А; положим, (А1,А2, ...,Аk), где (k<n). Результирующее отношение С определено на атрибутах отношения А, которых нет и В, т.е. Аk+1, Аk+2 , ..., Аn. Кортеж включается в результирующее отношение только, если его декартово произведение с отношением В содержится в делимом-отношении А.

Операции реляционной модели данных предоставляют возможность произвольно манипулировать отношениями, позволяя обновлять БД, а также выбирать подмножества хранимых данных и представлять их в нужном виде.

Рассмотренные нами операции реляционной алгебры или алгебры отношений, позволяют пошагово описать процесс получения результирующего отношения.

4 НОРМАЛИЗАЦИЯ ОТНОШЕНИЙ

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

Сначала эти вопросы решались интуитивно. Однако интуиция может подвести даже опытного специалиста, поэтому Коддом был разработан в рамках реляционной модели данных аппарат, называемый нормализацией отношений. И хотя идеи нормализации сформулированы в терминологии реляционной модели данных, они в равной степени применимы и для других моделей данных.

Коддом выделено три нормальных формы отношений. Самая совершенная из них - третья. Предложен механизм, позволяющий любое отношение преобразовать к третьей нормальной форме. В процессе таких преобразований могут выделяться новые отношения.

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

4.1 ПЕРВАЯ НОРМАЛЬНАЯ ФОРМА

Отношение называется нормализованным или приведенным к первой нормальной форме (1НФ), если все его атрибуты простые.

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

Функциональная зависимость. Пусть Х и Y - два атрибута некоторого отношения, Говорят, что Y функционально зависит от X, если в любой момент времени каждому значению Х соответствует не более чем одно значение атрибута Y. Функциональную зависимость можно обозначить так: Х>Y.

Полная функциональная зависимость. Говорят, что неключевой атрибут функционально полно зависит от составного ключа, если он функционально зависит от ключа, но не находится в функциональной зависимости ни от какой части составного ключа.

4.2 ВТОРАЯ НОРМАЛЬНАЯ ФОРМА

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

Чтобы отношение привести ко второй нормальной форме, необходимо:

  1. построить его проекцию, исключив атрибуты, которые не находятся в полной функциональной зависимости от составного ключа;
  2. построить дополнительно одну или несколько проекций на часть составного ключа и атрибуты, функционально зависящие от этой части ключа.

Транзитивная зависимость. Пусть X, Y, Z - три атрибута некоторого отношения. При этом Х>Y и Y>Z, но обратное соответствие отсутствует, т. е. Z не> или Y не>Х. Тогда говорят, что Z транзитивно зависит от X.

4.3 ТРЕТЬЯ НОРМАЛЬНАЯ ФОРМА

Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме и каждый неключевой атрибут нетранзитивно зависит от первичного ключа. Рассматриваемая версия третьей нормальной формы часто называется нормальной формой Бойса-Кодда (НФБК).

4.4 ДРУГИЕ НОРМАЛЬНЫЕ ФОРМЫ

Первая нормальная форма запрещает таблицам иметь неатомарные, или многозначные атрибуты. Однако существует множество ситуаций моделирования, требующих многозначных атрибутов. Например, преподаватель в вузе отвечает за несколько дисциплин. Существует несколько решений, каждое из которых имеет определенные недостатки. Все они требуют лишней памяти из-за наличия пустых значений, либо из-за необходимости вводить избыточные данные. Те из них, в которых есть пустые значения, нарушают категорийную целостность, поскольку все атрибуты вместе составляют ключ таблицы. Эти кажущиеся связи между независимыми атрибутами можно исключить, потребовав, чтобы каждое значение атрибута сочеталось с каждым значением другого атрибута как минимум в одной строке. Условие, обеспечивающее независимость атрибутов путем обязательного повторения значений, называется многозначной зависимостью. Многозначная зависим

Наши рекомендации