Какие типы данных могут содержаться в базах данных
Типы баз данных, называемых также моделями БД или семействами БД, представляют собой шаблоны и
структуры, используемые для организации данных в системе управления базами
данных (СУБД). Выбор типа повлияет на то, какие операции сможет выполнять приложение, как будут представлены данные, на функции СУБД для разработки и рантайма.
Начнём с трёх типов БД, которые всё ещё могут встречаться в специализированных средах, но в основном заменены надежными и производительными альтернативами.
1. Простые структуры
данных
Первый и простейший способ хранения данных – текстовые файлы. Метод применяется и сегодня для работы с небольшими объёмами информации. Для разделения полей используется специальный символ: запятая или точка с запятой в csv-файлах датасетов, двоеточие или пробел в *nix-подобных
системах:
/etc/passwd в *nix системе
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
syslog:x:102:106::/home/syslog:/usr/sbin/nologin
bob:x:1000:1000:Bob Smith,,,:/home/bob:/bin/bash
Следствия:
- ограничен тип и уровень сложности хранимой информации;
- трудно установить связи между компонентами данных;
- отсутствие функций параллелизма;
- практичны только для систем с небольшими требованиями к чтению и записи;
- используются для хранения конфигурационных данных;
- нет необходимости в стороннем программном обеспечении.
Примеры:
- /etc/passwd и /etc/fstab в *nix-системах
- csv-файлы
2. Иерархические базы данных
В отличие от текстовых таблиц, в следующем типе БД появляются связи между объектами. В иерархических базах данных каждая запись имеет одного «родителя». Это создаёт
древовидную структуру, в которой записи классифицируются по их отношениям с цепочкой родительских записей.
Пример построения иерархических связей
Следствия:
- информация организована в виде древовидной структуры с отношениями «предок-потомок»;
- каждая запись может иметь не более одного родителя;
- связи между записями выполнены в виде физических указателей;
- невозможно реализовать отношения «многих-ко-многим».
Примеры:
- файловые системы
- DNS
- LDAP
3. Сетевые базы данных
Сетевые базы данных расширяют
функциональность иерархических: записи
могут иметь более одного родителя. А значит, можно моделировать сложные отношения.
Пример связей в сетевой базе данных
Следствия:
- сетевые базы данных представляются не деревом, а общим графом
- ограничены теми же шаблонами доступа, что иерархические БД
Примеры:
- IDMS
4. SQL базы данных
Реляционные базы данных – старейший тип до сих пор широко используемых БД общего назначения. Данные и связи между данными организованы с помощью таблиц. Каждый столбец в таблице имеет имя и тип. Каждая строка представляет отдельную
запись или элемент данных в таблице, который содержит значения для каждого из
столбцов.
Следствия:
- поле в таблице, называемое внешним ключом, может содержать ссылки на столбцы в других таблицах, что позволяет их соединять;
- высокоорганизованная структура и гибкость делает реляционные БД мощными и адаптируемыми ко различным типам данных;
- для доступа к данным используется язык структурированных запросов (SQL);
- надёжный выбор для многих приложений.
Примеры:
- MySQL
- MariaDB
- PostgreSQL
- SQLite
NoSQL
– группа типов БД, предлагающих подходы,
отличные от стандартного реляционного шаблона. Говоря NoSQL, подразумевают либо «не-SQL», либо «не только SQL», чтобы уточнить, что иногда
допускается SQL-подобный запрос.
5. Базы данных «ключ-значение»
В базах данных «ключ-значение» для хранения
информации вы предоставляте ключ и объект данных, который нужно сохранить. Например, JSON-объект, изображение или текст. Чтобы запросить данные, отправляете ключ и получаете blob-объект.
Следствия:
- хранилища обеспечивают быстрый и малозатратный доступ;
- часто хранят данные конфигураций и информацию о состоянии данных, представленных словарями или хэшем;
- нет жёсткой схемы отношения между данными, поэтому в таких БД часто хранят одновременно различные типы данных;
- разработчик отвечает за определение схемы именования ключей и за то, чтобы значение имело соответствующий тип/формат.
Примеры:
- Redis
- memcached
- etcd
6. Документная база данных
Документные базы
данных (также документоориентированные БД или хранилища
документов), совместно используют базовую семантику доступа и поиска хранилищ
ключей и значений. Такие БД также используют ключ для уникальной
идентификации данных. Разница между хранилищами «ключ-значение» и документными
БД заключается в том, что вместо хранения blob-объектов,
документоориентированные базы хранят данные в структурированных форматах – JSON,
BSON или XML.
Следствия:
- база данных не предписывает опредёленный формат или схему;
- каждый документ может иметь свою внутреннюю структуру;
- документные БД являются хорошим выбором для быстрой разработки;
- в любой момент можно менять свойства данных, не изменяя структуру или сами данные.
Примеры:
- MongoDB
- RethinkDB
7. Графовая база данных
Вместо сопоставления связей с таблицами и внешними ключами, графовые базы данных устанавливают связи, используя узлы, рёбра и свойства.
Графовые базы
представляют данные в виде отдельных узлов, которые могут иметь любое
количество связанных с ними свойств.
Следствия:
- выглядят аналогично сетевым;
- фокусируются на связях между элементами;
- явно отображает связи между типами данных;
- не требуют пошагового обхода для перемещения между элементами;
- нет ограничений в типах представляемых связей.
Примеры:
- Neo4j
- JanusGraph
- Dgraph
8. Колоночные базы данных
Колоночные базы данных
(также нереляционные колоночные хранилища или базы данных с
широкими столбцами) принадлежат к семейству NoSQL БД, но внешне похож на реляционные БД.
Как и реляционные, колоночные БД хранят данные, используя строки и
столбцы, но с иной связью между элементами.
В реляционных БД все строки должны соответствовать фиксированной схеме. Схема определяет, какие столбцы будут в таблице, типы данных и другие критерии. В колоночных базах вместо
таблиц имеются структуры – «колоночные семейства». Семейства содержат строки,
каждая из которых определяет собственный формат. Строка состоит из уникального
идентификатора, используемого для поиска, за которым следуют наборы имён и
значений столбцов.
Следствия:
- БД удобны при работе с приложениями, требующими высокой производительности;
- данные и метаданные записи доступны по одному идентификатору;
- гарантировано размещение всех данных из строки в одном кластере, что упрощает сегментацию и масштабирование данных.
Примеры:
- Cassandra
- HBase
9. Базы данных временных
рядов
Базы данных временны́х рядов созданы для сбора и управления элементами, меняющимися с течением времени. Большинство таких БД организованы в структуры, которые записывают значения для одного
элемента. Например, можно создать таблицу для отслеживания температуры процессора.
Внутри каждое значение будет состоять из временной метки и показателя
температуры. В
таблице может быть несколько метрик.
Следствия:
- ориентированы на запись;
- предназначены для обработки постоянного потока входных данных;
- производительность зависит от количества отслеживаемых элементов, интервала опроса между записью новых значений и фактической полезной нагрузки данных.
Примеры:
- OpenTSDB
- Prometheus
- InfluxDB
- TimescaleDB
NewSQL и многомодельные БД являются разными типами баз данных, но решают одну группу проблем, вызванных полярными подходами SQL или NoSQL-стратегии. Почему бы не объединить преимущества обеих групп?
10. NewSQL базы данных
NewSQL базы данных наследуют реляционную структуру и семантику, но построены с использованием более
современных, масштабируемых конструкций. Цель – обеспечить
большую масштабируемость, нежели реляционные БД, и более высокие гарантии
согласованности, чем в NoSQL. Компромисс между согласованностью и доступностью
является фундаментальной проблемой распределённых баз данных, описываемой
теоремой CAP.
Следствия:
- возможность горизонтального масштабирования;
- высокая доступность;
- большая производительность и репликация;
- небольшой функционал и гибкость;
- немалое потребление ресурсов и необходимость специализированных знаний для работы с базой данных.
Примеры:
- MemSQL
- VoltDB
- Spanner
- Calvin
- CockroachDB
- FaunaDB
- yugabyteDB
11. Многомодельные базы данных
Многомодельные базы
данных – базы, объединяющие функциональные возможности нескольких видов БД.
Преимущества такого подхода очевидны – одна и та же система может использовать
различные представления для разных типов данных.
Совместное размещение
данных из нескольких типов БД в одной системе позволяет выполнять новые
операции, которые в противном случае были бы затруднены или невозможны.
Например, многомодельные базы могут позволить юзерам получить доступ к данным,
хранящимся в разных типах БД, и управлять ими в рамках одного запроса, а также поддерживают
согласованность данных при выполнении операций, изменяющих информацию сразу в
нескольких системах.
Следствия:
- помогают уменьшить нагрузку на СУБД;
- позволяют расширяться до новых моделей по мере изменения потребностей без внесения изменений в базовую инфраструктуру;
- обеспечивают непрерывный доступ и простое распределение данных;
- имеют линейную масштабируемость и просты для разработки.
Примеры:
- ArangoDB
- OrientDB
- Couchbase
Заключение
Изменение типов хранимых данных, требования к скорости и производительности привели и к продолжающемуся расширению типов баз данных. При этом каждый из них продолжает быть нужным в своей нише, где взаимосвязи между данными ассоциируются с определенной схемой строения базы данных.
О каком типе баз данных вы бы хотели узнать подробнее?
Источник
КАТЕГОРИИ:
Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)
Системы управления БД и их функции
Для создания БД, их поддержки и обслуживания используется специализированное программное обеспечение – системы управления БД (СУБД). СУБД – это комплекс программных и языковых средств, необходимых для создания и эксплуатации БД.
На этапе разработки БД СУБД служит для описания структуры БД: определения таблиц, определения количества полей, типа данных, отображающихся в них, размеров полей, определения связей между таблицами. Помимо таблиц большинство СУБД предусматривает создание специальных средств для работы с данными: форм, запросов.
Во время эксплуатации БД СУБД обеспечивает редактирование структуры БД, заполнение ее данными, поиск, сортировку, отбор данных по заданным критериям, формирование отчетов.
В информационных системах (ИС), которые работают на IBM-совместимых персональных компьютерах, большое распространение получили так называемые dBASE – подобные системы управления БД.
В dBASE – подобных БД фактически использован реляционный подход к организации данных, т.е. каждый файл .DBF представляет собой двумерную таблицу, которая состоит из фиксированного числа столбцов и переменного числа строк (записей). В терминах, принятых в технической документации, каждому столбцу соответствует поле одного из 5 типов (N – числовое, C – символьное, D – дата, L – логическое, M – примечание), а каждой строке – запись фиксированной длины, состоящая из фиксированного числа полей. С помощью командных языков этих СУБД создаются и исправляются макеты файлов .DBF (описания таблиц), создаются индексные файлы, описываются процедуры работы с БД (чтение, поиск, модификация данных, составление отчетов и многое другое).
Информационные системы работают со следующими основными типами данных.
Текстовые данные. Значение каждого текстового (символьного) данного представлено совокупностью произвольных алфавитно-цифровых символов, длина которой чаще всего не превышает 255 (например, 5, 10, 140). Текстовыми данными представляют в ИС фамилии и должности людей, названия фирм, продуктов, приборов и т.д. В частном случае значение текстового данного может быть именем какого-то файла, который содержит неструктурированную информацию произвольной длины (например, биографию или фотографию объекта). Фактически это структурированная ссылка, позволяющая резко расширить информативность вашей таблицы.
Числовые данные. Данные этого типа обычно используются для представления атрибутов, со значениями которых нужно проводить арифметические операции (весов, цен, коэффициентов и т.п.). Числовое данное, как правило, имеет дополнительные характеристики, например: целое число длиной 2 байта, число с плавающей точкой (4 байта) в фиксированном формате и др. Разделителем целой и дробной части обычно служит точка.
Данные типа даты и (или) времени. Данные типа даты задаются в каком-то известном машине формате, например, ДД.ММ.ГГ (день, месяц, год). С первого взгляда – это частный случай текстового данного. Однако использование в ИС особого типа для даты имеет следующие преимущества. Во-первых, система получает возможность вести жесткий контроль (например, значение месяца может быть только дискретным в диапазоне 01-12). Во-вторых, появляется возможность автоматизированного представления формата даты в зависимости от традиций той или иной страны (например, в США принят формат ММ-ДД-ГГ). В-третьих, при программировании значительно упрощается арифметические операции с датами (попробуйте, например, вручную вычислить дату спустя 57 дней после заданного числа). Те же преимущества имеет использование данного типа времени.
Логические данные. Данное этого типа (иногда его называют булевым) может принимать только одно из двух взаимоисключающих значений – True или False (условно: 1 или 0). Фактически это переключатель, значение которого можно интерпретировать как «Да» и «Нет» или как «Истина» и «Ложь». Логический тип удобно использовать для тех атрибутов, которые могут принимать одно из двух взаимоисключающих значений, например: наличие водительских прав (да-нет), военнообязанный (да-нет) и т.п.
Поля объекта OLE. Значением таких данных может быть любой объект OLE, который имеется на компьютере (графика, звук, видео). В частности, в список учащихся можно включить не только статическую фотографию учащегося, но и его голос.
Пользовательские типы. Во многих системах пользователям предоставляется возможность создавать собственные типы данных, например: «День недели» (понедельник, вторник и т.д.), «Адрес» (почтовый индекс – город – …) и др.
В частном случае значение текстового данного может быть совокупностью пробелов, а значение числового данного – нулем. Если же в таблицу вообще не введена информация, значение будет пустым. Не следует путать с нулем или пробелами. Во многих системах пользователю важно зафиксировать отсутствие данных для каких-то экземпляров объекта (например, отсутствие адреса. Если случайно ввести в такую строку таблицы пробел, система сочтет, что адрес задан, и данный экземпляр не попадет в список объектов с отсутствующими адресами.)
Дата добавления: 2014-10-17; Просмотров: 5212; Нарушение авторских прав?
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
Рекомендуемые страницы:
Источник