Базы данных. § 12. Информационные системы

Содержание

Слайд 2

Что такое информационная система?

Информационная система (ИС) в широком смысле — это аппаратные

Что такое информационная система? Информационная система (ИС) в широком смысле — это
и программные средства, предназначенные для того, чтобы своевременно обеспечить пользователей нужной информацией.

Задачи:
хранение данных
доступ к данным

Слайд 3

БД и СУБД

База данных (БД) — это специальным образом организованная совокупность данных

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

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

БД + СУБД = информационная система

Слайд 4

БД и СУБД

поиск данных
редактирование данных
выполнение несложных расчетов
обеспечение целостности (корректности, непротиворечивости) данных
восстановление данных

БД и СУБД поиск данных редактирование данных выполнение несложных расчетов обеспечение целостности
после сбоев

Задачи СУБД:
БД

СУБД

прикладная программа

Слайд 5

Классификация ИС

ИС

локальные

удалённые

БД и СУБД на компьютере пользователя

БД на удалённом компьютере (в сети)

автономность

нужно

Классификация ИС ИС локальные удалённые БД и СУБД на компьютере пользователя БД
обновлять БД на каждом компьютере
как учесть изменения, внесённые пользователями

все работают с одной БД

зависимость от сети

Слайд 6

Как хранить данные?

Текстовый формат:
Собственный формат программы:
Универсальный формат:

БД:

«данные о данных»

Иванов;Иван;Петрович;1968;«Audi»;20 000 р.
Петров;Пётр;Иванович;1975;«Лада»;30 000

Как хранить данные? Текстовый формат: Собственный формат программы: Универсальный формат: БД: «данные
р.
Сидоров;Семён;Иванович;1975;«Нива»;15 000 р.

нет переносимости (БД можно использовать только с этой программой)

Переносимость – это возможность использовать БД в других информационных системах.

Слайд 7

Файл-серверные СУБД

рабочие станции должны быть мощными
высокая нагрузка на сеть
слабая защита данных
ненадежность при

Файл-серверные СУБД рабочие станции должны быть мощными высокая нагрузка на сеть слабая
большом количестве пользователей

Слайд 8

Клиент-серверные СУБД

Задачи клиента:

Задачи сервера:

отправить серверу запрос на языке SQL
принять ответ сервера
вывести результаты

при

Клиент-серверные СУБД Задачи клиента: Задачи сервера: отправить серверу запрос на языке SQL
получении запроса поставить его в очередь
выполнить запрос
отправить ответ клиенту

SQL = Structured Query Language – язык структурных запросов для управления данными

Слайд 9

Клиент-серверные СУБД

обработка данных на сервере
рабочие станции могут быть маломощными
проще модернизация
надежная защита данных

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

нужен мощный сервер
высокая стоимость коммерческих СУБД

MS SQL Server

бесплатно!

Слайд 10

Транзакции

Транзакция – это группа операций, которая представляет собой одно законченное действие. Транзакция

Транзакции Транзакция – это группа операций, которая представляет собой одно законченное действие.
должна быть выполнена целиком или не выполнена вообще.

Задача: перевести 100 000 рублей со счета 12345 на счет 54321.

прочитать сумму на счету 12345
уменьшить ее на 100 000 рублей
прочитать сумму на счету 54321
увеличить ее на 100 000 рублей

журналирование
создание новых записей (помечаются как действительные после завершения транзакции)

Слайд 11

Базы данных

§ 13. Таблицы

Базы данных § 13. Таблицы

Слайд 12

Таблицы

Примеры:
записная книжка
каталог в библиотеке

Таблицы Примеры: записная книжка каталог в библиотеке

Слайд 13

Ключ

Ключ – это поле или комбинация полей, однозначно определяющие запись.

Могут ли эти

Ключ Ключ – это поле или комбинация полей, однозначно определяющие запись. Могут
данные быть ключом?
фамилия
имя
номер паспорта
номер дома
регистрационный номер автомобиля
город проживания
адрес электронной почты
дата выполнения работы
марка стиральной машины

?

Слайд 14

Ключ

Первичный ключ – это ключ, выбранный в качестве основного.

Простой ключ – состоит

Ключ Первичный ключ – это ключ, выбранный в качестве основного. Простой ключ
из одного поля.

Составной ключ – состоит из нескольких полей.

Составной ключ ← Дата + Время

Свойства ключа:
уникальность
несократимость (Дата + Время + Влажность)

