Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Ярцев в. П. Створення та обробка баз даних на пеом

Ярцев в. П. Створення та обробка баз даних на пеом




Сторінка20/20
Дата конвертації10.03.2017
Розмір2.36 Mb.
ТипПротокол
1   ...   12   13   14   15   16   17   18   19   20

14. Створення об'єктів БД і керування ними на сервері InterBase




14.1. Створення таблиць БД




14.1.1 Загальний формат оператора створення таблиць БД


Таблиця БД на сервері створюється за допомогою SQL-оператора CREATE TABLE. Формат оператора наступний:

CREATE TABLE ім'я таблиці

((ім'я стовпця ( (опис стовпця( ((обмеження стовпця(,(

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

((обмеження таблиці (,(

((опис ключа (,(

. . . . . . . . . . . . . . .

((опис індексу (, ...(

);

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



- опису стовпців;

- обмеження стовпців;

- опис ключів;

- опис індексів;

- обмеження таблиці.

Обов'язково повинні бути задані ім'я таблиці і, як мінімум, опис одного стовпця. Далі розглянемо детально деякі з цих елементів.



14.1.2. Опис стовпця


Опис стовпця має наступний формат:

опис стовпця = ім'я стовпця {тип даних

COMPUTED [BY] (вираження)

домен}
Відповідно до даного формату стовпець можна визначити одним з наступних трьох способів:



  1. задати ім'я і тип даних стовпця, наприклад:
    KodStud SMALLINT,
    Fam VARCHAR(15) ;

  2. створити стовпець, що обчислюється, наприклад:
    Vozrast COMPUTED BY (2003-GodRog)

  3. створити стовпець на основі домену, наприклад:
    Fam D_Fam,

де D_Fam - ім'я домену, що створений раніше.

14.1.3. Обмеження стовпця


Обмеження стовпця є необов'язковим елементом, призначеним для автоматизації введення даних і запобігання помилок при введенні. Обмеження стовпця має наступний формат:
[DEFAULT {значенняNULLUSER}]

[NOT NULL]

[COLLATE порядок сортування ]

[CHECK умова ]


Інструкція DEFAULT призначена для завдання значення за замовчуванням, що буде автоматично вводитися в стовпець щораз при додаванні в таблицю нового запису. Значення стовпця, що вводиться, можна задавати, можна задавати так:

- вводити константу (літерал);

- значенням NULL – у стовпець буде заноситися порожнє значення;

- значенням USER – у стовпець буде заноситися ім'я поточного користувача.

Інструкція NOT NULL указує, що стовпець не може містити порожнього значення, тобто в ньому обов'язково повинно бути введене значення припустимого типу і діапазону.

Інструкція COLLATE визначає порядок сортування для строкових типів даних.

В інструкції CHECK задаються умови на припустимі значення даних у стовпці. Формат завдання умов приблизно такої ж, як в інструкції WHERE оператора SELECT, що розглядався нами раніше.

14.1.4. Визначення ключів


У таблицях InterBase ключі підрозділяються на первинні й унікальні (для головних таблиць) і зовнішні (для підлеглих таблиць). Нагадаємо, що первинні ключі призначені для забезпечення унікальності записів у таблицях, а зовнішні – для зв’язування таблиць, завдяки чому забезпечується посилальна цілісність даних.

Для створення первинного ключа використовується інструкція:

PRIMARY KEY (список стовпців ключа ) .

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

Приклади:

CREATE TABLE Predmet (



KodPred SMALLINT NOT NULL PRIMARY KEY,

NamPred CHAR(15) );

CREATE TABLE Predmet (



KodPred SMALLINT NOT NULL ,

NamPred CHAR(15),

PRIMARY KEY(KodPred) );

Обоє з приведених прикладів рівноцінні по результаті – створюється таблиця Predmet , у якій первинним ключем визначений стовпець KodPred .

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

UNIQUE (список стовпців ключа ) .

14.1.5. Визначення обмежень посилальної цілісності (створення зв'язків між таблицями)


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

з головної таблиці не можна видалити запис, якщо в підлеглій таблиці є зв'язані з ним записи;

у підлеглу таблицю не можна додати запис, не зв'язаний з жодним з записів головної таблиці;

не можна змінити значення в стовпцях, яки належать ключу зв'язку.

Обмеження посилальної цілісності задається в наступному форматі:

[CONSTRAINT ім'я обмеження ]

FOREIGN KEY (список стовпців ключа)

REFERENCES ім'я головної таблиці


[ список стовпців ключа головної таблиці ]

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

В інструкції CONSTRAINT задається ім'я обмеження. Якщо ім'я не задається, воно формується сервером за замовчуванням.

Інструкція FOREIGN KEY указує стовпці підлеглої таблиці, що повинні бути її зовнішнім ключем. Очевидно, що кількість і тип стовпців, що утворять зовнішній ключ підлеглої таблиці, повинні відповідати кількості і типу стовпців первинного (чи унікального) ключа головної таблиці.

В інструкції REFERENCES указується головна таблиця

Приклад завдання обмеження:

CREATE TABLE Usp (

KodStud SMALLINT NOT NULL,

KodPred SMALLINT NOT NULL,

Ocenka SMALLINT NOT NULL,

PRIMARY KEY (KodStud, KodPred)

FOREIGN KEY (KodPred) REFERENCES Predmet );
Видалити обмеження посилальної цілісності можна наступним оператором:

ALTER TABLE ім'я таблиці

DROP ім'я обмеження посилальної цілісності

14.2. Створення індексів


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

Індекс створюється за допомогою оператора CREATE INDEX, що має наступний формат:

CREATE [UNIQUE] [порядок сортування] INDEX

ім'я індексу ON ім'я таблиці (ім'я стовпця, …[ім'я стовпця]) ;

Описувач UNIQUE означає, що індекс вимагає унікальності значень стовпця, по якому він будується.

Описувач порядок сортування задається одним з наступних значень:

ASCENDING – сортування по зростанню (за замовчуванням);

DESCENDING – сортування по убуванню.

Приклад, у якому для таблиці Usp створюється індекс по полю KodPred, наступний:

CREATE INDEX



Ind_KodPred ON Usp(KodPred);

Видалити індекс можна за допомогою оператора:

DROP INDEX ім'я індексу;

14.3. Створення генераторів і тригерів




14.3.1. Створення генератора

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


CREATE GENERATOR ім'я генератора

Потім установлюється його початкове значення оператором:

SET GENERATOR ім'я генератора TO початкове значення

Виклик генератора виконується за допомогою функції:

GEN_ID(ім'я генератора, крок);

Функція повертає значення, збільшене в порівнянні з попереднім значенням генератора на величину кроку. Величина кроку, як і значення генератора, може приймати тільки цілі значення .

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

Приклад. Створимо генератор з ім'ям Gen_KodStud для одержання унікальних значень стовпця KodStud у таблиці Student:

CREATE GENERATOR Gen_KodStud ;

SET GENERATOR Gen_KodStud TO 1;

Генератор створений. Тепер його можна викликати за допомогою функції:

GEN_ID(Gen_KodStud , 1) ;

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

14.3.2. Створення тригера


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

CREATE TRIGGER ім'я тригера FOR ім'я таблиці

[ACTIVEINACTIVE]

[BEFOREAFTER]

[UPDATEINSERTDELETE]

[POSITION число ]

AS тіло тригера
Описувачі ACTIVE і INACTIVE визначають активність тригера відразу після його створення. За замовчуванням діє ACTIVE.

Описувачі BEFORE і AFTER задають момент початку виконання тригера – до чи після настання відповідної події, зв'язаної зі зміною у запису.

Описувачі UPDATE, INSERT і DELETE визначають, при настанні якої події викликається тригер – при редагуванні, додаванні чи видаленні запису.

Для однієї події можна створити кілька тригерів, послідовність виклику яких визначає число, зазначене в описувачі POSITION. Тригери виконуються в порядку зростання цих чисел.

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

Приведемо наступний приклад:

CREATE TRIGGER BEF_INS_Stud FOR Student

ACTIVE BEFORE INSERT

AS

Begin


NEW.KodStud = GEN_ID(Gen_KodStud, 1);

End;


У цьому прикладі тіло тригера складається з одного оператора, виконання якого приводить до введення нового значення в поле
KodStud таблиці Student. У лівій частині оператора розміщено предикат NEW, що вказує на нове значення полю KodStud. У правій частині записано виклик генератора, що створює унікальні значення для полю KodStud.

14.4. Маніпулювання даними


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

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

Для редагування, додавання нових і видалення записів призначені оператори UPDATE, INSERT і DELETE.

Оператор редагування даних UPDATE має формат:

UPDATE ім'я таблиці

SET ім'я полю = вираження,

. . . . . . . . . . . . . . . . . . . . . .

[WHERE умова відбору];

Для всіх записів, що задовольняють умові відбору, змінюються значення полів. Елемент вираження визначає нове значення, що буде привласнено стовпцю вираження.

Приклад:


UPDATE Student

SET GodRog = 1980

WHERE Fam = “Іванов”

Оператор додавання записів INSERT має наступний формат:

INSERT INTO ім'я таблиці

[список полів]

VALUES (список значень);

У таблицю ім'я таблиці додається новий запис. У доданому запису заповнюються поля, зазначені в списку полів список полів . Значення полів беруться зі списку значень, розташованого після слова VALUES. Список полів і список значень повинні відповідати один одному по типі і числу елементів. Порядок розташування полів може відрізнятися від порядку розташування їх у таблиці.

Приклад:

INSERT INTO Student (KodStud, Fam, Nam1, Nam2)

VALUES (1, “Іванов”, “Іван”, “Іванович”);

Список полів в операторі INSERT може бути відсутній. У цьому випадку необхідно вказати значення всіх полів таблиці.

Оператор видалення записів DELETE має наступний формат:

DELETE FROM ім'я таблиці


[WHERE умова відбору];
З таблиці з ім'ям ім'я таблиці видаляються всі записи, що задовольняють заданій умові відбору. Якщо умова відбору не задана, з таблиці видаляються всі записи.

14.5. Створення БД за допомогою IBExpert




14.5.1. Загальні відомості про CASE-технології

Термін CASE (Computer Aіded Software Engіneerіng) використовується в даний час у дуже широкому змісті. Первісне значення терміна CASE, обмежене питаннями автоматизації розробки тільки лише програмного забезпечення, у даний час набуло нового сенсу, що охоплює процес розробки складних ІС у цілому. Тепер під терміном "CASE-засоби" розуміються програмні засоби, що підтримують процеси створення і супроводу ІС, включаючи аналіз і формулювання вимог, проектування прикладного програмного забезпечення і баз даних, генерацію коду, тестування, документування, забезпечення якості, керування проектом, а також інші процеси.

Застосунок, застосовна програма, прикладна програма (англ. application, application software; пол. aplikacja; рос. приложение, прикладная программа) - користувацька комп'ютерна програма, що дає змогу вирішувати конкретні прикладні задачі користувача.
CASE-засоби разом із системним ПЗ і технічними засобами утворюють повне середовище розробки ІС.

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

Найбільш поширеним CASE-засобом для проектування БД є програма ERWIN. Програма Microsoft Visio 2002 також містить CASE-засоби для проектування БД.

Але у цих програм є один спільний недолік – вони не повністю сумісні з системою Interbase. Тому ми будемо розглядати CASE-засіб Database Designer, який входить до складу програми IBExpert.

14.5.2. Пряме та обернене проектування

Процес генерації фізичної структури бази даних з логічної моделі даних називається прямим проектуванням (Forward Engіneerіng).

Процес генерації логічної моделі з фізичної бази даних називається оберненим проектуванням (Reverse Engіneerіng). Програма IBExpert дозволяє швидко створити модель даних шляхом оберненого проектування наявної бази даних.

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

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

Обернене проектування виконують для:



  • кращого розуміння структури БД;

  • створення документації;

  • подальшого внесення змін в структуру БД шляхом прямого проектування.



14.5.3. Використання CASE-засобу Database Designer програми IBExpert

У складі програми IBExpert міститься CASE-засіб Database Designer. Він дозволяє розробити модель даних - структурну схему БД. Також він може виконувати пряме і обернене проектування БД.

Для запуску Database Designer треба виконати команду Инструменты | Database Designer з меню програми IBExpert.

Для виконання оберненого проектування БД потрібно виконати команду Designer | Reverse Engineer. На екрані з'явиться список зареєстрованих в програмі IBExpert баз даних. Виберіть одну з них. У наступному вікні виберіть режим оновлення діаграми - Create new diagram (створити нову діаграму) чи Update current diagram (оновити поточну діаграму), після чого натисніть кнопку Start. На діаграмі з'явиться схема БД, яка нагадує схему, представлену на мал.1.



Рис. 14.1. Схема бази даних успішності студентів, створена під час

оберненого проектування.
Для виконання прямого проектування БД треба додати на діаграму необхідні об’єкти БД і відредагувати їх властивості, створивши структурну схему. Як це робиться, ви дізнаєтесь на лабораторних заняттях. Структурна схема БД з двох таблиць може виглядати так, як показано на мал.2.

Рис. 14.2. Структурна схема БД з двох таблиць.


Після цього потрібно виконати команду Designer | Generate Script і вказати файл для збереження SQL-скрипта. Після закінчення генерації SQL-скрипта вам буде запропоновано завантажити файл скрипта у SQL-редактор. Якщо ви зробите це, а потім натиснете клавішу F9 (виконати скрипт), зміни будуть внесені в БД.

14.6. Система автоматизованого програмування БД IBExpert
Для автоматизації проектування БД та розробки інформаційних систем використовуються програмно-технологічні засобі які мають назву CASE(Computer Aided Software Engineering). Програма ІBConsole, яка входить до складу Іnterbase, має досить обмежені можливості. На думку багатьох адміністраторів БД, ІBConsole є не дуже зручним інструментом адміністрування. Особливо чітко її недоліки проявляються при створенні та адмініструванні складних баз даних. Тому найчастіше для роботи з базами Іnterbase використовують продукти сторонніх розроблювачів, що забезпечують зручний графічний інтерфейс і додаткові засоби проектування та адміністрування БД. Одним з таких програмних продуктів є програма-оболонка ІBExpert.

Програма-оболонка ІBExpert призначена для створення, проектування й адміністрування БД, а також для редагування даних, що містяться в ній. До складу оболонки входять також SQL-редактор, візуальні засоби побудови SQL-запитів і засоби адміністрування. Нові версії програми ІBExpert мають також CASE-засоби проектування БД.

ІBExpert дає можливість виконувати складні операції проектування БД і при цьому не потребує знання мови SQL. Адміністратор БД виконує більшість операцій на рівні візуального об'єктно-орієнтованого проектування, а програма ІBExpert перетворює ці дії в інструкції мовою SQL, які виконуються сервером Іnterbase.

14.6.1. Склад CASE-средства IBExpert

До складу програми IBExpert входять наступні основні компоненти:



  1. DB Explorer;

  2. SQL-редактор;

  3. засоби візуальної побудови SQL-запитів (Query Builder);

  4. SQL-монітор;

  5. Менеджер користувачів;

  6. Менеджер прав;

  7. Менеджер файлів;

  8. CASE-засіб проектування - Database Designer;

  9. Генератор тестових даних;

  10. Засоби адміністрування сервера: резервне копіювання, аварійне відновлення, перевірка БД, статистика БД, діагностика комунікацій (для віддаленого сервера).

Розглянемо більш детально кожен з цих компонентів.



DB Explorer – це вікно, в якому відображені всі зареєстровані в програмі IBExpert бази даних, а для підключених БД – також список об’єктів кожної БД.

SQL-редактор призначений для введення, редагування та виконання інструкцій мовою SQL.

Query Builder призначений для візуальної побудови SQL-запитів.

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

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

Менеджер прав призначений для надання і редагування прав доступу окремих користувачів до об’єктів БД.

Менеджер файлів дозволяє розділити базу на кілька файлів. Звичайно це виконують тоді, коли розмір файла БД перевищує 2 ГБ.

Database Designer – це CASE-засіб проектування БД. Детальніше він буде розглянутий в наступній лекції.

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

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

Утиліта перевірки БД виконує перевірку бази даних.

Утиліта статистики БД призначена для збору статистики БД.

Утиліта діагностики комунікацій дозволяє виявити і усунути помилки в роботі мережі, в якій працює віддалений сервер Іnterbase.

14.6.2. Створення та реєстрація БД за допомогою програми IBExpert

Для створення БД в програмі IBExpert необхідно виконати команду База данных \ Создать базу. З'явиться вікно, в якому необхідно вказати ім'я файлу бази даних і деякі додаткові параметри, такі як ім'я користувача, пароль, розмір сторінки та ін.. Після цього натисніть кнопку ОК.

Для роботи з базою даних її необхідно зареєструвати в оболонці ІBExpert. При створенні нової бази програма ІBExpert сама запропонує виконати реєстрацію БД. При реєстрації необхідно ввести повний шлях до файлу бази даних, опис, під яким вона буде відображена в оболонці, ім'я і пароль користувача, номер кодової сторінки і повний шлях до системної бази даних ІSC4.GDB. Сервер Іnterbase використовує базу даних ІSC4.GDB для збереження інформації про імена і паролі користувачів. Звичайно вона знаходиться в робочому каталозі сервера Іnterbase.

Щоб система Іnterbase правильно відображала кирилицю в записах бази даних, необхідно при створенні БД вказати кодову сторінку WІ1251. Після реєстрації база даних буде відображена в списку зареєстрованих баз даних.


14.6.3. Редагування та адміністрування БД за допомогою програми IBExpert

Для роботи з базою даних необхідно підключитися до неї. Для цього двічі клацніть на назві бази даних у списку чи виберіть у меню "База данных" пункт "Подключиться к базе". Можна також натиснути відповідну кнопку на панелі інструментів.

Після підключення до бази даних під її назвою з'явиться список об'єктів, які може містити база даних. Спочатку БД не містить ніяких об’єктів.

Щоб створити таблицю, клацніть правою кнопкою миші на пункті "Таблицы" у списку об'єктів бази даних і виберіть у контекстному меню пункт "Новый объект". З'явиться вікно створення нової таблиці, в якому можна вказати назву таблиці та створити поля. Детальніше з цими операціями ви познайомитесь на лабораторних роботах.



Після створення структури таблиці необхідно внести зміни в базу даних. Для цього натисніть кнопку Compіle на інструментальній панелі чи комбінацію клавіш Ctrl F9. Програма ІBExpert автоматично згенерує всі SQL-інструкції, що повинні бути виконані сервером Іnterbase для створення цієї таблиці. Вони будуть показані в окремому вікні. Натисніть кнопку Commіt у цьому вікні для внесення змін у структуру бази даних.

Бібліографія





  1. Хомоненко А. Д. и др. Базы данных. Учебник для Вузив. Под редакцией А.Д. Хомоненко. Санкт-Петербург, изд. Корона Принт. 2002. 666 с.

  2. Карпова Т.С. Базы данных: модели, разработка, реализация. Учебное пособие для ВУЗов. СПб.:Питер, 2001. 304 с.

  3. Глушаков С.В., Ломотько Д.В. Базы данных. Учебный курс. Харьков, РнД, Киев, 2000.

  4. Бекаревич Ю. Б., Пушкина Н.В. Microsoft Assecc 2000. СПб.: БХВ – Санкт-Петербург, 1999. – 480с.

  5. Гофман В.Э., Хомоненко А.Д. Работа с базами данных в Delphi. – СПб.: БХВ-Петербург, 2002. – 622 с.


1   ...   12   13   14   15   16   17   18   19   20



  • 14.1.2. Опис стовпця
  • 14.1.3. Обмеження стовпця
  • 14.1.4. Визначення ключів
  • 14.1.5. Визначення обмежень посилальної цілісності (створення звязків між таблицями)
  • 14.2. Створення індексів
  • 14.3. Створення генераторів і тригерів
  • 14.3.2. Створення тригера
  • 14.4. Маніпулювання даними
  • 14.5. Створення БД за допомогою IBExpert
  • 14.5.2. Пряме та обернене проектування
  • 14.5.3. Використання CASE-засобу Database Designer програми IBExpert
  • 14.6.1. Склад CASE-средства IBExpert
  • 14.6.2. Створення та реєстрація БД за допомогою програми IBExpert
  • 14.6.3. Редагування та адміністрування БД за допомогою програми IBExpert