Курс лекций по базам данных
14.09.2011 - 07.12.2011
направление Software Engineering
Слайды лекций
Видео запись лекций
Базы данных на Lektorium.TV.
Домашние задания
Требования:
- первая и пятая части - обязательно
- одна (или несколько) на выбор: вторая, третья или четвертая части
- язык реализации - Java или Python или другой скриптовой, кроссплатформенный (понятный лектору)
Первая часть
- телефонная книга - фио + телефон - на arrayList
- CRUD операции
- доступ к через какой-либо api ( console / http / socket - на выбор )
- возможность сохранить в файл, дабы можно было перезапустить сервер ( flush / commit / snapshot )
Вторая часть
- подключить механизм партиционирования - шардирования
- журнал операций - для восстановления, если не сделали flush перед выключением
- master - slave репликация ( через сделанный ранее api - передаем журнал на slave и применяем его там )
Третья часть
- несколько коллекций в базе
- составной ключ ( имя коллекции + id в пределах коллекции )
- CRUD операции с поддержкой нескольких коллекций ( например get student:7 )
- операции создания и удаления коллекций
Четвертая часть
- распределенная база данных из К нод
- каждая запись в кластере на N нодах, где N < K (строго меньше)
- сохранение делается на W нод
- при чтении - читаем с R нод из N
- настраиваемые параметры N, R, W
- выключаем M нод из K (M < N) и демонстрируем что данные живы / доступны по ключу
Пятая часть (пояснительная записка)
- Техническое описание системы:
- как собрать систему
- как запустить (на кластере)
- как использовать - список команд и примеры
- известные ограничения системы (по памяти, выживаемость етс)
- Предложение по использованию системы: (реальное или выдуманное)
- какие проблемы может решить
- как может их решить
- какие ожидаемые результаты
- Объем записки:
- Минимальный - 1 лист А4 шрифтом 10 pt
- Максимальный - 5 листов А4 шрифтом 12 pt