Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОтветыБД

.pdf
Скачиваний:
54
Добавлен:
14.05.2015
Размер:
1.32 Mб
Скачать

1.1. Определение информационной системы, способы структурирования информации. Определения: база данных, СУБД, транзакция, согласованность данных. История развития СУБД. Функции и назначение СУБД. Технологии доступа к данным.

Информационная система (ИС) взаимосвязанная совокупность средств, методов и персонала, используемая для хранения, обработки и представления информации.

К функциям ИС относятся: ●хранение информации; ●ввод и редактирование информации; ●просмотр и поиск информации; ●выборка информации по заданным критериям; ●подготовка отчётов; ●контроль правильности информации Структурирование информации – введение каких-либо соглашений о способах представления данных.

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

Конечному пользователю не нужно знать:

-о физическом размещении в памяти данных и их описаний

-об особенностях реализации механизмов поиска запрашиваемых данных

-о способах разрешения конфликтов, возникающих при одновременном запросе одних и тех же данных многими пользователями

-Об организации защиты данных от некорректных обновлений или несанкционированного доступа

-о механизмах поддержания баз данных в актуальном состоянии.

Определения:

База данных - это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области.

Система управления базами данных (СУБД) – это комплекс программных и языковых средств, необходимых для создания баз данных, поддержания их в актуальном состоянии и организации поиска в них необходимой информации. Если же модификация данных в этих файлах – то это СУБД Транзакция – последовательность операций над БД, рассматриваемых СУБД как единое целое. Согласованность данных (ссылочная целостность):

Связи между данными, хранимыми в разных отношениях, в реляционной БД устанавливаются с помощью использования внешних ключей — для установления связи между кортежем из отношения A с определённым

кортежем отношения B в предусмотренные для

этого атрибуты кортежа

отношения A записывается

значение первичного ключа (а в общем случае

значение потенциального

ключа) целевого кортежа

отношения B. Таким образом, всегда имеется возможность выполнить две операции:

1)определить, с каким кортежем в отношении B связан определённый кортеж отношения A;

2)найти все кортежи отношения A, имеющие связи с определённым кортежем отношения B.

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

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

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

Если вышеприведённое условие не выполняется, говорят, что в базе данных нарушена ссылочная целостность. Такая БД не может нормально эксплуатироваться, так как в ней разорваны логические связи между зависимыми друг от друга фактами. Непосредственным результатом нарушения ссылочной целостности становится то, что корректным запросом не всегда удаётся получить корректный результат.

История развития СУБД

Предшественниками СУБД были файловые системы (ФС), однако появление СУБД не привело их к полному исчезновению. В середине 60 годов в корпорации IBM совместно с фирмой NAA разработали первую СУБД – иерархическую систему IMS, она является самой первой из коммерческих СУБД. Она и до сих пор остается основной иерархической СУБД используемой на большинстве мейнфреймов. Другим заметным достижение середины 60 г. Было появление системы IDS. Развитие этой системы привело к созданию нового типа систем управления БД – сетевых СУБД. Сетевая схема – это логическая организация всех баз данных, которая включает в себя: определение имени БД, типа каждой записи и компонентов каждого типа. Подсхема – это

часть БД, видимая конкретными пользователями или приложениями. Язык управления данными – инструмент для определения характеристик и структуры данных, а также для управления ими.

Группа DBSG – предложила стандартизировать три различных языка: 1)язык определения данных DDL, который позволит АБД описать её; 2)язык определения данных для подсхемы который позволит определять в приложениях те части БД, доступ к которым будет необходим; 3)язык манипулирования данными DML, предназначенный для управления данными. CODASYL – СУБД первого поколения.

Недостатки:

1.Даже для выполнения простых запросов с использованием переходов и доступом к определенным записям необходимо создавать сложные программы.

2.Независимость от данных существует лишь в min степени.

3.Отсутствуют теоретические основы.

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

Проект System R – первый коммерческий проект. На основе этого проекта были получены важнейшие результаты.

• Был разработан структурированный язык запросов (SQL) который стал стандартный языком любых реляционных СУБД.

• В 80 г. Были созданы различный коммерческие реляционные СУБД. SQL/DS компании IBM. Корпорация

Oracle.

Назначение СУБД: 1)должна воспринимать и обрабатывать команды пользователей и приложений на выборку, изменение, добавление или удаление данных из баз данных.

