Проектування РБД Санаторію за допомогою інструментарію AllFusion ERwin Data Modeler

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Міністерство освіти і науки РФ

Федеральне агентство з освіти

Державна освітня установа вищої професійної освіти

Звіт

по курсовій роботі
за курсом: «Проектування АСОІУ»
на тему:
«Проектування РБД" Санаторію "за допомогою інструментарію AllFusion ERwin Data Modeler »
Виконали
Перевірила:
2007

1. Мета роботи:
Вивчення можливостей AllFusion ERwin Data Modeler, проектування реляційної БД на основі методології IDEF1x.
2. Методологія проектування:
ERwin Data Modeler підтримує нотації проектування даних IDEF1х, IE і Dimensional.
IDEF1X є методом для розробки реляційних баз даних і використовує умовний синтаксис, спеціально розроблений для зручного побудови концептуальної схеми.
Концептуальною схемою ми називаємо універсальне уявлення структури даних в рамках комерційного підприємства, незалежне від кінцевої реалізації бази даних і апаратної платформи. Будучи статичним методом розробки, IDEF1X спочатку не призначений для динамічного аналізу за принципом "AS IS", тим не менш, він іноді застосовується в цій якості, як альтернатива методу IDEF1. Використання методу IDEF1X найбільш доцільно для побудови логічної структури бази даних після того, як всі інформаційні ресурси досліджені (скажімо з допомогою методу IDEF1) і рішення про впровадження реляційної бази даних, як частини корпоративної інформаційної системи, було прийнято.
Сутність в IDEF1X описує собою сукупність або набір примірників схожих за властивостями, але однозначно відрізняються один від одного за одним або кількома ознаками. Кожен примірник є реалізацією сутності. Таким чином, сутність в IDEF1X описує конкретний набір примірників реального світу, на відміну від сутності в IDEF1, яка представляє собою абстрактний набір інформаційних відображень реального світу. Прикладом сутності IDEF1X може бути сутність "СПІВРОБІТНИК", яка представляє собою всіх співробітників підприємства, а один з них, скажімо, Іванов Петро Сергійович, є конкретною реалізацією цієї сутності.
Зв'язки в IDEF1X являють собою посилання, з'єднання та асоціацію між сутностями. Зв'язки це суть дієслова, які показують, як співвідносяться суті між собою. Нижче наведено ряд прикладів зв'язку між сутностями:
Відділ <складається з> кількох Співробітників
Літак <перевозить> кількох Пасажирів.
Співробітник <пише> різні Звіти.
У всіх перерахованих прикладах взаємозв'язку між сутностями відповідають схемі один до багатьох. Це означає, що один примірник першої сутності пов'язаний з декількома екземплярами другий сутності. Причому перший сутність називається батьківської, а друга - дочірньою. У наведених прикладах дієслова укладені в кутові дужки. Зв'язки відображаються у вигляді лінії між двома сутностями з точкою на одному кінці і дієслівної фразою, яка відображається над лінією.
Відносини багато до багатьох зазвичай використовуються на початковій стадії розробки діаграми, наприклад, у діаграмі залежності сутностей і відображаються в IDEF1X у вигляді суцільної лінії з крапками на обох кінцях. Так як відносини багато до багатьох можуть приховати інші бізнес правила або обмеження, вони повинні бути повністю досліджені на одному з етапів моделювання. Наприклад, іноді відношення багато до багатьох на ранніх стадіях моделювання ідентифікується неправильно, насправді представляючи два або кілька випадків відносин один-до-багатьох між пов'язаними сутностями. Або, у випадку необхідності зберігання додаткових відомостей про зв'язок багато-до-багатьох, наприклад, дати або коментаря, такий зв'язок має бути замінена додаткової сутністю, що містить ці відомості. При моделюванні необхідно бути певним у тому, що всі відносини багато до багатьох будуть детально обговорені на більш пізніх стадіях моделювання для забезпечення правильного моделювання відносин.
Сутність описується в діаграмі IDEF1X графічним об'єктом у вигляді прямокутника. Кожен прямокутник, що позначає собою сутність, поділяється горизонтальною лінією на частину, в якій розташовані ключові поля і частина, де розташовані неключові поля. Верхня частина називається ключовою областю, а нижня частина областю даних. Ключова область об'єкта СПІВРОБІТНИК містить поле "Унікальний ідентифікатор співробітника", в області даних знаходяться поля "Ім'я співробітника", "Адреса співробітника", "Телефон співробітника" і т.д.
Ключова область містить первинний ключ для сутності. Первинний ключ - це набір атрибутів, обраних для ідентифікації унікальних екземплярів сутності. Атрибути первинного ключа розташовуються над лінією в ключовій області. Як випливає з назви, неключових атрибут - це атрибут, який не був обраний ключовим. Неключові атрибути розташовуються під рискою, в області даних.
3. Можливості інструментарію проектування:
AllFusion ERwin Data Modeler (раніше: ERwin) дозволяє проектувати, документувати і супроводжувати бази даних, сховища даних і вітрини даних (data marts). Створивши наочну модель бази даних, можна оптимізувати структуру БД і добитися її повної відповідності вимогам та завданням організації. Візуальне моделювання підвищує якість створюваної бази даних, продуктивність і швидкість її розробки.
Керівники проектів можуть за допомогою ERwin Data Modeler ретельно задокументувати структуру БД, отримати звіти презентаційної якості та забезпечити ефективне управління проектом, використовуючи середовище для спільного проектування AllFusion Model Manager (раніше: ModelMart).
Оскільки ERwin Data Modeler підтримує роботу з БД на фізичному рівні, враховуючи особливості кожної конкретної СУБД, адміністратори БД можуть з його допомогою максимально підвищити продуктивність інформаційної системи. Розробники з допомогою ERwin Data Modeler можуть спочатку, використовуючи візуальні засоби, описати схему БД, а потім автоматично згенерувати файли даних для обраної реляційної СУБД (пряме проектування). Автоматично генеруються також тригери, що забезпечують посилальну цілісність БД. ERwin Data Modeler підтримує нотації проектування даних IDEF1х, IE і Dimensional.
Користувач описує структуру даних візуально. Він задає службовці прообразами реляційних таблиць сутності з їх атрибутами і за допомогою миші "натягує" між ними зв'язки, які є прототипами реляційних відносин.
ERwin Data Modeler дозволяє по вже існуючих файлів БД відновлювати логічну структуру даних. Це називається зворотним проектуванням. Воно дозволяє, по-перше, переносити структуру БД (але не дані!) З однієї СУБД в іншу і, по-друге, дослідити старі проекти. Цей процес найбільш поширений при переході з однієї технології на іншу (з файл-сервер на клієнт-сервер), а також при зміні сервера БД. На основі моделі даних надається можливість створювати звіти, які дозволяють істотно спростити процес документування технічного проекту.
ERwin підтримує пряме і зворотне проектування 20 типів баз даних різних виробників, від настільних до реляційних СУБД і спеціалізованих СУБД, призначених для створення сховищ даних.

