Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции по информатике / Раздел08(Базы данных)

.pdf
Скачиваний:
111
Добавлен:
09.05.2015
Размер:
617.68 Кб
Скачать

8.5 Основные операции с данными с СУБД

ИСПОЛЬЗОВАНИЕ SQL ДЛЯ ИЗВЛЕЧЕНИЯ ИНФОРМАЦИИ ИЗ ТАБЛИЦ

Слайд 1 Слайд 2 Слайд 3

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

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

Все запросы в SQL состоят из одиночной команды. Эта команда называется - SELECT(ВЫБОР).

SELECT snum, sname, city, comm

FROM Salespeople;

Вывод для этого запроса:

 

 

|

snum

sname

city

comm

|

| ------

----------

-----------

-------

|

|

1001

Peel

London

0.12

|

|

1002

Serres

San Jose

0.13

|

|

1004

Motika

London

0.11

|

|

1007

Rifkin

Barcelona

0.15

|

|

1003

Axelrod

New York

0.10

|

 

===============================

Слайд 4 УДАЛЕНИЕ ИЗБЫТОЧНЫХ ДАННЫХ

DISTINCT (ОТЛИЧИЕ) - аргумент который устраняет двойные значения из запроса

SELECT.

Для получения списка без дубликатов, для удобочитаемости, вы можете ввести следующее:

SELECT DISTINCT snum

FROM Orders;

DISTINCT следит за тем, какие значения были ранее, так что бы они не были продублированы в списке.

| ============================================= |

|

snum

|

| -------

|

|

1001

|

31

|

1002

|

|

1003

|

|

1004

|

|

1007

|

=============================================

SELECT без дублирования

Слайд 5 Выбор по условию

SELECT *

FROM Customers

WHERE city = " San Jose"

AND rating > 200;

| ============================================= |

|

сnum

cname

city

rating

snum

|

|

------

--------

--------

----

----- |

 

|

2008

Cirneros

San Jose 300

1007

|

 

===============================

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

=

Равно

<=

Меньше чем или равно

>

Больше чем

<>

Не равно

<Меньше чем

>= Больше чем или равно

Слайд 6

Оператор BETWEEN

BETWEEN определяет диапазон, значения которого должны уменьшаться что делает предикат верным. Вы должны ввести ключевое слово BETWEEN с начальным значением, ключевое AND и конечное значение. В отличие от IN, BETWEEN чувствителен к порядку, и первое значение в предложении должно быть первым по алфавитному или числовому порядку.

Следующий пример извлекает из таблицы Продавцов всех продавцов с комиссионными между .10 и .12:

SELECT *

FROM Salespeople

WHERE comm BETWEEN .10 AND .12;

32

Значения совпадающее с любым из двух значений границы ( в этом случае, .10 и .12 ) заставляет предикат быть верным.

|

snum

sname

city

comm

|

| ------

---------- ----------- -------

|

 

|

1001

Peel

London

0.12

|

|

1004

Motika

London

0.11

|

|

1003

Axelrod

New York

0.10

|

Пример запроса выбирающего всех заказчиков чьи имена попали в определенный алфавитный диапазон:

SELECT *

FROM Customers

WHERE cname BETWEEN 'A' AND 'G';

|

cnum

cname

city

rating

snum

|

|

------

--------

------

----

------

|

|

2006

Clemens

London

100

1001

|

|

2008

Cisneros

San Jose

300

1007

|

Обратите Внимание что Grass и Giovanni отсутствуют. Это происходит из-за того что BETWEEN сравнивает строки неравной длины. Строка 'G' более короткая чем

строка Giovanni, поэтому BETWEEN выводит 'G' с пробелами. Пробелы предшествуют символам в алфавитном порядке ( в большинстве реализаций ), поэтому Giovanni не выбирается. То же самое происходит с Grass.

Это важно помнить это когда вы используете BETWEEN для извлечения значений из алфавитных диапазонов. Для включения в запрос Giovanni и Grass символа конца диапазона G надо поставить Gz.

Слайд 7

УПОРЯДОЧЕНИЕ ПОЛЕЙ ВЫВОДА

