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

Проектирование. 380305БИ_Проектирование баз данных_лабораторные_ПоповВБ.docx. Лабораторная работа 1. Интерфейс субд mysql. Предоставление доступа и привилегий. Утилиты, входящие в состав субд цель работы


Скачать 1.15 Mb.
НазваниеЛабораторная работа 1. Интерфейс субд mysql. Предоставление доступа и привилегий. Утилиты, входящие в состав субд цель работы
АнкорПроектирование
Дата11.12.2022
Размер1.15 Mb.
Формат файлаdocx
Имя файла380305БИ_Проектирование баз данных_лабораторные_ПоповВБ.docx.docx
ТипЛабораторная работа
#839179
страница4 из 14
1   2   3   4   5   6   7   8   9   ...   14

Имя связи (Verb Phrase) - фраза, характеризующая отношение между родительской и дочерней сущностями. Для связи один-ко-многим идентифицирующей или не идентифицирующей достаточно указать имя, характеризующей отношение от родительской к дочерней сущности (Parent-to-Child). Для связи многие-ко-многим следует указывать имена как Parent-to-Child, так и Child-to-Parent. Для отображения имени следует в контекстном меню, которое появляется, если щелкнуть правой кнопкой мыши по любому месту диаграммы, не занятому объектами модели, выбрать пункт Display Options/Relationship и затем включить опцию Verb Phrase.

Имя роли или функциональное имя (Rolename) - это синоним атрибута внешнего ключа, который показывает, какую роль играет атрибут в дочерней сущности. Задать имя роли можно в закладке Rolename/RI Actions диалога Relationship Editor.

Создание ключей.

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

Первичный ключ (primary key) - это атрибут или группа атрибутов, однозначно идентифицирующие экземпляр сущности. Атрибуты первичного ключа на диаграмме не требуют специального обозначения - это те атрибуты, которые находятся в списке атрибутов выше горизонтальной линии. При внесении нового атрибута в диалоге Attribute Editor для того, чтобы сделать его атрибутом первичного ключа, нужно включить флажок Primary Key в нижней части закладки General. На диаграмме ключевой атрибут можно внести в состав первичного ключа, воспользовавшись режимом переноса атрибутов (кнопка в палитре инструментов).

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

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

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

Альтернативный ключ (Alternative Key) - это потенциальный ключ, не ставший первичным.

Каждому ключу соответствует индекс, имя которого также присваивается автоматически. Имена ключа и индекса при желании можно изменить вручную.

На диаграмме атрибуты альтернативных ключей обозначаются как (Akn.m.), где n - порядковый номер ключа, m - порядковый номер атрибута в ключе. Когда альтернативный ключ содержит несколько атрибутов, (Akn.m.) ставится после каждого.

Внешние ключи (Foreign Key) создаются автоматически, когда связь соединяет сущности: связи образуют ссылку на атрибуты первичного ключа в дочерней сущности и эти атрибуты образуют внешний ключ в дочерней сущности (миграция ключа). Атрибуты внешнего ключа обозначаются символом (FK) после своего имени.

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

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

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

После указания всем атрибутам формата данных необходимо созданную логическую модель преобразовать в физическую. Для этого необходимо в Tools выбрать Derive New Model, где в качестве Target Databases выберите ODBC/Generic (для использования в СУБД MySQL) см. Рисунок 9. Наша модель (см Рисунок 4) будет преобразована к виду см.Рисунок 11.

Далее выбрав в меню Tools/Forward Engineer/Shema Generation и задав необходимые настройки, получим в меню Preview код на языке SQL для реализации схемы БД в СУБД MySQL.


Рисунок 9 - Преобразование логической модели в физическую


Рисунок 10 - Физическая модель с указанием формата данных.



Рисунок 11 - Генерация кода SQL
Задание

  1. Выполните построение диаграммы с заданными сущностями (прямое моделирование) для заданной предметной области.

  2. Задайте атрибуты для каждой определенной сущности. При задании атрибутов используйте домены.

  3. Введите связи между сущностями. Присвойте связям уникальные имена.

  4. Используя СУБД MYSQL, решите прямую генерацию базы данных для проектируемой информационной.

  5. Отчет должен содержать концептуальную модель и физическую базу данных в СУБД MYSQL.



Контрольные вопросы

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

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

  3. Какие основные компоненты содержат модели данных, представленные по методологии IDEF1X?

Пример выполнения

Система ERwin поддерживает прямое и обратное моделирование баз данных. При прямом моделировании схема базы данных описывается в прямом виде с использованием диаграммы сущность-связь. Сущности на диаграмме представляются прямоугольниками. Каждый прямоугольник может иметь различные визуальные атрибуты. Каждой сущности должно быть присвоено уникальное имя. Имена сущностей необходимо задавать в единственном числе. Это определяется тем, что система всегда оперирует отдельными экземплярами сущности. При этом отдельные экземпляры сущности рассматриваются как объекты, а сущности – как класс объектов. Если сущности были описаны при моделировании в BPwin, то их можно просто импортировать в ERwin.









  1. Возможны две точки зрения на информационную модель и, соответственно, два уровня модели. Первый – логический уровень (точка зрения пользователя) означает прямое отображение фактов из реальной жизни. Например, люди, столы, отделы, собаки и компьютеры являются реальными объектами. Они именуются на естественном языке, с любыми разделителями слов (пробелы, запятые и т.д.). На физическом уровне модели рассматривается использование конкретной СУБД, определяются типы данных (например, целое или вещественное число), индексы для таблиц.

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

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

  1. Основные компоненты модели данных, представленные по методологии IDEF1X:

  1. Сущности, представляющие множество реальных или абстрактных предметов (людей, объектов, мест, событий, состояний, идей, пар, предметов и т.д.). Они изображаются блоками. Выделяют два вида сущностей: независимые от идентификатора сущности; зависимые от идентификатора сущности.

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

  3. Атрибуты – характеристики сущностей, изображаемые именами внутри блоков. Атрибуты могут быть: ключевыми; первичными ключами; альтернативными ключами; внешними ключами.

