Появление первых СУБД
Появление технологии баз данных
Информационные задачи – решение их приводит к информационным системам
СУБД
Обзор СУБД
Типы СУБД
Примеры СУБД
Сегодня в мире насчитывается пять ведущих производителей СУБД:
Настольные СУБД
Основные функции СУБД
Управление данными во внешней памяти
Управление буферами оперативной памяти
Управление транзакциями
Как поддерживается целостность с помощью транзакций
Журнализация и восстановление базы данных после любого вида сбоев
Поддержка языков баз данных
Типовая организация СУБД
Типовая организация СУБД
Типовая организация СУБД
Модели данных
По способу организации данных СУБД основываются на использовании четырех основных видах моделей:
Иерархическая модель данных
Иерархическая модель
Пример ИБД(ТИП ДЕРЕВА)
Тип дерева(типы записей)
Приведем примеры типовых операторов манипулирования ИБД:
Ограничения целостности:
Сетевая модель данных
Пример сетевой модели
Пример сетевой модели
Примеры типичных операторов манипулирования для СБД:
Ограничения целостности
Достоинства и недостатки ранних моделей
Объектная модель (основные понятия)
Объектная модель
Примеры ОО СУБД
Реляционная модель
Из истории
Реляционная модель
Отношение
Определение отношения
Основные свойства отношений
Первичный ключ (primary key)
Понятие целостности базы данных
Виды целостности в РМД
Внешний ключ (foreign key)
Внешний ключ
Что произойдет, если попытаться удалить запись
Манипуляционная часть
Реляционная алгебра
Операции реляционной алгебры
Объединение отношений
Например, даны отношения А и В. Отношение С – результат объединения этих отношений: SELECT * FROM A UNION SELECT * FROM B А В
Пересечение отношений (совместимость по взятию операции)
Пример
Разность отношений (совместимость по взятию операции)
Пример
Прямое декартово произведение – сцепление всех кортежей из А со всеми кортежами из В
Результат декартова произведения двух отношений: A*B SELECT * FROM A,B
Специальные реляционные операции
Ограничений отношения по условию - SELECT
Проекция отношения на подмножество его атрибутов
Результат проекции
СОЕДИНЕНИЕ ОТНОШЕНИЙ ПО УСЛОВИЮ – JOIN
Внутреннее соединение
Пример INNER JOIN. Даны две таблицы: Отдел и Сотрудник Условие соединения: Отдел. Номер отдела = Сотрудник.Номер отдела
Результат внутреннего соединения двух отношений по условию: Отдел. Номер отдела = Сотрудник.Номер отдела
Внутреннее соединение (INNER JOIN)
Пример рефлексивного соединения. Дано отношение. Требуется напротив фамилии сотрудника получить фамилию его начальника:
Два одинаковых отношения. Соединение по условию: А.Номер начальника = В.Номер сотрудника
Результат рефлексивного соединения:
Внешние соединения
RIGHT OUTER JOIN
Левое внешнее соединение отношений по условию: А.Номер отдела = В.Номер отдела
Результат
Реляционная операция Деление
Пример деления
Пример деления
Результат
406.94K
Category: databasedatabase

1 - СУБД Базы данных

1. Появление первых СУБД

Возникновение технологии баз данных
тесно связано с фирмой IBM.
Само осознание необходимости такой
технологии возникло в IBM, и первый
программный продукт класса СУБД
также родился в IBM в начале 60-х
годов. Это была СУБД IMS
(Information Management System),
основанная на иерархической модели
данных. Эта СУБД существует и
применяется и по сей день.

2. Появление технологии баз данных

Во второй половине 60-x годов фирма
IBM начала фундаментальный проект
по разработке технологий баз
данных,
и именно на первой стадии этого
проекта доктором Э. Коддом была
разработана реляционная модель и ее
формальный аппарат.

3. Информационные задачи – решение их приводит к информационным системам

