Слайд 1Технологии обработки информации
К.т.н., доцент кафедры ИУС
Феликс Васильевич Филиппов
9000096@mail.ru
230400 Информационные системы и технологии
ЛЕКЦИИ, ЛАБОРАТОРНЫЕ РАБОТЫ,
ПРАКТИЧЕСКИЕ ЗАНЯТИЯ, ЭКЗАМЕН
СПбГУТ им. проф. М.А.Бонч-Бруевича
Слайд 2Темы лекций
Тема 1
Информация и технологии
Тема 2
Тема 3
Передача и кодирование информации
Базы
данных и язык SQL
Тема 4
XML - cтруктурирование данных
Тема 5
Тема 6
Структурирование знаний
Тема 7
Семантический веб
Тема 8
Тема 9
RDF и RDF Schema
XML Schema
JavaScript
Онтологии и OWL
Тема 10
Слайд 3Тема 11
SPARQL и поиск информации
Тема 12
Язык R и RStudio
Тема 13
Большие
даные (Big Data)
Тема 14
Технология Hadoop
Тема 15
Data
Mining
Слайд 5Тема 1
Информация и технология
Слайд 6
Понятие «информация»
(первая концепция)
Информация – средство, снимающее неопределенность (энтропию)
события или объекта познания.
К. Шеннон – конец 40-х годов
XX века.
Эта концепция не учитывает смысловую сторону информации, она оказалась весьма полезной в технике связи и вычислительной технике, послужила основой для измерения информации и оптимального кодирования сообщений.
Слайд 7
Понятие «информация»
(вторая концепция)
Информация – свойство (атрибут) материи.
Это понятие связано с развитием киберне-тики - Н. Винер 1948
год.
Академик В.М. Глушков: "информацию несут не только испещренные буквами листы книги или человеческая речь, но и солнечный свет, складки горного хребта, шум водопада, шелест травы".
Слайд 8Понятие «информация»
(третья концепция)
Информация – это действующая, полезная, "работающая" часть знаний.
Концепция основана на логико-семантическом подходе.
Социальная информация представляет собой знания,
сообщения, сведения о социальной форме движения материи и о всех других формах в той мере, в какой она используется обществом.
Слайд 9Свойства информации
Содержательность
Достаточность (полнота)
Доступность
Актуальность (своевременность)
Точность (достоверность)
Относительность
Слайд 10Данные, информация и знания
Ф.Филиппов, доцент СПбГУТ им. проф. М.А.Бонч-Бруевича
Слайд 11Место информации
Ф.Филиппов, доцент СПбГУТ им. проф. М.А.Бонч-Бруевича
Слайд 12
Количество информации
1928 год
Формула Хартли H = log2n
H – количество
информации
n - число возможных равновероятных
событий
Слайд 13
Количество информации
1948 год
Формула Шеннона
H – количество информации
n - число возможных
событий
Pi – вероятность i-го события
Слайд 14
Домашнее задание № 1
На железнодорожном вокзале 8 путей отправления поездов.
Вам сообщили, что ваш поезд прибывает на четвертый путь. Сколько
информации вы получили?
В коробке лежат 16 кубиков. Все кубики разного цвета. Сколько информации несет сообщение о том, что из коробки достали красный кубик?
3. Была получена телеграмма: «Встречайте, вагон 7». Известно, что в составе поезда 16 вагонов. Какое количество информации было получено?
4. В мешке находятся 20 шаров. Из них 15 белых и 5 красных. Какое количество информации несет сообщение о том, что достали: а) белый шар; б) красный шар.
5. В коробке лежат кубики: 10 красных, 8 зеленых, 5 желтых, 12 синих. Вычислите вероятность доставания кубика каждого цвета и количество информации, которое при этом будет получено.
Слайд 15Технология — в широком смысле — объём знаний, которые можно
использовать для производства продукта.
Технология — в узком смысле —
способ преобразования вещества, энергии, информации в процессе производства продукта.
Современные технологии основаны на достижениях научно-технического прогресса и ориентированы на производство продукта: материальная технология создаёт материальный продукт, информационная технология (ИТ) — информационный продукт.
Технологии
Слайд 16Информационные технологии (ИТ, от англ. information technology, IT) — широкий
класс дисциплин и областей деятельности, относящихся к технологиям управления и
обработки данных, а также создания данных, в том числе, с применением вычислительной техники.
Технологии обработки информации:
представление информации;
поиск исчерпывающей информации;
передача в реальном времени.
Обработка информации – составная часть ИТ
Слайд 17Тема 2
Передача и кодирование информации
Слайд 18
Общая схема передачи информации
Источник сообщений
Кодирующее устройство
Канал связи
Декодирующее устройство
Получатель сообщений
Слайд 191
2
3
4
5
6
7
OSI
TCP / IP
От хоста к сети
Эталонные модели
(стеки протоколов)
Слайд 20TCP / IP (Transmission Control Protocol) / (Internet Protocol)
Протокол
TCP/IP
От хоста к сети
TCP – разбивает, нумерует
IP – адресует
TCP – собирает файл
IP – убирает адрес
От хоста к сети
Канал связи
Слайд 21Трекер
Рой – совокупность всех пиров
Лич – скачивающий пир
Пир – сид
или лич
Сид – пир имеющий все сегменты
Протокол BitTorrent
Официальный сайт: http://bitconjurer.org/BitTorrent
Слайд 22Overall Architecture
BitTorrent
ЗАГРУЗЧИК
1
Tracker
Слайд 23Overall Architecture
BitTorrent
ЗАГРУЗЧИК
2
Слайд 24Overall Architecture
BitTorrent
ЗАГРУЗЧИК
3
Слайд 25Overall Architecture
BitTorrent
ЗАГРУЗЧИК
4
Слайд 26Overall Architecture
BitTorrent
ЗАГРУЗЧИК
5
Слайд 27Overall Architecture
BitTorrent
ЗАГРУЗЧИК
6
Слайд 28 Основные направления специализации платформы:
AVoD (Аудио и Видео по Запросу);
Live Stream
(«живое»/потоковое вещание);
децентрализованные социальные сети;
IOTT (Interactive-Over-The-Top) - интерактивные сервисы поверх
трансляций.
Платформа Ace Stream обеспечивает непревзойдённое аудиовизуальное качество онлайн трансляций/показов в сети Интернет и самую эффективную систему хранения и доставки видео и аудио контента.
Платформа Ace Stream
Слайд 29 Кодирование информации
В общем случае
с помощью m битов
можно закодировать N = 2 m понятий.
Байт
– восемь двоичных разрядов,
служит основой адресации памяти.
N = 28 = 256 кодов используется для
кодирования текстовой информации.
Выражение данных одного типа через
данные другого типа.
Слайд 30Кодирование текстовой информации
АSCII - код
1 сентября 2014
года 3120E1A5ADE2EFA1E1EF203230313420A3AEA4A0
Слайд 31Кодирование чисел и
позиционные системы счисления
s – основание системы счисления
ai
– цифры в системе счисления
n – количество целых разрядов числа
Xs
m – количество дробных разрядов числа Xs
X(s) = an-1an-2…a0,a-1a-2…a-m =
= an-1sn-1+an-2sn-2 +…+ a0s0+a-1s-1 +…+ a-ms-m
s = 2 ai = {0,1}
s = 8 ai = {0,1,2,3,4,5,6,7}
s = 10 ai = {0,1,2,3,4,5,6,7,8,9}
s = 16 ai = {0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}
Слайд 32Римские цифры
I - 1 V
- 5
X -
10 L - 50
C - 100 D - 500
M - 1000
Примеры: XII 12
MM 2000 MileniuM ?
MMMCMXCIX 3999 Max ?
Непозиционные системы счисления
Слайд 33Представление чисел в научном (экспоненциальном) формате
Десятичное
Нормальная Научный
число
форма формат
169,3 0,1693×103 0,1693Е03
-27,8 -0,278×102 - 0,278Е02
0,0017 0,17×10-2 0,17Е-02
-0,0008 -0,8×10-3 - 0,8Е-03
Слайд 34Перевести год своего рождения из 10-й в 2-ю и 16-ю
систему счисления.
Перевести следующие числа из 2-ой в 10-ю систему счисления:
10101011
11011,011
11,11
(отрицательное число)
3. Перевести следующие числа из 10-ой системы счисления в 2-ю:
12345
-709,625
1024,14
Домашнее задание № 2
Слайд 36Реляционные базы данных
РБД – это связанная информация в виде двумерных
таблиц
Синонимы:
строка = запись
столбец = поле
таблица = ( файл,
отношение)
Слайд 37Особенности таблиц РБД
Порядок строк (записей) - произволен.
Все столбцы
(поля) – поименованы и пронумерованы.
Каждая строка, каждой таблицы –
уникальна.
Столбец, который однозначно идентифицирует каждую
строку называется – первичный ключ (primary key).
Primary key – обеспечивает целостность данных.
Слайд 38Характеристики и требования к СУБД
Производительность
- время выполнения запросов
- время выполнения
операций импортирования БД из других форматов
Обеспечение целостности данных на уровне
БД
- встроенные средства для назначения первичного ключа
- средства поддержания ссылочной целостности
Обеспечение безопасности
- шифрование данных и программ
- защита паролем
- ограничение уровня доступа
Слайд 39 Работа в многопользовательских средах
- блокировка БД,
файлов, записей, полей
5. Импорт - экспорт
- возможность
обработки СУБД информации, подготовленной другими
программами и наоборот
6. Инструментальные средства разработки прикладного ПО
- язык программирования
- средства реализации меню, экранных форм, ввода-вывода и генерации
отчетов
7. Доступ к данным с помощью SQL
Характеристики и требования к СУБД
SQL – Structured Query Language (Структурированный язык запросов).
Используется при работе с реляционными БД во всех современных СУБД:
FoxPro, Paradox, MySQL, MS Access, IBM DB2
SQL – стандарт ANSI, ISO архитектуры Файл-Сервер и Клиент-Сервер.
Слайд 40Централизованные базы данных
Удаленный (сетевой) доступ – 2 классические архитектуры
Файл-сервер
Сервер СУБД
Файл
- сервер
Клиент - сервер
Хранение файлов
Обработка файлов
Передача файлов БД
Передача данных извлеченных
из БД
СУБД – программный комплекс, предназначенный для реализации всей
совокупности функций, связанных с созданием и эксплуатацией БД.
Рабочие станции
Рабочие станции
Слайд 41SQL запросы
Запрос наиболее часто используемый аспект SQL. Есть USERs, которые
только запросы (из всего языка SQL) и используют.
Рассмотрим строку таблицы.
Проверим - является ли эта строка одной из строк которая нам нужна.
Если да, сохраним ее где-нибудь пока вся таблица не будет проверена.
Проверим имеются ли другие строки в таблице.
Если имеются, возвратимся к шагу 1.
Если строк больше нет, выведем все значения сохраненные на шаге 3.
Алгоритм выборки
Слайд 42Пример базы данных
Таблица 2. Customers (Покупатели)
Таблица 1. Salespeople (Продавцы)
Таблица 3.
Orders (Заказы)
Слайд 43 ======== SQL Execution Log
==========
| SELECT snum, sname, sity, 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 |
==================================
SELECT * FROM Salespeople;
SQL запросы
Команда SELECT
наиболее часто используемый аспект SQL
SELECT snum,sname,city,comm FROM Salespeople;
Выбор определенных столбцов
= SQL Execution Log =
| SELECT snum, comm |
| FROM Salespeople; |
| ==================
| snum comm |
| ------ ------- |
| 1001 0.12 |
| 1002 0.13 |
| 1004 0.11 |
| 1007 0.15 |
| 1003 0.10 |
==================
= SQL Execution Log ==
| SELECT sname, сomm |
| FROM Salespeople; |
| ==================|
| sname comm |
| ---------- ------- |
| Peel 0.12 |
| Serres 0.13 |
| Motika 0.11 |
| Rifkin 0.15 |
| Axelrod 0.10 |
===================
Перестановка столбцов
========= SQL Execution Log
========
| SELECT odate, snum, onum, amt |
| FROM Orders; |
| ------------------------------------------------------------|
| odate snum onum amt |
| ----------- ------- ------ ---------- |
| 10/03/2008 1007 3001 18.69 |
| 10/03/2008 1001 3003 767.19 |
| 10/03/2008 1004 3002 1900.10 |
| 10/03/2008 1002 3005 5160.45 |
| 10/03/2008 1007 3006 1098.16 |
| 10/04/2008 1003 3009 1713.23 |
| 10/04/2008 1002 3007 75.75 |
| 10/05/2008 1001 3008 4723.00 |
| 10/06/2008 1002 3010 1309.95 |
| 10/06/2008 1001 3011 9891.88 |
==================================
Слайд 46SQL запросы
Устранение
избыточных строк
= SQL Execution Log
| SELECT snum |
| FROM Orders; |
| -------------------------------|
| snum |
| ------- |
| 1007 |
| 1001 |
| 1004 |
| 1002 |
| 1007 |
| 1003 |
| 1002 |
| 1001 |
| 1002 |
| 1001 |
==================
==== SQL Execution Log ====
| SELECT DISTINCT snum |
| FROM Orders; |
| -------------------------------------------|
| snum |
| ------- |
| 1007 |
| 1001 |
| 1004 |
| 1002 |
| 1003 |
=========================
Ключевое слово DISTINCT
Слайд 47Домашнее задание №3
4. Напишите команду SELECT, которая вывела бы рейтинг
(rating),
сопровождаемый именем каждого покупателя в San Jose.
5.
Напишите запрос, который вывел бы значения snum всех продавцов в
текущем порядке из таблицы Orders без каких бы то ни было повторений.
Напишите команду SELECT, которая бы вывела номер заказа, сумму,
и дату для всех строк из таблицы Orders.
2. Напишите запрос, который вывел бы все строки из таблицы Customers,
с номером продавца = 1001.
3. Напишите запрос, который вывел бы таблицу со столбцами в следующем
порядке: city, sname, snum, comm.
Слайд 48SQL запросы Квалифицированный
выбор строк
Ключевое слово WHERE
======= SQL Execution Log =======
| SELECT
sname, city |
| FROM Salespeople |
| WHERE city = 'London' |
| ============================= |
| sname city |
| ------- ---------- |
| Peel London |
| Motika London |
===============================
city = ‘London’
Условие
(предикат)
Слайд 49SQL запросы Квалифицированный
выбор строк
Ключевое слово WHERE
=============== SQL Execution Log ==========
| SELECT *
|
| FROM Customers |
| WHERE rating = 100; |
| ======================================== |
| сnum cname city rating snum |
| ------ -------- ------ ---- ------ |
| 2001 Hoffman London 100 1001 |
| 2006 Clemens London 100 1001 |
| 2007 Pereira Rome 100 1001 |
==========================================
rating = 100
Условие
Слайд 50SQL запросы
Операторы
отношения и логические операторы
Операторы отношения (Реляционные операторы)
Логические операторы (Булевы операторы)
= -
равно
> - больше
< - меньше
>= - больше или равно
<= - меньше или равно
<> - не равно
AND - логическое И
OR - логическое ИЛИ
NOT - логическое НЕ
Слайд 51SQL запросы
Составное
условие
| сnum cname city
rating snum |
| ------ -------- -------- ---- ----- |
| 2008 Cirneros San Jose 300 1007 |
========================================
WHERE
city = ‘San Jose’ AND rating > 200
Составное условие
=========== SQL Execution Log ============
| SELECT * |
| FROM Customers |
| WHERE city = 'San Jose' |
| AND rating > 200; |
========================================
Слайд 52SQL запросы
Составное
условие
city = ‘San Jose’ OR rating > 200
| сnum
cname city rating snum |
| ------ -------- -------- ---- ----- | | 2003 Liu San Jose 200 1002 |
| 2004 Grass Berlin 300 1002 |
| 2008 Cirneros San Jose 300 1007 |
========================================
=========== SQL Execution Log ============
| SELECT * |
| FROM Customers |
| WHERE city = 'San Jose' |
| OR rating > 200; |
| ====================================== |
Составное условие
Слайд 53SQL запросы
Составное
условие
city = NOT ( ‘San Jose’ OR rating > 200
)
| сnum cname city rating snum |
| ------ -------- -------- ---- ----- | | 2001 Hoffman London 100 1001 | | 2002 Giovanni Rome 200 1003 | | 2006 Clemens London 100 1001 | | 2007 Pereira Rome 100 1004 |
========================================
=========== SQL Execution Log ============
| SELECT * |
| FROM Customers |
| WHERE NOT ( city = 'San Jose' |
| OR rating > 200); |
| ====================================== |
Слайд 54Домашнее задание №4
7. Напишите запрос, который выведет поля sname
и city для всех
продавцов в
Лондоне с комиссионными выше 0.10 .
6. Напишите запрос, который выведет все заказы со значениями суммы выше чем 1000.
8. Напишите запрос к таблице Покупатели, который определит всех
покупателей с рейтингом =< 100, если они не в Риме.
9. Что может быть выведено в результате следующего запроса ?
SELECT * FROM Orders
WHERE NOT ((odate = 10/03/2008 OR snum > 1006)
AND amt > = 1500 );
10. Как можно проще переписать такой запрос ?
SELECT snum, sname, city, comm
FROM Salespeople
WHERE ( comm > + 0.12 OR comm < 0.14 );
Слайд 55SQL запросы
Специальные
операторы для использования в условиях
IN - в списке (перечне)
BETWEEN - между
LIKE - подобно
(похоже)
IS NULL - пусто (не определено)
Слайд 56SQL запросы
Специальный
оператор IN
SELECT *
FROM Salespeople
WHERE city = 'Barcelona' OR city = 'London';
SELECT *
FROM Salespeople
WHERE city IN ( 'Barcelona', 'London' );
Проще
Слайд 57SQL запросы
Специальный
оператор IN
=========== SQL Execution Log ============
| SELECT * |
| FROM Customers |
| WHERE snum IN ( 1001, 1007, 1004 ); |
| ====================================== |
| snum cname city rating snum |
| ------ -------- ------ ---- ------ |
| 2001 Hoffman London 100 1001 |
| 2006 Clemens London 100 1001 |
| 2008 Cisneros San Jose 300 1007 |
| 2007 Pereira Rome 100 1004 |
========================================
WHERE snum IN ( 1001, 1007, 1004);
Слайд 58SQL запросы
Специальный
оператор BETWEEN
======== SQL Execution Log ===========
| SELECT * |
| FROM Salespeople |
| WHERE comm BETWEEN 0.10 AND 0.12; |
| ===================================|
| snum sname city comm |
| ------ ---------- ----------- ------- |
| 1001 Peel London 0.12 |
| 1004 Motika London 0.11 |
| 1003 Axelrod New York 0.10 |
====================================
WHERE comm BETWEEN 0.10 AND 0.12;
Слайд 59SQL запросы
Специальный
оператор BETWEEN
WHERE cname BETWEEN ‘A’ AND ‘G’;
============ SQL Execution Log
===========
| 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 |
========================================
Слайд 60SQL запросы
Специальный
оператор LIKE
Имеются два типа групповых символов используемых с LIKE:
символ подчеркивания ( _ ) замещает любой одиночный символ.
Например, 'b_t' будет соответствовать словам 'bat' или 'bit', но не будет соответствовать 'brat'.
знак процента (%) замещает последовательность любого числа символов.
Например '%p%t' будет соответствовать словам 'put', 'posit', или 'opt', но не 'spite'.
Слайд 61SQL запросы
Специальный
оператор LIKE (примеры)
= SQL Execution Log =
| SELECT
cname |
| FROM Salespeople |
| WHERE cname |
| LIKE ‘P__L%'; |
| ===================
| cname |
| ------ |
| Peel |
====================
WHERE cname LIKE 'G%';
WHERE cname LIKE ‘P__L%';
============ SQL Execution Log ===========
| SELECT * |
| FROM Customers |
| WHERE cname LIKE 'G%'; |
| ====================================== |
| cnum cname city rating snum |
| ------ -------- ------ ---- ------ |
| 2002 Giovanni Roma 200 1003 |
| 2004 Grass Berlin 300 1002 |
========================================
Слайд 62SQL запросы
Специальный
оператор IS NULL (примеры)
SELECT *
FROM Customers WHERE city IS NULL;
============ SQL Execution Log ===========
| SELECT * |
| FROM Customers |
| WHERE city NOT NULL; |
| ====================================== |
cnum cname city rating snum
2001 Hoffman London 100 1001
2002 Giovanni Rome 200 1003
2003 Liu San Jose 200 1002
2004 Grass Berlin 300 1002
2006 Clemens London 100 1001
2008 Cisneros San Jose 300 1007
2007 Pireira Rome 100 1004
Слайд 63Домашнее задание №5
11.Напишите два запроса, которые могли бы вывести все
заказы на 3 и
4 Октября
2008.
12.Напишите запрос, который выберет всех заказчиков, обслуживаемых про-
давцами Peel или Motika. ( Подсказка: поле snum связывает вторую
таблицу с первой ) .
13.Напишите запрос, который может вывести всех заказчиков, чьи имена
начинаются с буквы попадающей в диапазон от A до G.
14.Напишите запрос, который выберет всех покупателей чьи имена начи-
наются с буквы C.
15.Напишите запрос который выберет все заказы, имеющие нулевые значе-
ния или NULL в поле amt (сумма).
Слайд 64SQL запросы
Агрегатные
функции
COUNT - подсчитывает число не нулевых значений поля
выбранных в запросе строк
SUM - вычисляет арифметическую сумму всех выбранных значений данного (числового) поля
AVG - вычисляет среднее значение всех выбранных значений данного (числового) поля
MAX - находит максимальное из всех выбранных значений данного поля
MIN - находит минимальное из всех выбранных значений данного поля
Слайд 65SQL запросы
Агрегатные
функции SUM и AVG (примеры)
= SQL Execution Log =
| SELECT SUM (amt) |
| FROM Orders |
| ===================
| ---------- |
| 26658.4 |
====================
= SQL Execution Log =
| SELECT AVG (amt) |
| FROM Orders |
| ===================
| --------- |
| 2665.84 |
====================
Слайд 66SQL запросы
Агрегатная
функция COUNT (примеры)
= SQL Execution Log =
| SELECT
COUNT (*) |
| FROM Customers |
| ===================
| ------ |
| 7 |
====================
======= SQL Execution Log ======
| SELECT COUNT (DISTINCT snum) |
| FROM Orders |
| ============================= |
| ------ |
| 5 |
===============================
Слайд 67SQL запросы
Вспомогательные
операторы
GROUP BY - позволяет определять подмножества значений отдельного поля и
применять функции агрегирования к полученному подмножеству
HAVING - определяет критерий, по которому определенные группы строк исключаются из числа выходных данных
Слайд 68SQL запросы
Вспомогательный
оператор GROUP BY (пример)
==== SQL Execution Log =====
|
SELECT snum, MAX (amt) | | FROM Orders | | GROUP BY snum; | | ========================= |
| snum | | ------ ----------- | | 1001 9891.88 | | 1002 5160.45 | | 1003 1713.23 | | 1004 1900.10 | | 1007 1098.16 | ===========================
Максимальная сумма продажи у каждого продавца
Слайд 69SQL запросы
Вспомогательный
оператор HAVING (пример)
===== SQL Execution Log =======
|SELECT snum,
odate, MAX (amt) | | FROM Orders | | GROUP BY snum, odate |
| HAVING MAX(amt) > 3000.00; | |============================ |
| snum odate | | ------ ---------- -------- | | 1001 10/05/2008 4723.00 | | 1001 10/06/2008 9891.88 | | 1002 10/03/2008 5160.45 | =============================
===== SQL Execution Log =======
|SELECT snum, odate, MAX (amt) | | FROM Orders | | GROUP BY snum, odate; | |============================ | | snum odate | | ------ ---------- -------- | | 1001 10/03/2008 767.19 | | 1001 10/05/2008 4723.00 | | 1001 10/06/2008 9891.88 | | 1002 10/03/2008 5160.45 | | 1002 10/04/2008 75.75 | | 1002 10/06/2008 1309.95 | | 1003 10/04/2008 1713.23 | | 1004 10/03/2008 1900.10 | | 1007 10/03/2008 1098.16 | =============================
Слайд 70Домашнее задание №6
16. Напишите запрос который сосчитает число всех заказов,
сделанных
3 октября.
17. Напишите запрос который
сосчитал бы число различных не-NULL значе-
ний поля city в таблице Покупателей.
18. Напишите запрос который выбрал бы наименьшую сумму для каждого
покупателя.
19. Напишите запрос который бы выбирал покупателей в алфавитном
порядке, чьи имена начинаются с буквы G.
20. Напишите запрос который выбрал бы высший рейтинг в каждом городе.
Слайд 71SQL запросы
Форматирование
результатов (отчеты)
Использование выражений (*,/,+,-)
Вставка комментариев (‘…’)
Упорядочивание строк (ORDER BY,
ASC, DESC, по номеру столбца)
Слайд 72SQL запросы
Форматирование
результатов (примеры)
===== SQL Execution Log ===============
| SELECT
snum, sname, city, comm * 100, ‘%’ | | FROM Salespeople; |
|=====================================|
| snum sname city | | ------ -------- ----------- ------- ---- | | 1001 Peel London 12.00 % |
| 1002 Serres San Jose 13.00 % |
| 1004 Motika London 11.00 % |
| 1007 Rifkin Barcelona 15.00 % |
| 1003 Axelrod New York 10.00 % |
========================================
Слайд 73SQL запросы
Форматирование
результатов (примеры)
============ SQL Execution Log =========
| SELECT ‘На', odate, ', ' сделано заказов ' , |
| COUNT (DISTINCT onum), ' шт ' |
| FROM Orders |
| GROUP BY odate; |
|===================================== |
| odate |
| ------ ---------- - ------------------------ ------ ---- |
| На 10/03/2008 , сделано заказов 5 шт. |
| На 10/04/2008 , сделано заказов 2 шт. |
| На 10/05/2008 , сделано заказов 1 шт. |
| На 10/06/2008 , сделано заказов 2 шт. |
=======================================
Слайд 74SQL запросы
Форматирование
результатов (примеры)
========== SQL Execution Log ===========
| SELECT * FROM Orders |
| ORDER BY cnum DESC, amt DESC; |
|======================================
| onum amt odate cnum snum |
| ------ -------- ---------- ----- ----- |
| 3006 1098.16 10/03/2008 2008 1007 |
| 3001 18.69 10/03/2008 2008 1007 |
| 3002 1900.10 10/03/2008 2007 1004 |
| 3011 9891.88 10/06/2008 2006 1001 |
| 3008 4723.00 10/05/2008 2006 1001 |
| 3010 1309.95 10/06/2008 2004 1002 |
| 3007 75.75 10/04/2008 2004 1002 |
| 3005 5160.45 10/03/2008 2003 1002 |
| 3009 1713.23 10/04/2008 2002 1003 |
| 3003 767.19 10/03/2008 2001 1001 |
=======================================
Слайд 75SQL запросы
Форматирование
результатов (примеры)
==== SQL Execution Log ====|
| SELECT sname, comm |
| FROM Salespeople |
| ORDER BY 2 DESC; |
| ========================|
| sname comm |
| -------- -------- |
| Rifkin 0.15 |
| Serres 0.13 |
| Peel 0.12 |
| Motika 0.11 |
| Axelrod 0.10 |
==========================
Слайд 7621. Предположим что каждый продавец имеет 12% комиссионных. Напишите запрос
к таблице Заказов, который мог бы вывести номер заказа, номер
продавца, и сумму комиссионных продавца для этого заказа.
22. Напишите запрос к таблице Покупателей, который мог бы найти высший рейтинг в каждом городе. Вывод должен быть в такой форме: Для города (city), высший рейтинг: (rating).
23. Напишите запрос, который выводил бы список покупателей в нисходящем порядке. Вывод поля рейтинга ( rating ) должен сопровождаться именем заказчика и его номером.
24. Напишите запрос который бы выводил общие рейтинги на каждый день и помещал результаты в нисходящем порядке.
Домашнее задание №7
Слайд 77SQL запросы
Объединение
таблиц
Задача. Поставить в соответствие каждому продавцу его покупателей в
городе, в котором они живут.
======== SQL Execution Log ==========
| SELECT Customers.cname, |
| Salespeople.sname, Salespeople.city |
| FROM Salespeople, Customers |
| WHERE Salespeople.city = Customers.city |
| =================================== |
| cname sname city |
| ----------- -------- ----------- |
| Hoffman Peel London |
| Liu Serres San Jose |
| Cisneros Serres San Jose |
| Hoffman Motika London |
| Clemens Motika London | ====================================
Слайд 78SQL запросы
Объединение
более двух таблиц
Найти все заказы покупателей не находящихся в
тех городах, где находятся их продавцы.
=============== SQL Execution Log ==============
| SELECT onum, cname, Orders.cnum, Orders.snum |
| FROM Salespeople, Customers, Orders |
| WHERE Customers.city < > Salespeople.city |
| AND Orders.cnum = Customers.cnum |
| AND Orders.snum = Salespeople.snum; |
| ============================================== |
| onum cname cnum snum |
| ------ ------- ----- ----- | | 3001 Cisneros 2008 1007 |
| 3002 Pereira 2007 1004 |
| 3006 Cisneros 2008 1007 |
| 3009 Giovanni 2002 1003 |
| 3007 Grass 2004 1002 |
| 3010 Grass 2004 1002 | ================================================
Слайд 79SQL запросы
Подзапросы
Задача. Известно только имя продавца Motika. Надо узнать все выполненные
им заказы из таблицы Orders
============ SQL Execution Log ========
| SELECT * |
| FROM Orders |
| WHERE snum = |
| (SELECT snum |
| FROM Salespeople |
| WHERE sname = 'Motika'); | |=====================================|
| onum amt odate cnum snum |
| ----- ------- ---------- ----- ----- |
| 3002 1900.10 10/03/2008 2007 1004 |
======================================
Слайд 80SQL запросы
Объединение
запросов
Используется специальный оператор UNOIN
=== SQL Execution Log ===
| SELECT snum, sname |
| FROM Salespeople |
| WHERE city = 'London' |
| UNION |
| SELECT cnum, cname |
| FROM Customers |
| WHERE city = 'London'; | ========================
| ----- -------- |
| 1001 Peel |
| 1004 Motika |
| 2001 Hoffman |
| 2006 Climens | =========================
Слайд 81Домашнее задание №8
25. Напишите запрос формирующий список номеров заказов сопрово-ждающихся
именем покупателя, который делал эти заказы.
26. Напишите запрос, который
бы выдавал имена продавца и покупателя для каждого заказа после номера заказа.
27. Напишите запрос, который бы выводил всех покупателей обслуживаемых продавцом с комиссионными выше 12%. Выведите имя покупателя, имя продавца, и ставку комиссионных продавца.
28. Напишите запрос который вычислил бы сумму комиссионных продавца для каждого заказа покупателя с рейтингом выше 100.
Слайд 82SQL команды модификации
INSERT ВСТАВИТЬ
UPDATE МОДИФИЦИРОВАТЬ
DELETE УДАЛИТЬ
DML Data Manipulate Language
Слайд 83SQL команды модификации
(примеры)
INSERT INTO Salespeople VALUES (1001, 'Peel', 'London', 0.12);
INSERT INTO Salespeople VALUES (1005, ‘Bogner', ‘Adelaida', 0.11);
Примеры вставки
строк
Примеры удаления строк
INSERT INTO Customers (city, cnamе, cnum) VALUES ('London', 'Honman', 2001);
DELETE FROM Salespeople WHERE snum = 1003;
DELETE FROM Salespeople;
DROP TABLE;
Примеры модификации строк
UPDATE Customers SET rating = 200 WHERE snum = 1001;
UPDATE Customers SET sum = 1004 WHERE snum = 1002;
Слайд 84SQL команды создания и удаления объектов БД
CREATE TABLE СОЗДАТЬ ТАБЛИЦУ
DROP TABLE УДАЛИТЬ
ТАБЛИЦУ
CREATE INDEX СОЗДАТЬ ИДЕКС
DROP INDEX УДАЛИТЬ ИНДЕКС
CREATE VIEW СОЗДАТЬ ПРЕДСТАВЛЕНИЕ
DDL Data Definision Language
Слайд 85SQL команды создания и удаления объектов (примеры)
CREATE TABLE Salespeople
(
snum integer, NOT NULL PRIMARY KEY
sname char (10), NOT NULL UNIQUE
city char (10),
comm declmal );
CREATE UNIQUE INDEX Custid ON Customers (cnum);
DROP INDEX имя индекса;
DROP TABLE имя таблицы;
Добавочные ограничения
Слайд 86SQL команды создания объектов (примеры)
CREATE VIEW Londonstaff
AS SELECT *
FROM
Salespeople
WHERE City = ‘London’
Представление Londonstaff
Слайд 87SQL команды предоставления стандартных привилегий
GRANT ПРЕДОСТАВИТЬ
REVOKE ЛИШИТЬ
SELECT, UPDATE, INSERT, DELETE, ALL
Что?
Чего?
Слайд 88SQL команды предоставления стандартных привилегий (примеры)
Предоставление кому-то чего-то:
GRANT SELECT
ON Customers TO Marie;
GRANT UPDATE (city, comm) ON Salespeople TO
Dima;
GRANT ALL PRIVILEGES ON Customers TO George;
Предоставление всем чего-то:
GRANT SELECT ON Orders TO PUBLIC;
Лишение кого-то чего-то:
REVOKE INSERT, DELETE ON Customers FROM George;