Методология за APIS

© Христо Тужаров,  2008

 

ПРОЕКТИРАНЕ НА БАЗАТА ДАННИ

 

[Home] [Съдържание] [За проекта] [Бизнес консултации] [Асеневци]

ПРОЕКТИРАНЕ НА БАЗАТА ДАННИ

СЪЗДАВАНЕ НА ПРОТОТИП

СТРАТЕГИЯ НА РЕАЛИЗАЦИЯ

ПРОЕКТИРАНЕ НА ПРОТОТИПА

РЕАЛИЗАЦИЯ НА ПРОГРАМНО ПРИЛОЖЕНИЕ

ТЕСТВАНЕ НА ПРИЛОЖЕНИЕТО

СПЕЦИФИКАЦИЯ НА ПРОТОТИПА

ВНЕДРЯВАНЕ НА ПРОТОТИПА

 

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

 

От това доколко правилно са подбрани обектите, техните атрибути и връзките помежду им зависи бързодействието, функционалността и възможностите за развитие на информационната система.

 

Правилно изградения и добре обмислен модел на данните ще ви подпомага във всички фази на разработката на приложението и ще ви спести много усилия.

 

Терминология на базите данни

 

Сравнителен анализ на техниките за описване на данните и начините за съхраняването им

 

Описание на данните

QBE и

SQL

Обектно- ориентиран подход

Access

xBase

Paradox

Нееднороден универсум

База данни

Клас -базов обект

Файл

Много файлове

Еднороден универсум

Таблица

Клас - обект

Таблица

Файл за данни

Елемент (обект , екземпляр)

Ред

Обект данни

Запис

Запис

Атрибут

Клетка

Свойство на обекта

Поле

Поле

Тип данни за атрибута

Тип на данните

Тип на данните

Тип на данните за полето

Тип на полето

Иденти-фикатор

Първичен ключ

Значение на свойството

Ключ, индекс

Индексен файл

 

Принципи за проектиране на бази данни   

 

Принцип

Пояснение

Ефективно структу­риране на  инфор­мацията.

Изключване на повтарящите се данни.

Създаване на разпределени бази данни чрез използване на няколко  сървъра, свързани в локална или глобална мрежа, така че за потребителя да представляват единно цяло.

Осигуряване на бърз достъп до базата данни.

Скоростта на работа зависи от СУБД, структурата на приложенията, възможностите на компютрите на сървъра и клиента, както и от характеристиките на мрежата.

Осигуряване на възможност за разши­рение на базата с нови данни.

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

Осигуряване на цялостност на данните.

Базите данни трябва да съдържат само проверена инфор­мация. Осъществява се с помощта на набор от правила, при нарушаването на които се появява съобщение за грешка.

Предотвратяване на несанкциониран достъп.

Използват се средства за идентификация на потребителя—пароли, цифров подпис и др.

Предоставяне на ограничен достъп.  

Контролира се правото за достъп до информацията, като и правото за промени в данните.

Облекчено създаване на приложения.

От възможностите на СУБД зависи скоростта, с която се създават нови приложения или се модифицират  старите приложения.

 

Блок-схема на дейностите

 

 

 

Определяне предназначението и обхвата на БД.

 

Това ще ви послужи за определяне на фактите, които трябва да се съхраняват в базата. Работете заедно с потребителя по определяне подходящия обхват на БД.

 

Помнете, че в случая трябва да мислите в една по-далечна перспектива, а не да изхождате от изискванията на момента. Проектираната от вас база данни трябва да дава възможност за реализацията на разнообразни приложения.

 

Определяне на таблиците

След като сте наясно с предназначението и обхвата на БД, определете отделните типове обекти, за които  е необходимо да се обработва информация.

 

По време на етапа на “изследване на системата” бяха определени основните и подчинените им обекти, както и обектите за справка.

 

На етап “анализ на процесите” определихте обектите процеси и обектите връзки.

 

Всеки един от тези обекти е кандидат за отделна таблица в базата данни. Необходимо е да поставите тези таблици на съответстващите им нива в обектния модел на данните, като спазвате следните правила:

  • На ниво “обекти връзки “ поставете всички таблици, които реализират отношение N: M между две други таблици.

  • На ниво “обекти процеси” поставете само таблиците, съдържащи данни за даден процес.

  • На ниво “основни обекти” поставете таблиците, съответстващи на основните типове обекти и таблиците, съответстващи на подчинените типове обекти. Последните таблици  са дъщерни на основните и са предназначени за съхранение на подробни данни за основните типове обекти.

  • На ниво “справочни обекти” поставете таблиците, които съдържат справочна, повтаряща се и относително постоянна информация за обектите от по високите нива.

  Пример:Концептуален модел “Изпит на студенти“

 

Пример: Концептуален  модел”Заемане на книги от библиотека

Определяне на ключовите полета

Силата на системите за управление на релационни бази данни се състои в способността им да извличат информация от различни таблици. За да може това да става по най-ефективен начин, отделните таблици трябва да имат едно или няколко полета, които уникално да определят всеки запис.

 

В терминологията на базите данни това се нарича първичен ключ за таблицата. При избор на първичен ключ трябва да се имат предвид следните особености:

  • Не се допуска първичният ключ на таблиците да съдържа празни или дублирани стойности.

  • Ключът често служи за търсене на записи, така че не трябва да бъ­де твърде дълъг. Това ще затрудни неговото записване или запом­няне.

  • Размерът на първичния ключ има пряко отражение върху скоростта на работа на БД. Когато се определя поле за първичен ключ, използвайте характеристиките му, за да ограничите неговия размер.

  • Цифрите са за предпочитане пред символите при избор на първичен ключ.

