Базы Данных

Содержание

Слайд 2

09/03/2023 Определения База данных (БД) – это хранилище данных о некоторой

09/03/2023

Определения

База данных (БД) – это хранилище данных о некоторой предметной области,

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

09/03/2023 Типы информационных систем локальные ИС БД и СУБД находятся на

09/03/2023

Типы информационных систем

локальные ИС БД и СУБД находятся на одном компьютере.
файл-серверные

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

09/03/2023 Локальные ИС автономность (независимость) с БД работает только один человек

09/03/2023

Локальные ИС

автономность (независимость)

с БД работает только один человек
сложно обновлять при большом

количестве пользователей
практически невозможно «стыковать» изменения, вносимые несколькими пользователями
Слайд 5

09/03/2023 Файл-серверные ИС несколько человек работают с одной базой основную работу

09/03/2023

Файл-серверные ИС

несколько человек работают с одной базой

основную работу выполняют рабочие станции

(РС), они должны быть мощными
для поиска строки на РС копируется вся БД – нагрузка на сеть
слабая защита от взлома (только на РС)
проблемы при одновременном изменении с разных РС
Слайд 6

09/03/2023 Клиент-серверные ИС СУБД-клиент СУБД-клиент СУБД-клиент основную работу выполняет сервер проще

09/03/2023

Клиент-серверные ИС

СУБД-клиент

СУБД-клиент

СУБД-клиент

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

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

запрос
на SQL

ответ

СУБД-сервер:
MS SQL Server
Oracle
MySQL

SQL (Structured Query Language) – язык структурных запросов

сложность настройки
высокая стоимость ПО (тысячи $)

Слайд 7

09/03/2023 Типы баз данных табличные БД данные в виде одной таблицы

09/03/2023

Типы баз данных

табличные БД данные в виде одной таблицы
сетевые БД набор

узлов, в котором каждый может быть связан с каждым.
иерархические БД в виде многоуровневой структуры
реляционные БД (99,9%) набор взаимосвязанных таблиц
Слайд 8

09/03/2023 Табличные БД Модель – картотека Примеры: записная книжка каталог в

09/03/2023

Табличные БД

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

самая простая структура
все другие типы

БД используют таблицы

во многих случаях – дублирование данных:

Слайд 9

09/03/2023 Табличные БД Количество полей определяется разработчиком и не может изменяться

09/03/2023

Табличные БД

Количество полей определяется разработчиком и не может изменяться пользователем.
Любое поле

должно иметь уникальное имя.
Поля могут иметь различный тип:
строка символов (длиной до 255 символов)
вещественное число (с дробной частью)
целое число
денежная сумма
дата, время, дата и время
логическое поле (истина или ложь, да или нет)
многострочный текст (МЕМО)
рисунок, звук или другой объект (объект OLE)
Поля могут быть обязательными для заполнения или нет.
Таблица может содержать сколько угодно записей (это количество ограничено только объемом диска); записи можно добавлять, удалять, редактировать, сортировать, искать.
Слайд 10

09/03/2023 Ключевое поле (ключ таблицы) Ключевое поле (ключ) – это поле

09/03/2023

Ключевое поле (ключ таблицы)

Ключевое поле (ключ) – это поле (или комбинация

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

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

?

Слайд 11

09/03/2023 Сетевые БД Сетевая БД – это набор узлов, в которых

09/03/2023

Сетевые БД

Сетевая БД – это набор узлов, в которых каждый может

быть связан с каждым (схема дорог).

лучше всего отражает структуру некоторых задач (сетевое планирование в экономике)

сложно хранить информацию о всех связях
запутанность структуры

Слайд 12

09/03/2023 Иерархические БД Иерархическая БД – это набор данных в виде многоуровневой структуры (дерева).

09/03/2023

Иерархические БД

Иерархическая БД – это набор данных в виде многоуровневой структуры

(дерева).
Слайд 13

09/03/2023 Иерархические БД Прайс-лист: Продавец (уровень 1) Товар (уровень 2) Модель

09/03/2023

Иерархические БД

Прайс-лист:

Продавец (уровень 1)

Товар (уровень 2)

Модель (уровень 4)

Цена (уровень 5)

Изготовитель (уровень 3)

$306

$312

S93

X93B

Sony

Phillips

Samsung

Мониторы

Принтеры

Кей

Слайд 14

09/03/2023 Иерархические БД Приведение к табличной форме: дублирование данных при изменении

09/03/2023

Иерархические БД

Приведение к табличной форме:

дублирование данных
при изменении адреса фирмы надо менять

его во всех строках
нет защиты от ошибок ввода оператора (Кей – Key), лучше было бы выбирать из списка
Слайд 15

09/03/2023 Реляционные БД 1970-е гг. Э. Кодд, англ. relation – отношение.

09/03/2023

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

1970-е гг. Э. Кодд, англ. relation – отношение.
Реляционная база данных

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

09/03/2023 Реляционные БД нет дублирования информации; при изменении адреса фирмы достаточно

09/03/2023

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

нет дублирования информации;
при изменении адреса фирмы достаточно изменить его

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

сложность структуры (не более 40-50 таблиц);
при поиске надо обращаться к нескольким таблицам;
нужно поддерживать целостность: при удалении фирмы-продавца надо удалять все связанные записи (автоматически, каскадное удаление).

Слайд 17

09/03/2023 Связи между таблицами Один к одному («1-1») – одной записи

09/03/2023

Связи между таблицами

Один к одному («1-1») – одной записи в первой

таблице соответствует ровно одна запись во второй. Применение: выделение часто используемых данных.

1

1

Один ко многим («1- ∞») – одной записи в первой таблице соответствует сколько угодно записей во второй.

1


товары

прайс-лист

Слайд 18

09/03/2023 Связи между таблицами Многие ко многим («∞ - ∞») –

09/03/2023

Связи между таблицами

Многие ко многим («∞ - ∞») – одной записи

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

Реализация – через третью таблицу и две связи «1-∞».

расписание

учителя

предметы





1

1

Слайд 19

09/03/2023 Нормализация базы данных Нормализация – это разработка такой структуры БД,

09/03/2023

Нормализация базы данных

Нормализация – это разработка такой структуры БД, в которой

нет избыточных данных и связей.

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

Не должно быть полей, которые обозначают различные виды одного и того же, например, товаров.


1

Слайд 20

09/03/2023 Нормализация базы данных Любое поле должно зависеть только от ключа

09/03/2023

Нормализация базы данных

Любое поле должно зависеть только от ключа (ключ –

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

Не должно быть полей, которые могут быть найдены с помощью остальных.

товары

зависит не только от названия товара!

прайс-лист

Слайд 21

09/03/2023 Поиск в базах данных Линейный поиск – это перебор всех

09/03/2023

Поиск в базах данных

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

тех пор, пока не будет найдена нужная.

Иванов?

1024 сравнения!

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

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

Слайд 22

09/03/2023 Двоичный поиск Разделить область поиска на две равные части. Определить,

09/03/2023

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

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

находится нужный объект.
Перейти к шагу 1 для этой половины.
Повторять шаги 1-3 пока объект не будет «пойман».
Слайд 23

09/03/2023 Поиск в базах данных Двоичный поиск в БД – требует

09/03/2023

Поиск в базах данных

Двоичный поиск в БД – требует предварительной сортировки.

Иванов?

записи

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

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

11 сравнений!

Слайд 24

09/03/2023 Поиск по индексам Индекс – это вспомогательная таблица, которая предназначена

09/03/2023

Поиск по индексам

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

поиска в основной таблице по выбранному столбцу.

Таблица

Индексы:
по дате

по товару

по количеству