Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб_15 Головков И.Е. 12002108 УД

.docx
Скачиваний:
2
Добавлен:
26.06.2024
Размер:
154.42 Кб
Скачать

ФЕДЕРАЛЬНОЕ Государственное АВТОНОМНОЕ образовательное УЧРЕЖДЕНИЕ ВЫСШЕГО образования

«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ

ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»

(НИУ «БелГУ»)

ИНСТИТУТ ИНЖЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ

Кафедра прикладной информатики и информационных технологий

Отчет по лабораторной работе № 15

Тема работы «Разработка логического и физического уровня модели данных в ERwin»

по дисциплине «Управление данными»

студента очного отделения

2 курса 12002108 группы

Головкова Игоря Евгеньевича

Проверил:

Ассистент кафедры прикладной информатики и информационных технологий Сухарев М. А.

БЕЛГОРОД, 2023

    Цель работы

1.  Изучить инструментальную среду ERwin.

2.  Научиться созданию логической модели данных с помощью ERwin.

3.  Научиться созданию физической модели данных с помощью ERwin.

Порядок выполнения работы

1.  Познакомиться  с  ERwin.

2.   Спроектировать структуру базы данных согласно варианту темы курсовой работы.

3.   Создать логическую модель данных с помощью ERwin (5 сущностей).

4.   На основе логической модели данных создать физическую модель данных

5.   Сгенерировать программный SQL-код для создания таблиц базы данных.

6.    Составить электронный отчет о проделанной работе.

Тема «Информация по комнатным растениям»

Создание логической модели БД

Рисунок 1 – Окно ERwin с общим видом логической модели

Рисунок 2 – Общий вид логической модели

Создание физической модели БД

Рисунок 3 – Общий вид физической модели

Генерация схемы БД

Dim ERwinWorkspace As Workspace

Dim ERwinDatabase As Database

Dim ERwinTableDef As TableDef

Dim ERwinQueryDef As QueryDef

Dim ERwinIndex As Index

Dim ERwinField As Field

Dim ERwinRelation As Relation

Set ERwinTable = ERwinDatabase.TableDefs(Plant information)

Set ERwinField = ErwinTable.Fields(plant_id: INT)

ERwinField.Name = plant_id

Set ERwinTable = ERwinDatabase.TableDefs(Plant information)

Set ERwinField = ErwinTable.Fields(plant_name: TEXT)

ERwinField.Name = name

Set ERwinTable = ERwinDatabase.TableDefs(Plant information)

Set ERwinField = ErwinTable.Fields(family_id: INT)

ERwinField.Name = family_id

Set ERwinTable = ERwinDatabase.TableDefs(Plant information)

Set ERwinField = ErwinTable.Fields(life_form_id: INT)

ERwinField.Name = life_form_id

Set ERwinTable = ERwinDatabase.TableDefs(Plant information)

Set ERwinField = ErwinTable.Fields(toxicity_id: INT)

ERwinField.Name = toxicity_id

Set ERwinTable = ERwinDatabase.TableDefs(Families)

Set ERwinField = ErwinTable.Fields(family_id: INT)

ERwinField.Name = family_id

Set ERwinTable = ERwinDatabase.TableDefs(Families)

Set ERwinField = ErwinTable.Fields(family: TEXT)

ERwinField.Name = family

Set ERwinTable = ERwinDatabase.TableDefs(Life forms)

Set ERwinField = ErwinTable.Fields(life_form_id: INT)

ERwinField.Name = life_form_id

Set ERwinTable = ERwinDatabase.TableDefs(Life forms)

Set ERwinField = ErwinTable.Fields(life_form: TEXT)

ERwinField.Name = life_form

Set ERwinTable = ERwinDatabase.TableDefs(Toxicity)

Set ERwinField = ErwinTable.Fields(toxicity_id: INT)

ERwinField.Name = toxicity_id

Set ERwinTable = ERwinDatabase.TableDefs(Toxicity)

Set ERwinField = ErwinTable.Fields(toxicity: TEXT)

ERwinField.Name = toxicity

' DELETE RELATIONSHIP R/9

ERwinDatabase.Relations.Delete R/9

' DELETE TABLE Physical parameters

ERwinDatabase.TableDefs.Delete "Physical parameters"

' ADD COLUMN name_latin

Set ERwinTableDef = ERwinDatabase.TableDefs(Plant information)

Set ERwinField = ERwinTableDef.CreateField("name_latin", Text(20) )

ERwinTableDef.Fields.Append ERwinField

' ADD COLUMN family_latin

Set ERwinTableDef = ERwinDatabase.TableDefs(Families)

Set ERwinField = ERwinTableDef.CreateField("family_latin", Text(20) )

ERwinTableDef.Fields.Append ERwinField

' CREATE INDEX XPKИнформация о растениях

Set ERwinTableDef = ERwinDatabase.TableDefs("Plant information")

Set ERwinIndex = ERwinTableDef.CreateIndex("XPKИнформация о растениях")

Set ERwinField = ERwinIndex.CreateField("plant_id")

ERwinIndex.Fields.Append ERwinField

ERwinIndex.Primary = True

ERwinTableDef.Indexes.Append ERwinIndex

' CREATE INDEX XPKСемейства

Set ERwinTableDef = ERwinDatabase.TableDefs("Families")

Set ERwinIndex = ERwinTableDef.CreateIndex("XPKСемейства")

Set ERwinField = ERwinIndex.CreateField("family_id")

ERwinIndex.Fields.Append ERwinField

ERwinIndex.Primary = True

ERwinTableDef.Indexes.Append ERwinIndex

