Реалізація розподіленої БД

При використанні режиму клієнт-сервер виникають такі завдання для сервера і клієнтів.

Для сервера

  • 1. Побудова структури системи таблиць на сервері, можливо з системою запитів (видів) для заповнення таблиць, з встановленням зв'язків між таблицями.
  • 2. Заповнення таблиць даними.
  • 3. Забезпечення доступу через види, запити і збережені процедури.

Для клієнтів

  • 1. Розробити необхідні додатки.
  • 2. Побудувати відповідні інтерфейси користувачів.

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

Власне база даних. Необхідно виконати наступні роботи.

  • • Побудова таблиць.
  • • Встановлення зв'язків між таблицями для здійснення посилальної цілісності в РБД.
  • • Використання збережених процедур для забезпечення посилальної цілісності.
  • • Створення системи генераторів для забезпечення автоматичного заповнення полів, що вимагають автонумерації.
  • • Завантаження таблиць даними з існуючої БД "Навчальний процес".

Побудова структури таблиць

Всі операції по створенню структури таблиць РБД в InterBase здійснюються за допомогою утиліти Windows 1SQL (WISQL), що поставляється в комплекті з сервером РБД (рис. 14.14).

Вікно Windows ISQL

Рис. 14.14. Вікно Windows ISQL

Створення таблиць та інших об'єктів РБД виконується мовою SQL.

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

Наведемо приклад створення таблиці gruppa:

/ * Table: GRUPPA, Owner: SYSDBA * /

CREATE TABLE GRUPPA (NG VARCHAR (6) CHARACTER SET WIN 1251 NOT NULL,

NAZVANIE VARCHAR {6) CHARACTER SET WIN 1251,

OTD VARCHAR (20) CHARACTER SET WIN1251,

STAROSTA VARCHAR (20) CHARACTER SET WIN1251,

STAR_POLN VARCHAR (50) CHARACTER SET WIN 1251,

KURATOR VARCHAR (20) CHARACTER SET WIN 1251,

KURS VARCHAR (50) CHARACTER SET WIN 1251,

SH_SPEC INTEGER NOT NULL,

GOD_NABOR INTEGER,

STUDENTOV INTEGER,

DEVUSHEK INTEGER,

UNOSHEY INTEGER,

BESPLATN INTEGER,

CHAST INTEGER,

POLNPLATN INTEGER,

CONSTRAINT GRUPPRIMKEY1 PRIMARY KEY (NG));

Останній рядок вказує на те, що поле NG (номер групи) є первинним ключем. Інструкція типу SH_SPF.C INTEGER NOT NULL вказує на те, що необхідно створити колонку sh_spec типу Integer з обов'язковим ненульовим значенням.

Всього РБД налічує 18 таблиць:

  • • ArhivStud - архівна таблиця, що містить інформацію про успішність студентів, за минулі семестри;
  • • Gruppa - список всіх груп;
  • • IPP - таблиця, що зберігає інформацію про проходження студентами виробничої практики;
  • • Izuchenie - таблиця з інформацією про досліджуваних предметах в групах;
  • • Kafedra - список кафедр;
  • • Laba - список;
  • • Obshegit - список студентів, що живуть у гуртожитках;
  • • Oplata - інформація про оплату студентами свого навчання;
  • • Predmet - список викладаються предметів;
  • • Predpr - список підприємств, на яких проходять виробничу практику студенти;
  • • Prepod - список викладачів;
  • • Prikaz - накази;
  • • Specialnost - список спеціальностей;
  • • Student - список учнів студентів і відомості про них;
  • • TempUsp - проміжна таблиця, необхідна для генерації складних звітів, які не можуть бути організовані тільки з використанням запитів;
  • • Uspevaem - інформація про здачу сесії студентами;
  • • Vid_prikaz - види наказів.

Після створення таблиць програміст може витягти з РБД SQL- команди, які він вводив в процесі створення таблиць. Така інформація, одержувана з РБД, називається метаданими. Текстовий файл, що містить метадані, може бути у випадку необхідності повторно виконаний, що дозволить у разі повної втрати РБД, відновити її структуру без повторного, стомлюючого набивання всіх SQL-команд. Для отримання подібної інформації необхідно в утиліті Windows ISQL вибрати в меню Extract / SQL Metadata for DataBase, після чого вказати ім'я файлу, в якому необхідно зберегти метадані. Лістинг SQL-програм розробленої РБД наведено у Додатку 2.

 
< Попер   ЗМІСТ   Наст >