системы резервирования билетов,
банковские системы
бухгалтерские и учетные системы,
системы планирования и управления,
обработка наблюдений и пр.

4.

База данных – это набор
взаимосвязанных данных о некоторой
предметной области, которые имеют
определенную структуру и постоянно
хранятся в памяти компьютера.

5. СУБД

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

6. Обзор СУБД

Настольные: Paradox, FoxPro, dBase,
Clipper, Access и т.д.
Многопользовательские СУБД(серверы
баз данных): Oracle, MS SQL Server,
Informix, Sybase, Interbase, MySQL и т.д.

7. Типы СУБД

Виды
СУБД
Настольные СУБД:
Paradox, Clipper, FoxPro,
Access, dBase, Clarion и
т.д.
Многопользовательские
(серверы баз данных):
Oracle, MS SQL Server,
Informix, DB2, Sybase,
Ingres, MySQL, и т.д.

8. Примеры СУБД

9. Сегодня в мире насчитывается пять ведущих производителей СУБД:

Microsoft (SQL Server),
IBM (DB2, Informix)
Oracle,
Software AG (Adabas),
Sybase.
Их продукты нацелены на поддержку
одновременной работы тысяч
пользователей в сети, а базы данных
могут храниться в распределенном
виде на нескольких серверах.

10. Настольные СУБД

С появлением персональных компьютеров были
созданы так называемые настольные СУБД.
Родоначальником современных языков
программирования баз данных для настольных
СУБД принято считать язык dBase, которой был
интерпретируемым.
Затем для него были созданы компиляторы,
появились СУБД FoxPro и Clipper,
поддерживающие диалекты этого языка.
Сегодня похожие, но несовместимые версии
языков семейства dBase реализованы в
продуктах Visual FoxPro фирмы Microsoft и Visual
dBase фирмы Inprise.

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

Несмотря на различие СУБД можно
выделить их основные функции:
Управление данными во внешней
памяти;
Управление буферами оперативной
памяти;
Управление транзакциями;
Журнализация и восстановление базы
данных после сбоев;
Поддержка языков баз данных.

12. Управление данными во внешней памяти

СУБД обеспечивает необходимые
структуры внешней памяти как для
хранения внешних данных, так и для
служебных целей (физическая
организация данных на внешних
носителях)

13. Управление буферами оперативной памяти

СУБД обеспечивает буферизацию
данных в оперативной памяти для
увеличения скорости обмена с
внешними устройствами

14. Управление транзакциями

СУБД обеспечивает логическую
целостность базы данных с помощью
механизма транзакций:
Каждая транзакция начинается при
целостном состоянии базы данных и
должна оставлять базу данных в
целостном состоянии
Является подходящей единицей
изолированности пользователей

15. Как поддерживается целостность с помощью транзакций

Счет
Имя
Остаток
1
Ида
100
2
Ева
0

16. Журнализация и восстановление базы данных после любого вида сбоев

Сбои
Аппаратные
Мягкие
Программные
Жесткие

17. Поддержка языков баз данных

Для реляционных СУБД основным
языком является язык SQL
Были и другие языки: dBase

18. Типовая организация СУБД

Ядро СУБД
Компилятор языка
Подсистема поддержки времени
исполнения
Набор утилит

19. Типовая организация СУБД

Ядро СУБД
ППВИ
Компилятор
языка СУБД

20. Типовая организация СУБД

Ядро СУБД – обеспечивает
выполнение функций СУБД
ППВИ – подсистема поддержки
времени исполнения
Утилиты - вспомогательные
программы

21. Модели данных

Модель данных задает:
основную структурную единицу, т.е.
определяет логическую структуру
данных (так называемая структурная
часть модели);
набор операций для манипулирования
этими структурами
(манипуляционная часть);
ограничения целостности
(целостная часть).

22. По способу организации данных СУБД основываются на использовании четырех основных видах моделей:

