Какие базы данных бывают: краткие описания, схемы и примеры БД
Ключи и ключевые атрибуты в базах данных.
Здравствуйте, уважаемые посетители сайта ZametkiNaPolyah.ru. Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. В данной публикации мы разберем, что такое ключи и ключевые атрибуты в реляционных базах данных, для чего нужны ключевые атрибуты и какими могут быть ключи в базах данных.
Ключи и ключевые атрибуты в базах данных
Рассмотрим одну из самых простых, но очень важных тем в теории баз данных – ключи и ключевые атрибуты.
Давайте посмотрим, какие ключи и ключевые атрибуты бывают в таблицах баз данных:
- Ключи или ключевой атрибут — атрибут (читай столбец) или набор атрибутов, который однозначно идентифицирует сущность/объект/таблицу в базе данных.
- Первичный ключ — ключ, который используется для идентификации объекта.
- Ключ-кандидат (альтернативный ключ) — ключ, по каким-либо причинам неиспользуемый как первичный.
- Составной ключ — ключ, который использует несколько атрибутов.
- Суррогатный ключ — ключ, значение которого генерируется СУБД.
Ключевые атрибуты или ключи по своему виду делятся на: простые и составные, естественные и суррогатные, первичные ключи и ключи кандидаты.
Рассмотрим различие между естественными и суррогатными ключами, естественно, на примере. Для этого обратимся к таблице с городами из базы данных World.
Таблица с суррогатным ключом
В этой таблице ключом является столбец ID, данный столбец автоматически генерируется СУБД при добавлении новой записи в таблицу, следовательно, атрибут ID–суррогатный ключ. В данной таблице мы видим столбец с именем CountryCode, который может выступать в роли ключа для таблицы Country, такой ключ будет естественным.
Как нам определить, что столбец может быть ключом? Есть два очень простых признака того, что столбец является ключом или ключевым атрибутом: ключ уникален и ключ вечен. Но хочу отметить, что ключ – абстрактное понятие. Например, представим, что у нас есть таблица, в которой хранится информация о учениках класса, в принципе, ничего страшного не будет, если в такой таблице столбец ФИО будет выступать в роли ключа. Но, когда наша база данных работает в масштабах города, области, региона или страны, то столбец ФИО никак не может выступать в роли ключа, даже номер паспорта – это не ключ, так как со временем мы меняем паспорт, а у несовершеннолетних его нет.
Поясню принцип составного ключа. Представим, что гражданин Петров был задержан сотрудниками полиции в нетрезвом виде за нарушение правопорядка. По факту задержания составляется рапорт (гражданин Петров не имеет при себе паспорта). Сотрудник полиции в рапорте укажет ФИО задержанного, но ФИО в масштабах города никак не идентифицируют Петрова Петра Петровича, поэтому сотрудник записывает дату рождения, если город большой, то Петр Петрович Петров, родившийся 14 февраля 1987 года в нем не один, поэтому записывается адрес фактического проживание и адрес прописки, для достоверности указывается время задержания. Сотрудник полиции составил набор характеристик, которые однозначно идентифицируют гражданина Петрова. Другими словами, все эти характеристики – составной ключ.
Итак, мы рассмотрели ключи и ключевые атрибуты в базах данных. Надеюсь, что теперь вы разобрались с понятием ключ или ключевой атрибут в реляционной базе данных.
НОУ ИНТУИТ | Лекция | Базы данных и СУБД. Введение в SQL
Аннотация: В лекции рассматриваются понятия базы данных и СУБД, дается краткое
описание существующих типов баз данных (сетевые, реляционные,
иерархические). Рассматриваются основы языка запросов SQL: операции
выбора, добавления, изменения и удаления строки, а также операции
создания, изменения и удаления таблицы. База данных MySql.
Использование PhpMyAdmin для взаимодействия с базой данных MySql.
Обсуждаются основные принципы отображения объектной модели документа
на реляционную структуру базы данных. Пример – проектирование базы
данных виртуального музея истории.
В данной лекции мы рассмотрим основные понятия теории баз данных и
познакомим читателей с системой управления базами данных MySql,
способами работы с ней, ее особенностями и реализацией языка запросов SQL в этой СУБД. В основе приводимых в лекции примеров лежит
информационная модель виртуального музея истории информатики. Эта
модель есть набор коллекций описания исторических личностей,
экспонатов музея (артефактов), статей и изображений.
Базы данных: основные понятия
В жизни мы часто сталкиваемся с необходимостью хранить какую-либо
информацию, а потому часто имеем дело и с базами данных. Например, мы
используем записную книжку для хранения номеров телефонов своих
друзей и планирования своего времени. Телефонная книга содержит
информацию о людях, живущих в одном городе. Все это своего рода базы
данных. Ну а раз это базы данных, то посмотрим, как в них хранятся
данные. Например, телефонная книга представляет собой таблицу (табл.
10.1).
В этой таблице данные – это собственно номера телефонов, адреса и
ФИО., т.е. строки «Иванов Иван Иванович», «32-43-12» и т.п., а
названия столбцов этой таблицы, т.е. строки «ФИО», «Номер телефона» и
«Адрес» задают смысл этих данных, их семантику.
ФИО | Номер телефона | Адрес |
---|---|---|
Иванов Иван Иванович | 32-43-12 | ул. Ленина, 12, 43 |
Ильин Федор Иванович | 32-32-34 | пр. Маркса, 32, 45 |
Теперь представьте, что записей в этой таблице не две, а две тысячи,
вы занимаетесь созданием этого справочника и где-то произошла ошибка
(например, опечатка в адресе). Видимо, тяжеловато будет найти и
исправить эту ошибку вручную. Нужно воспользоваться какими-то
средствами автоматизации. Для управления большим количеством данных
программисты (не без помощи математиков) придумали системы управления базами данных ( СУБД ). По сравнению с текстовыми базами данных
электронные СУБД имеют огромное число преимуществ, от возможности
быстрого поиска информации, взаимосвязи данных между собой до
использования этих данных в различных прикладных программах и
одновременного доступа к данным нескольких пользователей.
Для точности дадим определение базы данных, предлагаемое Глоссарий.ру
База данных – это совокупность связанных данных, организованных по
определенным правилам, предусматривающим общие принципы описания,
хранения и манипулирования, независимая от прикладных программ. База
данных является информационной моделью предметной области. Обращение
к базам данных осуществляется с помощью системы управления базами
данных ( СУБД ). СУБД обеспечивает поддержку создания баз данных,
централизованного управления и организации доступа к ним различных
пользователей.
Итак, мы пришли к выводу, что хранить данные независимо от программ,
так, что они связаны между собой и организованы по определенным
правилам, целесообразно. Но вопрос, как хранить данные, по каким
правилам они должны быть организованы, остался открытым. Способов
существует множество (кстати, называются они моделями представления
или хранения данных). Наиболее популярные – объектная и реляционная
модели данных.
Автором реляционной модели считается Э. Кодд, который первым
предложил использовать для обработки данных аппарат теории множеств
(объединение, пересечение, разность, декартово произведение) и
показал, что любое представление данных сводится к совокупности
двумерных таблиц особого вида, известного в математике как отношение.
Таким образом, реляционная база данных представляет собой набор
таблиц (точно таких же, как приведенная выше), связанных между собой.
Строка в таблице соответствует сущности реального мира (в приведенном
выше примере это информация о человеке).
Примеры реляционных СУБД: MySql, PostgreSql.
В основу объектной модели положена концепция
объектно-ориентированного программирования, в которой данные
представляются в виде набора объектов и классов, связанных между
собой родственными отношениями, а работа с объектами осуществляется с
помощью скрытых (инкапсулированных) в них методов.
Примеры объектных СУБД: Cache, GemStone (от Servio Corporation),
ONTOS (ONTOS).
В последнее время производители СУБД стремятся соединить два этих
подхода и проповедуют объектно-реляционную модель представления
данных. Примеры таких СУБД – IBM DB2 for Common Servers, Oracle8.
Поскольку мы собираемся работать с Mysql, то будем обсуждать аспекты
работы только с реляционными базами данных. Нам осталось рассмотреть
еще два важных понятия из этой области: ключи и индексирование, после
чего мы сможем приступить к изучению языка запросов SQL.
Ключи
Для начала давайте подумаем над таким вопросом: какую информацию
нужно дать о человеке, чтобы собеседник точно сказал, что это именно
тот человек, сомнений быть не может, второго такого нет? Сообщить
фамилию, очевидно, недостаточно, поскольку существуют однофамильцы.
Если собеседник человек, то мы можем приблизительно объяснить, о ком
речь, например вспомнить поступок, который совершил тот человек, или
еще как-то. Компьютер же такого объяснения не поймет, ему нужны
четкие правила, как определить, о ком идет речь. В системах
управления базами данных для решения такой задачи ввели понятие первичного ключа.
Первичный ключ (primary key, PK) – минимальный набор полей, уникально
идентифицирующий запись в таблице. Значит, первичный ключ – это в
первую очередь набор полей таблицы, во-вторых, каждый набор значений
этих полей должен определять единственную запись (строку) в таблице
и, в-третьих, этот набор полей должен быть минимальным из всех
обладающих таким же свойством. Поскольку первичный ключ определяет
только одну уникальную запись, то никакие две записи таблицы не могут
иметь одинаковых значений первичного ключа .
Например, в нашей таблице (см. выше) ФИО и адрес позволяют однозначно
выделить запись о человеке. Если же говорить в общем, без связи с
решаемой задачей, то такие знания не позволяют точно указать на
единственного человека, поскольку существуют однофамильцы, живущие в
разных городах по одному адресу. Все дело в границах, которые мы сами
себе задаем. Если считаем, что знания ФИО, телефона и адреса без
указания города для наших целей достаточно, то все замечательно,
тогда поля ФИО и адрес могут образовывать первичный ключ. В любом
случае проблема создания первичного ключа ложится на плечи того, кто
проектирует базу данных (разрабатывает структуру хранения данных).
Решением этой проблемы может стать либо выделение характеристик,
которые естественным образом определяют запись в таблице (задание так
называемого логического, или естественного, PK), либо создание
дополнительного поля, предназначенного именно для однозначной
идентификации записей в таблице (задание так называемого
суррогатного, или искусственного, PK). Примером логического первичного ключа является номер паспорта в базе данных о паспортных
данных жителей или ФИО и адрес в телефонной книге (таблица выше). Для
задания суррогатного первичного ключа в нашу таблицу можно добавить
поле id (идентификатор), значением которого будет целое число,
уникальное для каждой строки таблицы. Использование таких суррогатных ключей имеет смысл, если естественный первичный ключ представляет
собой большой набор полей или его выделение нетривиально.
Кроме однозначной идентификации записи, первичные ключи используются
для организации связей с другими таблицами.
Например, у нас есть три таблицы: содержащая информацию об
исторических личностях (Persons), содержащая информацию об их
изобретениях (Artifacts) и содержащая изображения как личностей, так
и артефактов (Images) (рис 10.1).
Первичным ключом во всех этих таблицах является поле id
(идентификатор). В таблице Artifacts есть поле author, в котором
записан идентификатор, присвоенный автору изобретения в таблице
Persons. Каждое значение этого поля является внешним ключом для первичного ключа таблицы Persons. Кроме того, в таблицах Persons и
Artifacts есть поле photo, которое ссылается на изображение в таблице
Images. Эти поля также являются внешними ключами для первичного ключа
таблицы Images и устанавливают однозначную логическую связь
Persons-Images и Artifacts-Images. То есть если значение внешнего
ключа photo в таблице личности равно 10, то это значит, что
фотография этой личности имеет id=10 в таблице изображений. Таким
образом, внешние ключи используются для организации связей между
таблицами базы данных (родительскими и дочерними) и для поддержания
ограничений ссылочной целостности данных.
Рис.
10.1.
Пример использования первичных ключей для организации связей с другими таблицами
Индексирование
Одна из основных задач, возникающих при работе с базами данных, – это
задача поиска. При этом, поскольку информации в базе данных, как
правило, содержится много, перед программистами встает задача не
просто поиска, а эффективного поиска, т.е. поиска за сравнительно
небольшое время и с достаточной точностью. Для этого (для оптимизации
производительности запросов) производят индексирование некоторых
полей таблицы. Использовать индексы полезно для быстрого поиска строк
с указанным значением одного столбца. Без индекса чтение таблицы
осуществляется по всей таблице, начиная с первой записи, пока не
будут найдены соответствующие строки. Чем больше таблица, тем больше
накладные расходы. Если же таблица содержит индекс по рассматриваемым
столбцам, то база данных может быстро определить позицию для поиска в
середине файла данных без просмотра всех данных. Это происходит
потому, что база данных помещает проиндексированные поля поближе в
памяти, так, чтобы можно было побыстрее найти их значения. Для
таблицы, содержащей 1000 строк, это будет как минимум в 100 раз
быстрее по сравнению с последовательным перебором всех записей.
Однако в случае, когда необходим доступ почти ко всем 1000 строкам,
быстрее будет последовательное чтение, так как при этом не требуется
операций поиска по диску. Так что иногда индексы бывают только
помехой. Например, если копируется большой объем данных в таблицу, то
лучше не иметь никаких индексов. Однако в некоторых случаях требуется
задействовать сразу несколько индексов (например, для обработки
запросов к часто используемым таблицам).
Если говорить о MySQL, то там существует три вида индексов: PRIMARY , UNIQUE , и INDEX , а слово ключ ( KEY ) используется как синоним слова
индекс ( INDEX ). Все индексы хранятся в памяти в виде B-деревьев.
PRIMARY – уникальный индекс (ключ) с ограничением, что все
индексированные им поля не могут иметь пустого значения (т.е. они NOT
NULL ). Таблица может иметь только один первичный индекс, но он может
состоять из нескольких полей.
UNIQUE – ключ (индекс), задающий поля, которые могут иметь только
уникальные значения.
INDEX – обычный индекс (как мы описали выше). В MySqL, кроме того,
можно индексировать строковые поля по заданному числу символов от
начала строки.
Наборы данных, массивы данных, банки данных, базы данных – что это такое и как их различать?
Закон.Ру – официально зарегистрированное СМИ. Ссылка на настоящую статью будет выглядеть следующим образом: Рожкова М.А. Наборы данных, массивы данных, банки данных, базы данных – что это такое и как их различать? [Электронный ресурс] // Закон.ру. 2020. 6 июля. URL: https://zakon.ru/blog/2020/7/6/nabory_dannyh_massivy_dannyh_banki_dannyh_bazy_dannyh__chto_eto_takoe_i_kak_ih_razlichat
(настоящая работа представляет собой часть статьи: Рожкова М.А. О правовых аспектах использования технологий: MadTech (проблемы правового режима данных) // Хозяйство и право. 2020. № 8).
Информационные технологии предполагают использование различных видов данных. Юридические проблемы здесь возникают вследствие неоднозначности в вопросе принадлежности прав на данные, что значительно усугубляется присутствием в составе данных персональных данных, легальность использования которых напрямую зависит от наличия правовых оснований на обработку.
Разбор некоторых сложных вопросов в обозначенной сфере следует предварить указанием на то, что право на информацию традиционно рассматривается юристами, прежде всего, в контексте конвенционных / конституционных прав, принадлежащих всем и каждому с рождения. Так, в ст. 10 Конвенции о защите прав человека и основных свобод закреплено, что каждый вправе свободно выражать свое мнение, что означает свободу не только в том, чтобы придерживаться своего мнения, но и получать и распространять информацию и идеи без какого-либо вмешательства со стороны публичных властей и независимо от государственных границ. В этом аспекте предметом дискуссий выступает обычно содержание конвенционного / конституционного права на информацию, а также возможность легальных ограничений его реализации.
Но на сегодняшний день актуальной стала другая – имущественная – ипостась информации, что стало следствием развития информационных технологий и становления информационного общества. Поэтому внимание цивилистов все чаще обращается к проблематике субъективных гражданских прав на информацию и введения этого имущества в гражданский оборот. При этом, как показывают проведенные исследования, определение правового режима информации оказалось довольно сложной задачей для большинства юрисдикций.
В отечественном праве разрешение вопроса принадлежности субъективных гражданских прав на информацию осложняется тем, что в 2008 г. информация была исключена из перечня объектов гражданских прав, закрепленного в ст. 128 ГК РФ. Поясняя такое законодательное решение, нужно напомнить, что при разработке Кодекса под информацией изначально понимались лишь служебная и коммерческая тайна, и когда впоследствии отношения по этому поводу были урегулированы Федеральным законом от 29.07.2004 № 98-ФЗ «О коммерческой тайне» и гл. 75 ГК РФ о секрете производства, специальное упоминание информации в ст. 128 ГК РФ, по мнению разработчиков Кодекса, стало излишним и было исключено[1]. Эта новация сослужила плохую службу, дав повод для суждений о чуть ли не легальном запрете рассматривать информацию в имущественном ключе, вследствие чего часть юристов продолжает придерживаться мнения, что информация сможет стать объектом гражданских прав только при условии ее прямого возвращения в текст ст. 128 ГК РФ.
Подобный вывод нельзя поддержать. Но его опровержение требует подробного обоснования, которое в дальнейшем может стать подспорьем при формировании правового режима данных.
1. Согласно ст. 2 Федерального закона от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (далее – Закон об информации) понятием «информация» охватываются: (1) сообщения; (2) сведения; (3) данные. Закон не делает различий между указанными понятиями рассматривая их, по сути, как равнозначные виды информации, но их сущностные отличия выявлялись мною ранее[2], поэтому здесь они будут изложены реферативно с некоторыми дополнениями.
На мой взгляд, решение большинства возникающих юридических вопросов требует учета того обстоятельства, что обработка информации может рассматриваться с двух сторон – технической (охватывая различные приемы и способы передачи, накопления, хранения и иной обработки информации, не имеющей цели использования ее содержательной составляющей) и содержательной (что связано именно со смысловой составляющей информации – аналитика данных, распространение информации и проч.). Следование этому разделению позволяет правильно употреблять перечисленные выше понятия.
Понятие «сообщение» приобретает значение применительно к технической стороне обработки информации и обозначает вовсе не разновидность информации, а, по сути, форму физической передачи определенных объемов информации. Это может быть, например, устное или письменное сообщение, переданное человеком. Либо речь может идти об автоматизированном процессе пространственного переноса информации: источник информации посылает сообщение, которое кодируется в одиночных или нескольких следующих друг за другом сигналах; этот сигнал (сигналы) передается по каналу связи; в приемнике информации появляется принимаемый сигнал (сигналы), который декодируется и становится принимаемым сообщением. Вследствие сказанного можно утверждать: сообщение – это лишь составляющая системы передачи информации, которая не может становится объектом гражданских прав.
Содержательная сторона обработки информации отражается в категориях «сведения» и «данные» – как раз они являются разновидностями информации. Не возводя непреодолимые границы между этими понятиями, правильно было бы их разграничивать, понимая под «сведениями» информацию, относящуюся к конкретному субъекту, объекту, факту, случаю, а под «данными» – совокупность информации, объединенную и упорядоченную по какому-либо признаку, нескольким признакам или критериям. Обе эти разновидности информации в соответствующих ситуациях способны становиться объектами гражданских прав – с момента приобретения ими имущественной ценности, на что уже обращалось внимание ранее[3].
2. Для целей правильного разрешения цивилистических вопросов следует исходить из того, что информация имеет нематериальный (невещественный) характер, что принципиально отграничивает ее от материальных предметов, могущих стать объектами вещных прав.
Это замечание обусловлено тем, что в ряде современных теорий можно встретить заключения о сходстве информации с энергией, а то и обоснование материальности информации. Например, в теории квантовой энтропийной логики информация постулируется как физическая (материальная) категория – такая же как, например, энергия или масса. Однако при этом отмечается: «Объектом этой дисциплины является нечто, имеющее мало общего с тем, что называют информацией в обыденной жизни. Действительно, если «в быту» доминирует содержательная, смысловая сторона информации, то Квантовая энтропийная логика семантику информации вообще не рассматривает… использование постулатов теории Квантовой энтропийной логики способно исключить грубые логические противоречия, существовавшие в квантовой механике»[4]. Идея о сходстве информации с энергией находит отражение и в социологической теории: так, в аналитической концепции постиндустриального общества обращается внимание на повышение значимости информационной компоненты в производственных процессах, сопоставлемой с ролью сырья и энергии[5]. В то же время следует учитывать и то, что основоположник кибернетики Н. Винер стоял на следующей позиции: «Информация есть информация, а не материя и не энергия. Тот материализм, который не признает этого, не может быть жизнеспособным в настоящее время»[6].
Признание нематериальности информации позволяет утверждать, что информация является объектом, изъятым из гражданского оборота в силу естественных свойств. Подобно объектам интеллектуальных прав, не являющимся оборотоспособными по той же причине и допускающим лишь оборот исключительных прав на них и материальных носителей таких объектов (п. 4 ст. 129 ГК РФ), информация не отличается свойством оборотоспособности – это свойство можно признавать только за правами на информацию и носителями информации (вещами).
Заключение об отсутствии у информации свойства оборотоспособности вряд ли вызовет у юристов серьезные возражения, пока не встанет вопрос о допустимости передачи (перехода) информации. Дело в том, что отсутствие у объекта свойства оборотоспособности исключает возможность легального перехода (передачи) самого этого объекта – допускается лишь переход прав на такой объект. Такой подход прямо закреплен в ГК РФ в отношении имеющих нематериальную природу объектов интеллектуальных прав. Следовательно, в русле отечественной правовой доктрины недопустимым должен признаваться и переход (передача) информации от одного лица к другому – возможен лишь переход прав на информацию или материальных носителей информации (вещей).
Предвосхищая критику предложенного подхода, следует вновь обратить внимание на необходимость различать техническую и содержательную стороны обработки информации. Без всяких сомнений можно говорить о передаче информации в техническом смысле, понимая ее как сообщение (форму физической передачи определенных объемов информации), – именно в этом контексте сформулированы, например, положения законодательства о связи. Однако, когда значимой становится содержательная составляющая информации, то речь может идти о сведениях или данных, которые вполне способны стать объектом гражданских прав, но сами не могут быть допущены в гражданский оборот – только права на них.
В развитие сказанного надо подчеркнуть, что допустимость возникновения в отношении информации субъективных гражданских прав находит прямое подтверждение в Федеральном законе от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (далее – Закон об информации), в котором предпринята попытка сформулировать основы правового режима информации.
К сожалению, данную попытку сложно назвать удачной – Закон об информации, по сути, пренебрегает градацией правоотношений на публичные и частные, игнорирует положения отечественной цивилистической доктрины, и, конечно, не учитывает разницу между техническими и содержательными аспектами обработки информации. В частности, с учетом изложенного ошибочным следует признать содержащееся в Законе об информации положение об обладании лицом самой информацией, а не правом на информацию – положение, которое породило термин «обладатель информации» вместо «правообладатель информации» (нельзя тут не вспомнить и пресловутого «владельца сайта» вместо юридически корректного «правообладателя сайта»). Отмеченные недостатки не позволили расценивать Закон об информации как содержащий адекватное и эффективное регулирование гражданско-правовых отношений по поводу информации.
3. Сегодня в литературе можно обнаружить большое количество определений, даваемых понятию «данные». При этом разные авторы акцентируют внимание на различных нюансах наподобие источников данных, форматов и типов данных, способов их обработки и проч.
В этих условиях весьма неожиданным стало предложение провести в законодательстве четкий рубеж между понятиями «данные» и «информация», «поскольку их отождествление вступает в противоречие с существующей технологической реальностью»[7].
А.И. Савельев ранее рассматривал категории «сведения», «сообщения», «данные» как разновидности информации: «Так, сведения представляют собой информацию, рассматриваемую в содержательном аспекте, т.е. безотносительно к ее восприятию и использованию В то же время сообщение представляет собой информацию, рассматриваемую в коммуникативном аспекте, т.е. как обмен сведениями, часть процесса между пользователями. Понятие «данные» (data) обычно используется применительно к информации, сгенерированной техническими устройствами или введенной в память компьютера»[8]. Сегодня автор пишет о принципиальных различиях между понятиями «данные» и «информация», ссылаясь на дефиниции, содержащиеся в разных стандартах Международной организации по стандартизации: «…данные – это поддающееся многократной интерпретации представление информации в формализованном виде, пригодном для передачи, связи или обработки. При этом информация – это результат интерпретации (смысл) такого представления»[9]. И предлагает по-иному рассматривать соотношение понятий «данные» и «информация»: по его мнению, данные не являются разновидностью информации – информация является результатом интерпретации данных.
Последнее предложение является хорошей иллюстрацией к утверждению о необходимости четкого понимания, о каком аспекте обработки информации идет речь – техническом или содержательном. В изложенных А.И. Савельевым дефинициях речь идет о технической стороне обработки информации, в рамках которой под интерпретацией данных понимается «перевод» данных в понятный для машины (компьютера) формат, что позволяет осуществить машинную обработку необходимой информации. Сомнительно, что подобное правило нуждается в отражении его в действующем законодательстве. При этом является очевидным, что, поскольку ничто здесь не влияет на содержательную сторону обработки информации, отсутствуют сколь-нибудь серьезные основания отвергать аксиому, согласно которой «информация» является родовым понятием для понятия «данные».
Применительно к аргументации разбираемого предложения хотелось заметить следующее. Общая дефиниция понятия «данные» сформулирована в упоминаемом А.И. Савельевым терминологическом словаре по информационным технологиям[10] для целей этого словаря максимально широко – чтобы охватить все аспекты обработки данных в рамках информационных технологий. Это связано также и с тем, что понятие «данные» (англ. – data) является составляющей большого количества других значимых в сфере информационных технологий понятий, которым дано определение в этом словаре: data acquisition, data administration, data analysis, data attribute, data authentication, data bank, data breakpoint, data circuit, data collection, data communication и т.д. При этом важно заметить, что упомянутом словаре нередко дается несколько дефиниций одного и того же термина, что обусловлено многоаспектностью значительного числа понятий, используемых в области информационных технологий. Это коснулось и основополагающей категории «информация»: так, в контексте обработки информации (англ. – information processing) информация понимается как «знание об объектах, таких как факты, события, вещи, процессы или идеи, включая понятия, которые в определенном контексте имеют особое значение», а в контексте теории информации (англ. – information theory) – как «знание, которое уменьшает или устраняет неопределенность в отношении наступления определенного события из данного набора возможных событий». Процитированная А.И. Савельевым иная дефиниция понятия «информация» сформулирована для целей другого словаря – терминологического словаря по системам и программным разработкам[11], и попросту отражает другой аспект этого понятия.
В развитие изложенного надо заметить, что в упомянутом словаре по информационным технологиям применительно к понятию «данные» сделана специальная оговорка о том, что данные могут обрабатываться как людьми, так и техническими средствами. Это позволяет не соглашаться с высказываемой иногда позицией о том, что данные – это информация, предназначенная для обработки исключительно с помощью компьютера: вне всяких сомнений, аналитика данных предполагает задействование технических средств, но нельзя отрицать существование данных, которые и сегодня проходят «ручную» обработку.
4. Все увеличивающееся многообразие данных и рост объемов информации, которую нужно хранить, обрабатывать и анализировать в различных отраслях, потребовали создания принципиально новых систем складирования и хранения данных. Современные технологии позволяют осуществлять хранение:
– структурированных данных – данных, относящихся к одной предметной области и упорядоченных определенным образом с целью применения к ним различных методов машинной обработки. Классической моделью хранения структурированных данных признается таблица, состоящая из столбцов и строк;
– неструктурированных данных – разнородных данных, требующих применения специальных приемов извлечения и структуризации с тем, чтобы в отношении них могли осуществляться различные методы машинной обработки. Это данные из соцсетей, видео- и аудиофайлы, книги и журналы, метаданные, данные GPS, медицинские записи, сообщения электронной почты, данные о перемещении мобильного абонента, веб-страницы, аналоговые записи, файлы PDF и проч. Как правило, неструктурированные данные представлены в виде текста, который содержит факты, даты, цифры, и хранятся обычно в форме электронных документов. Машинная обработка таких данных возможна только тогда, когда они извлечены из электронного документа и преобразованы в понятный для машины формат, то есть интерпретированы;
– слабоструктурированных (полуструктурированных) данных – данных, доступных для машинного распознавания, но требующих применения дополнительных приемов для получения конкретной информации (они определенным образом структурированы, но не имеют характерного для структурированных данных формата таблицы).
Традиционными хранилищами структурированных данных признаются банки данных (англ. – data bank) и базы данных (англ. – database). Примечательно, что отечественное законодательство регулирует связанные с ними отношения по-разному.
Под банком данных принято понимать систему специальным образом организованных данных, которые предназначены для централизованного хранения и коллективного многоцелевого использования. Отечественное законодательство не устанавливает общий правовой режим банков данных, однако в отдельных законах закрепляются организационно-правовые основы для формирования и ведения таких банков в публичных целях. Примером тому является недавно принятый Федеральный закон от 8 июня 2020 г. № 168-ФЗ «О едином федеральном информационном регистре, содержащем сведения о населении Российской Федерации».
Под базой данных принято понимать совокупность данных, предназначенную для длительного хранения в особом, организованном виде, который определяется структурой (схемой) этой базы данных и правилами ее управления. В отечественном законодательстве для целей установления правовой охраны базу данных предложено понимать как совокупность самостоятельных материалов, систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью компьютера (абз. 2 п. 2 ст. 1260 ГК РФ).
Часть четвертая ГК РФ закрепляет положение, согласно которому не всякая база данных способна получить правовую охрану в качестве объекта интеллектуальных прав – лишь в определенных законом случаях база данных может стать объектом авторских и (или) смежных прав. Для этого база данных должна отвечать критериям, установленным в гл. 70 ГК РФ «Авторское право» или § 5 гл. 71 ГК РФ «Право изготовителя базы данных». Причем следует специально подчеркнуть: объектом охраны здесь выступают вовсе не составляющие базу «материалы».
По смыслу п. 2 ст. 1260 ГК РФ база данных становится объектом авторских прав, если при подборе и компоновке ее составляющих (то есть при определении структуры (схемы) базы данных) был реализован новаторский подход, использовались оригинальные творческие идеи, креативность. Иначе говоря, охраняется именно порядок подбора и компоновки составляющих базы данных, но не ее содержание, и не имеет абсолютно никакого значения, какие объекты входят в ее состав – фотографии, персональные данные или литературные опусы – речь идет только о подборе или компоновке при структурировании базы данных. Вследствие сказанного и передача авторских прав на базу данных предусматривает передачу прав на порядок подбора и компоновки, но никак не прав на содержащиеся в базе данные.
По смыслу п. 1 ст. 1334 ГК РФ база данных становится объектом смежных прав, если она является результатом существенных финансовых, материальных, организационных или иных вложений (инвестиций) изготовителя базы в ее создание. Очевидно, что для такой базы данных главенствующее значение имеет накопление и обработка значительных объемов информации, но правовая охрана предоставляется опять-таки не содержанию, а, по сути, целостности базы данных: в силу подп. 4 п. 1 ст. 1304 ГК РФ база данных охраняется от несанкционированного извлечения и повторного использования составляющих ее содержание материалов. В то же время положение, согласно которому исключительное право изготовителя базы признается и действует независимо от наличия прав иных лиц на составляющие базу данных материалы (п. 2 ст. 1334 ГК РФ), позволяет говорить о том, что изготовитель базы может вовсе не являться обладателем прав на данные, включенные в состав этой базы: так, множество лиц могут одновременно собирать и хранить данные, полученные из одних и тех же открытых источников. В этих условиях передача изготовителем прав на базу данных, являющуюся объектом смежных прав, не предполагает автоматической передачи прав и на содержащиеся в этой базе данные.
Резюмируя, следует признать, что законодательство, регулирующее отношения по поводу банков данных и баз данных, не создает прочных правовых основ для перехода (передачи) прав на сами данные.
5. В развитие вышеизложенного следует подчеркнуть, что наибольшая потенциальная полезность сегодня усматривается за неструктурированными данными, в том числе «сырыми» данными (англ. – raw data), под которыми понимаются необработанные или обработанные в минимальной степени данные. В новейших системах хранения данных, в частности, в объектных хранилищах (англ. – object storage), накапливаются и сохраняются огромные объемы информации, которые используются разными организациями в различных целях. При этом применительно к этой сфере отмечается следующее: «…организации вынуждены обмениваться массивами данных, продавая их, использовать в качестве вклада по договорам о совместной деятельности и, разумеется, защищать от неправомерных посягательств третьих лиц. Появляются специализированные биржи (маркетплейсы) данных и другие посредники на рассматриваемом рынке, предоставляющие соответствующие сервисы (Data-as-a-Service)»[12]. То есть можно говорить о том, что в условиях отсутствия адекватного гражданско-правового регулирования отношений по поводу информации формируется «рынок оборота данных».
Для целей разрешения возникающих на практике правовых проблем А.И. Савельев предлагает задействовать понятие «массив данных», которое, согласно его идее, должно обозначить самостоятельный оборотоспособный объект прав, нуждающийся в особом правовом режиме.
Сожалея о том, что отечественное «законодательство не содержит дефиниции понятия «массив данных» (dataset в английской терминологии)»[13], автор оставляет без внимания, что английское data set обычно переводится на русский язык как «набор данных» (set – набор, комплект), и предлагает провести четкую границу между понятиями «массив данных» и «набор данных». В обоснование своего предложения А.И. Савельев ссылается на отличия между этими категориями, подчеркивая, что понятие «набор данных», которое определено в Национальной стратегии развития искусственного интеллекта на период до 2030 года как «совокупность данных, прошедших предварительную подготовку (обработку) в соответствии с требованиями законодательства Российской Федерации об информации, информационных технологиях и о защите информации и необходимых для разработки программного обеспечения на основе искусственного интеллекта»[14] является гораздо более узким, нежели «массив данных», поскольку не включает в себя «сырые» данные.
Позиционируя «массив данных» как ценный оборотоспособный актив, требующий особого правового режима, А.И. Савельев в качестве его особенностей называет лишь общеизвестные характеристики информации и больших данных (упоминаются подразделение источников информации на технические и социальные, цифровая форма информации, потенциальная коммерческая ценность информации и проч.) и выводит следующее определение: «массив данных – это существующая в машиночитаемой форме совокупность данных об окружающем мире и (или) о процессах, происходящих в нем, формируемая на основе источников технического или социального происхождения и обладающая действительной или потенциальной коммерческой ценностью»[15]. При этом автор оставляет за рамками своего исследования всякие критерии, которые позволили бы говорить о возникновении «массива данных» в качестве самостоятельного объекта прав, отмечая в том числе: «Сколько таких единиц данных должно присутствовать для того, чтобы сформировать массив данных, – вопрос философский»[16].
Проведенные исследования не позволяют поддержать позицию А.И. Савельева как в части заключения о допустимости оборота самих данных (что обосновывалось выше), так и в части предложения признать «массив данных» самостоятельным объектом гражданских прав. Несмотря на то, что авторские предложения нацелены, казалось бы, на разрешение актуальных, поставленных практикой проблем, вряд ли эти проблемы правильно разрешать посредством игнорирования доктринальных основ и подмены понятий.
Поясняя свою позицию в отношении предложения о создании для «массива данных» особого правового режима, должна указать следующее. Предлагаемым А.И. Савельевым понятием «массив данных» обозначаются те же самые данные, однако слово «массив» создает впечатление, что речь идет о каком-то ином, отличающемся явлении. Между тем в выражении «массив данных» слово «массив» имеет лишь вспомогательное значение, обозначая, по сути, факт обособления определенного объема информации из общей массы информации – подобное происходит, когда мы говорим о фактическом выделении вещей из общей массы таких же вещей: пакет молока, цистерна бензина, вагон зерна. С учетом этого представляется абсолютно безосновательным вводить в законодательство специальное понятие «массив данных», подменяя тем самым понятие «данные», и тем более рассматривать такой «массив» как самостоятельный оборотоспособный объект и устанавливать для него самостоятельный правовой режим.
Несмотря на изложенные критические замечания, вне всяких сомнений, поддержки заслуживает общий посыл статьи А.И. Савельева: для целей нормального функционирования цифровой экономики первоочередной задачей является создание гражданско-правового режима информации и данных, что позволит эффективно развиваться рынку использования данных (в том числе и больших данных), который имеет огромное значение абсолютно для всех сфер.
P.S. IP CLUB лента новостей в сфере интеллектуальной собственности и Digital Law в
facebook – https://www.facebook.com/ipclubin
Вконтакте – https://vk.com/ipclubin
telegram – https://t.me/ipclubin
twitter – https://twitter.com/ipclubin
[1] Рожкова М.А. Персональные и неперсональные данные как объекты гражданских прав // Хозяйство и право. 2019. № 5.
[2] Рожкова М.А. Об имущественных правах на нематериальные объекты в системе абсолютных прав (часть третья – права на сведения и данные как разновидности информации) [Электронный ресурс] // Закон.ру. 2019. 14 января. (0,7 п.л.) URL: https://zakon.ru/blog/2019/01/14/ob_imuschestvennyh_pravah_na_nematerialnye_obekty_v_sisteme_absolyutnyh_prav_chast_tretya__prava_na_
[3] Рожкова М.А. Информация как объект гражданских прав, или Что надо менять в гражданском праве [Электронный ресурс] // Закон.ру. 2018. 6 ноября. (0,4 п.л.) URL: https://zakon.ru/blog/2018/11/06/informaciya_kak_obekt_grazhdanskih_prav_ili_chto_nado_menyat_v_grazhdanskom_prave
[4] Нестеров В.И. Информация в структуре мироздания // URL: https://metatron-nls.ru/wp-content/uploads/2017/12/fiz_osnovy1-1.pdf
[5] Bell D. Die nachindustrielle Gesellschaft. Frankfurt a. M.; N.Y.: Campus, 1989. (цит. по Бехманн Г. Общество знания – трансформация современных обществ / пер. Д.В. Ефременко // Концепция «общества знания» в современной социальной теории: Сб. науч. тр. / Отв. ред. Д.В. Ефременко. М., 2010. С. 42.
[6] Винер Н. Кибернетика, или управление и связь в животном и машине. 1948-1961. 2-е издание. М.: Наука, 1983. С. 208.
[7] Савельев А.И. Гражданско-правовые аспекты регулирования оборота данных в условиях попыток формирования цифровой экономики // Вестник гражданского права. № 1. 2020. С. 68.
[8] Савельев А.И. Комментарий к Федеральному закону от 27 июля 2006 г. № 149-ФЗ «Об информации, информационных технологиях и защите информации» (постатейный). М.: Статут, 2015. С. 17.
[9] Савельев А.И. Гражданско-правовые аспекты регулирования оборота данных в условиях попыток формирования цифровой экономики. С. 68.
[10] ISO/IEC 2382:2015(en) Information technology — Vocabulary // URL: https://www.iso.org/obp/ui/#iso:std:iso-iec:2382:ed-1:v1:en
[11] ISO/IEC/IEEE 24765:2010 Systems and software engineering — Vocabulary. К слову, этот словарь был отменен и заменен ISO/IEC/IEEE 24765: 2017 (URL: https://www.iso.org/standard/50518.html).
[12] Савельев А.И. Гражданско-правовые аспекты регулирования оборота данных в условиях попыток формирования цифровой экономики. С. 63.
[13] Там же. С. 65.
[14] Утв. указом Президента РФ от 10 октября 2019 г. № 490 «О развитии искусственного интеллекта в Российской Федерации».
[15] Савельев А.И. Гражданско-правовые аспекты регулирования оборота данных в условиях попыток формирования цифровой экономики. С. 67.
[16] Там же. С. 65 (примечание).
варианты, модели данных и основные характеристики
В качестве БД обозначается набор данных, которые необходимо упорядочить, а система управления базой данных (СУБД) отвечает за ее администрирование, определяя, таким образом, структуру, порядок, права доступа и зависимости. Для этой цели используется собственный компилятор и подходящая модель, которая определяет архитектуру системы базы данных. На базе архитектуры проводят классификацию БД.
История создания
Базы данных (БД) представляют собой логически структурированные системы для электронного администрирования, которое производится с помощью системы управления базами данных (СУБД), добавив ее в репозиторий. Большинство БД можно открывать, редактировать и консультировать только с использованием конкретных приложений. По этим принципам выполняют классификацию БД. В 1960-х годах концепция электронной информационной базы стала разрабатываться как отдельный слой программного обеспечения между ОС и прикладной программой.
Идея системы электронных БД стала одним из наиболее актуальных нововведений в компьютерных разработках. Первыми моделями, которые были разработаны, были иерархические и сетевые базы данных. IBM в семидесятых произвела революцию в этом секторе, с разработкой модели реляционных БД. Наиболее успешными продуктами в то время были язык запросов БД Oracle SQL и преемники IBM, SQL/DS и DB2.
Понятие БД и классификация БД
Сегодня системы баз данных имеют важное значение во многих областях науки, техники и пользовательского применения. Любой тип программного обеспечения, разработанный для компаний, основан на надежных БД с большим количеством опций и инструментов для системных администраторов. Безопасность данных также приобретает все большее значение, в электронных БД хранятся и шифруются пароли, личные данные и даже электронные валюты.
Современная финансовая система представляет собой не что иное, как сеть баз данных, в которой большая часть денежных сумм существует только в виде электронных единиц информации, защита которых с помощью безопасных БД является одной из основных задач финансовых учреждений.
В зависимости от изменчивости базы данных ее тип относят по классификации БД к статическому или динамическому.
Функции статических БД:
- Позволяют только чтение данных, исключая модификацию.
- Применяются для биографий и исторических фактов или сценариев, к которым можно обращаться для исследования, без необходимости изменения содержания.
- Они безопасны и просты в использовании при подключении к сети.
Функции динамических БД:
- Они обладают понятием самоуправления.
- Могут быть связаны с динамическими сетями.
- Эта структурная ассоциация позволяет хранить и обновлять информацию базы данных.
- Использует HTML в качестве языка связи между сетью и динамической БД.
- Наиболее используемые языки для создания динамических сетей, связанных с BBDD: Perl, CGI, PHP, JSP и ASP.
Основными СУБД, которые работают с динамическими веб-страницами, являются PostgresQL, MySQL, Oracle и Microsoft SQL.
Для того чтобы понять, какие существуют варианты классификации БД, используемых в научной и образовательной среде, рассматривают:
- библиографические;
- документальные;
- специализированные;
- справочники.
Функциональные возможности библиографических БД:
- Связаны со старыми записями, которые содержат информацию о местонахождении книги или документа.
- Не содержат полный текст, только ссылку.
- Благодаря таким форматам, как PDF, позволяет получать доступ к оригинальным статьям, на которые есть ссылки.
- С развитием технологий включаются ссылки из других СМИ.
Особенности специализированных БД:
- Содержат точную информацию и ориентированы на конкретную тему.
- Используются в академической и научной среде.
- Для некоторых случаев не рассматриваются как правильные BBDD: например, телефонный справочник, список контактов компании или международной компании.
Модели электронной обработки
Для того чтобы подробно изучить вопрос, какие существуют варианты классификации БД, нельзя обойти тему моделей. Иерархические базы данных были первыми, разработанными в 60-х годах в трудах Холлерита, они зависели от типа хранения информации 1N/ NN в форме перевернутого дерева.
Отношения имеют тип 1N, когда родительский узел может иметь несколько дочерних подузлов, но дочерний узел не может принадлежать нескольким родительским. Их недостаток в том, что избыточность данных представлена не очень хорошо.
Модель базы данных в сети, предложенная CODASYL, является его первой системой управления (IMS), появилась она в 1968 году для программы НАСА «Аполлон». Она решала некоторые проблемы предыдущей иерархической модели, которые уже практически не используются в современном IT-процессе.
Для того чтобы понять современную модель, нужно рассмотреть, какие в классификации БД существуют отношения между родительскими и дочерними узлами. Сегодня используются отношения типа NN, когда дочернему подузлу разрешено принадлежать нескольким родительским узлам. Вместе с иерархической моделью она формирует первое поколение БД.
Преимущества модели: они предлагают отличную стабильность, хорошую производительность и лучшую избыточность обработки. Недостатком модели является сложность системы, которая требует знаний в области программирования.
Особенности транзакционных баз данных:
- Единственная цель — отправка и получение данных с высокой скоростью.
- Они нацелены на качественный анализ и производственные данные.
- Уникальным назначением является сбор и восстановление данных с максимально возможной скоростью, поэтому избыточность и дублирование информации не является проблемой, как с другими БД.
- Позволяют соединение с реляционными БД.
- Операции являются атомарными, в этом типе возможно только то, что они выполняются полностью (целостность) или не выполняются вообще.
Основные различия в базах данных
Документальные — возвращают содержимое, работают с когнитивными и концептуальными документами, принадлежат к интеллектуальной и академической среде. У них есть менеджеры документов и контента, такие, как CDS/ISIS, Filemaker, Knosys или Imagic Text для терминологического контроля. Они легкодоступны при использовании стандартизированных языков запросов и имеют классификацию БД по типу модели данных.
Реляционные основаны на установлении связей между наборами данных, организованы в виде таблиц, которые соответствуют некоторым основным требованиям. Они имеют фиксированное количество полей. У каждого атрибута есть имя и множество возможных значений. Каждая запись уникальна и идентифицируется с помощью ключа. Они реализуют язык запросов SQL и основаны на модели, разработанной Эдгаром Коддом в 70-х годах.
Объектно ориентированные базы данных возвращают физические файлы или программный код, появились они в конце ХХ века. Используются в промышленном производстве и дизайне. Работают с объектно ориентированным языком, таким как C++ или Python. Соблюдают «золотое правило»: постоянство, менеджер вторичного хранилища, параллелизм, восстановление и объект запроса.
Системы управления СУБД
Система управления базами данных (СУБД) — термин для описания функций и требований транзакций в системе управления БД, сокращенно это ACID (АСИД) от атомарности, согласованности, изоляции и долговечности. Эти четыре параметра охватывают наиболее важные требования к СУБД, совместимые с ACID:
- Atomicity (атомарность) обозначает свойство «все или ничего» менеджеров БД для того, чтобы запрос был действительным, транзакция была выполнена правильно и реализована с верным порядком процедур.
- Консистенция, или когерентность, когда сделка БД остается стабильной, требующей постоянного контроля всех операций.
- Изоляция является условием и гарантией, что транзакции не мешают друг другу, что обычно достигается путем блокирования определенных функций, которые изолируют данные, участвующие в сделке.
- Долговечность означает, что в СУБД все данные хранятся в долгосрочной перспективе даже после заключения сделки, а также в случае аварии системы, если падает СУБД. Для этого условия необходимы записи транзакций, которые протоколируют все происходящие процессы.
Классификация функций и требований
База данных хранит информацию и связывает ее в логическую единицу вместе с метаданными, необходимыми для обработки. Это очень полезный инструмент для управления большими файлами с простым запросом, обладающий системой разрешений, которая определяет, какие пользователи или программы имеют право доступа.
Классификация БД:
Функция | Назначение |
Хранить данные | В БД хранятся тексты, документы, пароли. В электронном формате, доступ к данным можно получить через консультации. |
Изменить данные | В зависимости от того, какие разрешения доступны, большинство БД позволяют редактировать фильтры защиты данных. |
Очистить данные | Записи в большинстве вариантов классификации БД могут быть полностью удалены, не оставляя пробелов. В некоторых случаях удаленные данные могут быть восстановлены, но в других они удаляются навсегда. |
Управление метаданными | Обычно информация хранится с метаданными или метатегами, которые поддерживают порядок в БД и делают возможной функцию поиска. Метаданные также часто используются для регулирования разрешений. |
Безопасность данных | БД должны быть защищены, чтобы предотвратить доступ неуполномоченных лиц к информации, которую они хранят. |
Целостность данных | Целостность данных означает, что они должны соответствовать определенным правилам для обеспечения их корректности и определения бизнес-логики банка данных. |
Многопользовательская функция | Приложения БД обеспечивают доступ с разных устройств. Распределение разрешений и безопасность данных являются элементарными в многопользовательском использовании. |
Оптимизировать запросы | Технически БД должна быть в состоянии обрабатывать запросы наилучшим образом, чтобы гарантировать хорошую производительность. |
Триггеры и хранимые процедуры | Эти две процедуры представляют собой мини-приложения, хранящиеся в СУБД. Триггеры и хранимые процедуры являются типичными процессами реляционных баз данных. |
Прозрачность системы | Прозрачность системы актуальна, особенно в распределенных моделях классификации БД. |
Иерархическая модель
Различия между наиболее распространенными моделями БД являются результатом технической эволюции электронной передачи данных, которая не только преследовала цели эффективности и управляемости, но также расширяла возможности наиболее известных производителей. Это самая старая модель, которая сегодня значительно превосходит реляционную, хотя в последнее время наблюдается рост ее популярности.
XML использует эту систему для хранения информации. Некоторые страховые компании и банки обращаются к иерархическим базам данных в самых старых приложениях. Наиболее известная — это база IBM IMS/DB.
В иерархической модели классификации данных БД существуют строгие и однозначные зависимости. Каждая запись имеет только один прецедент (Parent-Child Relationships, PCR), за исключением корня (root), составляющего древовидную схему. Хотя каждый дочерний узел может иметь только один родительский, «родители» могут иметь столько дочерних узлов, сколько они хотят.
Учитывая строгое иерархическое упорядочение, уровни, не имеющие прямой связи, не взаимодействуют друг с другом, поэтому соединить два разных дерева непросто. При этом иерархические структуры баз данных чрезвычайно гибки и понятны. Записи с «детьми» называются записями, а те, которые без, — листьями, и обычно являются документами в записи для листьев в классификации БД. Запросы к иерархической базе данных достигают листьев, начиная с корня и проходя через различные записи.
Графически ориентированная DMS
Сетевая модель развивалась почти одновременно с реляционной, хотя со временем она была побеждена конкурентами. В отличие от иерархической модели здесь записи не раскрывают строгих отношений «родитель — потомок», но каждая может иметь несколько прецедентов, что дает ей сетевую структуру своего имени. Для доступа к записи также существует уникальный и неизменный путь.
В модели сетевой базы данных нет фиксированной иерархии, и поэтому существует несколько путей, ведущих к одному и тому же пункту назначения. Запись, расположенная в центре изображения, может быть теоретически доступна из пяти других, а получив к ней доступ, можно получить доступ к пяти другим записям.
В сетевой модели также могут быть определены зависимости — регистр, расположенный выше. Он не связан напрямую с регистром в крайнем правом положении, поэтому для его достижения должен проходить через регистр в центре, который может принять или отклонить. Можно связаться с расположенным слева вверху. В сетевой модели записи добавляются или удаляются без влияния на глобальную структуру.
Сегодня эта модель используется на больших компьютерах. В других областях по-прежнему полагаются на иерархическую модель или обращаются к реляционной модели, гораздо более гибкой и простой в использовании. Некоторые известные модели сетевых баз данных — это UDS Siemens и DMS Sperry Univac. Со временем оба производителя также разработали интересные смешанные формы между сетевой моделью и реляционной. Графически ориентированная база данных благодаря своей ретикулярной структуре считается современной эволюцией сетевой модели.
Масштабируемость хранилищ
В документноориентированной модели базы данных документы являются основной единицей хранения информации. Эти единицы являются теми, которые структурируют данные, и их не следует путать с документами программ обработки текста. Здесь данные хранятся в так называемых парах «ключ — значение».
Поскольку ни структура, ни количество пар не определены, документы, составляющие базу данных, ориентированную на документы, могут сильно отличаться друг от друга. Каждый документ сам по себе является закрытой единицей, и установить отношения между документами непросто.
В последние годы благодаря успеху NoSQL документарные базы данных пережили большой бум, особенно благодаря хорошей масштабируемости. Примером системы баз данных этого типа является MongoDB. В модели базы данных, ориентированной на документы, данные хранятся в отдельных документах, а не в таблицах, как в реляционной модели.
Эти системы особенно интересны для веб-приложений, поскольку они позволяют сохранять полные HTML-формы. Необходимо подчеркнуть, что среди различных основанных на документе систем есть заметные различия, от синтаксиса до внутренней структуры, поэтому не все ориентированные на документы базы данных подходят для этого сценария. Именно из-за этих различий существует несколько систем баз данных, ориентированных на репутационные документы Lotus Notes, Amazon SimpleDB, MongoDB, CouchDB, Riak, ThruDB и OrientDB.
Преимущества и недостатки
Надлежащие системы управления базами данных помогают получить лучший доступ к данным, а также оптимизировать управление ими. В свою очередь, точечный доступ помогает конечным пользователям быстро и эффективно обмениваться данными в рамках выполнения задач организации.
Модель базы данных | Год создания | Преимущества | Недостатки |
Иерархическая | 1960-й | Очень быстрый доступ для чтения, четкая структура, технически простой. | Исправлена структура в дереве, которая не допускает связи между деревьями. |
Сетевая | Начало 1970-х | Поддерживает несколько способов доступа к записи, без строгой иерархии. | Плохой обзор с большими базами данных. |
Реляционная | 1970-й | Простое, гибкое создание и редактирование, легко расширяемое, быстрый ввод в эксплуатацию, простое расширение, быстрый запуск, очень динамичный контекст. | Неуправляемый с большими объемами данных, плохой сегментацией, атрибутами искусственного ключа, внешним интерфейсом программирования, плохо отражает свойства и поведение объектов. |
Ориентирована на объекты | Конец 1980-х | Лучшая поддержка объектноориентированных языков программирования, хранение мультимедийного контента. Поддерживает объектноориентированные языки программирования, позволяет хранить мультимедийный контент. | Более низкая производительность с большими объемами данных, мало совместимых интерфейсов. |
Ориентирована на документы | 1980-е | Соответствующие данные хранятся централизованно в независимых документах, свободной структуре, концепции мультимедиа, относится к классификации сущностей БД. | Организационная работа относительно высока, часто требует навыков программирования. |
Области применения
Человек можете не осознавать этого, но базы данных есть везде. Независимо от того, знает ли он о них что-нибудь или нет, их влияние на повседневную жизнь очень велико. От погодных приложений до фильмов онлайн, базы данных отвечают за многие услуги, которыми люди пользуются ежедневно, и чтобы не запутаться в выросшем объеме информации, используют классификацию данных в БД.
Области применения СУБД:
- Банковское дело — для информации о клиентах, счетов и займов, а также банковских операций.
- Авиакомпании — для бронирования и информации о расписании. Авиакомпании были одними из первых, кто использовал базы данных в географически распределенном порядке: терминалы, расположенные по всему миру, обращались к центральной системе баз данных через телефонные линии и другие сети передачи данных.
- Университеты — для информации о студентах, регистрации курсов и оценок.
- Операции с кредитными картами — для покупок по кредитным картам и формирования ежемесячных выписок.
- Телекоммуникации — для ведения записей о совершенных вызовах, составления ежемесячных счетов, поддержания баланса на телефонных карточках с предоплатой и хранения информации о сетях связи.
- Финансы — для хранения информации о запасах, продажах и покупках финансовых инструментов, таких, как акции и облигации.
- Продажи — информация о клиенте, продукте и покупке.
- Производство — для управления цепочкой поставок и для отслеживания производства товаров на фабриках, запасов товаров на складах, в магазинах и заказов на товары.
- Человеческие ресурсы — для получения информации о сотрудниках, заработной плате, налогах на заработную плату и льготах, а также для получения зарплат.
Будущие тенденции
В будущем мировоззрении баз данных по-прежнему важным аспектом будет оставаться World Wide Web (WWW, или, в сокращенном виде, веб) как средство публикации документов и как средство обмена информацией. WWW предоставляет одну из самых разнородных и сложных сред в области взаимодействия.
В последнее время появились технологии и стандарты, направленные на то, чтобы сделать сеть масштабируемой и управляемой инфраструктурой. Одной из таких технологий является XML, которая преобразована в Интернет, в систему базы данных, в стиле обработчиков традиционной БД, которая дает гораздо лучшие результаты, чем машины поиска. Задача состоит в том, чтобы интегрировать эту функциональность в XML и максимально использовать стратегическую информацию, которую пользователь может найти в Интернете.
Новыми тенденциями являются упреждающий и прогнозирующий анализ производительности, нагрузочное тестирование базы данных, использование NOSQL — mongodb и cassandra и BigData (Hadoop) в корпоративных и облачных средах.
1.3. Виды баз данных
Базы данных | БГУИР, ПОИТ |
|
|
Виды баз данных базируются на даталогических моделях и представлены следующим списком:
Картотеки.
Сетевые базы данных.
Иерархические базы данных.
Реляционные базы данных.
Многомерные базы данных.
Объектно-ориентированные базы данных.
Дедуктивные базы данных.
NoSQL базы данных.
Картотека (card index) – упорядоченное (по алфавиту, дате и т.п.) собрание данных в виде записей («карт»), каждая из которых предоставляет сведения о ка- ком-то объекте базы данных. Современный аналог картотек – «табличка» в Excel.
В сетевых (network) БД каждый элемент может быть связан с другим, а иерархические (hierarcy) БД построены на основе той или иной иерархической структуры данных (например, на основе дерева).
Типичные примеры «иерархических БД»:
Файловая система.
Реестр Windows.
LDAP и Active Directory.
Реляционные (relational) БД основаны на теоретико-множественной реляционной даталогической модели (предложена доктором Эдгаром Коддом в 1970 году). Все данные представлены в виде (связанных между собой) таблиц, разбитых на строки и столбцы.
Стр: 12/248
Базы данных | БГУИР, ПОИТ |
|
|
Многомерные БД (OLAP, online analytical processing) предназначены для обработки данных из различных источников и временных данных. Могут строиться на основе реляционных БД или на основе своих, более сложных хранилищ.
В объектно-ориентированных (object-oriented) БД данные оформлены в виде моделей объектов, включающих прикладные программы, которые управляются внешними событиями.
Эта технология напоминает объектно-ориентированное программирование (ООП) в применении к БД. СУБД для работы с такими технологиями бывают объектными и объектно-реляционными.
Дедуктивная (deductive) БД состоит из двух частей: экстенциональной (содержащей факты) и интенциональной (содержащей правила для логического вывода новых фактов).
Основным отличием дедуктивной СУБД от реляционной является то, что правила интенциональной части БД и запросы пользователей могут содержать рекурсию.
NoSQL (not only SQL) БД реализуют ряд подходов, имеющих существенные отличия от используемых в реляционных СУБД. Описание схемы данных в случае использования NoSQL-решений может осуществляться через использование различных структур данных: хеш-таблиц, деревьев и т.д.
Стр: 13/248
База данных — это что такое: где используется и как создается
Это устойчивое словосочетание обычно вызывает ассоциации с кино про спецслужбы. На самом деле база данных это та вещь, с которой мы сталкиваемся и в повседневной жизни довольно часто.
В широком смысле это понятие можно отнести к любой информации, которая расположена в соответствии с каким-нибудь принципом упорядоченности. Например карточки с именами и телефонами, сложенные по алфавиту. Каталог на сайте, где одежда или обувь распределены по цветам и размерам, это тоже своего рода база данных.
В цифровом мире
Однако в информатике базой данных может быть только цифровая информация, которую сможет обрабатывать и сохранять компьютер. Объекты в такой базе сгруппированы по какому-нибудь одному или нескольким общим свойствам. По этим параметрам система и отыскивает необходимое практически моментально.
Базы данных на любой вкус и цвет
Базы данных — совокупность хранимых объектов — бывают разных типов и каждый тип наиболее подходит для своей задачи. Базу иерархического типа можно изобразить в виде дерева, каждый объект в ней способен содержать в себе несколько подобъектов, но сам может быть частью только одного конкретного, вышестоящего.
Пример такой БД может увидеть каждый в своей Windows, структура папок этой операционной системы размещена именно в иерархическом порядке. Благодаря этому использование Windows очень простое в ручном режиме.
Сетевая база данных чем-то напоминает иерархическую. Её отличие в том, что каждый объект может зависеть сразу от нескольких вышестоящих. Поэтому при удалении одного объекта не произойдёт удаления зависимых от него. Такая модель БД подходит для создания программ управления финансами и их упорядочения.
Реляционная база данных одна из самых знакомых большинству из нас. По сути это таблица, набор таблиц, где данные лежат в ячейках. А отыскать их быстро можно по параметрам столбцов и строк этих таблиц.
Визуальный пример такой базы данных висит у вас на стене. Отыскав в календаре строчку недели мы можем легко узнать, какое число будет в нужный нам день, выбрав соответствующий ему столбец.
Зачем базы данных нужны лично нам
Умение обращаться с базой данных может пригодиться в разных областях деятельности. Если у вас есть собственный сайт, управление им существенно облегчится, если создать для него собственную базу данных. Благодаря ей контент сайта можно динамически обновлять и дополнять. Станет более удобной система управления.
Крупные объёмы информации будет легче хранить и использовать. Если на вашем сайте ожидается большое количество пользователей, создание собственной базы данных упростит работу с ними. Больше полезных советов по обслуживанию сайтов можно найти в этом разделе по ссылке.
Как ими управлять
Самое распространённое средство для работы с базами данных — MySql, оно поддерживает множество языков программирования. Подходит для выполнения различных задач — для создания баз, управления ими, для выборки отдельных записей из базы.
Эта система управления может работать с разными типами баз данных. Ещё одна сторона её универсальности — возможность пользоваться практически в любой операционной системе.
Чаще всего в работе с системой mysql используют язык php. Это один из самых популярных языков программирования для создания баз данных и для построения веб-сайтов. Его особенность в том, что он подходит ко множеству систем управления базами данных.
К тому же, если правильно спланировать сайт, написанный на php, его будет легко расширять и дополнять. Благодаря динамичности этого языка ваш сайт сможет быстро развиваться, принося больше радости и дохода.
Построй свой сайт эффективно
Хочется уже попробовать сделать собственный сайт функциональным и удобным? Загляните в видеокурс по созданию сайтов средствами PHP — «PHP и MySQL с Нуля до Гуру», с его помощью новичку в этой области будет проще освоиться.
Может оказаться, что это даже станет вашим хобби или профессией. Так что попробуйте сразу это средство разработки на практике, используя рекомендации из курса.
В моём блоге вы найдёте немало других интересных статей. Не забудьте подписаться на обновления, чтобы не пропустить самые свежие посты. Из моей группы Вконтакте обновления можно получать прямо в новостную ленту своей странички, подписавшись на группу.
Simple English Wikipedia, бесплатная энциклопедия
База данных — это система для хранения и обработки данных (любого типа информации).
Механизм базы данных может сортировать, изменять или обслуживать информацию в базе данных. Сама информация может быть сохранена множеством разных способов; до появления цифровых компьютеров использовались картотеки, печатные книги и другие методы. Сейчас большая часть данных хранится в компьютерных файлах.
Система баз данных — это компьютерная программа для управления электронными базами данных.Очень простым примером системы баз данных может быть электронная адресная книга.
Данные в базе данных каким-то образом организованы. До появления компьютеров данные сотрудников часто хранились в картотеке. Обычно на каждого сотрудника приходилось по одной карточке. На карточке можно было найти такую информацию, как дата рождения или имя сотрудника. В базе тоже есть такие «карточки». Для пользователя карта будет выглядеть так же, как и в старые времена, только теперь она будет на экране.К компьютеру информация на карте может храниться по-разному. Каждый из этих способов известен как модель базы данных. Наиболее часто используемая модель базы данных называется моделью реляционной базы данных . Он использует отношения и наборы для хранения данных. Обычные пользователи, говорящие о модели базы данных, не будут говорить об отношениях; вместо этого они будут говорить о таблицах базы данных.
Используется для систем баз данных:
- Они хранят данные и предоставляют средства (инструменты) для поиска определенных записей в заданном наборе данных.
- Они хранят специальную информацию, используемую для управления данными. Эта информация называется метаданными и не показывается всем людям, просматривающим данные.
- Они могут решить случаи, когда многие пользователи хотят получить доступ (и, возможно, изменить) одни и те же записи данных.
- Они управляют правами доступа (кому разрешено просматривать данные, кто может их изменять)
- Когда много пользователей задают вопросы к базе данных, на вопросы нужно отвечать быстрее. Таким образом, последний, кто задаст вопрос, может получить ответ в разумные сроки.
- Некоторые атрибуты важнее других и могут использоваться для поиска других данных. Это называется индексацией. Индекс содержит все важные данные и может использоваться для поиска других данных.
- Они гарантируют, что данные всегда имеют контекст. Существует множество различных правил, которые можно добавить, чтобы сообщить системе базы данных, имеют ли данные смысл. Одно из правил могло бы сказать, что В ноябре 30 дней . Это означает, что если кто-то хочет ввести 31 ноября в качестве даты, это изменение будет отклонено.
В базах данных некоторые данные время от времени изменяются. При изменении данных могут возникнуть проблемы; например, могла произойти ошибка. Ошибка может сделать данные бесполезными. Система баз данных проверяет данные на соответствие определенным требованиям. Он делает это с помощью транзакции. В базе данных есть два момента времени: время до изменения данных и время после изменения данных. Если при изменении данных что-то пойдет не так, система базы данных просто вернет базу данных в состояние, в котором она была до изменения.Это называется откатом . После того, как все изменения выполнены успешно, они зафиксированы . Это означает, что данные снова обретают смысл; зафиксированные изменения больше нельзя отменить.
Для этого в базах данных действует принцип ACID:
- Все . Либо все задачи данного набора (называемые транзакцией) выполнены, либо ни одна из них не выполняется. Это известно как Атомарность .
- Завершено .Данные в базе данных всегда имеют смысл. Нет недоделанных (недействительных) данных. Это известно как Согласованность .
- Независимый . Если много людей работают с одними и теми же данными, они не будут видеть (или влиять) друг на друга. У каждого из них свой взгляд на базу данных, независимый от других. Это известно как Isolation .
- Выполнено . Сделки должны быть совершены , когда они будут выполнены. Как только совершенные, они не могут быть отменены.Это известно как Durability .
Есть разные способы представления данных.
- Простые файлы (называемые плоскими файлами): это самая простая форма системы баз данных. Все данные хранятся в файле в виде простого текста. Каждый фрагмент информации может быть разделен новой строкой, запятой и т. Д.
- Иерархическая модель: данные организованы в виде древовидной структуры. Интересные данные находятся на листьях дерева. Отношения между записями данных таковы, что некоторые записи напрямую зависят от других записей.
- Сетевая модель: используйте записи и наборы для хранения данных. Подобна иерархической модели, но имеет гораздо более сложную структуру.
- Реляционная модель: использует теорию множеств и логику предикатов. Это широко используется. Данные выглядят так, как будто они организованы в таблицы. Эти таблицы затем можно объединить, чтобы из них можно было выбирать простые запросы.
- Объектно-ориентированная модель: данные представлены в виде объектов, используемых в объектно-ориентированном программировании. Они могут напрямую взаимодействовать с используемым языком ООП, поскольку оба они имеют одинаковое представление данных внутри.
- Объектно-реляционная модель: это гибрид объектно-ориентированной модели и реляционной модели.
- NoSQL: это новый тип модели базы данных, который все чаще используется в отрасли для обработки больших данных и веб-приложений реального времени. [1] Данные в этой модели хранятся в виде пар ключ-значение без какой-либо строгой иерархии, как в других моделях. Системы NoSQL также называют «Не только SQL», потому что они не позволяют использовать языки запросов, подобные языку структурированных запросов.
Модель
Как и в реальной жизни, одни и те же данные можно рассматривать с разных точек зрения, и их можно организовывать по-разному. При организации данных следует учитывать следующие факторы:
- Каждый элемент данных следует сохранять как можно меньше раз. Представьте себе, что незамужняя женщина внесена в записи округа, Государственный департамент автотранспортных средств, Федеральный департамент социального обеспечения и Департамент международных паспортов. Если она выходит замуж и решает сменить имя, все эти ведомства должны быть уведомлены.Если бы все отделы были связаны, а ее имя сохранено только в одном месте, то обновление было бы несложным.
- Если данные хранятся в нескольких разных базах данных, они могут противоречить друг другу.
- Эта проблема замедляет поиск данных. Если данных много, эта проблема хранения одного фрагмента данных во многих местах займет много места. В нашем примере было четыре базы данных на одного человека. Это будет восемь изменений, если у второго человека будет такая же проблема.
- Если у вас есть эта проблема, для ее решения был разработан метод под названием нормализация базы данных.В настоящее время существует шесть нормальных форм. Это способы сделать базу данных быстрее и сделать данные меньше места.
типов баз данных | Модели базы данных
База данных : База данных — это организованный набор взаимосвязанных данных, хранящихся в компьютере.
Важность базы данных:
• Это дает нам высокоэффективный метод для легкой обработки большого количества различных типов данных.
• Он позволяет систематически хранить большие объемы данных, и эти данные легко и эффективно и точно извлекать, фильтровать, сортировать и обновлять.
Типы модели базы данных
Модель базы данных: Она определяет логическую структуру базы данных и в основном определяет, каким образом данные могут храниться, организовываться и обрабатываться.
Существует четыре общих типа модели базы данных, которые полезны для разных типов данных или информации. В зависимости от ваших конкретных потребностей можно использовать одну из этих моделей.
1. Иерархические базы данных.
2. Сетевые базы данных.
3.Реляционные базы данных.
4. Объектно-ориентированные базы данных.
1. Иерархические базы данных
Это одна из старейших моделей баз данных, разработанных IBM для системы управления информацией. В иерархической модели базы данных данные организованы в древовидную структуру. Простым языком мы можем сказать, что это набор организованных данных в древовидной структуре.
Этот тип модели базы данных в настоящее время используется редко. Его структура подобна дереву с узлами, представляющими записи, и ветвями, представляющими поля.Реестр Windows, используемый в Windows XP, является примером иерархической базы данных. Параметры конфигурации хранятся в виде древовидной структуры с узлами.
На следующем рисунке показана обобщенная структура модели иерархической базы данных, в которой данные хранятся в виде древовидной структуры (данные представлены или хранятся в корневом узле, родительском узле и дочернем узле).
На следующем рисунке показан пример иерархической модели базы данных для системы управления университетом.Этот тип базы данных использует отношения «родитель-потомок» для хранения данных.
Интернет-обучение MSBI
Преимущества
• Модель позволяет легко добавлять и удалять новую информацию.
• Доступ к данным наверху Иерархии осуществляется очень быстро.
• Он хорошо работал с линейными носителями данных, такими как ленты.
• Это хорошо относится ко всему, что работает через отношения «один ко многим». Например; есть президент с множеством менеджеров ниже них, и у этих менеджеров много подчиненных, но у каждого служащего есть только один менеджер.
Недостатки
• Он требует, чтобы данные постоянно сохранялись во многих различных объектах.
• Сегодня больше не используются линейные носители данных, такие как ленты.
• Для поиска данных СУБД должна пройти через всю модель сверху вниз, пока не будет найдена требуемая информация, что делает запросы очень медленными.
• Эта модель поддерживает только отношения «один ко многим», отношения «многие ко многим» не поддерживаются.
Концепции баз данных и SQL
2.Сетевые базы данных
Это похоже на модель иерархической базы данных, из-за которой ее часто называют модифицированной версией иерархической базы данных. Модель сетевой базы данных организовала данные больше как граф и может иметь более одного родительского узла. Сетевая модель — это модель базы данных, задуманная как гибкий способ представления объектов и их отношений.
Преимущество
• Сетевая модель концептуально проста и удобна в разработке.
• Сетевая модель может более эффективно представлять избыточность данных, чем в иерархической модели.
• Сетевая модель может обрабатывать отношения «один ко многим» и «многие ко многим», что является реальной помощью в моделировании реальных ситуаций.
• Доступ к данным проще и гибче, чем в иерархической модели.
• Сетевая модель лучше, чем иерархическая, в том, что она изолирует программы от сложных деталей физического хранилища.
Недостаток:
• Все записи ведутся с использованием указателей, поэтому вся структура базы данных становится очень сложной.
• Операции вставки, удаления и обновления любой записи требуют настройки большого количества указателей.
• Внести структурные изменения в базу данных очень сложно.
3. Реляционная база данных
Реляционная база данных разработана Э. Ф. Коддом в 1970 году. Различные программные системы, используемые для поддержки реляционных баз данных, известны как система управления реляционными базами данных (СУБД). В этой модели данные организованы в виде строк и столбцов. I.е., двумерные таблицы, и связь поддерживается путем хранения общего поля. Он состоит из трех основных компонентов.
В реляционной модели широко используются три ключевых термина, такие как отношения, атрибуты и домены. Отношение не что иное, как таблица со строками и столбцами. Именованные столбцы отношения называются атрибутами, и, наконец, домен — это не что иное, как набор значений, которые могут принимать атрибуты. На следующем рисунке представлен обзор рациональной модели базы данных.
Терминология, используемая в реляционной модели
• Кортеж: каждая строка в таблице называется кортежем.
• Мощность отношения: количество кортежей в отношении определяет его мощность. В этом случае отношение имеет мощность 4.
• Степень отношения: каждый столбец в кортеже называется атрибутом. Количество атрибутов в отношении определяет его степень. Отношение на рисунке имеет степень 3.
Ключи связи-
• Первичный ключ — это ключ, который однозначно идентифицирует таблицу.У него нет нулевых значений.
• Внешний ключ — он относится к первичному ключу какой-либо другой таблицы. Он разрешает только те значения, которые появляются в первичном ключе таблицы, на которую он ссылается.
Вот некоторые из примеров реляционной базы данных.
Oracle: Oracle Database обычно называют Oracle RDBMS или просто Oracle. Это многомодельная система управления базами данных, производимая и продаваемая корпорацией Oracle.
MySQL: MySQL — это система управления реляционными базами данных (СУБД) с открытым исходным кодом, основанная на языке структурированных запросов (SQL).MySQL работает практически на всех платформах, включая Linux, UNIX и Windows.
Microsoft SQL Server: Microsoft SQL Server — это СУБД, которая поддерживает широкий спектр приложений для обработки транзакций, бизнес-аналитики и аналитики в корпоративных ИТ-средах.
PostgreSQL: PostgreSQL, часто просто Postgres, представляет собой систему управления объектно-реляционными базами данных (ORDBMS) с упором на расширяемость и соответствие стандартам.
DB2: DB2 — это СУБД, предназначенная для эффективного хранения, анализа и извлечения данных.
В следующих таблицах показан образец модели реляционной базы данных для банковской среды, в которой данные, связанные с банком, хранятся в виде двухмерных таблиц.
Преимущество
• Реляционная модель — одна из самых популярных моделей баз данных.
• В реляционной модели изменения в структуре базы данных не влияют на доступ к данным.
• Редактирование любой информации в виде таблиц, состоящих из строк и столбцов, намного проще для понимания.
• Реляционная база данных поддерживает концепцию независимости данных и независимости от структуры, что значительно упрощает проектирование, обслуживание, администрирование и использование базы данных по сравнению с другими моделями.
• Здесь мы можем написать сложный запрос для доступа или изменения данных из базы данных.
• Легче поддерживать безопасность по сравнению с другими моделями.
Недостатки
• Отображение объектов в реляционной базе данных очень сложно.
• В реляционной модели отсутствует объектно-ориентированная парадигма.
• Целостность данных сложно обеспечить с помощью реляционной базы данных.
• Реляционная модель не подходит для огромной базы данных, но подходит для небольшой базы данных.
• Накладные расходы на оборудование, которые делают его дорогостоящим.
• Простота дизайна может привести к плохому дизайну.
• Система реляционных баз данных скрывает от пользователей сложности реализации и детали физического хранения данных.
4. Объектно-ориентированные базы данных
База данных объектов — это система, в которой информация представлена в форме объектов, используемых в объектно-ориентированном программировании.Объектно-ориентированные базы данных отличаются от реляционных баз данных, ориентированных на таблицы. Объектно-ориентированная модель данных основана на концепции языка объектно-ориентированного программирования, которая сейчас широко используется. Наследование, полиморфизм, перегрузка. Идентификация объекта, инкапсуляция и сокрытие информации с помощью методов, обеспечивающих интерфейс для объектов, являются одними из ключевых концепций объектно-ориентированного программирования, нашедших применение при моделировании данных. Объектно-ориентированная модель данных также поддерживает богатую систему типов, включая структурированные типы и типы коллекций.
На следующем рисунке показана разница между отношениями и объектно-ориентированной моделью базы данных.
На следующем рисунке показан пример объектно-ориентированной модели.
Преимущества
• Объектная база данных может обрабатывать различные типы данных, в то время как реляционная база данных обрабатывает отдельные данные. В отличие от традиционных баз данных, таких как иерархические, сетевые или реляционные, объектно-ориентированные базы данных могут обрабатывать различные типы данных, например изображения, голосовое видео, включая текст, числа и так далее.
• Объектно-ориентированные базы данных обеспечивают возможность повторного использования кода, моделирование реального мира, а также повышенную надежность и гибкость.
• Объектно-ориентированная база данных имеет низкие затраты на обслуживание по сравнению с другой моделью, поскольку большинство задач в системе инкапсулированы, их можно повторно использовать и включать в новые задачи.
Интернет-обучение MSBI
Недостатки
• Не существует универсально определенной модели данных для ООСУБД, и большинству моделей не хватает теоретической основы.
• По сравнению с РСУБД использование ООСУБД все еще относительно ограничено.
• Отсутствует поддержка безопасности в OODBMS, которые не обеспечивают адекватных механизмов безопасности.
• Система более сложная, чем у традиционных СУБД.
6 Управление базой данных
6 Управление базой данных
Глава 6
Управление базой данных
6.1 Иерархия данных [Рисунок 6.1] [Слайд 6-4]
Данные — это основные ресурсы организации.Данные, хранящиеся в компьютерных системах, образуют иерархию, простирающуюся от одного бита до
база данных, основная регистрационная единица фирмы. Каждая более высокая ступень этой иерархии
организованы из компонентов, расположенных ниже.
Данные логически организованы в:
1. Биты (символы)
2. Поля
3. Записи
4. Файлы
5. Базы данных
Бит (символ) — бит — наименьшая единица
представление данных (значение бита может быть 0 или 1).Восемь бит составляют байт, который может
представляют символ или специальный символ в коде символа.
Поле — поле состоит из группы
символы. Поле данных представляет собой атрибут (характеристику или качество) некоторых
сущность (объект, человек, место или событие).
Запись — запись представляет собой совокупность
атрибуты, описывающие сущность реального мира. Запись состоит из полей, каждое из которых
описание атрибута сущности.
Файл — группа связанных записей. Файлы
часто классифицируются приложением, для которого они в основном используются (сотрудник
файл). Первичный ключ в файле — это поле (или поля), значение которого
идентифицирует запись среди других в файле данных.
База данных — это интегрированный набор
логически связанные записи или файлы. База данных объединяет записи, ранее хранящиеся в
отдельные файлы в общий пул записей данных, который предоставляет данные для многих
Приложения.Данные управляются системным программным обеспечением, называемым системами управления базами данных.
(СУБД). Данные, хранящиеся в базе данных, не зависят от используемых прикладных программ.
и о типах вторичных запоминающих устройств, на которых он хранится.
6.2 Файловая среда и ее ограничения
Существует три основных метода организации файлов:
из которых только два обеспечивают прямой доступ, необходимый в он-лайн системах.
Организация файлов [Рисунок 6.2 и 6.3]
Файлы данных организованы таким образом, чтобы облегчить доступ к
записи и обеспечить их эффективное хранение. Компромисс между этими двумя требованиями
обычно существует: если требуется быстрый доступ, требуется больше памяти, чтобы сделать это
возможный.
Доступ к записи для чтения — это
существенная операция с данными. Есть два типа доступа:
1. Последовательный доступ — выполняется при
доступ к записям осуществляется в порядке их хранения.Последовательный доступ — основной доступ
режим только в пакетных системах, где файлы используются и обновляются через регулярные промежутки времени.2. Прямой доступ
— для обработки в режиме онлайн требуется прямой доступ, в результате чего запись может быть доступна без
доступ к записям между ним и началом файла. Первичный ключ служит для
определить необходимую запись.
Существует три метода организации файлов: [Таблица
6.1]
1. Последовательная организация
2.Индексированный-последовательный
организация
3. Прямая организация
Последовательная организация
В последовательной организации записи физически
хранятся в указанном порядке согласно ключевому полю в каждой записи.
Преимущества последовательного доступа:
1. Это быстро и эффективно
при работе с большими объемами данных, которые необходимо периодически обрабатывать (пакетная
система).
Недостатки последовательного доступа:
1.Требует, чтобы все новое
транзакции должны быть отсортированы в правильной последовательности для обработки последовательного доступа.
2. Размещение, хранение,
изменение, удаление или добавление записей в файл требует перестановки файла.
3. Этот метод слишком медленный.
для обработки приложений, требующих немедленного обновления или ответа.
Индексированная последовательная организация
В методе индексированных последовательных файлов записи
физически хранятся в последовательном порядке на магнитном диске или другом хранилище с прямым доступом
устройство на основе ключевого поля каждой записи.Каждый файл содержит индекс, который ссылается на
одно или несколько ключевых полей каждой записи данных по адресу ее места хранения.
Прямая организация
Прямая организация файлов обеспечивает самую быструю прямую
доступ к записям. При использовании методов прямого доступа записи не должны располагаться в
любая конкретная последовательность на носителе. Характеристики метода прямого доступа
включают:
1. Компьютеры должны сохранять
отслеживать место хранения каждой записи с помощью разнообразной прямой организации
методы, чтобы при необходимости можно было получить данные.2. Данные о новых транзакциях.
не нужно сортировать.
3. Обработка, требующая
немедленные ответы или обновление выполняется легко.
6.3 Среда базы данных [Рисунок 6.6] [Слайд 6-5]
База данных — это организованный набор взаимосвязанных
данные, которые обслуживают ряд приложений на предприятии. В базе данных хранятся не только
значения атрибутов различных сущностей, а также отношения между ними
сущности. База данных управляется системой управления базами данных (СУБД), системным программным обеспечением.
который обеспечивает помощь в управлении базами данных, которыми пользуются многие пользователи.
СУБД:
1. Помогает организовать данные для
эффективный доступ для множества пользователей с разными потребностями в доступе и для эффективного
место хранения.
2. Это позволяет
создавать, получать доступ, поддерживать и контролировать базы данных.
3. Через СУБД данные могут
быть интегрированным и представленным по запросу.
Преимущества подхода к управлению базами данных:
1. Избегать неконтролируемых
избыточность данных и предотвращение несогласованности
2. Программа-данные
независимость
3.Гибкий доступ к
общие данные
4. Преимущества
централизованный контроль данных
6.4 Уровни определения данных в базах данных [Рисунок
6,7]
Пользовательское представление СУБД становится основой для даты
этапы моделирования, на которых определяются отношения между элементами данных. Эти данные
модели определяют логические отношения между элементами данных, необходимые для поддержки основных
бизнес-процесс. СУБД служит логической структурой (схемой, подсхемой и физической)
на которых базируется физический дизайн баз данных и разработка приложений
программы для поддержки бизнес-процессов организации.СУБД позволяет нам
определить базу данных на трех уровнях:
1. Схема — это общий логический вид
отношения между данными в базе данных.
2. Subschema — логический вид
отношения данных, необходимые для поддержки конкретных прикладных программ конечных пользователей, которые будут
получить доступ к базе данных.
3. Физический — показывает, как данные
физически размещены, хранятся и доступны на магнитных дисках и других вторичных
запоминающие устройства компьютерной системы.
СУБД предоставляет язык, называемый данными
язык определений (DDL) для определения объектов базы данных на трех уровнях.
Он также предоставляет язык для управления данными, называемый манипуляцией с данными .
язык (DML), позволяющий получать доступ к записям, изменять значения
атрибуты, а также удалять или вставлять записи.
6.5 Модели данных или способы их представления
Связи между данными
Модель данных — это метод организации баз данных на
логический уровень, уровень схемы и подсхемы.Главное беспокойство в таком
Модель — это то, как представлять отношения между записями базы данных. Отношения между
многие отдельные записи в базах данных основаны на одном из нескольких логических данных
конструкции или модели. СУБД предназначены для предоставления конечным пользователям быстрого и легкого доступа к
информация, хранящаяся в базах данных. Три основных модели включают:
1. Иерархическая структура
2. Структура сети
3. Структура отношений
Иерархический:
Ранние пакеты СУБД для мэйнфреймов использовали иерархическую структуру .
структура , в которой:
1.Отношения между записями образуют иерархию или
древовидная структура.2. Записи зависимые и многоуровневые.
структуры, состоящие из одной корневой записи и любого количества подчиненных уровней.3. Отношения между записями — один ко многим,
поскольку каждый элемент данных связан только с одним элементом над ним.4. Элемент данных или запись на самом высоком уровне
иерархия называется корневым элементом. Доступ к любому элементу данных можно получить, переместив
постепенно вниз от корня и вдоль ветвей дерева до желаемого
запись находится.
Структура сети:
Структура сети:
1. Может представлять более сложные логические отношения,
и до сих пор используется многими пакетами СУБД для мэйнфреймов.2. Разрешает отношения «многие ко многим» между записями. Что
То есть сетевая модель может получить доступ к элементу данных, следуя одному из нескольких путей, потому что
любой элемент данных или запись могут быть связаны с любым количеством других элементов данных.
Структура отношений:
Реляционная структура:
1.Самая популярная из трех структур базы данных.
2. Используется большинством пакетов микрокомпьютерных СУБД, а также
многие системы миникомпьютеров и мэйнфреймов.3. Элементы данных в базе данных хранятся в
форма простых столов . Таблицы связаны между собой, если они содержат общие поля.4. Пакеты СУБД на основе реляционной модели могут связывать
элементы данных из различных таблиц для предоставления информации пользователям.
Оценка структур баз данных
МОДЕЛЬ | ПРЕИМУЩЕСТВА | НЕДОСТАТКИ |
Иерархическая структура данных | Простота, с которой данные могут храниться и извлекаться в структурированных, рутинных типах транзакций. Простота извлечения данных для отчетов. Обычные типы обработки транзакций быстрая и эффективная. | Иерархический «один ко многим» отношения должны быть указаны заранее, и они не являются гибкими. Не может легко обрабатывать специальные запросы информации. Изменить иерархическую структуру базы данных сложно. Большое резервирование. Требуется знание языка программирования. |
Структура сети | Более гибкий, чем иерархическая модель. Способность предоставить сложные | Сеть многие ко многим отношения необходимо уточнять заранее Пользователь ограничен Требуется знание языка программирования. |
Реляционная структура | Гибкость в том, что он может обрабатывать специальные информационные запросы. Легко для программистов Легче в обслуживании, чем иерархическая и сетевая модели. | Невозможно обработать большие суммы бизнес-операций так же быстро и эффективно, как иерархические и сетевые модели. |
6.6 Реляционные базы данных [Рисунки 6.11, 6.13]
Реляционная база данных — это набор таблиц. Такой
база данных относительно проста для понимания конечными пользователями. Реляционные базы данных позволяют
гибкость данных, их легко понять и изменить.
1. Выберите, который выбирает
из указанной таблицы строки, удовлетворяющие заданному условию.
2. Проект, который выбирает
из заданной таблицы указанные значения атрибутов
3.Присоединяйтесь, что создает новый
таблица из двух указанных таблиц.
Сила реляционной модели проистекает из объединения
операция. Именно потому, что записи связаны друг с другом через соединение
операции, а не через ссылки, что нам не нужен предопределенный путь доступа. В
операция соединения также занимает много времени, требуя доступа ко многим записям, хранящимся на
диск, чтобы найти нужные записи.
6.7 SQL — язык реляционных запросов
Язык структурированных запросов (SQL) стал
международный стандартный язык доступа для определения и управления данными в базах данных.Это
является языком определения данных и управления большинством известных СУБД, включая некоторые
нереляционные. SQL может использоваться как независимый язык запросов для определения объектов.
в базе данных, введите данные в базу данных и получите доступ к данным. Так называемые
встроенный SQL также предоставляется для программирования на процедурных языках (Ahost @
языки), например C, COBOL или PL / L, для доступа к базе данных из приложения.
программа. В среде конечного пользователя SQL обычно скрыт более удобными для пользователя
интерфейсы.
Основные возможности SQL включают:
1. Определение данных
2. Манипулирование данными
6.8 Проектирование реляционной базы данных
Проектирование базы данных происходит от дизайна
логические уровни схемы и подсхемы к проекту физического уровня.
Цель логическая конструкция , также известная как данные
моделирование , заключается в разработке схемы базы данных и всех необходимых
подсхемы.Реляционная база данных будет состоять из таблиц (отношений), каждая из которых
описывает только атрибуты определенного класса сущностей. Логический дизайн начинается
с определением классов сущностей, которые будут представлены в базе данных, и установлением
отношения между парами этих сущностей. Отношения — это просто взаимодействие
между сущностями, представленными данными. Эти отношения будут важны для
доступ к данным. Часто используются диаграммы сущность-связь (E-R)
для моделирования данных.
Нормализация — это упрощение
логическое представление данных в реляционных базах данных. Каждая таблица нормализована, а это значит, что
все его поля будут содержать отдельные элементы данных, все его записи будут отличаться, и
каждая таблица будет описывать только один класс сущностей. Цель нормализации
заключается в предотвращении репликации данных со всеми ее негативными последствиями.
После логического проектирования следует физический
дизайн БД.Все поля указаны по длине и характеру.
данных (числа, символы и т. д.). Основная цель физического дизайна —
чтобы минимизировать количество трудоемких обращений к диску, которые потребуются для
отвечать на типичные запросы к базе данных. Часто индексы предоставляются для обеспечения быстрого доступа
для таких запросов.
6.9 Словарь данных
A словарь данных — программный модуль
и база данных, содержащая описания и определения, касающиеся структуры, данных
элементы, взаимосвязи и другие характеристики базы данных организации.
Словари данных
хранят следующую информацию о
данные хранятся в базах данных:
1. Схема, подсхемы и
физическая схема
2. Какие приложения и
пользователи могут получать конкретные данные, а также то, какие приложения и пользователи могут изменять
данные
3. Перекрестная ссылка
информация, например, какие программы используют какие данные и какие пользователи получают какие отчеты
4. Где индивидуальные данные
элементы, и кто несет ответственность за поддержание данных
5.Что за стандартное именование
соглашения предназначены для сущностей базы данных.
6. Что правила честности
для данных
7. Где данные
хранятся в географически распределенных базах данных.
Словарь данных:
1. Содержит все данные
определения и информация, необходимая для идентификации владения данными
2. Обеспечивает безопасность и
конфиденциальность данных, а также информации, используемой при разработке и
обслуживание приложений, использующих базу данных.
6.10 Управление ресурсами данных организации
Использование технологии баз данных позволяет организациям
управлять своими данными как ресурсом, однако автоматически не производит
организационный контроль данных.
Компоненты управления информационными ресурсами
[Рисунок 6.17]
И организационные действия, и технологические средства
необходимо:
1. Убедитесь, что фирма
систематически накапливает данные в своих базах данных
2.Поддерживает данные более
время
3. Обеспечивает соответствующие
доступ к данным соответствующим сотрудникам.
Основные компоненты данного информационного ресурса
управление:
1. Организационные процессы
— Информационное планирование и моделирование данных
2. Разрешающие технологии
— СУБД и словарь данных
3. Организационные функции
— администрирование данных и администрирование баз данных
Администрирование баз данных и администрирование баз данных
[Рисунок 6.18]
Функциональные подразделения, отвечающие за управление данными
являются:
1. Администратор данных (DA)
2. Администратор базы данных
(DBA)
Администратор данных — лицо, имеющее
центральная ответственность за данные организации.
Обязанности включают:
1. Создание
политики и специальные процедуры для сбора, проверки, совместного использования и инвентаризации
данные, которые будут храниться в базах данных и сделать информацию доступной для членов
организации и, возможно, лицам вне ее.2. Администрирование данных — это
Функция разработки политики и DA должны иметь доступ к высшему корпоративному руководству.
3. Ключевое лицо, участвующее в
стратегическое планирование ресурса данных.
4. Часто определяет
основные объекты данных, их атрибуты и отношения между ними.
Администратор базы данных — специалист
отвечает за поддержание стандартов разработки, сопровождения и безопасности
базы данных организации.
Обязанности включают:
1.Создание баз данных
и выполнение политик, установленных администратором данных.
2. В крупных организациях
Функцию DBA фактически выполняет группа профессионалов. В небольшой фирме
программист / аналитик может выполнять функцию DBA, в то время как один из менеджеров действует как DA.3. Схема и подсхемы
базы данных чаще всего определяются администратором баз данных, который обладает необходимыми техническими знаниями.
Они также определяют физическую структуру баз данных с целью оптимизации
производительность системы для ожидаемой схемы использования базы данных.
Совместная ответственность DA и DBA:
1. Ведение данных
толковый словарь
2. Стандартизация имен и
другие аспекты определения данных
3. Обеспечение резервного копирования
4. Обеспечьте безопасность
данные, хранящиеся в базе данных, и обеспечить конфиденциальность на основе этой безопасности.
5. Установить катастрофу
план восстановления баз данных
6.11 Тенденции развития в управлении базами данных
Три важных направления в управлении базами данных включают:
1.Распределенные базы данных
2. Хранилище данных
3. Богатые базы данных (включая
объектно-ориентированные базы данных)
Распределенные базы данных [Рисунок 6.19] [Слайд 6-8]
Распределенные базы данных, распределенные по
несколько физических локаций. В распределенных базах данных данные размещаются там, где они
используется чаще всего, но вся база данных доступна каждому авторизованному пользователю. Это
базы данных локальных рабочих групп (LAN) и отделов в региональных офисах (WAN), филиалах
офисы, производственные предприятия и другие рабочие места.Эти базы данных могут включать сегменты
как общих операционных, так и обычных пользовательских баз данных, а также данных, генерируемых и используемых
только на собственном сайте пользователя.
Хранилища данных Базы данных [Рисунок 6.20]
Хранилище данных хранит данные из текущего и предыдущего
лет, которые были извлечены из различных операционных и управленческих баз данных
организация. Это центральный источник данных, который стандартизирован и интегрирован, поэтому
он может использоваться менеджерами и другими профессионалами конечных пользователей со всего
организация.Целью корпоративного хранилища данных является постоянный выбор данных
из операционных баз данных, преобразовать данные в единый формат и открыть
Склад для конечных пользователей через удобный и последовательный интерфейс.
Хранилища данных также используются для интеллектуального анализа данных —
автоматическое обнаружение потенциально значимых взаимосвязей между различными категориями
данные.
Системы, поддерживающие хранилище данных, состоят из трех
компонентов:
1. Извлечение и подготовка данных
— первая подсистема извлекает данные из
операционные системы, многие из которых являются устаревшими системами, и Ascrubs @ it
путем устранения ошибок и несоответствий.2. Сохраните дату в
Склад— вторым компонентом поддержки фактически является СУБД
который будет управлять данными хранилища.3. Обеспечьте доступ и
Возможности анализа— третья подсистема состоит из инструментов запросов
которые помогают пользователям получить доступ к данным и включают OLAP и другие инструменты DSS, поддерживающие данные
анализ.
Объектно-ориентированные и другие расширенные базы данных
С значительно расширенными возможностями информации
технологии, содержание баз данных становится богаче.Традиционные базы данных имеют
были ориентированы на преимущественно числовые данные или короткие фрагменты текста, организованные в
хорошо структурированные записи. Как возможности обработки и хранения компьютерных систем
расширяться, и по мере роста телекоммуникационных мощностей можно поддерживать знания
работать более полно с обширными данными. К ним относятся:
1. Географическая информация
системы
2. Объектно-ориентированный
базы данных
3. Гипертекст и гипермедиа
базы данных
4. Базы данных изображений и текст
базы данных
баз данных NoSQL: обзор | ThoughtWorks
За последние несколько лет мы стали свидетелями появления нового типа баз данных, известных как базы данных NoSQL, которые бросают вызов доминирующему положению реляционных баз данных.Реляционные базы данных долгое время доминировали в индустрии программного обеспечения, предоставляя механизмы для постоянного хранения данных, контроля параллелизма, транзакций, в основном стандартные интерфейсы и механизмы для интеграции данных приложений, отчетности. Однако преобладание реляционных баз данных становится все более заметным.
NoSQL что это значит
Что означает NoSQL и как вы классифицируете эти базы данных? NoSQL означает не только SQL, подразумевая, что при разработке программного решения или продукта существует более одного механизма хранения, который может использоваться в зависимости от потребностей.NoSQL — это хэштег (#nosql), выбранный для встречи для обсуждения этих новых баз данных. Самый важный результат роста NoSQL — это Polyglot Persistence. NoSQL не имеет предписывающего определения, но мы можем сделать ряд общих наблюдений, например:
- Не используется реляционная модель
- Хорошо работает на кустах
- В основном с открытым кодом
- Создан для веб-усадьбы 21 века
- Без схемы
Почему базы данных NoSQL
Разработчики приложений были разочарованы несоответствием импеданса между реляционными структурами данных и структурами данных в памяти приложения.Использование баз данных NoSQL позволяет разработчикам разрабатывать без преобразования структур в памяти в реляционные.
Также наблюдается отход от использования баз данных в качестве точек интеграции в пользу инкапсуляции баз данных с приложениями и интеграции с использованием сервисов.
Развитие Интернета как платформы также привело к существенному изменению в хранении данных, так как возникла необходимость поддерживать большие объемы данных за счет работы на кластерах.
Реляционные базы данных не предназначены для эффективной работы в кластерах.
Потребности в хранении данных для приложения ERP намного больше, чем, например, потребности в хранении данных Facebook или Etsy.
Модели агрегированных данных:
Моделирование реляционных баз данных сильно отличается от типов структур данных, используемых разработчиками приложений. Использование структур данных, смоделированных разработчиками, для решения различных проблемных областей привело к переходу от реляционного моделирования к агрегированным моделям, большая часть которого обусловлена книгой Эрика Эванса Domain Driven Design .Агрегат — это набор данных, с которыми мы взаимодействуем как единое целое. Эти единицы данных или агрегаты формируют границы для операций ACID с базой данных. Базы данных типа «ключ-значение», «документы» и «столбцы» можно рассматривать как формы баз данных, ориентированных на агрегаты.
Агрегаты упрощают базу данных для управления хранением данных в кластерах, поскольку единица данных теперь может находиться на любом компьютере и при извлечении из базы данных получает вместе с ней все связанные данные. Агрегированные базы данных работают лучше всего, когда большая часть взаимодействия с данными осуществляется с одним и тем же агрегатом, например, когда необходимо получить заказ и все его детали, лучше хранить заказ как агрегированный объект, но иметь дело с этими агрегатами для получения сведений об элементе на все заказы не изящно.
Базы данных, ориентированные на агрегирование, усложняют обработку межагрегатных отношений, чем внутриагрегатные отношения. Базы данных с совокупным игнорированием лучше, когда при взаимодействии используются данные, организованные во многих различных формациях. Базы данных, ориентированные на агрегирование, часто вычисляют материализованные представления для предоставления данных, организованных иначе, чем их первичные агрегаты. Это часто делается с помощью вычислений сокращения карты, таких как задание уменьшения карты, чтобы получить товары, проданные за день.
Распределительные модели:
Базы данных, ориентированные на агрегирование, упрощают распределение данных, поскольку механизм распределения должен перемещать агрегат и не беспокоиться о связанных данных, поскольку все связанные данные содержатся в агрегате.Есть два стиля распределения данных:
- Sharding: Sharding распределяет разные данные по нескольким серверам, поэтому каждый сервер действует как единый источник для подмножества данных.
- Репликация: репликация копирует данные на несколько серверов, поэтому каждый бит данных можно найти в нескольких местах. Репликация бывает двух видов:
- Репликация главный-подчиненный делает один узел авторитетной копией, которая обрабатывает записи, в то время как подчиненные устройства синхронизируются с главным и могут обрабатывать чтение.
- Одноранговая репликация позволяет выполнять запись на любой узел; узлы координируют синхронизацию своих копий данных.
Репликация главный-подчиненный снижает вероятность конфликтов обновлений, но одноранговая репликация позволяет избежать загрузки всех операций записи на один сервер, создавая единую точку отказа. Система может использовать один или оба метода. Подобно тому, как база данных Riak разделяет данные, а также реплицирует их на основе фактора репликации.
Теорема CAP:
В распределенной системе важно управлять согласованностью (C), доступностью (A) и допуском к разделам (P), Эрик Брюер выдвинул теорему CAP, которая гласит, что в любой распределенной системе мы можем выбрать только два из следующих параметров: согласованность, доступность или разделение. толерантность.Многие базы данных NoSQL пытаются предоставить варианты, в которых разработчик может выбрать, где он может настроить базу данных в соответствии со своими потребностями. Например, если вы рассматриваете Riak как распределенную базу данных «ключ-значение». По сути, есть три переменных r, w, n, где
- r = количество узлов, которые должны ответить на запрос чтения, прежде чем он будет считаться успешным.
- w = количество узлов, которые должны ответить на запрос записи, прежде чем он будет считаться успешным.
- n = количество узлов, на которых реплицируются данные, то есть фактор репликации.
В кластере Riak с 5 узлами мы можем настроить значения r, w, n, чтобы сделать систему очень согласованной, установив r = 5 и w = 5, но теперь мы сделали кластер восприимчивым к сетевым разделам, поскольку любая запись будет не считается успешным, если какой-либо узел не отвечает. Мы можем сделать один и тот же кластер высокодоступным для записи или чтения, установив r = 1 и w = 1, но теперь согласованность может быть нарушена, поскольку на некоторых узлах может не быть последней копии данных. Теорема CAP гласит, что если вы получаете сетевой раздел, вам нужно найти компромисс между доступностью данных и их согласованностью.Надежность также может быть снижена задержкой, особенно если вы хотите пережить отказы с реплицированными данными.
Базы данных
NoSQL предоставляют разработчикам множество вариантов выбора и точной настройки системы в соответствии с их конкретными требованиями. Понимание требований к тому, как данные будут использоваться системой, такие вопросы, как интенсивность чтения или записи, необходимость запроса данных со случайными параметрами запроса, сможет ли система обрабатывать противоречивые данные.
Понимание этих требований становится гораздо более важным, поскольку долгое время мы привыкли к РСУБД по умолчанию, которая поставляется со стандартным набором функций, независимо от того, какой продукт выбран, и нет возможности выбрать одни функции среди других. Доступность выбора в базах данных NoSQL — это одновременно и хорошо, и плохо. Хорошо, потому что теперь у нас есть выбор спроектировать систему в соответствии с требованиями. Плохо, потому что теперь у вас есть выбор, и мы должны сделать правильный выбор на основе требований, и есть вероятность, что один и тот же продукт базы данных может использоваться правильно или неправильно.
Примером функции, предоставляемой по умолчанию в РСУБД, являются транзакции. Наши методы разработки настолько привыкли к этой функции, что мы перестали думать о том, что произойдет, если база данных не предоставляет транзакции. Большинство баз данных NoSQL не обеспечивают поддержку транзакций по умолчанию, что означает, что разработчики должны думать, как реализовать транзакции, должна ли каждая запись обеспечивать безопасность транзакций или запись может быть разделена на «критически важно, чтобы они преуспели» и «все в порядке» если я потеряю это напишите «категории».Иногда также возможно развертывание внешних менеджеров транзакций, таких как ZooKeeper.
Типы баз данных NoSQL:
Базы данных
NoSQL можно условно разделить на четыре типа.
Базы данных ключ-значение
Хранилища «ключ-значение» — это самые простые хранилища данных NoSQL, которые можно использовать с точки зрения API. Клиент может получить значение ключа, ввести значение ключа или удалить ключ из хранилища данных. Значение — это большой двоичный объект, который хранилище данных просто хранит, не заботясь и не зная, что внутри; Ответственность за понимание того, что было сохранено, лежит на приложении.Поскольку в хранилищах «ключ-значение» всегда используется доступ по первичному ключу, они обычно имеют отличную производительность и легко масштабируются.
Некоторые из популярных баз данных типа «ключ-значение»: Riak, Redis (часто называемый сервером структуры данных), Memcached и его разновидности, Berkeley DB, upscaledb (особенно подходит для встроенного использования), Amazon DynamoDB (не с открытым исходным кодом), Project Волан-де-Морт и Диван-база.
Все базы данных ключ-значение не одинаковы, между этими продуктами есть существенные различия, например: данные Memcached не являются постоянными, в то время как в Riak они есть, эти функции важны при реализации определенных решений.Давайте рассмотрим, что нам нужно реализовать кэширование пользовательских предпочтений, реализация их в memcached означает, что когда узел выходит из строя, все данные теряются и их необходимо обновить из исходной системы, если мы храним те же данные в Riak, нам, возможно, не нужно беспокоиться о потеря данных, но мы также должны подумать, как обновить устаревшие данные. Важно не только выбрать базу данных «ключ-значение» в соответствии с вашими требованиями, но также важно выбрать базу данных «ключ-значение».
Базы данных документов
Документы — основное понятие в базах данных документов.База данных хранит и извлекает документы, которые могут быть XML, JSON, BSON и т. Д. Эти документы представляют собой самоописательные иерархические древовидные структуры данных, которые могут состоять из карт, коллекций и скалярных значений. Сохраненные документы похожи друг на друга, но не обязательно должны быть одинаковыми. Базы данных документов хранят документы в значимой части хранилища «ключ-значение»; думайте о базах данных документов как о хранилищах «ключ-значение», где значение можно проверить. Базы данных документов, такие как MongoDB, предоставляют богатый язык запросов и такие конструкции, как база данных, индексы и т. Д., Что упрощает переход от реляционных баз данных.
Некоторые из популярных баз данных документов, которые мы видели, — это MongoDB, CouchDB, Terrastore, OrientDB, RavenDB и, конечно же, хорошо известный и часто критикуемый Lotus Notes, который использует хранилище документов.
Семейные магазины Column
Базы данных семейства столбцов хранят данные в семействах столбцов в виде строк, у которых есть много столбцов, связанных с ключом строки (рисунок 10.1). Семейства столбцов — это группы связанных данных, к которым часто обращаются вместе. Для клиента мы часто одновременно получаем доступ к информации его профиля, но не к его заказам.
Каждое семейство столбцов можно сравнить с контейнером строк в таблице СУБД, где ключ идентифицирует строку, а строка состоит из нескольких столбцов. Разница в том, что разные строки не обязательно должны иметь одинаковые столбцы, и столбцы могут быть добавлены в любую строку в любое время без необходимости добавлять ее в другие строки.
Когда столбец состоит из карты столбцов, у нас есть супер столбец. Супер столбец состоит из имени и значения, которое представляет собой карту столбцов. Думайте о суперколонке как о контейнере столбцов.
Cassandra — одна из популярных баз данных семейства столбцов; есть другие, такие как HBase, Hypertable и Amazon DynamoDB. Cassandra можно охарактеризовать как быструю и легко масштабируемую с распределением операций записи по кластеру. В кластере нет главного узла, поэтому любое чтение и запись может обрабатываться любым узлом в кластере.
Графические базы данных
Базы данных Graph позволяют хранить сущности и отношения между этими сущностями. Сущности также известны как узлы, у которых есть свойства.Думайте об узле как об экземпляре объекта в приложении. Отношения известны как ребра, которые могут иметь свойства. Края имеют направленное значение; узлы организованы отношениями, которые позволяют находить интересные закономерности между узлами. Организация графа позволяет сохранять данные один раз, а затем интерпретировать их по-разному в зависимости от взаимосвязей.
Обычно, когда мы храним графоподобную структуру в РСУБД, она предназначена для одного типа отношений (типичный пример — «кто мой менеджер»).Добавление еще одного отношения к смеси обычно означает много изменений схемы и перемещения данных, чего не происходит, когда мы используем базы данных графов. Точно так же в реляционных базах данных мы заранее моделируем граф на основе желаемого обхода; если Traversal изменится, данные придется изменить.
В графовых базах данных переход по объединениям или отношениям выполняется очень быстро. Связь между узлами не вычисляется во время запроса, но фактически сохраняется как связь. Обход постоянных отношений происходит быстрее, чем их вычисление для каждого запроса.
Узлы могут иметь разные типы отношений между собой, что позволяет вам как представлять отношения между объектами домена, так и иметь вторичные отношения для таких вещей, как категория, путь, временные деревья, квадраты для пространственного индексирования или связанные списки для отсортированного доступа. . Поскольку нет ограничений на количество и виды отношений, которые может иметь узел, все они могут быть представлены в одной базе данных графа.
Отношения — это первоклассные граждане в графовых базах данных; большая часть ценности графовых баз данных проистекает из отношений.Отношения не только имеют тип, начальный и конечный узел, но могут иметь собственные свойства. Используя эти свойства в отношениях, мы можем добавить в отношения интеллекта — например, с момента, когда они стали друзьями, каково расстояние между узлами или какие аспекты разделяются между узлами. Эти свойства отношений можно использовать для запроса графика.
Поскольку большая часть возможностей графовых баз данных исходит от отношений и их свойств, необходимо много подумать и разработать для моделирования отношений в домене, с которым мы пытаемся работать.Добавить новые типы отношений легко; изменение существующих узлов и их отношений аналогично миграции данных, потому что эти изменения должны быть выполнены на каждом узле и каждой взаимосвязи в существующих данных.
Доступно множество баз данных графов, таких как Neo4J, Infinite Graph, OrientDB или FlockDB (что является особым случаем: база данных графов, которая поддерживает только одноуровневые отношения или списки смежности, где вы не можете пройти более одного уровня в глубину для отношения).
Почему выбирают базу данных NoSQL
Мы рассмотрели множество общих проблем, о которых вам нужно знать, чтобы принимать решения в новом мире баз данных NoSQL. Пришло время поговорить о том, почему вы выбрали базы данных NoSQL для будущих разработок. Вот несколько основных причин рассмотреть возможность использования баз данных NoSQL.
- Для повышения производительности программистов за счет использования базы данных, которая лучше соответствует потребностям приложения.
- Для повышения производительности доступа к данным за счет некоторой комбинации обработки больших объемов данных, уменьшения задержки и повышения пропускной способности.
Важно проверить свои ожидания относительно продуктивности и / или производительности программистов, прежде чем переходить к использованию технологии NoSQL. Поскольку большинство баз данных NoSQL имеют открытый исходный код, для их тестирования достаточно загрузить эти продукты и настроить тестовую среду.
Даже если на данный момент NoSQL использовать нельзя, проектирование системы с использованием инкапсуляции служб поддерживает изменение технологий хранения данных по мере развития потребностей и технологий. Разделение частей приложений на службы также позволяет внедрить NoSQL в существующее приложение.
Выбор базы данных NoSQL
При таком большом выборе, как выбрать базу данных NoSQL? Как описано, многое зависит от системных требований, вот несколько общих рекомендаций:
- Базы данных «ключ-значение» обычно полезны для хранения информации о сеансе, профилей пользователей, предпочтений, данных корзины покупок. Мы бы избегали использования баз данных типа «ключ-значение», когда нам нужно запрашивать данные, иметь связи между хранящимися данными или нам нужно работать с несколькими ключами одновременно.
- Базы данных документов обычно полезны для систем управления контентом, платформ для ведения блогов, веб-аналитики, аналитики в реальном времени, приложений электронной коммерции. Мы бы избегали использования баз данных документов для систем, которым требуются сложные транзакции, охватывающие несколько операций или запросов к различным агрегатным структурам.
- обычно полезны для систем управления контентом, платформ ведения блогов, обслуживания счетчиков, истечения срока использования, большого объема записи, такого как агрегирование журналов.Мы бы избегали использования баз данных семейств столбцов для систем, которые находятся на ранней стадии разработки и меняют шаблоны запросов.
- Графические базы данных очень хорошо подходят для проблемных областей, в которых мы подключили данные, таких как социальные сети, пространственные данные, информация о маршрутах для товаров и денег, механизмы рекомендаций
Базы данных семейства столбцов
Разветвления без схемы
Все базы данных NoSQL утверждают, что не имеют схемы, что означает, что сама база данных не применяет схему.Базы данных со строгими схемами, такие как реляционные базы данных, можно перенести, сохранив каждое изменение схемы и перенос данных в последовательности с контролем версий. Базы данных без схемы по-прежнему нуждаются в тщательной миграции из-за неявной схемы в любом коде, который обращается к данным.
Базы данных без схемы могут использовать те же методы миграции, что и базы данных со строгими схемами, в базах данных без схемы мы также можем читать данные таким образом, чтобы они были устойчивы к изменениям неявной схемы данных, и использовали инкрементную миграцию для обновления данных, что позволяет нулевое время простоя, что делает их более популярными в системах 24 * 7.
Заключение
Любой выбор, предоставляемый появлением баз данных NoSQL, не означает исчезновения баз данных РСУБД. Мы вступаем в эру настойчивости полиглотов, техники, которая использует различные технологии хранения данных для удовлетворения различных потребностей в хранении данных. Устойчивость полиглота может применяться на предприятии или в одном приложении.
Для получения более подробной информации прочтите статью Прамода Садалаге и Мартина Фаулера: NoSQL Distilled: Краткое руководство по развивающемуся миру многоязычной персистентности .
Что такое база данных?
База данных — это набор данных. Это может показаться слишком упрощенным, но в значительной степени суммирует, что такое любая база данных.
База данных может быть такой же простой, как текстовый файл со списком имен. Или это может быть такая же сложная система, как большая система управления реляционной базой данных, укомплектованная встроенными инструментами, которые помогут вам поддерживать данные.
Методы хранения данных
Прежде чем мы перейдем к выделенным системам управления базами данных, давайте рассмотрим некоторые распространенные методы хранения данных.
Текстовый файл
Представьте, что у нас есть текстовый файл с именем Artists.csv , и его содержимое выглядит как на этом снимке экрана.
Это текстовый файл. В частности, это файл со значениями, разделенными запятыми (CSV). Запятые разделяют каждое поле в строке.
Запятые определяют структуру. Это позволяет нам отличить идентификатор исполнителя от имени исполнителя.Мы могли бы легко добавить больше полей и разделить их запятыми.
Каждая строка представляет отдельную запись. В этом случае каждая строка представляет отдельного исполнителя.
Технически это база данных. Он содержит данные, структурированные таким образом, чтобы их было легко извлечь.
С таким небольшим списком текстовый файл может идеально служить нашим целям.
Таблица
Другой вариант — сохранить данные в электронной таблице с помощью программного обеспечения для работы с электронными таблицами (например, Microsoft Excel).Таким образом, мы могли бы сделать некоторые дополнительные вещи с нашим списком (например, отформатировать его, отсортировать по имени исполнителя и т. Д.).
Программа для работы с электронными таблицами, такая как Excel, упрощает выполнение этих задач. Кроме того, такие программы, как Excel, организуют данные в строки и столбцы, что упрощает понимание ваших данных.
Программное обеспечение баз данных
Лучшим вариантом было бы хранить данные в таблице базы данных с помощью специального программного обеспечения для баз данных, например Microsoft Access.
Подобные системы управления базами данных
созданы специально для хранения и поиска данных.
Так в чем же разница?
Вам может быть интересно, в чем разница между двумя последними примерами (Excel и Access). В конце концов, в обоих примерах данные организованы в строки и столбцы.
Между программами для работы с электронными таблицами и базами данных существует много различий. Остальная часть этого руководства покажет вам, почему программное обеспечение баз данных является гораздо лучшим вариантом для создания баз данных.