2)должна иметь возможность принимать данные в исходной форме из различных по своей природе источников и преобразовывать их в форму, соответствующую собственным объектам.

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

4)желательно, чтобы в СУБД были реализованы механизмы оптимизации выполнения перечисленных выше операций.

Функции СУБД:

1)Непосредственное управление данными во внешней памяти.

2)Управление буферами оперативной памяти (собственный набор буферов и протоколов буферизации данных) 3)Управление транзакциями 4)Журнализация (способность восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя)

5)Поддержка языков баз данных

Технологии доступа к БД:

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

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

Файловый сервер – на одном из компьютеров располагается банк данных – файлы, которые могут совместно обрабатывать несколько различных СУБД пользователей. После обработки на компьютерах клиентов, файлы копируются обратно на сервер.

Технология «клиент-сервер» подразумевает, что помимо хранения базы данных центральный компьютер (сервер базы данных) должен ещё и обеспечивать выполнение основного объёма обработки этих данных. Запрос клиента (программы-клиента) на выполнение какой-либо операции с данными провоцирует на сервере поиск и извлечение данных. Клиентская часть (Front-End) обеспечивает графический интерфейс и находится на компьютере пользователя; серверная часть (Back-End) обеспечивает управление данными, разделение информации, администрирование и безопасность. Примерами являются MS SQL Server, Oracle , IBM DB 2, SyBase .

1.2. Этапы проектирования баз данных. Инфологическая, концептуальная, даталогическая, физическая модели. ER-модели, термины инфологического моделирования. Виды связей между сущностями. Модели данных: иерархическая, сетевая, реляционная, объектно-ориентированная.

Этапы проектирования:

1)Системный анализ и словесное описание информационных объектов предметной области и связей между ними. Как результат формулируется ТЗ на разработку базы данных.

2)Проектирование инфологической модели предметной области в терминах некоторой семантической модели. 3)Выбор конкретной СУБД и даталогическое или логическое проектирование БД. Декомпозиция отношений. 4)Физическое проектирование БД, то есть выбор эффективного размещения БД на внешних носителях и способа доступа к ней.

Инфологическая (внешняя) модель данных – обобщённое, не привязанное к к-л ЭВМ или СУБД описание предметн области.

Концептуальная модель способ логического упорядочения данных. Даталогическая (внутренняя) описание данных на языке конкретной СУБД.

Физическая модель – описание расположения хранимых данных и методов доступа к ним.

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

Основным инструментом разработки инфологических моделей (прежде всего для реляционных баз данных) в настоящий момент являются диаграммы «сущность-связь» (Entity-Relationship). Предложен этот способ моделирования в 1976 г. Питером Пин-Шэн Ченом. В настоящее время используются различные нотации этой модели. Мы будем рассматривать ER-диаграммы в нотации Баркера.

Конструктивные элементы инфологического моделирования:

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

Сущность на диаграммах изображается в виде прямоугольника с наименованием.

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

Атрибуты записываются внутри прямоугольника-сущности, по одному на строку.

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

Атрибуты, входящие в ключ на диаграмме, выделяются подчёркиванием.

Между сущностями могут быть установлены связи (relationship) – бинарные ассоциации, показывающие, каким образом сущности соотносятся или взаимодействуют между собой. Связь может существовать между двумя разными сущностями или между сущностью и ею же самой (рекурсивная связь). Связи всегда именуются.

Связи делятся на три типа по множественности:

-один-к-одному (1:1) – экземпляр одной сущности связан только с одним экземпляром другой сущности;

-один-ко-многим (1:М) – один экземпляр сущности может быть связан с несколькими экземплярами другой сущности;

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

Другой пример – сущность «авторы» и сущность «книги». Некоторые книги написаны несколькими авторами, а некоторые авторы написали более одной книги. Для разрешения связи (М:М) необходима дополнительная сущность «титульная страница», содержащая в числе прочих атрибуты «название книги» и «фамилия автора».

Связи также делятся на два типа по модальности: «обязательная» и «возможная». Связь является обязательной, если в ней должен участвовать каждый экземпляр сущности; возможной – если не каждый экземпляр сущности должен участвовать в связи. При этом связь может быть обязательной со стороны одной сущности и возможной со стороны другой. Пример – нижняя связь на рисунке: студент, пишущий диплом, всегда имеет научного руководителя, а преподаватель может иметь одного или несколько дипломников, или вовсе их не иметь.

