Базы данных
преподаватель Никитин М.Е.
§ 21. Работа с многотабличной базой данных § 22. Нереляционные базы данных § 23. Экспертные системы
§ 21. Работа с многотабличной базой данных
Базы данных
Многотабличная БД
Блюда
Заказы
Заказано
Номер
Код
Код
Название
Номер заказа
Дата
Код блюда
Цена
1
1
N
N
Пример :
Заказы
Номер
Заказано
Блюда
1
Код
Код
Дата
1
Название
2
11.12.12
Номер заказа
1
Цена
2
Код блюда
2
12.12.12
1
борщ
3
3
1
1
бифштекс
80 р.
4
4
3
110 р.
1
гуляш
5
2
чай
70 р.
4
5
10 р.
1
6
кофе
2
7
50 р.
2
2
2
2
5
Создание таблиц
Заказы
Заказано
Блюда
Номер
Код
Код
Название
Дата
Номер заказа
Код блюда
Цена
INTEGER
DECIMAL
Установка связей между таблицами
Сервис – Связи
добавить все
?
Как определить, где 1 и N?
перетащить ЛКМ
Заполнение таблиц
Заказы
Номер
Блюда
Заказано
Код
Дата
1
Код
Название
1
1
Номер заказа
11.04.13
2
борщ
Цена
12.04.13
2
Код блюда
3
1
2
3
12.04.13
1
80 р.
1
бифштекс
3
1
110 р.
гуляш
4
4
3
70 р.
чай
5
5
2
4
10 р.
кофе
2
1
6
50 р.
2
2
7
8
2
2
8
3
5
3
1
5
Запрос данных из нескольких таблиц
Заказы
Блюда
ЛКМ
добавить все
?
Зачем добавлять все таблицы?
Запрос данных из нескольких таблиц
перетащить нужные поля
названия при выводе
Запрос данных из нескольких таблиц
ПКМ – Редактировать в режиме SQL
псевдоним
связи
Запрос данных из нескольких таблиц
ПКМ – Формат столбца
!
Формат столбца не сохраняется!
Итоговый запрос
?
Почему?
Название столбцов при выводе
Итоговый запрос
Группировка по номеру и дате
Считать сумму цен
Форма с подчинённой (субформой)
Таблица Заказы
?
Откуда брать данные?
ЗапросЗаказы
ЗапросКОплате
!
Задача: объединить данные из трёх связанных источников!
Форма с подчинённой (субформой)
ЛКМ
Форма с подчинённой
ПКМ – Изменить
Удалить столбец Заказ
Добавление третьей формы
Навигатор форм
Добавление третьей формы
ПКМ
Добавление элементов на форму
метка на форме
нарисовать область
ПКМ – Свойства
ЛКМ
Добавление элементов на форму
Дополнительные элементы управления
Поле валюты
Добавление элементов на форму
Поле валюты на форме
нарисовать область
Добавление элементов на форму
ПКМ – Свойства
изменить
изменить
ЛКМ
Отчёт с группировкой
ПКМ – Мастер отчётов
Отчёт с группировкой
два уровня группировки
Редактирование отчёта
ПКМ – Изменить
ПКМ – …
Сумма заказа
!
Стандартными средствами OOBase не получить!
Использование Oracle Report Builder
http://extensions.openoffice.org/en/project/oracle-report-builder
Свойства (F4)
Навигатор отчёта (F5)
или Ctrl+G
Использование Oracle Report Builder
Поле
Метка
Использование Oracle Report Builder
ПКМ – Новая функция
Использование Oracle Report Builder
ЛКМ
§ 22. Нереляционные базы данных
Базы данных
Проблемы реляционных БД
- данные нужно разбить на множество таблиц
- человек мыслит не таблицами, а объектами
- данные об одном объекте разбросаны по нескольким таблицами замедление запросов
- структура хранимых объектов строго определена и не может меняться
- как хранить объекты с разными свойствами?
- как распределить нагрузку между серверами в Интернете? (реляционные БД плохо масштабируются )
БД «ключ-значение»
!
Все данные об объекте в одном месте!
- добавление записи
- поиск по ключу
- удаление записи по ключу
- изменение записи по ключу
!
Связи не поддерживаются!
Документо-ориентированные БД
хэш-код
{
ключ: 1231239786234762394769237
автор: « А.С. Пушкин »
название: « Евгений Онегин »
}
- набор полей произвольный
- документы в одной базе могут иметь разный набор полей
БД «ключ-значение»
- близость к человеческому восприятию
- масштабируемость
ключи
501-1000
1-1000
1-500
- не поддерживаются связи между объектами
- нет стандарта на язык управления данными
- запросы – только поиск по ключу (сортировка?)
Нереляционные БД
NoSQL = Not Only SQL
система хранения данных BigTable
база данных SimpleDB
www.facebook.com СУБД Cassandra
twitter.com СУБД Cassandra
Бесплатные СУБД :
- MongoDB ( www.mongodb.org )
- CouchDB ( couchdb.apache.org ).
§ 23. Экспертные системы
Базы данных
Что такое экспертная система?
?
Кто такой эксперт?
Эксперт
- обладает глубокими знаниями
- имеет опыт работы в своей области
- может ответить на вопросы , на которые нельзя найти ответы в Интернете
- может предложить решение плохо поставленных задач
- может примерно оценить вероятность своей версии
Экспертная система – это компьютерная программа, задача которой – заменить человека-эксперта при выработке рекомендаций для принятия решений в сложной ситуации.
искусственный интеллект
Состав экспертной системы
- база знаний
- блок получения решения («решатель»)
- интерфейс с пользователем
эксперт
База знаний
Факты
- у окуня есть жабры
- Иван – отец Марьи
- Волга впадает в Каспийское море
Правила
- если x – животное и x дышит жабрами, то x – рыба;
- если x – отец y , и y – отец z , то x – дед z ;
- если x состоит из атомов углерода и обладает высокой твердостью, то x – алмаз.
инженер по знаниям
!
Оценка степени уверенности!
Экспертная система: пример
- есть перья птица
- дышит жабрами рыба
- кормит детенышей молоком млекопитающее
- млекопитающее и ест мясо хищник
кормит детей молоком?
да
нет
млекопитающее
имеет перья?
ест мясо?
да
да
нет
нет
дышит жабрами?
птица
?
хищник
нет
да
!
Язык программирования Пролог!
?
рыба
Экспертные системы: итоги
- ЭС применяется в достаточно узкой области
- использует базу знаний, которая может расширяться
- может применяться при неточных и противоречивых данных
- выдает ответ в виде рекомендации
- может показать, как получено решение
- опыт и интуицию экспертов сложно свести к правилам
- отладка и проверка ЭС очень сложна, трудно гарантировать правильность выводов
- ЭС неспособны самообучаться, необходима работа инженера по знаниям