
Лаб_15 Головков И.Е. 12002108 УД
.docxФЕДЕРАЛЬНОЕ Государственное АВТОНОМНОЕ образовательное УЧРЕЖДЕНИЕ ВЫСШЕГО образования
«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ
ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»
(НИУ «БелГУ»)
ИНСТИТУТ ИНЖЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ
Кафедра прикладной информатики и информационных технологий
Отчет по лабораторной работе № 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, а также созданы логическая и физическая модели данных.