Слайд 15

Суррогатный ключ

Суррогатный ключ – это дополнительное поле, которое служит первичным ключом.

операции с

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

Слайд 16

Поиск в БД

Линейный поиск – это перебор всех записей до тех пор,

Поиск в БД Линейный поиск – это перебор всех записей до тех
пока не будет найдена нужная.

Иванов?

1024 сравнения!

данные не надо предварительно готовить

низкая скорость поиска

Слайд 17

Двоичный поиск

Разделить область поиска на две равные части.
Определить, в какой половине находится

Двоичный поиск Разделить область поиска на две равные части. Определить, в какой
нужный объект.
Перейти к шагу 1 для этой половины.
Повторять шаги 1-3 пока объект не будет «пойман».

Слайд 18

Двоичный поиск в БД

требует предварительной сортировки.

Иванов?

записи надо отсортировать по нужному полю
можно использовать

Двоичный поиск в БД требует предварительной сортировки. Иванов? записи надо отсортировать по
только для одного поля

быстрый поиск

11 сравнений!

Слайд 19

Индексный поиск в БД

Индекс – это вспомогательная таблица, которая служит для ускорения

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

отсортированы!

индексы занимают место на диске
при изменении таблицы надо перестраивать все индексы (в СУБД – автоматически)

двоичный поиск по всем столбцам, для которых построены индексы

Слайд 20

Целостность БД

Целостность базы данных означает, что она содержит полную и непротиворечивую информацию

Целостность БД Целостность базы данных означает, что она содержит полную и непротиворечивую
и удовлетворяет всем заданным ограничениям.

Физическая целостность – сохранность данных в случае отказа оборудования:
транзакции
резервное копирование
RAID-массивы жёстких дисков (дублирование)

Логическая целостность – непротиворечивость:
типы полей
обязательные поля
уникальные индексы
ограничения на значения
шаблоны ввода (###) ###-##-##
условия на несколько полей (увольнение позже приёма)

Слайд 21

Задача

Постройте индексы по всем полям:

Задача Постройте индексы по всем полям:

Слайд 22

Базы данных

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

Базы данных § 14. Многотабличные базы данных

Слайд 23

Однотабличная БД

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

Однотабличная БД дублирование данных при изменении каких-то данных, возможно, придется менять несколько
от ошибок ввода (опечаток)

Слайд 24

Многотабличная БД

Многотабличная БД

Слайд 25

Многотабличная БД

Внешний ключ – это неключевое поле таблицы, связанное с первичным ключом

Многотабличная БД Внешний ключ – это неключевое поле таблицы, связанное с первичным
другой таблицы.

усложнение структуры (> 40-50 таблиц – много!)
при поиске нужно «собирать» данные разных таблиц

убрано дублирование
изменения нужно делать в одном месте
некоторая защита от опечаток (выбор из списка)

Слайд 26

Ссылочная целостность

запретить удаление записи
выполнить каскадное удаление (удалить все связанные с ней записи

Ссылочная целостность запретить удаление записи выполнить каскадное удаление (удалить все связанные с
в других таблицах)
разрешить внести изменения

нарушится ссылочная целостность!

СУБД:

Слайд 27

Типы связей между таблицами

1

N

Связь 1:N – с одной записью в первой таблице

Типы связей между таблицами 1 N Связь 1:N – с одной записью
могут быть связаны сколько угодно записей во второй таблице.

ключ

не ключ

Слайд 28

Типы связей между таблицами

Связь 1:1 – с одной записью в первой таблице

Типы связей между таблицами Связь 1:1 – с одной записью в первой
связана ровно одна запись во второй таблице.

ключ

1

1

ключ

Слайд 29

Типы связей между таблицами

N

N

Связь N:N – с одной записью в первой таблице

Типы связей между таблицами N N Связь N:N – с одной записью
могут быть связаны сколько угодно записей во второй таблице, и наоборот.

в СУБД не поддерживаются

Слайд 30

Типы связей между таблицами

N

1

Связь N:N

N

1

Пример:

Типы связей между таблицами N 1 Связь N:N N 1 Пример:

Слайд 31

Задачи

Сколько заказчиков располагаются в Перми?

Задачи Сколько заказчиков располагаются в Перми?

Слайд 32

Задачи

Определите:
какие товары отправлены в каждый из городов;
сколько бумаги отправлено в каждый из

Задачи Определите: какие товары отправлены в каждый из городов; сколько бумаги отправлено
городов;
общую стоимость товаров, отправленных в каждый из городов.

Слайд 33

Задачи

Определить фамилию и инициалы
а) бабушки А.И.Ивановой
б) родного брата И.А. Черненко
в) прадеда Т.М.

