Основные понятия
Некоторые важные термины.
Независимость от данных
Основные функции СУБД
Основные элементы ER‑диаграмм
Разный смысл Null-значений
Декартово произведение множеств
Особенности отношений БД
Декартово произведение отношений
Проекция
Селекция
‑соединение
Левое внешнее соединение
Основные возможности языка SQL
Операции выборки
Выборка с переименованием поля
Выборка с производным полем
Выборка с сортировкой
Запросы с агрегатными функциями
Запросы с группировкой, агрегацией и выборкой групп
Использование ключевых слов EXISTS, ALL, ANY, SOME
Вставка новой строки в таблицу
Вставка в таблицу_1 новых строк, отобранных из таблицы_2
Модификация записей
Удаление строк из таблицы
Создание новой таблицы
Изменение структуры таблицы
Удаление таблицы
Таблица с аномалиями
После декомпозиции
Нормальные формы
Таблица Аренда (исходная)
После приведения к 2НФ
После приведения к 3НФ
Таблица Собеседование (исходная)
После приведения к НФБК
Этапы проектирования базы данных
1.67M
Категория: Базы данныхБазы данных

Рел_БД - курс_презентаций

1. Основные понятия

Предметная область – совокупность объектов реального мира с их связями,
относящимися к некоторой области знаний и имеющих практическую ценность для
пользователя.
Предметная область состоит из объектов (сущностей), связей между ними и
ограничений на характеристики объектов и связей.
Банк данных – разновидность ИС , в которой реализованы функции
централизованного хранения и накопления обрабатываемой информации,
организованной в одну или несколько баз данных.
База данных (БД) – совокупность специальным образом организованных данных ,
хранимых в памяти вычислительной системы и отображающих состояние объектов
и их взаимосвязей в рассматриваемой предметной области.
Система управления базами данных (СУБД) – комплекс языковых и программных
средств, предназначенный для создания , ведения и использования БД (возможно,
многими пользователями).

2. Некоторые важные термины.

1. Элемент данных – единица данных (иногда: наименьшая единица данных), имеющая смысл в
данном контексте.
2. Транзакция – некоторое комплексное программное действие (процедура) по переводу базы
данных из одного корректного состояния в другое корректное состояние. Иногда полагается,
что начальное и конечное состояние БД могут совпадать (например, обыкновенный запрос на
выборку данных тоже может считаться транзакцией). Основное свойство транзакции –
атомарность: транзакция должна быть выполнена либо вся целиком, либо не выполнена
никак (принцип «всё или ничего» – не допускается частичное исполнение транзакции).
3. Системный журнал – специальная область памяти (обладающая повышенной защитой), в
которой фиксируются все действия, которые производились с БД. В частности, операции
чтения и обновления. Используется при восстановлении системы после сбоев.
4. Целостность – адекватность данных, т е. соответствие друг другу, а также состоянию
предметной области и здравому смыслу (достоверность). Описывается ограничениями
целостности, которые должны быть «зашиты» в систему и автоматически отслеживаться.
Стандартный пример: дата увольнения не может предшествовать дате приёма на работу.
5. Безопасность БД. В это понятие входит несколько аспектов. Например, защита данных от
случайного или преднамеренного повреждения (либо по причине сбоя системы), защита от
несанкционированного доступа, от сетевых атак, обеспечение секретности
конфиденциальных данных, а также защита от возникновения возможной недостоверности,
связанной с параллельным доступом к данным нескольких пользователей.

3. Независимость от данных

• Логическая независимость – полная защищенность внешних
схем от изменений, вносимых в концептуальную схему.
Добавление или удаление новых объектов, атрибутов, связей
должны осуществляться без необходимости внесения
изменений в уже существующие внешние схемы или
переписывания прикладных программ.( Пользователи, для
которых эти изменения предназначены, должны знать о них, но
другие не должны даже подозревать).
• Физическая независимость – защищенность концептуальной
схемы изменений, вносимых во внутреннюю схему.
Использование различных файловых систем или структур
хранения, устройств хранения, модификация индексов,
хеширование должны осуществляться без необходимости
внесения изменений в концептуальную или внешнюю схему.

4. Основные функции СУБД

1. Хранение, извлечение и обновление данных.
2. Поддержка доступного системного каталога.
3. Поддержка атомарности транзакций.
4. Сервисы управления параллельным доступом (для
многопользовательских СУБД).
5. Сервисы восстановления после сбоев.
6. Сервисы контроля доступа к данным (санкционирование
пользователей).
7. Служба поддержки целостности данных.
8. Службы поддержки независимости от данных.
9. Вспомогательные службы (для оказания помощи администратору):
утилиты импортирования/экспортирования, средства мониторинга
для отслеживания характеристик функционирования БД, программы
статистического анализа, инструменты сборки мусора и
перераспределения памяти и пр.

5. Основные элементы ER‑диаграмм

Основные элементы ER-диаграмм
• Тип сущности – множество объектов реального мира с
одинаковыми свойствами. Может быть с физическим
(реальным) существованием или с абстрактным (виртуальным)
существованием. Каждый тип сущности характеризуется
именем и списком свойств (атрибутов – см. далее).
• Сильный тип сущности – тип сущности, существование
которого не зависит от другого типа сущности. Изображение –
прямоугольник.
• Слабый тип сущности – тип сущности, существование которого
зависит от другого типа сущности (например, сотрудники и их
иждивенцы). Изображение – двойной прямоугольник.
• Сущность – экземпляр типа сущности , который может быть
идентифицирован уникальным образом. Соответствует
понятию «объект».

6.

• Атрибут – свойство (типа) сущности (существенное в данной
предметной области). Изображение – овал, привязанный к
прямоугольнику – типу сущности. Совокупность атрибутов называется
схемой (типа сущности).
• Домен атрибута – множество допустимых значений атрибута. На
практике определяется его типом и ограничениями целостности.
• Простой атрибут – состоит из одной компоненты.
• Составной атрибут – состоит из нескольких компонент (например,
адрес: улица, дом, квартира). Изображение – овал с привязанными
овалами-компонентами.
• Однозначный атрибут – содержит только одно значение для каждой
сущности.
• Многозначный атрибут – может содержать несколько значений для
одной сущности (например, телефон: домашний, рабочий,
мобильный). Изображение – двойной овал.
• Производный атрибут – его значение может быть выведено из
значений других атрибутов (например, возраст можно вычислить по
дате рождения).

7.

• Ключ, ключевые атрибуты – атрибуты, совокупное значение которых
однозначно определяет значения всех остальных атрибутов
(позволяет однозначно идентифицировать объект). В простейшем
случае состоит из одного атрибута (например, номер с/билета,
табельный номер, номер паспорта). Может состоять из нескольких
атрибутов. В крайнем случае, если такого набора атрибутов вообще
нельзя выделить – совокупность всех атрибутов будет являться
ключом (подразумевается, что любые два объекта должны отличаться
значением хотя бы одного атрибута). Ключевые атрибуты выделяются
подчёркиванием либо полужирным шрифтом.
• Потенциальный ключ – любой из возможных ключей.
• Первичный ключ – один из потенциальных, объявленный в качестве
первичного (основного).
• Альтернативный ключ – потенциальный, но не первичный.
• Простой ключ – состоит из одного атрибута.
• Составной ключ – состоит из нескольких атрибутов.
• Внешний ключ типа сущности A – первичный ключ связанного с A
типа сущности B, представленный в A для описания связи A с B (см.
далее).

8.

• Тип связи – осмысленная ассоциация между типами
сущностей. Может быть со своими собственными
атрибутами. Изображение – ромб, связанный с
прямоугольниками, участниками связи.
• Слабый тип связи – тип связи с участием слабого
типа сущности. Изображение – двойной ромб.
• Связь – ассоциация между сущностями (экземпляр
типа связи), включающая по одной сущности от
каждого участника.
• Арность связи – количество сущностей-участников,
охваченных данной связью (один участник –
унарная (рекурсивная) связь, два участника –
бинарная, три участника – тернарная, четыре
участника – кватернарная и т. д.)

