|
@@ -0,0 +1,76 @@
|
|
|
+# База данных
|
|
|
+База данных (БД) — это имеющая название совокупность данных, которая отражает состояние объектов и их отношений в рассматриваемой предметной области.
|
|
|
+Данными называют зарегистрированную информацию, представление фактов, понятий или инструкций в форме, которая подходит для передачи, связи, обработки человеком или с помощью машины. Содержимое базы данных — прайс-листы, контакты пользователей, каталоги товаров, отчеты, статистика продаж и т.д. Изменения одной ячейки автоматически влияют на другие.
|
|
|
+
|
|
|
+В БД чаще всего используется язык структурированных запросов SQL, созданный для того, чтобы получать необходимую информацию из базы данных. Он разработан в 1970-х в IBM. Несмотря на то что в настоящее время существует много других языков программирования запросов, SQL в базах данных продолжает широко использоваться. Команды можно разделить на манипулирующие, определяющие и управляющие.
|
|
|
+
|
|
|
+# Свойства базы данных
|
|
|
+Из определения базы данных следует, что в ней:
|
|
|
+
|
|
|
+- всегда есть имя. Если имя не задано, то нет и базы данных;
|
|
|
+- фиксируется состояние объектов и их отношений в заданный момент времени. Со временем оно меняется. Например, цена товара может характеризовать его состояние. Вслед за изменением цены меняется и состояние товара;
|
|
|
+- фиксируется информация об объектах из определенной предметной области. Например, если рассматриваем предметную область «Библиотека», то в базе могут фиксироваться данные по книгам, их расположению в библиотеке, читателям и читательским билетам. Если наша предметная область — «Магазин», то в БД может находиться информация по товарам и их ценам, по торговым точкам и наличию товара в конкретной торговой точке.
|
|
|
+
|
|
|
+Важной характерной чертой БД является ее постоянство. Оно проявляется в нескольких контекстах:
|
|
|
+
|
|
|
+- данные постоянно накапливаются и используются;
|
|
|
+- состав и структура данных обычно постоянны и стабильны во времени. Если они меняются, то скорее всего БД находится в процессе проектирования и разработки;
|
|
|
+- элементы данных могут меняться (вслед за изменением состояний объектов и их отношений). Тем самым информация, которую содержит каждая база данных, постоянно актуализируется.
|
|
|
+
|
|
|
+# Отличия баз данных от электронных таблиц
|
|
|
+Электронные таблицы изначально создавались как однопользовательские — полный контроль для одного пользователя и ограниченный набор функций для нескольких. Набор данных, как правило, невелик, как и количество вносимых изменений. БД предусматривают работу с большим объемом упорядоченной информации. Также в отличие от таблиц базы данных предназначены для работы нескольких пользователей, которые вносят изменения одновременно, независимо друг от друга.
|
|
|
+# Типы баз данных
|
|
|
+Существует множество критериев определения видов баз данных, в т.ч. следующие:
|
|
|
+ # Форма представления информации
|
|
|
+- Фактографические. Данные представлены в виде фактов об объектах предметной области в формате пар «параметр — значение». Пример: БД сайта www.ozon.ru.
|
|
|
+- Документальные. Данные представлены в виде полнотекстовых документов. Пример: БД сайта www.vedomosti.ru.
|
|
|
+- Мультимедийные. Данные представлены в виде графического, аудио- или видеоконтента. Пример: БД сайта www.youtube.com.
|
|
|
+# Тип используемой модели данных
|
|
|
+- Реляционные. Данные представлены в виде таблиц и связей между ними. Пример: БД Microsoft SQL Server, MySQL, PostgreSQL.
|
|
|
+- Нереляционные. Данные представлены в виде структур, отличных от таблиц. Например, JSON-подобных объектов, иерархических или сетевых структур. Пример: БД ElasticSearch, MongoDB.
|
|
|
+# Топология хранения
|
|
|
+Большинство современных БД может быть размещено как на одной, так и на нескольких машинах.
|
|
|
+- Локальные. Размещены на одной машине.
|
|
|
+- Распределенные. Размещены на нескольких машинах.
|
|
|
+# Функциональное назначение
|
|
|
+- Операционные. Большую часть времени используются для операций записи (добавление, изменение, удаление данных). Пример: БД 1С.
|
|
|
+- Справочно-информационные. Большую часть времени используются для операций чтения. Пример: БД сайта www.consultant.ru.
|
|
|
+# Степень доступности
|
|
|
+- Общедоступные. Открыты широкому кругу пользователей. Обычно доступ к базам данных бесплатный. Пример: БД энциклопедии Wikipedia.
|
|
|
+- С ограниченным доступом. Доступ к базам данных ограничен и обычно платный. Пример: БД энциклопедии Encarta.
|
|
|
+# Популярные системы управления базами данных
|
|
|
+
|
|
|
+Система управления базами данных (СУБД) — это программное обеспечение, которое необходимо для создания, редактирования и обслуживания файлов БД. С его помощью можно упростить процесс работы — от ввода данных до отчетности. Кроме того, система управления базами данных помогает выполнять резервное копирование, поддерживать безопасность, предоставлять общий доступ к БД. СУБД позволяет работать с базами данных одновременно нескольким пользователям.
|
|
|
+# MySQL
|
|
|
+Одна из самых распространенных систем управления базами данных. Используется в ряде крупных мировых компаний (Meta, Twitter, Amazon, LinkedIn и т.д.). Это реляционная СУБД, относящаяся к свободному программному обеспечению.
|
|
|
+
|
|
|
+Особенности:
|
|
|
+
|
|
|
+- Возможность работы с различными типами таблиц, от популярных InnoDB или MyISAM до редко используемых MERGE или HEAP.
|
|
|
+- Постоянное обновление и добавление новых поддерживаемых типов таблиц.
|
|
|
+- Высокая скорость работы — MySQL считается одной из самых быстрых несмотря на то, что одновременно с ней могут работать несколько пользователей, а количество строк в таблицах достигает 50 миллионов.
|
|
|
+- Простота — с MySQL несложно работать, потому что она поддерживает меньшее количество возможностей по сравнению с другими СУБД.
|
|
|
+- При работе с MySQL доступен не только текстовый, но и графический режим. Приложение phpMyAdmin позволяет администрировать свою базу данных через браузер без знания SQL-команд.
|
|
|
+- MySQL — удобная, гибкая и хорошо работающая БД для крупных или средних проектов.
|
|
|
+
|
|
|
+# Oracle
|
|
|
+СУБД объектно-реляционного типа получила название от компании-разработчика. При работе с Oracle используется язык Java, а также расширение PL/SQL.
|
|
|
+
|
|
|
+Особенности:
|
|
|
+
|
|
|
+- Возможность быстрого восстановления после сбоев, надежная процедура бэкапа, масштабирование и ряд других полезных функций.
|
|
|
+- Способность обеспечить надежную защиту хранящихся данных.
|
|
|
+Высокая стоимость активации и последующего использования. По этой причине она не всегда может быть доступна начинающим или небольшим компаниям.
|
|
|
+
|
|
|
+
|
|
|
+# PostgreSQL
|
|
|
+PostgreSQL относится к объектно-реляционному типу, свободно распространяется и работает на языках SQL и MySQL. Основное отличие от MySQL — в использовании инноваций и расширенном функционале.
|
|
|
+
|
|
|
+Особенности:
|
|
|
+
|
|
|
+- Перегрузка функций и наследование таблиц;
|
|
|
+- Поддержка большого количества типов данных: JSON, XML, «ключ — значение», пространственных данных и многого другого;
|
|
|
+- Расширяемость, т.е. можно использовать готовые расширения, а также создавать собственные.
|
|
|
+- PostgreSQL подходит для хранения больших объемов данных, может обрабатывать сложные запросы. Способна выстраивать небольшие DWH (Data Warehouse), быть хранилищем для геоинформационных систем, мобильных игр, веб-приложений и т.д.
|
|
|
+
|
|
|
+PostgreSQL не подойдет для работы с БД, где необходимо горизонтальное масштабирование, OLAP-хранилище, а также преобладают записи чтения.
|