I. Основи на субд 2


Моделиране на реална ситуация



страница12/14
Дата23.02.2017
Размер1.28 Mb.
#15584
1   ...   6   7   8   9   10   11   12   13   14

3.Моделиране на реална ситуация


Тъй като проектирането на една база данни е итеративен процес, то много вероятно е най-доброто изпълнение да не дойде още след първата итерация.

Процесът на проектиране обикновено започва след обширни консултации с хората, познаващи ситуацията или процеса, в която или по време на който ще бъде използвана базата данни. Трябва да се открият основните структури от данни и правилата, отнасящи се към техните взаимни връзки, както и операциите, които ще бъдат изпълнявани върху тези данни. Те се наричат бизнес правила. За да изградим модел на базата данни, трябва да открием обектите и взаимоотношения между тях.

Когато започнем консултациите с клиентите трябва имаме предвид следното:


  • Добре е да се вземат предвид мненията както на крайните потребители, така и на ръководството. Крайните потребители разполагат с най-подробна информация относно данните и своята работа с тях, докато ръководството определя приоритетите пред базата данни;

  • Често е много по-ефикасно да се разговаря с групи от хора, отколкото с всеки поотделно – по-лесно е да се намерят нестандартни решения чрез дискусия;

  • Трябва да се иска от клиентите да опишат своята работа, как подхождат към нея, от каква информация се нуждаят и каква информация се получава в резултат на тяхната работа;

  • Трябва да се опитаме да определим какви са правилата на бизнеса, за да се уверим, че нашата схема ще отразява реално съществуващите правила, а не някаква тяхна проекция.

Ще демонстрираме проектиране използвайки Entity-Relationship (ER) модела – модел обект-взаимоотношение, който е разработен през седемдесетте години от д-р Питър Чен. Това е абстрактен модел на данните. Този модел предлага начин за осмисляне и организиране на данните. Гледната точка, която той предлага, е по-интуитивна относно начина, по който хората възприемат заобикалящият ги свят. Това го прави много полезен при проектирането, защото то трябва да изходи от някаква концепция за реална ситуация и да предложи неин модел, който компютърните програми да могат да използват. Поради строгата си математическа основа и ред други причини, релационния модел се използва при реализацията. Следователно ER моделът се използва за извличане на абстрактния модел на данните, а след това този модел се реализира съгласно релационния модел. Но самият ER модел се намира на по-високо ниво на абстракция, отколкото релационния, и може да бъде реализиран по различни начини. Например, някои обектно-ориентирани бази данни се основават на директното реализиране на ER модела.


3.1.Елементи на ER модела

3.1.1.Обекти


Първото основно понятие е обект (entity). Това са логическите категории на предметите от заобикалящия ни свят – хора, автомобили, сгради и т.н. Това означава, че “Човек” може да бъде един обект, а “Иван” е конкретна инстанция на този обект.

Обектите могат да бъдат характеризирани като силни и слаби. Силният обект е достатъчно добре дефиниран, без да се позовава на други обекти в модела, докато слабият изисква позоваване на някой друг обект, за да могат екземплярите му да бъдат идентифицирани и да имат смисъл. Например, “Човек” може да е силен обект, а “Адрес” – слаб, защото адресите имат смисъл само във връзка с хората.


3.1.2.Взаимоотношения (релации)


Обектите имат взаимоотношения помежду си. Например, един човек може да заема определен пост. Тези взаимоотношения могат да имат характеристики, независещи от характеристиките на самите обекти.

Взаимоотношенията имат няколко важни характеристики. Една от тях е степента на взаимоотношенията (релацията). Това касае броя на обектите, участващи във взаимоотношението. Възможностите са:



  • Един – такъв тип релация се нарича сингуларна/унарна (unary), циклична (circular), рефлексивна или рекурсивна. Това става възможно на практика, защото в една релация един обект може да участва с повече от една роля. Например, повечето служители имат мениджъри, които също са служители. По този начин един и същ служител участва в релацията в ролята на мениджър, служител и или в двете;

  • Два – тези релации се наричат бинарни (binary) и са най-често срещания тип;

  • Три или повече – тези релации се наричат n-арни и се срещат понякога.

Друга важна характеристика на релациите е тяхната кардиналност, която се отнася до изображението на екземплярите на обекта A в екземплярите на обекта B. Има три възможности:

  • Едно към едно (1:1) – за всяко A има точно едно B и обратно. Например, един автомобил има точно един двигател;

  • Едно към много (1:n) – за всяко A има нула или повече B, но за всяко B има само едно A. Например, всеки човек може да няма нито един или да има произволен брой телефонни номера, но всеки телефонен номер е собственост само на един човек;

  • Много към много (m:n) – за всяко А има нула или повече B и за всяко B има нула или повече А. Например, един студент може да посещава много лекции, а всяка една лекция може да бъде посещавана от много студенти.

3.1.3.Атрибути


Те могат да се отнасят както към обектите, така им към релациите. Един атрибут представлява определена характеристика на обекта или релацията. Атрибутът може да има:

  • една стойност, т.е. той има само една стойност за всеки екземпляр на дадения обект;

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

