На чем основана реляционная модель данных

Реляционная модель данных

Реляционная модель данных (РМД) — логическая модель данных, прикладная теория построения баз данных, которая является приложением к задачам обработки данных таких разделов математики как теории множеств и логика первого порядка.

На реляционной модели данных строятся реляционные базы данных.

Реляционная модель данных включает следующие компоненты:

Кроме того, в состав реляционной модели данных включают теорию нормализации.

Термин «реляционный» означает, что теория основана на математическом понятии отношение (relation). В качестве неформального синонима термину «отношение» часто встречается слово таблица. Необходимо помнить, что «таблица» есть понятие нестрогое и неформальное и часто означает не «отношение» как абстрактное понятие, а визуальное представление отношения на бумаге или экране. Некорректное и нестрогое использование термина «таблица» вместо термина «отношение» нередко приводит к недопониманию. Наиболее частая ошибка состоит в рассуждениях о том, что РМД имеет дело с «плоскими», или «двумерными» таблицами, тогда как таковыми могут быть только визуальные представления таблиц. Отношения же являются абстракциями, и не могут быть ни «плоскими», ни «неплоскими».

Для лучшего понимания РМД следует отметить три важных обстоятельства:

Строгое изложение теории реляционных баз данных (реляционной модели данных) в современном понимании можно найти в книге К. Дж. Дейта. «C. J. Date. An Introduction to Database Systems» («Дейт, К. Дж. Введение в системы баз данных»).

Наиболее известными альтернативами реляционной модели являются иерархическая модель, и сетевая модель. Некоторые системы, использующие эти старые архитектуры, используются до сих пор. Кроме того, можно упомянуть об объектно-ориентированной модели, на которой строятся так называемые объектно-ориентированные СУБД, хотя однозначного и общепринятого определения такой модели нет.

Источник

Логика мышления. Часть 17. Реляционная модель данных

На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данных

Этот цикл статей описывает волновую модель мозга, серьезно отличающуюся от традиционных моделей. Настоятельно рекомендую тем, кто только присоединился, начинать чтение с первой части.

В 1970 году Эдгар Кодд опубликовал статью (Codd, 1970), в которой описал основы реляционной модели хранения данных. Практической реализацией этой модели стали все современные реляционные базы данных. Формализация модели привела к созданию реляционного исчисления и реляционной алгебры.

Основной элемент реляционной модели – это кортеж. Кортеж – это упорядоченный набор элементов, каждый из которых принадлежит определенному множеству или, иначе говоря, имеет свой тип. Совокупность однородных по структуре кортежей образует отношение.

Несколько более наглядно все это выглядит в терминах, используемых в базах данных (рисунок ниже). Отношение – это таблица с данными. Кортеж — строка таблицы. Какого типа кортежи содержатся в отношении, или, что то же самое, каков формат строк в таблице, определяется заголовком отношения или таблицы. Каждый из столбцов таблицы образует домен. Значения, которое могут принимать элементы домена, называются атрибутами. Строки таблицы – это совокупность атрибутов, соответствующих доменам.

На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данных
Пример отношения (Заборов)

Строки таблицы могут быть идентифицированы по своим атрибутам, то есть по тому, какие значения принимают элементы кортежа. Само содержание кортежа делает его непохожим на остальные. Но может так оказаться, что некоторые строки совпадут по своим атрибутам. Само по себе совпадение не страшно, но оно уже не позволяет использовать такой набор атрибутов, для однозначной идентификации кортежей в отношении. Чтобы идентификация была однозначной, вводят такое ключевое поле, которое для каждой строки принимает уникальное значение. Такой ключ может нести смысловую нагрузку, а может быть просто искусственно сгенерированным числом.

Смысл многих операций совпадает с соответствующими операциями из теории множеств. Общее представление об их сути дает рисунок ниже.

На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данных
Пример операций над кортежами (Заборов)

Важно, что разные отношения могут содержать домены одного типа. Это значит, что если в двух кортежах встречаются одинаковые домены, внутри них одинаковые атрибуты, то можно говорить об определенной связи кортежей, содержащих эти атрибуты. Иначе говоря, если разные строки одной таблицы в одном из столбцов имеют одинаковые значения, то можно говорить об определенной связи этих строк. Или если в разных таблицах есть столбцы (домены) с одинаковым смыслом, то строки с одинаковыми значениями в этих столбцах оказываются связанными между собой.

