90 likes | 313 Views
Введение в реляционные базы данных. Презентация подготовлена с использованием материалов Mark Sapossnek , С.Д. Кузнецова и А.Ю. Пушникова. Нормализация / Денормализация. Нормализация Процесс разбиения больших таблиц на несколько меньших
E N D
Введение в реляционные базы данных Презентация подготовлена с использованием материалов Mark Sapossnek, С.Д. Кузнецова и А.Ю. Пушникова
Нормализация/Денормализация • Нормализация • Процесс разбиения больших таблиц на несколько меньших • Цель: уменьшение избыточности данных, обеспечение целостности • Увеличивается производительность при изменении БД • Желательна в приложениях, использующих транзакции • Денормализация • Процесс объединения нескольких таблиц в одну большую • Увеличивает избыточность данных • Увеличивает производительность при чтении данных • Желательная в приложениях, в основном хранящих данные. • Про нормализацию и нормальные формы отношений можно прочитать здесь: • http://www.citforum.ru/database/osbd/glava_23.shtml#_2_3_1 • http://www.citforum.ru/database/dblearn/dblearn06.shtml#07
Н_СОТР ФАМ Н_ОТД ТЕЛ Н_ПРО ПРОЕКТ Н_ЗАДАН 1 Иванов 1 11-22-33 1 Космос 1 1 Иванов 1 11-22-33 2 Климат 1 2 Петров 1 11-22-33 1 Космос 2 3 Сидоров 2 33-22-11 1 Космос 3 3 Сидоров 2 33-22-11 2 Климат 2 1 Нормальная форма отношений • 1 Нормальная форма: • В отношении нет одинаковых кортежей. • Кортежи не упорядочены. • Атрибуты не упорядочены и различаются по наименованию. • Все значения атрибутов атомарны.
2 нормальная форма Определение. Пусть R - отношение. Множество атрибутов Yфункционально зависимо от множества атрибутовX (Xфункционально определяет Y) тогда и только тогда, когда для любого состояния отношения R для любых кортежей r1, r2 из того, что r1.X = r2.X следует что r1.Y = r2.Y (т.е. во всех кортежах, имеющих одинаковые значения атрибутов X, значения атрибутов Y также совпадают в любом состоянии отношения R). X называется детерминантом. Y называется зависимой частью. Определение. Отношение R находится во второй нормальной форме (2НФ) тогда и только тогда, когда отношение находится в 1НФ и нет неключевых атрибутов, зависящих от части сложного ключа. (Неключевой атрибут - это атрибут, не входящий в состав никакого потенциального ключа).
Н_СОТР Н_СОТР Н_ПРО ПРОЕКТ Н_ПРО ФАМ Н_ЗАДАН Н_ОТД ТЕЛ 1 1 1 Космос 1 Иванов 1 1 11-22-33 1 2 2 Климат 2 Петров 1 1 11-22-33 3 2 1 Сидоров 2 2 33-22-11 3 1 3 3 2 2 2 нормальная форма (пример) Н_ПРО -> ПРОЕКТ Н_СОТР->ФАМ Н_СОТР->Н_ОТД Н_СОТР->ТЕЛ Н_ОТД->ТЕЛ (Н_СОТР, Н_ПРО) -> Н_ЗАДАН
Н_ОТД Н_СОТР ТЕЛ ФАМ Н_ОТД 1 1 11-22-33 Иванов 1 2 2 33-22-11 Петров 1 3 Сидоров 2 3 Нормальная форма Определение. Атрибуты называются взаимно независимыми, если ни один из них не является функционально зависимым от другого. Определение. Отношение R находится в третьей нормальной форме (3НФ) тогда и только тогда, когда отношение R находится в 2НФ и все неключевые атрибуты взаимно независимы. Н_ОТД->ТЕЛ Н_СОТР->ФАМ Н_СОТР->Н_ОТД Н_СОТР->ТЕЛ
Алгоритм нормализации Шаг 1 (Приведение к 1НФ). На первом шаге задается одно или несколько отношений, отображающих понятия предметной области. По модели предметной области (не по внешнему виду полученных отношений!) выписываются обнаруженные функциональные зависимости. Все отношения автоматически находятся в 1НФ. Шаг 2 (Приведение к 2НФ). Если в некоторых отношениях обнаружена зависимость атрибутов от части сложного ключа, то проводим декомпозицию этих отношений на несколько отношений следующим образом: те атрибуты, которые зависят от части сложного ключа выносятся в отдельное отношение вместе с этой частью ключа. Шаг 3 (Приведение к 3НФ). Если в некоторых отношениях обнаружена зависимость некоторых неключевых атрибутов от других неключевых атрибутов, то проводим декомпозицию этих отношений следующим образом: те неключевые атрибуты, которые зависят других неключевых атрибутов выносятся в отдельное отношение.
Язык запросов SQL (Structured Query Language) • Стандартный язык для управления реляционными базами данных. Стандартизован American National Standarts Institute (ANSI). SQL-92. • Стандарт открытый (но не совсем) • Общая функциональность сохранена для разных продуктов • У каждого производителя есть свои собственные расширения • Команды SQL можно разделить на три класса • DDL (Data Definition Language) – язык для описания и изменения структуры таблиц • DML (Data Manipulation Language) – язык для выполнения запросов и изменения таблиц • DCL (Data Control Language) – язык для управления доступа к данным
Необходимые инструменты Microsoft SQL Server 2005 Express Edition: http://www.microsoft.com/downloads/details.aspx?FamilyID=220549b5-0b07-4448-8848-dcc397514b41&displaylang=ru Microsoft SQL Server 2005 Management Studio Express: http://www.microsoft.com/downloads/details.aspx?FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796&displaylang=en