- •Лекция 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 Основные концепции объектно-ориентированного подхода
4.2 Нормальные формы
Нормализация таблиц производится постепенно.
Сначала таблица трансформируется таким образом, чтобы она удовлетворяла принципу первой нормальной формы, затем принципу второй нормальной формы и т.д. В процессе нормализации таблица принимает вид ряда нормальных форм, причем каждая последующая форма более совершенная, чем предыдущая.
Всего известно 6 нормальных форм:
1 НФ (первая нормальная форма)
2 НФ (вторая нормальная форма)
3 НФ (третья нормальная форма)
НФ БК (нормальная форма Бойса-Кодда)
4 НФ (четвертая нормальная форма)
5 НФ (пятая нормальная форма)
На практике, как правило, требуется соблюсти первые три нормальные формы.
Говорят, что таблица находится в первой нормальной форме, если она удовлетворяет принципу атомарности полей и принципу отсутствия повторяющихся групп полей.
Таблица находится во второй нормальной форме, если она удовлетворяет принципу первой нормальной формы и одновременно принципу зависимости всех ключей от первичного ключа.
Таблица находится в третьей нормальной форме, если она удовлетворяет второй нормальной форме и условию независимости неключевых полей между собой.
Лекция 5. Проектирование и создание запросов. Структурированный язык запросов (sql).
-
Понятие запроса
-
Соединение таблиц в запросы
-
Соединение трех и более таблиц
-
Запрос на выборку
-
Запрос на выборку с группировкой
-
Перекрестный запрос
-
Перекрестный запрос с составным заголовком строк
-
Запрос на обновление
-
Запрос на удаление
-
Запрос на добавление
-
Логически выраженные команды SQL
5.1 Понятие запроса
Запрос – это виртуальная таблица, построенная на основе физических таблиц и запросов путем их соединения по ключевым полям и выбора необходимых строк и столбцов. В базе данных результаты запросов не хранятся. Виртуальная таблица каждый раз формируется при вычислении запроса.
Кортежи, входящие в запрос, могут быть сгруппированы и отсортированы по определенному признаку. Слово «запрос» может использоваться также в понятии «команда» или «инструкция», которая написана на языке SQL (Structured Query Language). В Microsoft Access запросы могут создаваться в режиме конструктора, при помощи мастера или в режиме SQL, однако хранятся они в виде команд SQL.
5.2 Соединение таблиц в запросах
Если две физические таблицы имеют общие поля, то по этим полям данные из рассматриваемых таблиц могут быть объединены в одну общую таблицу. В принципе, все физические таблицы могут быть объединены в одну общую. Соединение таблиц может быть внутренним (inner join) и внешним (outer join). Внешнее соединение бывает левым (left join) и правым (right join). Перед созданием внешнего соединения всегда требуется определить, левым или правым оно является. Самого по себе внешнего соединения таблиц (без уточнения типа) не бывает. Рассмотрим пример соединения таблиц Т1 и Т2.
|
Таблица Т1 |
|
Таблица Т2 |
|||
|
F1 |
F2 |
|
F3 |
F1 |
F4 |
|
07 |
B |
|
009 |
02 |
ZZ |
|
02 |
F |
|
002 |
04 |
TT |
|
04 |
C |
|
004 |
02 |
WW |
|
05 |
D |
|
010 |
05 |
AA |
|
|
|
|
012 |
09 |
BB |
В таблице T1 поле F1 является ключевым, а поле F2 – информационным, в таблице Т2 ключевым является поле F3, а информационными - поля F1, F4. Результаты внутреннего соединения таблиц Т1 и Т2 представим в табл. Т3.
|
Таблица T3 |
|||
|
F1 |
F2 |
F3 |
F4 |
|
02 |
F |
009 |
ZZ |
|
04 |
C |
002 |
TT |
|
05 |
D |
010 |
AA |
|
02 |
F |
004 |
WW |
Порядок таблиц при внутреннем соединении значения не играет (то есть соблюдается свойство коммутативности). Внутреннее соединение таблиц Т1 и Т2 будет эквивалентно внутреннему соединению таблиц Т2 и Т1. Отметим, что в представленном примере не соблюдается ссылочная целостность и последнему пятому кортежу таблицы Т2 нет соответствия в таблице Т1.
Таблица Т1 является родительской, а таблица Т2 – дочерней. Соблюдение ссылочной целостности требует, чтобы каждый кортеж дочерней таблицы имел соответствие в родительской таблице. Однако не обязательно, чтобы каждый кортеж родительской таблицы имел соответствие в дочерней, т.е. отсутствие соответствия первому кортежу таблицы Т1 в таблице Т2, еще не означает, что ссылочная целостность не соблюдается.
Рассмотрим левое внешнее соединение таблиц Т1 и Т2, результаты представим в табл. Т4.
|
Таблица Т4 |
|||
|
F1 |
F2 |
F3 |
F4 |
|
07 |
B |
Null |
Null |
|
02 |
F |
009 |
ZZ |
|
02 |
F |
004 |
WW |
|
04 |
C |
002 |
TT |
|
05 |
D |
010 |
AA |
Кортежи таблицы Т4 получаются следующим образом: для каждого кортежа в таблице Т1 подбираются соответствующие кортежи в таблице Т2. Соответствие означает совпадение значения поля в таблицах Т1 и Т2, по которому производится соединение, то есть по полю F1. Если кортеж в таблице Т1 не имеет ни одного совпадения кортежей в таблице Т2, то он все равно попадает в результирующую таблицу. При левом соединении важен порядок таблиц.
Рассмотрим внешнее правое соединение таблиц Т1 и Т2, результаты представим в табл. Т5.
|
Таблица Т5 |
|||
|
F1 |
F2 |
F3 |
F4 |
|
02 |
F |
009 |
ZZ |
|
02 |
F |
004 |
WW |
|
04 |
C |
002 |
TT |
|
05 |
D |
010 |
AA |
|
09 |
Null |
012 |
BB |
В таблицу Т5 будут включены все записи из правой таблицы (Т2) и только те записи из левой таблицы (Т1), которые удовлетворяют условию соединения. При соединении таблиц важно указывать, по какому полю (полям) они соединяются. В данном случае также важен порядок таблиц. Причем левое внешнее соединение таблиц Т1 и Т2 эквивалентно правому внешнему соединению таблиц Т2 и Т2.
Рассмотрим примеры соединений таблиц по полю F1 и запишем их в виде инструкций:
T1 INNER JOIN T2 ON T1.F1=T2.F1
T1 LEFT JOIN T2 ON T1.F1=T2.F1
T1 RIGHT JOIN T2 ON T1.F1=T2.F1