Повечето атрибути, които могат да имат много стойности, могат да бъдат моделирани като слаби обекти с релация 1:n. Основната концептуална разлика е, че един обект, макар и слаб, може да участва и в други релации, докато един атрибут принадлежи само на един обект.

3.2.Създаване на прост модел


Ще проектираме база данни, която моделира една проста ситуация за университет с преподаватели, студенти и предмети. Ще съставим списък на бизнес правилата:

  • За дадена дисциплина има един преподавател и произволен брой студенти;

  • Студентите посещават една или повече дисциплини;

  • Преподавателите преподават една или повече дисциплини;

  • Всеки студент получава по една оценка по всяка дисциплина;

  • За всяка дисциплина трябва да проследим следните данни: име и брой часове;

  • За всеки студент трябва да проследим следните данни: име и оценки по съответните дисциплини;

  • За всеки преподавател трябва да проследим следната информация: име и позиция (асистент, доцент, професор и т.н.). Ако е асистент, кой е контролиращият го.

Основните обекти тук очевидно са:

  • Дисциплини – Classes

  • Преподаватели – Teachers

  • Студенти – Students

Съблюдавайки изброените бизнес правила можем да извлечем следните релации:

  • Съществува релация 1:n “преподава” (teaches) между обектите Преподаватели (Teachers) и Предмети (Classes);

  • Съществува релация m:n “посещава” (attends) между обектите Студенти (Students) и Предмети (Classes);

  • Съществува циклична релация “контролиран от” (controlled_by) между обекта Преподаватели (Teachers) и самия него.

Да обърнем малко внимание на последната релация, защото тя е малко по-сложна. Тъй като всеки асистент е контролиран от точно един доцент или професор, а всеки професор може да контролира един или повече асистенти, то кардиналността е 1:n.

Дотук извлякохме най-важните обекти и релации. Атрибутите са елементите от информацията, които трябва да проследим. Интересуват ни:



  • Име на преподавателя

  • Име на студента;

  • Наименование на предмета;

  • Брой часове на предмета;

  • Оценка на студента по предмета;

  • Позиция на преподавателя.

Повечето от тези атрибути очевидно се свързват с някой от първичните обекти, но има едно изключение: оценката на студента по даден предмет. Този атрибут касае два обекта – Студенти (Students) и Предмети (Classes). Той ще бъде атрибут на релацията “посещава” (attends).

Диаграмата на фиг. 13-1 представя ER модела.



От схемата се вижда, че обектът:



  • Students има атрибут student_name, който представлява името на студента;

  • Teachers има атрибути: teacher_name – име на преподавателя; position – позиция на преподавателя;

  • Classes има атрибути: class_name – име на предмета; horarium – брой часове;

Вижда се също, че релацията Student_Classes има атрибут score, който представлява оценката на студента по предмета.

Съществува пряк алгоритъм за генериране на схемата на една база данни от ER диаграма. Този алгоритъм позволява на някои програмни средства (PowerDesigner, erWin) да генерират автоматично подобни схеми. Но добре е да се тества този процес внимателно, защото може да се наложат някои корекции с оглед на получавания резултат.

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

Дадена релация 1:n се реализира чрез прибавяне на външен ключ към таблицата за обекта от страната n, сочещ към първичния ключ на таблицата от страната 1.

За една релация m:n се създава таблица, независима от всеки един от обектите, участващи в релацията. Причината се състои в това, че всеки един обект може да участва в релацията няколко пъти. Следователно нито един от двата обекта не може да функционира като първичен ключ, докато комбинацията от двата трябва да бъде уникална. Например, тъй като всеки студент може да се запише за повече от един предмет, то трябва да направим множество записи за всеки един студент, за да регистрираме този факт, а в рамките на таблицата Students това е неприемливо. Същата е ситуацията с таблицата за предметите Classes, които могат да бъдат посещавани от много студенти.

Генерирана по описания алгоритъм, схемата на базата данни би изглеждала както е показано на фигура 13-2. На тази схема е съществено да отбележим цикличната релация, преминала във външен ключ за таблицата Teachers към самата себе си. Смисълът й беше, че всеки асистент има доцент или професор, който го контролира. Съществено е да се отбележи, че чрез циклични релации, респективно външен ключ към същата таблица, могат да съхранявани дървовидни структури в една таблица.





Каталог: sites -> default -> files
files -> Образец №3 справка-декларация
files -> Р е п у б л и к а б ъ л г а р и я
files -> Отчет за разкопките на праисторическото селище в района на вуз до Стара Загора. Аор през 1981 г. ХХVІІ нац конф по археология в Михайловград, 1982
files -> Медии и преход възникване и развитие на централните всекидневници в българия след 1989 година
files -> Окръжен съд – смолян помагало на съдебния заседател
files -> Семинар на тема „Техники за управление на делата" 18 19 юни 2010 г. Хисар, Хотел „Аугуста спа" Приложение
files -> Чинция Бруно Елица Ненчева Директор Изпълнителен директор иче софия бкдмп приложения: програма
files -> 1. По пътя към паметник „1300 години България


Сподели с приятели:
1   ...   6   7   8   9   10   11   12   13   14




©obuch.info 2024
отнасят до администрацията

    Начална страница