9.

• Кардинальность (иногда говорят, вид) связи
(для бинарных и унарных связей) – описывает
количество возможных связей (одна или
несколько) для каждой из сущностейучастниц. Варианты: «один к одному» (1:1),
«один ко многим» (1:N), «многие ко многим»
(M:N).
• Степень участия в связи (полная, частичная) –
определяет, каждый ли экземпляр данного
типа сущности участвует в данной связи.
Полное участие – участвует каждая сущность
(изображение – двойная линия), частичное
участие – участвует не каждая сущность
(изображение – одинарная линия).

10. Разный смысл Null-значений

Фамилия
Год рождения
Номер паспорта
Иванов
1974
45 07 437195
Петров
1987
Null (*)
Сидоров
2005
Null (**)
Васильев
Null (*)
Null (***)
(*) – имеется, но неизвестно;
(**) – отсутствует;
(***) – неизвестно, есть или нет.

11. Декартово произведение множеств

X Y = {(x, y) x X , y Y}
X1 X2 X3 … Xn =
={(x1, x2, x3, …, xn) x1 X1, x2 X2, …, xn Xn}
n-арное отношение R:
R X1 X2 X3 … Xn

12. Особенности отношений БД

• все домены Di полагаются конечными
множествами;
• каждая колонка-атрибут поименована уникальным
(в пределах одного отношения) именем;
• поскольку отношение представляется как
множество кортежей, прядок строк в таблице не
существенен;
• поскольку каждая колонка уникально поименована,
порядок колонок тоже не существенен;
• как элементы множества, одинаковые строки (если
появляются) сливаются в одну

13. Декартово произведение отношений

R: A1
A2
A3
S: A4 A5 R S: A1
A2
A3
A4
A5
a
e
n
x
z
a
e
n
x
z
f
x
t
e
m
a
e
n
e
m
g
m
a
e
n
g
m
f
x
t
x
z
f
x
t
e
m
f
x
t
g
m

14. Проекция

R:
A1
A2
A3
A4
t
y
f
d
m
y
A1,A3 R :
A1
A3
a
t
f
u
z
d
u
x
d
e
y
d
d
e
u
e
u
f
u
g
f
y

15. Селекция

R: A1 A2 A3 A4 A5
4 7 1 9 6
1 5 9 6 3
2 4 5 9 6
6 1 2 1 3
9 6 5 3 1
5 7 9 4 9
A1 A3 R A1 A2 A3 A4 A5
1
2
5
5
4
7
9
5
9
6
9
4
3
6
9

16. ‑соединение

-соединение
R: A1 A2 A3
5 4 9
3 1 7
4 7 9
6 3 1
7 2 4
S: A4 A5
5 7
2 5
6 1
9 6
9 4
R
A2 A4
S: A1 A2 A3 A4 A5
5
4
4
4
6
4
7
7
7
3
9
9
9
9
1
2
5
2
6
2
5
7
5
1
5

17. Левое внешнее соединение

R: A1 A2 A3
S: A4 A5
5
4
9
5
7
3
1
7
2
4
7
9
6
3
7
2
R
A2 A4
S : A1 A2 A3
A4
A5
2
5
5
4
9
5
3
1
7 Null Null
6
1
4
7
9
5
7
1
9
6
4
7
9
2
5
4
9
4
4
7
9
6
1
6
3
1
2
5
7
2
4 Null Null

18. Основные возможности языка SQL

• средства формулирования запросов и
манипулирование данными;
• средства определения и манипулирования схемой
базы данных;
• средства определения ограничений целостности и
триггеров;
• средства определения представлений баз данных;
• средства определения структур физического
уровня, поддерживающих эффективное
выполнение запросов;
• средства авторизации доступа к таблицам и полям
базы данных.

