мощность соединения между двумя таблицами - это числовое соотношение между строками одной таблицы и строками другой. Общие мощности включают де один к одному, один ко многим и многие ко многим.
Например, рассмотрим базу данных электронных медицинских карт. Такая база данных может содержать следующие таблицы:
доктор
таблица с информацией о врачах.пациент
таблица для медицинских субъектов, проходящих лечение.встреча
таблица с записью для каждого посещения больницы.Между этими объектами существуют естественные отношения, такие как встреча с участием многих врачей. Существует связь многие-ко-многим между записями в doctor
и записями в пациента
, потому что у врачей много пациентов, а пациенты могут посещать многих врачей. Между записями в пациенте
и записями в встрече
существует связь один-ко-многим, потому что у пациентов может быть много встреч, и в каждой встрече участвует только один пациент.
Отношения «один-к-одному» в основном используются для разделения таблицы на две части, чтобы предоставить краткую информацию и сделать ее более понятной. В примере с больницей такие отношения могут использоваться для отделения уникальной профессиональной информации врачей от административных деталей.
В моделировании данных коллекции элементов данных группируются в «таблицы данных», которые содержат группы имен полей данных, называемые «атрибутами базы данных». Таблицы связаны «ключевыми полями». «Первичный ключ» присваивает поле своей «таблице специального заказа». Например, поле «Фамилия врача» может быть назначено в качестве первичного ключа таблицы «Доктор» со всеми людьми, имеющими одинаковую фамилию, упорядоченными в алфавитном порядке по первым трем буквам их имени. Таблица также может иметь внешний ключ, который указывает, что это поле связано с первичным ключом другой таблицы.
Сложная модель данных может включать сотни связанных таблиц. Компьютерный ученый Эдгар Ф. Кодд создал систематический метод декомпозиции и организации реляционных баз данных. Действия Кодда по организации таблиц базы данных и их ключей называются нормализацией базы данных, что позволяет избежать некоторых скрытых ошибок проектирования базы данных (удалить аномалии или обновить аномалии ). В реальной жизни процесс нормализации базы данных заканчивается разбиением таблиц на большее количество меньших таблиц.
В реальном мире моделирование данных имеет решающее значение, потому что по мере роста объема данных таблицы, связанные ключами, должны использоваться для ускорения запрограммированного извлечения данных. Если модель данных плохо спроектирована, даже система компьютерных приложений, содержащая всего миллион записей, приведет к неприемлемым задержкам отклика конечных пользователей. По этой причине моделирование данных является краеугольным камнем навыков, необходимых современному разработчику программного обеспечения.
11>модель сущность-взаимосвязь предлагает метод, который создает диаграммы сущность-взаимосвязь (ERD), которые можно использовать для сбора информации о типах сущностей модели данных, взаимосвязях и мощности элементов. Гусиная лапка показывает связь "один-ко-многим" . В качестве альтернативы одна линия представляет собой взаимно однозначное отношение.
В парадигме объектно-ориентированного прикладного программирования, которая связана с проектированием структуры базы данных, UML диаграммы классов могут быть используется для моделирования объекта . В этом случае объектные отношения моделируются с использованием ассоциаций UML, и в этих ассоциациях используется множественность для обозначения мощности . Вот несколько примеров:
Отношения | Пример | Влево | Вправо | Повествование |
---|---|---|---|---|
Один к одному | человек ← → свидетельство о рождении | 1 | 1 | У человека должно быть собственное свидетельство о рождении |
Индивидуальное общение (необязательно с одной стороны) | человек ← → водительские права | 1 | 0..1 или ? | Человек может иметь водительские права |
Многие-одному | человек ← → место рождения | 1.. * или + | 1 | Многие люди могут родиться в том же месте |
Многие-ко-многим (необязательно для обеих сторон) | человек ← → книга | 0.. * или * | 0.. * или * | Лицо может владеть книгами |
One-to-many | заказ ← → позиция | 1 | 1.. * или + | Заказ содержит хотя бы одну позицию |
Многие ко многим | курс ← → студент | 1.. * или + | 1.. * или + | Студенты проходят различные курсы |
.
.