пыывп. Методические указания по практической работы. Нормализация базы данных Восстановление таблиц базы данных из скрипта в папке с заданием есть папка Скрипт, в ней находится файл под названием mssql script trade
Скачать 6.87 Mb.
|
Практическая работа: Нормализация базы данных Восстановление таблиц базы данных из скрипта В папке с заданием есть папка «Скрипт», в ней находится файл под названием «mssql_script_trade», это скрипт для восстановления таблиц базы данных. Для того, чтобы восстановить БД, нужно: Открыть MS SQL. Нажать ПКМ по нашей базе данных и выбрать «Создать запрос». Перенести файл скрипта восстановления БД в открывшееся окно. Изначально скрипт выглядит вот так: Первые строки скрипта создают новую базу данных и после чего происходит заполнение новой БД таблицами. Так как у нас уже есть пустая база, нужно немного изменить скрипт (но это необязательно, можно оставить все, как есть, главное в будущем не запутаться). При изменении скрипта нужно убрать первые две строки и после «use» написать название нашей базы данных. В итоге скрипт должен выглядеть вот так: После этого нужно нажать на кнопку «Выполнить» или на клавишу F5: Для того, чтобы все созданные таблицы отобразились в базе данных, нужно выбрать БД и нажать на кнопку «Обновить» или клавишу F5 После обновления БД в ней появились таблицы, созданные из скрипта: Все таблицы базы данных изначально пустые, их нужно будет заполнить нужными данными из файлов, которые даны в задании. Для того, чтобы заполнить таблицы, следует сначала проверить файлы на правильность данных. Для понимания структуры базы данных следует создать диаграмму БД, показывающую все таблицы в ней с названиями атрибутов. Для этого нужно в базе данных нажать ПКМ по «Диаграммы баз данных» и выбрать «Создать диаграмму базы данных». В появившемся окне выбрать все предложенные таблицы и нажать «Добавить». После загрузки всех таблиц нажать «Закрыть». После чего следует выбрать все таблицы, нажать на одну из них ПКМ-Вид таблицы-Стандартное После этого нажать ПКМ в любом месте и выбрать «Упорядочить таблицы»: Теперь наша диаграмма выглядит вот так: Подготовка файлов к импорту В папке «Импорт» есть четыре файла с данными для импорта таблиц Для удобства следует создать новый файл Excel, в котором будут все три исправленные таблицы. После создания файла Excel нужно добавить страницы и переименовать их по названиям таблиц, чтоб не запутаться: Таблица «Пользователи» Для начала нужно перенести все данные из файла импорта таблицы «User» в наш файл Excel: Можно заметить, что имя и отчество пользователей находятся в одном столбце, такого быть не должно. Для начала в названии столбца между именем и отчество нужно убрать запятую и вставить новый столбец на страницу: После этого выбираем весь столбец, переходим во вкладку «Данные» и нажимаем на кнопку «Текст по столбцам»: В первом окне нажимаем кнопку «Далее»: В следующем окне нужно выбрать, что символом-разделителем является пробел и нажать «Далее»: В последнем окне нажимаем «Готово»: Теперь таблица пользователей выглядит вот так: Также в первом столбце должен быть ID. Для этого следует добавить пустой столбец в начало и наполнить его значениями для всех пользователей: Таблица «Товары» Первым этапом подготовки таблицы к импорту будет также перенести все данные из файла в подготовленный нами Excel файл. Потом следует расставить все столбцы по порядку, как они идут в таблице на диаграмме. После этих действий получается вот такая таблица: Последних трех столбцов этой таблицы нет в таблице на диаграмме, поэтому их нужно будет добавить. Также поставить галочку на нулевое значение у атрибута «Статус», так как он не используется в задании. После изменений таблица выглядит вот так: Также в файле «Сессия 1» написано, что данная таблица должна иметь еще атрибуты «Количество в упаковке» и «Минимальное количество». Их нужно тоже добавить в таблицу, при этом поставить на них нулевые значения, так как у нас нет данных на существующие записи. После добавления данных атрибутов таблица выглядит вот так: Также нужно поменять тип данных у атрибута «ProductImage» на «nvarchar», но если просто попытаться поменять, то выдаст ошибку, поэтому сначала нужно удалить этот атрибут: После чего добавить его с нужным типом данных: После добавления атрибута его нужно вернуть в изначальное положение, для этого заходим в «Проект» таблицы: И переставляем атрибут как показано на рисунке: После этого сохраняем таблицу ctrl+S. Таблица в Excel должна выглядеть так: Таблица «Пункт выдачи» Первым этапом подготовки таблицы к импорту будет также перенести все данные из файла в подготовленный нами Excel файл. После этого в таблицу нужно добавить ID. После изменений таблица должна выглядеть вот так: В диаграмме базы данных можно заметить, что таблицы пунктов выдачи нет, поэтому ее нужно создать самостоятельно. Для этого нужно ПКМ нажать в рабочей области экрана и выбрать «Создать таблицу…». Ввести название «PickupPoint» и нажать «ОК». После добавления нужных атрибутов, установки первичного ключа и смены типов данных таблица должна выглядеть вот так: В таблице «Заказы» у атрибута «OrderPickupPoint» нужно поменять тип данных на «int»: После чего установить связь между таблицами «Заказы» и «Пункт выдачи», потянув от «ID» пункта выдачи к атрибуту «OrderPickupPoint» таблицы заказов. В появившихся окнах нажать «ОК»: В итоге диаграмма должна выглядеть вот так: Таблица «Заказы» Для начала также переносим все данные из файла импорта таблицы в наш файл Excel и ставим все столбцы по порядку в соответствии с таблицей на диаграмме БД. Должно получится вот так: У нас остались лишние столбцы, которые тоже нужно добавить в таблицу БД. После изменений таблица в базе данных должна выглядеть так: В Excel: Атрибут «Состав заказа» стоит отдельно, потому что пойдет в промежуточную таблицу между «Заказы» и «Товары». Таблица «Состав заказа» Для начала нужно разделить данные из столбца «Состав заказа» по нескольким столбцам (символ-разделитель – запятая). Можно заметить, что у одного заказа идет по два товара, поэтому продублировать цифры от 1 до 10. После этого перенести все артикулы к номерам соответствующих заказов. Для удобства можно создать отдельный лист под данную таблицу: Таблица «Роль» Последней таблицей для импорта является «Роль». В задании определены 3 вида ролей для пользователей: «Клиент», «Менеджер» и «Администратор». Эти данные нужно будет занести на новый лист с таблицами. После определения ролей следует вернуться к таблице пользователей. В ней указаны роли в типе данных nvarchar, их нужно исправить на int, так как атрибут имеет связь с таблицей ролей в базе данных. Сделать это можно с помощью функции «ПРОСМОТР» («LOOKUP») прямо в Excel. Сначала удаляем строку с названиями столбцов в таблице «Роли»: После чего на странице с таблицей «Товары» в отдельной ячейке прописываем следующую функцию: И растягиваем ее на все ячейки с данными о товарах. В итоге должно получиться так: Выделяем полностью этот столбец и копируем, потом с помощью специальной вставки вставляем данные в столбец «Role»: И получается такая таблица: На данном этапе подготовка таблиц завершена, можно приступать к импорту в базу данных. Импорт таблиц Первой таблицей импорта будет «Роль», для этого копируем все данные из файла Excel: Открывает таблицу в MS SQL: После чего выбираем всю строку, нажимаем ПКМ по ней и выбираем «Вставить»: Данные в таблицу успешно добавились: Следующей таблицей для импорта будет «Пользователи». Также копируем всю информацию из файла Excel, но без первой строки: В MS SQL открываем таблицу: Выделяем строку, нажимаем на нее ПКМ и вставляем данные: Данные в таблицу успешно добавились: По аналогии добавьте все данные в оставшиеся таблицы. P.S. Данные с листа «Состав заказа» добавляются в таблицу «OrderProduct» только после добавления данных в таблицы «Order» и «Product». А данные в таблицу «Order» заносятся только после заполнения таблицы «PickupPoint». |