Таблицы - это неупорядоченные наборы данных, и данные которые извлекаются из них, не обязательно появляются в какой-то определенной последовательности. SQL использует команду ORDER BY для упорядочения вывода. Столбцы упорядочиваются по возрастанию ( ASC ) или убывание ( DESC ). По умолчанию установлено - возрастание.

Пример: Рассмотрим вывод таблицы Продаж (Orders), упорядочиваемую по номерам заказчиков:

SELECT *

FROM Orders

ORDER BY cnum DESC;

|

onum

amt

odate

cnum

snum |

 

|

------

--------

----------

 

-----

-----

|

|

3001

18.69

10/03/1990

2008

1007

|

|

3006

1098.16

10/03/1990

2008

1007

|

|

3002

1900.10

10/03/1990

2007

1004

|

33

|

3008

4723.00

10/05/1990

2006

1001

|

|

3011

9891.88

10/06/1990

2006

1001

|

|

3007

75.75

10/04/1990

2004

1002

|

|

3010

1309.95

10/06/1990

2004

1002

|

|

3005

5160.45

10/03/1990

2003

1002

|

|

3009

1713.23

10/04/1990

2002

1003

|

|

3003

767.19

10/03/1990

2001

1001

|

================================================

Упорядочение вывода по убыванию поля

Слайд 8

УПОРЯДОЧЕНИЕ ГРУПП СТОЛБЦОВ

Оператор ORDER BY в совокупности с оператором GROUP BY может использоваться для упорядочивания групп столбцов. Под группой понимается два и более столбцов вывода запроса.

Пример: Вывести информацию обо всех сделках продавцов. Если в один день одним продавцом заключено более одной сделки, то вывести информацию о сделке с максимальным порядком.

SELECT snum, odate, MAX (amt)

FROM Orders

GROUP BY snum, odate

ORDER BY snum;

| =============================================== |

|

snum

odate

amt

|

|

-----

----------

--------

|

|

1001

10/03/1990

767.19

|

|

1001

10/05/1990

4723.00

|

|

1001

10/06/1990

9891.88

|

|

1002

10/06/1990

1309.95

|

|

1002

10/04/1990

75.75

|

|

1002

10/03/1990

5160.45

|

|

1003

10/04/1990

1713.23

|

|

1004

10/03/1990

1900.10

|

|

1007

10/03/1990

1098.16

|

================================================

Упорядочение с помощью группы

Для указания поля используемого в упорядочении вывода, вы можете использовать порядковые номера столбцов, вместо их имен. Эти номера ссылаются не на порядок столбцов в таблице, а на их порядок в выводе. Другими словами, поле упомянутое в предложении SELECT первым, для ORDER BY - это поле 1, независимо от того каким по порядку оно стоит в таблице. Например, вы можете использовать следующую команду чтобы упорядочить определенные поля таблицы Продавцов.

34

ДО ЭТОГО МОМЕНТА, КАЖДЫЙ ЗАПРОС КОТОРЫЙ МЫ ИССЛЕДОВАЛИ основывался на одиночной таблице. Далее, вы узнаете как сделать запрос любого числа таблиц с помощью одной команды. Это - чрезвычайно мощное средство потому что оно не только объединяет вывод из многочисленых таблиц, но и определяет связи между ними.

35

8.6Назначение и основы использования систем искусственного интелекта

Слайд 1 Слайд 2 Слайд 3

(англ. Artificial intelligence, AI) — это наука и разработка интеллектуальных машин и систем, особенно интеллектуальных компьютерных программ, направленных на то, чтобы понять человеческий интеллект. При этом используемые методы не обязательно биологически правдоподобны. Но проблема состоит в том, что неизвестно какие вычислительные процедуры мы хотим называть интеллектуальными. А так как мы понимаем только некоторые механизмы интеллекта, то под интеллектом в пределах этой науки мы понимаем только вычислительную часть способности достигать целей в мире.

