что такое связь в информатике
Что такое связь в информатике
В Access можно задать три вида связей между таблицами: Один-ко-многим, Многие-ко-многим и Один-к-одному.
При связи Один-к-одному запись в таблице А может иметь не более одной связанной записи в таблице В и наоборот. Этот тип связи используют не очень часто, поскольку такие данные могут быть помещены в одну таблицу. Связь с отношением Один-к-одному применяют для разделения очень широких таблиц, для отделения части таблицы в целях ее защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице.
Тип создаваемой связи зависит от полей, для которых определяется связь:
· связь Один-ко-многим создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс, т.е. значения в нем не повторяются;
· связь Один-к-одному создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы;
· связь Многие-ко-многим фактически представляет две связи типа один-ко-многим через третью таблицу, ключ которой состоит, по крайней мере, из двух полей, общих для двух других таблиц.
Создание связей между таблицами
· щелкните по кнопке на панели инструментов или выполните команду Сервис, Схема данных. На экране появится окно «Схема данных»;
· щелкните по кнопке на панели инструментов или выполните команду Связи, Добавить таблицу;
· в появившемся окне будет выделено название одной таблицы. Щелкните по кнопке ;
· закройте окно, щелкнув по кнопке ;
· создайте связь между таблицами. Для этого подведите курсор мыши к полю первой таблицы, щелкните левой кнопкой мыши и, не отпуская ее, перетащите курсор на поле в другую таблицу, а затем отпустите кнопку мыши. На экране откроется окно «Связи»;
· установите флажок в свойстве Обеспечение целостности данных, щелкнув по нему;
· установите флажок в свойстве Каскадное обновление связанных полей и Каскадное удаление связанных записей;
· аналогично создайте связи между другими таблицами
· закройте окно схемы данных, ответив ДА на вопрос о сохранении макета.
Связи между таблицами базы данных
1. Введение
Связи — это довольна важная тема, которую следует понимать при проектировании баз данных. По своему личному опыту скажу, что осознав связи, мне намного легче далось понимание нормализации базы данных.
1.1. Для кого эта статья?
Эта статья будет полезна тем, кто хочет разобраться со связями между таблицами базы данных. В ней я постарался рассказать на понятном языке, что это такое. Для лучшего понимания темы, я чередую теоретический материал с практическими примерами, представленными в виде диаграммы и запроса, создающего нужные нам таблицы. Я использую СУБД Microsoft SQL Server и запросы пишу на T-SQL. Написанный мною код должен работать и на других СУБД, поскольку запросы являются универсальными и не используют специфических конструкций языка T-SQL.
1.2. Как вы можете применить эти знания?
2. Благодарности
Учтены были советы и критика авторов jobgemws, unfilled, firnind, Hamaruba.
Спасибо!
3.1. Как организовываются связи?
Связи создаются с помощью внешних ключей (foreign key).
Внешний ключ — это атрибут или набор атрибутов, которые ссылаются на primary key или unique другой таблицы. Другими словами, это что-то вроде указателя на строку другой таблицы.
3.2. Виды связей
4. Многие ко многим
Представим, что нам нужно написать БД, которая будет хранить работником IT-компании. При этом существует некий стандартный набор должностей. При этом:
4.1. Как построить такие таблицы?
Слева указаны работники (их id), справа — должности (их id). Работники и должности на этой таблице указываются с помощью id’шников.
На эту таблицу можно посмотреть с двух сторон:
4.2. Реализация
С помощью ограничения foreign key мы можем ссылаться на primary key или unique другой таблицы. В этом примере мы
4.3. Вывод
Для реализации связи многие ко многим нам нужен некий посредник между двумя рассматриваемыми таблицами. Он должен хранить два внешних ключа, первый из которых ссылается на первую таблицу, а второй — на вторую.
5. Один ко многим
Эта самая распространенная связь между базами данных. Мы рассматриваем ее после связи многие ко многим для сравнения.
Предположим, нам нужно реализовать некую БД, которая ведет учет данных о пользователях. У пользователя есть: имя, фамилия, возраст, номера телефонов. При этом у каждого пользователя может быть от одного и больше номеров телефонов (многие номера телефонов).
В этом случае мы наблюдаем следующее: пользователь может иметь многие номера телефонов, но нельзя сказать, что номеру телефона принадлежит определенный пользователь.
Другими словами, телефон принадлежит только одному пользователю. А пользователю могут принадлежать 1 и более телефонов (многие).
Как мы видим, это отношение один ко многим.
5.1. Как построить такие таблицы?
PhoneId | PersonId | PhoneNumber |
---|---|---|
1 | 5 | 11 091-10 |
2 | 5 | 19 124-66 |
3 | 17 | 21 972-02 |
Данная таблица представляет три номера телефона. При этом номера телефона с id 1 и 2 принадлежат пользователю с id 5. А вот номер с id 3 принадлежит пользователю с id 17.
Заметка. Если бы у таблицы «Phones» было бы больше атрибутов, то мы смело бы их добавляли в эту таблицу.
5.2. Почему мы не делаем тут таблицу-посредника?
Таблица-посредник нужна только в том случае, если мы имеем связь многие-ко-многим. По той простой причине, что мы можем рассматривать ее с двух сторон. Как, например, таблицу EmployeesPositions ранее:
5.3. Реализация
6. Один к одному
Представим, что на работе вам дали задание написать БД для учета всех работников для HR. Начальник уверял, что компании нужно знать только об имени, возрасте и телефоне работника. Вы разработали такую БД и поместили в нее всю 1000 работников компании. И тут начальник говорит, что им зачем-то нужно знать о том, является ли работник инвалидом или нет. Наиболее простое, что приходит в голову — это добавить новый столбец типа bool в вашу таблицу. Но это слишком долго вписывать 1000 значений и ведь true вы будете вписывать намного реже, чем false (2% будут true, например).
Более простым решением будет создать новую таблицу, назовем ее «DisabledEmployee». Она будет выглядеть так:
Но это еще не связь один к одному. Дело в том, что в такую таблицу работник может быть вписан более одного раза, соответственно, мы получили отношение один ко многим: работник может быть несколько раз инвалидом. Нужно сделать так, чтобы работник мог быть вписан в таблицу только один раз, соответственно, мог быть инвалидом только один раз. Для этого нам нужно указать, что столбец EmployeeId может хранить только уникальные значения. Нам нужно просто наложить на столбец EmloyeeId ограничение unique. Это ограничение сообщает, что атрибут может принимать только уникальные значения.
Выполнив это мы получили связь один к одному.
Заметка. Обратите внимание на то, что мы могли также наложить на атрибут EmloyeeId ограничение primary key. Оно отличается от ограничения unique лишь тем, что не может принимать значения null.
6.1. Вывод
Можно сказать, что отношение один к одному — это разделение одной и той же таблицы на две.
6.2. Реализация
7. Обязательные и необязательные связи
Связи можно поделить на обязательные и необязательные.
7.1. Один ко многим
У одной биологической матери может быть много детей. У ребенка есть только одна биологическая мать.
А) У женщины необязательно есть свои дети. Соответственно, связь необязательна.
Б) У ребенка обязательно есть только одна биологическая мать – в таком случае, связь обязательна.
7.2. Один к одному
У одного человека может быть только один загранпаспорт. У одного загранпаспорта есть только один владелец.
А) Наличие загранпаспорта необязательно – его может и не быть у гражданина. Это необязательная связь.
Б) У загранпаспорта обязательно есть только один владелец. В этом случае, это уже обязательная связь.
7.3. Многие ко многим
Человек может инвестировать в акции разных компаний (многих). Инвесторами какой-то компании являются определенные люди (многие).
А) Человек может вообще не инвестировать свои деньги в акции.
Б) Акции компании мог никто не купить.
8. Как читать диаграммы?
Выше я приводил диаграммы созданных нами таблиц. Но для того, чтобы их понимать, нужно знать, как их «читать». Разберемся в этом на примере диаграммы из пункта 5.3.
Мы видим отношение один ко многим. Одной персоне принадлежит много телефонов.
9. Итоги
10. Задачи
Для лучшего усвоения материала предлагаю вам решить следующие задачи:
Система управления базами данных SQLite. Изучаем язык запросов SQL и реляционные базы данных на примере библиотекой SQLite3. Курс для начинающих.
Часть 3.2: Виды связей между таблицами в базе данных. Связи в реляционных базах данных. Отношения, кортежи, атрибуты
Здравствуйте, уважаемые посетители сайта ZametkiNaPolyah.ru. Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Продолжаем изучать теорию реляционных баз данных и в этой части мы познакомимся с видами и типами связей между таблицами в реляционных базах данных. Так же мы познакомимся с такими термина, как: кортеж, атрибут и отношения. Данная тема является базовой и ее понимание необходимо для работы с базами данных и для их проектирования.
Виды связей между таблицами в базе данных. Связи в реляционных базах данных. Отношения, кортежи, атрибуты.
Сразу скажу, что связей между таблицами в реляционной базе данных всего три. Поэтому их изучение, понимание и восприятие пройдет быстро, легко и безболезненно. Приступим к изучению.
Термины кортеж, атрибут и отношение в реляционных базах данных
В своей публикации я буду стараться объяснять теорию баз данных не с математической точки зрения, а на примерах. Грубо говоря, на пальцах. Во-первых, практические примеры позволяют легче усваивать материал. Во-вторых, с математической теорией проще разобраться, когда понимаешь суть происходящего.
Давайте разбираться с тем, что такое: отношение, кортеж, атрибут в реляционной базе данных.
Таблица с данными из базы данных World
У нас есть простая таблица City из базы данных World, в которой есть строки и столбцы. Но термины: таблица, строка, столбец – это термины стандарта SQL.
Кстати: ни одна из существующих в мире СУБД не имеет полной поддержки того или иного стандарта SQL, но и ни один стандарт SQL полностью не реализует математику реляционных баз данных.
В терминологии реляционных баз данных: таблица – это отношение (принимается такое допущение), строка – это кортеж, а столбец – атрибут. Иногда вы можете услышать, как некоторые разработчики называют строки записями. Чтобы не было путаницы в дальнейшем предлагаю использовать термины SQL.
Если рассматривать таблицу, как объект (например книга), то столбец – это характеристики объекта, а строки содержат информацию об объекте.
Виды и типы связей между таблицами в реляционных базах данных
Давайте теперь рассмотрим то, как могут быть связаны таблицы в реляционных базах данных. Сразу скажу, что всего существует три вида связей между таблицами баз данных:
• связь один к одному;
• связь один ко многим;
• связь многие ко многим.
Рассмотрим, как такие связи между таблицами могут быть реализованы в реляционных базах данных.
Реализация связи один ко многим в теории баз данных
Связь один ко многим в реляционных базах данных реализуется тогда, когда объекту А может принадлежать или же соответствовать несколько объектов Б, но объекту Б может соответствовать только один объект А. Не совсем понятно, поэтому смотрим пример ниже.
Реализация связи один ко многим в реляционных базах данных
У нас есть таблица, в которой содержатся данные о клиентах и у нас есть таблица, в которой хранятся их телефоны. Мы можем смело утверждать, что у одного клиента может быть несколько телефонов, но в тоже время мы можем быть уверены в том, что один конкретный номер может быть только у одного клиента. Это типичный пример связи один ко многим.
Связь многие ко многим
Связь многие ко многим реализуется в том случае, когда нескольким объектам из таблицы А может соответствовать несколько объектов из таблицы Б, и в тоже время нескольким объектам из таблицы Б соответствует несколько объектов из таблицы А. Рассмотрим простой пример.
Пример связи многие ко многим
У нас есть таблица с книгами и есть таблица с авторами. Приведу два верных утверждения. Первое: одну книгу может написать несколько авторов. Второе: автор может написать несколько книг. Здесь мы наблюдаем типичную ситуацию, когда связь между таблицами многие ко многим. Такая связь (связь многие ко многим) реализуется путем добавления третьей таблицы.
Связь один к одному
Связь один к одному – самая редко встречаемая связь между таблицами. В 97 случаях из 100, если вы видите такую связь, вам необходимо объединить две таблицы в одну.
Пример связи один к одному
Таблицы будут связаны один к одному тогда, когда одному объекту таблицы А соответствует один объект таблицы Б, и одному объекту таблицы Б соответствует один объект таблицы А. Как я уже говорил: если вы видите, что связь один к одному – смело объединяйте таблицы в одну, за исключением тех случаев, когда происходит модернизация базы данных.
Например, у нас была таблица, в которой хранились данные о сотрудниках компании. Но произошли какие-то изменения в бизнес-процессе и появилась необходимость создать таблицы с теми же самыми сотрудниками, но не для всей компании, а разбив их по отделам. Таблицы отделов будут дочерними по отношению к таблице, в которой хранятся данные обо всех сотрудниках компании, и связаны такие таблицы будут связью один к одному.
Мы рассмотрели все виды связей между таблицами и то, как они реализуются в базах данных. В дальнейшем, когда мы начнем создавать свои базы данных, информация о видах связи между таблицами нам очень поможет.
Информатика. 10 класс
Конспект урока
Информатика, 10 класс. Урок № 3.
Тема — Информационные связи в системах различной природы
Перечень вопросов, рассматриваемых в теме: системы, системный эффект, информационные связи в системах, управление, системы управления
Глоссарий по теме: система, структура, системный эффект, управление, прямая связь, обратная связь
Основная литература по теме урока:
Л. Л. Босова, А. Ю. Босова. Информатика. Базовый уровень: учебник для 10 класса —
М.: БИНОМ. Лаборатория знаний, 2016
Дополнительная литература по теме урока:
И. Г. Семакин, Т. Ю. Шеина, Л. В. Шестакова Информатика и ИКТ. Профильный уровень: учебник для 10 класса — М.: БИНОМ. Лаборатория знаний, 2010
Теоретический материал для самостоятельного изучения:
Окружающий нас мир многообразен и сложен. Он наполнен разнообразными объектами — предметами, процессами и явлениями.
Сложные объекты, состоящие из взаимосвязанных частей (элементов) и существующие как единое целое, принято называть системами.
Всякая система определяется составом своих частей и структурой — порядком объединения элементов в единое целое. Любой реальный объект бесконечно сложен. Степень детализации при описании его состава и структуры зависит от того, для чего это нужно. Один и тот же объект в одних случаях может рассматриваться как система, включающая в себя другие подсистемы и объекты, а в других — как простой элемент или подсистема, входящая в другую систему.
Для описания систем часто используется их представление в виде графа. На рисунке в виде графа представлена система избирательных комиссий в Российской Федерации.
Соединение, интеграция отдельных элементов в единое целое приводит к системному эффекту — возникновению у системы новых свойств, не присущих ни одной из её составных частей. Нарушение элементного состава или структуры системы ведёт к частичной или полной утрате её функциональности.
При исследовании тех или иных объектов окружающего мира недостаточно рассмотреть по отдельности каждый из элементов, входящих в их состав. Изучая деятельность системы, нужно учитывать не только все её элементы, но и связи между ними, а также взаимодействие системы с окружающим миром. В этом состоит суть системного подхода.
Способность применять системный подход (рассматривать исследуемый объект как элемент системы, связанный с множеством других элементов) и оценивать на этой основе ситуацию с разных точек зрения является основой системного мышления, позволяющего человеку выбирать наиболее эффективный путь решения возникающих проблем.
Информационные связи в системах
Во всем многообразии окружающих нас систем можно выделить системы естественные (природные) и системы искусственные (созданные человеком) — технические и общественные.
Природные системы также можно назвать материальными. И есть множество материальных систем, созданных человеком (транспортная система, энергосистема и др.). Между элементами таких систем существуют материальные связи: физические, энергетические и др.
Но во многих материальных системах, например, в системах растительного и животного мира, существуют связи, которые можно назвать информационными:
Информационные связи присущи и техническим системам:
— автоматическое устройство, называемое термостатом, воспринимает информацию о температуре в помещении и в зависимости от заданного человеком температурного режима включает или отключает отопительные приборы;
— автопилот управляет самолётом в соответствии с заложенной в него программой и т. д.
На основе информационных связей построены общественные (социальные) системы, представляющие собой различные объединения людей.
Информационные связи в системах любой природы состоят в передаче информации от одного элемента системы к другому, в обмене информацией между элементами системы, в хранении и обработке информации, т. е. представляют собой информационные процессы.
Информация ценна не сама по себе, она нужна для того, чтобы обеспечить успешность некоторых целенаправленных действий. Планомерное воздействие на некоторый объект с целью достижения определённого результата называется управлением.
Управление — это процесс целенаправленного воздействия на объект, осуществляемый для организации его функционирования по заданной программе.
Изучением процессов управления в живых и неживых системах занимается наука кибернетика.
С точки зрения кибернетики управление происходит путем информационного взаимодействия между управляющим объектом и объектом управления.
Прямая связь подразумевает передачу информации от управляющего объекта к объекту управления. Обратная связь — это процесс передачи информации о состоянии объекта управления управляющему объекту. Назначение обратной связи — корректировка управляющих воздействий на объект управления в зависимости от его состояния.
Все компоненты кибернетической системы управления имеются в организме животного и человека: мозг — управляющий объект, органы движения — объекты управления, нервная система — каналы информационной связи. Таким образом, животное и человек являются естественными (созданными природой) самоуправляемыми системами, т. е. системами, в которых управляющий объект и объект управления представляют собой единое целое.
Все системы управления можно разделить на:
Количество автоматизированных и автоматических систем вокруг нас неуклонно возрастает.
Информатика. 10 класс
Конспект урока
Информатика, 10 класс. Урок № 3.
Тема — Информационные связи в системах различной природы
Перечень вопросов, рассматриваемых в теме: системы, системный эффект, информационные связи в системах, управление, системы управления
Глоссарий по теме: система, структура, системный эффект, управление, прямая связь, обратная связь
Основная литература по теме урока:
Л. Л. Босова, А. Ю. Босова. Информатика. Базовый уровень: учебник для 10 класса —
М.: БИНОМ. Лаборатория знаний, 2016
Дополнительная литература по теме урока:
И. Г. Семакин, Т. Ю. Шеина, Л. В. Шестакова Информатика и ИКТ. Профильный уровень: учебник для 10 класса — М.: БИНОМ. Лаборатория знаний, 2010
Теоретический материал для самостоятельного изучения:
Окружающий нас мир многообразен и сложен. Он наполнен разнообразными объектами — предметами, процессами и явлениями.
Сложные объекты, состоящие из взаимосвязанных частей (элементов) и существующие как единое целое, принято называть системами.
Всякая система определяется составом своих частей и структурой — порядком объединения элементов в единое целое. Любой реальный объект бесконечно сложен. Степень детализации при описании его состава и структуры зависит от того, для чего это нужно. Один и тот же объект в одних случаях может рассматриваться как система, включающая в себя другие подсистемы и объекты, а в других — как простой элемент или подсистема, входящая в другую систему.
Для описания систем часто используется их представление в виде графа. На рисунке в виде графа представлена система избирательных комиссий в Российской Федерации.
Соединение, интеграция отдельных элементов в единое целое приводит к системному эффекту — возникновению у системы новых свойств, не присущих ни одной из её составных частей. Нарушение элементного состава или структуры системы ведёт к частичной или полной утрате её функциональности.
При исследовании тех или иных объектов окружающего мира недостаточно рассмотреть по отдельности каждый из элементов, входящих в их состав. Изучая деятельность системы, нужно учитывать не только все её элементы, но и связи между ними, а также взаимодействие системы с окружающим миром. В этом состоит суть системного подхода.
Способность применять системный подход (рассматривать исследуемый объект как элемент системы, связанный с множеством других элементов) и оценивать на этой основе ситуацию с разных точек зрения является основой системного мышления, позволяющего человеку выбирать наиболее эффективный путь решения возникающих проблем.
Информационные связи в системах
Во всем многообразии окружающих нас систем можно выделить системы естественные (природные) и системы искусственные (созданные человеком) — технические и общественные.
Природные системы также можно назвать материальными. И есть множество материальных систем, созданных человеком (транспортная система, энергосистема и др.). Между элементами таких систем существуют материальные связи: физические, энергетические и др.
Но во многих материальных системах, например, в системах растительного и животного мира, существуют связи, которые можно назвать информационными:
Информационные связи присущи и техническим системам:
— автоматическое устройство, называемое термостатом, воспринимает информацию о температуре в помещении и в зависимости от заданного человеком температурного режима включает или отключает отопительные приборы;
— автопилот управляет самолётом в соответствии с заложенной в него программой и т. д.
На основе информационных связей построены общественные (социальные) системы, представляющие собой различные объединения людей.
Информационные связи в системах любой природы состоят в передаче информации от одного элемента системы к другому, в обмене информацией между элементами системы, в хранении и обработке информации, т. е. представляют собой информационные процессы.
Информация ценна не сама по себе, она нужна для того, чтобы обеспечить успешность некоторых целенаправленных действий. Планомерное воздействие на некоторый объект с целью достижения определённого результата называется управлением.
Управление — это процесс целенаправленного воздействия на объект, осуществляемый для организации его функционирования по заданной программе.
Изучением процессов управления в живых и неживых системах занимается наука кибернетика.
С точки зрения кибернетики управление происходит путем информационного взаимодействия между управляющим объектом и объектом управления.
Прямая связь подразумевает передачу информации от управляющего объекта к объекту управления. Обратная связь — это процесс передачи информации о состоянии объекта управления управляющему объекту. Назначение обратной связи — корректировка управляющих воздействий на объект управления в зависимости от его состояния.
Все компоненты кибернетической системы управления имеются в организме животного и человека: мозг — управляющий объект, органы движения — объекты управления, нервная система — каналы информационной связи. Таким образом, животное и человек являются естественными (созданными природой) самоуправляемыми системами, т. е. системами, в которых управляющий объект и объект управления представляют собой единое целое.
Все системы управления можно разделить на:
Количество автоматизированных и автоматических систем вокруг нас неуклонно возрастает.