Модели доступа к данным.

Помимо разделения баз данных по методам обработки, можно классифицировать их по используемой модели (или структуре) данных. С помощью модели данных можно наглядно представить структуру объектов и установленные между ними связи. Модель данных непосредственно определяет наименование СУБД.

Иерархическая модель. БД состоит из упорядоченного набора древовидных структур данных. Организационные структуры, списки материалов, оглавления в книгах, планы проектов и многие другие совокупности данных могут быть представлены в иерархическом виде. При этом автоматически поддерживается целостность ссылок между предками и потомками. Основное правило: никакой потомок не может существовать без своего родителя, причём потомок имеет единственного родителя. Недостатком модели является сложность реорганизации данных и невозможность выполнения «горизонтальных» запросов к данным, не связанных с иерархической структурой.

Иерархическая модель появилась первой среди всех даталогических моделей: именно эту модель поддерживала первая из зарегистрированных промышленных СУБД IMS IBM (1968г). Каждая физическая база описывается набором операторов, определяющих как её логическую структуру, так и структуру хранения баз данных.

Основные термины:

1)Атрибут (элемент данных) – наименованная единица структуры данных. Каждому элементу при описании БД присваивается уникальное имя. Элемент данных часто называют полем.

2)Запись (группа) – именованная совокупность атрибутов. Использование записей позволяет за одно обращение к базе получить некоторую логическую связанную совокупность данных. Именно записи изменяются, добавляются и удаляются. Тип записи определяется составом ее атрибутов. Экземпляр записи – конкретная запись с конкретным значением элементов.

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

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

Основное отличие:

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

Характерист. признаки экземпляра группового отношения:

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

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

Режим включения подчиненных записей:

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

отношения; позже эта операция инициируется пользователем).

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

необязательное (можно искл. запись из группового отношения, но сохранить в БД не прикрепляя к др. владельцу).

Основные термины:

Элемент данных – минимальная информационная единица, доступная пользователю с использованием СУБД. Агрегат – поименованный набор данных. Агрегат данных типа «вектор» - линейный набор элементов данных (например агрегат «Адрес: город, улица, дом, квартира»). Агрегат данных типа «повторяющаяся группа» соответствует совокупности векторов данных. Например, агрегат «Зарплата: месяц, сумма (х 12)».

Запись – совокупность агрегатов или элементов данных, моделирующая некоторый класс объектов реального мира. Для записи вводятся понятия типа записи и экземпляра записи.

Связь или набор – двухуровневый граф, связывающий отношением «1:M» 2 типа записи. Связи именуются. Для любых двух типов записей может быть задано любое количество связей.

Некоторые правила и термины построения сетевой модели:

Тип связи L определяется для типа записи предка P и потомка C. Экземпляр типа связи состоит из одного экземпляра типа записи предка и упорядоченного набора экземпляров типа записи потомка. При этом (1) каждый экземпляр типа P является предком только в одном экземпляре L; (2) Каждый экземпляр C является потомком не более чем в одном экземпляре L.

Следствия таких правил таковы:

Тип записи С в связи L1 может быть типом записи P в связи L2 (обычная иерархическая модель). Тип записи P может быть таковым в любом числе типов связи.

Тип записи P может фигурировать как тип записи C в любом числе типов связи.

Может существовать любое число типов связи с одним и тем же типом записи P и типом записи C. Одни и те же типы записей могут быть предком и потомком в связи L1 и потомком и предком в связи L2.

Стандарт сетевой модели впервые был определен в 1975 году организацией CODASYL, которая определила базовые понятия модели и формальный язык описания. Типичным представителем является Integrated Database Management System (IDMS) компании Cullinet Software, Inc.

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

Объектно-ориентированная модель. Её структура описывается с помощью трёх ключевых понятий: Инкапсуляция – каждый объект хранит в себе набор данных (т.е. обладает некоторым внутренним содержанием) и набор методов, с помощью которых (точнее исключительно с помощью которых) можно получить доступ к данным этого объекта.

Наследование – подразумевает возможность создавать из классов объектов новые классы объектов, которые наследуют структуру и методы своих предков, добавляя к ним (или исключая) структуру данных и методы, отражающие их собственную индивидуальность.