Иерархическая
Сетевая
Реляционная
Объектная

23. Иерархическая модель данных

Наиболее известной иерархической СУБД до сих пор
остается IMS фирмы IBM, которая появилась в 1968.
Важно: Каждый потомок может иметь только одного
предка

24. Иерархическая модель

Использует графово-табличную форму
представления
Сущности реального мира
представляются в виде узлов графа
Связи междру сущностями
представляются в виде ребер графа
Каждая сущность это набор
однотипных записей

25. Пример ИБД(ТИП ДЕРЕВА)

Факультет
Преподаватели
Группы
Студенты

26. Тип дерева(типы записей)

Название факультета | ФИО декана | тел деканата| номер комнаты деканата
ФИО преподавателя| Адрес| Уч
степень
Номер группы| Курс| ФИО куратора
Номер зачетки| ФИО студента| Адрес|
Телефон

27. Приведем примеры типовых операторов манипулирования ИБД:

Найти указанное дерево;
Перейти от одного дерева к другому;
Перейти от одной записи к другой внутри
дерева (например, от группы к ее первому
студенту);
Перейти от одной записи к другой в порядке
обхода иерархии (например, обход всех
студентов);
Вставить новую запись в указанную
позицию;
Удалить текущую запись.

28. Ограничения целостности:

В ИБД поддерживается целостность
ссылок между предками и потомками.
Основное правило – никакой потомок
не может существовать без своего
предка и у каждого потомка только
один предок.

29. Сетевая модель данных

Сетевая модель есть расширение
иерархической модели, в которой каждый
потомок может иметь любое количество
предков.
Типичный представитель IDMS компании
Collinet Software Inc.

30. Пример сетевой модели

31. Пример сетевой модели

32. Примеры типичных операторов манипулирования для СБД:

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

33. Ограничения целостности

поддержка целостности по ссылкам.
Например, если удаляется какая-то
запись, то должен быть удален и
соответствующий экземпляр типа
связи.

34. Достоинства и недостатки ранних моделей

Сильные места ранних СУБД:
Простота (для ИБД) и высокая гибкость (для СБД) средств
представления информации;
Развитые средства управления данными во внешней памяти на
низком уровне;
Возможность построения вручную эффективных прикладных
систем;
Возможность экономии памяти из-за высокой гибкости структур.
Недостатки:
Слишком сложный язык манипулирования, которым сложно
пользоваться;
Фактически необходимы знания о физической организации;
Их логика перегружена деталями организации доступа к БД.
Прикладные системы зависят от этой организации;

35. Объектная модель (основные понятия)

Класс - тип
Объект – экземпляр типа

36. Объектная модель

Основные преимущества объектной модели данных:
Возможность описывать в рамках единого
информационного поля объекты, имеющие
разнородную внутреннюю структуру и состав
элементов.
Установление сложных многоуровневых отношений
между информационными объектами, в том числе
типа “один к одному”, “один ко многим”, “многие к
одному” и “многие ко многим”.
“Вложение” объектов друг в друга, выделение
общих свойств объектов на верхних уровнях и учет
индивидуальных качеств и свойств объектов на
нижних уровнях иерархии.
Возможность хранить в едином банке данных
структурированную информацию и
неформализованные данные.

37. Примеры ОО СУБД

Cache
Jasmine
O2
Российская объектная СУБД - ODB-
Jupiter
ORION,
GemStone
Iris

38. Реляционная модель

Достоинства
Наличие небольшого набора абстракций, с помощью
которого моделируется большинство предметных областей
Наличие простого и мощного математического аппарата,
базирующегося на теории множеств и математической
логике
Возможность манипулирования данными без конкретного
знания их физической организации во внешней памяти
Недостатки
Ограниченность при использовании в областях , где
требуются предельно сложные структуры данных
Невозможность адекватного отражения семантики
предметной области

39. Из истории

