Лекция 2. Современное программное обеспечение и базы данных
**1-й учебный вопрос: Информация и данные. Основные определения.**
Информация – любые сведения о явлении, процессе.
Данные – информация, представленная в определенной форме для обработки ее человеком или компьютером. Информация хранится в виде данных и извлекается из данных, чаще всего аналитическим или логическим путем.
Информационная система – механизм для хранения, поиска, извлечения и модификации некоторой информации.
Предметная область – часть реального мира, с которым имеет дело ИС в зависимости от своего назначения.
Три этапа обработки информации в ИС (рис. 1)
![Рисунок 1. Три этапа обработки информации.](/uploads/msu_image/image/10083/1.jpg)
База данных – совокупность специальным образом организованных и взаимосвязанных данных.
Рассмотрим существующие варианты реализации БД. Наиболее актуальных и часто используемых в настоящее время два: технология веб-сервер и технология сервер приложений. Рассмотрим их отдельно.
В упрощенном виде веб-серверная технология показана на рис. 2.
![Рисунок 2. Веб-серверная технология в общем виде.](/uploads/msu_image/image/10084/2.jpg)
ПК браузер, в данном случае выступает источником API и необходимых библиотек, чтобы приложение, которое находится на веб-сервере или на стороне ПК могло как вести информационный обмен с БД, так и выдавать пользователю результаты его запросов к данным в удобном виде.
Сервер приложений показан на рис. 3.
![Рисунок 3. Технология сервера приложений.](/uploads/msu_image/image/10085/3.jpg)
В данном случае приложение находится на мобильном устройстве. Сервер приложений является связующим звеном между мобильным устройством и БД, принимая на себя основную процессорную нагрузку при переработке и выдаче результатов запросов пользователя. Используется API мобильных ОС (iOs, Android).
**2-й учебный вопрос: Актуальные модели данных.**
В настоящий момент времени актуальными моделями хранения данных являются реляционная модель, noSQL модель и модель хранилища данных. Большинство баз данных функционируют в одной из перечисленных моделей. Позже мы будем подробно говорить на каждой из них, пока же сфокусируемся на их принципиальных различиях.
Реляционная модель хранения данных в общем, упрощенном виде показана на рис. 4.
![Рисунок 4. Упрощенная модель реляционной модели данных.](/uploads/msu_image/image/10086/4.jpg)
По своей структуре данная модель представляет собой коллекцию из плоских двухмерных таблиц, каждая из которых хранит информацию о каком-нибудь объекте наблюдения. Например, одной из таблиц для рис. 4 могла бы быть таблица “Студент”, если тематика БД — это университет, и мы хотим наблюдать за успехами студентов, которые в нем учатся.
Схема хранилищ данных также, как и реляционная модель работает по структуре связанных друг с другом таблиц. Однако таблицы содержат в себе уже не данные об объекте наблюдения, а точки зрения и показатели фактов. Накладывая точку зрения на факты, можно получить конкретные значения для требуемой сущности.
noSQL модель работает принципиально иначе. Принцип показан на рис. 6.
![Рисунок 6. Модель noSQL.](/uploads/msu_image/image/10087/5.jpg)
В данном случае понятие таблицы заменяется понятиями “дерево” и “лес”. Каждая сущность, или группа сущностей обозначается через ее “ствол”, который притягивает к себе все факты, возникающие от существования этой сущности. В зависимости от типа noSQL модели, деревья и лес могут также называться колонками или же мажорными и минорными ключами.
**3-й учебный вопрос: Типы баз данных, компоненты баз данных.**
На верхнем уровне группировки выделяют два основных типа организации баз данных: однопользовательские и многопользовательские. Наглядно различия между типами показаны на рис. 7.
![Рисунок 7. Примеры БД по типам.](/uploads/msu_image/image/10088/6.jpg)
Однопользовательской тут считается база данных менеджера по продажам (очевидно, потому что у этой БД только и всегда один пользователь – менеджер, в данном случае). Остальные приведенные примеры относятся к многопользовательским. В общем виде подходы к этим типам БД похожие, но при администрировании их могут существенно различаться.
Для всех типов данных структура компонентов будет одинакова, она приведена на рис. 8.
![Рисунок 8. Общая (типовая) структура компонентов базы данных.](/uploads/msu_image/image/10089/7.jpg)
Пользователь, через приложение баз данных (программное средство, как правило обладающее упрощенным GUI, использующее при реализации своего функционала базу данных), с использованием средства под названием СУБД (DBMS) получает необходимые для своей работы данные.
Основные функции приложения баз данных показаны в табл. 1.
![Таблица 1](/uploads/msu_image/image/10090/8.jpg)
В наиболее известной реляционной модели данных к приведенной выше структуре компонентов добавится еще один слой в виде подъязыка запросов к БД SEQUEL или SQL (рис. 9).
![Рисунок 10. Структура компонентов реляционной базы данных.](/uploads/msu_image/image/10091/9.jpg)
СУБД (система управления базами данных) – средство, предоставляющее пользователю инструментарий для взаимодействия с БД. Основные функции любой СУБД представлены в табл. 2.
![Таблица 2](/uploads/msu_image/image/10092/10.jpg)
Основные и вспомогательные элементы БД показаны на рис. 10
![Рисунок 11. Основные и вспомогательные элементы БД.](/uploads/msu_image/image/10093/11.jpg)
Под вспомогательными элементами БД понимаются элементы оптимизации доступа и обработки данных, такие как: индексы, хранимые процедуры, триггеры, пользовательские представления; а также элементы организации безопасности данных, такие как данные безопасности, данные о восстановлении и метаданные.
Модификация и чтение данных – это элементы операций, обычно называемые CRUD (от англ. CREATE, RENAME, UPDATE, DELETE – соответственно создание, переименование, изменение, удаление).
Остальные 4 категории напрямую связаны с реализацией функции администратора БД и напрямую на саму структуру БД не влияют.
**4-й учебный вопрос. Жизненный цикл и ресурсы БД.**
Жизненный цикл базы данных – время эффективной работы сложившейся структуры данных. Состоит из следующих этапов:
- проектирование;
- реализация;
- эксплуатация;
- модернизация и развитие;
- полная реорганизация.
Организационные ресурсы БД (лица, организующие функционирование базы данных):
- конечные пользователи;
- администраторы БД;
- разработчики приложений.
Один из ключевых организационных ресурсов БД — это ее администратор. Основные функции администратора базы данных:
- анализ предметной области;
- проектирование структуры БД и связей между данными;
- первоначальная загрузка и ведение БД;
- защита данных;
- обеспечение восстановления БД;
- анализ обращений пользователей;
- анализ эффективности функционирования БД;
- работа с конечными пользователями;
- подготовка и релизы системных средств.
**5-й учебный вопрос: История развития технологий хранения данных.**
Основные вехи истории показаны на рис. 11.
![Рисунок 12. Вехи истории развития БД](/uploads/msu_image/image/10094/12.jpg)
1. До 1970 года отдельных технологий по хранению данных не существовало. Взаимодействие с данными происходило на уровней файлов в специальных программах, файловых менеджерах на IBM PC.
2. 1980 год – первые программы, специализирующиеся на хранении и обработке данных: ADABAS, System2000. Принято считать, что данное ПО работало в рамках пререляционной модели данных.
3. 1978-85 год – появление первых реляционных СУБД (Oracle, IBM DB2).
4. 1992 год, появление первой однопользовательской СУБД MS Access.
5. С 1995 года, появление open source, freeware ПО СУБД MySQL и PostreSQL. Появление серверных web технологий хранения, обработки и выдачи данных (комплекс Apache, язык динамической разметки страниц интернета PHP).
6. 1998 год – изобретение удобных способов унификации данных через универсальный расширенный язык разметки XML.
7. 2010 год – появление noSQL технологий хранения данных.