
- •Лекция 1. Базы данных в системе экономической информации Основные понятия
- •1.1 Роль и место баз данных в системе экономической информации
- •1.2 Базы данных: основные понятия
- •Лекция 2. Предметная область и ее структура
- •2.1 Предметная область: основные понятия
- •2.2 Исчисление типов отношений между типами объектов
- •2.3 Модель «сущность-связь» и ее разновидности. Основы er моделирования
- •2.4 Структурирование предметной области с позиций функций и задач управления
- •2.5 Матрица отношений между типами объектов
- •Лекция 3. Реляционные базы данных
- •3.1 Отношения реляционных баз данных и свойства
- •3.2 Достоинства и недостатки реляционных баз данных
- •3.3 Элементы реляционной алгебры, реляционного исчисления и трехзначной логики
- •Естественное соединение
- •Правила трехзначной логики
- •Лекция 4. Нормализация таблиц реляционных баз данных
- •4.1 Принципы нормализации
- •4.2 Нормальные формы
- •Лекция 5. Проектирование и создание запросов. Структурированный язык запросов (sql).
- •5.1 Понятие запроса
- •5.2 Соединение таблиц в запросах
- •5.3 Соединение трех и более таблиц
- •5.4 Запрос на выборку
- •5.5 Запрос на выборку с группировкой
- •5.6 Перекрестный запрос
- •5.7 Перекрестный запрос с составным заголовком строк
- •5.8 Запрос на обновление
- •5.9 Запрос на удаление
- •5.10 Запрос на добавление
- •5.11 Логически выраженные команды sql
- •Лекция 6. Microsoft Access как объективно-ориентированная система
- •6.1 Понятие события.
- •6.2 Понятие объектов, их свойств и методов
- •Лекция 7. Современные тенденции развития бд
- •7.2 Основные концепции объектно-ориентированного подхода
Правила трехзначной логики
Таблица истинности оператора and
and |
true |
false |
Null |
true |
true |
false |
Null |
false |
false |
false |
False |
null |
null |
false |
Null |
Таблица истинности оператора or
or |
true |
false |
Null |
true |
true |
true |
True |
false |
true |
false |
Null |
null |
true |
null |
Null |
Таблица истинности оператора not.
not |
true |
false |
Null |
|
false |
true |
Null |
Лекция 4. Нормализация таблиц реляционных баз данных
-
Принципы нормализации.
-
Нормальные формы
После того как структура предметной области разработана, она подвергается анализу и реструктуризации. В ходе реструктуризации используется ряд принципов, которые позволяют привести таблицы баз данных в нормальный вид (форму). В процессе нормализации исходные таблицы делятся на ряд самостоятельных таблиц, состоящие из меньшего количества столбцов.
4.1 Принципы нормализации
-
Принцип одноразового ввода и безъизбыточного хранения данных.
Согласно теории нормализации каждый элемент данных должен вводиться в базу только один раз и храниться в единственном экземпляре в одной таблице. Нарушение данного принципа приводит к нерациональному хранению дисковой памяти и противоречивости данных.
Противоречия возникают тогда, когда свойства одного и того же объекта в различных таблицах имеют разные значения.
Вместе с тем возможна ситуация, когда один и тот же элемент хранится в базе в нескольких экземплярах. Необходимость связать родительскую и дочернюю таблицы требует включить в состав полей дочерней таблицы ключ из родительской таблицы. В результате значение ключа из родительской таблицы может встретиться также в соответствующем поле дочерней таблицы. В случае, если в организации используется распределенная база данных, состоящая из нескольких самостоятельных подбаз, то в соответствии с принципом нормализации одноразового ввода и безъизбыточного хранения данные вводятся только в одной из подбаз и передаются по сети или каким-то другим способом во все другие подбазы.
-
Принцип атомарности (неделимости) всех полей базы данных.
Каждое поле должно включать только один реквизит, не делимый на поля самостоятельных реквизитов.
Например, поле, содержащее адрес, может быть разбито на ряд самостоятельных реквизитов: индекс, код региона, город, улица, дом.
Вследствие этого каждый из полученных реквизитов должен соответствовать самостоятельному полю.
Достаточно часто разработчики сознательно нарушают принцип атомарности для достижения большей производительности системы, но нарушение этого принципа может привести к определенным проблемам при дальнейшем развитии и наращивании базы данных.
Сознательное нарушение принципа атомарности допускается в том случае, когда это нарушение не отражается на функциональности базы данных.
-
Принцип отсутствия повторяющихся групп полей.
Каждая группа полей может присутствовать в таблице только один раз. При наличии повторяющихся групп полей структура таблицы должна быть изменена. В результате изменения структуры вместо одной исходной будет получено несколько более узких таблиц.
-
Принцип зависимости всех неключевых полей от первичного ключа.
Для соблюдения этого принципа, как и для предыдущего, важно правильно выбрать ключевые поля. После того, как это будет сделано, необходимо проверить остальные поля на предмет зависимости между собой.
-
Принцип независимости неклячевых полей между собой.
Неключевые поля не могут зависеть друг от друга, если же в исходной таблице связь между ключевыми полями все-таки выявлена, эта таблица должна быть разбита на несколько отдельных таблиц, в которых рассматриваемы принцип был бы соблюден.
-
Принцип отсутствия в таблицах вычисляемых полей.
Хранение данных на машинном носителе связано с использованием дисковой памяти, потому в базах данных не должна храниться информация, которая может быть рассчитана и те реквизиты, значения которых могут быть определены на основе других реквизитов. При необходимости нужные вычисления выполняются достаточно быстро, в связи с чем у пользователей создается впечатление присутствия этих данных в таблицах базы.
Присутствие в таблице реквизитов, которые могут быть рассчитаны на основе других реквизитов может потенциально стать причиной противоречивости данных.
Например, в таблице присутствуют поля: количество, цена, сумма. Необходимость хранить все три реквизита отсутствует, поскольку сумма может быть рассчитана как произведение количества и цены, либо цена может быть определена как частное суммы и количества.
Практическое применение принципов нормализации.
Индивидуальный предприниматель получает три вида продукции от поставщиков из разных городов заполняет журнал поставок следующего вида:
Журнал поставок
№№ пп |
Наименование поставщика |
Город |
Поставка продукции вида |
Сумма поставки |
||||||
I |
II |
III |
||||||||
кол-во |
цена |
к |
ц |
к |
ц |
Нарушен принцип отсутствия повторяющихся групп полей. Для поля “Поставка продукции вида” в таблице предусмотрены поля “Количество” и “Цена”, которые повторяются трижды, чего быть не должно. Для соблюдения рассматриваемого принципа исходную таблицу необходимо разбить на две: “Виды продукции” и “Поставки”:
Виды продукции
|
||
Код вида продукции |
… |
… |
|
|
|
В таблице “Поставки” поля “Количество” и “Цена” будут в единственном числе.
Поставки
|
|||
… |
Количества |
Цена |
… |
|
|
|
|
Присутствие вычисляемых полей в таблице также является нарушением принципов нормализации. Сумма поставки может быть найдена как произведение количества и цены продукции, поэтому данное поле из таблицы должно быть исключено.
В таблице не соблюден принцип одноразового ввода и хранения информации и одновременно не соблюдается принцип независимости неключевых полей между собой. Несоблюдение этих принципов вызвано следующими особенностями структуры таблицы: для каждой поставки указываются наименование поставщика, город и банковские реквизиты; атрибуты “Город” и “Банковские реквизиты” функционально зависят от наименование поставщика. Чтобы рассматриваемые принципы нормализации были соблюдены, исходную таблицу нужно разбить на две: “Поставщики” и “Поставки” (рис. 4.1.1).
Рис. 4.1.1 Схема структуры предметной области Поставки
В таблице «Журнал поставок» соблюден только принцип зависимости всех неключевых полей от первичного ключа.
В процессе нормализации, когда исходная таблица разбивается на несколько более мелких, необходимо обеспечить связь между таблицами. Для этого в дочернюю таблицу добавляется ключевое поле из родительской, причем этот случай является единственным, когда данные хранятся в нескольких экземплярах, т.е. в одном экземпляре элемент данных хранится в родительной таблице и в одном экземпляре – в дочерней. Оправдывается это необходимостью обеспечения связи между таблицами.