
- •Шехтман в. Е.
- •1. Базы данных и модели данных
- •1.1. Введение.
- •1.2. Файлы операционной системы
- •1.3. Пример базы данных.
- •1.4. Иерархическая модель данных
- •1.5. Сетевая модель данных
- •1.6. Инвертированные списки.
- •1.7. Реляционная модель данных
- •2. Введение в реляционную модель данных.
- •3. Реляционная алгебра
- •3.1. Теоретико-множественные операции.
- •3.2. Специальные операции ra
- •4. Нормализация данных
- •4.1. Полная декомпозиция.
- •Магазин товар ндс
- •Товар ндс
- •Магазин ндс
- •Товар ндс
- •Магазин товар ндс
- •4.2. Проблема дублирования данных.
- •1 Глобус 33-33-33
- •2 Глобус 33-33-33
- •4 Океан 77-77-77
- •4.3. Висячие записи.
- •Поставщик Тел
- •4.4. Проблемы, возникающие из-за неудачной структуры данных.
- •4.5. Пятая нормальная форма (5нф).
- •4.6. Функциональная зависимость.
- •4.7. Связь между фз и полной декомпозицией отношения.
- •4.8. Первая нормальная форма (1нф).
- •4.9. Вторая нормальная форма (2нф).
- •4.10. Третья нормальная форма (3нф).
- •4.11. Нормальная форма Бойса-Кодда (нфбк).
- •4.12. Многозначная зависимость.
- •4.13. Четвертая нормальная форма (4нф).
- •4.14. Пример нормализации.
- •4.15. Резюме. Нормальные формы.
- •5. Инфологическое моделирование.
- •5.1. Сущность и набор сущностей
- •5.2. Связи между сущностями.
- •5.3. Рекурсивная связь. Роли.
- •5.4. Множественные связи.
- •5.5. Суперсущности и производные сущности
- •5.6. Слабые наборы сущностей
- •5.7. Борьба с избыточнотью
- •5.8. Преобразование инфологической модели в физическую модель.
- •5.9. Пример инфологического моделирования.
- •6. Язык sql
- •6.1. История sql.
- •6.2. Структура sql.
- •6.3. Язык запросов
- •6.4. Простые запросы на выборку данных.
- •6.5. Агрегатные (групповые) функции.
- •6.6. Вложенные запросы
- •6.7. Внешние объединения
- •6.8. Изменение данных
- •Insert into r1 (o, fio, d) values (5, ‘Иванов’, ’бд’)
- •7. Представления.
- •8. Определение схемы базы данных и ограничений целостности
- •9. Транзакции
- •9.1. Свойства транзакций
- •9.2. Надежное хранение данных
- •9.3. Параллельное выполнение транзакций
- •9.3.1. Коллизия “пропавшие изменения” - lost update problem
- •9.3.2. Коллизия “промежуточные данные” - dirty read
- •9.3.3. Коллизия “Несогласованные данные” - unrepeatable read, inconsistent analysis
- •9.3.4. Коллизия “фантом” - phantom
- •9.4. Уровни изолированности
- •9.5. Тупики
- •10. Ограничение прав доступа в целях обеспечения безопасности
- •11. Физическая организация баз данных
- •11.1. Организация размещения данных.
- •11.2. Организация индексов
- •11.2.1. Поиск в бд.
- •11.2.2. Плотный индекс (индексно-прямые файлы).
- •11.2.3. Неплотный индекс (индексно-последовательные файлы).
- •11.2.4. Сбалансированные деревья.
- •11.2.5. Инвертированные списки.
- •12. Архитектура субд. Методы оптимизации запросов.
- •Логические преобразования запросов.
- •Преобразования запросов с изменением порядка реляционных операций.
- •13. Аналитические системы.
- •Анализ данных.
- •Хранилища данных
- •Типы ошибок
- •Способы реализации olap.
- •Требования к средствам реализации систем оперативной и аналитической обработки данных
- •Многомерная модель данных.
- •Разработка данных
- •14. Загружаемые процедуры.
- •In pr double precision)
- •If eof then leave Cl end if;
- •Insert into providers(code, name)
- •Values (nr.Codec, ‘*** новый поставщик ***’);
- •15. Модели совместного доступа к бд
- •15.1. Файл-серверная модель.
- •15.2. Модель клиент-сервер с бизнес-логикой на клиенте.
- •15.3. Модель клиент-сервер с бизнес-логикой на сервере субд (хранимые процедуры и триггеры) и частично на клиенте.
- •15.4. Модель сервера приложений (трёхзвенная архитектура, “тонкий клиент”)
- •Список литературы
4.15. Резюме. Нормальные формы.
Нормализация – разбиение таблицы на несколько, обладающих лучшими свойствами обновления, включения, удаления. Нормализация – процесс последовательной замены таблицы ее полными декомпозициями пока все они не будут находиться в 5НФ. На практике цель – НФБК.
1НФ ни одна из ее строк ни в одном столбце не содержит > 1 значения; ключевые поля IS NOT NULL.
2НФ 1НФ; все ее не ключевые поля (не входящие в PK) функционально полно зависят от PK.
5НФ В каждой полной декомпозиции таблицы все проекции содержат возможный ключ. Таблица, не имеющая ни одной полной декомпозиции тоже в 5НФ.
4НФ – частный случай 5НФ когда полная декомпозиция есть соединение ровно 2 проекций.
Важно, чтобы единственными функциональными зависимостями в любой таблице были PK -> F. Никаких других ФЗ! Цель нормализации – чтобы не было никаких других ФЗ.
“Таблица содержит свойства ключей, свойства всех ключей, ничего кроме свойств ключей”
Случаи в которых требуется нормализация:
T = <K1, K2, F> PK(K1,K2) K2->F
Надо T1 <K1,K2> PK(K1,K2)
T2 <K2,F> PK(K2)
T = <K, F1, F2> PK(K) F1->F2
Надо T1 <K, F1> PK(K)
T2 <F1, F2> PK(F1)
Пример: переход от рис.2 к рис.5
Рис.2:
PK: Товар, ДатаПрод, Поставщик, Город, ДатаП
Свойства: НДС, Расход, Страна, Вес (кг), Цена
Выявление полей, функционально зависимых от части составного ключа:
Исходное состояние |
Результирующее состояние |
Рис на котором представлен результат, случай. |
Товар –> НДС. |
Товары (Товар, НДС) |
Рис.3 I случай. |
Товар, ДатаПрод -> Расход
|
Расход (Товар, ДатаПрод, Расход) |
Рис.3Q I случай. |
Товар, поставщик, ДатаП -> Вес, Цена
|
Поставки (Товар, Поставщик, ДатаП, Вес, Цена) |
Рис.3 I случай. |
Поставщик, Город -> Страна
|
Поставщики (Поставщик, Город, Страна) |
Рис.3 I случай. |
Город -> Страна |
Города (Город, Страна) |
Рис.5 I случай. |
Поставщик – Город |
Поставщики (Поставщик, Город) |
Рис.5 II случай. |
5. Инфологическое моделирование.
Инфологическое моделирование предназначено для понимания того, что содержится в базе данных, всеми участниками проекта по созданию приложения, в основе которого лежит база данных. Иными словами, инфологическая модель призвана отражать реальный мир в множество понятных человеку концепций, независимых от особенностей реализации системы в конкретной СУБД. Для такого моделирования принято использовать совокупность диаграмм, предложенных Ченом, называемых “модель сущность-связь”. Другое название использует английскую аббревиатуру: ER-диаграмма (Entity-Relation). Впоследствии инфологическая модель должна быть отображена в даталогическую (или, иными словами, в физическую) модель, понятную конкретной СУБД. Существуют и способы автоматического перевода модели “сущность-связь” в физическую модель (реляционную базу данных). Для этой цели служит целый класс программных продуктов, называемый CASE (Computer Aided Software Engineering).