Просмотр содержимого документа
«Система управления базами данных»
СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ
Определения
База данных (БД) – это хранилище данных о некоторой предметной области, организованное в виде специальной структуры.
Важно :
- данные о некоторой области (не обо всем) упорядоченные
- данные о некоторой области (не обо всем)
- упорядоченные
Система управления базой данных (СУБД) – это программное обеспечение для работы с БД.
Функции :
- поиск информации в БД выполнение несложных расчетов вывод отчетов на печать редактирование БД
- поиск информации в БД
- выполнение несложных расчетов
- вывод отчетов на печать
- редактирование БД
!
Информационная система = БД + СУБД!
Типы информационных систем
- локальные ИС БД и СУБД находятся на одном компьютере.
- файл-серверные БД находится на сервере сети (файловом сервере), а СУБД на компьютере пользователя.
- клиент-серверные БД и основная СУБД находятся на сервере, СУБД на рабочей станции посылает запрос и выводит на экран результат.
Локальные ИС
БД
СУБД
- автономность (независимость)
- с БД работает только один человек
- сложно обновлять при большом количестве пользователей
- практически невозможно «стыковать» изменения, вносимые несколькими пользователями
4
4
Файл-серверные ИС
СУБД
БД
СУБД
СУБД
СУБД
- несколько человек работают с одной базой
- основную работу выполняют рабочие станции (РС), они должны быть мощными
- для поиска строки на РС копируется вся БД – нагрузка на сеть
- слабая защита от взлома (только на РС)
- проблемы при одновременном изменении с разных РС
5
5
Клиент-серверные ИС
СУБД-сервер :
- MS SQL Server Oracle MySQL
- MS SQL Server
- Oracle
- MySQL
СУБД-клиент
БД
запрос
на SQL
СУБД-клиент
ответ
СУБД-клиент
SQL ( Structured Query Language ) – язык структурных запросов
- основную работу выполняет сервер
- проще модернизация (только сервер)
- по сети идут только нужные данные
- защита на сервере (сложнее взломать)
- разделение доступа (очередь заданий)
- сложность настройки
- высокая стоимость ПО (тысячи $ )
6
6
Типы баз данных
- табличные БД данные в виде одной таблицы
- сетевые БД набор узлов, в котором каждый может быть связан с каждым.
- иерархические БД в виде многоуровневой структуры
- реляционные БД (99,9%) набор взаимосвязанных таблиц
6
6
Табличные БД
Модель – картотека
Примеры:
- записная книжка каталог в библиотеке
- записная книжка
- каталог в библиотеке
Петров Вася Суворовский пр., д. 32, кв. 11
275-75-75
поля
записи
Фамилия
Петров
Имя
Иванов
Адрес
Вася
Телефон
Дима
Суворовский пр., д. 32, кв. 11
Кирочная ул., д.25, кв.12
275-75-75
276-76-76
- самая простая структура
- все другие типы БД используют таблицы
во многих случаях – дублирование данных:
А.С. Пушкин
Сказка о царе Салтане
А.С. Пушкин
20 стр.
Сказка о золотом петушке
12 стр.
Табличные БД
- Количество полей определяется разработчиком и не может изменяться пользователем.
- Любое поле должно иметь уникальное имя .
- Поля могут иметь различный тип :
- строка символов (длиной до 255 символов) вещественное число (с дробной частью) целое число денежная сумма дата, время, дата и время логическое поле (истина или ложь, да или нет) многострочный текст (МЕМО) рисунок, звук или другой объект (объект OLE )
- строка символов (длиной до 255 символов)
- вещественное число (с дробной частью)
- целое число
- денежная сумма
- дата, время, дата и время
- логическое поле (истина или ложь, да или нет)
- многострочный текст (МЕМО)
- рисунок, звук или другой объект (объект OLE )
- Поля могут быть обязательными для заполнения или нет.
- Таблица может содержать сколько угодно записей (это количество ограничено только объемом диска); записи можно добавлять, удалять, редактировать, сортировать, искать.
Ключевое поле (ключ таблицы)
Ключевое поле (ключ) – это поле (или комбинация полей), которое однозначно определяет запись.
В таблице не может быть двух записей с одинаковым значением ключа.
Могут ли эти данные быть ключом?
- фамилия имя номер паспорта номер дома регистрационный номер автомобиля город проживания дата выполнения работы марка стиральной машины
- фамилия
- имя
- номер паспорта
- номер дома
- регистрационный номер автомобиля
- город проживания
- дата выполнения работы
- марка стиральной машины
?
Сетевые БД
Сетевая БД – это набор узлов, в которых каждый может быть связан с каждым (схема дорог).
Старые Васюки
Средние Васюки
А
Б
Г
В
Васюки
Новые Васюки
- лучше всего отражает структуру некоторых задач ( сетевое планирование в экономике)
- сложно хранить информацию о всех связях
- запутанность структуры
!
Можно хранить в виде таблицы, но с дублированием данных!
11
11
Иерархические БД
Иерархическая БД – это набор данных в виде многоуровневой структуры (дерева).
Рабочий стол
Сетевое окружение
Мои документы
Мой компьютер
D:
Рисунки
Задания
Учебники
A:
С :
Мои видеозаписи
Моя музыка
Мои рисунки
12
12
Иерархические БД
Прайс-лист:
Продавец (уровень 1)
Кей
Товар (уровень 2)
Мониторы
Принтеры
Samsung
Phillips
Sony
Изготовитель (уровень 3)
Модель (уровень 4)
X93B
S93
$ 3 06
$ 312
Цена (уровень 5)
12
12
Иерархические БД
Приведение к табличной форме:
Продавец
Товар
Кей
Кей
Монитор
Изготовитель
Монитор
Модель
Sony
Key
Цена
Монитор
S93
Sony
Кей
Монитор
X93B
Phillips
$ 306
…
190 B5 CG
$ 312
Samsung
SyncMaster 193P
$318
$452
- дублирование данных
- при изменении адреса фирмы надо менять его во всех строках
- нет защиты от ошибок ввода оператора ( Кей – Key ), лучше было бы выбирать из списка
14
14
Реляционные БД
1970-е гг . Э. Кодд, англ. relation – отношение.
Реляционная база данных – это набор простых таблиц, между которыми установлены связи ( отношения ) с помощью числовых кодов.
Изготовители
Код
Название
Страна
Сайт
Прайс-лист
Код записи
Код продавца
Код изготовителя
Код товара
Код модели
Цена
Продавцы
Код
Название
Адрес
Телефон
Сайт
Модели
Код
Название
Код изготовителя
Товары
Код
Название
Реляционные БД
- нет дублирования информации;
- при изменении адреса фирмы достаточно изменить его только в таблице Продавцы ;
- защита от неправильного ввода: можно выбрать только фирму, которая есть в таблице Продавцы ;
- механизм транзакций : любые изменения вносятся в базу только тогда, когда они полностью завершены.
- сложность структуры (не более 40-50 таблиц);
- при поиске надо обращаться к нескольким таблицам;
- нужно поддерживать целостность : при удалении фирмы - продавца надо удалять все связанные записи (автоматически, каскадное удаление ).
16
16
Связи между таблицами
Один к одному («1-1») – одной записи в первой таблице соответствует ровно одна запись во второй. Применение: выделение часто используемых данных.
1
1
Код
Год рожд .
1
1992
2
Адрес
1993
Суворовский, д.20, кв. 6
…
Кирочная, д. 30, кв 18
Код
Фамилия
1
Иванов
2
Имя
Петров
…
Кузьма
Василий
Один ко многим («1- ») – одной записи в первой таблице соответствует сколько угодно записей во второй.
прайс-лист
товары
1
Код
Код
1
Название
123
2
Код товара
Монитор
…
Цена
1
345
Винчестер
10 999
…
1
11 999
Связи между таблицами
Многие ко многим (« - ») – одной записи в первой таблице соответствует сколько угодно записей во второй, и наоборот .
предметы
Код
1
Название
История
2
3
География
Биология
…
учителя
Код
Фамилия
1
Иванов
2
…
Петров
Реализация – через третью таблицу и две связи «1- ».
1
1
Код
1
Фамилия
2
Иванов
…
Петров
Код
1
Код учителя
Код предмета
2
1
Класс
3
1
1
…
9-А
2
2
3
8-Б
7-В
Код
1
Название
2
История
География
3
…
Биология
расписание
Нормализация базы данных
Нормализация – это разработка такой структуры БД, в которой нет избыточных данных и связей.
- Любое поле должно быть неделимым.
Фамилия
Имя
Иванов
Петр
Петров
Иван
…
…
Фамилия и имя
Иванов Петр
Петров Иван
…
- Не должно быть полей, которые обозначают различные виды одного и того же, например, товаров .
1
Год
2006
Код товара
Кол-во
1
2007
…
1200
2
1500
Код
1
Товар
2
Бананы
Киви
…
Год
2006
Бананы
2007
Киви
3200
…
1200
5600
1500
Нормализация базы данных
- Любое поле должно зависеть только от ключа ( ключ – это поле или комбинация полей, однозначно определяющая запись) .
зависит не только от названия товара!
товары
Код
Название
1
Цена
Монитор
2
Винчестер
9 000 р.
…
11 000 р.
прайс-лист
- Не должно быть полей, которые могут быть найдены с помощью остальных .
Код
1
Товар
2
Бананы
Цена за тонну
…
Кол-во, тонн
1200
Киви
1500
10
Стоимость
20
12 000
30 000
Поиск в базах данных
Линейный поиск – это перебор всех записей до тех пор, пока не будет найдена нужная.
Код
Фамилия
1
Сидоров
2
Ветров
…
1024
Померанцев
Иванов?
1024 сравнения!
- данные не надо предварительно готовить
21