Въведение
Този урок представя инструментите за модел на данни на Oracle SQL Developer, които могат да се използват за обратно проектиране на съществуваща схема на база данни в релационен и логически модел. Помислете за типичен процес на разработване на база данни, който започва с изискванията на бизнес потребителя, които се моделират като модел на взаимоотношения на обекти, състоящ се от обекти, атрибути, идентификатори и връзки. Този E-R модел след това се трансформира в релационен модел, състоящ се от релации, атрибути, ключове и външни ключове. Релационният модел може да бъде имплементиран в релационна база данни като набор от таблици, колони и ограничения, включително ограничения за уникален, първичен и външен ключ.
Може да се натъкнем на ситуации, в които имаме вече внедрена схема на релационна база данни, но липсва оригиналният релационен модел или модел на релация на обект, който е бил използван за проектиране на базата данни. В тези ситуации може да успеем да създадем отново модела E-R чрез обратно инженерство модела от схемата на базата данни. За да постигнем това, трябва да предприемем следните стъпки:
- Свържете схемата на базата данни и идентифицирайте всички съществуващи таблици, техните колони и техните ограничения за първичен и външен ключ.
- Създайте релационния модел, който съответства на съществуващия набор от таблици и ограничения.
- Изведете модела E-R от релационния модел.
Терминология на модела на данни
Oracle SQL Developer използва термини, които са малко по-различни от тези, които обикновено се използват в курсовете по академични бази данни. Физическият модел (с ключове, връзки с външни ключове и индекси), който се извлича от схемата на базата данни, се нарича „Релационен модел“ от Oracle SQL Developer. Наборът от обекти с релационни линии се нарича „Логически модел“ от Oracle SQL Developer.
Предварителни условия
Преди да започнете този урок, уверете се, че работите с Oracle SQL Developer версия 4.x или по-нова. За съжаление, Oracle 12c все още може да се доставя с версия 3.x на SQL Developer, в която липсват инструменти за моделиране на данни.
Ако трябва да получите и инсталирате SQL Developer или искате някои съвети как да започнете със SQL Developer, моля, вижте урока.
Ще ви трябват и идентификационните данни (име на хост, порт, име на услуга, потребителско име и парола) за примерната схема „HR“ (или друга), която се доставя с Oracle 11g и Oracle 12c.
Следните стъпки бяха извършени с помощта на SQL Developer 4.1 на Windows 7, свързан с примерната схема „HR“ в база данни на Oracle 12c.
Обратно проектиране на релационния модел от схема на база данни
- Стартирайте Oracle SQL Developer и създайте връзка със схемата на базата данни, с която ще работите. В този пример създадохме връзка със схемата „HR“, която е примерната база данни за човешки ресурси, която идва с Oracle 11g и Oracle 12c.
- Издърпайте надолу менюто Файл, изберете Data Modeler и след това подменюто Импортиране. Щракнете върху избора на речник на данни от падащото меню, както е показано по-долу. Това ще стартира съветника за импортиране на речник на данни:
- Изберете връзката, с която искате да работите. Можете също да щракнете върху бутона Добавяне, за да добавите нова връзка. След като маркирате връзката си, щракнете върху бутона Next>, за да продължите.
- Следващата стъпка е да изберете схемата за импортиране. За този пример поставихме отметка в квадратчето за схемата „HR“, както е показано по-долу. Имайте предвид, че изборът „Импортиране в:“ показва Нов релационен модел и типът на базата данни е Oracle 12c. Щракнете върху бутона Next>, за да продължите:
Следващият набор от стъпки на следващата страница обхваща избора на обектите на базата данни за импортиране в модела.
- Следващата стъпка е да изберете кои обекти на базата данни да импортирате. За това упражнение ще изберем всички таблици, които да бъдат импортирани. Имайте предвид, че има и други обекти на базата данни, като изгледи, последователности, роли, съхранени процедури и т.н., които също могат потенциално да бъдат импортирани. За това упражнение ще го простим и просто ще разгледаме таблиците. След като изберете таблиците, щракнете върху бутона Next>, за да продължите.
- Последната стъпка за съветника за импортиране е прегледът на обектите на базата данни, които ще бъдат импортирани. Ако всичко изглежда добре, щракнете върху бутона Край, за да започнете импортирането.
- В този момент, в зависимост от това колко таблици импортирате, може да видите лента за напредък, като например:
- Когато приключи, ще се появи прозорец с обобщен дневник:
Ако има някакви неуспешни оператори, запазете този регистрационен файл, за да помогнете при отстраняването на грешки.
- Ако приемем, че процесът на импортиране е завършен без грешки, в прозореца ще се появи нов релационен модел. Може да пожелаете да се движите по масите, за да направите хубава подредба. Моделът използва нотация „пачи крак“, където „пачи крак“ представлява „много“ страна на връзката. Така например, един „регион“ има много „държави“. Една „Държава“ има много „Местоположения“ и така нататък.
- Можете да промените нивото на детайлност, показано в релационния модел, като щракнете с десния бутон върху платното и изберете елемента от менюто Преглед на подробностите.
Като напомняне, повечето практикуващи обикновено биха нарекли това „физически модел на база данни“, тъй като включва типовете данни, ключовете, външните ключове и индексите, които са внедрени в схемата на базата данни.
Стъпките за запазване на модела са представени на следващата страница.
- В този момент моделът получава временно име като Untitled_1. За да видите този модел в „Браузър“, издърпайте надолу менюто Изглед, изберете Data Modeler и след това Browser. Отворете дизайна Untitled_1 и след това отворете релационните модели и накрая модела, наречен на вашата връзка, както е показано по-долу:
- Щракнете с десния бутон върху дизайна Untitled_1 и щракнете върху елемента от менюто Save Design. Придвижете се до подходяща папка, за да запазите работата си и дайте на дизайна име на файл. Щракнете върху бутона Save, след като това е готово:
В този момент вече имаме (това, което Oracle нарича) релационен модел, който по същество е огледало на схемата за релационна база данни, която току-що импортирахме. Всъщност SQL Developer поддържа тези две синхронизирани, така че ако схемата на базата данни се промени, това ще бъде отразено в релационния модел и ако се направят промени в релационния модел, те могат да бъдат вкарани в (реализирани в) схемата на базата данни.
Този модел ще покаже всички таблици (връзки), ключове, външни ключове, ограничения за проверка и индекси, които могат или не могат да наложат уникалност. Например, връзката EMPLOYEES по-долу има първичен ключ EMPLOYEE_ID, три външни ключа (JOB_ID, MANAGER_ID и DEPARTMENT_ID) и едно уникално ограничение в колоната EMAIL:
Следващият набор от стъпки на следващата страница обхваща как да продължите процеса на обратно инженерство, за да създадете логически модел.
Обратно проектиране на модела на връзката между обекти
В този момент ние сме проектирали схемата на база данни към релационен модел, което е доста прав процес. Последната стъпка е да продължите обратното инженерство, за да създадете модела на връзката на обекта. Имайте предвид, че Oracle нарича това „логически модел“.
- Връщайки се към браузъра на модела на данни, отворете папките за релационни модели и логически модел, както е показано по-долу:
- Щракнете с десния бутон върху релационния модел (нашият се казва sfscdb_pdb2_hr) и изберете Инженер към логически модел от изскачащото меню, както е показано по-долу:
- Инженер към логически модел диалоговият прозорец трябва да се появи, както е по-долу. Всяка от таблиците и препратките трябва да бъде проверена. Всяка таблица ще бъде съпоставена с обект и всяка препратка към външен ключ трябва да бъде съпоставена с връзка между обекти. След като всички подходящи елементи са избрани от левия прозорец, щракнете върху бутона Инженер, за да създадете логически (ER) модел.
- Новият модел на връзката на обекта трябва да се появи, както е показано по-долу. По подразбиране се използва „Парачи крак“ или нотацията на Баркър.
Подробности за връзките (които Oracle объркващо нарича „отношения“) могат да се видят чрез двукратно щракване върху линията на връзката. В примера по-долу връзката между субектите за служители и работни места е отворена. Чрез посочване на глаголни фрази за полетата „Име в източника“ и „Име в целта“, всяка връзка може да бъде напълно посочена с голямо ниво на детайлност.
Фигурата по-долу показва напълно дефинираната връзка, която би гласи:
One JOB may be a job performed by One or More EMPLOYEES One EMPLOYEE must be performing One and Only One JOB
Нотацията по подразбиране за модела ER е нотацията на пачи крак или Barker. За да промените нотацията на нотация на Бахман или на нотация за информационно инженерство, щракнете с десния бутон където и да е върху диаграмата и маркирайте елемента от менюто Нотация. Изберете някоя от наличните нотации от изскачащия списък.
Можете да добавите заглавие и други подробности към модела ER с помощта на инструмента New Note