Принципы построения и работы баз данных Тема 01: Введение Тема 1 1 Реализация реляционных баз данных кажется на первый взгляд довольно простой Отношения Операторы Тема 1 Результаты 2 Рассмотрим Система Управления Базами Данных • Последние достижения Megatron Labs • Включает новейшие реляционные технологии • UNIX совместимая Тема 1 3 Megatron 3000 Детали реализации • Отношения хранятся в текстовых (ASCII) файлах, например, отношение R хранится в /usr/db/R Smith # 123 # CS Jones # 522 # EE .. . Тема 1 4 Megatron 3000 Детали реализации • Сами отношения описаны в текстовом файле /usr/db/directory – описания БД R1 # A # INT # B # STR … R2 # C # STR # A # INT … .. . Тема 1 5 Megatron 3000 Сеанс работы % MEGATRON3000 Welcome to MEGATRON 3000! & . .. & quit % Тема 1 6 Megatron 3000 Сеанс работы & select * from R # Relation R A SMITH B 123 C CS & Тема 1 7 Megatron 3000 Сеанс работы & select A,B from R,S where R.A = S.A and S.C > 100 # A 123 522 B CAR CAT & Тема 1 8 Megatron 3000 Сеанс работы & select * from R where R.A < 100 | T # & Создается новое отношение Т. Тема 1 9 Megatron 3000 • Для выполнения “select * from R where <условие>”: (1) Прочитать файл описания БД для получения аттрибутов R (2) Читать файл R , для каждой строки: (a) Проверить условие (b) Если выполняется – вывести строку Тема 1 10 Megatron 3000 • Для выполнения “select * from R where condition | T”: (1) Обработать select как описано выше (2) Записать результат в новый файл T (3) Добавить новую строку в файл описания БД Тема 1 11 Megatron 3000 • Для выполнения ”select A,B from R,S where <условие>” (1) Прочитать файл описания БД для получения аттрибутов R,S (2) Читать файл R , для каждой строки: (a) Читать файл S, для каждой строки: (i) Создать соединенный кортеж (ii) Проверить условие (iii) Если выполняется – вывести Тема 1 12 Что не удовлетворяет нас в СУБД Megatron 3000 ? • Размещение кортежей на диске - Для того, чтобы изменить ‘Cat’ на ‘Cats’, мы должны переписать весь файл - Хранение кортежей в текстовом виде (ASCII) не эффективно - Удаление кортежей не эффективно Тема 1 13 Что не удовлетворяет нас в СУБД Megatron 3000 ? • Поиск не эффективен, нет индексов - Нельзя быстро найти кортеж с заданным ключом - Всегда необходимо прочитывать весь файл отношения Тема 1 14 Что не удовлетворяет нас в СУБД Megatron 3000 ? • Метод «грубой силы» для обработки запросов select * from R,S where R.A = S.A and S.B > 1000 - Выполнить вначале select? - Более эффективные методы соединения? Тема 1 15 Что не удовлетворяет нас в СУБД Megatron 3000 ? • Нет управления буферами • Нет параллельного доступа к данным • Нет надежности – Данные могут быть потеряны – Возможно частичное завершение операции • • • • Нет средств поддержки секретности Нет программного интерфейса Нет связи с другими СУБД Бедные средства описания БД Тема 1 16 Обзор курса • Структура файлов и системы. Хранение записей в блоках, управление буферами,… • Индексация и хешигование, двоичные деревья • Обработка запросов, цена запроса, стратегии соединения,... • Восстановление при сбоях • Параллельный доступ • Обработка транзакций • Безопасность и целостность данных • Распределенные базы данных Тема 1 17 Детали • Лекции/Консультации: Tuesday, Thursday 11:00am to 12:15pm, HP Auditorium (Gates B01) • Литература: Garcia-Molina, Ullman, Widom; “DATABASE SYSTEM IMPLEMENTATION” или “DATABASE SYSTEMS, THE COMPLETE BOOK” • Дом.Задания: 7 письменных д.з. Без программирования. Обязательное чтение книги. • Оценка: Д.з.: 20%, промеж.экз.: 30%, экзамен: 50%. • WEB страница: Краткие конспекты лекций и дом.задания с решениями будут размещены на http://kek.ksu.ru/… Тема 1 18 Для чтения: Главы 11-20 • Исключая факультативный материал – Разделы 11.7.4, 11.7.5 – Разделы 14.3.6, 14.3.7, 14.3.8 – Разделы 14.4.2, 14.4.3, 14.4.4 – Разделы 15.7, 15.8, 15.9 – Разделы 16.6, 16.7 – В главах 15, 16: материал по операторам удаления дубликатов, группирования, аггрегирования – Разделы 18.8 – Разделы 19.4, 19.5, 19.6, 19.7 Тема 1 19