Відмінності між версіями «База даних»

Матеріал з Wiki Script Solutions
Перейти до: навігація, пошук
 
(не показано 19 проміжних версій цього учасника)
Рядок 1: Рядок 1:
'''База даних''' (скорочено — БД) - центральна частина програмного комплексу Капітал, в якій і зберігаються та оброблюються всі дані.
+
'''База даних''' (скорочено — БД) - центральна частина програмного комплексу Капітал, в якій і зберігаються та оброблюються всі дані. Написана на СУБД з відкритим кодом [//uk.wikipedia.org/wiki/Firebird Firebird]. На даний час використовується версія 2.5 цієї СУБД.
 
+
__TOC__
==Характеристика==
+
{| class="wikitable"
+
|-
+
! Характеристика !! Значення
+
|-
+
| СУБД || Firebird
+
|-
+
| Приклад || Приклад
+
|-
+
| Приклад || Приклад
+
|}
+
 
==Структура==
 
==Структура==
==Вимоги до оформлення об'єктів БД==
+
Всі таблиці БД можна розділити на статичні і динамічні. До динамічних відносяться ті, що наповнюються під час роботи магазину, вони містять дані про клієнтів, документи та товари. Статичні дані не міняються при роботі, наприклад: перелік типів документів, перелік грошових знаків, налаштування програми.
 +
 
 +
==Оформлення об'єктів==
 
''<small>На даний момент даний список вимог є орієнтовним та неповним, і потребує уточнень та доповнень</small>''
 
''<small>На даний момент даний список вимог є орієнтовним та неповним, і потребує уточнень та доповнень</small>''
  
'''1. Вимоги до оформлення таблиць'''
+
'''Вимоги до назви таблиці.''' Назва таблиці повинна задовільняти такій формі:
 
+
* Вимоги до назви таблиці
+
Назва таблиці повинна задовільняти такій формі:
+
  
 
  [префікс]_[TYPE_][назва_об'єкту_що_зберігається_англійською_мовою]S
 
  [префікс]_[TYPE_][назва_об'єкту_що_зберігається_англійською_мовою]S
  
Для звичайних таблиць [префікс] - це велика англійська літера «Т», для таблиць, у яких зберігаються статичні дані - «TS».
+
Для звичайних таблиць <code>[префікс]</code> - це велика англійська літера «Т», для таблиць, у яких зберігаються статичні дані - «TS».<br />
Слово [TYPE_] не є обов'язковим, і вказує на те, що в даній таблиці зберігається перелік типів (видів) якогось об'єкта.
+
Слово <code>[TYPE_]</code> не є обов'язковим, і вказує на те, що в даній таблиці зберігається перелік типів (видів) якогось об'єкта.<br />
[назва_об'єкту_що_зберігається_англійською_мовою] — назва в називному відмінку та однинні обєктів, що зберігаються англійською мовою. Якщо немає слова — відповідника, то пишеться сполучення англійських слів через нижнє підкреслення. У випадку, коли сполучення слів є надто довгим, допускаються скорочення, але тоді даного скорочення необхідно дотримуватись по всій базі даних.
+
<code>[назва_об'єкту_що_зберігається_англійською_мовою]</code> — назва в називному відмінку та однині об'єктів, що зберігаються англійською мовою. Якщо немає слова — відповідника, то пишеться сполучення англійських слів через нижнє підкреслення. У випадку, коли сполучення слів є надто довгим, допускаються скорочення, але тоді даного скорочення необхідно дотримуватись по всій базі даних.
В кінці назви таблиці (або в деяких випадках після слова-іменника в назві об'єкта англійською мовою) ставиться літера «S», яка вказує на те, що в даній таблиці зберігається множина об'єктів.
+
 
Приклади:
+
В кінці назви таблиці (або в деяких випадках після слова-іменника в назві об'єкта англійською мовою) ставиться літера «S», яка вказує на те, що в даній таблиці зберігається множина об'єктів.
 Нехай ми маємо таблицю, у якій зберігаються товари. Оскільки товар англійськоє буде nomen, то наша таблиця матиме назву T_NOMENS.
+
 Таблиця, що містить перелік типів документів: TS_TYPE_DOCUMENTS
+
 Таблиця, що містить налаштування: TS_CONFIGS
+
 Таблиця, що містить товари для синхронізації: T_NOMENS_SYNC. (В даному випадку, всі таблиці з об'єктами створеними для синхронізації матимуть закінчення _SYNC). У випадку, коли ми назвемо таблицю T_SYNC_NOMENS,  всі таблиці з об'єктами створеними для синхронізації матимуть префікс SYNC_. Ці два підходи є рівноправними, і застосовуються за смаком розробника.
+
  
1.2. Вимоги до опису таблиці
+
''Приклади:''<br />
Кожна таблиця повинна бути описана у відновідному полі метаданих відповідної СУБД. У випадку з Firebird/InterBase то в IBExpert-i є відповідна закладка для внесення опису таблиці.
+
  
1.3. Вимоги до назв полів
+
* Нехай ми маємо таблицю, у якій зберігаються товари. Оскільки товар англійською буде nomen, то наша таблиця матиме назву <code>T_NOMENS</code>.
Назва поля, повинна максимально точно відображати дані, які мають зберігатись у даному полі. При можливості, назва не повинна бути надто довгою.
+
* Таблиця, що містить перелік типів документів: TS_TYPE_DOCUMENTS
 +
* Таблиця, що містить налаштування: TS_CONFIGS
 +
* Таблиця, що містить товари для синхронізації: T_NOMENS_SYNC. (В даному випадку, всі таблиці з об'єктами створеними для синхронізації матимуть закінчення _SYNC). У випадку, коли ми назвемо таблицю T_SYNC_NOMENS,  всі таблиці з об'єктами створеними для синхронізації матимуть префікс SYNC_. Ці два підходи є рівноправними, і застосовуються за смаком розробника.
  
1.4. Вимоги до опису полів
+
'''Вимоги до опису таблиці.''' Кожна таблиця повинна бути описана у відповідному полі метаданих відповідної СУБД. У випадку з Firebird/InterBase то в IBExpert-i є відповідна закладка для внесення опису таблиці.
Кожне поле (крім таких, призначення яких тривіально визначається із назви: наприклад ID, NAME) повинна бути описана у відновідному полі метаданих відповідної СУБД. У випадку з Firebird/InterBase то в IBExpert-i на вкладці полів БД є спеціальне поле для внесення опису поля.
+
  
1.5. Виммоги до типів даних, які повинні використовуватись
+
'''Вимоги до назв полів.''' Назва поля, повинна максимально точно відображати дані, які мають зберігатись у даному полі. При можливості, назва не повинна бути надто довгою.
Для рядкового типу даних повинно використовуватись тип VARCHAR(N), оскільки він займає набагато менше трафіку при пересиланні даних із БД до користувача.
+
  
2. Вимоги до оформлення процедур
+
'''Вимоги до опису полів.''' Кожне поле (крім таких, призначення яких тривіально визначається із назви: наприклад ID, NAME) повинна бути описана у відновідному полі метаданих відповідної СУБД. У випадку з Firebird/InterBase то в IBExpert-i на вкладці полів БД є спеціальне поле для внесення опису поля.
2.1. Вимоги до назви процедури
+
В загальному випадку назва процедури повинна задовільняти такій формі:
+
  
P[префікс]_[назва_таблиці_без_префіксів_та_закінчень][S]_[закінчення][_n][_Vn]
+
'''Вимоги до типів даних, які повинні використовуватись.''' Для рядкового типу даних повинно використовуватись тип VARCHAR(N), оскільки він займає набагато менше трафіку при пересиланні даних із БД до користувача.
  
[префікс] — 1,2-і літери, що вказують на назву модуля(програми), для якого написана дана процедура. Так процедури, що створені для роботи з даними у формі дерева, при назві відповідного модуля(програми, підпроекта) TREE матимуть префікс PT_
+
'''Вимоги до назви процедури.''' В загальному випадку назва процедури повинна задовільняти такій формі:
  
[назва_таблиці_без_префіксів_та_закінчень] — назва в однинні основної таблиці, з даними якої мають відбуватись маніпуляції
+
P[префікс]_[назва_таблиці_без_префіксів_та_закінчень][S]_[закінчення][_n][_Vn]
  
[S] — не обов'язкове закінчення, яке вказує, на те, що дана процедура працює з одним, або кількома(багатьма) записами таблиці
+
<code>[префікс]</code> — 1,2-і літери, що вказують на назву модуля (програми), для якого написана дана процедура. Так процедури, що створені для роботи з даними у формі дерева, при назві відповідного модуля (програми, підпроекту) TREE матимуть префікс «PT_». <br />
 +
<code>[назва_таблиці_без_префіксів_та_закінчень]</code> — назва в однині основної таблиці, з даними якої мають відбуватись маніпуляції.<br /><code>[S]</code> — не обов'язкове закінчення, яке вказує, на те, що дана процедура працює з одним, або кількома(багатьма) записами таблиці.<br />
 +
<code>[закінчення]</code> — може мати наступний вигляд:
 +
* VIEW — вказує, на те, що дана процедура призначена для відображення даних таблиці, у прийнятному для користувача вигляді.
 +
* INS — вказує на те, що процедура призначена для вставки записів/запису у таблицю.
 +
* UPD — вказує на те, що процедура призначена для оновлення записів/запису у таблицю.
 +
* INS_OR_UPD — процедура спеціального виду, що оновлює елемент з певним  ID, а коли такого елемента не існує, то вставляє його.
  
[закінчення] — може мати слідуючий вигляд:
+
<code>[_n]</code> необов'язкове закінчення, що показує номер, однотипної процедури.<br />
VIEW — вказує, на те, що дана процедура призначена для відображення даних таблиці, у прийнятному для користувача вигляді
+
<code>[_Vn]</code> необов'язкове закінчення, що вказує на версію процедури (n - номер версії)<br />
INS вказує на те, що процедура призначена для вставки записів/запису у таблицю
+
UPD — вказує на те, що процедура призначена оновлення записів/запису у таблицю
+
INS_OR_UPD — процедура спеціального виду, що оновлює елемент з певним  ІД, а коли такого елемента не існує, то вставляє його
+
  
[_n] — необов'язкове закінчення, що показує номер, однотипної процедури
+
''Приклад:''<br />
 +
Нехай ми працюємо з таблицею T_ITEMS і створюємо процедури для роботи модуля TREE, тоді:
 +
* PT_ITEM_VIEW — процедура, для перегляду даних одного елемента<br />
 +
* PT_ITEMS_VIEW_0 — процедура, для перегляду багатьох даних таблиці  (закінчення «_0» не є обов'язковим)<br />
 +
* PT_ITEMS_VIEW_1 - процедура, для перегляду багатьох даних таблиці із іншими вхідними параметрами, що PT_ITEMS_VIEW_0 (закінчення «_1» є обов'язковим)<br />
 +
* PT_ITEM_INS — процедура, для вставки 1-го запису в таблицю<br />
 +
* PT_ITEM_UPD — процедура, для оновлення 1-го запису таблиці<br />
  
[_Vn] — необов'язкове закінчення, що вказує на версію процедури (n - номер версії)
+
'''Вимоги до параметрів процедури.''' Параметр процедури повинен мати такий же тип даних, як і відповідне поле таблиці бази даних, оскільки при перетворенні можуть втрачатись (псуватись) дані, що може призвести до помилки, яка важко виявляється.
Приклад: Нехай ми працюємо з таблицею T_ITEMS і створюємо процедури для роботи модуля TREE, тоді:
+
Назва параметра повинна бути такою ж, як і назва відповідного поля БД, з добавлянням префікса:
 PT_ITEM_VIEW — процедура, для перегляду даних одного елемента
+
* «і» - для вхідних параметрів<br />
 PT_ITEMS_VIEW_0 — процедура, для перегляду багатьох даних таблиці  (закінчення «_0» не є обов'язковим)
+
* «о» - для вихідних параметрів<br />
 PT_ITEMS_VIEW_1 - процедура, для перегляду багатьох даних таблиці із іншими вхідними параметрами, що PT_ITEMS_VIEW_0 (закінчення «_1» є обов'язковим)
+
* «р» - для тимчасових параметрів<br />
 PT_ITEM_INS — процедура, для вставки 1-го записа в таблицю
+
 PT_ITEM_UPD — процедура, для оновлення 1-го запису таблиці
+
  
2.2. Вимоги до параметрів процедури
+
2.3. Вимоги до оформлення тексту процедури<br />
Параметер процедури повинен мати такий же тип даних, як і відповідне поле таблиці бази даних, оскільки при перетворенні можуть втрачатись (псуватись) дані, що може призвести до помилки, яка важко виявляється.
+
Текст процедури повинен бути максимально зручним для читання, та задовільняти загальним вимогам до написання вихідного тексту (див відповідний документ).
Назва параметра повинна бути такою ж, як і назва відповідного поля БД, з добавленням префікса:
+
 «і» - для вхідних параметрів
+
 «о» - для вихідних параметрів
+
 «р» - для тимчасових параметрів
+
  
2.3. Вимоги до оформлення тексту процедури
+
[[Категорія:Капітал]] [[Категорія:Firebird]]
Текст процедури повинен бути максимально зручним для читання, та задовільняти загаліним вимогам до написання вихідного тексту (див відповідний документ).
+
[[Категорія:Капітал]]
+

Поточна версія на 11:34, 23 жовтня 2015

База даних (скорочено — БД) - центральна частина програмного комплексу Капітал, в якій і зберігаються та оброблюються всі дані. Написана на СУБД з відкритим кодом Firebird. На даний час використовується версія 2.5 цієї СУБД.

Структура

Всі таблиці БД можна розділити на статичні і динамічні. До динамічних відносяться ті, що наповнюються під час роботи магазину, вони містять дані про клієнтів, документи та товари. Статичні дані не міняються при роботі, наприклад: перелік типів документів, перелік грошових знаків, налаштування програми.

Оформлення об'єктів

На даний момент даний список вимог є орієнтовним та неповним, і потребує уточнень та доповнень

Вимоги до назви таблиці. Назва таблиці повинна задовільняти такій формі:

[префікс]_[TYPE_][назва_об'єкту_що_зберігається_англійською_мовою]S

Для звичайних таблиць [префікс] - це велика англійська літера «Т», для таблиць, у яких зберігаються статичні дані - «TS».
Слово [TYPE_] не є обов'язковим, і вказує на те, що в даній таблиці зберігається перелік типів (видів) якогось об'єкта.
[назва_об'єкту_що_зберігається_англійською_мовою] — назва в називному відмінку та однині об'єктів, що зберігаються англійською мовою. Якщо немає слова — відповідника, то пишеться сполучення англійських слів через нижнє підкреслення. У випадку, коли сполучення слів є надто довгим, допускаються скорочення, але тоді даного скорочення необхідно дотримуватись по всій базі даних.

В кінці назви таблиці (або в деяких випадках після слова-іменника в назві об'єкта англійською мовою) ставиться літера «S», яка вказує на те, що в даній таблиці зберігається множина об'єктів.

Приклади:

  • Нехай ми маємо таблицю, у якій зберігаються товари. Оскільки товар англійською буде nomen, то наша таблиця матиме назву T_NOMENS.
  • Таблиця, що містить перелік типів документів: TS_TYPE_DOCUMENTS
  • Таблиця, що містить налаштування: TS_CONFIGS
  • Таблиця, що містить товари для синхронізації: T_NOMENS_SYNC. (В даному випадку, всі таблиці з об'єктами створеними для синхронізації матимуть закінчення _SYNC). У випадку, коли ми назвемо таблицю T_SYNC_NOMENS, всі таблиці з об'єктами створеними для синхронізації матимуть префікс SYNC_. Ці два підходи є рівноправними, і застосовуються за смаком розробника.

Вимоги до опису таблиці. Кожна таблиця повинна бути описана у відповідному полі метаданих відповідної СУБД. У випадку з Firebird/InterBase то в IBExpert-i є відповідна закладка для внесення опису таблиці.

Вимоги до назв полів. Назва поля, повинна максимально точно відображати дані, які мають зберігатись у даному полі. При можливості, назва не повинна бути надто довгою.

Вимоги до опису полів. Кожне поле (крім таких, призначення яких тривіально визначається із назви: наприклад ID, NAME) повинна бути описана у відновідному полі метаданих відповідної СУБД. У випадку з Firebird/InterBase то в IBExpert-i на вкладці полів БД є спеціальне поле для внесення опису поля.

Вимоги до типів даних, які повинні використовуватись. Для рядкового типу даних повинно використовуватись тип VARCHAR(N), оскільки він займає набагато менше трафіку при пересиланні даних із БД до користувача.

Вимоги до назви процедури. В загальному випадку назва процедури повинна задовільняти такій формі:

P[префікс]_[назва_таблиці_без_префіксів_та_закінчень][S]_[закінчення][_n][_Vn]

[префікс] — 1,2-і літери, що вказують на назву модуля (програми), для якого написана дана процедура. Так процедури, що створені для роботи з даними у формі дерева, при назві відповідного модуля (програми, підпроекту) TREE матимуть префікс «PT_».
[назва_таблиці_без_префіксів_та_закінчень] — назва в однині основної таблиці, з даними якої мають відбуватись маніпуляції.
[S] — не обов'язкове закінчення, яке вказує, на те, що дана процедура працює з одним, або кількома(багатьма) записами таблиці.
[закінчення] — може мати наступний вигляд:

  • VIEW — вказує, на те, що дана процедура призначена для відображення даних таблиці, у прийнятному для користувача вигляді.
  • INS — вказує на те, що процедура призначена для вставки записів/запису у таблицю.
  • UPD — вказує на те, що процедура призначена для оновлення записів/запису у таблицю.
  • INS_OR_UPD — процедура спеціального виду, що оновлює елемент з певним ID, а коли такого елемента не існує, то вставляє його.

[_n] — необов'язкове закінчення, що показує номер, однотипної процедури.
[_Vn] — необов'язкове закінчення, що вказує на версію процедури (n - номер версії)

Приклад:
Нехай ми працюємо з таблицею T_ITEMS і створюємо процедури для роботи модуля TREE, тоді:

  • PT_ITEM_VIEW — процедура, для перегляду даних одного елемента
  • PT_ITEMS_VIEW_0 — процедура, для перегляду багатьох даних таблиці (закінчення «_0» не є обов'язковим)
  • PT_ITEMS_VIEW_1 - процедура, для перегляду багатьох даних таблиці із іншими вхідними параметрами, що PT_ITEMS_VIEW_0 (закінчення «_1» є обов'язковим)
  • PT_ITEM_INS — процедура, для вставки 1-го запису в таблицю
  • PT_ITEM_UPD — процедура, для оновлення 1-го запису таблиці

Вимоги до параметрів процедури. Параметр процедури повинен мати такий же тип даних, як і відповідне поле таблиці бази даних, оскільки при перетворенні можуть втрачатись (псуватись) дані, що може призвести до помилки, яка важко виявляється. Назва параметра повинна бути такою ж, як і назва відповідного поля БД, з добавлянням префікса:

  • «і» - для вхідних параметрів
  • «о» - для вихідних параметрів
  • «р» - для тимчасових параметрів

2.3. Вимоги до оформлення тексту процедури
Текст процедури повинен бути максимально зручним для читання, та задовільняти загальним вимогам до написання вихідного тексту (див відповідний документ).