Пример: Ключови полета на таблиците, участващи в процеса “Заемане на книги в библиотека”

 

Таблица

Първичен ключ

Съставен ключ

Външен ключ

Заемане на книги

 

№заемане

№книга

№заемане

№книга

Автори на книги

 

№автор

№книга

№автор

№книга

Заемане

№заемане

 

№читател

Книга

№книга

 

№издателство

№език

№формат

№година

Книга-резюме

№книга

 

 

УДК

№книга

 

№отдел

№подотдел

. . . . . . . . .

Читател осн. данни

№читател

 

№нас.място

Читател подр.данни

№читател

 

№професия

№сем.статус

№соц.статус

Автори

№автор

 

№държава

Издателство

№издателство

 

№тип фирма

№нас.място

Населено място

№нас. място

 

 

 

Предлагаме ви няколко практически съвета при определяне на полетата:

  • Всяко поле да бъде свързано директно с обекта, за който е пред­наз­на­чена таблицата. Поле, което описва друг обект, очевидно принад­лежи към друга таблица. Ако установите, че ви се налага да записвате една и съща информация в различни таблици, това показва, че имате ненужни полета в някои от таблиците.

  • Не включвайте производни или изчисляеми полета.

  • Включвайте цялата информация, от която се нуждаете в структурата на таблицата

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

При определяне типа на данните за всяко от избраните полета е необходимо да сте добре запознати с поддържаните типове данни от използваната за разработка програмна среда. В таблицата по-долу са показани типовете данни, поддържани от Access.

 

Тип данни

Пояснение

Text

Букви, символи, числа

Стандартна дължина от 50 символа.

Може да бъде променена до 255символа.

Memo

Буви, символи, числа

Максимум 64000 знака.

Няма стандартна дължина.

Не е възможно сортиране.

Number Числа

Field Properies / Field Size:

Byte - цели числа от 0 до 255

Integer -цели числа от - 32768 до +32767

Long Integer - цели числа от -2147483648 до 2147483647

Single - дробни числа с точност  0до 6 знака

Double- дробни числа с точност до 10 знака

Date/Time

Дата и време

Field Properies / Format:

General Date - от Windows

Long Date - 1.April.2000

Medium Date - 1.Apr.2000

Sort Date - 1.4.2000

Long Time -20:34:25,  Medium Time 08.34 PM

Currency

Стойност в пари

Числа с точност до 15 знака.Знакът за вид валута се записва автоматично според установения за Windows.

 Auto Number

Числа

Записва се автоматично , като след всеки запис се увеличава с единица.

Yes/No

Да/Не

В това поле могат да се въвеждат само Yes или No

 

Примери:

 

Таблица”Заемане на книги”

№заемане

№книга

Number/ Integer

Number/ Long Integer

 

Таблица”Заемане”

№заемане

№читател

Дата на заемане

Дата на връщане

Auto Number

Number/ Integer

Date/Time

Sort Date

Date/Time

Sort Date

 

Таблица”Читател ОД -основни данни”

№читател

ЕГН

Име

№нас. място

Auto Number

Text /до 10 с

Text /до 40 с

Number/ Integer

 

Таблица”Читател ОД -подробни данни”

№читател

Улица№

Телефон

№професия

№соц. статус

Number/ Integer

Text /до 50 с

Text /до 10 с

Number/ Byte

Number/ Byte

 

Таблица”Книга”

№книга

ISBN

Име

№изда-

телство

Език

Формат

Auto Number

Text /

до 15с

Text /

до 50 с

Number/ Byte

Number/ Byte

Number/ Byte

 

Таблица”Резюме на книга”

№книга

Резюме

Number/ Long Integer

Memo

 

Таблица”Професия на читателя”

№професия

Професия

Number/ Byte

Text /до 15с

 

Създаване на индекси

Индексите могат да ускорят бързодействието при извличане на данни 1000%.

 

Когато се очаква често търсене по някое от полетата, за него може да се създаде индекс. Това ускорява търсенето на записи по стойностите на това поле, но може да доведе до забавяне на въвеждането и ре­дактирането на данни, защото СУБД извършва и актуализиране на съответния индекс.

 

Таблицата е индексирана автоматично по първичния ключ, а за останалите полета може да се приложи индексиране ако са налице следните условия:

  • Типът на полето е числов, символен или за дата/време.

  • Очаква се търсене по определена стойност в полето или сортировка по него.

  • Очаква се съхраняване на много различни стойности в полето. Ако има повторение на много от стойностите в полето, това не води до ускоряване на търсенето.

  • Наличие на връзка между две таблици.

Определяне на отношенията

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

 

Всяка таблица от по-ниско ниво се свързва с тази от по-високо в отношение 1:N.

 

Прецизиране на проекта

Анализирайте проекта за грешки. Добавете примерни данни в основните таблици и проверете дали могат  да се получат необходимите резултати.

 

Създайте прототип на БД като включите  и някои форми и отчети. Експериментирайте, без да се опасявате, че могат да се наложат корекции. Със съвременните БД измененията в проекта са сравнително лесни. 

 

  Все пак трябва да се има предвид, че когато се въведат реални данни и се построят формите и отчетите, промените стават все по-трудоемки. По тази причина трябва да се уве­рите, че проектът ви е стъпил на здрава основа, преди да продължите.,