
L_8L_manipul.ppt
- Количество слайдов: 27
Лекция № 8 Манипулирование данными
Вопросы: n Вставка новых записей n Обновление данных n Удаление данных n Принципы построения ИИС
Описание БД
Команда вставки записей Insert Перенести в новую таблицу успеваемость студентов, имеющих оценку 5 INSERT INTO T_usp 5 SELECT *FROM T_usp WHERE ocenka=5;
Команда вставки записей Insert Перенести в новую таблицу данные о фамилии курсе и среднем бале студента INSERT INTO T_avg ( fam, kurs, avg_ocenka ) SELECT T_Stud. Fam, Max(T_Predmet. Kurs), Avg(T_usp. ocenka) FROM T_Stud, T_Predmet, T_usp Where T_Predmet. id=T_usp. id_Predmet and T_Stud. id=T_usp. Id_stud GROUP BY T_Stud. Fam ORDER BY Max(T_Predmet. Kurs), T_Stud. Fam;
Команда вставки записей Insert Перенести в новую таблицу данные о студентах имеющих, долги по предметам за прошлые курсы INSERT INTO T_zadolgnik ( fam, grup, predmet, kurs ) SELECT T_S. Fam, T_S. Grup, T_P. Predmet, T_P. Kurs FROM T_Predmet T_P, T_Stud T_S Определяет текущий курс студента WHERE T_P. Kurs<(select max(T_Predmet. Kurs) from T_Predmet, T_usp where T_Predmet. id=T_usp. id_Predmet and T_usp. id_stud=T_S. id ) and not Exists (select * from T_usp where T_usp. id_Predmet= T_P. id and T_usp. id_stud=T_S. id) ); Проверяет сочетание студент предмет
Схема выполнения запроса Внешний Таблица успеваемости Волков-Физика Курс Волкова Волков-Математика Волков-Программир Волков- Базы данных
Команда обновления данных Update Назначить всем студентам стипендию 400 рублей UPDATE T_Stud SET stipend = 400;
Команда обновления данных Update Увеличить вдвое стипендию для студентов со средним балом больше 4 UPDATE T_Stud T_S SET stipend = stipend*2 WHERE 4<=(SELECT Avg(T_usp. ocenka) From T_usp Where T_usp. Id_stud=T_S. id);
Команда обновления данных Update Уменьшить на 200 рублей стипендию для студентов, имеющих долги за прошлые курсы UPDATE T_Stud SET stipend = stipend-200 WHERE T_stud. id= An. Y( SELECT distinct T_S. id FROM T_Predmet T_P, T_Stud T_S WHERE T_P. Kurs< (select max(T_Predmet. Kurs) from T_Predmet, T_usp where T_Predmet. id=T_usp. id_Predmet and T_usp. id_stud=T_s. id ) and not Exists (select * from T_usp where T_usp. id_Predmet= T_P. id and T_usp. id_stud=T_S. id)
Команда удаления данных Delete Удалить всех студентов со средним балом меньше 4 DELETE FROM T_Stud T_s WHERE 4>=(SELECT Avg(T_usp. ocenka) From T_usp Where T_S. id=T_usp. Id_stud Исходная
Команда удаления данных Delete Удалить всех студентов имеющих долги за прошлые курсы DELETE FROM T_studd WHERE T_studd. id=An. Y( SELECT T_S. id FROM T_Predmet T_P, T_Stud T_S WHERE T_P. Kurs<(select max(T_Predmet. Kurs) from T_Predmet, T_usp where T_Predmet. id=T_usp. id_Predmet and T_usp. id_stud=T_s. id ) and not Exists (select * from T_usp where T_usp. id_Predmet= T_P. id and T_usp. id_stud=T_S. id) Исходная
Принципы построения ИИС Интеллектуальная информационная система (ИИС) – это информационная система, которая основана на концепции использования базы знаний для генерации алгоритмов решения экономических задач различных классов в зависимости от конкретных информационных потребностей пользователей.
Коммуникативные способности ИИС Интеллектуальные БД – отличаются от обычных возможностью выборки по запросу информации, которая может явно не храниться, а выводиться из имеющейся БД Естественно-языковой интерфейс предполагает трансляцию естественно-языковых конструкций на машинный уровень представления знаний. При этом осуществляется распознавание и проверка написанных слов по словарям и синтаксическим правилам. Данный интерфейс облегчает обращение к интеллектуальным БД Гипертекстовые системы предназначены для поиска текстовой информации по ключевым словам в базах. Системы контекстной помощи – частный случай гипертекстовых и естественно-языковых систем. Системы когнитивного моделирования позволяют осуществлять взаимодействие пользователя ИИС с помощью графических образов.
Экспертные системы Экспертная система (ЭС) – это ИИС, предназначенная для решения слабоформализуемых задач на основе накапливаемого в базе знаний опыта работы экспертов в проблемной области. Она включает базу знаний с набором правил и механизмом вывода и позволяет на основании предоставляемых пользователем фактов распознать ситуацию, поставить диагноз, сформулировать решение или дать рекомендацию для выбора действия.
Самообучающиеся системы Хранилище данных (data warehouses) – это централизованный архив реорганизованных данных: предметно-ориентированных, интегрированных, расположенных с соблюдением хронологии, и неизменных, являющихся основой для поддержки принятия решений. Основные свойства: Предметная ориентированность. Информация в хранилище данных организована в соответствии с основными аспектами деятельности предприятия (заказчики, продажи, склад и т. п. ). Это отличает хранилище данных от оперативной базы данных, где данные организованы в соответствии с процессами (выписка счетов, отгрузка товара и т. п. ). Предметная организация данных в хранилище способствует как значительному упрощению анализа, так и повышению скорости выполнения аналитических запросов. Интегрированность. Исходные данные извлекаются из оперативных баз данных, проверяются, очищаются, приводятся к единому виду, в нужной степени агрегируются (т. е. вычисляются суммарные показатели) и загружаются в хранилище. Такие интегрированные данные намного проще анализировать. Привязка ко времени. Данные в хранилище всегда напрямую связаны с определенным периодом времени. Данные, выбранные из оперативных баз данных, накапливаются в хранилище в виде «исторических слоев» , каждый из которых относится к конкретному периоду времени. Это позволяет анализировать тенденции в развитии бизнеса. Неизменяемость. Попав в определенный «исторический слой» хранилища, данные уже никогда не будут изменены
Технология OLAP – это On. Line Analytical Processing, т. е. оперативный анализ данных. (Применяется после того как данные получены, очищены, приведены к единому виду и помещены в хранилище, их необходимо анализировать. ) OLAP-приложение предоставляет следующие возможности: Высокая скорость. Анализ должен производиться одинаково быстро по всем аспектам информации. Анализ. Должна существовать возможность производить основные типы числового и статистического анализа – предопределенного разработчиком приложения или произвольно определяемого пользователем. Разделение доступа. Доступ к данным должен быть многопользовательским, при этом должен контролироваться доступ к конфиденциальной информации.
База данных приложения ЖКХ W_history. mdb
Содержимое таблиц БД приложения ЖКХ
Интерфейс для набора и редактирования данных
Интерфейс приложения в режиме анализа данных
Генерация отчетов
Сценарий подсчета статистики в режиме анализа данных SELECT t_zakaz AS Заказчик, t_nepol AS Неполадка, COUNT(t_workn. id) AS Заявок, SUM(t_workn. n_peopl * t_workn. n_chas) AS ЧЧ FROM t_zakaz, T_adres, t_workn, t_disp, t_nepol, t_data WHERE t_zakaz. id = T_adres. id_t_zakaz AND T_adres. id = t_workn. id_t_adres AND t_workn. id_t_disp = t_disp. id AND t_workn. id_t_nepol = t_nepol. id AND t_workn. id_t_data = t_data. id AND (t_disp = ? ) AND (t_data_w >= ? AND t_data_w <= ? ) GROUP BY t_zakaz, t_nepol ORDER BY t_zakaz, t_nepol
Проблемы проектирования хранилищ данных Предприятие Управление Энергия Инфраструктура Сервисные услуги Производство Месторождение А Месторождение Б
Проектирование иерархических хранилищ данных 1 4 Управление 2 Предприятие 16 9 Инфраструктура 10 Производство 15 3 Сервисные услуги Энергия 5 6 7 Месторождение А 8 11 12 Месторождение Б 13 14
Запросы к иерархическим хранилищам данных SELECT D 1. name, Sum(T_fakt. cost_x) AS [Итого инфраструктура] FROM T_diminision AS D 1, T_diminion AS D 2, T_fakt WHERE T_fakt. id_diminision=D 2. id And D 2. Left_x>=D 1. Left_x And D 2. Right_x<=D 1. Right_x And D 1. name="Инфраструктура" GROUP BY D 1. name;
Запросы к иерархическим хранилищам данных, имеющих историю изменения названий SELECT D 3. name_x, Sum(T_fakt. cost_x) AS [Итого инфраструктура] FROM T_diminision AS D 1, T_diminision AS D 2, T_fakt, T_dimin_history AS d 3 WHERE T_fakt. id_diminision=D 2. id And D 2. Left_x>=D 1. Left_x And D 2. Right_x<=D 1. Right_x And D 1. name="Инфраструктура" And d 3. id_diminision=D 2. id And d 3. date_end Is Null GROUP BY D 3. name_x;