Слайд 2Файловые системы и базы данных
Слайд 3Пример
Нужно хранить и редактировать информацию о сотрудниках
Слайд 4Пример
Нужно хранить и редактировать информацию о сотрудниках
Сотрудники
Отделы
Слайд 5Файловые системы и базы данных
Слайд 6СУБД
Файл-серверные
Клиент-серверные
Встраиваемые
Данные – централизованно, СУБД – локально
Согласованность посредством блокировок
MS Access
Visual FoxPro/FoxPro
Слайд 7СУБД
Файл-серверные
Клиент-серверные
Встраиваемые
Данные – централизованно, СУБД – централизованно
Согласованность средствами СУБД
MySQL, MS SQL Server, Oracle, Firebird,
PostgreSQL
Слайд 8СУБД
Файл-серверные
Клиент-серверные
Встраиваемые
Данные – локально, СУБД – локально
Согласованность не является проблемой
SQLIte, MS SQL Server Compact,
Firebird Embedded
Слайд 9Модель предметной области
Свойства системы:
Статические
Целостность
Открытость
Внутренняя неоднородность
Структурированность
Слайд 10Модель предметной области
Свойства системы:
Динамические
Функциональность
Стимулируемость
Изменчивость
Устойчивость
Слайд 11Модель предметной области
Свойства системы:
Синтетические
Emergence – внезапное появление
Неразделимость
Inherent – согласованность со средой
Целесообразность
Слайд 12Модели
По типу связи между объектами
Иерархические и неиерархические
Направленные и ненаправленные
Односторонние и двусторонние
Равноправные и неравноправные
Слайд 13Реляционные БД (Эдгар Фрэнк Кодд)
Модель является логической, то есть отношения являются логическими (абстрактными),
а не физическими (хранимыми) структурами;
Для реляционных баз данных верен информационный принцип: всё информационное наполнение базы данных представлено одним и только одним способом, а именно — явным заданием значений атрибутов в кортежах отношений; в частности, нет никаких указателей (адресов), связывающих одно значение с другим;
Наличие реляционной алгебры позволяет реализовать декларативное программирование и декларативное описание ограничений целостности, в дополнение к навигационному (процедурному) программированию и процедурной проверке условий.
Слайд 14Отношения
Один-к-одному
Один-ко-многим
Многие-ко-многим
Слайд 15SQL
structured query language — «язык структурированных запросов»
Создание в базе данных новой таблицы;
Добавление
в таблицу новых записей;
Изменение записей;
Удаление записей;
Выборка записей из одной или нескольких таблиц (в соответствии с заданным условием);
Изменение структур таблиц.
Слайд 16Data Definition Language, DDL
CREATE создает объект БД (саму базу, таблицу, представление, пользователя и т. д.),
ALTER
изменяет объект,
DROP удаляет объект;
Слайд 17Data Manipulation Language, DML
SELECT считывает данные, удовлетворяющие заданным условиям,
INSERT добавляет новые данные,
UPDATE изменяет
существующие данные,
DELETE удаляет данные;
Слайд 18Data Control Language, DCL
GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом,
REVOKE
отзывает ранее выданные разрешения,
DENY задает запрет, имеющий приоритет над разрешением;
Слайд 19Transaction Control Language, TCL
COMMIT применяет транзакцию,
ROLLBACK откатывает все изменения, сделанные в контексте
текущей транзакции,
SAVEPOINT делит транзакцию на более мелкие участки
Слайд 20SQL?
Независимость от конкретной СУБД
Наличие стандартов
Декларативность
Слайд 21SQL?
Независимость от конкретной СУБД
Наличие стандартов (Никто не соблюдает)
Декларативность (Сложность)
Несоответствие реляционной модели данных
Сложность работы
с иерархическими структурами
Слайд 22Пример
Проектируем адресную книгу
Слайд 23Пример
Дополнительные данные
Порядок строк!
Слайд 25Типы данных
CHAR или CHAR(n)
VARCHAR(n)
INT
FLOAT
DECIMAL(p) или DECIMAL(p,n)
MONEY (p,n)
DATE
TIME
INTERVAL
DATETIME
BINARY
BYTE
BLOB
Слайд 26Запросы DML
SELECT column1, column2,
FROM table;
SELECT *
FROM table;
Слайд 27Запросы DML
SELECT DISTINCT names
FROM Table;
SELECT ALL names
FROM Table;
Слайд 28Запросы DML
SELECT name, city
FROM people;
WHERE city="LONDON";
SELECT *
FROM Customers
WHERE rating=100;
Слайд 29Реляционные и булевы операторы
= Равный
> Больше чем
< Меньше чем
>= Больше чем или равно
<=
Меньше чем или равно
<> Не равно
SELECT *
FROM Customers
WHERE rating > 200;
Слайд 30Реляционные и булевы операторы
AND
OR
NOT
SELECT *
FROM Customers
WHERE city=‘San Jose’
AND rating > 200;
Слайд 31Запросы DML
SELECT *
FROM Customers
WHERE NOT city=‘San Jose’
OR rating > 200;
Слайд 32Запросы DML
SELECT *
FROM Customers
WHERE NOT (city=‘San Jose’
OR rating > 200);
Слайд 33Запросы DML
SELECT *
FROM People
WHERE city='Barcelona'
OR city='London';
SELECT *
FROM People
WHERE city IN ('Barcelona', 'London' );
Слайд 34Запросы DML
SELECT *
FROM People
WHERE age BETWEEN 20 AND 30;
SELECT *
FROM People
WHERE (age BETWEEN
20 AND 30)
AND NOT age IN (20, 30);
Слайд 35Запросы DML
SELECT *
FROM People
WHERE Name BETWEEN 'A' AND 'G';
Слайд 36Оператор LIKE
LIKE ‘b_t’
LIKE ‘b%t’
Bat
Best
Bite
Слайд 37Запросы DML
SELECT *
FROM People
WHERE Name LIKE ‘G%’;
Слайд 38Запросы DML
Ищем слово: peal или peel
SELECT *
FROM Objects
WHERE Name LIKE ‘p_ _ l%’;
Слайд 39Запросы DML
Ищем символ _
SELECT *
FROM Objects
WHERE name LIKE '%/_%'ESCAPE'/';
Слайд 40Запросы DML
SELECT *
FROM Customers
WHERE city IS NULL;