Различные виды и степени интеллекта существуют у многих людей, животных и некоторых машин, интеллектуальных информационных систем и различных моделей экспертных систем с различными базами знаний. При этом как видим такое определение интеллекта не связано с пониманием интеллекта у человека — это разные вещи. Более того, эта наука моделирует человеческий интеллект, так как с одной стороны, можно изучить кое-что о том, как заставить машины решить проблемы, наблюдая других людей, а с другой стороны, большинство работ в ИИ вовлекают изучение проблем, которые требуется решать человечеству в промышленном и технологическом смысле. Поэтому ИИ-исследователи вольны использовать методы, которые не наблюдаются у людей, если это необходимо для решения конкретных проблем.

Именно в таком смысле термин ввел Джон Маккарти в 1956 году на конференции в Дартмутском университете, и до сих пор, несмотря на критику тех, кто считает, что интеллект — это только биологический феномен, в научной среде термин сохранил свой первоначальный смысл, несмотря на явные противоречия с точки зрения человеческого интеллекта.

В философии не решѐн вопрос о природе и статусе человеческого интеллекта. Нет и точного критерия достижения компьютерами «разумности», хотя на заре искусственного интеллекта был предложен ряд гипотез, например, тест Тьюринга или гипотеза Ньюэлла

— Саймона. Поэтому несмотря на наличие множества подходов как к пониманию задач ИИ, так и созданию интеллектуальных информационных систем можно выделить два основных подхода к разработке ИИ:

нисходящий (англ. Top-Down AI), семиотический — создание экспертных систем, баз знаний и систем логического вывода, имитирующие высокоуровневые психические процессы: мышление, рассуждение, речь, эмоции, творчество и т. д.; восходящий (англ. Bottom-Up AI), биологический — изучение нейронных сетей и эволюционных вычислений, моделирующих интеллектуальное поведение на основе более мелких «неинтеллектуальных» элементов.

Последний подход, строго говоря, не относится к науке о ИИ в смысле данном Джоном Маккарти — их объединяет только общая конечная цель.

Согласно мнению многих учѐных, важным свойством интеллекта является способность к обучению. Таким образом, на первый план выходит инженерия знаний, объединяющая задачи получения знаний из простой информации, их систематизации и использования.

36

Достижения в этой области затрагивают почти все остальные направления исследований ИИ. Здесь также нельзя не отметить две важные подобласти. Первая из них — машинное обучение — касается процесса самостоятельного получения знаний интеллектуальной системой в процессе еѐ работы. Второе связано с созданием экспертных систем — программ, использующих специализированные базы знаний для получения достоверных заключений по какой-либо проблеме.

К области машинного обучения относится большой класс задач на распознавание образов. Например, это распознавание символов, рукописного текста, речи, анализ текстов. Многие задачи успешно решаются с помощью биологического моделирования (см. след. пункт). Особо стоит упомянуть компьютерное зрение, которое связано ещѐ и с робототехникой.

Слайд 4

expert system) — компьютерная программа, способная частично заменить специалиста-эксперта в разрешении проблемной ситуации. ЭС начали разрабатываться исследователями искусственного интеллекта в 1970-х годах, а в 1980-х получили коммерческое подкрепление.

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

Похожие действия выполняет программа-мастер (wizard). Мастера применяются как в системных программах, так и в прикладных для интерактивного общения с пользователем (например, при установке ПО). Главное отличие мастеров от ЭС — отсутствие базы знаний; все действия жестко запрограммированы. Это просто набор форм для заполнения пользователем.

Другие подобные программы — поисковые или справочные (энциклопедические) системы. По запросу пользователя они предоставляют наиболее подходящие (релевантные) разделы базы статей (представления о объектах областей знаний, их виртуальную модель). Например, в Википедии аналогами статических визардов являются еѐ структуры (типы данных, в терминологии ООП - классы и интерфейсы) - категории, списки, шаблоны, порталы, которые по названию объекта выдают пользователю все его имеющиеся для данной структуры Википедии атрибуты.

Экспертная система имеет следующую структуру:

Интерфейс пользователя Пользователь

Интеллектуальный редактор базы знаний Эксперт Инженер по знаниям

Рабочая (оперативная) память База знаний Решатель (механизм вывода)

Подсистема объяснений

37

