Similar presentations:
Многотабличные базы данных
1. Базы данных
1Тема:
Многотабличные
базы
Базы данных
данных
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
2. Однотабличная БД
Базы данных, 11 класс2
Однотабличная БД
Альбомы
Код
Название
Группа
Год
Число композиций
1
Реки и мосты
Машина времени
1987
16
2
В круге света
Машина времени
1988
11
3
Группа крови
Кино
1988
11
4
Последний герой Кино
1989
10
?
Что плохо?
дублирование данных
при изменении каких-то данных, возможно,
придется менять несколько записей
нет защиты от ошибок ввода (опечаток)
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
3. Многотабличная БД
Базы данных, 11 класс3
Многотабличная БД
Группы
Код
Название
Год создания
1 Машина времени
1969
2 Кино
1981
Альбомы
Код
Название
Код группы
1 Реки и мосты
1
2 В круге света
1
3 Группа крови
2
4 Последний герой
2
?
К.Ю. Поляков, Е.А. Ерёмин, 2013
Год Число композиций
1987
16
1988
11
1988
11
1989
10
Что улучшилось?
http://kpolyakov.spb.ru
4. Многотабличная БД
Базы данных, 11 класс4
Многотабличная БД
Группы
Код
Название
Год создания
Альбомы
Код
Название
Код группы
Год
Число композиций
Внешний ключ – это неключевое поле таблицы,
связанное с первичным ключом другой таблицы.
убрано дублирование
изменения нужно делать в одном месте
некоторая защита от опечаток (выбор из списка)
усложнение структуры (> 40-50 таблиц – много!)
при поиске нужно «собирать» данные разных таблиц
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
5. Ссылочная целостность
Базы данных, 11 класс5
Ссылочная целостность
?
Удаление группы: что делать с альбомами?
СУБД:
• запретить удаление записи
• выполнить каскадное удаление (удалить все
связанные с ней записи в других таблицах)
• разрешить внести изменения
нарушится ссылочная
целостность!
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
6. Типы связей между таблицами
Базы данных, 11 класс6
Типы связей между таблицами
ключ
Группы
Код
Название
Год создания
1
Альбомы
Код
Название
Код группы
N
Год
не ключ Число композиций
Связь 1:N – с одной записью в первой таблице могут
быть связаны сколько угодно записей во второй
таблице.
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
7. Типы связей между таблицами
Базы данных, 11 класс7
Типы связей между таблицами
Связь 1:1 – с одной записью в первой таблице связана
ровно одна запись во второй таблице.
Сотрудники
Код
Фамилия
Имя
1 Иванов
Петр
2 Петров
Сидор
3 Сидоров
Иван
Отчество
Сидорович
Иванович
Петрович
Секретно
Код Зарплата
1
20 000 р.
2
30 000 р.
3
40 000 р.
ключ
Сотрудники
Код
Фамилия
Имя
Отчество
К.Ю. Поляков, Е.А. Ерёмин, 2013
1
1
ключ
Секретно
Код
Зарплата
http://kpolyakov.spb.ru
8. Типы связей между таблицами
Базы данных, 11 класс8
Типы связей между таблицами
Заказы
Номер
Дата
?
N
N
Блюда
Код
Название
Цена
Может ли быть несколько
одинаковых блюд в заказе?
?
Может ли быть одно блюдо в
нескольких заказах?
Связь N:N – с одной записью в первой таблице могут
быть связаны сколько угодно записей во второй
таблице, и наоборот.
в СУБД не
поддерживаются
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
9. Типы связей между таблицами
Базы данных, 11 класс9
Типы связей между таблицами
Связь N:N
Заказы
Номер
Дата
Заказано
Код
Номер заказа
N Код блюда
1
1
N
Блюда
Код
Название
Цена
Пример:
Заказы
Номер
Дата
1
11.12.12
2
12.12.12
Код
1
2
3
4
5
6
7
К.Ю. Поляков, Е.А. Ерёмин, 2013
Заказано
Номер
Код
заказа
блюда
1
1
1
3
1
4
2
1
2
2
2
2
2
5
Блюда
Код Название
1 борщ
2 бифштекс
3 гуляш
4 чай
5 кофе
?
Цена
80 р.
110 р.
70 р.
10 р.
50 р.
Состав заказов?
http://kpolyakov.spb.ru
10. Базы данных
10Работа
с многотабличной
Базы
данных
базой данных
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
11. Многотабличная БД
Базы данных, 11 класс11
Многотабличная БД
Заказы
Номер
Дата
Заказано
Код
Номер заказа
N Код блюда
1
1
N
Блюда
Код
Название
Цена
Пример:
Заказы
Номер
Дата
1
11.12.12
2
12.12.12
Код
1
2
3
4
5
6
7
К.Ю. Поляков, Е.А. Ерёмин, 2013
Заказано
Номер
Код
заказа
блюда
1
1
1
3
1
4
2
1
2
2
2
2
2
5
Блюда
Код Название
1 борщ
2 бифштекс
3 гуляш
4 чай
5 кофе
Цена
80 р.
110 р.
70 р.
10 р.
50 р.
http://kpolyakov.spb.ru
12. Создание таблиц
Базы данных, 11 класс12
Создание таблиц
Заказы
Номер
Дата
Заказано
Код
Номер заказа
Код блюда
INTEGER
К.Ю. Поляков, Е.А. Ерёмин, 2013
Блюда
Код
Название
Цена
DECIMAL
http://kpolyakov.spb.ru
13. Установка связей между таблицами
Базы данных, 11 класс13
Установка связей между таблицами
Сервис – Связи
добавить
все
?
Как определить,
где 1 и N?
перетащить
ЛКМ
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
14. Заполнение таблиц
Базы данных, 11 класс14
Заполнение таблиц
Заказы
Номер
Дата
1
11.04.13
2
12.04.13
3
12.04.13
Код
1
2
3
4
5
6
7
8
8
К.Ю. Поляков, Е.А. Ерёмин, 2013
Заказано
Номер
Код
заказа
блюда
1
1
1
3
1
4
2
1
2
2
2
2
2
5
3
1
3
5
Блюда
Код Название
1 борщ
2 бифштекс
3 гуляш
4 чай
5 кофе
Цена
80 р.
110 р.
70 р.
10 р.
50 р.
http://kpolyakov.spb.ru