Теоретические основы баз данных.
1. Определение информационной системы, способы структурирования информации. Определения: база данных, СУБД, транзакция, согласованность данных, целостность и непротиворечивость данных. Функции и назначение СУБД. Технологии доступа к данным.
2. Этапы проектирования баз данных. Инфологическая, концептуальная, даталогическая, физическая модели. ER-модели, термины инфологического моделирования. Виды связей между сущностями. История развития СУБД. Модели данных: иерархическая, сетевая, реляционная, объектно-ориентированная.
3. Понятия реляционной модели: атом, домен, кортеж, отношение. Термины реляционной модели и теории множеств. Свойства реляционных баз данных. Реляционная алгебра. Операции над множествами.
4. Понятия ключа и ссылочной целостности данных. Первичный, альтернативный и внешний ключи, их свойства. Способы поддержания ссылочной целостности. Нормализация отношений в БД, необходимость нормализации, определение функциональной зависимости атрибутов. Типы и примеры нормальных форм. Недостатки и ограничения реляционной модели.
Язык SQL и СУБД PostgreSQL.
1. Основные характеристики, возможности и сравнительный анализ современных сетевых реляционных баз данных. СУБД PostgreSQL - общие сведения, характеристики, язык, особенности использования. Типы данных PostgreSQL.
2. История развития и стандарты языка SQL. Наборы команд SQL и примеры операторов. Оператор SELECT: синтаксис, ключевые слова и псевдонимы, разделы, постановка условий, предикаты, создание связей между таблицами, группировка, использование функций агрегирования, групповая фильтрация, сортировка, использование вложенных запросов, коррелируемые запросы, возможности записи результата, объединение таблиц. Операторы манипулирования данными (INSERT, UPDATE, DELETE).
3. Элементы PostgreSQL: представления, курсоры, хранимые процедуры, пользовательские функции, триггеры, временные таблицы – примеры создания, использования и удаления средствами языков SQL и PL/pgSQL. Использование пользовательских типов данных, объектно-реляционный подход.
4. Обеспечение безопасности и сохранности данных. Администрирование баз данных на примере PostgreSQL: интерфейсы администрирования. Роли, схемы данных. Управление доступом к данным. Команды GRANT, REVOKE - примеры использования. Методы и технологии защиты данных.
Реляционные, постреляционные и нереляционные СУБД.
1. СУБД Microsoft SQL Server – общие сведения, типы данных, перспективы использования. Язык Transact-SQL. Элементы Microsoft SQL Server: временные таблицы, представления, курсоры, хранимые процедуры, пользовательские функции, ограничения, триггеры - создание, использование и удаление. Способы и средства управления и администрирования. Управление правами пользователей (команды GRANT, DENY, REVOKE). Конструкции PIVOT и WITH в Transact-SQL.
2. СУБД MySQL – общие сведения, типы данных, способы и средства управления и администрирования, особенности языка, примеры запросов, перспективы использования.
3. СУБД Microsoft Access. Общие сведения, типы данных, состав и функциональность. Средства программирования: язык VBA, язык SQL, макросы. Основы объектно-ориентированного программирования на VBA Microsoft Access. Основные синтаксические конструкции языка. Способы выполнения запросов к данным. Программирование в формах.
4. Суть объектно-реляционного подхода. Способы работы с объектами в реляционных базах данных в соответствии со стандартом SQL-3. СУБД Oracle – общие сведения, состав, типы данных, язык, примеры запросов. Пользовательские типы данных.
5. Концепция объектно-ориентированных баз данных. Преимущества и недостатки использования ООБД, примеры ООБД.
6. Документо-ориентированные нереляционные базы данных на примере MongoDB: особенности, преимущества и недостатки по сравнению с реляционными СУБД. Язык запросов на основе JavaScript.
Работа с данными.
1. Слабоструктурированные данные: хранение информации в XML и JSON-форматах. Структура форматов. Организация хранения данных в XML-формате в СУБД Microsoft SQL Server. Примеры формирования выборок данных с использованием XML-элементов с помощью SQL-запросов. Язык XQuery. Работа с JSON-данными в PostgreSQL.
2. Концепция и терминология анализа данных, суть OLAP. Алгоритмы и идеи Data Mining. Многомерное представление данных: куб данных, измерения, меры, срезы. Принципы разработки и использования информационных хранилищ данных. Пример работы с Microsoft Analysis Services, организация запросов к многомерным данным на языке MDX.
3. Механизмы клиент-серверного взаимодействия с СУБД. Интерфейсы ODBC, JDBC, OLE DB, ADO.NET. Разработка клиентских приложений на языке Python. Объектно-реляционное отображение (ORM) и технология "Code First". Microsoft Visual Studio, C# и технология LINQ. Примеры LINQ-запросов.
4. Способы организации Интернет-доступа к сетевым СУБД. Протокол HTTP. Примеры программирования активных серверных страниц для организации доступа к сетевым реляционным СУБД на языке PHP. Интернет-атаки на базы данных. SQL-инъекции: суть проблемы, примеры, методы защиты.