19. Операции выборки

SELECT список полей
FROM список таблиц
WHERE условие выборки
SELECT *
FROM список таблиц
WHERE условие выборки

20. Выборка с переименованием поля

SELECT поле_1, …, поле_k AS новое_имя, …,
поле_N
FROM список таблиц
WHERE условие выборки

21. Выборка с производным полем

SELECT …, годовая_зарплата/12 AS
месячная_зарплата, …
FROM Сотрудники
WHERE …

22. Выборка с сортировкой

по возрастанию:
SELECT список полей
FROM список таблиц
WHERE условие выборки
ORDER BY поле сортировки
по убыванию:
SELECT список полей
FROM список таблиц
WHERE условие выборки
ORDER BY поле сортировки DESC

23. Запросы с агрегатными функциями

SELECT COUNT(*) AS Количество
FROM Сотрудники
WHERE Зарплата<20000

24. Запросы с группировкой, агрегацией и выборкой групп

SELECT код_отдела, COUNT(таб_но) AS
Количество, SUM(зарплата) AS
Сумма_зарплат
FROM Сотрудники
GROUP BY код_отдела
HAVING COUNT(таб_но)>10
ORDER BY код_отдела

25. Использование ключевых слов EXISTS, ALL, ANY, SOME

SELECT ФИО, должность
FROM Сотрудники
WHERE зарплата > ALL (SELECT зарплата
FROM Сотрудники
WHERE код_отдела=”d1”)

26. Вставка новой строки в таблицу

INSERT INTO таблица
(поле_1, поле_2, …, поле_N) VALUES
(значение_1, значение_2, …, значение_N)
INSERT INTO таблица
VALUES (значение_1, значение_2, …,
значение_N)

27. Вставка в таблицу_1 новых строк, отобранных из таблицы_2

INSERT INTO таблица_1
список полей SELECT список полей
FROM таблица_2
WHERE условие

28. Модификация записей

UPDATE таблица
SET поле_1=значение_1, SET
поле_2=значение_2, …, SET
поле_N=значение_N
WHERE условие

29. Удаление строк из таблицы

DELETE FROM таблица
WHERE условие

30. Создание новой таблицы

CREATE TABLE имя таблицы
(имя поля_1 тип поля_1 NOT NULL,
имя поля_2 тип поля_2 NOT NULL,
……………
имя поля_N тип поля_N NOT NULL)

31. Изменение структуры таблицы

ALTER TABLE таблица
(ADD/MODIFY/DROP поле_1 тип_1 NOT NULL,
ADD/MODIFY/DROP поле_2 тип_2 NOT NULL,
……………
ADD/MODIFY/DROP поле_N тип_N NOT NULL)

32. Удаление таблицы

DROP TABLE таблица

33. Таблица с аномалиями

Сотрудники:
таб.
номер
ФИО
547
Иванов
925
Петров
679
Сидоров
304
Алексеев
519
Атаманов
415
Бударин
адрес
сотрудни
ка
Лен. пр.
56-15
Ордж. 7174
Лен. пр.
64-27
Вавилова
6-39
Донская
24-97
Серп. вал
10-7
должность
з/плата
код
название адрес
отдела отдела
отдела
телефон
отдела
профессор
65000
гс
гумсоц
52-93
доцент
50000
фм
физмат
М-Макл.
10
Ордж. 3
ст. преп.
29000
фм
физмат
Ордж. 3
27-54
доцент
52000
эл
экол. ф-т
доцент
55000
фм
физмат
Подол. ш. 64-59
8
Ордж. 3
27-54
ст. преп.
32000
гс
гумсоц
М-Макл.
10
27-54
52-93

34. После декомпозиции

