- •Банки и базы данных. Модели данных. Системы управления базами данных
- •Введение
- •Система баз данных
- •Файловые системы
- •Структуры файлов
- •Именование файлов
- •Понятие БД и СУБД
- •Система баз данных
- •Понятие СУБД
- •Уровни абстракции в СУБД. Функции абстрактных данных
- •Функции СУБД
- •Экспертные системы и базы знаний
- •Экспертные системы и базы знаний
- •Классификация баз данных
- •1) Классификация БД по модели представления данных:
- •1) Классификация БД по модели представления данных:
- •1) Классификация БД по модели представления данных:
- •1) Классификация БД по модели представления данных:
- •2) Классификация БД по организации хранения данных и обращения к ним :
- •3) Классификация БД по типу хранимой информации:
- •Свойства БД
- •Компоненты СУБД
- •Логическое и физическое описание данных
- •Компоненты банка данных
- •Требования,
- •Компоненты инфологической модели
- •ПОСТРОЕНИЕ МОДЕЛИ
- •Связи «объект - свойство»
- •Модель сущность-связь
- •Модель сущность-связь
- •Три типа бинарных связей
- •Более сложные элементы модели сущность-связь
- •Более сложные элементы модели сущность-связь
- •Диаграммы сущность- связь
- •Общие характеристики ранних систем
- •Системы, основанные на инвертированных списках
- •Структуры данных на инвертированных списках
- •Манипулирование данными
- •Иерархическая модель
- •Иерархические структуры данных
- •Ограничения целостности в иерархической модели
- •Сетевая модель
- •Сетевые структуры данных
- •Основные достоинства и недостатки ранних СУБД
- •История реляционной модели
- •Недостатки реляционной модели
- •Основные определения
- •Основные определения
- •Эквиваленты
- •Ограничения
- •Ограничения
- •Языки манипулирования данными
- •Получение реляционной схемы из ER-схемы
- •Получение реляционной схемы из ER-схемы
- •Реляционная алгебра
- •Традиционные операции
- •Специальные операции
- •Специальные операции
- •Свойства операций реляционной алгебры
- •Реляционное исчисление
- •Разница между реляционной алгеброй и реляционным исчислением
- •Алгебраическая версия этого запроса
- •Этот же запрос в терминах реляционного исчисления
- •Вывод
- •Зачем нужна нормализация
- •Нормальные формы
- •Нормальные формы
- •Определение
- •Функциональная
- •1-я нормальная форма
- •2-я нормальная форма
- •3-я нормальная форма
- •Нормальная форма Бойса- Кодда
- •4-я нормальная форма
- •5-я нормальная форма
- •Доменно-ключевая нормальная форма
- •История SQL
- •История SQL
- •Некоторые популярные диалекты SQL:
- •Достоинства языка SQL:
- •Синтаксические
- •Соглашения об именах
- •Правила создания идентификаторов
- •Константы
- •Операторы
- •Категории операторов:
- •Арифметические
- •Оператор присваивания
- •Побитовые операторы
- •Операторы сравнения
- •Логические операторы
- •Унарные операторы
- •Приоритет операторов
- •Язык определения данных
- •Типы данных
- •Типы данных
- •Типы данных
- •Создание домена
- •Изменение домена
- •Схема
- •Создание таблицы
- •Параметры
- •Изменение таблицы
- •Изменение таблицы
- •Изменение таблицы
- •Язык манипулирования данными
- •Оператор INSERT
- •Оператор UPDATE
- •Оператор DELETE
- •Оператор SELECT
- •Оператор SELECT
- •Агрегатные функции в SQL
- •Виды агрегатный функций
- •Использование агрегатных функций
- •Выполнение агрегатных функций
- •Группировка для агрегатных функций
- •Использование HAVING
- •Проекция и выборка
- •Декартовое произведение
- •Предварительные
- •Локальная автономия
- •Независимость от центрального узла
- •Непрерывное функционирование
- •Независимость от расположения
- •Независимость от фрагментации
- •Независимость от репликации
- •Обработка распределенных запросов
- •Управление распределенными транзакциями
- •Распространение
- •Распределенные базы данных и Интернет.
- •Системы типа клиент/сервер
- •Серверы баз данных
- •БАЗЫ ДАННЫХ В INTERNET
- •Обзор ПТК данного вида
- •Техническое задание на разработку структур ПТК
- •Требования к ПТК
- •Требования к ПТК
- •Требования к ПТК
- •Эскизный проект структуры ПО ПТК
- •Эксплуатация баз данных. Защита баз данных. Управление транзакциями. Управление параллельным доступом. Заключение.
- •Понятие восстановления системы
- •Понятие транзакции
- •Восстановление
- •Свойства АСИД
- •Восстановление после отказов системы
- •Параллелизм. Проблемы параллелизма
- •Проблема потери результатов обновления
- •Проблема незафиксированной зависимости
- •Проблема несовместимого анализа
- •Понятие блокировки
- •Решение проблем параллелизма
- •Проблема потери результатов обновления
- •Проблема незафиксированной зависимости
- •Проблема незафиксированной зависимости
- •Тупиковые ситуации
- •СПАСИБО ЗА ВНИМАНИЕ !
Оператор SELECT
Если вы хотите видеть каждый столбец таблицы, имеется необязательное сокращение которое вы можете использовать. Звездочка (*) может применяться для вывода полного списка столбцов следующим образом:
SELECT * FROM Salespeople;
Агрегатные функции в SQL
Агрегатные функции предназначены для того, чтобы вычислять некоторое значение для заданного множества строк. Таким множеством строк может быть группа строк, если агрегатная функция применяется к сгруппированной таблице, или вся таблица.
Виды агрегатный функций
COUNT - производит номера строк или не-NULL значения полей которые выбрал запрос.
SUM - производит арифметическую сумму всех выбранных значений данного пол.
AVG - производит усреднение всех выбранных значений данного пол.
MAX - производит наибольшее из всех выбранных значений данного пол.
MIN - производит наименьшее из всех выбранных значений данного пол.
Использование агрегатных функций
SELECT {COUNT | MAX | MIN | SUM | AVG}
(* [ALL|DISTINCT] <имя столбца>, …) FROM <имя таблицы>
WHERE <условие>
GROUP BY <имя столбца>, … | HAVING
<условие>;
Выполнение агрегатных функций
Заказы |
|
|
|
|
|
|
----------------------------------------------- |
||||||
ONUM |
| |
AMT |
| |
ODATE |
| CNUM |
| SNUM |
------- |
| |
----------- |
| |
------------- |
|------ |
|------ |
3001 |
| |
18.69 |
| |
10/03/1990 |
| 2008 |
| 1007 |
3003 |
| |
767.19 |
| |
10/03/1990 |
| 2001 |
| 1001 |
3002 |
| |
1900.10 |
| |
10/03/1990 |
| 2007 |
| 1004 |
3005 |
| |
5160.45 |
| |
10/03/1990 |
| 2003 |
| 1002 |
3006 |
| |
1098.16 |
| |
10/03/1990 |
| 2008 |
| 1007 |
3009 |
| |
1713.23 |
| |
10/04/1990 |
| 2002 |
| 1003 |
3007 |
| |
75.75 |
| |
10/04/1990 |
| 2004 |
| 1002 |
3008 |
| |
4723.00 |
| |
10/05/1990 |
| 2006 |
| 1001 |
3010 |
| |
1309.95 |
| |
10/06/1990 |
| 2004 |
| 1002 |
3011 |
| |
9891.88 |
| |
10/06/1990 |
| 2006 |
| 1001 |
----------------------------------------------- |
|
|
SELECT SUM ((amt)) FROM Orders; |
- |
26658.4 |
SELECT AVG ((amt)) FROM Orders; |
- |
2665.84 |
SELECT MAX ((amt)) FROM Orders; |
- |
9891.88 |
SELECT MIN ((amt)) FROM Orders; |
- |
18.69 |
SELECT COUNT (*) FROM Orders; - |
11 |
|
Группировка для агрегатных функций
Заказчики |
|
|
|
|
|
|
|
|
|
|
---------------------------------------------- |
|
|
|
|
||||||
CNUM |
| |
CNAME |
| CITY |
| RATING |
| SNUM |
------------------------- |
||||
------- |
| |
------------ |
|--------- |
| |
-------- |
|------ |
CITY |
| RATING | SNUM |
||
2001 |
| |
Hoffman |
| London |
| |
100 |
| 1001 |
--------- |
| |
-------- |
|------ |
2002 |
| |
Giovanni |
| Rome |
| |
200 |
| 1003 |
London |
| |
200 |
| 1001 |
2003 |
| |
Liu |
| SanJose |
| |
200 |
| 1002 |
Rome |
| |
300 |
| 1003 |
2004 |
| |
Grass |
| Berlin |
| |
300 |
| 1002 |
SanJose |
| |
500 |
| 1002 |
2006 |
| |
Clemens |
| London |
| |
100 |
| 1001 |
Berlin |
| |
300 |
| 1002 |
2008 |
| |
Cisneros |
| SanJose |
| |
300 |
| 1007 |
|
|
|
|
2007 |
| |
Pereira |
| Rome |
| |
100 |
| 1004 |
|
|
|
|
Выбрать рейтинг по городам:
SELECT city, SUM(RATING) FROM Clients
GROUP BY city;
Использование HAVING
Предположим, что в предыдущем примере, вы хотели бы увидеть только максимальную сумму приобретений значение которой выше $3000.00
SELECT snum, odate, MAX (amt) FROM Oreders
WHERE MAX ((amt)) > 3000.00 GROUP BY snum, odate;
Проекция и выборка
SELECT [ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] ...}
FROM |
{имя_таблицы_1 | представление} [псевдоним] |
[,{имя_таблицы_2 | представление} [псевдоним], ...]
[WHERE <условие>]
[GROUP BY <имя_столбца_1> [,<имя_столбца_2>, ...] | [HAVING <имя_столбца_1> [,<имя_столбца_2>, ...]]
[ORDER BY <имя_столбца_1> [,<имя_столбца_2>, ...]];
Проекция – это выбор столбцов в любом порядке.
Выборка любой запрос SELECT.
Декартовое произведение
SELECT [ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] ...}
FROM {имя_таблицы_1 | представление} [псевдоним]
,{имя_таблицы_2 | представление} [псевдоним],
...;
Предварительные
замечания
Системы дистрибутивных баз данных состоят из набора узлов, связанных вместе коммуникационной сетью, в которой:
каждый узел обладает своими собственными системами баз данных;
узлы работают согласованно, поэтому пользователь может получить доступ к данным на любом узле сети, как будто все данные находятся на его собственном узле.
