Базы данных

Санкт-Петербург, осень 2011

Описание

Курс ставит перед собой следующие цели: - Познакомить слушателей с принципами построения систем хранения данны - Показать распространенные проблемы и варианты их решения - Дать навыки оценки готовых реализаций и работы с ними

Видеозаписи лекций находятся по ссылке.

Также можно смотреть записи лекций в версиях курса, прочитанных осенью 2012 года и осенью 2013 года.

Преподаватели

Список лекций

Лекция 1

Бумажная телефонная книга. Организация информации в ней, хранение информации, операции над данными, CRUD, поиск, алгоритмы, скорость работы.

Лекция 2

Архитектура распределенной базы данных, компоненты системы, партиционирование и шардирование данных. Master-slave репликация, журнал операций. Memcached, Redis.

Лекция 3

Что такое транзакция. Зачем она нужна. Свойства ACID. Особенности распределенного состояния данных. CAP теорема. CAP сказка. Понятие BASE.

Лекция 4

Получение одной записи из базы: что происходит шаг за шагам. Оптимизации. Кеширование соединений, запросов. Форматы сериализации данных (json, xml, etc).

Лекция 5

Получение нескольких записей из базы шаг за шагом. Пример на JDBC. Индексы. Понятия стоимость запроса и план исполнения запроса. Пример.

Лекция 6

Разбор сценария: хранение фотографий. Что это, зачем, эволюция решений с ростом количества изображений, Haystack от Facebook.

Лекция 7

Разбор сценария: поисковая система. Компоненты поискового индекса. Словарь, постинг, обратный индекс. Lucene. HDFS - Hadoop File System: архитектура, элементы, форматы файлов.

Лекция 8

Column Oriented базы данных. BigTable. Модель данных, особенности, архитектура, SSTable. Hadoop HBase, как доступная реализация.

Лекция 9

Функция как элемент программирования. Функциональное программирование в Java. Плюсы подхода. Масштабируемость. MapReduce by Google. Использование. Hadoop MapReduce. Установка MongoDB. MapReduce в MongoDB.

Лекция 10

HTML5: базы данных в браузере. WebStorage. Реакция на события. Пример использования. SessionStorage. Поддержка стандартов хранилищ в браузерах. Web SQL Database. IndexedDB. Оформление пояснительной записки. Язык разметки MarkDown.

Лекция 11

GraphDB: Понятие граф. Применения. Типы графов. Хранение графов в разных типах баз. Что такое GraphDB. Neo4j. Установка. Пример использования: загружаем информацию о фильмах в базу, строим граф, делаем запросы в базу.

Лекция 12

Ревизия курса: структуры данных, представление данных в памяти, на диске, в сети. Типы баз данных. NoSQL как часть MySQL. Архитектура хранения данных - на примере twitter. Ссылки на большие архитектуры. Зачетное мероприятие.