
БД_первая лекция.pptx
- Количество слайдов: 41
Базы данных Лекция 1
Файловые системы и базы данных Файловая система БД Слабое структурирование ? Высокая скорость ? Избыточность ? Противоречивость ? Нарушение целостности ?
Пример • Нужно хранить и редактировать информацию о сотрудниках № 1 2 ФИО Зарплата Отдел Руководитель Соответствие
Пример • Нужно хранить и редактировать информацию о сотрудниках Сотрудники № ФИО Зарплата Отдел Соответствие 1 2 Отделы № 1 2 Руководитель Зарплата Численность
Файловые системы и базы данных Файловая система БД Слабое структурирование Полная доступность Высокая скорость? Избыточность Гибкость Противоречивость Согласованность Нарушение целостности Целостность
СУБД • Файл-серверные • Клиент-серверные • Встраиваемые Данные – централизованно, СУБД – локально Согласованность посредством блокировок MS Access Visual Fox. Pro/Fox. Pro
СУБД • Файл-серверные • Клиент-серверные • Встраиваемые Данные – централизованно, СУБД – централизованно Согласованность средствами СУБД My. SQL, MS SQL Server, Oracle, Firebird, Postgre. SQL
СУБД • Файл-серверные • Клиент-серверные • Встраиваемые Данные – локально, СУБД – локально Согласованность не является проблемой SQLIte, MS SQL Server Compact, Firebird Embedded
Модель предметной области Свойства системы: • Статические – – Целостность Открытость Внутренняя неоднородность Структурированность
Модель предметной области Свойства системы: • Динамические – – Функциональность Стимулируемость Изменчивость Устойчивость
Модель предметной области Свойства системы: • Синтетические – – Emergence – внезапное появление Неразделимость Inherent – согласованность со средой Целесообразность
Модели По типу связи между объектами • Иерархические и неиерархические • Направленные и ненаправленные • Односторонние и двусторонние • Равноправные и неравноправные
Реляционные БД (Эдгар Фрэнк Кодд) • Модель является логической, то есть отношения являются логическими (абстрактными), а не физическими (хранимыми) структурами; • Для реляционных баз данных верен информационный принцип: всё информационное наполнение базы данных представлено одним и только одним способом, а именно — явным заданием значений атрибутов в кортежах отношений; в частности, нет никаких указателей (адресов), связывающих одно значение с другим; • Наличие реляционной алгебры позволяет реализовать декларативное программирование и декларативное описание ограничений целостности, в дополнение к навигационному (процедурному) программированию и процедурной проверке условий.
Отношения • Один-к-одному • Один-ко-многим • Многие-ко-многим
SQL structured query language — «язык структурированных запросов» • Создание в базе данных новой таблицы; • Добавление в таблицу новых записей; • Изменение записей; • Удаление записей; • Выборка записей из одной или нескольких таблиц (в соответствии с заданным условием); • Изменение структур таблиц.
Data Definition Language, DDL • CREATE создает объект БД (саму базу, таблицу, представление, пользователя и т. д. ), • ALTER изменяет объект, • DROP удаляет объект;
Data Manipulation Language, DML • SELECT считывает данные, удовлетворяющие заданным условиям, • INSERT добавляет новые данные, • UPDATE изменяет существующие данные, • DELETE удаляет данные;
Data Control Language, DCL • GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом, • REVOKE отзывает ранее выданные разрешения, • DENY задает запрет, имеющий приоритет над разрешением;
Transaction Control Language, TCL • COMMIT применяет транзакцию, • ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции, • SAVEPOINT делит транзакцию на более мелкие участки
SQL? • Независимость от конкретной СУБД • Наличие стандартов • Декларативность
SQL? Независимость от конкретной СУБД Наличие стандартов (Никто не соблюдает) Декларативность (Сложность) Несоответствие реляционной модели данных • Сложность работы с иерархическими структурами • •
Пример • Проектируем адресную книгу
Пример • Дополнительные данные Порядок строк!
Пример • Первичные ключи
Типы данных • • • • CHAR или CHAR(n) VARCHAR(n) INT FLOAT DECIMAL(p) или DECIMAL(p, n) MONEY (p, n) DATE TIME INTERVAL DATETIME BINARY BYTE BLOB
Запросы DML SELECT column 1, column 2, FROM table; SELECT * FROM table;
Запросы DML SELECT DISTINCT names FROM Table; SELECT ALL names FROM Table;
Запросы DML SELECT name, city FROM people; WHERE city="LONDON"; SELECT * FROM Customers WHERE rating=100;
Реляционные и булевы операторы • • • = Равный > Больше чем < Меньше чем >= Больше чем или равно <= Меньше чем или равно <> Не равно SELECT * FROM Customers WHERE rating > 200;
Реляционные и булевы операторы • AND • OR • NOT SELECT * FROM Customers WHERE city=‘San Jose’ AND rating > 200;
Запросы DML SELECT * FROM Customers WHERE NOT city=‘San Jose’ OR rating > 200;
Запросы DML SELECT * FROM Customers WHERE NOT (city=‘San Jose’ OR rating > 200);
Запросы DML SELECT * FROM People WHERE city='Barcelona' OR city='London'; SELECT * FROM People WHERE city IN ('Barcelona', 'London' );
Запросы 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);
Запросы DML SELECT * FROM People WHERE Name BETWEEN 'A' AND 'G'; ID Name 1 Alexey 2 Grigoriy 3 Sergey
Оператор LIKE • LIKE ‘b_t’ • LIKE ‘b%t’ • Bat • Best • Bite
Запросы DML SELECT * FROM People WHERE Name LIKE ‘G%’; ID Name 1 Alexey 2 Grigoriy 3 Sergey
Запросы DML Ищем слово: peal или peel SELECT * FROM Objects WHERE Name LIKE ‘p_ _ l%’;
Запросы DML Ищем символ _ SELECT * FROM Objects WHERE name LIKE '%/_%'ESCAPE'/';
Запросы DML SELECT * FROM Customers WHERE city IS NULL;
Задачи на семестр • Проект компактной локальной БД с использованием SQLite • Проект БД с использованиям клиентсерверной архитектуры
БД_первая лекция.pptx