Главная страница

Базы данных БГУИР, 3ЛР. БД 3. Лабораторная работа 2 по теме Доработка модели базы данных, часть 1 Студент гр. 051091 Руководитель Минск 2022 Задание


Скачать 0.81 Mb.
НазваниеЛабораторная работа 2 по теме Доработка модели базы данных, часть 1 Студент гр. 051091 Руководитель Минск 2022 Задание
АнкорБазы данных БГУИР, 3ЛР
Дата01.07.2022
Размер0.81 Mb.
Формат файлаdocx
Имя файлаБД 3.docx
ТипЛабораторная работа
#621855

Министерство образования Республики Беларусь

Учреждение образования

«Белорусский Государственный Университет Информатики и Радиоэлектроники»
Кафедра программного обеспечения информационных технологий

Факультет компьютерных систем и сетей

Дисциплина: Базы данных

Лабораторная работа № 2

по теме

«Доработка модели базы данных, часть 1»

Студент гр. 051091

Руководитель

Минск 2022

Задание
Проанализируйте модели базы данных «Банк» (исходный вариант (см. ниже) и вариант, изменённый в предыдущей работе). Для обоих вариантов базы данных выполните следующие задачи:

  1. Какие каскадные операции необходимы в этой базе данных? Опишите их.

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

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

  4. Составьте список всех функциональных зависимостей в базе данных.

  5. Существуют ли отношения, имеющие многозначные зависимости? Если «да», как можно переработать схему, чтобы избежать таких зависимостей?

  6. Нарушает ли схема какие-либо «требования нормализации»? Если «да», доработайте схему, чтобы избежать таких нарушений.

  7. Существуют ли какие-либо потенциальные проблемы с производительностью базы данных? Если «да», запишите их.

  8. Для каждого отношения в базе данных определите, в какой нормальной форме оно находится. Запишите ответ.



Рисунок 1 – Исходная концептуальная модель базы данных

Рисунок 2 – Исходная даталогическая модель для MS SQL Server



Рисунок 3 – Изменённая концептуальная модель базы данных

Рисунок 4 – Изменённая даталогическая модель базы данных для СУБД MySQL

  1. Каскадные операции необходимые в данной базе данных


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


В таблице «Office» могут возникнуть аномалии модификации, при изменении поля «City». Аналогично в таблице «Passport» могут возникнуть аномалии модификации в полях «Nationality» и «Issued by».

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

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

  1. Возможность использования схемы «звезда» или «снежинка» с этой базой данных


Исходная база данных по своей структуре уже соответствует схеме «снежинка» если принять таблицу «Account» или «Account Owner» как таблицу фактов. Единственным

исключением является таблица «City», внесённая на прошлом шаге для устранения возможных аномалий модификации данных.
  1. Список всех функциональных зависимостей в базе данных



Transaction: {Id}→{Sum} {Id}→{DateTime} {Id}→{SourceAccount} {Id}→{DestinationAccount} {Id}→{SourceCurrency} {Id}→{DestinationCurrency} {Id}→{TransactionState}

TransactionState {Id}→{Name}

Account: {IBAN}→{Balance} {IBAN}→{AccountOwner} {IBAN}→{AccountStatus} {IBAN}→{Currency} {IBAN}→{Account_2_AccountType}→{Id}

Account Type: {Id}→{Name}

Account Status: {Id}→{Name}

Currency: {Id}→{Name}

Account Owner: {Id}→{Name} {Id}→{Contact Phone Number} {ID}→{Corporate Adress} {Id}→{PhysicalAdress} {Id}→{AccountOwner_2_Passport}→{PassportNumber}

Account Owner Type: {Id}→{Name}

Passport: {PassportNumber}→{PersonalNumber} {PassportNumber}→{IssuedOn} {PassportNumber}→{ExpiresOn} {PassportNumber}→{CurrentlyValid} {PassportNumber}→{IssuedBy} {PassportNumber}→{Nationality}

Nationality: {Id}→{Name}

PassportAuthority: {Id}→{Name} {Id}→{Adress} {Id}→{City}

City: {Id}→{Name}

Office: {Id}→{Name} {Id}→{TotalSalesSum} {Id}→{City}

Site Page: {Id}→{Name} {Id}→{ParentPage}

  1. Многозначные зависимости


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


Нарушений требований нормализации в схеме базы данных обнаружено не было.
  1. Существуют ли какие-либо потенциальные проблемы с производительностью базы данных? Если «да», запишите их.


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


Transaction: 3NF

TransactionState: 3NF

Account: 3NF

Account Type: 3NF

Account Status: 3NF

Currency: 3NF

AccountOwner: 3NF

AccountOwner Type: 3NF

Passport: 2NF

Nationality: 3NF

PassportAuthority: 3NF

City: 3NF

Office: 3NF

SitePage: 3NF


написать администратору сайта