Определение и назначение Б/Д.Опр СУБД.
Необходимость в Б/Д – проблема контроля избыточности данных( любое изменениев исходных данных ведет за собой корректировку данных во всех задачах)
-взаимосвязь между данными и прикладными задачами
-невозможность выйти на качественно новый уровень инф технологий
Были выработаны стандартные требования к организации данных ( интеграция данных , независимость данных от прикладных программ)
Б/Д-совокупность направлений на реш разл задач, модельность, взаимосвязаность, независемость описания данных от прикладных программ т.к. данные и их описание хранятся совместно в Б/Д
1) Фактографическая Б/Д хранит множ сведений об объектах и связях между ними
2) Документальная Б/Д накапливает и обраб любых текст документов
СУБД-пакет программ , позволяющий 1)обеспечить пользователя язоковыми ср-вами описания и манипулирования данными2) обеспеч поддержку лог данных3)
операции созд и манипулиров лог Д , выбор , вставка, обновление, добавление и т.д.4)защита и целостнсть5)Б/Д СУБД аппратные ср-ва обслужив службы вместе сост б/д
Б/д:1-реляционная (простейшая) Представление даннх в виде таблицы .Здесь опр лог операции объединение.. Недостаток невозможность созд строк неопред длинны
2-иеархическая , сетевая модель (наличие связи м/у данными с общим признаком)В иеарх – связи в виде дерева графа, где возможны только односторонние связи от младших к старшим .В сетевой теоретически возм связи всех –но на практике невозможно то приходится прибегать к ограничениям
Компоненты Б/Д : Среда пользователя , алг язык, компилятор, утилиты быстрого прогр
49 Уровни представления б/д . Инф модель данных . Физическая модель данных. Понятие схемы и подсхемы данных.
Пользователя б/д интересует ее инф и смысловое содержание.(но не подробности хранения) поэтому можно выделить в представлении данных 2 ур абстракции:-инф модель-физ модель данных
Инф модель отображает ПО в терминах, понятных и привычных для пользователя.(Инф о явлениях и связях м/у ними). Проект инф модели термином сущность называют объект любой природы, о кот н хранить инф в б/д (М-во студентов- Сущность «студент». С-во хар сущность наз атрибутами (фам, имя, возраст) . М/у различными сущностями ПО и их атрибутами м сущ межсущ-е и межатриб-е связи, инф-но важные для пользователя б/д
Абстрактная инф модель ПО , т.е. выделенные вней сущности, атрибуты, связи д.б. описаны для представления в ЭВМ. Это описание делается средствами модели данных, кот поддерживают СУБД и наз внутренней схемой инф модели. Таким образом 3 ур абстракции данных в б/д. Внешняя инф модель (прикладная прог)-внутренняя схема(СУБД)-физическая б/д.
СУБД поддерживает модель данных и отображает ее в соотв структуры физической б/д . Ср-вами моделей данных СУБД, поддерживает логику внешней инф модели ПО. Прикладная прог , кот пишется в терминах модели данных СУБД, поддерживает логику внешней инф модели ПО для пользователя , основываясь на внутреней схеме ПО. Т.о. осущ инф моделирование ПО в памяти ЭВМ. Язык прог-вания СУБД содержит средства описания как внутреней схемы , так и создания прикладных программ.
50 Сетевые и еархические модели данных.Реляционая модель данных. Основные операции над отношениями вреляционной б/д.Реляционная алгебра и реляционное исчисление.
Модели данных , поддерживаемые СУБД, делят на сетевые , иеархические и реляционные. Соответственно так же и СУБД.
Сетевые СУБД исп модель представления данных в виде произвольного графа. В иеархических СУБД данные представляются в виде древовидной структуры. Практически все СУБД поддерживают реляционную модель данных. (Коддом в 1970) В основе понятие отношений (таблиц) м б исп для хранения данных и связях м/у ними. Атрибуты( столбцы) .Список имен атрибутов – схемой отношения. Реляционная бд –набор взаимосвязных отношений . Файл (запись, поле) Таблица (строка, столбец) Отношение (кортеж, атрибут) Сущность (экземпляр сущности атрибут)
(Упорядочение, группировка по значению индексов, доступ по дереву параметров).В таблицах все три способа манипулирования жестко связаны м/у собой : упорядоченные по другому , значит , облегчается доступ к нужным данным по одной цепочке, а по другой поиск усложняется. Коод предложил применять к отношениям (таблицам) стройную систему операций , позволяющею получать ( выводить , вычислять подобно арифметическим операциям) одни отношения из других. Это дает возможность делить инф на хранимую и не хранимую( вычисляемую) части.
Основные операции : -традиционные операции над множествами (объединение пересечение, разность( вычитание), декартово произведение , деление; — специальные операции (проекция , соединение, выбор)
Языки для выполнения операций : -1)языки реляционной алгебры; -2) языки реляционного исчисления.
1)Записывая последовательности операций над отношениями в существующем порядке, можно получить желаемый результат . Поэтому языки реляционной алгебры являются процедурными.
2)Основа классическое исчисление предикатов . Они предоставляют пользователю набор правил для записи запросов к бд. В таком запросе содержится лишь информация о желаемом результате . На основании запроса СУБД автоматически, путем формирования новых отношений, выдаст желаемый результат . Языки реляционного исчисления являются непроцедурными (SQL, dBase 4)
Операции над отношениями
Основной единицей обработки в операциях реляционной модели данных является отношение (а не отдельные ее записи, как это принято традиционных языках обработки данными). Эффективность реляционной СУБД определяется способностью выполнять над отношениями восемь операций алгебры отношений: объединение, пересечение, разность. декартово произведение. деление, проекцию, соединение, выбор. Покажем их выполнение на примерах.
Введем некоторые понятия. Степенью отношения называется число входящих в него атрибутов. Мощностью (кардинальным числом> отношения называется число кортежей отношения. При выполнении некоторых операций отношения должны иметь совместные схемы, т е. иметь одинаковую степень и одинаковые типы соответствующих атрибутов
Объединение. Операция выполняется над двумя совместимыми отношениями. Результат объединения включает все кортежи первого отношения и недостающие картежи из второго отношения.
Пресечение. Результат пересечения содержит только те кортежи первого отношения, которые есть во втором.
Разность. Результат вычитания включает только те кортежи первого отношения, которых нет во втором.
Декартово произведение. Здесь отношения- операнды минут иметь разные схемы: Студент Экзамены
фамилия предмет Дата
Антонов Субд 9,01,99
Иванов История 10,12,99
Заваров
Степень результирующего отношения равна сумме степеней отношений операндов, в мощность произведению их мощностей:
фамилия предмет Дата
Антонов Субд 9,01,99
антонов история 10,12,99
Иванов субд ,,,,,,,,,,,,,
Деление. Отношение-делитель должно содержать подмножество атрибутов отношения- делителя.
Результирующее отношение содержит только те атрибуты делимого. которых нет в делителе. В него включают только те кортежи, декартовы произведения которых с делителем содержатся в делимом(обратно декартово произведению)
Проекция. Эта операция выполняется над одним отношением на некоторые атрибуты. Результирующее отношение включает часть атрибутов исходного, на которые выполняется проекция, например «Номер отдела и «Должность». Кортежи-дубликаты отсутствуют:
Соединение .Операция соединения выполняется над двумя отношениями. В каждом отношении выделяется атрибут, по которому будет производиться соединение.
В качестве атрибута для соединения выберем «Код студента». Результирующее отношение включает все атрибуты первого отношения и второго отношения:
Выбор. Операция выполнятся над одним отношением. Результирующее отношение содержит подмножества кортежей, выбранных по некоторому условию, например «Возраст» >30 лет:
51 Свойства отношений . Композиция-декомпозиция отношений. Нормализация отношений . Типы функциональных зависимостей. Нормальные формы. Транзитивные зависимости.
Отношения реляционной БД в зависимости от содержания подразделяют на два класса: объектные отношения и связные отношения. Объектное отношение хранит данные об объектах.
В объектном отношении один из атрибутов однозначно идентифицирует отдельный объект. Такой ключевой атрибут называют ключом отношения или первичным атрибутом. В отношении СТУДЕНТ на роль ключа претендует атрибут «Фамилия И.О.». Для удобства ключ записывают в первой столбце таблицы. Остальные атрибуты функционально зависят от этого ключа. Ключ может включать несколько атрибутов (составной ключ) или быть частью значения атрибута (частичный ключ).В объектном отношении не должно быть строк с одинаковыми ключами, т.е. не должно быть дублировании объектов. Это основное ограничение реляционной модели данных для обеспечения целостности данных.
Связное отношение хранит ключи двух или более объектных отношений, т.е. по ключам устанавливаются связи между объектами отношений. Рассмотрим связное отношение ИЗУЧАЕТ (Студент , Предмет) , означающее, что студент изучает определенный предмет. При этом пусть БД имеются объектные отношения СТУДЕНТ< Фамилия, Курс, Специальность> и ПРЕДМЕТ (Название, Число семестров) со следующими данными:
СТУДЕНТ
Фамилия курс Специальность
Иванов 2 Матем
Петров 4 Физик
Сидоров 3 Бухучет
Предмет
Название Число семестров
Алгебра 4
История 3
Программирование 2
Английский 2
ИЗУЧАЕТ
Студент Предмет
Иванов Алгебра
Иванов Программ.
Петров Английский
Сидоров История
Связное отношение кроме связываемых ключей может иметь и другие атрибуты, которые функционально зависят от этой связи. Примером может быть связное отношение ИЗУЧЛЕТ(Студент. Предмет, Оценка):
Изучает
Студент Предмет Оценка
Иванов Алгебра 4
Иванов Программирование 5
Петров Английский 3
Ключи в связных отношениях называются внешними (или посторонними) ключами, поскольку являются первичными ключами других отношений.
Реляционная модель накладывает на внешние ключи ограничение для обесп целостности данных, называемое ссылочной целостностью . Это означает, что каждому внешнему ключу должна соответствовать строка какого- либо объектного отношения. Без такого ограничения может случиться, что внешний ключ ссылается на объект, о котором ничего не известно. В реляционной базе данных на каждое отношение накладывается и другое ограничение — они должны быть нормализованы. Это означает, что каждый атрибут должен быть простым — содержать атомарные, неделимые значения. К примеру, приведенное ниже отношение СТУДЕНТ не нормализовано, поскольку содержит сложный атрибут «Спорт».
Студент
Фамилия Курс Пол Спорта
Иванов 3 Муж Вид Разряд
Сидоров 2 привет Бокс 2
Здесь ключом является атрибут «Фамилия». Приведем это отношение к нормализованному виду, т.е. избавимся от сложном атрибута «Спорт». В полученном отношении СГУДЕНТ ключ является составным, состоящим из атрибутов «Фамилия и «Вид спорта».
Отношение, у которого все атрибуты простые, называется приведенным к первой нормальной форме (1НФ).
Фам. Вид спорта Курс Пол Спорт разряд
Иванов Бокс 2 Муж 1
Петров Плавание 3 Муж 2
ограничения накладываемые на отношения реляционной моделью данных, которые позволяют таблицы считать отношениями:
1)Не может быть одинаковых первичных ключей, т.е. все строки (записи) таблицы должны быть уникальны. 2. Все строки таблицы должны иметь одну и ту же структуру, т.е. одно и то же количество атрибутов соответственно совпадающими именами. 3. Имена столбцов таблицы должны быть различны, а значения столбцов должны быть однородными (однотипными). 4. Значения атрибутов должны быть атомарными. следовательно, отношения не могут иметь качестве компонент другие отношения. 5. Должна соблюдаться ссылочная целостность для внешних ключей. 6. Порядок следования строк таблице несуществен, так как влияет лишь на скорость доступа к строке
Нормализация отношений
Отношения реляционной базы данных содержат как структурную, так и семантическую (смысловую) информацию. Структурная информация задается схемой отношения, и семантическая выражается функциональными связями между атрибутами, известными и учитываемыми в схеме. Состав атрибутов отношений базы данных должен удовлетворять двум основным треб-ям: — между атрибутами не должно быть нежелательных функциональных зависимостей; — группировка атрибутов должна обеспечивать минимальное дублирование данных, обеспечивать их обработку и обновление без трудностей. Удовлетворение этих требований достигается нормализацией отношений БД. Нормализация отношений — это пошаговый обратимый — процесс декомпозиции (разложения) исходных отношений БД на другие, более мелкие и простые отношения. При этом устанавливаются (выясняются) асс возможные функциональные зависимости.
Аппарат нормализации отношений был разработан Е.Ф.Коддом. В нем опред различные нормальные формы ( 1НФ, 2НФ, 3 НФ, 4 НФ, 5 НФ). Каждая нормальная форма ограничивает типы допустимых функциональных зависимостей отношений . Отношение приведено к 1НФ, если все его атрибуты простые (атомарные).
Типы функциональных зависимостей
Составной ключ состоящий из двух атрибутов: «номер и «предмет’.
Ном-ер Пре-дм Ча-сов Фам-ил кто Ок-лад Каф-едр тел
201 Эвм 36 1 Доц 380 Эвм 489
201 АТУ 72 1 Доц 380 Эвм 489
202 ПУ 48 2 Доц 380 Эвм 489
301 ПУ 48 3 Про 520 АСУ 489
401 ТУ 52 4 Асс 270 ТЭФ 412
401 УТ 30 4 асс 270 ТЭФ 412
Введем понятие функциональной зависимости. Пусть имеются два атрибут Л и В. Если а любой момент времени каждому значение Л соответствует не более нем одно значение атрибута В, говорят, что В функционально зависит от Л. Функциональная зависимость обозначается так: А ->В. В примере :
Кто -> Оклад Номер->Фамилия Номер <- Фамилия и т.д.
Если неключевой атрибут зависит только от части ключа, то говорят о частичной зависимости. В нашем примере не ключевой атрибут «Клич. часов» зависит от части ключа, т.е. только от атрибута «Название предмета . Если не ключевой атрибут зависит от всего составного ключа н не находится в частичной зависимости от ею частей, то говорят о ею полной функциональной зависимости от составного ключа.
В нашем примере нет атрибутов, наход-ся в полной функциональной зависимости от составного ключа. Если для атрибутов Л, В, С выполняются условии Л->В и В->С, но обратная зависимость отсутствует, то говорят, что С зависит от Л транзитивно. Пример
транзитивной зависимости Фамилия->Кафедра->Телефон
В отношении между атрибутами может существовать еще один тип зависимости — многозначная зависимость. В отношении П атрибут В многозначно зависит от Л (Л—-В), если каждому значению Л соответствует множество значений В, никак не связанных с другими атрибутами из П . Многозначная зависимость возможна при наличии в отношении хотя бы трех атрибутов : ключа и не менее двух независимых друг от друга атрибутов.
Нормальные формы
Каждая нормальная форма ограничивает опр тип функц-ной завис-ти
— устраняет соответствующие аномалии при выполнении операций над отношениями БД.
1. Имеет место дублирование данных, о преподавателе, поскольку преподаватель может читать несколько предметов.
2. Существует проблема контроля избыточности данных, так как изменение. например, оклада влечет за собой необходимость поиска и изменения значений окладов во всех кортежах с данным преподавателем.
3. преподавателя без предмета невозможно включить в отношение. И наоборот, если преподаватель увольняется и удалятся из отношения, то будет удален и предмет, хотя предмет должен продолжать читаться.
Вторая нормальная форма Отношение находится в 2НФ, если оно находится в 1НФ и каждый не ключевой атрибут функционально полно зависит от составного ключа. Чтобы устранить частичную зависимость и привести рассматриваемое отношение к 2НФ, необходимо разложить его на два отношения следующим образом:
— построить проекцию без атрибутов, которые находятся фу-ной частичной зависимости от составного ключа:
— построить проекцию на часть составного ключа и атрибуты, зависящие от этой части. В итоге получим два отношения. ПРЕДМЕТ и ПРЕПОДАВЛТЕЛЬ, находящиеся, а 2НФ:
Номер Предмет Часов
201 Эвм 36
201 АТУ 72
202 ПУ 48
301 ПУ 48
401 ТУ 52
401 УТ 30
Преподаватель
номер фамил Кто оклад Кафед тел
201 1 Доц 380 Эвм 489
202 2 Доц 380 Эвм 489
301 3 Про 520 АСУ 489
401 4 Асс 270 ТЭФ 412
В полученном отношении ПРЕПОДАВАТЕЛЬ имеются транзитивные функциональные зависимости, например:
Номер->Кафедра->Телефон Номер->Должность->Оклад
Наличие транзитивных зависимостей порождает неудобства и аномалии следующего характера на примере атрибута Телефон
1. Имеет место дублирование информации о телефоне для преподавателей одной кафедры.
2. Существует проблема контроля избыточности, поскольку изменение номера телефона кафедры влечет за собой необходимость поиска и изменения номеров всех преподавателей этой кафедры.
3, Нельзя включить данные о новой кафедре (название и номер телефона), если на данный момент еще отсутствуют преподаватели. И наоборот, при увольнении всех преподавателей с кафедры данные о ней нельзя сохранить
Таким образом, отношение в 2НФ также может требовать дальнейших преобразований.
Третья нормальная форма. Отношение находится ЗНФ, если оно находится в 2НФ и в нем отсутствуют транзитивные зависимости неключевых атрибутов от ключа.
В нашем примере получим три отношения: Преподаватель
номер Фамилия Кто кафедра
201 1 Доц Эвм
202 2 Доц Эвм
301 3 Про АСУ
401 4 Асс ТЭФ
Должность Кафедра
кафедра Оклад кафедра Тел
Доц 380 Эвм 489
Про 520 АСУ 489
Асс 270 Тэф 412
ЗНФ освобождает от избыточности и аномалий выполнения операций включения, удаления и обновления (изменения), если отношение имеет один ключ и другие зависимости, в том числе многозначные. а нем отсутствуют. Но если при этом имеются другие зависимости, кроме зависимости от ключа, то ЗНФ не обеспечивает отсутствия аномалий операций. В этом случае применяют усиленную ЗНФ.
В заключение определим место процесса нормализации в проектировании БД: — вначале составляются исходные отношения проекта БД с использованием объектно-связной модели для отображения объектов предметной области и связей между ними;
— затем производится нормализация, т.е. композиция-декомпозиция исходных отношений и назначенные ключей новых отношений в соответствии с правилами нормализации;
— далее схемы нормализованных отношений описываются средствами СУБД и вводятся в ЭВМ. Отметим, что нормализация увеличивает число отношений в БД и тем самым может возрастать время обработки. Но в то же время благодаря корректности и устранению дублирования данных ускоряется выполнение операций доступа к данным.