Основні характеристики AllFusion ERwin Data Modeler
· Підтримка стандартної нотації IDEF1x для ER-діаграм моделей даних, нотації IE і спеціальної нотації, призначеної для проектування сховищ даних - Dimensional.
· Підтримка проектування інформаційних сховищ (на основі Red Brick і Teradata)
· Підтримка спільного проектування (версія для ModelMart)
· Підтримка тригерів, збережених процедур і шаблонів
· Розвинуті засоби перевірки коректності моделей даних Reverse Engineering (генерація моделі даних на основі аналізу існуючої бази даних), включаючи відновлення зв'язків по індексах
· Автоматична генерація SQL DDL для створення баз даних
· Повна сумісність і підтримка 20-ти типів СУБД на основі прямого доступу до системного каталогу баз даних (відпадає потреба у використанні ODBC).
4. Опис предметної області:
У даній лабораторній роботі в якості предметної області виступає «Санаторій». Дані, які необхідно зберігати в базі даних:
· Інформація про відділення, з яких складається санаторій (наприклад, медчастина, спортивний комплекс, харчоблок);
· Інформація про сектори, з яких складаються відділення санаторію;
· Інформація про робочі місця;
· Відомості про співробітників, що надають послуги в санаторії;
· Функції, що виконуються співробітниками;
· Інформація про умови проживання в санаторії.
Діяльність санаторію полягає в наданні послуг клієнтам, що направляються підприємствами для підвищення рівня здоров'я службовців підприємств з метою компенсації впливу на організм шкідливих факторів.
5. Сутності і атрибути:
У даній лабораторній роботі при проектуванні БД «Санаторію» використовуються такі сутності з відповідними атрибутами:
· Відділення;
Ø Найменування;
Ø Юридична адреса.
· Сектор;
Ø Найменування.
· Робоче місце:
Ø Найменування.
· Співробітник;
Ø Прізвище;
Ø Ім'я;
Ø По-батькові;
Ø Адреса;
Ø Зарплата;
Ø Рік народження;
Ø № страхового поліса;
Ø Дата прийому на роботу.
· Функція;
Ø Найменування.
· Автотранспорт;
Ø Гос.номер;
Ø Марка;
Ø Термін експлуатації;
Ø Техогляд.
· Клієнт;
Ø Прізвище;
Ø Ім'я;
Ø По-батькові;
Ø Адреса;
Ø № страхового поліса;
Ø Рік народження.
· Путівка;
Ø Період;
Ø Вартість;
Ø Кількість чоловік.
· Жіл.комплекс.
Ø № кімнати;
Ø Меблі;
Ø Площа;
Ø Кількість ліжко-місць;
Ø Умови.
· Підприємство-відправник:
Ø Найменування;
Ø Юридична адреса;
Ø № договору.
6. Зв'язки між сутностями:
У IDEF1X концепція залежних і незалежних сутностей посилюється типом взаємозв'язків між двома сутностями. Якщо ви хочете, щоб зовнішній ключ передавався в дочірню сутність (і, в результаті, створював залежну сутність), то можете створити ідентифікує зв'язок між батьківської та дочірньою сутність.
Ідентифікують взаємозв'язку позначаються суцільною лінією між сутностями.
Неидентифицирующей зв'язку, які є унікальними для IDEF1X, також пов'язують батьківську сутність з дочірньою. Неидентифицирующей зв'язку використовуються для відображення іншого типу передачі атрибутів зовнішніх ключів - передача в область даних дочірньої сутності (під лінією).
Неидентифицирующей зв'язку відображаються пунктирною лінією між об'єктами. Так як передані ключі в неидентифицирующей зв'язку не є складовою частиною первинного ключа дочірньої суті, то цей вид зв'язку не виявляється ні в одній ідентифікуючої залежності. У цьому випадку і ВІДДІЛ, і СПІВРОБІТНИК розглядаються як незалежні сутності.
При проектуванні БД Санаторію визначені такі зв'язки між сутностями:
· Відділення складається з секторів (один-ко-багатьом);
· Відділення обслуговує клієнтів (багато-до-багатьох);
· Сектор складається з робочих місць (один-ко-багатьом);
· Робоче місце надається співробітнику (один-ко-багатьом):
· Функції виконується на робочому місці (один-ко-багатьом);
· Автотранспорт належить відділенню (один-ко-багатьом);
· Клієнт має путівку (один-ко-багатьом);
· Клієнт працює на підприємстві (один-ко-багатьом);
· Жіл.комплекс надається клієнту (один-ко-багатьом);
· Підприємство-відправник надає путівки (один-ко-багатьом);