' CREATE INDEX XPKЖизненные формы

Set ERwinTableDef = ERwinDatabase.TableDefs("Life forms")

Set ERwinIndex = ERwinTableDef.CreateIndex("XPKЖизненные формы")

Set ERwinField = ERwinIndex.CreateField("life_form_id")

ERwinIndex.Fields.Append ERwinField

ERwinIndex.Primary = True

ERwinTableDef.Indexes.Append ERwinIndex

' CREATE INDEX XPKТоксичность

Set ERwinTableDef = ERwinDatabase.TableDefs("Toxicity")

Set ERwinIndex = ERwinTableDef.CreateIndex("XPKТоксичность")

Set ERwinField = ERwinIndex.CreateField("toxicity_id")

ERwinIndex.Fields.Append ERwinField

ERwinIndex.Primary = True

ERwinTableDef.Indexes.Append ERwinIndex

' CREATE INDEX XAK1Семейства

Set ERwinTableDef = ERwinDatabase.TableDefs("Families")

Set ERwinIndex = ERwinTableDef.CreateIndex("XAK1Семейства")

Set ERwinField = ERwinIndex.CreateField("family_id")

ERwinIndex.Fields.Append ERwinField

ERwinIndex.Unique = True

ERwinTableDef.Indexes.Append ERwinIndex

' CREATE INDEX XIF1Информация о растениях

Set ERwinTableDef = ERwinDatabase.TableDefs("Plant information")

Set ERwinIndex = ERwinTableDef.CreateIndex("XIF1Информация о растениях")

Set ERwinField = ERwinIndex.CreateField("family_id")

ERwinIndex.Fields.Append ERwinField

ERwinTableDef.Indexes.Append ERwinIndex

' CREATE INDEX XIF2Информация о растениях

Set ERwinTableDef = ERwinDatabase.TableDefs("Plant information")

Set ERwinIndex = ERwinTableDef.CreateIndex("XIF2Информация о растениях")

Set ERwinField = ERwinIndex.CreateField("life_form_id")

ERwinIndex.Fields.Append ERwinField

ERwinTableDef.Indexes.Append ERwinIndex

' CREATE INDEX XIF3Информация о растениях

Set ERwinTableDef = ERwinDatabase.TableDefs("Plant information")

Set ERwinIndex = ERwinTableDef.CreateIndex("XIF3Информация о растениях")

Set ERwinField = ERwinIndex.CreateField("toxicity_id")

ERwinIndex.Fields.Append ERwinField

ERwinTableDef.Indexes.Append ERwinIndex

' CREATE TABLE Physical parameters

Set ERwinTableDef = ERwinDatabase.CreateTableDef("Physical parameters")

Set ERwinField = ERwinTableDef.CreateField("plant_id", DB_LONG)

ERwinField.Required = True

ERwinTableDef.Fields.Append ERwinField

Set ERwinField = ERwinTableDef.CreateField("planting_date", DB_DATETIME)

ERwinField.Required = True

ERwinTableDef.Fields.Append ERwinField

Set ERwinField = ERwinTableDef.CreateField("height_cm", DB_INTEGER)

ERwinField.Required = True

ERwinTableDef.Fields.Append ERwinField

Set ERwinField = ERwinTableDef.CreateField("health_assessment", DB_INTEGER)

ERwinField.Required = True

ERwinTableDef.Fields.Append ERwinField

ERwinDatabase.TableDefs.Append ERwinTableDef

Set ERwinField = ERwinTableDef.Fields("plant_id")

Call SetFieldProp(ERwinField, "Caption", DB_TEXT , "Код растения:")

Set ERwinField = ERwinTableDef.Fields("planting_date")

Call SetFieldProp(ERwinField, "Caption", DB_TEXT , "Дата посадки:")

Set ERwinField = ERwinTableDef.Fields("height_cm")

Call SetFieldProp(ERwinField, "Caption", DB_TEXT , "Высота см:")

Set ERwinField = ERwinTableDef.Fields("health_assessment")

Call SetFieldProp(ERwinField, "Caption", DB_TEXT , "Оценка здоровья:")

Call SetFieldProp(ERwinTableDef, "Description", DB_TEXT , "Содержит список физических параметров каждого растения")

' CREATE INDEX XPKФизические параметры

Set ERwinTableDef = ERwinDatabase.TableDefs("Physical parameters")

Set ERwinIndex = ERwinTableDef.CreateIndex("XPKФизические параметры")

Set ERwinField = ERwinIndex.CreateField("plant_id")

ERwinIndex.Fields.Append ERwinField

ERwinIndex.Primary = True

ERwinTableDef.Indexes.Append ERwinIndex

' CREATE INDEX XIF1Физические параметры

Set ERwinTableDef = ERwinDatabase.TableDefs("Physical parameters")

Set ERwinIndex = ERwinTableDef.CreateIndex("XIF1Физические параметры")

Set ERwinField = ERwinIndex.CreateField("plant_id")

ERwinIndex.Fields.Append ERwinField

ERwinTableDef.Indexes.Append ERwinIndex

' CREATE RELATIONSHIP R/9

Set ERwinRelation = ERwinDatabase.CreateRelation("R/9", "Plant information", "Physical parameters")

Set ERwinField = ERwinRelation.CreateField( "plant_id" )

ERwinField.ForeignName = plant_id

ERwinRelation.Fields.Append ERwinField

ERwinDatabase.Relations.Append ERwinRelation

ERwinDatabase.Close

ERwinWorkspace.Close

' Terminating Access Basic DAO Session...

Вывод: была изучена инструментальная среда Erwin, а также созданы логическая и физическая модели данных.