Полиморфизм – различные объекты в зависимости от внешних событий могут вызывать одинаково названные методы, но по-разному реализованные.

Особенностью ООБД является: невозможность применения к хранимым объектам понятий и алгоритмов реляционной модели. В этой связи необходим некоторый процедурный язык для оформления запросов и обработки данных. Обеспечение целостности данных заключается в (1) автоматической поддержке отношений наследования; (2) возможности объявлять поля и методы объекта как «скрытые» (т.е. невидимые для других объектов); (3) реализовывать процедуры контроля целостности данных внутри объектов.

Примеры ООБД: Caché, FastObjects, GemStone/S, Jasmine, к ним примыкает объектно-реляционная СУБД

PostgeSQL.

1.3. Понятия реляционной модели: атом, домен, кортеж, отношение. Термины реляционной модели и теории множеств. Свойства реляционных баз данных. Реляционная алгебра. Операции над множествами. Примеры.

Понятия реляционной модели:

Атом в БД это ячейка. И она должна быть заполнена.

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

Домен (Domain) – некоторое конечное множество. Обозначение: Di , где i – номер домена. Отдельный элемент домена обозначим di с тем же смыслом i.

Полное декартово произведение множеств – набор всевозможных сочетаний из n элементов каждое, где каждый элемент берётся из своего домена. Описание: D1 D2 … Dn.

Отношение (relation) R – подмножество декартова произведения множеств D1, D2, … Dn (n≥1), необязательно

различных. Описание: R D1 D2 … Dn.

Число n называется степенью отношения (n = 1 – унарное, n = 2 – бинарное, в общем случае n-арное).

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

Кортежем (Tuple) называют декартово произведение элементов множеств d1 d2 … dn.

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

(потенциальными) ключами.

Схемой отношения S называется перечень имён атрибутов данного отношения с указанием домена, к которому они относятся. Описание: SR= (A1, A2, …, An), Ai Di.

Набор именованных схем отношений – схему БД.

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

Отношения удобно представлять в виде таблиц.

Можно условно связать язык формальной логики, язык инфологических моделей и практический язык терминов реляционных БД с помощью следующей таблицы «синонимов»:

Инфологическая модель

Реляционная модель

Описание реляционной СУБД

Сущность

Отношение

Таблица

Атрибут

Атрибут

Поле (названия столбцов)

Экземпляр сущности

Кортеж

Запись (строка таблицы)

???

Домен

Общая совокупность

 

 

допустимых значений

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

Аспекты реляционного подхода:

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

1.В структурной части модели фиксируется, что единственной структурой данных, используемой в реляционных БД, является нормализованное n-арное отношение.

2.В манипуляционной части модели утверждаются два фундаментальных механизма манипулирования реляционными БД: реляционная алгебра и реляционное исчисление.

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

Свойства реляционных баз данных (вытекают из определения отношения и кортежа как множеств):

● В отношении нет одинаковых кортежей; ● Отсутствие упорядоченности кортежей; ●Отсутствие упорядоченности атрибутов; ●Все значения атрибутов отношения атомарные

Реляционная алгебра:

Алгеброй называется множество объектов с заданной на нём совокупностью операций, замкнутых относительного этого множества. Коддом было предложено 8 операций, хотя это множество избыточное, так как некоторые операции могут быть представлены друг через друга.

Теоретико-множественные операции:

1.Объединение отношений. Результатом объединения двух отношений является отношение, включающее все

кортежи, входящие хотя бы в одно из отношений-операндов. Обозначение: R3 = R1

2. Операция

коммутативна.

 

2.Пересечение отношений. Результатом пересечения двух отношений является отношение, включающее все кортежи, входящие в оба отношения-операнда. Обозначение: R3 = R1 2. Операция коммутативна. 3.Разность отношений. Отношение, являющееся разностью двух отношений включает все кортежи, входящие в отношение-первый операнд, такие, что ни один из них не входит в отношение, являющееся вторым операндом. Обозначение: R3 = R1 \ R2. Операция некоммутативна.

Пример на первые три операции:

Предметная область: экзамен по курсу «Методы вычислений», который проводился в сентябре и декабре. Пусть имеются три отношения, имеющие эквивалентные схемы:

R1 = (Номер зачетки, ФИО, Группа) – список студентов, сдававших экзамен в сентябре; R2 = (Номер зачетки, ФИО, Группа) – список студентов, сдававших экзамен в декабре;

