- Перечислите основные способы организации базы данных
- Способы организации БД
- 11 типов современных баз данных: краткие описания, схемы и примеры БД
- I. Простейшие типы баз данных
- 1. Простые структуры данных
- 2. Иерархические базы данных
- 3. Сетевые базы данных
- II. Реляционные БД
- 4. SQL базы данных
- III. NoSQL базы данных
- 5. Базы данных «ключ-значение»
- 6. Документная база данных
- 7. Графовая база данных
- 8. Колоночные базы данных
- 9. Базы данных временных рядов
- IV. Комбинированные типы
- 10. NewSQL базы данных
- 11. Многомодельные базы данных
- Заключение
Перечислите основные способы организации базы данных
В настоящее время успешное функционирование различных фирм, организаций и предприятий просто не возможно без развитой информационной системы, которая позволяет автоматизировать сбор и обработку данных. Обычно для хранения и доступа к данным, содержащим сведения о некоторой предметной области, создается база данных.
База данных (БД) — именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области. Под предметной областью понимается некоторая область человеческой деятельности или область реального мира, на основе которой создается БД и её структура.
Система управления базами данных (СУБД) — совокупность языковых и программных средств, предназначенных для создания, наполнения, обновления и удаления баз данных.
Принципы построения баз данных
К современным базам данных, а, следовательно, и к СУБД, на которых они строятся, предъявляются следующие основные требования:
· Высокое быстродействие (малое время отклика на запрос). Время отклика — промежуток времени от момента запроса к БД до фактического получения данных.
· Простота обновления данных.
· Независимость данных — возможность изменения логической и физической структуры БД без изменения представлений пользователей.
· Совместное использование данных многими пользователями.
· Безопасность данных — защита данных от преднамеренного или непреднамеренного нарушения секретности, искажения или разрушения.
· Стандартизация построения и эксплуатации БД (фактически СУБД).
· Адекватность отображения данных соответствующей предметной области.
· Простой интерфейс пользователя.
Важнейшими являются первые два противоречивых требования: повышение быстродействия требует упрощения структуры БД, что, в свою очередь, затрудняет процедуру обновления данных, увеличивает их избыточность.
Безопасность данных включает их целостность и защиту. Целостность данных — устойчивость хранимых данных к разрушению и уничтожению, связанных с неисправностями технических средств, системными ошибками и ошибочными действиями пользователей. Она предполагает:
· отсутствие неточно введенных данных или двух одинаковых записей об одном и том же факте;
· защиту от ошибок при обновлении БД;
· невозможность удаления (или каскадное удаление) связанных данных разных таблиц;
· неискажение данных при работе в многопользовательском режиме и в распределенных базах данных;
· сохранность данных при сбоях техники (восстановление данных).
Целостность обеспечивается триггерами целостности — специальными приложениями-программами, работающими при определенных условиях. Защита данных от несанкционированного доступа предполагает ограничение доступа к конфиденциальным данным и может достигаться:
· введением системы паролей;
· получением разрешений от администратора базы данных (АБД);
· запретом от АБД на доступ к данным;
· формирование видов — таблиц, производных от исходных и предназначенных конкретным пользователям.
Стандартизация обеспечивает преемственность поколений СУБД, упрощает взаимодействие БД одного поколения СУБД с одинаковыми и различными моделями данных. При этом может быть осуществлен как локальный, так и удаленный доступ к данным (технология клиент/сервер или сетевой вариант).
Проектирование баз данных — процесс решения класса задач, связанных с созданием баз данных.
Основные задачи проектирования баз данных :
· Обеспечение хранения в БД всей необходимой информации.
· Обеспечение возможности получения данных по всем необходимым запросам.
· Сокращение избыточности и дублирования данных.
· Обеспечение целостности данных (правильности их содержания): исключение противоречий в содержании данных, исключение их потери и т.д.
Основные этапы проектирования баз данных:
1) Концептуальное (инфологическое) проектирование – построение формализованной модели предметной области. Такая модель строится с использованием стандартных языковых средств, обычно графических, например ER-диаграмм (диаграмм «Сущность-связь»). Такая модель строится без ориентации на какую-либо конкретную СУБД.
Основные элементы данной модели:
· Описание объектов предметной области и связей между ними.
· Описание информационных потребностей пользователей (описание основных запросов к БД).
· Описание алгоритмических зависимостей между данными.
· Описание ограничений целостности, т.е. требований к допустимым значениям данных и к связям между ними.
2) Логическое (даталогическое) проектирование – отображение инфологической модели на модель данных, используемую в конкретной СУБД, например на реляционную модель данных. Для реляционных СУБД даталогическая модель – набор таблиц, обычно с указанием ключевых полей, связей между таблицами. Если инфологическая модель построена в виде ER-диаграмм (или других формализованных средств), то даталогическое проектирование представляет собой построение таблиц по определённым формализованным правилам, а также нормализацию этих таблиц. Этот этап может быть в значительной степени автоматизирован.
3) Физическое проектирование – реализация даталогической модели средствами конкретной СУБД, а также выбор решений, связанных с физической средой хранения данных: выбор методов управления дисковой памятью, методов доступа к данным, методов сжатия данных и т.д. – эти задачи решаются в основном средствами СУБД и скрыты от разработчика БД.
На этапе инфологического проектирования в ходе сбора информации о предметной области требуется выяснить:
· основные объекты предметной области (объекты, о которых должна храниться информация в БД);
Источник
Способы организации БД
Различают следующие основные способы организации БД:
Иерархические БД – это такие БД, в которых данные и связи между ними можно представить в виде иерархической структуры, именуемой деревом. Например:
ФИО дата рождения зарплата адрес профессия
день месяц год код должность
Особенность иерархической БД – каждый элемент связан строго с одним предшественником.
Сетевые БД – это такие БД , в которых в общем случае любой элемент может быть связан с любым другим элементом.
Например, если рассмотреть происхождение людей только по отцовской линии, то получится генеалогическое дерево, т.е. иерархическая структура.
Алексей Егор Александр
Но каждый человек имеет двух родителей и, если на схему добавить матерей (см. пунктирные линии), то это будет уже не дерево, а сеть, так как будет нарушен принцип: « у каждого элемента строго один предшественник».
Реляционные БД – это такие БД, в которых данные и связи между ними представляются в виде двухмерных таблиц. Например:
Фамилия | Курс | Форма обучения | Средний балл |
Ковалев Н.П. | очная | 4.24 | |
Зонова Е.А. | заочная | 3.76 | |
…. | … | … | … |
Мельников С.С. | вечерняя | 4.15 |
Реляционные БД в настоящее время получили наибольшее распространение. Остановимся на них более подробно.
Источник
11 типов современных баз данных: краткие описания, схемы и примеры БД
Типы баз данных, называемых также моделями БД или семействами БД, представляют собой шаблоны и структуры, используемые для организации данных в системе управления базами данных (СУБД). Выбор типа повлияет на то, какие операции сможет выполнять приложение, как будут представлены данные, на функции СУБД для разработки и рантайма.
I. Простейшие типы баз данных
Начнём с трёх типов БД, которые всё ещё могут встречаться в специализированных средах, но в основном заменены надежными и производительными альтернативами.
1. Простые структуры данных
Первый и простейший способ хранения данных – текстовые файлы. Метод применяется и сегодня для работы с небольшими объёмами информации. Для разделения полей используется специальный символ: запятая или точка с запятой в csv-файлах датасетов, двоеточие или пробел в *nix-подобных системах:
/etc/passwd в *nix системе
- ограничен тип и уровень сложности хранимой информации;
- трудно установить связи между компонентами данных;
- отсутствие функций параллелизма;
- практичны только для систем с небольшими требованиями к чтению и записи;
- используются для хранения конфигурационных данных;
- нет необходимости в стороннем программном обеспечении.
- /etc/passwd и /etc/fstab в *nix-системах
- csv-файлы
2. Иерархические базы данных
В отличие от текстовых таблиц, в следующем типе БД появляются связи между объектами. В иерархических базах данных каждая запись имеет одного «родителя». Это создаёт древовидную структуру, в которой записи классифицируются по их отношениям с цепочкой родительских записей.
Пример построения иерархических связей
- информация организована в виде древовидной структуры с отношениями «предок-потомок»;
- каждая запись может иметь не более одного родителя;
- связи между записями выполнены в виде физических указателей;
- невозможно реализовать отношения «многих-ко-многим».
3. Сетевые базы данных
Сетевые базы данных расширяют функциональность иерархических: записи могут иметь более одного родителя. А значит, можно моделировать сложные отношения.
Пример связей в сетевой базе данных
- сетевые базы данных представляются не деревом, а общим графом
- ограничены теми же шаблонами доступа, что иерархические БД
II. Реляционные БД
4. SQL базы данных
Реляционные базы данных – старейший тип до сих пор широко используемых БД общего назначения. Данные и связи между данными организованы с помощью таблиц. Каждый столбец в таблице имеет имя и тип. Каждая строка представляет отдельную запись или элемент данных в таблице, который содержит значения для каждого из столбцов.
- поле в таблице, называемое внешним ключом, может содержать ссылки на столбцы в других таблицах, что позволяет их соединять;
- высокоорганизованная структура и гибкость делает реляционные БД мощными и адаптируемыми ко различным типам данных;
- для доступа к данным используется язык структурированных запросов (SQL);
- надёжный выбор для многих приложений.
III. NoSQL базы данных
NoSQL – группа типов БД, предлагающих подходы, отличные от стандартного реляционного шаблона. Говоря NoSQL, подразумевают либо «не-SQL», либо «не только SQL», чтобы уточнить, что иногда допускается SQL-подобный запрос.
5. Базы данных «ключ-значение»
В базах данных «ключ-значение» для хранения информации вы предоставляте ключ и объект данных, который нужно сохранить. Например, JSON-объект, изображение или текст. Чтобы запросить данные, отправляете ключ и получаете blob-объект.
- хранилища обеспечивают быстрый и малозатратный доступ;
- часто хранят данные конфигураций и информацию о состоянии данных, представленных словарями или хэшем;
- нет жёсткой схемы отношения между данными, поэтому в таких БД часто хранят одновременно различные типы данных;
- разработчик отвечает за определение схемы именования ключей и за то, чтобы значение имело соответствующий тип/формат.
6. Документная база данных
Документные базы данных (также документоориентированные БД или хранилища документов), совместно используют базовую семантику доступа и поиска хранилищ ключей и значений. Такие БД также используют ключ для уникальной идентификации данных. Разница между хранилищами «ключ-значение» и документными БД заключается в том, что вместо хранения blob-объектов, документоориентированные базы хранят данные в структурированных форматах – JSON, BSON или XML.
- база данных не предписывает опредёленный формат или схему;
- каждый документ может иметь свою внутреннюю структуру;
- документные БД являются хорошим выбором для быстрой разработки;
- в любой момент можно менять свойства данных, не изменяя структуру или сами данные.
7. Графовая база данных
Вместо сопоставления связей с таблицами и внешними ключами, графовые базы данных устанавливают связи, используя узлы, рёбра и свойства.
Графовые базы представляют данные в виде отдельных узлов, которые могут иметь любое количество связанных с ними свойств.
- выглядят аналогично сетевым;
- фокусируются на связях между элементами;
- явно отображает связи между типами данных;
- не требуют пошагового обхода для перемещения между элементами;
- нет ограничений в типах представляемых связей.
8. Колоночные базы данных
Колоночные базы данных (также нереляционные колоночные хранилища или базы данных с широкими столбцами) принадлежат к семейству NoSQL БД, но внешне похож на реляционные БД. Как и реляционные, колоночные БД хранят данные, используя строки и столбцы, но с иной связью между элементами.
В реляционных БД все строки должны соответствовать фиксированной схеме. Схема определяет, какие столбцы будут в таблице, типы данных и другие критерии. В колоночных базах вместо таблиц имеются структуры – «колоночные семейства». Семейства содержат строки, каждая из которых определяет собственный формат. Строка состоит из уникального идентификатора, используемого для поиска, за которым следуют наборы имён и значений столбцов.
- БД удобны при работе с приложениями, требующими высокой производительности;
- данные и метаданные записи доступны по одному идентификатору;
- гарантировано размещение всех данных из строки в одном кластере, что упрощает сегментацию и масштабирование данных.
9. Базы данных временных рядов
Базы данных временны́х рядов созданы для сбора и управления элементами, меняющимися с течением времени. Большинство таких БД организованы в структуры, которые записывают значения для одного элемента. Например, можно создать таблицу для отслеживания температуры процессора. Внутри каждое значение будет состоять из временной метки и показателя температуры. В таблице может быть несколько метрик.
- ориентированы на запись;
- предназначены для обработки постоянного потока входных данных;
- производительность зависит от количества отслеживаемых элементов, интервала опроса между записью новых значений и фактической полезной нагрузки данных.
IV. Комбинированные типы
NewSQL и многомодельные БД являются разными типами баз данных, но решают одну группу проблем, вызванных полярными подходами SQL или NoSQL-стратегии. Почему бы не объединить преимущества обеих групп?
10. NewSQL базы данных
NewSQL базы данных наследуют реляционную структуру и семантику, но построены с использованием более современных, масштабируемых конструкций. Цель – обеспечить большую масштабируемость, нежели реляционные БД, и более высокие гарантии согласованности, чем в NoSQL. Компромисс между согласованностью и доступностью является фундаментальной проблемой распределённых баз данных, описываемой теоремой CAP.
- возможность горизонтального масштабирования;
- высокая доступность;
- большая производительность и репликация;
- небольшой функционал и гибкость;
- немалое потребление ресурсов и необходимость специализированных знаний для работы с базой данных.
11. Многомодельные базы данных
Многомодельные базы данных – базы, объединяющие функциональные возможности нескольких видов БД. Преимущества такого подхода очевидны – одна и та же система может использовать различные представления для разных типов данных.
Совместное размещение данных из нескольких типов БД в одной системе позволяет выполнять новые операции, которые в противном случае были бы затруднены или невозможны. Например, многомодельные базы могут позволить юзерам получить доступ к данным, хранящимся в разных типах БД, и управлять ими в рамках одного запроса, а также поддерживают согласованность данных при выполнении операций, изменяющих информацию сразу в нескольких системах.
- помогают уменьшить нагрузку на СУБД;
- позволяют расширяться до новых моделей по мере изменения потребностей без внесения изменений в базовую инфраструктуру;
- обеспечивают непрерывный доступ и простое распределение данных;
- имеют линейную масштабируемость и просты для разработки.
Заключение
Изменение типов хранимых данных, требования к скорости и производительности привели и к продолжающемуся расширению типов баз данных. При этом каждый из них продолжает быть нужным в своей нише, где взаимосвязи между данными ассоциируются с определенной схемой строения базы данных.
Источник