Базы данных
Однотабличная БД
Многотабличная БД
Многотабличная БД
Ссылочная целостность
Типы связей между таблицами
Типы связей между таблицами
Типы связей между таблицами
Типы связей между таблицами
Базы данных
Многотабличная БД
Создание таблиц
Установка связей между таблицами
Заполнение таблиц
1.17M
Категория: Базы данныхБазы данных

Многотабличные базы данных

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
1987
16
2 В круге света
1
1988
11
3 Группа крови
2
1988
11
4 Последний герой
2
1989
10
? Что улучшилось?
К.Ю. Поляков, Е.А. Ерёмин, 2013
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
English     Русский Правила