Лекция 2. Современное программное обеспечение и базы данных
**1-й учебный вопрос: Информация и данные. Основные определения.**
Информация – любые сведения о явлении, процессе.
Данные – информация, представленная в определенной форме для обработки ее человеком или компьютером. Информация хранится в виде данных и извлекается из данных, чаще всего аналитическим или логическим путем.
Информационная система – механизм для хранения, поиска, извлечения и модификации некоторой информации.
Предметная область – часть реального мира, с которым имеет дело ИС в зависимости от своего назначения.
Три этапа обработки информации в ИС (рис. 1)

База данных – совокупность специальным образом организованных и взаимосвязанных данных.
Рассмотрим существующие варианты реализации БД. Наиболее актуальных и часто используемых в настоящее время два: технология веб-сервер и технология сервер приложений. Рассмотрим их отдельно.
В упрощенном виде веб-серверная технология показана на рис. 2.

ПК браузер, в данном случае выступает источником API и необходимых библиотек, чтобы приложение, которое находится на веб-сервере или на стороне ПК могло как вести информационный обмен с БД, так и выдавать пользователю результаты его запросов к данным в удобном виде.
Сервер приложений показан на рис. 3.

В данном случае приложение находится на мобильном устройстве. Сервер приложений является связующим звеном между мобильным устройством и БД, принимая на себя основную процессорную нагрузку при переработке и выдаче результатов запросов пользователя. Используется API мобильных ОС (iOs, Android).
**2-й учебный вопрос: Актуальные модели данных.**
В настоящий момент времени актуальными моделями хранения данных являются реляционная модель, noSQL модель и модель хранилища данных. Большинство баз данных функционируют в одной из перечисленных моделей. Позже мы будем подробно говорить на каждой из них, пока же сфокусируемся на их принципиальных различиях.
Реляционная модель хранения данных в общем, упрощенном виде показана на рис. 4.

По своей структуре данная модель представляет собой коллекцию из плоских двухмерных таблиц, каждая из которых хранит информацию о каком-нибудь объекте наблюдения. Например, одной из таблиц для рис. 4 могла бы быть таблица “Студент”, если тематика БД — это университет, и мы хотим наблюдать за успехами студентов, которые в нем учатся.
Схема хранилищ данных также, как и реляционная модель работает по структуре связанных друг с другом таблиц. Однако таблицы содержат в себе уже не данные об объекте наблюдения, а точки зрения и показатели фактов. Накладывая точку зрения на факты, можно получить конкретные значения для требуемой сущности.
noSQL модель работает принципиально иначе. Принцип показан на рис. 6.

В данном случае понятие таблицы заменяется понятиями “дерево” и “лес”. Каждая сущность, или группа сущностей обозначается через ее “ствол”, который притягивает к себе все факты, возникающие от существования этой сущности. В зависимости от типа noSQL модели, деревья и лес могут также называться колонками или же мажорными и минорными ключами.
**3-й учебный вопрос: Типы баз данных, компоненты баз данных.**
На верхнем уровне группировки выделяют два основных типа организации баз данных: однопользовательские и многопользовательские. Наглядно различия между типами показаны на рис. 7.

Однопользовательской тут считается база данных менеджера по продажам (очевидно, потому что у этой БД только и всегда один пользователь – менеджер, в данном случае). Остальные приведенные примеры относятся к многопользовательским. В общем виде подходы к этим типам БД похожие, но при администрировании их могут существенно различаться.
Для всех типов данных структура компонентов будет одинакова, она приведена на рис. 8.

Пользователь, через приложение баз данных (программное средство, как правило обладающее упрощенным GUI, использующее при реализации своего функционала базу данных), с использованием средства под названием СУБД (DBMS) получает необходимые для своей работы данные.
Основные функции приложения баз данных показаны в табл. 1.

В наиболее известной реляционной модели данных к приведенной выше структуре компонентов добавится еще один слой в виде подъязыка запросов к БД SEQUEL или SQL (рис. 9).

СУБД (система управления базами данных) – средство, предоставляющее пользователю инструментарий для взаимодействия с БД. Основные функции любой СУБД представлены в табл. 2.

Основные и вспомогательные элементы БД показаны на рис. 10

Под вспомогательными элементами БД понимаются элементы оптимизации доступа и обработки данных, такие как: индексы, хранимые процедуры, триггеры, пользовательские представления; а также элементы организации безопасности данных, такие как данные безопасности, данные о восстановлении и метаданные.
Модификация и чтение данных – это элементы операций, обычно называемые CRUD (от англ. CREATE, RENAME, UPDATE, DELETE – соответственно создание, переименование, изменение, удаление).
Остальные 4 категории напрямую связаны с реализацией функции администратора БД и напрямую на саму структуру БД не влияют.
**4-й учебный вопрос. Жизненный цикл и ресурсы БД.**
Жизненный цикл базы данных – время эффективной работы сложившейся структуры данных. Состоит из следующих этапов:
- проектирование;
- реализация;
- эксплуатация;
- модернизация и развитие;
- полная реорганизация.
Организационные ресурсы БД (лица, организующие функционирование базы данных):
- конечные пользователи;
- администраторы БД;
- разработчики приложений.
Один из ключевых организационных ресурсов БД — это ее администратор. Основные функции администратора базы данных:
- анализ предметной области;
- проектирование структуры БД и связей между данными;
- первоначальная загрузка и ведение БД;
- защита данных;
- обеспечение восстановления БД;
- анализ обращений пользователей;
- анализ эффективности функционирования БД;
- работа с конечными пользователями;
- подготовка и релизы системных средств.
**5-й учебный вопрос: История развития технологий хранения данных.**
Основные вехи истории показаны на рис. 11.

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 технологий хранения данных.