Эдгар Франк «Тед» Кодд —
британский учёный, работы
которого заложили основы
теории реляционных баз
данных. Работая в компании
IBM, он создал реляционную
модель данных. Он также внёс
существенный вклад в другие
области информатики.
Родился: 23 августа 1923 г.,
Портленд
Умер: 18 апреля 2003 г.

40. Реляционная модель

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

41. Отношение

42. Определение отношения

Реляционная модель данных - это модель таблиц. Она
базируется на математическом понятии отношения.
Определение отношения(Дейта К.)
Пусть даны N множеств D1,D2,..DN. Тогда R есть
отношение над этими множествами, если R - есть
множество упорядоченных n-кортежей вида
<d1,d2,..dn>, где d1- элемент из D1,d2- элемент из D2 и
т.д.
Упрощенное определение: Отношение это множество
кортежей
Число столбцов в отношении - есть степень
отношения.
Число строк - есть мощность отношения.
Реляционная база данных - это совокупность
отношений (таблиц).

43. Основные свойства отношений

Отсутствие кортежей дубликатов
Отсутствие упорядоченности
кортежей
Отсутствие упорядоченности
атрибутов
1 нормальная форма: значение
атрибута - атомарно

44. Первичный ключ (primary key)

Первичный ключ – минимальный
набор атрибутов, однозначно
определяющий кортеж отношения

45. Понятие целостности базы данных

Целостность (integrity) – правило,
обеспечивающее поддержание
установленных межтабличных связей и
ограничений на данные при
манипулировании данными.

46. Виды целостности в РМД

Реляционная модель поддерживает 2
вида целостности:
Целостность сущности – связана с
понятием первичного ключа
Ссылочная целостность – связана с
понятием внешнего ключа

47. Внешний ключ (foreign key)

Атрибут или набор атрибутов,
ссылающийся на существующее
значение первичного ключа другой
таблицы

48. Внешний ключ

49. Что произойдет, если попытаться удалить запись

Что произойдет, если попытаться
удалить запись, на которую идет
ссылка:
1. Удалять нельзя (по умолчанию)
2. Можно (отсутствие ссылочной
целостности)
3. Каскадное удаление

50. Манипуляционная часть

Состоит из двух компонент
Реляционная алгебра (РА)
Реляционное исчисление (РИ)
Механизмы РА и РИ эквивалентны,
отличаются только уровнем
процедурности

51. Реляционная алгебра

На множестве отношений определены
операции традиционные для
множеств, дополненные
специфичными для баз данных
операциями.

52. Операции реляционной алгебры

Операции реляционной алгебры замкнуты
относительно понятия отношение, т.е. результатом
любой операции является отношение
Теоретико-множественные операции:
Объединение (UNION)
Пересечение (INTERSECT)
Разность (EXCEPT)
Прямое (декартово) произведение
Специальные операции:
Ограничение (селекция) – (SELECT)
Проекция
Соединение отношений (JOIN)
Деление отношений

53. Объединение отношений

С точки зрения теории множеств:
Обозначается значком:
Определение: Под объединением отношений А и В
понимается отношение С, которое содержит все
кортежи, входящие хотя бы в одно из отношений
операндов
Понятие совместимости по взятию операции
объединения: схемы отношений должны быть
идентичны.

54. Например, даны отношения А и В. Отношение С – результат объединения этих отношений: SELECT * FROM A UNION SELECT * FROM B А В

Номер
ФИО
Номер
ФИО
1
Иванов
4
Сидоров
2
Петров
2
Петров
3
Васин
Номер
ФИО
1
Иванов
2
Петров
3
Васин
4
Сидоров

55. Пересечение отношений (совместимость по взятию операции)

56. Пример

Найти строки, которые присутствуют
как в таблице A, так и в таблице B.
SELECT * FROM A
INTERSECT
SELECT * FROM B;

57. Разность отношений (совместимость по взятию операции)

58. Пример