Сотрудники2:
таб. номер
547
925
679
304
ФИО
Иванов
Петров
Сидоров
Алексеев
адрес сотрудника
Лен. пр. 56-15
Ордж. 7-174
Лен. пр. 64-27
Вавилова 6-39
должность
профессор
доцент
ст. преп.
доцент
з/плата
65000
50000
29000
52000
код отдела
гс
фм
фм
эл
519
Атаманов
Донская 24-97
доцент
55000
фм
415
Бударин
Серп. вал 10-7
ст. преп.
32000
гс
Отделы:
гс
название
отдела
гумсоц
фм
эл
код отдела
М-Макл. 10
телефон
отдела
52-93
физмат
Ордж. 3
27-54
экол. ф-т
Подол. ш. 8
64-59
адрес отдела

35. Нормальные формы

1НФ
2НФ
3НФ
НФБК
4НФ
5НФ

36. Таблица Аренда (исходная)

Код
ар.
a1
ФИО
аренд.
Иванов
Код
кварт.
t1
Начало Конец Аренд.
аренды аренды плата
пр-т, 2010
2012
20000
a1
Иванов
t2
ул. Орджоникидзе 2012
7-65
2013
25000
h2
Баграмян
a2
Петров
t1
Ленинский
64-163
пр-т, 2012
2013
20000
h1
Акимов
a2
Петров
t3
ул. Вавилова 45- 2013
249
2014
23000
h2
Баграмян
a2
Петров
t2
ул. Орджоникидзе 2014
7-65
2015
25000
h2
Баграмян
Адрес квартиры
Ленинский
64-163
Код
хоз.
h1
ФИО хоз.
Акимов

37. После приведения к 2НФ

Аренда2:
Арендаторы:
t1
Начало
аренды
2010
Конец
аренды
2012
a1
t2
2012
2013
a2
t1
2012
2013
a2
t3
2013
2014
a2
t2
2014
2015
Код ар.
Код кварт.
a1
a1
ФИО
аренд.
Иванов
a2
Петров
Код ар.
Квартиры:
Код кварт.
Адрес квартиры
Аренд. плата
Код хоз.
ФИО хоз.
t1
Ленинский пр-т, 64-163
20000
h1
Акимов
t2
ул. Орджоникидзе 7-65
25000
h2
Баграмян
t3
ул. Вавилова 45-249
23000
h2
Баграмян

38. После приведения к 3НФ

Квартиры2:
Хозяева:
Код кварт.
Адрес квартиры
t1
Ленинский пр-т, 64-163
Аренд.
плата
20000
t2
ул. Орджоникидзе 7-65
t3
ул. Вавилова 45-249
Код хоз.
Код хоз.
ФИО хоз.
h1
h1
Акимов
25000
h2
h2
Баграмян
23000
h2

39. Таблица Собеседование (исходная)

Собеседование:
Код клиента Дата
Время
c1
c2
c3
c2
10-30
12-00
12-00
10-30
11.04.2015
11.04.2015
11.04.2015
12.04.2015
Код
сотрудника
e1
e1
e2
e1
Комната
14
14
27
27

40. После приведения к НФБК

Собеседование2:
Код
Дата
клиента
c1
11.04.2015
Выделение комнат:
10-30
Код
сотрудника
e1
Время
Код сотрудника Дата
Комната
e1
11.04.2015
14
c2
11.04.2015
12-00
e1
e2
11.04.2015
27
c3
11.04.2015
12-00
e2
e1
12.04.2015
27
c2
12.04.2015
10-30
e1

41. Этапы проектирования базы данных

1. Выделение сущностей и связей.
2. Построение ER- или EER-диаграммы.
3. Формирование предварительного набора таблиц с
указанием первичных ключей.
4. Добавление неключевых атрибутов в таблицы.
5. Приведение предварительных таблиц к 3НФ или
НФБК.
6. Пересмотр ER-диаграмм, если предварительные
таблицы не приводятся к нормальной форме, либо
некоторым атрибутам не находится логически
обоснованных мест в таблицах. И далее итеративно
повторяются пп. 3-6.
English     Русский Правила