Слайд 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
Отношения
Один-к-одному
Один-ко-многим
Многие-ко-многим
Слайд 15
SQL
structured query language — «язык структурированных запросов»
Создание в базе данных новой
таблицы;
Добавление в таблицу новых записей;
Изменение записей;
Удаление записей;
Выборка записей из одной или нескольких таблиц (в соответствии с заданным условием);
Изменение структур таблиц.
Слайд 16
Data Definition Language, DDL
CREATE создает объект БД (саму базу, таблицу, представление,
пользователя и т. д.),
ALTER изменяет объект,
DROP удаляет объект;
Слайд 17
Data Manipulation Language, DML
SELECT считывает данные, удовлетворяющие заданным условиям,
INSERT добавляет новые
данные,
UPDATE изменяет существующие данные,
DELETE удаляет данные;
Слайд 18
Data Control Language, DCL
GRANT предоставляет пользователю (группе) разрешения на определенные операции
с объектом,
REVOKE отзывает ранее выданные разрешения,
DENY задает запрет, имеющий приоритет над разрешением;
Слайд 19
Transaction Control Language, TCL
COMMIT применяет транзакцию,
ROLLBACK откатывает все изменения, сделанные
в контексте текущей транзакции,
SAVEPOINT делит транзакцию на более мелкие участки
Слайд 20
SQL?
Независимость от конкретной СУБД
Наличие стандартов
Декларативность
Слайд 21
SQL?
Независимость от конкретной СУБД
Наличие стандартов (Никто не соблюдает)
Декларативность (Сложность)
Несоответствие реляционной модели
данных
Сложность работы с иерархическими структурами
Слайд 22
Пример
Проектируем адресную книгу
Слайд 23
Пример
Дополнительные данные
Порядок строк!
Слайд 24
Слайд 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;