ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Основні відомості про СУБД
         

     

    Інформатика, програмування
    Системи управління базами даних

    Введення

    Системи управління базами даних (СУБД) відіграють виняткову роль в організації сучасних промислових, інструментальних і дослідницьких інформаційних систем. Тематика СУБД воістину безмежна.

    Можна виділити наступні основні функції СУБД:

    керування даними в зовнішній пам'яті;

    управління буферами оперативної пам'яті;

    управління транзакціями;

    журналізацію та відновлення БД після збоїв;

    підтримку мов БД.

    Якщо будь-яка прикладна інформаційна система спирається на певну систему управління даними, що володіє цими функціями, то ця система керування даними є системою управління базами даних (СУБД).

    Логічно в сучасній реляційної СУБД можна виділити найбільш внутрішню частину - ядро СУБД (часто його називають Data Base Engine), компілятор мови БД (зазвичай SQL), підсистему підтримки виконавчі, набір утиліт. У деяких системах ці частини виділяються явно, в інших - ні, але логічно такий поділ можна провести у всіх СУБД.

    Ядро СУБД відповідає за управління даними у зовнішній пам'яті, управління буферами оперативної пам'яті, управління транзакціями і журналізацію. Відповідно, можна виділити такі компоненти ядра (принаймні, логічно, хоча в деяких системах ці компоненти виділяються явно), як менеджер даних, менеджер буферів, менеджер транзакцій і менеджер журналу. Як можна було зрозуміти з першої частини цієї лекції, функції цих компонентів взаємозалежні, і для забезпечення коректної роботи СУБД всі ці компоненти повинні взаємодіяти з ретельно продуманим і перевіреним протоколах. Ядро СУБД володіє власним інтерфейсом, не доступним користувачам безпосередньо і використовуються в програмах, що виробляються компілятором SQL (або в підсистемі підтримки виконання таких програм) і утилітах БД. Ядро СУБД є основною резидентної частиною СУБД. При використанні архітектури "клієнт-сервер" ядро є основною складовою серверної частини системи.

    Основною функцією компілятора мови БД є компіляція операторів мови БД в деяку виконувану програму. Основною проблемою реляційних СУБД є те, що мови цих систем (а це, як правило, SQL) є непроцедурного, тобто в операторі такої мови специфікується деяку дію над БД, але ця специфікація не є процедурою, а лише описує в деякій формі умови здійснення бажаного дії (згадаймо приклади з першої лекції). Тому компілятор повинен вирішити, яким чином виконувати оператор мови перш, ніж зробити програму. Застосовуються досить складні методи оптимізації операторів, які ми докладно розглянемо в наступних лекціях. Результатом компіляції є виконувана програма, яка надається в деяких системах в машинних кодах, але більш часто в виконуваному внутрішньому машинно-незалежній коді. В останньому випадку реальне виконання оператора здійснюється із залученням підсистеми підтримки виконавчі, що представляє собою, по суті справи, інтерпретатор цього внутрішнього мови.

    Нарешті, в окремі утиліти БД звичайно виділяють такі процедури, які занадто накладно виконувати з використанням мови БД, наприклад, завантаження і вивантаження БД, збір статистики, глобальна перевірка цілісності БД і т.д. Утиліти програмуються з використанням інтерфейсу ядра СУБД, а іноді навіть з проникненням всередину ядра.

    Постановка завдання

    Організаційно-економічна сутність задачі

    Ефективність використання електроенергії визначається енергоємністю споживачів. Одним з основних шляхів її зниження є раціоналізація режимів електроспоживання, що включає питання обліку і контролю надходження та витрати електроенергії, аналізу її використання, а також планування і прогнозування рівнів електроспоживання. Успішне вирішення зазначених питань можливе тільки при автоматизації обліку і контролю електроспоживання, яку можна провести на базі інформаційно-вимірювальних систем. Межі застосування таких систем, область розв'язуваних ними завдань, ефективність практичного використання багато в чому визначаються можливостями їх програмного забезпечення. Ці можливості повинні забезпечувати простоту та оперативність доступу до зібраної інформації, гнучкість її використання і наочність подання, а також дозволяти вирішувати основні завдання раціоналізації режимів електроспоживання. Цим вимогам відповідає розробляється програмний комплекс "Розрахунок вартості електроенергії", що включає наступні функції:

    Розрахунок вартості користування електроенергією приватних енергоспоживачів.

    Надати можливість роботи з інформацією по заданому місяця.

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

    Надати можливість роботи з інформацією про будинки (додавання, видалення, модифікація довільного номера будинку).

    Надати можливість роботи з інформацією за обраними квартирах для конкретного будинку (додавання, видалення, сортування, модифікація).

    Для кожного споживача забезпечити завдання довільного набору електроприладів, а також часу їх роботи.

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

    Забезпечити формування звітів за заданими параметрами.

    Забезпечити автоматичне оновлення і збереження змінених даних.

    Забезпечити перегляд інформації про структуру БД (вмісту її таблиць і зв'язків між ними).

    Програма повинна мати інтуїтивно зрозумілий графічний інтерфейс.

    Вхідна інформація

    Вхідний інформацією програми є база даних у форматі Sybase SQL Anywhere 5.5 (п. 2). Її структура якої була створена в Power Designer 6.1, а тригери і використовуються процедури, що зберігаються - за допомогою утиліти Sybase SQL Anywhere під назвою Sybase Central.

    Самі дані зберігаються в шести таблицях (співвідношення між ними наводяться в Додаток B).

    Постійне інформація завдання

    Постійної інформацією є:

    стандартні діалогові вікна, піктограми і повідомлення засоби розробки додатків Power Builder 7.0, що зберігаються в розповсюджується разом з програмою бібліотеках Power Builder;

    стандартні діалогові вікна та повідомлення підсистеми ODBC і драйвера СУБД Sybase SQL Anywhere.

    Вищевказані вікна та повідомлення виникають у відповідь на наступні події:

    передача некоректної інформації базі даних (порушення посилальної цілісності, типів і допустімиз значень даних);

    введення некоректних даних в поля редагування;

    виняткові системні ситуації.

    Вихідна інформація

    Вихідний інформацією завдання є:

    діаловие вікна та форми для редагування вмісту бази даних;

    повідомлення про виникнення нестандартних ситуацій, а також запити користувачеві на підтвердження виконання тих чи інших дій.

    Докладно вихідна інформація розглянута в пунктах 3.2 і 4.

    Обчислювальна система

    Sybase SQL Anywhere - це нова назва СУБД Watcom SQL фірми Watcom. Така назва дана СУБД отримала, починаючи з версії 5.0. Перейменування відбулося після об'єднання компаній Sybase і Powersoft в 1995 році, в результаті чого фірма Watcom, як складова частина компанії Powersoft, увійшла до складу корпорації Sybase Inc

    Sybase SQL Anywhere являє собою повну СУБД на Intel-платформі для мобільних і невеликих груп користувачів Дана СУБД дозволяє розробляти додатки на основі технології "клієнт-сервер" на платформах Windows NT, Windows 95/98, Windows 3.x, OS/2, NetWare, Solaris/Sparc, HP-UX, AIX, DOS і QNX. Розглянута СУБД призначена для розробки додатків за технологією "клієнт-сервер".

    СУБД SYBASE SQL Anywhere є складовим елементом системи SYBASE System 11 і її наступній версії SYBASE System 11.5 Adaptive. Основним елементом цих систем є потужна СУБД SYBASE SQL. Server. Вона дозволяє зберігати величезні обсяги інформації та обробляти запити до баз даних із застосуванням технології клієнт-сервер. СУБД SYBASE SQL. Server і SYBASE SQL Anywhere взаємно доповнюють один одного. Розробники SYBASE SQL Anywhere намагалися досягти максимальної сумісності баз даних, що створюються цієї СУБД, з базами даних SYBASE SQL Server. Саме цим пояснюється включення в SQL Anywhere деяких елементів SYBASE SQL Server.

    SYBASE SQL Anywhere може поставлятися як у мережевому варіанті СУБД, так і в автономному варіанті. В останньому випадку всі компоненти СУБД функціонують на тому ж комп'ютері, що і додаток. Для додатків не має значення, який варіант СУБД вони використовують. В рамках локальних мереж взаємодію з програмами-клієнтами здійснюється за допомогою таких мережевих протоколів як NetBIOS, TCP/IP і IPX. Бази даних, створені засобами SQL Anywhere, сумісні з наступними версіями і стерпні між платформами, на яких може функціонувати дана СУБД.

    SYBASE SQL Anywhere має вбудований інтерфейс з рядом програмних систем, наприклад таких як Powersoft PowerBuilder, Optima С + + і Power Designer. Взаємодія з іншими системами та додатками здійснюється за допомогою наступних програмних інтерфейсів:

    Специфікація ODBC . Дана специфікація надає користувачам уніфікований інтерфейс між додатками і реляційними базами даних, у тому числі і базами даних SQL. Цей інтерфейс являє собою сукупність функцій. Ці функції організують взаємодію додатків з базами даних в операційних системах Windows 3.x, Windows 95/98, OS/2 і Windows NT. Специфікація ODBC представляє собою інтерфейс нижнього рівня.

    Вбудований SQL (Embedded SQL interface) дозволяє "вбудовувати" SQL-оператори прямо в тексти програм-додатків на мовах C або C + +. Згодом такі додатки піддаються обробці спеціальним препроцесором, який замінює SQL-оператори на виклики відповідних функцій і процедур. Після цього перетворені тексти програм представляють собою тексти програм на мові програмування C або C + +.

    DDE-інтерфейс . Це технологія динамічного зв'язування об'єктів використовується в операційній системі Windows 3.x.. З її допомогою здійснюється взаємодія програм-клієнтів, яким потрібні дані, з програмами-серверами ці дані надають. Для застосування цієї технології потребує використання відповідних програмних засобів, що підтримують функціонування DDE-клієнта. З іншого боку як сервери необхідно використовувати програми, що забезпечують режим DDE-сервера. До числа останніх відносяться такі програмні додатки, як Microsoft Access, Microsoft Excel і ряд інших. У СУБД SYBASE SQL Anywhere роль DDE-сервера виконує WSQL (Watcom SQL) DDE Server.

    Високорівневі власний інтерфейс WSQL HLI (Watcom SQL High-level interface) забезпечує на "високому" рівні взаємодія між SQL Anywhere і додатками в середовищах операційних систем Windows 3.x, Windows 95/98, OS/2 і Windows NT. Цей інтерфейс реалізований для систем програмування аналогічних Visual Basic (для Windows 95/98 і Windows NT) і REXX (для OS/2).

    СУБД SYBASE SQL Anywhere має у своєму складі мережевої і автономний варіанти СУБД .. Ці варіанти реалізовані у вигляді компонентів SQL Anywhere server/client і SQL Anywhere engine. SQL Anywhere server/client представляє мережевий варіант СУБД. Він організовує взаємодією додатків з базами даних в рамках локальної обчислювальної мережі за технологією "клієнт-сервер".

    ПРИМІТКА

    Крім локальної мережі, СУБД SYBASE SQL Anywhere надає вам можливість використовувати технологію "клієнт-сервер" і в рамках мережі Internet. Для цього необхідно, щоб на комп'ютері з сервером баз даних був організований Web-сервер і до складу його програмного забезпечення входило додаток SYBASE Netlmpact Dynamo.

    Мережевий варіант включає в себе віддалений сервер і клієнтську компоненту; SQL Anywhere server і SQL Anywhere client, відповідно. Функціонування СУБД в рамках мережі полягає в наступному. На одній ЕОМ, що грає роль сервера бази даних, запускається віддалений сервер - SQL Anywhere server. Його завдання полягає в очікуванні запитів від клієнтських ЕОМ, їх обробці та відправленні результатів клієнтів. Під час роботи сервера на клієнтських ЕОМ функціонує компонента SQL Anywhere client. Вона приймає від клієнтських додатків запити .. Ці запити являють собою оператори мови SQL, наприклад, SELECT (вибрати дані), UPDATE (модифіковані дані), CALL (викликати збережену процедуру) і інші. Отримані запити компонента SQL Anywhere client відправляє по мережі серверу бази даних і очікує повернення від нього результатів цих запитів.

    Компонента SQL Anywhere engine є автономним варіантом даної СУБД і являє собою локальний сервер баз даних. Він реалізує технологію "клієнт-сервер" в умовах, коли сервер та клієнти функціонує на одній ЕОМ. База даних зберігається на цій же ЕОМ. Сервер приймає запити безпосередньо від додатків, обробляє їх і відправляє додаткам результати запитів. Наявність такого варіанту дозволяє проводити автономну налагодження додатків. Це має велике значення, тому що на етапі автономної налагодження програми знаходяться ще в "сирому" стані. Дана обставина може зіграти поганий служби при їх налагодження в мережевому варіанті СУБД, коли використовується база даних є спільним ресурсом великої кількості користувачів.

    Клієнтські додатки не розрізняють з яким варіантом СУБД вони працюють. Одні й ті самі запити виконуються для користувача абсолютно однаково за одними і тими ж правилами.

    ПРИМІТКА

    З точки зору користувача функції віддаленого (SQL Anywhere engine) і локального (SQL Anywhere server) серверів ідентичні. У зв'язку з цим у подальшому в рамках даного розділом під терміном "сервер" будемо розуміти компоненту SQL Anywhere server або SQL Anywhere engine, якщо не потрібне підкреслити їх відмінність.

    Схема взаємодії додатків з базою даних в СУБД SYBASE SQL Anywhere наведена на рис. 1.

    Рис. 1 . Взаємодія програм-клієнтів з базою даних у різних варіантах СУБД SYBASE SQL Anywhere:

    а) Автономний варіант;

    б) Мережний варіант.

    Компоненти SQL Anywhere server/client і SQL Anywhere engine складають основу СУБД. Однак поряд з ними до складу СУБД входить і ряд інших компонентів. Всі разом ці компоненти складають комплект поставки SQL Anywhere, до якого входять:

    SQL Anywhere server/client - мережевий варіант СУБД ..

    SQL Anywhere engine - автономний варіант СУБД;

    SQL Remote - компонента підтримки режиму реплікації;

    Sybase SQL Central - утиліта адміністрування баз даних;

    ISQL (Interactive SQL ) - утиліта інтерактивної взаємодії з базами даних;

    набір додаткових утиліт для створення баз даних, їх стискування, знищення і т.д.

    Наведені компоненти є елементами стандартної поставки. Окрім стандартної, що розглядається СУБД може пропонуватися у вигляді професійної поставки. Вона має ще більше число складових. Компоненти стандартної поставки будуть розглянуті далі.

    Бази даних, що створюються СУБД SYBASE SQL Anywhere, являють собою реляційні бази даних. Ці бази даних складаються із сукупності об'єктів. Такими об'єктами є:

    Таблиці даних - зберігають дані, що становлять основний зміст бази даних.

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

    Індекси - спеціальні таблиці, призначені для швидкого пошуку необхідної інформації в таблицях даних.

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

    Збережені процедури та функції - що зберігаються в базі даних підпрограми на мові SQL, скористатися які може будь-який користувач, що має на це право.

    ПРИМІТКА

    У СУБД SYBASE SQL Anywhere використовується діалект мови SQL - Watcom SQL. Він відповідає стандартам ANSI SQL/89 Level 2 і IBM SAA. Крім того, використовуваний діалект SQL підтримує нові можливості і розширення стандартів ANSI SQL/92 і IBMs DB2

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

    Користувацькі типи даних - типи даних, що створюються користувачем на підставі базових типів даних СУБД.

    Системні таблиці - зберігають всю інформацію про схему бази даних і що містяться в ній об'єктах.

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

    Фізично кожен файл (область) складається зі сторінок фіксованого обсягу. Розмір сторінок встановлюється при створенні бази даних. У сторінках розміщуються об'єкти бази даних. Залежно від розміру об'єктів кожна сторінка може містити декілька екземплярів об'єктів або фрагмент одного з об'єктів.

    Поряд з файлами областями до складу бази даних входить файл для зберігання журналу змін БД - файл з розширенням log . Наявність журналу змін є основою маніпулювання даними в даної СУБД з використанням механізму транзакцій. Такий підхід забезпечує високий захист баз даних від виникаючих програмних і апаратних збоїв і відмов.

    Характеристики апаратних засобів

    Програма розроблялася на ПК з наступною конфігурацією:

    МП Pentium II 233

    RAM 32 Mb

    Video ASUS V300 4Mb

    HDD Seagate 3.2 Mb

    Тестування здійснювалося на обчислювальних системах з МП Pentium 133 - Pentium 200 MMX з об'ємом пам'яті 16-32 Mb. При цьому не спостерігалося значного уповільнення роботи програми в порівнянні з конфігурацією комп'ютера розробників.

    Мінімальні апаратні вимоги для роботи програми:

    МП Pentuim 90

    RAM 16 mb

    Video 1 Mb.

    Обсяг необхідного дискового простору випливає з таблиці:

    Компонент програми

    Розмір (в Кb)

    Виконуваний модуль

    283

    База данн

    466 (початковий розмір)

    Бібліотеки Power Builder

    6,284

    ODBC-драйвер Sybase SQL Anywhere

    2,154

    Всього:

    9,187

    Характеристики програмних засобів

    середу розробки програм "клієнт-сервер" Power Builder пропонує програмісту засоби об'єктно-орієнтованого програмування для реалізації поставленої перед ним завдання. Цей підхід є в даний час найбільш актуальним внаслідок своєї гнучкості і природності концепції, його визначальною, тому що він дає можливість представити завдання у вигляді сукупності об'єктів і зв'язків між ними, тобто фактично у вигляді моделі реального світу.

    Основними поняттями Power Builder є наступні:

    об'єкт - деяка сутність, що характеризується набором характеристик і методів їх обробки;

    сценарій - програмний код обробки об'єктів.

    Мова Power Builder має риси подібності з такими мовами програмування - C + +, Pascal і FoxPro. Він є типізований, що означає належність даних до певної групи - типу.

    Чудовою особливістю мови обробки сценаріїв Power Builder є наявність вбудованого SQL. Реалізація цієї мови в Power Builder заснована на специфікації SQL, що використовується в СУБД Sybase SQL Anywhere. Це означає наявність таких можливостей, як виклик збережених процедур, обмін даними з БД через параметри, динамічні SQL-запити та ін

    Істотним недоліком Power Builder можна вважати відсутність засобів формування лістингу програми, як об'єднання всіх використовуваних сценаріїв.

    Ключовим поняттям, яке необхідно засвоїти для роботи з Power Builder, є поняття об'єкта. Power Builder дозволяє не тільки використовувати вже існуючі об'єкти середовища, але і створювати свої власні, або роблячи їх нащадками вже існуючих, роблячи їх "інтелектуальнішим", або шляхом конструювання повністю нового об'єкта, що не має предка:

    Користувацький - об'єкт, який не має візуального представлення;

    Стандартний - об'єкт-нащадок від будь-якого стандартного невидимого класу Power Builder ( "Транзакція", "Повідомлення", "Помилка", "Об'єкт" та ін);

    Користувацький візуальний - видимий об'єкт, що складається з будь-яких візуальних стандартних або призначених для користувача об'єктів;

    Зовнішній візуальний - об'єкт, що містить елементи управління, створені поза Power Builder;

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

    Вікно - об'єкт-нащадок від класу "Вікно", який, як і для користувача візуальний, може містити будь-які елементи управління. Відмінність між ними полягає в тому, що в нащадку вікна вже реалізовані деякі функції роботи з елементами управління, і, крім того, доступний набір методів стандартного елемента керування "Вікно";

    Меню - об'єкт, що є нащадком від стандартного класу "Меню";

    Структура - об'єкт, що складається тільки з даних будь-якого типу;

    Функція - об'єкт, що є функцією, яка може приймати будь-яке число аргументів, переданих за посиланням або значенням, і повертати значення будь-якого типу;

    Вікно даних - об'єкт, що є головною перевагою Power Builder, завдяки якому, власне, він і має своє коло користувачів і має право називатися засобом розробки додатків клієнт-сервер.

    Вікно даних (DataWindow) - основний засіб роботи з даними. Працюючи з ним, користувач може визначити спосіб подання інформації та її тип. Створення DataWindow складається з чотирьох етапів:

    а) вибір типу вікна даних;

    б) вибір джерела даних і визначення критеріїв та способу їх вибірки;

    в) моделювання вікна даних - робота з макетом DataWindow. При цьому воно представляється у вигляді звичайного вікна, розділеного на кілька частин в залежності від його типу і способу групування даних. У режимі моделювання програміст розміщує у вікні даних елементи управління, до числа яких входять стовпці таблиць БД і обчислювані поля, визначаючи їх властивості та параметри виводу;

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

    Програма - об'єкт, з якого починається виконання програм. Всі інші об'єкти створюються з методів програми.

    Операційна система

    Програма призначена для функціонування під управлінням ОС сімейства Windows 4.x - Windows NT 4.0, Windows 95, Windows 98. Ці ОС є загальновизнаними стандартами як для настільних систем, так і для невеликих локальних мереж як однорангового типу, так і з виділеним сервером (хоча, заради справедливості, слід зауважити, що в останньому випадку оптимальним рішенням все ж таки є Novell Netware 4.2 і вище).

    Для доступу до БД використовується вбудований в перераховані вище ОС механізм ODBC (Open Database Connectivity). І хоча останнім часом з ним не без успіху конкурують такі засоби доступу до БД, як BDE і OLE DB, ODBC, як і раніше застосовуватися при розробках, тому що він зарекомендував себе з кращого боку як з точки зору зручності роботи, так і швидкості доступу та обробки даних.

    Для роботи з БД через ODBC на комп'ютері має бути встановлена спеціальна програма - ODBC-драйвер. Його призначення - обробка запитів від ODBC-менеджера, до якого, у свою чергу, звертаються із запитами функції ODBC API.

    Оскільки використовувана в програмі БД створена в СУБД Sybase SQL Anywhere 5.5, то для роботи програми необхідний відповідний драйвер - Sybase SQL Anywhere Database Engine і необхідні йому бібліотеки. Розробники програми створений інсталяційний пакет, який виконує установку драйвера і вносить необхідні зміни в реєстр.

    Також для роботи програми необхідні деякі бібліотеки Power Builder 7.0 - Power Builder Virtual Machine (файл pbvm70.dll), Power Builder ODBC (pbodb.dll), Power Builder DataWindow Extension (pbdwe.dll). Ці файли також поставляються разом з програмою в архіві redist.rar.

    Об'єктно-орієнтований аналіз завдання

    Об'єктно-орієнтоване програмування - це підхід до розробки програмного забезпечення, заснований на об'єктах, а не на процедурах. Цей підхід дозволяє максимізувати принципи модульності і "приховування інформації". Об'єктно-орієнтоване програмування базується на зв'язування або інкапсуляції структур даних і процедури, яка працює з даними в структурі, з модулем.

    Об'єктно-орієнтовані (ГО) системи управління даними привертають дедалі більшу увагу як дослідників і розробників, так і потенційних користувачів з прикладних областей. З одного боку це пояснюється розвитком і впровадженням в практику об'єктно-орієнтованого підходу (ООП) в цілому (ГО програмування та проектування програмних систем, ГО технології організації користувацьких інтерфейсів, розподілені об'єктні системи і т.д.). Але з іншого боку інтуїтивно зрозуміло, що максимальний ефект можна отримати саме від використання ГО баз даних, подолавши нарешті, відомий конфлікт між структурним і поведінкової частинами інформаційних систем.

    Разом з тим, незважаючи на існування ряду комерційних реалізацій ООСУБД, доступних в даний час на ринку, рівень технології таких систем істотно поступається рівню розвинених реляційних систем. Це стосується і модельних характеристик систем (наприклад, мов запитів) і реалізаційних аспектів (наприклад, оптимізації запитів).

    Часто виникає враження, що хоча обмеження існуючих систем намагаються пояснювати якимись принциповими міркуваннями (наприклад, що розвинені можливості конструювання класів, підкріплені засобами успадкування класів дозволяють обмежитися запитами тільки на одному класі об'єктів), насправді ці обмеження є наслідком недостатньо розвинутої технології . Здається, що в умовах відсутності визнаного лідера в галузі ООСУБД (яким була, наприклад, компанія IBM зі своїм проектом System R в області РСУБД), єдиним шляхом до вироблення такої технології є що триває (іноді дублююча) робота дослідників.

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

    Опис завдання

    Практично всі сучасні засоби розробки використовують мови, які якщо і не є чисто об'єктно-орієнтованими, то, принаймні, мають кошти для роботи з об'єктами (C + +, Pascal, Lisp, Fortran, Basic). Це говорить про те, що сьогодні об'єктно-орієнтоване програмування практично витіснило собою процедурний підхід до розробки програм, хоча для вирішення деяких специфічних завдань, як правило, системних, останній все ще застосовується.

    Основні поняття, що використовуються при описі об'єктів і зв'язків між ними:

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

    Базовий об'єкт - об'єкт, що є "батьком" цього. Це означає, що останній успадковує від нього його дані і способи їх обробки, при необхідності додаючи нові або змінюючи існуючі.

    Дочірній об'єкт - об'єкт, що успадковуються від базового його властивості та методи.

    Властивість - характеристика об'єкта, що визначає його індивідуальність. Відмінності між об'єктами складаються або в наявності/відсутності будь-яких властивостей.

    Метод - сукупність дій, що впливають на об'єкт в цілому і його властивості зокрема.

    Повідомлення - прийнятий між об'єктами спосіб повідомлення про виникнення в них будь-яких подій - ситуацій, наслідком яких є змініть стану об'єкта

    Властивості об'єктно-орієнтованого підходу:

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

    модульність - об'єкти являють собою не ізольовані суті, а ієрархічну структуру, що відображає ступінь їх подібності. Крім того об'єкти різних типів (наприклад, об'єкти "вікно" та "додаток" мають засоби для взаємодії між собою. Властивість модульності також дозволяє домогтися того, що при об'єднанні коректно працюють підпрограм в єдине ціле можна бути впевненим у тому, що і вона буде працювати без помилок;

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

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

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

    поліморфізм - властивість, що виявляється в тому, що об'єкти на різних рівнях ієрархії по-різному реагують на їх посилають їм повідомлення і виклики функцій. Тобто концепція об'єктно-орієнтованого програмування включає в себе автоматичне визначення об'єкта-приймача повідомлення або виклику функції. Це означає те, що посилаючи повідомлення або викликаючи функцію з одним і тим же ім'ям, програміст може бути впевнений, що адресат буде точно визначений.

    В рамках поставленої задачі основними об'єктами є:

    прилад - він характеризується своїм ім'ям і потужністю, яка вносить свій внесок у витрату електроенергії квартири;

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

    будинок - характеризується своїм номером, типом плити (електрична або газова), яка застосовується у всіх квартирах будинку, нормою витрати енергії на одну особу, а також тарифом за 1 кВ/год

    Опис інтерфейсу класів

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

    Клас програми maxx:

    містить обробник події Open. При цьому створюється об'єкт типу "Транзакція" sqlca, за допомогою якого здійснюється доступ до БД засобами ODBC. У обробнику ініціалізувалися глобальні змінні і створюється головне вікно - w_main.

    Класи вікон даних.

    1) flats_of_month_h_num:

    містить інформацію про всіх квартирах будинку за вказаний місяць. При отриманні інформації серверу БД передаються 2 параметри - номер будинку і місяць, які присутні у виразі SELECT. У описуваному вікні даних поля, що залежать від місяця, є вичіслімимі, тому що вони не присутні фізично в БД, оскільки в іншому випадку остання не задовольняла б другий нормальної форми.

    2) house_of_month_h_num:

    містить інформацію про будинок, що не залежить від місяця.

    3) pribors_1:

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

    4) report_house:

    вікно звіту про витрату енергії для заданих будинків у зазначеному діапазоні місяців. Інформація у вікні групується по полях house_c_num і house_v_month. Аргументами для отримання даних є діапазони будинків і місяців.

    5) pribors_1:

    містить дані для редагування списку приладів, які формують витрати електроенергії для квартири. Незмінним полем є поле ідентифікатора приладу, що ідентифікує його.

    6) temp_edit:

    містить дані для модифікації списку приладів у вказаній квартирі, що використовуються в ній у заданому місяці. Ця інформація береться з тимчасової таблиці temp, дані в яку записуються з текстової будів?? і PRIBORS, що зберігається в таблиці FLAT_V і містить список приладів, які споживають енергію в даній квартирі за певний місяць, із зазначенням їх кількості та середнього часу роботи за добу.

    Класи функцій.

    1) formhouselist:

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

    2) getdaycount:

    повертає кількість днів у вказаному місяці.

    Клас меню menu_1:

    містить визначення головного меню програми, яке вбудовується в вікно w_main. Крім того, клас містить опис реакцій користувача на подію вибору пунктів меню. При цьому, як правило, здійснюється відкриття тих чи інших вікон з передачею їм необхідних параметрів.

    Клас проекту maxx:

    містить опис способу побудови виконавчого файлу, що є реалізацією класу програми maxx. Бібліотека, яка містить описи класів, можуть включатися у формований EXE-файл, або генеруватися, як бібліотека динамічного компонування. При цьому можливі наступні варіанти, залежно від її вмісту:

    в ній міститься машинний код (розширення DLL);

    в ній містяться макровизначеннями використовуваних об'єктів (розширення PBD).

    В об'єкті "проект" також перераховуються файли з описом використовуваних ресурсів.

    Класи призначених для користувача об'єктів.

    1) u_closebutton:

    кнопка для закриття батьківського вікна.

    2) u_editmask_g0:

    маскіруемое вікно введення, яке сприймає тільки великі нуля цілим числом. За порушення цього правила, що перевіряється в при обробці події LoseFocus, видається повідомлення про помилку і фокус вводу відстає у вікно вводу.

    3) u_waitwindow:

    являє собою користувальницький візуальний об'єкт, що складається з індикатора прогресу, рамки, текстової рядки підказки й рядка стану процесу. Об'єкт служить для відображення інформації про протікання будь-якого потенційно тривалого процесу.

    Класи вікон.

    1) w_db_struct:

    вікно з інформацією про структуру використовуваної БД, що подається у вигляді графа відносин між логічними сутностями. При цьому відображаються всі поля таблиць із зазначенням зв'язків між ключовими полями.

    2) w_flatpribors:

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

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

    Вікно використовує об'єкт DataWindow temp_1. При модифікації інформації в ньому проводиться перерахунок кількості енергії в кВ/год, споживаного квартирою за добу.

    3) w_flats:

    вікно модифікації даних про будинках. У верхній його частині розташовується список будинків, присутніх у БД, а також місяці року. У вікні проводяться операції додавання/видалення/редагування як самих будинків, так і квартир, що містяться в ні

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status