R3 = (Номер зачетки, ФИО, Группа) – список студентов, сдавших экзамен по курсу до января месяца;

Ударим реляционной алгеброй по следующим вопросам:

а) Какие студенты сдавали два раза, но так и не сдали экзамен?

Ответ: R = R1 R2 \ R3.

б) Какие студенты сдавали экзамен только один раз, и сдали его?

Ответ: R = (R1 \ R2 R3) (R2 \ R1 R3).

в) Какие студенты смогли сдать экзамен только со второго раза?

Ответ: R = R1 R2 R3.

г) Какие студенты сдавали экзамен один раз, не сдали, и больше не появлялись?

Ответ: R = (R1 \ R2) (R2 \ R1) \ R3.

Операции объединения, пересечения и разности применимы только к отношениям с эквивалентными схемами.

4.Прямое произведение отношений (расширенное декартово произведение). Результатом прямого произведения двух отношений является отношение, кортежи которого являются конкатенацией (сцеплением) кортежей первого и второго операндов. Обозначение: R1 R2. Операция коммутативна. Операция используется для получения отношения, которое характеризует все возможные комбинации между элементами отдельных множеств.

Специальные реляционные операции:

5.Ограничение отношения (горизонтальная фильтрация). Результатом ограничения отношения по некоторому условию является отношение, включающее кортежи отношения-операнда, удовлетворяющее этому условию. Обозначение: R[ (r)], где - булевское выражение, составленное из термов сравнения с помощью связок «И», «ИЛИ», «НЕ» и скобок. Унарная операция.

На интуитивном уровне операцию ограничения лучше всего представлять как взятие некоторой "горизонтальной" вырезки из таблицы. Пример: выбрать из R3 студентов из группы 21402. Запишем так: R4 = R3

[Группа = 21403].

6.Проекция отношения (вертикальная фильтрация). Результатом проекции отношения R на заданный набор его атрибутов B является отношение, кортежи которого производятся путем взятия соответствующих значений из кортежей отношения-операнда. Обозначение: R[B]. Значения, не принадлежащие атрибутам из набора В, удаляются. Унарная операция.

Продолжаем наш пример: R = R4[Номер зачетки, ФИО].

7.Соединение отношений (соединение по условию). При соединении двух отношений R и Q по некоторому

первого и второго отношений и

удовлетворяют этому условию. Обозначение: R [ ]Q.

По определению результатом

операции сравнения является отношение, получаемое путем выполнения

операции ограничения по условию прямого произведения отношений R и Q. Операция соединения называется операцией эквисоединения, если условие соединения имеет вид (a = b), где a и b - атрибуты разных операндов соединения. Такое соединения применяется к паре отношений R и Q, обладающих общим атрибутом (т.е. атрибутом с одним и тем же именем и определенным на одном и том же домене). На интуитивном уровне это способ связи таблиц, имеющих одинаковое по смыслу поле.

8.Деление отношений. Пусть заданы два отношения – R(a1, a2, ..., an, b1, b2, ..., bm) и T(b1, b2, ..., bm). Будем считать, что атрибут bi отношения R и атрибут bi отношения T не только обладают одним и тем же именем, но и определены на одном и том же домене. Назовем множество атрибутов {aj} составным атрибутом A, а множество атрибутов {bj} - составным атрибутом B. После этого будем говорить о реляционном делении бинарного отношения R(A,B) на унарное отношение T(B). Результатом деления является унарное отношение Q(A), состоящее из таких кортежей v, которые в отношении R фигурировали как кортежи-сцепления <v, w>, в которых множество значений {w} включало множество значений атрибута B в отношении T. Обозначение:

R[A:B]T.

Предположим, что имеются два отношения: Студенты(Имя, Группа) и Имена(Имя), причем унарное отношение Имена содержит все имена студентов в университете. Тогда после выполнения операции реляционного деления отношения Студенты на отношение Имена будет получено унарное отношение, содержащее номера групп, в которых студенты обладают всеми возможными в университете именами.

1.4. Понятия ключа и ссылочной целостности данных. Первичный, альтернативный и внешний ключи, их свойства. Способы поддержания ссылочной целостности. Нормализация отношений в БД, необходимость нормализации, определение функциональной зависимости атрибутов. Типы и примеры нормальных форм.

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

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