Найти строки из отношения А, которых нет
в отношении В
SELECT * FROM A
EXCEPT
SELECT * FROM B;

59. Прямое декартово произведение – сцепление всех кортежей из А со всеми кортежами из В

А1
А2
a
b
c
d
е
f
В1
В2
В3
g
k
l
m
n
o

60. Результат декартова произведения двух отношений: A*B SELECT * FROM A,B

A1
A2
B1
B2
B3
a
b
g
k
l
c
d
g
k
l
е
f
g
k
l
a
b
m
n
o
c
d
m
n
o
е
f
m
n
o

61. Специальные реляционные операции

•Ограничение (селекция) – (SELECT)
•Проекция
•Соединение отношений (JOIN)
•Деление отношений

62. Ограничений отношения по условию - SELECT

Унарная операция
Требует наличия отношения и некоторого
условия
Другое название операции: горизонтальная
вырезка из таблицы
Результат содержит только те кортежи
отношения, которые удовлетворяют условию.
Пример SQL-оператора :
◦ SELECT * FROM СТУДЕНТ WHERE
НОМЕР_ГРУППЫ=“603A”

63. Проекция отношения на подмножество его атрибутов

Другое название: вертикальная вырезка из
таблицы
Результатом является отношение, состоящее из
подмножества атрибутов исходного отношения
с естественным исключением строк дубликатов.
Пример:
Группа
Курс
ФИО студента
603а
3
Иванов
603а
3
Петров
603а
3
Сидоров
603б
3
Митин

64. Результат проекции

Требуется выполнить проекция
отношения на множество одного
атрибута «Группа».
SELECT DISTINCT Группа FROM
Студент
Группа
603а
603б

65. СОЕДИНЕНИЕ ОТНОШЕНИЙ ПО УСЛОВИЮ – JOIN

Кортежи двух отношений соединяются в
соответствии с условием
Виды соединений:
◦ Внутреннее (INNER JOIN) – содержит
только те кортежи двух отношений, которые
удовлетворяют условию соединения.
◦ Внешнее (OUTER JOIN) – может содержать
кортежи не удовлетворяющие условию
соединения.

66. Внутреннее соединение

Определение через другие операции:
Внутреннее соединение есть ограничение
декартова произведения двух отношений по
условию.
Заголовок результата является объединением
(конкатенацией) заголовков соединяемых
таблиц.
Тело результата содержит сцепление только
тех кортежей, которые удовлетворяют условию
соединения.

67. Пример INNER JOIN. Даны две таблицы: Отдел и Сотрудник Условие соединения: Отдел. Номер отдела = Сотрудник.Номер отдела

Номер отдела
Название
1
Отдел кадров
2
Бухгалтерия
3
Плановый отдел
Номер
сотрудника
ФИО сотрудника
Номер
отдела
101
Иванов
1
102
Петров
1
103
Сидоров
2

68. Результат внутреннего соединения двух отношений по условию: Отдел. Номер отдела = Сотрудник.Номер отдела

Номер
отдела
Название
Номер
сотрудника
ФИО
сотрудника
1
Номер
отдела 1
Отдел кадров
101
Иванов
1
1
Отдел кадров
102
Петров
1
2
Бухгалтерия
103
Сидоров
2

69. Внутреннее соединение (INNER JOIN)

Виды внутренних соединений:
◦ Эквисоединение – условие есть точное
равенство
◦ Сравнение (не экви) – условие не равенство:
a>b (>=, <=, <>,<)
◦ Естественное – атрибут, по которому идет
соединение входит в результат один раз.
◦ Рефлексивное – соединение отношения
самого с самим

70. Пример рефлексивного соединения. Дано отношение. Требуется напротив фамилии сотрудника получить фамилию его начальника:

Номер
сотрудника
ФИО
сотрудника
Номер
начальника
1
Иванов
-
2
Петров
1
3
Сидоров
1
4
Васин
2
5
Костин
2
6
Митин
3

