Тема_5 (1122344)
Текст из файла
Проектирование РБД на основе учетафункциональных зависимостейС.Д. Кузнецов. Базы данных. Тема 5План (1)ВведениеЭлементы теории функциональных зависимостей Базовые определения и утверждения теориифункциональныхзависимостейОбщие определенияЗамыкание множества функциональных зависимостей. АксиомыАрмстронга. Замыкание множества атрибутовМинимальное покрытие множества функциональныхзависимостейДекомпозиция без потерь и функциональные зависимостиКорректные и некорректные декомпозиции отношений. ТеоремаХитаДиаграммы функциональных зависимостей22.10.2009С.Д. Кузнецов. Базы данных.2Проектирование РБДПлан (2)Минимальные функциональные зависимости ивторая нормальная формаАномалии обновления, возникающие из-за наличия неминимальных функциональных зависимостейВозможная декомпозицияВторая нормальная формаНетранзитивные функциональные зависимости итретья нормальная формаАномалии обновления, возникающие из-за наличиятранзитивных функциональных зависимостейВозможная декомпозицияТретья нормальная формаНезависимые проекции отношений.
Теорема Риссанена22.10.2009С.Д. Кузнецов. Базы данных.3Проектирование РБДПлан (3)Перекрывающиеся возможные ключи инормальная форма Бойса-КоддаАномалии обновлений, связанные с наличиемперекрывающихся возможных ключейНормальная форма Бойса-КоддаВсегда ли следует стремиться к BCNF?22.10.2009С.Д. Кузнецов. Базы данных.4Проектирование РБДВведение (1)При проектировании баз данных решаются две основныепроблемы:Каким образом отобразить объекты предметной области в абстрактныеобъекты модели данных, чтобы это отображение не противоречилосемантике предметной области и было, по возможности, наилучшим(эффективным, удобным и т.
д.)? Часто эту проблему называютпроблемой логического проектирования баз данныхКак обеспечить эффективность выполнения запросов к базе данных, т.е. каким образом, имея в виду особенности конкретной СУБД,расположить данные во внешней памяти, создания какихдополнительных структур (например, индексов) потребовать и т. д.? Этупроблему обычно называют проблемой физического проектированиябаз данныхВ случае реляционных баз данных трудно предложить какие-либообщие рецепты по части физического проектированияЗдесь слишком многое зависит от используемой СУБДПоэтому мы ограничимся вопросами логического проектированияреляционных баз данных, которые существенны при использованиилюбой реляционной СУБД.22.10.2009С.Д. Кузнецов.
Базы данных.5Проектирование РБДВведение (2)Более того, мы не будем касаться очень важного аспектапроектирования – определения ограничений целостностиобщего вида (за исключением ограничений, задаваемыхфункциональными и многозначными зависимостями, а такжезависимостями проекции/соединения)Дело в том, что при использовании СУБД с развитымимеханизмами определения и поддержки ограниченийцелостности (например, SQL-ориентированных систем)трудно предложить какой-либо универсальный подход копределению ограничений целостностиЭти ограничения могут иметь произвольно сложную форму,и их формулировка пока относится скорее к областиискусства, чем инженерного мастерстваСамое большее, что предлагается по этому поводу влитературе, это автоматическая проверканепротиворечивости набора ограничений целостности.22.10.2009С.Д.
Кузнецов. Базы данных.6Проектирование РБДВведение (3)Поэтому мы будем считать, что проблема проектированияреляционной базы данных состоит в обоснованном принятиирешений о том, из каких отношений должна состоять БД и какиеатрибуты должны быть у этих отношенийБудет рассмотрен классический подход, при котором весь процесспроектирования базы данных осуществляется в терминахреляционной модели данных методом последовательныхприближений к удовлетворительному набору схем отношенийИсходной точкой является представление предметной области ввиде одного или нескольких отношений, и на каждом шагепроектирования производится некоторый набор схем отношений,обладающих «улучшенными» свойствамиПроцесс проектирования представляет собой процесснормализации схем отношений, причем каждая следующаянормальная форма обладает свойствами, в некотором смысле,лучшими, чем предыдущая.22.10.2009С.Д.
Кузнецов. Базы данных.7Проектирование РБДВведение (4)Каждой нормальной форме соответствует определенный наборограничений, и отношение находится в некоторой нормальной форме, еслиудовлетворяет свойственному ей набору ограниченийПримером может служить ограничение первой нормальной формы –значения всех атрибутов отношения атомарныПоскольку требование первой нормальной формы является базовымтребованием классической реляционной модели данных, мы будемсчитать, что исходный набор отношений уже соответствует этомутребованиюВ теории реляционных баз данных обычно выделяется следующаяпоследовательность нормальных форм:первая нормальная форма (1NF);вторая нормальная форма (2NF);третья нормальная форма (3NF);нормальная форма Бойса-Кодда (BCNF);четвертая нормальная форма (4NF);пятая нормальная форма, или нормальная форма проекции-соединения (5NFили PJ/NF)22.10.2009С.Д.
Кузнецов. Базы данных.8Проектирование РБДВведение (5)Основные свойства нормальных форм состоят в следующем:каждая следующая нормальная форма в некотором смысле лучшепредыдущей нормальной формы;при переходе к следующей нормальной форме свойства предыдущихнормальных форм сохраняютсяВ основе процесса проектирования лежит метод нормализации, т.е. декомпозиции отношения, находящегося в предыдущейнормальной форме, на два или более отношений, которыеудовлетворяют требованиям следующей нормальной формы.В этой лекции мы обсудим первые шаги процесса нормализации, вкоторых учитываются функциональные зависимости междуатрибутами отношенийХотя мы и называем эти шаги первыми, именно они имеютосновную практическую важность, поскольку позволяют получитьсхему реляционной базы данных, в большинстве случаевудовлетворяющую потребности приложений22.10.2009С.Д.
Кузнецов. Базы данных.9Проектирование РБДЭлементы теории функциональныхзависимостей (1)Этот курс не посвящен подробному описанию основных результатов вобласти теории реляционных баз данныхОбеспечивается только определения и утверждения, необходимые дляобщего понимания процесса проектирования реляционных баз данных наоснове нормализации.Поскольку наиболее важные с практической точки зрения свойствареляционных баз данных базируются на понятии функциональнойзависимости, мы выделили в отдельный раздел краткое обсуждениесоответствующих теоретических вопросовСреди этих вопросов наибольший интерес представляютзамыкания и покрытия множеств функциональных зависимостей,аксиомы Армстронга итеорема Хита о достаточном условии декомпозиции отношения без потерь.Понятия и утверждения данного раздела действительно нужны дляусвоения материала этой темы, но мы стремились еще ипродемонстрировать читателям на несложных примерах, что собойпредставляет теория реляционных баз данных, каков уровень еесложности и насколько она понятна интуитивно22.10.2009С.Д.
Кузнецов. Базы данных.10 Проектирование РБДЭлементы теории функциональных зависимостей (2)Базовые определения и утверждения (1)Пусть задана переменная отношения r, и X и Y являютсяпроизвольными подмножествами заголовка r («составными»атрибутами)Определение 5.1. Функциональная зависимостьВ значении переменной отношения r атрибут Yфункционально зависит от атрибута X в том и только в томслучае, если каждому значению X соответствует в точностиодно значение Y В этом случае говорят также, что атрибут X функциональноопределяет атрибут Y (X является детерминантом(определителем) для Y, а Y является зависимым от X) Будем обозначать это как r.X → r.Y22.10.2009С.Д.
Кузнецов. Базы данных.11 Проектирование РБДЭлементы теории функциональных зависимостей (3)Базовые определения и утверждения (2)Для примера будем использовать переменную отношенияСЛУЖАЩИЕ_ПРОЕКТЫ с заголовком {СЛУ_НОМ, СЛУ_ИМЯ,СЛУ_ЗАРП, ПРО_НОМ, ПРОЕКТ_РУК}Очевидно, что если первичным ключом переменной отношенияСЛУЖАЩИЕ_ПРОЕКТЫ является СЛУ_НОМ, то для этогоотношения справедлива, например, функциональнаязависимость (Functional Dependency – FD) СЛУ_НОМ →СЛУ_ИМЯ22.10.2009С.Д. Кузнецов. Базы данных.12 Проектирование РБДЭлементы теории функциональных зависимостей (4)Базовые определения и утверждения (3)На самом деле, для этого значения переменной отношенияСЛУЖАЩИЕ_ПРОЕКТЫ выполняются еще и следующие FD (1):Поскольку имена всех служащих различны, то выполняются и такиеFD (2):СЛУ_НОМ → СЛУ_ЗАРПСЛУ_НОМ → ПРО_НОМСЛУ_НОМ → ПРОЕКТ_РУК{СЛУ_НОМ, СЛУ_ИМЯ} → СЛУ_ЗАРП{СЛУ_НОМ, СЛУ_ИМЯ} → ПРО_НОМ{СЛУ_НОМ, СЛУ_ИМЯ} → {СЛУ_ЗАРП, ПРО_НОМ}…ПРО_НОМ → ПРОЕКТ_РУК и т.д.СЛУ_ИМЯ → СЛУ_НОМСЛУ_ИМЯ → СЛУ_ЗАРПСЛУ_ИМЯ → ПРО_НОМ и т.д.Более того, для этого значения отношения выполняется и FD (3):СЛУ_ЗАРП → ПРО_НОМ22.10.2009С.Д.
Кузнецов. Базы данных.13 Проектирование РБДЭлементы теории функциональных зависимостей (5)Базовые определения и утверждения (4)Однако заметим, что природа FD группы (1) отличается от природы FDгрупп (2) и (3).FD группы (2) базируются на менее естественном предположении о том,что имена всех служащих различныЛогично предположить, что идентификационные номера служащих должны бытьвсегда различны, а у каждого проекта имеется только один руководитель.Поэтому FD группы (1) должны быть верны для любого допустимого значенияпеременной отношения СЛУЖАЩИЕ_ПРОЕКТЫ и могут рассматриваться какинварианты, или ограничения целостности этой переменной отношения.Это соответствует действительности для данного возможного значенияотношения, но возможно, что с течением времени FD группы (2) не будутвыполняться для какого-либо значения переменной отношенияСЛУЖАЩИЕ_ПРОЕКТЫ.Наконец, FD группы (3) основана на совсем неестественномпредположении, что никакие двое служащих, участвующие в разныхпроектах, не получают одинаковую зарплатуОпять же, данное предположение верно для возможного значения отношения, но,скорее всего, это случайное совпадение.22.10.2009С.Д.
Кузнецов. Базы данных.14 Проектирование РБДЭлементы теории функциональных зависимостей (6)Базовые определения и утверждения (5)В дальнейшем нас будут интересовать только те функциональные зависимости,которые должны выполняться для всех возможных значений переменных отношенийЗаметим, что если атрибут A переменной отношения r является возможным ключом,то для любого атрибута B этого отношения всегда выполняется FD A → Bв группе (1) к этим FD относятся все FD, детерминантом которых является атрибут СЛУ_НОМ).Обратите внимание, что наличие в отношении СЛУЖАЩИЕ_ПРОЕКТЫ FD ПРО_НОМ→ ПРОЕКТ_РУК приводит к некоторой избыточности этого отношенияИмя руководителя проекта является характеристикой проекта, а не служащего, но внашем случае содержится в теле отношения столько раз, сколько служащихработает над проектом.Итак, мы будем иметь дело с FD, которые выполняются для всех возможныхсостояний тела соответствующего отношения и могут рассматриваться какограничения целостностиКак показывает (неполный) список (1), таких зависимостей может быть очень многоПоскольку они трактуются как ограничения целостности, за их соблюдением должнаследить СУБДПоэтому важно уметь сократить набор FD до минимума, поддержка которогогарантирует выполнение всех зависимостей22.10.2009С.Д.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.