Similar presentations:
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. Примеры ОО СУБД
CacheJasmine
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
A1A2
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 JOINLEFT 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. Результат
Можно ли к результату приписатьБрауна (ведь он действительно
поставляет синие болты)?
– Нет, потому что тогда окажется, что он
поставляет также и гайки красные, и
тогда результат не будет
удовлетворять второй части
определения операции деления.
database