71. Два одинаковых отношения. Соединение по условию: А.Номер начальника = В.Номер сотрудника

Отношение B
Отношение А
Номер ФИО
сотруд сотрудн
ника
ика
Номер
начальн
ика
Номер ФИО
сотруд сотрудник
ника
а
Номер
началь
ника
1
Иванов
-
1
Иванов
-
2
Петров
1
2
Петров
1
3
Сидоров 1
3
Сидоров
1
4
Васин
2
4
Васин
2
5
Костин
2
5
Костин
2
6
Митин
3
6
Митин
3

72. Результат рефлексивного соединения:

Номер
ФИО
Номер
Номер
ФИО
Номер
сотрудни сотрудни начальни сотрудни сотрудни начальни
ка
ка
ка
ка 1
ка 1
ка 1
2
Петров
1
1
Иванов
-
3
Сидоров
1
1
Иванов
-
4
Васин
2
2
Петров
1
5
Костин
2
2
Петров
1
6
Митин
3
3
Сидоров
1

73. Внешние соединения

OUTER JOIN
LEFT OUTER JOIN – левое внешнее соединение двух
отношений – результат содержит все кортежи левого
отношения, а из правого выбираются только те
кортежи, которые удовлетворяют условию
соединения.
Те кортежи левого отношения, для которых не
нашлось соответствующих условию соединения
кортежей правого отношения, сцепляются с nullстрокой, соответствующей схеме правого
отношения.

74. RIGHT OUTER JOIN

RIGHT OUTER JOIN – правое внешнее соединение
двух отношений- результат содержит все кортежи
правого отношения, а из левого отношения
выбираются только те кортежи, которые
удовлетворяют условию соединения.
Те кортежи правого отношения, для которых не
нашлось соответствующих условию соединения
кортежей левого отношения, сцепляются с nullстрокой, соответствующей схеме левого отношения.

75. Левое внешнее соединение отношений по условию: А.Номер отдела = В.Номер отдела

Отношение В
Отношение А
Номер
отдела
Название
1
Отдел кадров
2
Бухгалтерия
3
Плановый отдел
Номер
сотрудника
ФИО
сотрудни
ка
Номер
отдела
101
Иванов
1
102
Петров
1
103
Сидоров
2

76. Результат

Номер
отдела
Название
Номер
сотрудника
ФИО
сотрудника
Номер
отдела1
1
Отдел
кадров
101
Иванов
1
1
Отдел
кадров
102
Петров
1
2
Бухгалтерия
103
Сидоров
2
3
Плановый
отдел
Null
Null
Null

77. Реляционная операция Деление

Отношение - частное
P=R/S
как результат деления реляционной
таблицы R (делимое) на реляционную
таблицу S (делитель) содержит в качестве
столбцов все те атрибуты делимого R и
только те, которые отсутствуют в делителе
S, а в качестве кортежей в частное P
включаются все те и только те кортежи
делителя S, которые при декартовом
умножении частного на делитель P*S
содержатся в делимом R.

78. Пример деления

Делимое R:
Где SN –поставщик, PN – товар, COLOUR – цвет.
SN
PN
COLOUR
Джонс
гайки
Черные
Джонс
гайки
Красные
Джонс
болты
Синие
Смит
гайки
Красные
Смит
болты
Синие
Браун
болты
Синие
Делитель S –
PN
Гайки
Болты
COLOUR
Красные
Синие

79. Пример деления

(Имитируется обыденная ситуация «Кто
поставляет и красные гайки и синие
болты?»)
Частное: P=R/S – результат
SN
Джонс
Смит

80. Результат

Можно ли к результату приписать
Брауна (ведь он действительно
поставляет синие болты)?
– Нет, потому что тогда окажется, что он
поставляет также и гайки красные, и
тогда результат не будет
удовлетворять второй части
определения операции деления.
English     Русский Rules