Задачи Определить фамилию и инициалы а) бабушки А.И.Ивановой б) родного брата И.А.
Иванова
г) внука И.Т. Пановко

Слайд 34

Задачи

Определить фамилию и инициалы
а) племянника Н.И. Симоняка
б) всех родных братьев и сестёр

Задачи Определить фамилию и инициалы а) племянника Н.И. Симоняка б) всех родных
Н.И. Симоняка
в) бабушки А.Т. Малых
г) дедушки А.Т. Сидорова

Слайд 35

Задачи

Определить фамилию и инициалы
а) всех внуков и внучек И.А. Левитина;
б) родной сестры

Задачи Определить фамилию и инициалы а) всех внуков и внучек И.А. Левитина;
П.А. Кузнецова;
в) родного брата С.А. Муриной;
г) бабушки Р.Б. Левитиной.

Слайд 36

Базы данных

§ 15. Реляционная модель данных

Базы данных § 15. Реляционная модель данных

Слайд 37

Математическое описание БД

Требуется:
описание БД, независимое от способа хранения данных
методы управления этими данными

Математическое описание БД Требуется: описание БД, независимое от способа хранения данных методы

Реляционная модель данных (Э. Кодд, 1970):
все данные – свойства некоторых объектов
объекты делятся на классы (сущности)
данные об объекте – набор свойств (атрибутов):
(Название: «Кино», Лидер: «В. Цой»)
порядок свойств не определён
отношение (relation) – множество кортежей, описывающих объекты одного класса
в отношении нет одинаковых кортежей
порядок кортежей в отношении не определен

кортеж

Слайд 38

Реляционные БД

Реляционная БД – это БД, которая основана на реляционной модели, то

Реляционные БД Реляционная БД – это БД, которая основана на реляционной модели,
есть представляет собой набор отношений.

Удобно хранить в виде таблицы:

отношение

атрибуты

сущность

кортеж

Слайд 39

Реляционные БД

Реляционная БД – это база данных, которая представлена в виде набора

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

SQL: обращение к данным по названиям таблиц (отношений) и полей (атрибутов).
Основные операции:
создание и удаление таблиц
добавление, изменение и удаление записей
выборка данных

На языке таблиц:
каждая таблица описывает один класс объектов
порядок расположения полей в таблице не имеет значения
все значения одного поля относятся к одному и тому же типу данных
в таблице нет двух одинаковых записей
порядок записей в таблице не определён

Слайд 40

Нормализация

Нормализация – это изменение структуры базы данных, которое устраняет избыточность и предотвращает

Нормализация Нормализация – это изменение структуры базы данных, которое устраняет избыточность и предотвращает возможные нарушения целостности.
возможные нарушения целостности.

Слайд 41

Нормализация на примерах

1. Любое поле должно быть неделимым:

Нормализация на примерах 1. Любое поле должно быть неделимым:

Слайд 42

Нормализация на примерах

2. Любое неключевое поле должно зависеть от ключа:

Нормализация на примерах 2. Любое неключевое поле должно зависеть от ключа:

Слайд 43

Нормализация на примерах

3. Не должно быть одинаковых по смыслу полей:

N

1

Нормализация на примерах 3. Не должно быть одинаковых по смыслу полей: N 1

Слайд 44

Нормализация на примерах

4. Не нужно хранить то, что может быть вычислено:

прибыль вычисляется

Нормализация на примерах 4. Не нужно хранить то, что может быть вычислено: прибыль вычисляется через запрос!
через запрос!

Слайд 45

Нормализация: «за» и «против»

усложнение структуры (> 40-50 таблиц – много!)
замедляется поиск (нужно

Нормализация: «за» и «против» усложнение структуры (> 40-50 таблиц – много!) замедляется
«собирать» данные из разных таблиц)

устранено дублирование
все изменения делаются в одном месте
некоторая защита от опечаток (выбор из списка)
СУБД поддерживает ссылочную целостность

Слайд 46

Задача

Выполните нормализацию:

Задача Выполните нормализацию:

Слайд 47

Задача

Выполните нормализацию:

Задача Выполните нормализацию:

Слайд 48

Задача

Выполните нормализацию:

Задача Выполните нормализацию: