Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Реалізація високоуровнего інтерфейсу навколо бази даних Berclee DB

Реферат Реалізація високоуровнего інтерфейсу навколо бази даних Berclee DB





иконується першим.

Секція правил містить граматичні правила :

Кожне правило складається з ліворуч лежачого символу (нетермінального), розділеного ':' і одним або декількома можливими правилами, розділеними '|' і завершеними ';':

exp: exp '+' exp

| exp '-' exp

;

Правило праворуч може бути порожнім

input: # empty

| input line

;

Для завдання явного пріоритету у разі неоднозначності слід використовувати директиву % prec , що дає правилу високий пріоритет.

exp: '-' exp% prec NEG {- $ _ [1]}

| exp '+' exp {$ _ [1] + $ _ [3]}

| NUM

;

Примітно, що YAPP дозволяє вбудовувати в синтаксичний аналізатор семантику. Це організується шляхом додавання в кінці правила конструкцій {...}, що обмежують Perl-команди. Вони вбудовуються в синтаксичний аналізатор і виконуються після застосування аналізатором цього правила. Такий код може повертати деяку величину, використовувану у визначенні наступного правила по дереву. p> Змінні $ _ [1], $ _ [n] є параметрами і зберігають значення розібраного правила. p> < code> Нижня секція може містити коректний Perl -код, що вбудовується в кінці сформованого синтаксичного аналізатора. Там можна вказати Лексер, процедуру аналізу помилок.

5.Структура розроблюваної програми


Ідеологія оболонки полягає в тому, що користувач майбутньої бази даних спочатку описує на спеціальній мові структури даних, з яких повинні складатися таблиці в базі (тобто фактично інтерфейси) їх посилальні зв'язку, індекси тощо Потім за допомогою спеціального транслятора він отримує готовий С + + код, який реалізує інтерфейс роботи з базою даних, визначений користувачем, включаючи саму базу, її таблиці, запису даних, транзакції і деякі інші об'єкти. Код, генерований транслятором, насправді, є теж оболонкою. Справа в тому, що багато частин транслятора мають під собою загальну підставу. Ці статичні класи та функції можна виділити в бібліотеку. Ще одна причина для цього - семантика самого транслятора повинна бути якомога простіше. І як наслідок цього, скорочуються розміри генеруються файлів.

Отриманий програмний код залишається тільки включити в проект і використовувати вже готові об'єкти бази даних і таблиць.

Нова база даних повинна розташовувати такими можливостями:

В· Додавання користувача даних їх модифікація і видалення.

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

В· Імпорту даних, тобто, представлення даних в деякому текстовому форматі, і їх переміщення в порожню базу даних

В· Експорту даних, тобто, переміщення даних з бази, і подання їх у певному текстовому форматі у файлі, зручному для читання. Є взаємно зворотного операцією попередньої.

В· Перевірки індексного цілісності. Справа в тому, що іноді, внаслідок різних зовнішніх факторів (наприклад, перепад напруги), втрачається актуальність і коректність даних в індексних таблицях, і їх необхідно періодично перевіряти і в разі необхідності відновлювати.

В· Перевірки посилальної цілісності. Тобто перевірка коректності логічних залежностей між таблицями в базі.

Отже, вся оболонка складається з наступних частин:

1. Власне, базова бібліотека статичних класів, для високоуровневой роботи з Berkeley, необхідна транслятору.

2. Транслятор, який, також є генерується оболонкою під типи даних користувача навколо бібліотеки.

Бібліотека класів

В«ДвижокВ» представляє собою бібліотеку класів, які з одного боку є надбудовами навколо стандартних відповідних структур, а з іншого боку роблять їх інтерфейс більш зручним і інкапсулюють частину роботи транслятора. Основними компонентами є:

В· Транзакції

В· Винятки

В· Базові запису

В· Таблиці

В· Бази даних

В· Курсори

Базові запису

Базова запис - це елементарна одиниця зберігання в таблиці. Опис її класу:

//! базовий клас для записів з vtable pointer

class hbObj {

Dbt dbt;

protected:

void dbtInit (uint s, void * d)

{

dbt.set_flags (DB_DBT_USERMEM);

dbt.set_ulen (s);

dbt.set_size (s);

dbt.set_data (d);

}

public:

operator Dbt * () {return &dbt;}

void * getData (void) {Return dbt.get_data ();};

uint getSize (void) {Return dbt.get_size ();};


hbObj () {} p> virtual ~ hbObj () {} p>};

Цей розділ не зовсім зручний для безпо...


Назад | сторінка 5 з 14 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка алгоритму роботи синтаксичного аналізатора тексту, а також бази да ...
  • Реферат на тему: Розробка бази даних для зберігання інформації даних характеристик товару
  • Реферат на тему: Створення бази даних критичних властивостей речовин в редакторі баз даних M ...
  • Реферат на тему: Розробка бази даних засобами системи управління базами даних MS Access
  • Реферат на тему: Просопографіческіх бази даних Росії на прикладі баз даних Comandarm і Duma1 ...