- •Банки и базы данных. Модели данных. Системы управления базами данных
- •Введение
- •Система баз данных
- •Файловые системы
- •Структуры файлов
- •Именование файлов
- •Понятие БД и СУБД
- •Система баз данных
- •Понятие СУБД
- •Уровни абстракции в СУБД. Функции абстрактных данных
- •Функции СУБД
- •Экспертные системы и базы знаний
- •Экспертные системы и базы знаний
- •Классификация баз данных
- •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
- •Обзор ПТК данного вида
- •Техническое задание на разработку структур ПТК
- •Требования к ПТК
- •Требования к ПТК
- •Требования к ПТК
- •Эскизный проект структуры ПО ПТК
- •Эксплуатация баз данных. Защита баз данных. Управление транзакциями. Управление параллельным доступом. Заключение.
- •Понятие восстановления системы
- •Понятие транзакции
- •Восстановление
- •Свойства АСИД
- •Восстановление после отказов системы
- •Параллелизм. Проблемы параллелизма
- •Проблема потери результатов обновления
- •Проблема незафиксированной зависимости
- •Проблема несовместимого анализа
- •Понятие блокировки
- •Решение проблем параллелизма
- •Проблема потери результатов обновления
- •Проблема незафиксированной зависимости
- •Проблема незафиксированной зависимости
- •Тупиковые ситуации
- •СПАСИБО ЗА ВНИМАНИЕ !
Создание таблицы
CREATE TABLE [ IF NOT EXISTS ] <имя_таблицы>
(
<имя столбца_1> <тип данных> [ DEFAULT expression ] [ {NULL | NOT NULL} ] [ {INDEX_BLIST | INDEX_NONE} ],
<имя столбца_2> <тип данных> [ DEFAULT expression ] [ {NULL |
... NOT NULL} ] [ {INDEX_BLIST | INDEX_NONE} ],
<имя столбца_N> <тип данных> [ DEFAULT expression ] [ {NULL | NOT NULL} ] [ {INDEX_BLIST | INDEX_NONE} ],
[ CONSTRAINT <имя ограничения> ]
PRIMARY KEY ( <имя столбца_1>, <имя столбца_2>, ... ) | FOREIGN KEY (<имя столбца_1>, <имя столбца_2>, ... )
REFERENCES <имя_таблицы_2> [ (<имя столбца_1>, <имя столбца_2>, ... ) ] [ ON UPDATE {NO ACTION | SET NULL | SET DEFAULT | CASCADE} ] [ ON DELETE {NO ACTION | SET NULL | SET DEFAULT | CASCADE} ] |
UNIQUE (<имя столбца_1>, <имя столбца_2>, ... ) |
CHECK ( <условие> ) [ {INITIALLY DEFERRED | INITIALLY IMMEDIATE} ); ] [ {NOT DEFERRABLE | DEFERRABLE} ]
Параметры
DEFAULT expression – значение по умолчанию;
NULL | NOT NULL – разрешается ли пустое поле;
INDEX_BLIST | INDEX_NONE – есть или нет индекса;
CONSTRAINT – ограничение
PRIMARY KEY – первичный ключ
FOREIGN KEY – вторичный ключ
ON DELETE – при удалении в родительской таблице
ON UPDATE – при обновлении в родительской таблице
NO ACTION – нет действий
SET NULL – устанавливается значение NULL
SET DEFAULT – устанавливается значение по умолчанию
CASCADE – каскадно
UNIQUE – уникальный
CHECK – проверка
Изменение таблицы
Переименование таблицы
ALTER TABLE <имя_таблицы> RENAME TO <новое_имя_таблицы>Переименование столбца
ALTER TABLE <имя_таблицы> RENAME [ COLUMN ] <имя_столбца> TO <новое_имя_столбца>
Добавление столбца
ALTER TABLE <имя_таблицы> ADD [COLUMN] <имя_столбца> <тип_данных> [ DEFAULT expression ] [ {NULL | NOT NULL} ] [ {INDEX_BLIST | INDEX_NONE} ]
Добавление первичного ключа ограничения к таблице
ALTER TABLE <имя_таблицы> ADD [ CONSTRAINT <имя ограничения> ]
PRIMARY KEY ( <имя столбца_1>, <имя столбца_2>, ... )
Изменение таблицы
Добавление вторичного ключа ограничения к таблице
ALTER TABLE <имя_таблицы> ADD [ CONSTRAINT <имя ограничения> ]
FOREIGN KEY (<имя столбца_1>, <имя столбца_2>, ... ) REFERENCES <имя_таблицы_2> [ (<имя столбца_1>, <имя столбца_2>, ... ) ]
[ ON UPDATE {NO ACTION | SET NULL | SET DEFAULT | CASCADE} ] [ ON DELETE {NO ACTION | SET NULL | SET DEFAULT | CASCADE} ]
Добавление уникального поля к таблице
ALTER TABLE <имя_таблицы> ADD [ CONSTRAINT <имя ограничения> ]
UNIQUE (<имя столбца_1>, <имя столбца_2>, ... )Изменение типа данных столбца
ALTER TABLE <имя_таблицы> MODIFY "column 1" "New Data Type"
Изменение таблицы
Изменение столбца ограничений столбца
ALTER TABLE <имя_таблицы> ALTER [COLUMN] column_name SET default_expr
ALTER TABLE <имя_таблицы> ALTER [COLUMN] column_name DROP DEFAULT
Удаление столбца
ALTER TABLE <имя_таблицы> DROP [COLUMN] column_nameУдаление ограничения таблицы
ALTER TABLE <имя_таблицы> DROP CONSTRAINT constraint_nameУдаление первичного ключа
ALTER TABLE <имя_таблицы> DROP PRIMARY KEYУдаление таблицы
DROP TABLE [ IF EXISTS ] <имя_таблицы>
Язык манипулирования данными
Воснову языка манипулирования данными входят 4 основных оператора:
SELECT – используется для выборки записей из таблиц;
INSERT –используется для добавления записей в таблицу;
UPDATE – используется для обновления записей таблицы;
DELETE – используется для удаления записей из таблицы.
Оператор INSERT
INSERT INTO <имя_таблицы> [(<имя столбца_1> [, <имя столбца_1> ...])] {VALUES (<значение_1> [,
<значение_2> ...]) | <выражение SELECT>};
Так, например, чтобы ввести строку в таблицу Продавцов, вы можете использовать следующее условие:
1.INSERT INTO Salespeople VALUES (1001, 'Peel', 'London', .12);
2.INSERT INTO Customers (city, cnamе, cnum) VALUES ('London', 'Honman', 2001);
Оператор UPDATE
Теперь, вы должны узнать как изменять некоторые
или все значения в существующей строке. Это выполняется командой UPDATE.
UPDATE TABLE <имя_таблицы>
SET <имя столбца_1> = <значение_1> [, <имя столбца_2> = <значение_2> ...]
[WHERE <условие>];
Например
1.UPDATE Customers SET rating = 200;
2.UPDATE Customers SET rating = 200 WHERE snum = 1001;
3.UPDATE Salespeople SET sname = 'Gibson',city = 'Boston',comm = .10 WHERE snum = 1004;
Оператор DELETE
Вы можете удалять строки из таблицы командой модификации - DELETE. Она может удалять только введенные строки, а не индивидуальные значения полей.
DELETE FROM <имя_таблицы> [WHERE <условие>];
Например
1.DELETE FROM Salespeople WHERE snum = 1003;
2.DELETE FROM Salespeople WHERE city = 'London';
Оператор SELECT
Все запросы в SQL состоят из одиночной команды. Структура этой команды обманчиво проста, потому что вы должны расширять ее так чтобы выполнить высоко сложные оценки и обработки данных.
SELECT [ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] ...}
FROM |
{имя_таблицы_1 | представление} [псевдоним] |
[,{имя_таблицы_2 | представление} [псевдоним], ...] [WHERE <условие>]
[GROUP BY <имя_столбца_1> [,<имя_столбца_2>, ...] | [HAVING <имя_столбца_1> [,<имя_столбца_2>, ...]];
[ORDER BY <имя_столбца_1> [,<имя_столбца_2>, ...]]