Лабораторная работа №3.

Создание баз данных и таблиц в среде MYSQL.

Информационное наполнение.

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

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

1. Ознакомиться с возможностями работы клиентского приложения MySQL.

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

Функция

Описание

create database DB_name

создание базы данных

Use database

выбор существующей базы данных

close database

закрытие файлов текущей базы данных

drop database

удаление базы данных

create table

создание таблицы базы данных

alter table

модификация структуры базы данных

drop table

удаление таблицы базы данных

insert

добавление одной или нескольких строк в таблицу

delete

удаление одной или нескольких строк из таблицы

update

модификация одной или нескольких строк таблицы

LOAD DATA INFILE

загрузка данных в таблицы из файла

3. Создать базу данных.

Создание базы данных в MySQL производится с помощью утилиты mysqladmin. Изначально существует только БД mysql для администратора и БД test, в которую может войти любой пользователь и которая по умолчанию пуста. Приведенный ниже пример иллюстрирует создание базы данных.


Mysql/bin>mysqladmin -u root -p create data_name

Enter password:******

Database "data_name" created.
mysqlbin>

Где data_name – имя создаваемой БД. Проверить, что БД создана можно ранее рассмотренной командой Showdatabases или утилитой mysqlshow.

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

Mysql/bin>mysql -u root -p data1

Enter password:******
Welcome to MySQL monitor.

Или, находясь в другой базе данных, например, в mysql ввести команду:


mysql>use data1
Database changed.

Создать базу данных можно непосредственно находясь в клиентском приложении MySQL, вводом команды:

CREATE DATABASE Base_name

Где Base_name имя создаваемой базы данных. В созданной базе можно создавать таблицы и вводить информацию. Указанные операции можно выполнить, используя специализированное программное обеспечение, например MySQL-Front, запуск которого осуществляется из меню ПУСК/ПРОГРАММЫ (см. рис 1, 2).

Необходимо указать:

  • Имя;

  • Хост;

  • Пароль;

  • Порт;

  • Имя БД (при необходимости).



Рисунок 12 - Запуск MySQL-front



Рисунок 13 - Создание БД в среде MySQL-front

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



Рисунок 14 - Использование синтаксиса SQL

4. Средствами языка SQL необходимо создать четыре таблицы в базе данных, используя команду

CREATETABLE, синтаксис которой приведен в приложении. Для таблицы J:

CREATE TABLE j (

Jnum varchar(6) NOT NULL default '',

Jnam varchar(20) default NULL,

Ci varchar(20) default NULL,

PRIMARY KEY (Jnum)

) TYPE=MyISAM;

Значками /* */ - выделяются комментарии в тексте запроса.

При создании таблиц выполнить такую реализацию, чтобы она отражала структуру таблиц, указанную ниже (таблице S, P, J, SPJ ) и должны быть наложены следующие ограничения:

- поля номер_поставщика, номер_детали, номер_изделия во всех таблицах имеет символьный тип и длину 6 (varchar(6));

- поля рейтинг, вес и количество имеют целочисленный тип (integer);

- поля фамилия, город (поставщика, детали или изделия), название (детали или изделия) имеют символьный тип и длину 20 (varchar(20));

- ни для одного поля не предусматривается использование индексов;

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

После создания пустых таблиц их необходимо наполнить данными. Вводить данные в нее можно несколькими способами:

а)Вручную, используя команду insert into;

Пример ввода данных вручную (команда INSERT):


mysql>insert into J (Jnum, Jnam, Ci)values ('J1','Жесткийдиск','Париж');

или

mysql>insert into J values ('J1','Жесткийдиск','Париж');


//т.е в случае если вы вставляете данные во все поля таблицы то их перечислять не обязательно.

Таким образом SQL инструкция имеет следующий вид

INSERT INTO table_name (id, name) VALUES ('id_value', 'name_value');

Записать и выполнить совокупность запросов для занесения нижеприведенных данных в созданные таблицы

insert into имя_таблицы [(поле [,поле]...)] values (константа [,константа]...)

б)Загрузить данные из текстового файла, что является более предпочтительным, особенно если нужно ввести несколько тысяч записей.


Синтаксис команды LOAD DATA INFILE.
DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE]

INTO TABLE tbl_name

[FIELDS

[TERMINATED BY 't']

[OPTIONALLY] ENCLOSED BY '']

[ESCAPED BY '' ]]

[LINES TERMINATED BY 'n']

[IGNORE number LINES]

[(col_name,...)]
Пример:
LOAD DATA LOCAL INFILE '/MyDocs/categories.txt' REPLACE
INTO TABLE category FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED
BY '\"' LINES TERMINATED BY '\n'

В данном случае файл categories.txt находится на машине под управлением MS Windows, в каталоге C:\MyDocs.
Обратите внимание на UNIX стиль написания пути. Слово
1   2   3   4   5   6   7   8   9   ...   14


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