Файл: Этап логического проектирования. Выбор модели данных. Нормализация отношений рбд.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 29.10.2023
Просмотров: 51
Скачиваний: 6
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ЛАБОРАТОРНАЯ РАБОТА №2
Тема «Этап логического проектирования. Выбор модели данных.
Нормализация отношений РБД»
Цель лабораторной работы:
Использование теоретических знаний и применение их на практике при выборе модели данных, адекватно отражающей предметную область проектируемой базы данных. Практическая реализация теоретических знаний по приведению отношений к 3НФ.
Задание на лабораторную работу:
-
Обосновать выбор конкретной модели данных для проектирования базы данных в выбранной предметной области. Построить реляционную базу данных на основании ранее разработанной инфологической модели. -
Выполнить нормализацию отношений:
-
подтвердить выбор ключевых атрибутов отношений, выполненный на предыдущем этапе проектирования; -
провести анализ функциональных зависимостей отношений; -
декомпозировать отношения и констатировать наличие:
а) первой нормальной формы (1НФ);
б) второй нормальной формы (2НФ);
в) третьей нормальной формы (3НФ).
1) Построение реляционной модели.
1. Клиент
ФИО_КЛ | АДРЕС_КЛ | ТЕЛ_КЛ | ЭЛ_П | ДАТА_РОЖДЕНИЯ | ИСТОРИЯ_ЗАЙМОВ_КЛ | ЗАМЕТКИ_КЛ |
2. ТОВАРЫ
НАЗВАНИЕ_ПР | ID_ПР | КАТЕГОРИЯ | ОПИСАНИЕ | СТОИМ_ПР |
3. ОТЧЕТ
ДАТА_ВЫД_ЗА | СУММА_К_ВЫП | СТАТУС_ЗА | ДАТА_ЗАЛ | СРОК_ЗАЛ | ПРОЦЕНТНАЯ_СТ | |
СУМ_ЗА | ДАТА_ИСТ_СР_ЗА | СТАТУС_ЗАЛОЖЕННОГО _ПРЕД | ДАТА_ВЫК | НОМ_ОТ | ID_ПР | |
ЭЛ_П | |
КЛИЕНТ | |
Фио_кл | |
Адрес_кл | |
Тел_кл | |
Пасп_дан | |
Э л_п | |
Дата_рождения | |
История_займов_кл | |
Заметки_кл | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
ОТЧЕТ |
Дата_выдачи_за |
Эл_п |
Статус_за |
Дата_зал |
Срок_зал |
Процентная_ст |
Сум_за |
Дата_ист_ср_за |
Статус_заложенного_пред |
Дата_вык |
Ном_от |
ID_пр |
Сумма_к_вып |
ТОВАРЫ |
I D_пр |
Название_пр |
Описание |
Категория_пр |
Стоим_пр |
Рисунок 1. Логическая схема реляционной базы данных
2) Нормализация отношений
Анализ функциональных зависимостей:
Идентификатор для каждого предмета (ID_Предмета) может определяться только однозначно и не зависит от других атрибутов, поэтому он является первичным ключом отношения.Адрес клиента (Адрес_клиента) может зависеть от идентификатора клиента (ID_Клиента), так как каждый клиент может иметь только один адрес. Таким образом, имеем функциональную зависимость ID_Клиента → Адрес_клиента.Категория или тип предмета (Категория_Предмета) может зависеть от идентификатора предмета (ID_Предмета), так как каждый предмет может быть отнесен только к одной категории. Таким образом, имеем функциональную зависимость ID_Предмета → Категория_Предмета.Оценочная стоимость предмета (Стоимость) может зависеть от идентификатора предмета (ID_Предмета), так как каждый предмет имеет только одну оценочную стоимость. Таким образом, имеем функциональную зависимость ID_Предмета → Стоимость.Дата залога предмета (Дата_Залога) может зависеть от идентификатора предмета (ID_Предмета), так как каждый предмет может быть заложен только один раз. Таким образом, имеем функциональную зависимость ID_Предмета → Дата_Залога.Срок залога (Срок_Залога) может зависеть от идентификатора предмета (ID_Предмета), так как каждый предмет может быть заложен только на определенный срок. Таким образом, имеем функциональную зависимость ID_Предмета → Срок_Залога.Процентная ставка за займ (Ставка) может зависеть от идентификатора предмета (ID_Предмета), так как каждый предмет может иметь только одну ставку. Таким образом, имеем функциональную зависимость ID_Предмета → Ставка.Сумма займа (Сумма_Займа) может зависеть от идентификатора предмета (ID_Предмета), так как каждый предмет может быть заложен только
Вопросы для проверки знаний и защиты лабораторной работы:
-
Что понимается под моделью данных? Какие модели данных вам известны? -
Какие основные компоненты должна содержать любая модель данных? -
Дать характеристику иерархической и сетевой моделей данных. -
Какую структуру данных предполагает реляционная модель? -
Перечислить и привести пример операций обработки отношений, определенных в реляционной алгебре. -
Что понимается под нормализацией отношений. -
Перечислите известные вам виды функциональных зависимостей. Дайте их определение.
Модель данных - это способ описания структуры и хранения данных в информационной системе. Это абстрактное представление о том, как данные организованы, связаны друг с другом и как к ним можно получить доступ.Существует множество различных моделей данных, которые могут использоваться для проектирования информационных систем. Некоторые из наиболее распространенных моделей данных:Иерархическая модель данных (Hierarchical Data Model)Сетевая модель данных (Network Data Model)Реляционная модель данных (Relational Data Model)Объектно-ориентированная модель данных (Object-Oriented Data Model)Иерархическая-объектно-ориентированная модель данных (Hierarchical-Object-Oriented Data Model)Документо-ориентированная модель данных (Document-Oriented Data Model)Графовая модель данных (Graph Data Model)Каждая модель данных имеет свои сильные и слабые стороны и может быть применена в зависимости от конкретных потребностей и целей информационной системы.
2.Любая модель данных должна содержать следующие основные компоненты:Сущности (Entities) - это объекты, которые являются представлением реальных или концептуальных объектов, с которыми работает система. Каждая сущность имеет уникальный идентификатор и набор атрибутов, которые описывают свойства объекта.Атрибуты (Attributes) - это характеристики, которые описывают каждую сущность. Атрибуты определяются типом данных и могут иметь ограничения на допустимые значения.Связи (Relationships) - это связи между сущностями. Они описывают отношения между объектами и могут быть однонаправленными или двунаправленными.Ограничения (Constraints) - это правила, которые описывают допустимые значения для атрибутов и связей. Ограничения могут быть применены для обеспечения целостности данных.Операции (Operations) - это функции, которые могут быть выполнены над сущностями, связями и атрибутами. Операции могут быть простыми, такими как чтение или запись данных, или сложными, такими как вычисление статистики или выполнение анализа данных.Атрибуты времени (Time Attributes) - это атрибуты, которые описывают время, связанное с сущностью. Например, атрибуты даты и времени могут быть использованы для отслеживания даты создания или изменения сущности.Иерархии (Hierarchies) - это отношения между сущностями, которые организованы в иерархическую структуру. Иерархии могут использоваться для описания структуры организации, классификации товаров и т.д.Аудит (Audit) - это запись всех изменений данных в системе, которые могут быть использованы для отслеживания истории изменений и обеспечения безопасности данных.
3. Иерархическая модель данных представляет собой древовидную структуру данных, в которой каждый узел имеет одного родителя, но может иметь несколько дочерних узлов. В этой модели данные хранятся в виде иерархически связанных записей, где каждая запись может иметь множество полей. Однако, при таком подходе, возможны дублирование данных, а изменение структуры данных сложно, так как это потребует изменения всей иерархии.Сетевая модель данных была разработана для устранения недостатков иерархической модели. В этой модели данные хранятся в виде сети, где каждый узел может иметь несколько родителей и несколько дочерних узлов. Таким образом, данные могут быть более гибко организованы и отображены. Однако, в этой модели сложнее управлять зависимостями между записями и необходимо обеспечить структурированность для работы с данными.Иерархическая и сетевая модели данных были популярны в прошлом, но в настоящее время их использование сильно сократилось. В настоящее время более распространенными моделями данных являются реляционная и NoSQL модели данных.
Реляционная модель предполагает структуру данных, основанную на таблицах. Каждая таблица состоит из столбцов, которые представляют атрибуты, и строк, которые представляют кортежи данных. Основная идея модели заключается в том, чтобы разделить данные на небольшие структурные единицы, которые связываются между собой с помощью ключей. Таким образом, реляционная модель данных позволяет представлять сложные структуры данных в виде таблиц, которые могут быть легко обрабатываемы и манипулируемы при помощи языка структурированных запросов, такого как SQL.
Реляционная алгебра - это математический язык, используемый для работы с реляционными базами данных. Он включает в себя набор операций для обработки отношений (таблиц).Некоторые из наиболее распространенных операций обработки отношений в реляционной алгебре включают:Выборка (Selection): выборка определенных строк на основе заданного условия. Например, SELECT * FROM table WHERE age > 25Проекция (Projection): выборка определенных столбцов из таблицы. Например, SELECT name, age FROM tableОбъединение (Union): объединение двух таблиц в одну, удаляя дубликаты строк. Например, SELECT * FROM table1 UNION SELECT * FROM table2Пересечение (Intersection): выборка строк, которые присутствуют в обеих таблицах. Например, SELECT * FROM table1 INTERSECT SELECT * FROM table2Разность (Difference): выборка строк из первой таблицы, которых нет во второй. Например, SELECT * FROM table1 EXCEPT SELECT * FROM table2Соединение (Join): объединение строк из двух таблиц на основе определенного условия. Например, SELECT * FROM table1 JOIN table2 ON table1.id = table2.idГруппировка (Grouping): группировка строк в таблице на основе заданного столбца и вычисление агрегированных функций для каждой группы. Например, SELECT department, AVG(salary) FROM employees GROUP BY department