8. Реляционные БД
Схема реляционной БД:
2. Внешние файлы – для больших
объемов данных (чаще бинарных)
3. Индексы – уникальные,
поисковые
4. Ограничения - первичные и
внешние ключи, формульные
9. Реляционные БД
Программный код в реляционных
СУБД:
1. Триггеры – для реакции на
события
2. Хранимые процедуры и
функции – произвольные
алгоритмы обработки данных
10. Реляционные БД
Первичный ключ (primary key):
основной ключ таблицы,
уникальный как следствие,
может быть простым и
составным (несколько
столбцов)
11. Реляционные БД
Внешний ключ (foreign key):
столбцы таблицы, значения
которых являются
подмножеством первичного
ключа другой таблицы
25. SQL
Таблица «Факультет»:
create table `Department`(
id int(20) not null,
name varchar(50) not null,
primary key(id)
) engine=InnoDB character set=utf8;
26. SQL
Индекс на таблицу «Факультет»:
create unique index
`Department_unique` on
Department(name);
27. SQL
Таблица «Группа»:
create table `Group`(
id int(20) not null,
name varchar(50) not null,
department_id int(20) not null,
primary key(id),
foreign key (department_id) references
Department(id)
) engine=InnoDB character set=utf8;
28. SQL
Индекс на таблицу «Группа»:
create unique index
`Group_unique` on
Group(department_id, name);
29. SQL
Data modeling language (DML):
1. insert/update/delete –
модификация данных
2. select – построение множества
кортежей по декларативному
запросу (query)
30. SQL
Вставка в таблицу «Факультет»:
insert into Department(id, name)
values
(1, ‘ИМИТ’),
(2, ‘Физический’);
33. SQL
Запрос к таблице «Группа»:
select g.*
from Group g inner join Department d
on g.department_id = d.id
where d.name = ‘ИМИТ’;
1, ММ-01
3, МП-01
34. SQL
Структура запроса:
select <описание кортежа>
from <список таблиц>
[where <условия на исходные>]
[group by <список столбцов>]
[having <условия на группировку>]]
[order by <список столбцов>]
35. Пример:
SQL
select d.name, count(g.id)
from Group g inner join Department d
on g.department_id = d.id
where d.name like ‘%И%’
group by d.name
having count(g.id) > 1
order by d.name;
ИМИТ, 2