Рис.1. Логічний рівень проектування БД
7. Перехід на фізичний рівень. Процес перетворення зв'язку багато-до-багатьох:
При переході на фізичний рівень особливої ​​уваги заслуговують такі типи зв'язків як "багато-до-багатьох" і «супертіпа з підтипами».
Стандарт EDEF1X допускає присутність в моделі обох типів зв'язків. Однак без їх дозволу фізична база даних буде далека від оптимальної. ERwin надає можливість вирішення цих зв'язків.
Стандартним дозволом зв'язку "багато-до-багатьох" є механізм, показаний на рис. 3.

Рис. 2. Дозвіл зв'язку "багато-до-багатьох"
На логічному рівні проектування БД існував зв'язок «багато-до-багатьох» між сутностями Відділення та Клієнт. В результаті переходу на фізичний рівень утворилася додаткова сутність з відповідною областю первинних ключів:

Рис.3 Перехід на фізичний рівень

8. Скрипт для створення БД в Access:
'Starting Access Basic DAO Session ...
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 ERwinWorkspace = DBEngine.WorkSpaces (0)
Set ERwinDatabase = ERwinWorkspace.OpenDatabase (sERwinDatabase)
'CREATE TABLE "Client"
Set ERwinTableDef = ERwinDatabase.CreateTableDef ("Client")
Set ERwinField = ERwinTableDef.CreateField ("ID client", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("ID enterprise", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Number of flat", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Surname", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Name", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Lastname", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Address", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Insurance policy", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Birthday", DB_DATETIME)
ERwinTableDef.Fields.Append ERwinField
ERwinDatabase.TableDefs.Append ERwinTableDef
'CREATE INDEX "PrimaryKey"
Set ERwinTableDef = ERwinDatabase.TableDefs ("Client")
Set ERwinIndex = ERwinTableDef.CreateIndex ("PrimaryKey")
Set ERwinField = ERwinIndex.CreateField ("ID client")
ERwinIndex.Fields.Append ERwinField
Set ERwinField = ERwinIndex.CreateField ("ID enterprise")
ERwinIndex.Fields.Append ERwinField
Set ERwinField = ERwinIndex.CreateField ("Number of flat")
ERwinIndex.Fields.Append ERwinField
ERwinIndex.Primary = True
ERwinTableDef.Indexes.Append ERwinIndex
'CREATE TABLE "Department"
Set ERwinTableDef = ERwinDatabase.CreateTableDef ("Department")
Set ERwinField = ERwinTableDef.CreateField ("ID department", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Department name", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Legal address", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
ERwinDatabase.TableDefs.Append ERwinTableDef
'CREATE INDEX "PrimaryKey"
Set ERwinTableDef = ERwinDatabase.TableDefs ("Department")
Set ERwinIndex = ERwinTableDef.CreateIndex ("PrimaryKey")
Set ERwinField = ERwinIndex.CreateField ("ID department")
ERwinIndex.Fields.Append ERwinField
ERwinIndex.Primary = True
ERwinTableDef.Indexes.Append ERwinIndex
'CREATE TABLE "Department_Client"
Set ERwinTableDef = ERwinDat base.CreateTableDef ("Department_Client")
Set ERwinField = ERwinTableDef.CreateField ("ID department", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("ID client", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("ID enterprise", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Number of flat", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
ERwinDatabase.TableDefs.Append ERwinTableDef
'CREATE INDEX "PrimaryKey"
Set ERwinTableDef = ERwinDatabase.TableDefs ("Department_Client")
Set ERwinIndex = ERwinTableDef.CreateIndex ("PrimaryKey")
Set ERwinField = ERwinIndex.CreateField ("ID department")
ERwinIndex.Fields.Append ERwinField
Set ERwinField = ERwinIndex.CreateField ("ID client")
ERwinIndex.Fields.Append ERwinField
Set ERwinField = ERwinIndex.CreateField ("ID enterprise")
ERwinIndex.Fields.Append ERwinField
Set ERwinField = ERwinIndex.CreateField ("Number of flat")
ERwinIndex.Fields.Append ERwinField
ERwinIndex.Primary = True
ERwinTableDef.Indexes.Append ERwinIndex
'CREATE TABLE "Enterprise-sender"
Set ERwinTableDef = ERwinDatabase.CreateTableDef ("Enterprise-sender")
Set ERwinField = ERwinTableDef.CreateField ("ID enterprise", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Name", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Legal address", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Number contract", DB_INTEGER)
ERwinTableDef.Fields.Append ERwinField
ERwinDatabase.TableDefs.Append ERwinTableDef
'CREATE INDEX "PrimaryKey"
Set ERwinTableDef = ERwinDatabase.TableDefs ("Enterprise-sender")
Set ERwinIndex = ERwinTableDef.CreateIndex ("PrimaryKey")
Set ERwinField = ERwinIndex.CreateField ("ID enterprise")
ERwinIndex.Fields.Append ERwinField
ERwinIndex.Primary = True
ERwinTableDef.Indexes.Append ERwinIndex
'CREATE TABLE "Function"
Set ERwinTableDef = ERwinDatabase.CreateTableDef ("Function")
Set ERwinField = ERwinTableDef.CreateField ("ID function", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("ID work place", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("ID sector", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Function's name", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
ERwinDatabase.TableDefs.Append ERwinTableDef
'CREATE INDEX "PrimaryKey"
Set ERwinTableDef = ERwinDatabase.TableDefs ("Function")
Set ERwinIndex = ERwinTableDef.CreateIndex ("PrimaryKey")
Set ERwinField = ERwinIndex.CreateField ("ID function")
ERwinIndex.Fields.Append ERwinField
Set ERwinField = ERwinIndex.CreateField ("ID work place")
ERwinIndex.Fields.Append ERwinField
Set ERwinField = ERwinIndex.CreateField ("ID sector")
ERwinIndex.Fields.Append ERwinField
ERwinIndex.Primary = True
ERwinTableDef.Indexes.Append ERwinIndex
'CREATE TABLE "Housing estate"
Set ERwinTableDef = ERwinDatabase.CreateTableDef ("Housing estate")
Set ERwinField = ERwinTableDef.CreateField ("Number of flat", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Furniture", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Area", DB_INTEGER)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Quantity of places", DB_INTEGER)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Condition", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
ERwinDatabase.TableDefs.Append ERwinTableDef
'CREATE INDEX "PrimaryKey"
Set ERwinTableDef = ERwinDatabase.TableDefs ("Housing estate")
Set ERwinIndex = ERwinTableDef.CreateIndex ("PrimaryKey")
Set ERwinField = ERwinIndex.CreateField ("Number of flat")
ERwinIndex.Fields.Append ERwinField
ERwinIndex.Primary = True
ERwinTableDef.Indexes.Append ERwinIndex
'CREATE TABLE "Motor transport"
Set ERwinTableDef = ERwinDatabase.CreateTableDef ("Motor transport")
Set ERwinField = ERwinTableDef.CreateField ("State number", DB_TEXT, 18)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("ID department", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Car's brand", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Explotation time", DB_DATETIME)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Date maintenance", DB_DATETIME)
ERwinTableDef.Fields.Append ERwinField
ERwinDatabase.TableDefs.Append ERwinTableDef
'CREATE INDEX "PrimaryKey"
Set ERwinTableDef = ERwinDatabase.TableDefs ("Motor transport")
Set ERwinIndex = ERwinTableDef.CreateIndex ("PrimaryKey")
Set ERwinField = ERwinIndex.CreateField ("State number")
ERwinIndex.Fields.Append ERwinField
ERwinIndex.Primary = True
ERwinTableDef.Indexes.Append ERwinIndex
'CREATE TABLE "Permit"
Set ERwinTableDef = ERwinDatabase.CreateTableDef ("Permit")
Set ERwinField = ERwinTableDef.CreateField ("ID permit", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("ID client", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("ID enterprise", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Number of flat", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Period", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Cost", DB_INTEGER)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("People quantity", DB_INTEGER)
ERwinTableDef.Fields.Append ERwinField
ERwinDatabase.TableDefs.Append ERwinTableDef
'CREATE INDEX "PrimaryKey"
Set ERwinTableDef = ERwinDatabase.TableDefs ("Permit")
Set ERwinIndex = ERwinTableDef.CreateIndex ("PrimaryKey")
Set ERwinField = ERwinIndex.CreateField ("ID permit")
ERwinIndex.Fields.Append ERwinField
Set ERwinField = ERwinIndex.CreateField ("ID client")
ERwinIndex.Fields.Append ERwinField
Set ERwinField = ERwinIndex.CreateField ("ID enterprise")
ERwinIndex.Fields.Append ERwinField
Set ERwinField = ERwinIndex.CreateField ("Number of flat")
ERwinIndex.Fields.Append ERwinField
ERwinIndex.Primary = True
ERwinTableDef.Indexes.Append ERwinIndex
'CREATE TABLE "Sector"
Set ERwinTableDef = ERwinDatabase.CreateTableDef ("Sector")
Set ERwinField = ERwinTableDef.CreateField ("ID sector", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("ID department", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Sector name", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
ERwinDatabase.TableDefs.Append ERwinTableDef
'CREATE INDEX "PrimaryKey"
Set ERwinTableDef = ERwinDatabase.TableDefs ("Sector")
Set ERwinIndex = ERwinTableDef.CreateIndex ("PrimaryKey")
Set ERwinField = ERwinIndex.CreateField ("ID sector")
ERwinIndex.Fields.Append ERwinField
ERwinIndex.Primary = True
ERwinTableDef.Indexes.Append ERwinIndex
'CREATE TABLE "Work place"
Set ERwinTableDef = ERwinDatabase.CreateTableDef ("Work place")
Set ERwinField = ERwinTableDef.CreateField ("ID work place", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("ID sector", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Name work place", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
ERwinDatabase.TableDefs.Append ERwinTableDef
'CREATE INDEX "PrimaryKey"
Set ERwinTableDef = ERwinDatabase.TableDefs ("Work place")
Set ERwinIndex = ERwinTableDef.CreateIndex ("PrimaryKey")
Set ERwinField = ERwinIndex.CreateField ("ID work place")
ERwinIndex.Fields.Append ERwinField
Set ERwinField = ERwinIndex.CreateField ("ID sector")
ERwinIndex.Fields.Append ERwinField
ERwinIndex.Primary = True
ERwinTableDef.Indexes.Append ERwinIndex
'CREATE TABLE "Worker"
Set ERwinTableDef = ERwinDatabase.CreateTableDef ("Worker")
Set ERwinField = ERwinTableDef.CreateField ("ID of worker", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("ID work place", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("ID sector", DB_INTEGER)
ERwinField.Required = True
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Surname", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Name", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Lastname", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Address", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Pay", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Birthday", DB_DATETIME)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Insurance policy", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField ("Delivery date of work", DB_TEXT, 18)
ERwinTableDef.Fields.Append ERwinField
ERwinDatabase.TableDefs.Append ERwinTableDef
'CREATE INDEX "PrimaryKey"
Set ERwinTableDef = ERwinDatabase.TableDefs ("Worker")
Set ERwinIndex = ERwinTableDef.CreateIndex ("PrimaryKey")
Set ERwinField = ERwinIndex.CreateField ("ID of worker")
ERwinIndex.Fields.Append ERwinField
Set ERwinField = ERwinIndex.CreateField ("ID work place")
ERwinIndex.Fields.Append ERwinField
Set ERwinField = ERwinIndex.CreateField ("ID sector")
ERwinIndex.Fields.Append ERwinField
ERwinIndex.Primary = True
ERwinTableDef.Indexes.Append ERwinIndex
'CREATE RELATIONSHIP "Send"
Set ERwinRelation = ERwinDatabase.CreateRelation ("Send", "Enterprise-sender", "Client")
Set ERwinField = ERwinRelation.CreateField ("ID enterprise")
ERwinField.ForeignName = "ID enterprise"
ERwinRelation.Fields.Append ERwinField
ERwinDatabase.Relations.Append ERwinRelation
'CREATE RELATIONSHIP "Belong to"
Set ERwinRelation = ERwinDatabase.CreateRelation ("Belong to", "Housing estate", "Client")
Set ERwinField = ERwinRelation.CreateField ("Number of flat")
ERwinField.ForeignName = "Number of flat"
ERwinRelation.Fields.Append ERwinField
ERwinDatabase.Relations.Append ERwinRelation
'CREATE RELATIONSHIP "R/12"
Set ERwinRelation = ERwinDatabase.CreateRelation ("R/12", "Client", "Department_Client")
Set ERwinField = ERwinRelation.CreateField ("ID client")
ERwinField.ForeignName = "ID client"
ERwinRelation.Fields.Append ERwinField
Set ERwinField = ERwinRelation.CreateField ("ID enterprise")
ERwinField.ForeignName = "ID enterprise"
ERwinRelation.Fields.Append ERwinField
Set ERwinField = ERwinRelation.CreateField ("Number of flat")
ERwinField.ForeignName = "Number of flat"
ERwinRelation.Fields.Append ERwinField
ERwinDatabase.Relations.Append ERwinRelation
'CREATE RELATIONSHIP "R/11"
Set ERwinRelation = ERwinDatabase.CreateRelation ("R/11", "Department", "Department_Client")
Set ERwinField = ERwinRelation.CreateField ("ID department")
ERwinField.ForeignName = "ID department"
ERwinRelation.Fields.Append ERwinField
ERwinDatabase.Relations.Append ERwinRelation
'CREATE RELATIONSHIP "perform"
Set ERwinRelation = ERwinDatabase.CreateRelation ("perform", "Work place", "Function")
Set ERwinField = ERwinRelation.CreateField ("ID work place")
ERwinField.ForeignName = "ID work place"
ERwinRelation.Fields.Append ERwinField
Set ERwinField = ERwinRelation.CreateField ("ID sector")
ERwinField.ForeignName = "ID sector"
ERwinRelation.Fields.Append ERwinField
ERwinDatabase.Relations.Append ERwinRelation
'CREATE RELATIONSHIP "Provide"
Set ERwinRelation = ERwinDatabase.CreateRelation ("Provide", "Department", "Motor transport")
Set ERwinField = ERwinRelation.CreateField ("ID department")
ERwinField.ForeignName = "ID department"
ERwinRelation.Fields.Append ERwinField
ERwinDatabase.Relations.Append ERwinRelation
'CREATE RELATIONSHIP "Have"
Set ERwinRelation = ERwinDatabase.CreateRelation ("Have", "Client", "Permit")
Set ERwinField = ERwinRelation.CreateField ("ID client")
ERwinField.ForeignName = "ID client"
ERwinRelation.Fields.Append ERwinField
Set ERwinField = ERwinRelation.CreateField ("ID enterprise")
ERwinField.ForeignName = "ID enterprise"
ERwinRelation.Fields.Append ERwinField
Set ERwinField = ERwinRelation.CreateField ("Number of flat")
ERwinField.ForeignName = "Number of flat"
ERwinRelation.Fields.Append ERwinField
ERwinDatabase.Relations.Append ERwinRelation
'CREATE RELATIONSHIP "Give to"
Set ERwinRelation = ERwinDatabase.CreateRelation ("Give to", "Enterprise-sender", "Permit")
Set ERwinField = ERwinRelation.CreateField ("ID enterprise")
ERwinField.ForeignName = "ID enterprise"
ERwinRelation.Fields.Append ERwinField
ERwinDatabase.Relations.Append ERwinRelation
'CREATE RELATIONSHIP "Consist of"
Set ERwinRelation = ERwinDatabase.CreateRelation ("Consist of", "Department", "Sector")
Set ERwinField = ERwinRelation.CreateField ("ID department")
ERwinField.ForeignName = "ID department"
ERwinRelation.Fields.Append ERwinField
ERwinDatabase.Relations.Append ERwinRelation

'CREATE RELATIONSHIP "Consist of"
Set ERwinRelation = ERwinDatabase.CreateRelation ("Consist of", "Sector", "Work place")
Set ERwinField = ERwinRelation.CreateField ("ID sector")
ERwinField.ForeignName = "ID sector"
ERwinRelation.Fields.Append ERwinField
ERwinDatabase.Relations.Append ERwinRelation
'CREATE RELATIONSHIP "Give to"
Set ERwinRelation = ERwinDatabase.CreateRelation ("Give to", "Work place", "Worker")
Set ERwinField = ERwinRelation.CreateField ("ID work place")
ERwinField.ForeignName = "ID work place"
ERwinRelation.Fields.Append ERwinField
Set ERwinField = ERwinRelation.CreateField ("ID sector")
ERwinField.ForeignName = "ID sector"
ERwinRelation.Fields.Append ERwinField
ERwinDatabase.Relations.Append ERwinRelation
ERwinDatabase.Close
ERwinWorkspace.Close
'Terminating Access Basic DAO Session ...

Висновок:
У процесі виконання даної лабораторної роботи були вивчені основи роботи в AllFusion ERwin Data Modeler, а також визначена предметна область, основні сутності БД, інформація про яких повинна міститися в базі даних, первинні ключі сутностей, їх атрибути та зв'язки між ними.
AllFusion ERwin Data Modeler дозволяє проектувати, документувати і супроводжувати бази даних, сховища даних і вітрини даних (data marts). Створивши наочну модель бази даних, можна оптимізувати структуру БД і добитися її повної відповідності вимогам та завданням організації. Візуальне моделювання підвищує якість створюваної бази даних, продуктивність і швидкість її розробки

Література:
1. Маклаков С.В. CASE-засоби розробки інформаційних систем. BPwin і Erwin-М.: ДіалогМіфі, 2001.
2. Постанова Уряду РФ «Про заходи щодо організаії індивідуального (персоніфікованого) обліку для цілей державного пенсійного страхування».
3. Федеральний закон «Про індивідуальному (персоніфікованому) обліку в системі державного пенсійного страхування».
4. Інструкція про порядок ведення індивідуального (персоніфікованого) обліку відомостей про застрахованих осіб для цілей державного пенсійного страхування.
5. «Про форми документів індивідуального (персоніфікованого) обліку в системі державного пенсійного страхування та інструкції щодо їх заповнення»
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Лабораторна робота
50.4кб. | скачати


Схожі роботи:
Системи автоматизованого проектування Використання креслень за допомогою комп ютера
Спрощений Data Encryption Standart
Стерилізація медичного інструментарію
Сутність інструментарію аналізу інвестиційних проектів
Бухгалтерський облік в організації ФГУП санаторію Мінеральні Води
Перспективні напрямки розвитку послуг санаторію-профілакторію Берізки
Розробка алгоритму та інструментарію для виявлення професійної компетентності психолога організації
Розробка інструментарію оцінки ефективності управління соціально-економічним розвитком муніципальних
Формування позитивного іміджу підприємства на прикладі діяльності санаторію Актор
© Усі права захищені
написати до нас