otchet (663269), страница 2
Текст из файла (страница 2)
Атрибуты разных отношений также могут быть определены на одном и том же домене.
Атрибут, значения которого идентифицируют кортежи, называется ключом (ключевым атрибутом).
В некоторых отношениях кортежи идентифицируются конкатенацией значений нескольких атрибутов. Тогда говорят, что отношение имеет составной ключ. Отношение может содержать и несколько ключей. Один из ключей отношения объявляется первичным. Значения первичного ключа не могут обновляться. Все прочие ключи отношения называются возможными ключами.
Отметим важную особенность реляционной модели данных. Если в сетевых и иерархических моделях данных для отражения ассоциаций между записями использовались групповые отношения, то в реляционной модели данных такого понятия не существует. Для отражения ассоциаций между кортежами отношении используется дублирование их ключей.
Атрибуты, представляющие собой копии ключей других отношений, называются внешними ключами.
Перечень атрибутов отношения и его свойства определяет схему отношения. Два отношения называются односхемными, если они построены но единой схеме.
Первоначальная модель Кодда содержала небольшой набор средств ограничения целостности: не допускались кортежи с одинаковыми значениями первичного ключа и обеспечивалась возможность наложения ограничений на значения доменов и, следовательно, атрибутов. Механизмов поддержания семантики ассоциаций (речь идет о таких ограничениях целостности, как режим включения и класс членства) в реляционной модели нет. Отношения существуют независимо друг от друга, хотя между кортежами этих отношений возникают порой достаточно сложные ассоциации.
Неразвитость средств ограничения целостности послужила толчком к последующему развитию модели Кодда, которое получило название расширенной реляционной модели данных. Последняя предполагает поддержку ряда служебных отношений, хранящих сведения об ассоциациях предметной области, а процедуры обработки пользовательских отношений учитывают эти сведения. Расширенная модель Кодда представляет существенно более развитые средства для поддержки ограничений целостности.
ОПЕРАЦИИ НАД ДАННЫМИ
К операциям обновления БД относятся запоминание новых кортежей, удаление ненужных, корректировка значении атрибутов существующих кортежей.
Операция ВКЛЮЧИТЬ требует задания имени отношения и предварительного формирования значений атрибутов нового кортежа. Обязательно должен быть задан ключ кортежа. Включение не будет выполнено, если ключ имеет неуникальное значение.
Операция УДАЛИТЬ также требует наименования отношения, а также идентификации кортежа или группы кортежей, подлежащих удалению.
Операция ОБНОВИТЬ выполняется для названного отношения и может корректировать как один, так и несколько кортежей отношения.
Далее рассмотрим основные операции обработки отношений. Отличительная особенность этих операций заключается в том, что единицей обработки в них являются не кортежи, а отношения. Другими словами, на входе каждой операции используется одно или несколько отношений, а результат выполнения операций — новое отношение.
Смысл любой обработки реляционной базы данных состоит либо в обновлении существующих отношений, либо в создании новых, поскольку результат всякого запроса к БД есть не что иное, как построение нового отношения, удовлетворяющего условиям выборки.
Операция ОБЪЕДИНЕНИЕ (С1 = А U В) предполагает, что на входе задано два односхемных отношения А и В. Результат объединения есть построенное по той же схеме отношение С, содержащее все кортежи А и все кортежи отношения В. Операция ПЕРЕСЕЧЕНИЕ (С2=А U В) предполагает на входе два односхемных отношения А и В. На выходе создается отношение по той же схеме, содержащее только те кортежи отношения А, которые есть в отношении В.
Операция ВЫЧИТАНИЕ (С3=А-В). Все три отношения строятся по одной схеме. В результирующее отношение С3 включаются только те кортежи из А, которых нет в отношении В.
Операция ДЕКАРТОВО ПРОИЗВЕДЕНИЕ (С4=А X В). Ее важное отличие от предшествующих состоит в том, что отношения А и В могут быть построены по разным
схемам, а схема отношения С4 включает все атрибуты отношении А и В.
Операция ВЫБОРКА (горизонтальное подмножество). На входе операции используется одно отношение. Результат выборки есть новое отношение, построенное по той же схеме, содержащее подмножество кортежей исходного отношения, удовлетворяющих условию выборки.
Операция ПРОЕКЦИЯ (вертикальное подмножество). На входе операции используется одно отношение. Результирующее отношение включает подмножество атрибутов исходного. Каждому кортежу исходного отношения соответствует такой кортеж в результирующем отношении, что значения одинаковых атрибутов этих двух кортежей совпадают. Но при этом в результирующем отношении кортежи-дубликаты устраняются, в связи с чем мощность результирующего отношения может быть меньше мощности исходного.
Операция СОЕДИНЕНИЕ. На входе операции используется два отношения; обозначим их А и В. В каждом из отношений выделен атрибут, по которому будет осуществляться соединение; предположим, это атрибуты А1 и Б2). Оба атрибута должны быть определены на одном и том же домене. Схема результирующего отношения включает все атрибуты А и все атрибуты отношения В. Допускается, чтобы в схеме результирующего отношения вместо двух атрибутов, по которым выполняется соединение, был представлен только один.
Операция СОЕДИНЕНИЕ похожа на декартово произведение. Отличие состоит в том, что декартово произведение предполагает сцепление, каждого кортежа из А с каждым кортежем из В, а в операции соединения кортеж из отношения А сцепляется только с теми кортежами из В, для которых выполнено условие: В1=А1.
Операция ДЕЛЕНИЕ. На входе операции используется два отношения А и В. Пусть отношение А, называемое делимым, содержит атрибуты (А1,А2, ...,Аn). Отношение В – делитель -содержит подмножество атрибутов А; положим, (А1,А2, ...,Аk), где (k<n). Результирующее отношение С определено на атрибутах отношения А, которых нет и В, т.е.
Аk+1, Аk+2 , ..., Аn.
Кортеж включается в результирующее отношение только, если его декартово произведение с отношением В содержится в делимом-отношении А.
Операции реляционной модели данных предоставляют возможность произвольно манипулировать отношениями, позволяя обновлять БД, а также выбирать подмножества хранимых данных и представлять их в нужном виде.
Рассмотренные нами операции реляционной алгебры или алгебры отношений, позволяют пошагово описать процесс получения результирующего отношения.
Отметим особенности реляционной модели данных:
• множество объектов реляционной модели данных однородно - структура данных определяется только в терминах отношений;
• основная единица обработки в операциях реляционной модели данных не запись (как в сетевых и иерархических моделях данных), а множество записей - отношение.
НОРМАЛИЗАЦИЯ ОТНОШЕНИЙ
Одна из важнейших проблем проектирования схемы БД заключается в выделении типов записей (отношений), определении состава их атрибутов. Группировка атрибутов должна быть рациональной, т. е. минимизирующей дублирование данных и упрощающей процедуры их обработки и обновления.
Сначала эти вопросы решались интуитивно. Однако интуиция может подвести даже опытного специалиста, поэтому Коддом был разработан в рамках реляционной модели данных аппарат, называемый нормализацией отношений. И хотя идеи нормализации сформулированы в терминологии реляционной модели данных, они в равной степени применимы и для других моделей
данных.
Коддом выделено три нормальных формы отношений. Самая совершенная из них - третья. Предложен механизм, позволяющий любое отношение преобразовать к третьей нормальной форме. В процессе таких преобразований могут выделяться новые отношения.
Вначале введем понятие простого и сложного атрибута. Простым назовем атрибут, если значения его атомарны, т. е. неделимы. В противовес ему сложный атрибут может иметь значение, представляющее собой конкатенацию нескольких значений одного или разных доменов. Аналогами сложного атрибута может быть вектор, агрегат данных, повторяющийся агрегат.
Первая нормальная форма. Отношение называется нормализованным или приведенным к первой нормальной форме (1НФ), если все его атрибуты простые.
Ненормализованное отношение легко сделать нормализованным. Такое преобразование может привести к увеличению мощности отношения и изменению ключа.
Функциональная зависимость. Пусть Х и Y - два атрибута некоторого отношения, Говорят, что Y функционально зависит от X, если в любой момент времени каждому значению Х соответствует не более чем одно значение атрибута Y. Функциональную зависимость можно обозначить так: Х>Y.
Полная функциональная зависимость. Говорят, что неключевой атрибут функционально полно зависит от составного ключа, если он функционально зависит от ключа, но не находится в функциональной зависимости ни от какой части составного ключа.
Вторая нормальная форма. Отношение находится во второй нормальной форме, если оно находится в первой нормальной форме и каждый неключевой атрибут функционально полно зависит от составного ключа.
Чтобы отношение привести ко второй нормальной форме, необходимо:
а) построить его проекцию, исключив атрибуты, которые не находятся в полной функциональной зависимости от составного ключа;
б) построить дополнительно одну или несколько проекций на часть составного ключа и атрибуты, функционально зависящие от этой части ключа.
Транзитивная зависимость. Пусть X, Y, Z - три атрибута некоторого отношения. При этом Х>Y и Y>Z, но обратное соответствие отсутствует, т. е. Z не> или Y не>Х. Тогда говорят, что Z транзитивно зависит от X.
Третья нормальная форма. Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Основное достоинство реляционного подхода - его простота и доступность. Пользователи абстрагированы от физической структуры памяти. Это позволяет эксплуатировать БД без знания методов и способов ее построения. Основные достоинства РМД следующие: простота, независимость данных; гибкость; непроцедурные запросы, теоретическое обоснование на основе теории отношений. Это дает возможность пользователям формировать их запросы более компактно, в терминах более крупных агрегатов.
Большинство СУБД для персональных ЭВМ составляют системы, поддерживающие реляционную модель данных. К этому классу следует отнести самую распространенную на ПЭВМ систему dBase фирмы Ashton-Tate Corp.(версии dBaseП, dBaseШ, dBaseШ PLUS, dBaseIV) и многочисленное семейство совметимых с нею программных продуктов - FoxBase+ и FoxPro фирмы Fox Software, Clipper'87 фирмы Nantucket Corp., QuickSilver и dBXL фирмы Wordtech, User Interfase фирмы WallSoft Systems Inc., dBFast фирмы dBFast Inc. Широко распространены также реляционные системы Oracle фирмы Oracle Corp., Paradox фирмы Borland International, ряд версий системы R:base 4000, R:base 5000, R:base System V, R:base for DOS, R:base 3.0)фирмы Microrim, система DB2 фирмы IBM Corp.
Как уже говорилось выше, в реляционной модели данных есть возможность определения одного атрибута или их множества в качестве ключа отношения. Это свойство позволяет формировать запросы к базе данных очень компактно с использованием терминов реляционной алгебры и реляционного счисления, что делает реляционную модель очень простой для разработчика прикладного программного обеспечения.
С другой стороны, вся информация, которая будет храниться и использоваться в ИИСОД представляется в табличной форме, что является характерной чертой представления информации в реляционных базах данных, а в частности, в их разновидности табличных базах данных.
С учетом вышеизложенного можно сделать вывод, что для разработки системы наиболее подходит СУБД, основанная на использовании реляционной модели данных.
Из всего многообразия реляционных СУБД, представленных на рынке в настоящее время (DBASE IV, Clipper IV, V и т.д.) сразу можно выделить СУБД FoxPro 2.0 фирмы FoxSoftware Inc СУБД FoxPro II включает в себя все лучшие функциональные возможности СУБД FoxBase+ версии 2.11. Вместе с тем она обладает лучшими возможностями по сравнению с DBASE IV по производительности. Требования к ресурсам памяти на стадии выполнения значительно снижены.
FoxPro 2.0 имеет графический многооконный интерфейс с поддержкой манипулятора "мышь" и клавиатуры. Он реализует элементы объектно-ориентированного подхода, при этом за различными окнами одновременно открытыми окнами могут быть закреплены различные процедуры (например: генерация отчета, просмотр файла и т.д.). Развитый генератор отчетов позволяет формировать отчеты не только табличной, но и ленточной формы.
Язык программирования полностью включат язык СУБД DBASE IV. Дополнительно в него включено более 140 различных расширений. При этом сохранена полная программная совместимость с младшими версиями системы.
СУБД FoxPro 2.0 обладает возможностями поддержки разработки и отладки программ, средствами отслеживания изменений исходных текстов программных модулей с их автоматической перекомпиляцией. Предусмотрены специальные окна для отладчика программ, работающего в терминах исходного текста. Окно трассировки позволяет анализировать логику выполнения программы. Эта информация мож использоваться и при работе в пошаговом режиме. Отдельное окно предусмотрено для просмотра значений переменных по ходу выполнения программы.
Система позволяет использовать средства разработки прикладных программ, имеющиеся в составе ее предшественницы, такие как генератор экранных форм ввода-вывода FoxView и генератор программ на основе этих экранных форм FoxCode с его языком шаблонов.