Потенциальный ключ должен иметь следующие свойства:

-уникальность (на практике – обязательное условие);

-неизбыточность (на практике – может быть нарушено);

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

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

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

Пусть дано отношение R. Подмножество атрибутов А отношения R будем называть внешним ключом, если:

1.Существует отношение S (R и S не обязательно различны) с потенциальным ключом K.

2.Каждое значение A в отношении R всегда совпадает со значением K для некоторого кортежа из S, либо является null-значением.

Отношение S называется родительским отношением, отношение R называется дочерним отношением.

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

1.Правило структурной целостности: допускается работа только с однородными структурами данных типа «реляционное отношение».

2.Правило целостности объектов: первичный ключ отношения не должен содержать значений NULL.

3.Правило языковой целостности: реляционная СУБД должна обеспечивать языки описания и манипулирования данными не ниже стандарта SQL.

Ссылочная целостность обеспечивает поддержку непротиворечивого состояния БД в процессе модификации данных при выполнении операций добавления или удаления.

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

Поддерживается один из двух принципов взаимосвязи между экземплярами кортежей взаимосвязанных отношений:

- кортежи подчинённого отношения уничтожаются при удалении кортежа основного отношения, связанного с ними.

- кортежи основного отношения модифицируются при удалении кортежа основного отношения, связанного с ними, при этом на месте ключа родительского отношения ставится значение NULL.

Для внешнего ключа характерны следующие свойства:

- Каждое значение атрибута внешнего ключа должно являться значением соответствующего потенциального ключа. Причём обратное необязательно.

- Количество атрибутов внешнего ключа должно соответствовать количеству атрибутов потенциального ключа. Если внешний ключ – составной, то потенциальный – составной.

- Для внешнего ключа не требуется, чтобы он был компонентом первичного ключа или вообще какого-либо потенциального ключа в отношении, к которому он принадлежит.

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

- Для атрибутов внешнего ключа разрешается иметь знач NULL.

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

(cascading).

Нормализация отношений в базе данных.

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

Функциональной зависимостью набора атрибутов B отношения R от набора атрибутов А того же отношения называется такое соотношения проекций (это копия отношения, в которую не включены один или несколько атрибутов исходного отношения.) R[A] и R[B], при котором в каждый момент времени любому элементу

проекции R[A] соответствует только один элемент проекции R[B], входящий вместе с ним в какой-либо кортеж отношения R. Обозначение: R.A R.B

Взаимно-независимые – атрибуты, которые не зависят функционально друг от друга. Аксиомы функциональных зависимостей:

1. Рефлексивность: если B А, то А B.

2.Дополнение: если А B, то АС BС.

3.Транзитивность: если А B и B C, то А С.

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

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

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

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

Это определение является синонимом определения отношения в теории реляционных баз данных. Пример отношения, которое НЕ находится в 1NF: расписание занятий.

Для перевода отношения в 1NF необходимо разделить с дублированием содержания общие ячейки на отдельные записи.

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

Функциональная зависимость R.A R.B называется полной, если набор атрибутов В функционально зависит от А, но не зависит функционально от любого подмножества А, то есть если А1 А R.A –/ R.B. В противном случае функциональная зависимость называется неполной.

Пример отношен., кот. НЕ находится во 2NF: результаты сессии.

Рассмотрим отношение R ( ФИО, номер зачетки, группа, дисциплина, оценка ). Первичный ключ подчеркнут. Однако при этом атрибуты (ФИО, группа) зависят только от части первичного ключа – от атрибута (номер зачетки).

При этом возможны следующие аномалии:

-в результате ошибки оператора студенту по результатам одного или нескольких экзаменов приписали не ту группу.

-если студент не сдал ни одного экзамена, то он не существует.

Для приведения отношения во 2NF следует провести декомпозицию (разбить на проекции), например так:

1.R1 ( ФИО, номер зачетки, группа).

2.R2 (номер зачетки, дисциплина, оценка ).

Приведение таблицы ко второй нормальной форме позволяет избежать повторения (избыточности) данных.

3NF. Отношение находится в третьей нормальной форме тогда и только тогда, когда оно находится во второй нормальной форме и не содержит транзитивных зависимостей.

Функциональная зависимость R.A R.B является транзитивной, если существует набор атрибутов C такой,

