Базы данных
Файловые системы и базы данных
Пример
Пример
Файловые системы и базы данных
СУБД
СУБД
СУБД
Модель предметной области
Модель предметной области
Модель предметной области
Модели
Реляционные БД (Эдгар Фрэнк Кодд)
Отношения
SQL
Data Definition Language, DDL
Data Manipulation Language, DML
Data Control Language, DCL
Transaction Control Language, TCL
SQL?
SQL?
Пример
Пример
Пример
Типы данных
Запросы DML
Запросы DML
Запросы DML
Реляционные и булевы операторы
Реляционные и булевы операторы
Запросы DML
Запросы DML
Запросы DML
Запросы DML
Запросы DML
Оператор LIKE
Запросы DML
Запросы DML
Запросы DML
Запросы DML
Задачи на семестр
250.44K
Category: databasedatabase

Файловые системы и базы данных

1. Базы данных

Лекция 1

2. Файловые системы и базы данных

Файловая система
БД
Слабое структурирование
?
Высокая скорость
?
Избыточность
?
Противоречивость
?
Нарушение целостности
?

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 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';
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 или 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;

41. Задачи на семестр

• Проект компактной локальной БД с
использованием SQLite
• Проект БД с использованиям клиентсерверной архитектуры
English     Русский Rules