Модель данных — это абстрактная модель , которая организует элементы данных и стандартизирует то, как они соотносятся друг с другом и со свойствами сущностей реального мира . [2] [3] Например, модель данных может указывать, что элемент данных, представляющий автомобиль, состоит из ряда других элементов, которые, в свою очередь, представляют цвет и размер автомобиля и определяют его владельца.
Соответствующая профессиональная деятельность обычно называется моделированием данных или, более конкретно, проектированием баз данных . Модели данных обычно определяются экспертом по данным, специалистом по данным, ученым по данным, библиотекарем данных или ученым по данным. Язык моделирования данных и нотация часто представляются в графической форме в виде диаграмм. [4]
Модель данных иногда можно назвать структурой данных , особенно в контексте языков программирования . Модели данных часто дополняются моделями функций , особенно в контексте корпоративных моделей .
Модель данных явно определяет структуру данных ; наоборот, структурированные данные — это данные, организованные в соответствии с явной моделью данных или структурой данных. Структурированные данные противопоставляются неструктурированным данным и полуструктурированным данным .
Термин модель данных может относиться к двум различным, но тесно связанным концепциям. Иногда он относится к абстрактной формализации объектов и отношений, обнаруженных в определенной области приложения: например, клиенты, продукты и заказы, обнаруженные в производственной организации. В других случаях он относится к набору концепций, используемых при определении таких формализаций: например, такие концепции, как сущности, атрибуты, отношения или таблицы. Таким образом, «модель данных» банковского приложения может быть определена с использованием «модели данных» сущности–связи. В этой статье этот термин используется в обоих смыслах.
Управление большими объемами структурированных и неструктурированных данных является основной функцией информационных систем . Модели данных описывают структуру, манипуляцию и аспекты целостности данных, хранящихся в системах управления данными, таких как реляционные базы данных. Они также могут описывать данные с более свободной структурой, такие как документы обработки текста , сообщения электронной почты , изображения, цифровое аудио и видео: XDM , например, предоставляет модель данных для XML- документов.
Основная цель моделей данных — поддержка разработки информационных систем путем предоставления определения и формата данных. Согласно Уэсту и Фаулеру (1999), «если это делается последовательно во всех системах, то может быть достигнута совместимость данных. Если для хранения и доступа к данным используются одни и те же структуры данных, то разные приложения могут совместно использовать данные. Результаты этого указаны выше. Однако системы и интерфейсы часто обходятся дороже, чем должны, в плане создания, эксплуатации и обслуживания. Они также могут ограничивать бизнес, а не поддерживать его. Основной причиной является низкое качество моделей данных, реализованных в системах и интерфейсах». [5]
Причиной этих проблем является отсутствие стандартов, которые бы гарантировали, что модели данных будут соответствовать потребностям бизнеса и будут единообразными. [5]
Модель данных явно определяет структуру данных. Типичные приложения моделей данных включают модели баз данных, проектирование информационных систем и обеспечение обмена данными. Обычно модели данных определяются на языке моделирования данных.[3]
Экземпляр модели данных может быть одного из трех видов согласно ANSI 1975 года: [6]
Значимость этого подхода, согласно ANSI, заключается в том, что он позволяет трем перспективам быть относительно независимыми друг от друга. Технология хранения может меняться, не влияя ни на логическую, ни на концептуальную модель. Структура таблицы/столбца может меняться, не влияя (обязательно) на концептуальную модель. В каждом случае, конечно, структуры должны оставаться согласованными с другой моделью. Структура таблицы/столбца может отличаться от прямого перевода классов сущностей и атрибутов, но в конечном итоге она должна выполнять цели концептуальной структуры классов сущностей. На ранних этапах многих проектов по разработке программного обеспечения особое внимание уделяется проектированию концептуальной модели данных . Такой проект может быть детализирован в логическую модель данных . На более поздних этапах эта модель может быть переведена в физическую модель данных . Однако также возможно реализовать концептуальную модель напрямую.
Одна из самых ранних пионерских работ по моделированию информационных систем была проделана Янгом и Кентом (1958), [7] [8], которые выступали за «точный и абстрактный способ указания информационных и временных характеристик проблемы обработки данных ». Они хотели создать «нотацию, которая должна позволить аналитику организовать проблему вокруг любого элемента оборудования ». Их работа была первой попыткой создать абстрактную спецификацию и инвариантную основу для проектирования различных альтернативных реализаций с использованием различных компонентов оборудования. Следующий шаг в моделировании ИС был сделан CODASYL , консорциумом ИТ-индустрии, образованным в 1959 году, который по сути стремился к тому же, что и Янг и Кент: разработке «надлежащей структуры для языка определения машинно-независимых проблем на системном уровне обработки данных». Это привело к разработке конкретной информационной алгебры ИС . [8]
В 1960-х годах моделирование данных приобрело большую значимость с появлением концепции системы управления информацией (MIS). По словам Леондеса (2002), «в то время информационная система предоставляла данные и информацию для целей управления. Система баз данных первого поколения , называемая Integrated Data Store (IDS), была разработана Чарльзом Бахманом в General Electric. В этот период времени были предложены две известные модели баз данных: сетевая модель данных и иерархическая модель данных ». [9] К концу 1960-х годов Эдгар Ф. Кодд разработал свои теории организации данных и предложил реляционную модель для управления базами данных на основе логики предикатов первого порядка . [10]
В 1970-х годах моделирование сущности-связи возникло как новый тип концептуального моделирования данных, первоначально формализованный в 1976 году Питером Ченом . Модели сущности-связи использовались на первом этапе проектирования информационной системы во время анализа требований для описания информационных потребностей или типа информации , которая должна храниться в базе данных . Эта техника может описывать любую онтологию , т. е. обзор и классификацию концепций и их связей для определенной области интересов .
В 1970-х годах GM Nijssen разработал метод "Natural Language Information Analysis Method" (NIAM), а в 1980-х годах в сотрудничестве с Терри Хэлпином развил его в Object–Role Modeling (ORM). Однако именно докторская диссертация Терри Хэлпина 1989 года создала формальную основу, на которой базируется Object–Role Modeling.
Билл Кент в своей книге 1978 года « Данные и реальность» [11] сравнил модель данных с картой территории, подчеркнув, что в реальном мире «шоссе не окрашены в красный цвет, реки не имеют границ округов, проходящих посередине, и вы не можете увидеть контурные линии на горе». В отличие от других исследователей, которые пытались создать математически чистые и элегантные модели, Кент подчеркивал существенную беспорядочность реального мира и задачу разработчика моделей данных — создать порядок из хаоса, не искажая при этом истину чрезмерно.
В 1980-х годах, по словам Яна Л. Харрингтона (2000), «развитие объектно-ориентированной парадигмы привело к фундаментальным изменениям в том, как мы смотрим на данные и процедуры, которые работают с данными. Традиционно данные и процедуры хранились отдельно: данные и их взаимосвязь в базе данных, процедуры в прикладной программе. Однако объектно-ориентированность объединила процедуру сущности с ее данными». [12]
В начале 1990-х годов три голландских математика Гвидо Бакема, Харм ван дер Лек и ЯнПитер Цварт продолжили развитие работы ГМ Нейссена . Они больше сосредоточились на коммуникационной части семантики. В 1997 году они формализовали метод Полностью коммуникационно-ориентированного информационного моделирования FCO-IM .
Модель базы данных — это спецификация, описывающая структуру и использование базы данных.
Было предложено несколько таких моделей. Распространенные модели включают:
Диаграмма структуры данных (DSD) — это диаграмма и модель данных, используемые для описания концептуальных моделей данных путем предоставления графических обозначений, которые документируют сущности и их отношения , а также ограничения , которые их связывают. Основными графическими элементами DSD являются блоки , представляющие сущности, и стрелки , представляющие отношения. Диаграммы структуры данных наиболее полезны для документирования сложных сущностей данных.
Диаграммы структуры данных являются расширением модели «сущность-связь» (ER-модель). В DSD атрибуты указываются внутри блоков сущностей, а не снаружи, тогда как связи рисуются как блоки, состоящие из атрибутов, которые определяют ограничения, связывающие сущности вместе. DSD отличаются от ER-модели тем, что ER-модель фокусируется на связях между различными сущностями, тогда как DSD фокусируются на связях элементов внутри сущности и позволяют пользователям полностью видеть связи и отношения между каждой сущностью.
Существует несколько стилей представления диаграмм структур данных, с заметным различием в способе определения мощности . Выбор между наконечниками стрелок, перевернутыми наконечниками стрелок ( гусиные лапки ) или числовым представлением мощности.
Модель «сущность–связь» (ERM), иногда называемая диаграммой «сущность–связь» (ERD), может использоваться для представления абстрактной концептуальной модели данных (или семантической модели данных или физической модели данных), используемой в программной инженерии для представления структурированных данных. Для ERM используется несколько обозначений. Как и в DSD, атрибуты указываются внутри полей сущностей, а не снаружи, в то время как отношения рисуются линиями, а ограничения отношений — описаниями на линии. Модель ER, хотя и надежна, может стать визуально громоздкой при представлении сущностей с несколькими атрибутами.
Существует несколько стилей представления диаграмм структур данных, с заметным различием в способе определения мощности. Выбор между наконечниками стрелок, перевернутыми наконечниками стрелок (гусиные лапки) или числовым представлением мощности.
Модель данных в географических информационных системах — это математическая конструкция для представления географических объектов или поверхностей в виде данных. Например,
Универсальные модели данных являются обобщениями обычных моделей данных. Они определяют стандартизированные общие типы отношений вместе с видами вещей, которые могут быть связаны таким типом отношений. Универсальные модели данных разрабатываются как подход к решению некоторых недостатков обычных моделей данных. Например, разные разработчики моделей обычно создают разные обычные модели данных одной и той же области. Это может привести к трудностям в объединении моделей разных людей и является препятствием для обмена данными и интеграции данных. Однако неизменно это различие объясняется разными уровнями абстракции в моделях и различиями в типах фактов, которые могут быть инстанциированы (возможности семантического выражения моделей). Разработчикам моделей необходимо общаться и согласовывать определенные элементы, которые должны быть представлены более конкретно, чтобы сделать различия менее значительными.
Семантическая модель данных в программной инженерии — это метод определения значения данных в контексте их взаимосвязей с другими данными. Семантическая модель данных — это абстракция, которая определяет, как хранимые символы соотносятся с реальным миром. [13] Семантическая модель данных иногда называется концептуальной моделью данных .
Логическая структура данных системы управления базами данных (СУБД), будь то иерархическая , сетевая или реляционная , не может полностью удовлетворить требованиям к концептуальному определению данных, поскольку она ограничена по объему и смещена в сторону стратегии реализации, используемой СУБД. Поэтому необходимость определения данных с концептуальной точки зрения привела к разработке методов семантического моделирования данных. То есть методов определения значения данных в контексте их взаимосвязей с другими данными. Как показано на рисунке. Реальный мир, с точки зрения ресурсов, идей, событий и т. д., символически определяется в физических хранилищах данных. Семантическая модель данных — это абстракция, которая определяет, как хранимые символы соотносятся с реальным миром. Таким образом, модель должна быть истинным представлением реального мира. [13]
Архитектура данных — это проектирование данных для использования при определении целевого состояния и последующего планирования, необходимого для достижения целевого состояния. Обычно это один из нескольких доменов архитектуры , которые формируют столпы архитектуры предприятия или архитектуры решения .
Архитектура данных описывает структуры данных, используемые бизнесом и/или его приложениями. Существуют описания данных в хранилище и данных в движении; описания хранилищ данных, групп данных и элементов данных; и сопоставления этих артефактов данных с качествами данных, приложениями, местоположениями и т. д.
Необходимая для реализации целевого состояния архитектура данных описывает, как данные обрабатываются, хранятся и используются в данной системе. Она предоставляет критерии для операций обработки данных, которые позволяют проектировать потоки данных, а также контролировать потоки данных в системе.
Моделирование данных в программной инженерии — это процесс создания модели данных путем применения формальных описаний модели данных с использованием методов моделирования данных. Моделирование данных — это метод определения бизнес- требований к базе данных. Иногда его называют моделированием базы данных , поскольку модель данных в конечном итоге реализуется в базе данных. [16]
Рисунок иллюстрирует способ разработки и использования моделей данных сегодня. Концептуальная модель данных разрабатывается на основе требований к данным для разрабатываемого приложения, возможно, в контексте модели деятельности . Модель данных обычно состоит из типов сущностей, атрибутов, отношений, правил целостности и определений этих объектов. Затем это используется в качестве отправной точки для проектирования интерфейса или базы данных . [5]
Некоторые важные свойства данных, к которым необходимо соблюдать требования:
Другой тип модели данных описывает, как организовать данные с помощью системы управления базами данных или другой технологии управления данными. Он описывает, например, реляционные таблицы и столбцы или объектно-ориентированные классы и атрибуты. Такая модель данных иногда называется физической моделью данных , но в исходной архитектуре ANSI с тремя схемами она называется «логической». В этой архитектуре физическая модель описывает носители данных (цилиндры, дорожки и табличные пространства). В идеале эта модель выводится из более концептуальной модели данных, описанной выше. Однако она может отличаться, чтобы учитывать ограничения, такие как производительность обработки и шаблоны использования.
Хотя анализ данных является общим термином для моделирования данных, эта деятельность на самом деле имеет больше общего с идеями и методами синтеза (выведением общих концепций из частных случаев), чем с анализом (выделением компонентных концепций из более общих). { Предположительно, мы называем себя системными аналитиками , потому что никто не может сказать «системные синтезаторы» . } Моделирование данных стремится объединить интересующие нас структуры данных в единое, неразделимое целое путем устранения ненужной избыточности данных и связывания структур данных с помощью отношений .
Другой подход заключается в использовании адаптивных систем, таких как искусственные нейронные сети , которые могут автономно создавать неявные модели данных.
Структура данных — это способ хранения данных в компьютере для их эффективного использования. Это организация математических и логических концепций данных. Часто тщательно выбранная структура данных позволяет использовать наиболее эффективный алгоритм . Выбор структуры данных часто начинается с выбора абстрактного типа данных .
Модель данных описывает структуру данных в заданном домене и, как следствие, базовую структуру самого домена. Это означает, что модель данных фактически определяет выделенную грамматику для выделенного искусственного языка для этого домена. Модель данных представляет классы сущностей (виды вещей), о которых компания хочет хранить информацию, атрибуты этой информации и отношения между этими сущностями и (часто неявные) отношения между этими атрибутами. Модель описывает организацию данных в некоторой степени независимо от того, как данные могут быть представлены в компьютерной системе.
Сущности, представленные моделью данных, могут быть материальными сущностями, но модели, которые включают такие конкретные классы сущностей, как правило, со временем меняются. Надежные модели данных часто идентифицируют абстракции таких сущностей. Например, модель данных может включать класс сущностей под названием «Персона», представляющий всех людей, которые взаимодействуют с организацией. Такой абстрактный класс сущностей , как правило, более уместен, чем классы под названием «Поставщик» или «Сотрудник», которые идентифицируют конкретные роли, выполняемые этими людьми.
Термин модель данных может иметь два значения: [17]
Теория модели данных состоит из трех основных компонентов: [17]
Например, в реляционной модели структурная часть основана на модифицированной концепции математического отношения ; часть целостности выражена в логике первого порядка , а часть манипуляции выражена с использованием реляционной алгебры , исчисления кортежей и исчисления доменов .
Экземпляр модели данных создается путем применения теории модели данных. Обычно это делается для решения некоторых требований бизнес-предприятия. Бизнес-требования обычно фиксируются семантической логической моделью данных . Она преобразуется в экземпляр физической модели данных, из которой генерируется физическая база данных. Например, разработчик моделей данных может использовать инструмент моделирования данных для создания модели сущности-связи корпоративного хранилища данных некоторого бизнес-предприятия. Эта модель преобразуется в реляционную модель , которая, в свою очередь, генерирует реляционную базу данных .
Шаблоны [18] — это общие структуры моделирования данных, которые встречаются во многих моделях данных.
Диаграмма потока данных (DFD) — это графическое представление «потока» данных через информационную систему . Она отличается от блок-схемы тем, что показывает поток данных вместо потока управления программой. Диаграмму потока данных также можно использовать для визуализации обработки данных (структурированного проектирования). Диаграммы потока данных были изобретены Ларри Константином , первоначальным разработчиком структурного проектирования, [20] на основе модели вычисления «графа потока данных» Мартина и Эстрина.
Обычной практикой является рисование диаграммы потока данных на уровне контекста , которая показывает взаимодействие между системой и внешними сущностями. DFD предназначена для того, чтобы показать, как система делится на более мелкие части, и выделить поток данных между этими частями. Затем эта диаграмма потока данных на уровне контекста «разворачивается», чтобы показать больше деталей моделируемой системы.
Информационная модель — это не тип модели данных, а более или менее альтернативная модель. В области разработки программного обеспечения как модель данных, так и информационная модель могут быть абстрактными, формальными представлениями типов сущностей, которые включают их свойства, отношения и операции, которые могут быть выполнены над ними. Типы сущностей в модели могут быть видами объектов реального мира, такими как устройства в сети, или они сами могут быть абстрактными, например, для сущностей, используемых в биллинговой системе. Обычно они используются для моделирования ограниченной области, которая может быть описана закрытым набором типов сущностей, свойств, отношений и операций.
Согласно Ли (1999) [21], информационная модель — это представление концепций, отношений, ограничений, правил и операций для указания семантики данных для выбранной области дискурса. Она может обеспечить общую, стабильную и организованную структуру информационных требований для контекста области. [21] В более общем смысле термин информационная модель используется для моделей отдельных вещей, таких как объекты, здания, технологические установки и т. д. В этих случаях концепция специализируется на Информационной модели объекта , Информационной модели здания , Информационной модели завода и т. д. Такая информационная модель представляет собой интеграцию модели объекта с данными и документами об объекте.
Информационная модель обеспечивает формализм описания проблемной области, не ограничивая то, как это описание отображается на фактическую реализацию в программном обеспечении. Может быть много отображений информационной модели. Такие отображения называются моделями данных, независимо от того, являются ли они объектными моделями (например, с использованием UML ), моделями сущностей-отношений или схемами XML .
Объектная модель в информатике — это набор объектов или классов, с помощью которых программа может исследовать и манипулировать некоторыми конкретными частями своего мира. Другими словами, объектно-ориентированный интерфейс к некоторой службе или системе. Такой интерфейс называется объектной моделью представленной службы или системы. Например, Document Object Model (DOM) [1] — это набор объектов, представляющих страницу в веб-браузере , используемых программами -скриптами для изучения и динамического изменения страницы. Существует объектная модель Microsoft Excel [22] для управления Microsoft Excel из другой программы, а ASCOM Telescope Driver [23] — это объектная модель для управления астрономическим телескопом.
В вычислительной технике термин объектная модель имеет отчетливое второе значение общих свойств объектов в определенном языке программирования , технологии, нотации или методологии , которые их используют. Например, объектная модель Java , объектная модель COM или объектная модель OMT . Такие объектные модели обычно определяются с использованием таких понятий, как класс , сообщение , наследование , полиморфизм и инкапсуляция . Существует обширная литература по формализованным объектным моделям как подмножеству формальной семантики языков программирования .
Объектно-ролевое моделирование (ORM) — это метод концептуального моделирования , который может использоваться как инструмент для анализа информации и правил. [25]
Моделирование объектов и ролей — это фактоориентированный метод для выполнения системного анализа на концептуальном уровне. Качество приложения базы данных критически зависит от его дизайна. Чтобы обеспечить правильность, ясность, адаптивность и производительность, информационные системы лучше всего сначала специфицировать на концептуальном уровне, используя концепции и язык, которые люди могут легко понять.
Концептуальный проект может включать данные, процессы и поведенческие перспективы, а фактическая СУБД, используемая для реализации проекта, может быть основана на одной из многих логических моделей данных (реляционной, иерархической, сетевой, объектно-ориентированной и т. д.) [26] .
Унифицированный язык моделирования (UML) — это стандартизированный язык моделирования общего назначения в области разработки программного обеспечения . Это графический язык для визуализации, спецификации, построения и документирования артефактов программно-интенсивной системы. Унифицированный язык моделирования предлагает стандартный способ написания чертежей системы, включая: [27]
UML предлагает сочетание функциональных моделей , моделей данных и моделей баз данных .