что:

 

1.

С не является подмножеством А.

 

2.

С не включает в себя В. (В С)

 

3.

Существует функциональная зависимость R.A

R.С.

4.

Не существует функциональной зависимости R.С R.А.

5.

Существует функциональная зависимость R.С

R.B.

Иными словами, требование 3NF сводится к тому, чтобы все неключевые поля зависели только от первичного ключа и не зависели друг от друга.

Пример отношения, которое находится во 2NF, но НЕ находится в 3NF: связь студента с группой, факультетом, специализацией.

Дано отношение: R(№зачетки, ФИО, группа, факульт, кафедра).

Первичный ключ подчеркнут. Так как он состоит из одного атрибута, то критерий 2NF выполнен. В отношении имеются транзитивные зависимости, в числе которых:

1)номер зачётки группа (обратное неоднозначно), группа факультет, номер зачётки факультет.

2)номер зачётки кафедра, кафедра факультет, номер зачётки факультет.

Для приведения отношения в 3NF требуется декомпозиция следующего вида:

1. R1 ( номер зачетки, ФИО, группа ).

2.R2 ( группа, факультет).

3.R3 ( кафедра, факультет ).

BCNF. Отношение находится в нормальной форме Бойса-Кодда, если оно находится в третьей нормальной форме и каждый детерминант отношения является возможным ключом этого отношения.

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

детерминантом отношения. Иными словами, отношение находится в BCNF, если любая функциональная зависимость между его атрибутами сводится к полной функциональной зависимости от возможного ключа. Пример отношения, которое находится в 3NF, но НЕ находится в BCNF: таблица результатов приемных экзаменов:

Дано отношение: R(идентифик, №паспорта, предмет, оценка).

Ответ на вопрос: зачем? Например, один абитуриент потерял свою карточку и ему выдали другую с другим номером. Второй абитуриент – гениальный ребенок, и у него пока нет паспорта.

Имеются следующие функциональные зависимости:

1.Идентификатор, предмет оценка;

2.Номер паспорта, предмет оценка; (зависимость полная)

3.Идентификатор номер паспорта; (зависимым не является непервичный атрибут)

4.Номер паспорта идентификатор.

Транзитивных зависимостей нет, так как зависимость 3 имеет обратную 4. Таким образом, отношение находится в 3NF. Но функциональные зависимости между атрибутами идентификатор и номер паспорта не являются зависимостями от возможного ключа этого отношения. Для приведения отношения в BCNF возможна декомпозиция следующего вида:

1.R1 ( идентификатор, предмет, оценка).

2.R2 ( идентификатор, номер паспорта).

Ответ на вопрос: зачем? (Тоже самое что и выше).

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

4NF. Отношение находится в четвёртой нормальной форме в том и только в том случае, если существует многозначная зависимость А –>> B и все остальные атрибуты R функционально зависят от А.

Определение: В отношении R(A,B,C) существует многозначная зависимость R.A –>> R.B в том и только в том случае, если множество значений В, соответствующее паре значений атрибутов А и С, зависит только от А и не зависит от С.

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

Пример (1) отношения, котор. НЕ находится в 4NF: список дисциплин, которые предстоит прослушать студенту 1 курса:

Дано отношение: R( номер зачетки, группа, дисциплина ). Перечень дисциплин, которые должен слушать студент на первом курсе, определяется исключительно номером группы, а не номером зачетки. То есть, в данном отношении существуют две многозначные зависимости:

1.группа –>> дисциплина.

2.группа –>> номер зачетки.

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

При этом возможны следующие аномалии:

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

-Если в группу добавляется новый студент, то необходимо сгенерировать для него весь перечень дисциплин для данной группы.

Для приведения отношения в 4NF возможна декомпозиция следующего вида:

1. R1 ( номер зачетки, группа).2. R2 (группа, дисциплина ).

Пример (2): меню:

Исходное отношение: R( блюдо, повар, рецепт ). Повар умеет готовить разные блюда, одинаково названные блюда могут отличаться рецептом приготовления.

Декомпозиция:

3. R1 ( повар, блюдо). 4. R2 (блюдо, рецепт).

5NF (PJ/NF). Отношение R находится в пятой нормальной форме (норм. форме проекции-соединения) в том и только в том случае, когда любая зависимость соединения в R следует из существования некоторого возможного ключа в R.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]