Операция проекции позволяет получать отношения, состоящие из части элементов исходных отношений, ограничивая набор используемых доменов. Выборка или селекция позволяет получать отношения, содержащие только те кортежи, поля которых удовлетворяют условиям выборки. Например, можно выбрать только те кортежи, указанные домены которых имеют заданные значения атрибутов.

Совокупность всех операций над отношениями позволяет извлечь из базы данных любую интересующую информацию и сформировать ее в виде отношения (таблицы) с наперед заданными свойствами (заголовком).

Реляционной модель данных возникла не случайно, а явилась следствием необходимости оперировать с большими объемами разнообразных данных. Оказалось, что такая структура хранения данных и определенные в этой структуре операции удобны для решения широкого спектра прикладных задач. Можно предположить, что аналогичное удачное решение могла нащупать и природа в результате естественного отбора.

Источник

Реляционная модель данных: теоретические основы

Реляционная модель данных: кем, когда и для чего создана

В 2002 журнал Forbes поместил реляционную модель данных в список важнейших инноваций последних 85 лет.

Цели создания реляционной модели данных:

Структура данных в реляционной модели данных

Реляционная модель данных предусматривает структуру данных, обязательными объектами которой являются:

IDФамилияИмяДолжностьг.р.
1ПетровИгорьДиректор1968
2ИвановОлегЮрист1973
3КимЕленаБухгалтер1980
4СенинИльяМенеджер1981
5ВасинСергейМенеджер1978

Степень определяется количеством атрибутов, которое оно содержит

Соответствие между формальными терминами реляционной модели данных и неформальными:

Отношения и их реализация в реляционной модели данных

1) закрепление преподавателей за учебными курсами:

Это отношение определяет множество преподавателей, ведущих множество учебных дисциплин.

2) расписание занятий в группах:

Это отношение определяет множество аудиторий, в которых проводятся занятия по множеству учебных дисциплин для множества учебных групп.

Свойства отношений:

Виды отношений:

Ключи отношения в реляционной модели данных

Ключи отношения могут быть следующми:

Решение. Можно объявить первичным ключём таблицы «Наличие» составной ключ, состоящий из идентификатора аптеки и идентификатора препарата. Тогда в таблице невозможно повторение в разных записях сочетания аптеки и прапарата. Первичный ключ может быть не только простым, но и составным.

Целостность данных в реляционной модели данных

Понятия реляционной целостности:

Определитель NULL. Значение Null обозначает тот факт, что значение не определено. Null не принадлежит никакому типу данных и может присутствовать среди значений любого атрибута, определенного на любом типе данных. Двуместная «арифметическая» операция с Null даёт Null. Операция сравнения с Null даёт UNKNOWN.

Целостность сущностей. Требование целостности сущности означает, что первичный ключ должен полностью идентифицировать каждую сущность, а поэтому в составе любого значения первичного ключа не допускается наличие неопределенных значений. Значение атрибута должно быть атомарным.

Ссылочная целостность. Требование целостности по ссылкам состоит в том, что для каждого значения внешнего ключа, появляющегося в кортеже значения-отношения ссылающейся переменной отношения, либо в значении-отношении переменной отношения, на которую указывает ссылка, должен найтись кортеж с таким же значением первичного ключа, либо значение внешнего ключа должно быть полностью неопределенным. Существуют правила удаления кортежа из отношения, на которое ведет ссылка.

Ссылочная целостность: удаление кортежа. Существует три подхода удаления кортежа из отношения, на которое ведет ссылка.

Ограничение удаления. Запрещается производить удаление кортежа, для которого существуют ссылки. Сначала нужно либо удалить ссылающиеся кортежи, либо соответствующим образом изменить значения их внешнего ключа.

Каскадное удаление. При удалении кортежа из отношения, на которое ведет ссылка, из ссылающегося отношения автоматически удаляются все ссылающиеся кортежи.

Установка значения NULL. При удалении кортежа, на который имеются ссылки, во всех ссылающихся кортежах значение внешнего ключа автоматически становится полностью неопределенным.

Пример 3. Есть база данных портала новостей. В ней есть таблица «Рубрики» (политика, экономика, спорт и т.д), есть таблица «Автора» (фамилии и имена авторов). Есть таблица «Тексты», в которой в каждой записи о тексте новости есть поля «Рубрика» (с идентификаторами рубрик из соответствующей таблицы) и «Автор» (с идентификаторами рубрик из соответствующей таблицы). Какими способами можно добиться, чтобы при удалении рубрики и автора была соблюдена ссылочная целостоность данных?

Решение. Первый способ: установить запрет на удаление рубрики или автора из соответствующих таблиц, в случае, если в таблицы «Тексты» есть ссылки на эту рубрику или на этого автора. Второй способ: задать автоматическое удаление из таблицы «Тексты» записей, в которой фигурируют эта рубрика или этот автор. Третий способ: в случае удаления рубрики или автора из соответствующих таблиц в ссылающихся кортежах таблицы «Тексты» значения идентификатора этой рубрики или этого автора становятся неопределёнными (NULL).

Источник

На чем основана реляционная модель данных

Разработчик: доц. Бородина А.И.

План лекции

3. Реляционная модель данных

3. Реляционная модель данных

3.1. Базовые понятия реляционной модели

Концепция реляционной модели данных была предложена в 1969 году Эдгаром Коддом, известным специалистом в области баз данных, а в 1970 году она была им опубликованы. Реляционная модель представляет собой совокупность данных, состоящую из набора двумерных таблиц. В теории множеств таблице соответствует термин отношение ( relation ), физическим представлением которого является таблица, отсюда и название модели – реляционная. Реляционная модель является удобной и наиболее привычной формой представления данных.

При табличной организации данных отсутствует иерархия элементов. Строки и столбцы могут быть просмотрены в любом порядке, поэтому высока гибкость выбора любого подмножества элементов в строках и столбцах.

Любая таблица в реляционной базе состоит из строк, которые называют записями, и столбцов, которые называют полями. На пересечении строк и столбцов находятся конкретные значения данных. Для каждого поля определяется множество его значений, например, поле «Месяц» может иметь двенадцать значений.

Структура таблицы в реляционной базе характеризуется следующим:

· она состоит из совокупности столбцов;

· каждый столбец имеет уникальное, то есть не повторяющееся в других столбцах, имя;

· последовательность столбцов в таблице не существенна;

· все строки таблицы организованы по одинаковой структуре, то есть имеют одно и то же количество реквизитов и имеют одинаковую длину;

· в таблице нет одинаковых строк;

· количество строк в таблице практически не ограничено;

· последовательность строк в таблице не существенна;

· при выполнении манипуляций с таблицей все строки и столбцы могут просматриваться в произвольном порядке безотносительно к их содержанию и смыслу.

Для этого типа модели имеется развитый математический аппарат – реляционная алгебра. В реляционной алгебре поименованный столбец отношения называется атрибутом, а множество всех возможных значений конкретного атрибута – доменом. Строки таблицы со значениями разных атрибутов называют кортежами. Например, в таблице, приведенной на рис. 7, кортежи – это di 1, di 2,…, din ( i =1,2,… m ); а домены d 1к, d ,…, dmk ( k =1,2,… n ). Количество атрибутов, содержащихся в отношении, определяет его степень, а количество кортежей – кардинальность отношения.

Рис. 7. Домены и кортежи отношения

На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данных

Рис. 8. Базовые понятия реляционной модели данных

Записи в таблице хранятся упорядоченными по ключу. Ключ может быть простым, состоящим из одного поля, и сложным, состоящим из нескольких полей. Сложный ключ выбирается в тех случаях, когда ни одно поле таблицы однозначно не определяет запись.

Кроме первичного ключа в таблице могут быть вторичные ключи, называемые еще внешними ключами, или индексами. Индекс – это поле или совокупность полей, чьи значения имеются в нескольких таблицах и которое является первичным ключом в одной из них. Значения индекса могут повторяться в некоторой таблице. Индекс обеспечивает логическую последовательность записей в таблице, а также прямой доступ к записи.

По первичному ключу всегда отыскивается только одна строка, а по вторичному – может отыскиваться группа строк с одинаковыми значениями первичного ключа. Ключи нужны для однозначной идентификации и упорядочения записей таблицы, а индексы для упорядочения и ускорения поиска.

Индексы можно создавать и удалять, оставляя неизменным содержание записей реляционной таблицы. Количество индексов, имена индексов, соответствие индексов полям таблицы определяется при создании схемы таблицы.

Индексы позволяют эффективно реализовать поиск и обработку данных, формирую дополнительные индексные файлы. При корректировке данных автоматически упорядочиваются индексы, изменяется местоположение каждого индекса согласно принятому условию (возрастанию или убыванию значений). Сами же записи реляционной таблицы не перемещаются при удалении или включении новых экземпляров записей, изменении значений их ключевых полей.

С помощью индексов и ключей устанавливаются связи между таблицами. Связь устанавливается путем присвоения значений внешнего ключа одной таблицы значениям первичного ключа другой. Группа связанных таблиц называется схемой данных (рис. 9). Информация о таблицах, их полях, ключах и т.п. называется метаданными.

На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данных

Рис. 9. Схема данных в СУБД Access

Первичный ключ любой таблицы должен содержать уникальные (не повторяющиеся) непустые значения для данной таблицы. Система управления базой данных должна контролировать уникальность первичных ключей. При попытке присвоить первичному ключу значение, уже имеющееся в другой записи таблицы, выдается сообщение об ошибке первичного ключа.

С появлением ПЭВМ реляционные системы стали доминировать среди систем баз данных. Быстрому распространению реляционных моделей способствовало три фактора.

Во-первых, в реляционной системе данные представляются в виде таблиц (отношений), встречающихся в повседневной практике. Поиск и обработка данных в этих таблицах не зависит от их организации и хранения в памяти машины.

Во-вторых, с математической точки зрения реляционная база – это конечный набор отношений. Таким образом, теория реляционных баз данных становится областью математической логики и реляционной алгебры.

В-третьих, множество объектов реляционной модели данных однородно – структура данных определяется только в терминах отношений. Основная единица обработки в операциях реляционной модели данных не запись (как в сетевых и иерархических моделях данных), а множество записей, то есть отношение.

В нереляционных базах данных сложно передать все имеющиеся зависимости, то есть связать друг с другом данные из различных таблиц. Реляционная база данных выполняет все эти действия достаточно просто. Благодаря имеющимся связям в реляционных базах удается избежать дублирования информации, что облегчает работу и позволяет избежать ошибок. В реляционных базах данных также удается легко избежать установления ошибочных связей между различными таблицами данных.

В реляционных базах данных легко производить изменения. Например, если в таблице клиентов изменить адрес конкретного клиента, то соответствующая информация автоматически поступит в другие таблицы, связанные с таблицей клиентов.

Таким образом, достоинства реляционных баз данных можно сформулировать так.

· Упрощенная схема представления данных – в виде таблицы.

· Простота инструментальных средств поддержки реляционной модели.

· Оптимизация доступа к базе данных, поскольку системы сами выбирают наиболее эффективную последовательность действий.

· Улучшение целостности и защиты, поскольку реляционная модель позволяет улучшить выражение требований целостности путем использования языка высокого уровня.

· Возможности различных применений, в том числе и рассчитанных на не специалистов в области программирования.

· Обеспечение пользователя языками высокого уровня при работе с базой данных.

· Обеспечение методологического подхода, поскольку главной целью модели базы данных является возможность описания реального мира, что проще всего осуществляется в реляционной модели.

Недостаток реляционной модели – в жесткости структуры данных, например, невозможно задать строку таблицы произвольной длины, а также сложность описания иерархических и сетевых связей.

3.2. Связи между данными

Данные об объектах в базе связаны между собой. Эти связи принято изображать следующим образом:

На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данных

где А и В – объекты;

F ( x ) – вид связи объекта А с объектом В;

G ( x ) – вид связи объекта В с объектом А.

Функции F ( x ) и G ( x ) могут принимать значения U – единичная и N – множественная связь. Обычно рассматривают четыре вида отношений.

Связь один к одному (1:1):

На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данных

означает, что каждому элементу объекта А может соответствовать только один элемент объекта В и наоборот, например:

На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данных

На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данных

Связь один ко многим (1: N ):

На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данных

означает, что могут существовать экземпляры объекта А, которым соответствует более одного экземпляра объекта В. Но при этом каждому экземпляру объекта В может соответствовать только один экземпляр объекта А, например:

Университет На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данныхФакультеты; Группа На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данныхСтуденты.

Связь многие к одному ( N :1)

На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данных

означает, что каждому экземпляру объекта А может соответствовать только один экземпляр объекта В, но среди экземпляров объекта В могут быть такие, которым соответствует несколько экземпляров объекта А, например:

Университет На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данныхФакультеты; Покупатели На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данныхПродавец.

Очевидно, что если 1: N – тип связи между А и В, то N :1 – тип связи между В и А.

На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данных

означает, что может существовать экземпляр объекта А, которому соответствует несколько экземпляров объекта В и наоборот. Например:

Преподаватели На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данныхПредметы; Покупатели На чем основана реляционная модель данных. Смотреть фото На чем основана реляционная модель данных. Смотреть картинку На чем основана реляционная модель данных. Картинка про На чем основана реляционная модель данных. Фото На чем основана реляционная модель данныхПродавцы.

3.3. Операции в реляционных базах данных

Каждая база данных имеет свой набор операций. Эти операции переводят базы данных из одного состояния в другое. Каждая операции включает выделение данных (селекцию) и те действия, которые будут выполняться над выделенными данными. Теоретической основой реляционной базы данных является реляционная алгебра, основанная на теории множеств и рассматривающая специальные операции над отношениями, и реляционное исчисление, базирующееся на математической логике. Для манипулирования данными реляционной базы используются операции теории отношений. Основными операциями в реляционной базе являются операции обновления базы данных и операции обработки отношений.

К операциям обновления базы данных относятся те операции, которые выполняют вставку новых кортежей, удаление ненужных, корректировку значений атрибутов существующих кортежей, а именно: это операции Включить, Удалить, Обновить.

Операция Включить требует задания имени отношения и предварительного формирования значений атрибутов нового кортежа. Обязательно должен быть задан ключ кортежа.

Операция Удалить требует наименования отношения, а также идентификации кортежа или группы кортежей, подлежащих удалению.

Операция Обновить выполняется для названного отношения и может корректировать как один, так и несколько кортежей. Например, если руководство фирмы приняло решение увеличить на одинаковую сумму все оклады сотрудников, то одной операцией Обновить будет откорректировано сразу несколько кортежей.

Что касается операций обработки, то они позаимствованы из реляционной алгебры. Существует несколько подходов к определению реляционной алгебры. Они отличаются набором операций и их интерпретацией. Рассмотрим набор операций, который предложил Э. Кодд. Согласно его подходу реляционная алгебра включает восемь операций, пять из которых являются базовыми: Выборка, Проекция, Умножение, Объединение, Вычитание.

Операция Выборка позволяет выбрать из отношения только те кортежи, которые удовлетворяют заданному условию.

При Проекции отношения на заданный набор его атрибутов получается новое отношение, создаваемое посредством извлечения из исходного отношения кортежей, содержащих указанные атрибуты.

При Умножении (декартовом произведении) двух отношений получается новое отношение, кортежи которого являются сцеплением (конкатенацией) кортежей первого и второго отношений.

В результате Объединения двух отношений получается третье, включающее кортежи, входящие хотя бы в одно отношение, то есть содержащее все элементы исходных отношений.

При Вычитании выдаются лишь те кортежи первого отношения, которые остались от вычитания второго отношения, то есть из первого отношения выбрасываются все кортежи второго.

Остальные три операции являются производными, они могут быть получены из основных операций, их называют дополнительными: Соединение, Пересечение, Деление.

Операция Соединение применяется к двум отношениям, имеющим общий атрибут. Результат этой операции для двух отношений по некоторому условию есть отношение, состоящее из кортежей, которые являются сочетанием первого и второго отношений, удовлетворяющих указанному условию. Результатом операции

Пересечение двух отношений является отношение, включающее все кортежи, входящие в оба отношения.

Операция Деления предполагает, что имеется два отношения: одно – бинарное (содержащее два атрибута), другое – унарное (содержащее один атрибут). В результате получается отношение, состоящее из кортежей, включающих значения первого атрибута кортежей первого отношения, но только таких, для которых множество значений второго атрибута первого отношения совпадает с множеством значений атрибутов второго отношения.

Отличительная особенность операций обработки отношений заключается в том, что единицей обработки в них являются не кортежи, а отношения: на входе каждой операции используется одно или два отношения, а результат выполнения операций – новое отношение. Смысл любой обработки реляционной базы данных состоит либо в обновлении существующих отношений, либо в создании новых, и результат всякого запроса к базе данных есть построение нового отношения, удовлетворяющего условиям выборки.

Рассмотрим некоторые, наиболее часто используемые операции реляционной алгебры, подробнее.

Операция Объединение ( C1 = A И B) предполагает, что на входе задано два совместимых отношения, одинаковой размерности: А и В. Результат объединения есть отношение С1, той же структуры, содержащее все кортежи отношения А и все кортежи отношения В (рис. 10).

А (Сберегательные банки Центрального района):

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *