Этапы проектирования БД и их процедуры 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Этапы проектирования БД и их процедуры



Требования, предъявляемые к базе данных

 

1. Целостность БД (полнота и непротиворечивость данных).

2. Многократное использование данных.

3. Быстрый поиск и получение информации по запросам пользователей.

4. Простота обновления данных.

5. Уменьшение излишней избыточности данных.

6. Защита данных от несанкционированного доступа, от искажения и уничтожения.

ЭТАПЫ ЖИЗНЕННОГО ЦИКЛА БД

Жизненный цикл базы данных (ЖЦБД) – это процесс проектирования, реализации и поддержки базы данных. Он состоит из следующих 7 этапов:

1) предварительное планирование БД;

2) проверка осуществимости;

3) определение требований;

4) концептуальное проектирование;

5) логическое проектирование;

6) физическое проектирование;

7) оценка работы и поддержка базы данных.

3.Модель "сущность-связь" (ER-модель)

Сущность – это некоторый объект реального мира, который может существовать независимо.

Атрибут – это свойство сущности.

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

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

 
 
МЕНЕДЖЕР

 


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

 

1. МЕНЕДЖЕР – УПРАВЛЯЕТ – ФИЛИАЛ

2. ФИЛИАЛ – ОБРАБАТЫВАЕТ – СЧЕТ

3. КЛИЕНТ – ИМЕЕТ – СЧЕТ

 
 

 


Если каждый экземпляр сущности А может быть связан не более чем с одним экземпляром сущности В, то связь между сущностями А и В имеет тип "один-к-одному" (1:1).

 

ER-диаграмма для связи типа 1:1 (для связи 1).

 

 

Если каждый экземпляр сущности А может быть связан более чем с одним экземпляром сущности В, а каждый экземпляр сущности В может быть связан не более чем с одним экземпляром сущности А, то связь между сущностями А и В имеет тип "один-ко-многим" (1:М).

ER-диаграмма для связи типа 1:М (для связи 2)

…………..

Если каждый экземпляр сущности А может быть связан с несколькими экземплярами сущности В, и каждый экземпляр сущности В может быть связан с несколькими экземплярами сущности А, то связь между сущностями А и В имеет тип "многие-ко-многим" (М:N).

ER-диаграмма для связи типа М:N (для связи 3).

………………

Понятие класс принадлежности сущности

Если каждый экземпляр сущности А связан с экземпляром сущности В, то класс принадлежности сущности А является обязательным. Этот факт отмечается на ER-диаграмме кружочком, помещенным в прямоугольник, смежный с прямоугольником сущности А.

Если не каждый экземпляр сущности А связан с экземпляром сущности В, то класс принадлежности сущности А является необязательным. Этот факт отмечается на ER-диаграмме кружочком на линии связи возле прямоугольника сущности A.

Предположим, что в рассматриваемой предметной области БАНК КП всех четырех сущностей является обязательным. Тогда ER-модель предметной области БАНК будет иметь вид, представленный на рис. 1.

 
 

 

 


Каждая из четырех сущностей приведенной ER-модели может быть описана своим набором атрибутов (рис. 2).

 

МЕНЕДЖЕР   ФИЛИАЛ
Номер менеджера (НМ)   Номер филиала (НФ)
Стаж работы (СТАЖ)   Адрес филиала (АДР_Ф)
Специальность (СПЕЦ)    
    КЛИЕНТ
СЧЕТ   Номер клиента (НК)
Номер счета (НС)   Ф.И.О. клиента (ФИО_К)
Тип счета (ТИП)   Социальное положение (СОЦ)
Остаток на счете (ОСТ)   Адрес клиента (АДР_К)

Рис. 2. Наборы атрибутов сущностей предметной области БАНК

ER-модель в совокупности с наборами атрибутов сущностей может служить примером концептуальной модели предметной области или концептуальной схемы БД.

3.Преобразование ER-модели в реляционную модель

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

Правила генерации таблиц из ER-диаграмм опираются на два основных фактора – тип связи и класс принадлежности сущности.

Для связи типа 1:1 существуют три правила формирования предварительных таблиц из ER-диаграмм.

Правило 1

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

На ER-диаграмме связи 1:1 КП сущностей МЕНЕДЖЕР, ФИЛИАЛ является обязательным. Тогда по правилу 1 должна быть сгенерирована одна таблица следующей структуры:

НМ СТАЖ СПЕЦ НФ АДР_Ф

МЕНЕДЖЕР – ФИЛИАЛ

Правило 2

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

Представим, что на ER-диаграмме связи 1:1 КП сущности МЕНЕДЖЕР будет обязательный, а сущности ФИЛИАЛ – необязательный. Тогда по правилу 2 должны быть сгенерированы две таблицы следующей структуры:

МЕНЕДЖЕР - ФИЛИАЛ

НМ СТАЖ СПЕЦ НФ

ФИЛИАЛ

НФ АДР_Ф

Сущность с необязательным КП (ФИЛИАЛ) именуется родительской, а с обязательным (МЕНЕДЖЕР) – дочерней. Первичный ключ родительской сущности (НФ), помещаемый в таблицу, представляющую дочернюю сущность, называется внешним ключом родительской сущности. Связь между указанными таблицами устанавливается путем связи первичного и внешнего ключа и имеет вид:

 
 

 

 


Если внешний ключ представляет связь 1:1, то запрещаются его дублирующие значения; если связь 1:М, то разрешаются его дублирующие значения.

Правило 3

Если связь типа 1:1 и КП обеих сущностей является необязательным, то необходимо построить три таблицы – по одной для каждой сущности и одну для связи. Первичный ключ сущности должен быть первичным ключом соответствующей таблицы. Таблица для связи должна иметь среди своих атрибутов ключи обеих сущностей.

Представим, что на ER-диаграмме связи 1:1 КП сущностей МЕНЕДЖЕР, ФИЛИАЛ будет необязательный.

 

 
 

 

 


Для связи типа 1:М существует только два правила. Выбор одного из них зависит от КП сущности на стороне M. КП сущности на стороне 1 не влияет на выбор.

Правило 4

Если связь типа 1:М и КП сущности на стороне М является обязательным, то необходимо построить таблицу для каждой сущности. Первичный ключ сущности должен быть первичным ключом соответствующей таблицы. Первичный ключ сущности на стороне 1 добавляется как атрибут в таблицу для сущности на стороне М.

На ER- диаграмме связи 1:М КП сущности СЧЕТ является обязательным. Тогда:

 
 

 


 

Правило 5

Если связь типа 1:М и КП сущности на стороне М является необязательным, то необходимо построить три таблицы – по одной для каждой сущности и одну для связи. Первичный ключ сущности должен быть первичным ключом соответствующей таблицы. Таблица для связи должна иметь среди своих атрибутов ключи обеих сущностей.

 

Представим, что на ER-диаграмме связи 1:М КП сущности СЧЕТ является необязательным.

 

 
 

 

 


Для связи типа М:N КП сущности не имеет значения.

Правило 6

Если связь типа М:N, то необходимо построить три таблицы – по одной для каждой сущности и одну для связи. Первичный ключ сущности должен быть первичным ключом соответствующей таблицы. Таблица для связи должна иметь среди своих атрибутов ключи обеих сущностей.

 

ER-диаграмма связи М:N имеется на рис. 1.

 

Нормализация таблиц

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

 

Определение 1НФ

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

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

Определение 2НФ

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

Функциональная зависимость (ФЗ)– это семантическое понятие, отображающее определенную семантическую связь между полями таблицы.

Пусть (Х1, Х2,…,Хк) – множество полей, образующих первичный ключ.

Неключевое поле А функционально зависит от ключа, если каждой комбинации значений полей данного множества соответствует одно и только одно значение поля А. ФЗ обозначается так:

1, Х2,…,Хк)®А

Неключевое поле А функционально полно зависит от ключа, если оно функционально зависит от ключа и не существует ФЗ А ни от какого подмножества множества (Х1, Х2,…,Хк).

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

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

Определение 3НФ

Таблица находится в 3НФ, если она удовлетворяет требованиям 2НФ и не содержит транзитивных зависимостей.

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

Табельный номер работника (ТАБ_Н) Должность (ДОЛЖ) Оклад (ОКЛ)

 

ТАБ_Н   ДОЛЖ   ТАБ_Н ОКЛ

Выбор модели данных.

2. Определение набора таблиц исходя из ER-модели и их документирование.

3. Нормализация таблиц

Выбор СУБД

СЕМАНТИЧЕСКАЯ ОБЪЕКТНАЯ МОДЕЛЬ (СОМД)

Модель "сущность-связь" и СОМД подобны двум различным линзам, сквозь которые смотрят разработчики БД при изучении и документировании пользовательских данных. Обе линзы действуют и обе воплощаются в определенной структуре БД. Однако структура БД, полученная с их помощью, может несколько различаться. Разрабатывая БД, необходимо решить, какой подход применять. Каждый имеет свои сильные и слабые стороны.

В основе СОМД лежит понятие семантического объекта. Семантический означает "смысловой" и семантический объект – это объект, который в определенной степени моделирует смысл пользовательских данных.

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

Есть три типа атрибутов. Простые атрибуты состоят из одного элемента. Н-р, Код клиента. Групповые – совокупности нескольких атрибутов. Н-р, Адрес (Улица, Город, Республика, Индекс). Семантические объектные атрибуты – это атрибуты, которые устанавливают связь между двумя семантическими объектами.

Домен – набор всевозможных значений атрибута.

На объектных диаграммах объекты изображаются в вертикально ориентированных прямоугольниках:

Название кафеды, Телефон – простые атрибуты. Адрес – групповой. УНИВЕРСИТЕТ, ПРЕПОДАВАТЕЛЬ, СТУДЕНТ – семантические объектные атрибуты. Они связаны с объектом КАФЕДРА и логически содержатся в нем. Когда думаешь об определенной кафедре, то имеешь в виду не только ее название, адрес, телефон, но и университет, в котором она находится; преподавателей, которые работают на ней; студентов, занимающихся на ней.

Когда атрибуты получают конкретные значения, то налицо – экземпляр объекта.

В СОМД объектные атрибуты должны быть парными. Если один объект содержит в себе другой, то этот другой содержит в себе первый. Так, объект УНИВЕРСИТЕТ должен содержать объект КАФЕДРА,

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

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

Каждый атрибут семантического объекта имеет максимальное и минимальное кардинальные числа.

Минимальное кардинальное число показывает количество значений атрибута, которые должны существовать, чтобы объект был допустимым. Обычно оно равно 0 или 1. Если 0, то атрибут не обязан иметь значение, 1– обязан иметь значение.

Максимальное кардинальное число показывает максимальное количество значений атрибута, которое может иметь объект. Обычно оно равно 1 или N. Если 1, то атрибут может иметь не более одного экземпляра, N – много экземпляров.

Кардинальность изображается в виде нижнего индекса атрибута в формате N.M, где N – минимальное, а M – максимальное кардинальное число. Например, атрибут Ирок в объекте БАСКЕТБОЛЬНАЯ КОМАНДА имеет кардинальность 5.15, где 5 – наименьшее число игроков, требуемое для создания команды, а 15 – в команде может быть не более 15 игроков.

С учетом сказанного объектная диаграмма будет иметь следующий вид:

 

 

 

Для каждого объекта предметной области составляется диаграмма такого вида – получается СОМД.

Объекты есть 7-ми типов:

1. простые – не имеют многозначных и объектных атрибутов;

2. композитные – имеют многозначные, но не имеют объектных атрибутов;

3. составные – содержат объектные атрибуты;

4. гибридные – сочетают композитные и составные объекты;

5. ассоциативные – связывают 2 или более других объектов;

6. объекты подтипов – разновидности объектов;

7. вида архетип/версия – для моделирования объектов, содержащих базовые данные и множественные их вариации (версии).

СОМД в качестве базовых элементов рассматривает не сущности, а семантические объекты. Она содержит больше информации о значении данных, чем модель "сущность-связь"

6. CASE-средства для моделирования данных

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

Широко распространены CASE-системы Erwin, Design/IDEF, Power Designer.

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

Требования, предъявляемые к базе данных

 

1. Целостность БД (полнота и непротиворечивость данных).

2. Многократное использование данных.

3. Быстрый поиск и получение информации по запросам пользователей.

4. Простота обновления данных.

5. Уменьшение излишней избыточности данных.

6. Защита данных от несанкционированного доступа, от искажения и уничтожения.

ЭТАПЫ ЖИЗНЕННОГО ЦИКЛА БД

Жизненный цикл базы данных (ЖЦБД) – это процесс проектирования, реализации и поддержки базы данных. Он состоит из следующих 7 этапов:

1) предварительное планирование БД;

2) проверка осуществимости;

3) определение требований;

4) концептуальное проектирование;

5) логическое проектирование;

6) физическое проектирование;

7) оценка работы и поддержка базы данных.

3.Модель "сущность-связь" (ER-модель)

Сущность – это некоторый объект реального мира, который может существовать независимо.

Атрибут – это свойство сущности.

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

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

 
 
МЕНЕДЖЕР

 


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

 

1. МЕНЕДЖЕР – УПРАВЛЯЕТ – ФИЛИАЛ

2. ФИЛИАЛ – ОБРАБАТЫВАЕТ – СЧЕТ

3. КЛИЕНТ – ИМЕЕТ – СЧЕТ

 
 

 


Если каждый экземпляр сущности А может быть связан не более чем с одним экземпляром сущности В, то связь между сущностями А и В имеет тип "один-к-одному" (1:1).

 

ER-диаграмма для связи типа 1:1 (для связи 1).

 

 

Если каждый экземпляр сущности А может быть связан более чем с одним экземпляром сущности В, а каждый экземпляр сущности В может быть связан не более чем с одним экземпляром сущности А, то связь между сущностями А и В имеет тип "один-ко-многим" (1:М).

ER-диаграмма для связи типа 1:М (для связи 2)

…………..

Если каждый экземпляр сущности А может быть связан с несколькими экземплярами сущности В, и каждый экземпляр сущности В может быть связан с несколькими экземплярами сущности А, то связь между сущностями А и В имеет тип "многие-ко-многим" (М:N).

ER-диаграмма для связи типа М:N (для связи 3).

………………

Понятие класс принадлежности сущности

Если каждый экземпляр сущности А связан с экземпляром сущности В, то класс принадлежности сущности А является обязательным. Этот факт отмечается на ER-диаграмме кружочком, помещенным в прямоугольник, смежный с прямоугольником сущности А.

Если не каждый экземпляр сущности А связан с экземпляром сущности В, то класс принадлежности сущности А является необязательным. Этот факт отмечается на ER-диаграмме кружочком на линии связи возле прямоугольника сущности A.

Предположим, что в рассматриваемой предметной области БАНК КП всех четырех сущностей является обязательным. Тогда ER-модель предметной области БАНК будет иметь вид, представленный на рис. 1.

 
 

 

 


Каждая из четырех сущностей приведенной ER-модели может быть описана своим набором атрибутов (рис. 2).

 

МЕНЕДЖЕР   ФИЛИАЛ
Номер менеджера (НМ)   Номер филиала (НФ)
Стаж работы (СТАЖ)   Адрес филиала (АДР_Ф)
Специальность (СПЕЦ)    
    КЛИЕНТ
СЧЕТ   Номер клиента (НК)
Номер счета (НС)   Ф.И.О. клиента (ФИО_К)
Тип счета (ТИП)   Социальное положение (СОЦ)
Остаток на счете (ОСТ)   Адрес клиента (АДР_К)

Рис. 2. Наборы атрибутов сущностей предметной области БАНК

ER-модель в совокупности с наборами атрибутов сущностей может служить примером концептуальной модели предметной области или концептуальной схемы БД.

3.Преобразование ER-модели в реляционную модель

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

Правила генерации таблиц из ER-диаграмм опираются на два основных фактора – тип связи и класс принадлежности сущности.

Для связи типа 1:1 существуют три правила формирования предварительных таблиц из ER-диаграмм.

Правило 1

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

На ER-диаграмме связи 1:1 КП сущностей МЕНЕДЖЕР, ФИЛИАЛ является обязательным. Тогда по правилу 1 должна быть сгенерирована одна таблица следующей структуры:

НМ СТАЖ СПЕЦ НФ АДР_Ф

МЕНЕДЖЕР – ФИЛИАЛ

Правило 2

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

Представим, что на ER-диаграмме связи 1:1 КП сущности МЕНЕДЖЕР будет обязательный, а сущности ФИЛИАЛ – необязательный. Тогда по правилу 2 должны быть сгенерированы две таблицы следующей структуры:

МЕНЕДЖЕР - ФИЛИАЛ

НМ СТАЖ СПЕЦ НФ

ФИЛИАЛ

НФ АДР_Ф

Сущность с необязательным КП (ФИЛИАЛ) именуется родительской, а с обязательным (МЕНЕДЖЕР) – дочерней. Первичный ключ родительской сущности (НФ), помещаемый в таблицу, представляющую дочернюю сущность, называется внешним ключом родительской сущности. Связь между указанными таблицами устанавливается путем связи первичного и внешнего ключа и имеет вид:

 
 

 

 


Если внешний ключ представляет связь 1:1, то запрещаются его дублирующие значения; если связь 1:М, то разрешаются его дублирующие значения.

Правило 3

Если связь типа 1:1 и КП обеих сущностей является необязательным, то необходимо построить три таблицы – по одной для каждой сущности и одну для связи. Первичный ключ сущности должен быть первичным ключом соответствующей таблицы. Таблица для связи должна иметь среди своих атрибутов ключи обеих сущностей.

Представим, что на ER-диаграмме связи 1:1 КП сущностей МЕНЕДЖЕР, ФИЛИАЛ будет необязательный.

 

 
 

 

 


Для связи типа 1:М существует только два правила. Выбор одного из них зависит от КП сущности на стороне M. КП сущности на стороне 1 не влияет на выбор.

Правило 4

Если связь типа 1:М и КП сущности на стороне М является обязательным, то необходимо построить таблицу для каждой сущности. Первичный ключ сущности должен быть первичным ключом соответствующей таблицы. Первичный ключ сущности на стороне 1 добавляется как атрибут в таблицу для сущности на стороне М.

На ER- диаграмме связи 1:М КП сущности СЧЕТ является обязательным. Тогда:

 
 

 


 

Правило 5

Если связь типа 1:М и КП сущности на стороне М является необязательным, то необходимо построить три таблицы – по одной для каждой сущности и одну для связи. Первичный ключ сущности должен быть первичным ключом соответствующей таблицы. Таблица для связи должна иметь среди своих атрибутов ключи обеих сущностей.

 

Представим, что на ER-диаграмме связи 1:М КП сущности СЧЕТ является необязательным.

 

 
 

 

 


Для связи типа М:N КП сущности не имеет значения.

Правило 6

Если связь типа М:N, то необходимо построить три таблицы – по одной для каждой сущности и одну для связи. Первичный ключ сущности должен быть первичным ключом соответствующей таблицы. Таблица для связи должна иметь среди своих атрибутов ключи обеих сущностей.

 

ER-диаграмма связи М:N имеется на рис. 1.

 

Нормализация таблиц

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

 

Определение 1НФ

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

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

Определение 2НФ

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

Функциональная зависимость (ФЗ)– это семантическое понятие, отображающее определенную семантическую связь между полями таблицы.

Пусть (Х1, Х2,…,Хк) – множество полей, образующих первичный ключ.

Неключевое поле А функционально зависит от ключа, если каждой комбинации значений полей данного множества соответствует одно и только одно значение поля А. ФЗ обозначается так:

1, Х2,…,Хк)®А

Неключевое поле А функционально полно зависит от ключа, если оно функционально зависит от ключа и не существует ФЗ А ни от какого подмножества множества (Х1, Х2,…,Хк).

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

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

Определение 3НФ

Таблица находится в 3НФ, если она удовлетворяет требованиям 2НФ и не содержит транзитивных зависимостей.

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

Табельный номер работника (ТАБ_Н) Должность (ДОЛЖ) Оклад (ОКЛ)

 

ТАБ_Н   ДОЛЖ   ТАБ_Н ОКЛ

Этапы проектирования БД и их процедуры



Поделиться:


Последнее изменение этой страницы: 2016-07-16; просмотров: 510; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.240.205 (0.163 с.)