База знаний состоит из правил анализа информации от пользователя по конкретной проблеме. ЭС анализирует ситуацию и, в зависимости от направленности ЭС, дает рекомендации по разрешению проблемы.

Как правило, база знаний ЭС содержит факты (статические сведения о предметной области) и правила - набор инструкций, применяя которые к известным фактам можно получать новые факты.

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

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

Обычно факты в базе знаний описывают те явления, которые являются постоянными для данной предметной области. Характеристики, значения которых зависят от условий конкретной задачи, ЭС получает от пользователя в процессе работы, и сохраняет их в рабочей памяти. Например, в медицинской ЭС факт «У здорового человека 2 ноги» хранится в базе знаний, а факт «У пациента одна нога» — в рабочей памяти.

База знаний ЭС создается при помощи трех групп людей:

1.эксперты той проблемной области, к которой относятся задачи, решаемые ЭС;

2.инженеры по знаниям, являющиеся специалистами по разработке ИИС;

3.программисты, осуществляющие реализацию ЭС.

Слайд 5

Режимы функционирования

ЭС может функционировать в 2-х режимах:

1.Режим ввода знаний — в этом режиме эксперт с помощью инженера по знаниям посредством редактора базы знаний вводит известные ему сведения о предметной области

вбазу знаний ЭС.

2.Режим консультации — пользователь ведет диалог с ЭС, сообщая ей сведения о текущей задаче и получая рекомендации ЭС. Например, на основе сведений о физическом состоянии больного ЭС ставит диагноз в виде перечня заболеваний, наиболее вероятных при данных симптомах.

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

Классификация ЭС по решаемой задаче

Интерпретация данных

38

Диагностирование

Мониторинг

Проектирование

Прогнозирование Сводное Планирование Обучение Управление Ремонт Отладка

Классификация ЭС по связи с реальным временем

Статические ЭС Квазидинамические ЭС Динамические ЭС

Слайд 6

Этапы разработки ЭС

Этап идентификации проблем — определяются задачи, которые подлежат решению, выявляются цели разработки, определяются эксперты и типы пользователей.

Этап извлечения знаний — проводится содержательный анализ проблемной области, выявляются используемые понятия и их взаимосвязи, определяются методы решения задач.

Этап структурирования знаний — выбираются ИС и определяются способы представления всех видов знаний, формализуются основные понятия, определяются способы интерпретации знаний, моделируется работа системы, оценивается адекватность целям системы зафиксированных понятий, методов решений, средств представления и манипулирования знаниями.

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

Реализация ЭС — создается один или нескольких прототипов ЭС, решающие требуемые задачи.

Этап тестирования — производится оценка выбранного способа представления знаний в ЭС в целом.

Наиболее известные/распространѐнные ЭС

CLIPS — весьма популярная ЭС (public domain)

OpenCyc — мощная динамическая ЭС с глобальной онтологической моделью и поддержкой независимых контекстов

39

Слайд 7

Базы знаний

База знаний, БЗ (англ. Knowledge base, KB) — это особого рода база данных, разработанная для управления знаниями (метаданными), то есть сбором, хранением, поиском и выдачей знаний. Раздел искусственного интеллекта, изучающий базы знаний и методы работы со знаниями, называется инженерией знаний.

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

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

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

Наиболее важный параметр БЗ — качество содержащихся знаний. Лучшие БЗ включают самую релевантную, достоверную и свежую информацию, имеют совершенные системы поиска информации и тщательно продуманную структуру и формат знаний.

Классификация баз знаний

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

БЗ всемирного масштаба — например, Интернет или Википедия БЗ национальные — например, русская Википедия БЗ отраслевые— например, Автомобильная энциклопедия БЗ экспертных систем БЗ специалистов

Применение баз знаний

Простые базы знаний могут использоваться для создания экспертных систем и хранения данных об организации: документации, руководств, статей технического обеспечения. Главная цель создания таких баз — помочь менее опытным людям найти существующее описание способа решения какой-либо проблемы предметной области.

База знаний — важный компонент интеллектуальной системы. Наиболее известный класс таких программ — экспертные системы. Они предназначены для построения

40