Базы данных Учитель информатики гимназии 1 г. Жуковского Московской области Ю.В.Пашковская
Содержание: 1. Структура связей в базах данных. 2. Выделение списков в сложных структурах. 3. Реляционные базы данных. 4. Нормализация баз данных.
Структуры баз данных 1. Линейная, или список – самая простая структура. Она представляет собой набор не связанных между собой однотипных элементов, собранных по какому-либо признаку. 2. Иерархическая, или многоуровневый список, или дерево: каждый элемент нижнего уровня связан с одним элементом верхнего. 3. Сетевая – набор узлов, в котором каждый может быть связан с каждым.
Выделение списков в сложных структурах 1. Иерархическая: Горизонтальные списки
Выделение списков в сложных структурах 1. Иерархическая: Вертикальный список Список связей всех элементов нижнего уровня с корнем дерева
Иерархическая структура Вертикальный список: Горизонтальные списки:
Выделение списков в сложных структурах 2. Сетевая: Горизонтальные списки 1 2
Выделение списков в сложных структурах 2. Сетевая: Вертикальный список
Сетевая структура Горизонтальные списки: Вертикальный список:
Реляционные базы данных Списки удобнее всего представлять в виде таблиц. База данных, представленная в виде набора связанных между собой простых таблиц, называется реляционной. Строки в таблицах называются записями, а столбцы – полями. Записи описывают элементы списка, или объекты, а поля – их характеристики, или атрибуты. Реляционная база данных является универсальной.
Атрибуты параметры признаки свойства Числовые характеристики Качественные характеристики Наличие способностей объекта, приводящих к некоторому результату рост вес размер полЦвет глаз теплопроводность Атрибуты
Таблицы 1.Количество полей определяется разработчиком и не может изменяться пользователем. 2.Любое поле должно иметь уникальное имя. 3.Поля могут иметь различный тип: Текстовый – строка символов (длиной до 255 символов) Числовой: вещественное число (с дробной частью) целое число денежная сумма дата, время, дата и время логическое поле (истина или ложь, да или нет) многострочный текст (МЕМО) - примечания рисунок, звук или другой объект (объект OLE) 4.Поля могут быть обязательными для заполнения или нет. 5. В каждой таблице должен быть ключ. Ключ – это поле (или комбинация полей), которое однозначно определяет запись. Чаще всего в качестве ключа берут порядковый номер записи.
Аномалии модификации данных При неправильно спроектированной схеме реляционной БД могут возникнуть аномалии выполнения операций модификации данных. аномалии обновлениядобавленияудаления
Аномалии обновления Такие аномалии могут возникнуть в том случае, когда информация дублируется. Например, если пользователями базы решено заменить русское название отряда Хищные на латинское – Carnivora, то вносить исправления придётся во все записи, где встречается это название, иначе данные станут противоречивы.
Аномалии добавления Такие аномалии возникают в сетевой структуре, когда в качестве атрибута в вертикальном списке берётся атрибут (-ы) какого-либо объекта из горизонтального списка. Например, если в БД «Спортсмены» ввести новую запись, то возникнет противоречие: код секции не соответствует её названию. Горизонтальный список «Спортивные секции»
Аномалии удаления Причина аномалий удаления та же, что и у аномалий добавления: в сетевой структуре в качестве атрибута в вертикальном списке берётся атрибут (-ы) какого-либо объекта из горизонтального списка. Например, если все спортсмены из секции Плавание решат уйти из спорта, то из базы данных исчезнет и вся информация об этой секции. Горизонтальный список «Спортивные секции»
Нормализация Чтобы избавиться от всевозможных аномалий при работе с информацией, проводят нормализацию базы данных. Нормализация – это процедура, которая позволяет устранить дублирование и потенциальную противоречивость хранимых данных.
Нормализация 1. Избавление от повторов в таблицах РодСемействоОтряд 1Волк11 2Шакал11 3Енотовидная собака11 4Медведь бурый21 5Медведь белый21 6Медведь гималайский21 Ключи горизонтальных списков Связи между списками
Нормализация 1. Избавление от повторов в таблицах Ключи горизонтальных списков Связи между списками
2. Любое поле должно быть неделимым Фамилия и имя Иванов Петр Петров Иван … ФамилияИмя ИвановПетр ПетровИван …… 3. Не должно быть полей, которые могут быть найдены с помощью остальных КодТовар Цена за тонну Кол-во, тоннСтоимость 1Бананы Киви … Дополнительные требования к нормализованной базе данных
4. Не должно быть полей, которые обозначают различные виды одного и того же. Фамилия 1Иванов И.И. 2Петров П.П. 3Сидоров С.С.
Алгоритм нормализации: 1. Определение классов объектов, входящих в её состав. 2. Замена связи «1 – 1» объединённым списком, в котором объект одного класса выступает в качестве атрибута для объекта другого класса. 3. Определение структуры связи между классами. 4. Замена каждой сложной структуры на вертикальный и горизонтальные списки с указанием связей по ключевым полям. 5. Внесение дополнительных атрибутов для каждого класса объектов – в зависимости от степени детализации объектов. 6. Обеспечение требования неделимости полей – в зависимости от целей, стоящих перед будущими пользователями базой данных. 7. Исключение вычисляемых полей.
Пример для демонстрации нормализации Два автора в одном поле Дублирование информации Дублирование информации
Классы, связанные соотношением 1-1: Все поля, за исключением поля автор. Книги
Выделяем повторы в отдельные списки: Связь
Приведение к нормальной форме
Структура связей: