Similar presentations:
Файловые системы и базы данных
1. Базы данных
Лекция 12. Файловые системы и базы данных
Файловая системаБД
Слабое структурирование
?
Высокая скорость
?
Избыточность
?
Противоречивость
?
Нарушение целостности
?
3. Пример
• Нужно хранить и редактироватьинформацию о сотрудниках
№
1
2
ФИО Зарплата
Отдел
Руководитель
Соответствие
4. Пример
• Нужно хранить и редактироватьинформацию о сотрудниках
Сотрудники
№
ФИО Зарплата
Отдел
Соответствие
1
2
Отделы
№
1
2
Руководитель
Зарплата
Численность
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 namesFROM Table;
SELECT ALL names
FROM Table;
28. Запросы DML
SELECT name, cityFROM 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';
ID
Name
1
Alexey
2
Grigoriy
3
Sergey
36. Оператор LIKE
• LIKE ‘b_t’• LIKE ‘b%t’
• Bat
• Best
• Bite
37. Запросы DML
SELECT *FROM People
WHERE Name LIKE ‘G%’;
ID
Name
1
Alexey
2
Grigoriy
3
Sergey
38. Запросы DML
Ищем слово: peal или peelSELECT *
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;
41. Задачи на семестр
• Проект компактной локальной БД сиспользованием SQLite
• Проект БД с использованиям клиентсерверной архитектуры