Важливим моментом при створення бази даних є розподіл інформації між полями записи. Очевидно, що інформація може бути розподілена між полями по-різному.
Наприклад, відомості про історичні пам’ятники Санкт-Петербурга можуть бути організовані у вигляді записів, що складаються з полів “Пам’ятник ” і “Історична довідка” або з полів “Пам’ятник “, ” Архітектор “,” Рік” і “Історична довідка”.
У першому варіанті поле “Пам’ятник ” буде містити назву пам’ятника, наприклад Ермітаж, а поле”Історична довідка ” – – всю іншу інформацію. При цьому користувач зможе знайти інформацію про цікавить його пам’ятнику тільки по назвою. При другому варіанті організації записи користувач зможе знайти інформацію про пам’ятники, архітектором яких є конкретний зодчий, або про пам’ятники, зведених в даний історичний період.
Можна сформулювати наступне правило: якщо передбачається, що під час використання бази даних буде виконуватися вибірка інформації за деяким критерієм, то інформацію, що забезпечує можливість цієї вибірки, слід помістити в окреме поле.
Після того як визначені поля записи, необхідно виконати розподіл полів за таблицями. У простій базі даних всі поля можна розмістити в одній таблиці. У складній базі даних поля розподіляють по декількох таблицях, і введенням деякої додаткової інформації, однозначно ідентифікує кожний запис, забезпечується зв’язок між таблицями.
Примітка
Бази даних, що складаються з декількох, пов’язаних між собою таблиць, називаються реляційними. У реляційних базах даних, для того щоб уникнути дублювання інформації в таблицях, до основної інформації додається деяка службова інформація, яка однозначно ідентифікує запис. Детальний розгляд організації реляційних баз даних в задачу цієї книги не входить. Читач може самостійно ознайомитися з питаннями організації реляційних баз даних, звернувшись до літератури.
Після того як визначена структура записів бази даних, можна приступити безпосередньо до створення таблиці. Таблиці створюються за допомогою що входить до складу Delphi утиліти Database Desktop.
Утиліта Database Desktop дозволяє виконувати всі необхідні при роботі з базами даних дії. вона забезпечує створення, перегляд та модифікацію таблиць баз даних різних форматів (Paradox, dBASE, Microsoft Access). Крім того, утиліта дозволяє виконувати вибірку інформації шляхом створення запитів.
Для того щоб створити нову таблицю, потрібно вибором з меню Tools команди Database Desktop запустити Database Desktop. Потім у вікні утиліти Database Desktop треба з меню File вибрати команду New і в списку, що з’явився вибрати тип створюваного файлу – Table . Потім в діалоговому вікні Create Table слід вибрати тип створюваної таблиці (значенням за замовчуванням є тип Paradox 7).
В результаті відкривається діалогове вікно Create Paradox 7 Table , в якому можна визначити структуру записів таблиці.
Для кожного поля таблиці необхідно задати ім’я, тип і, якщо потрібно, розмір поля. Ім’я поля використовується для доступу до даних. Як ім’я поля, яке вводиться в колонку Field Name, можна використовувати послідовність з букв латинського алфавіту і цифр довжиною не більше 25 символів.
Тип поля визначає тип даних, які можуть бути поміщені в поле. Тип задається введенням в колонку Туре символьної константи. Типи полів і відповідні їм константи наведені в табл. 17.1.
Таблиця 17.1. Тип поля визначає тип інформації, яка може в ньому перебувати
Тип |
Константа |
Вміст поля |
Alpha | A | Рядок символів. Максимальна довжина рядка визначається характеристикою Size, значення якої знаходяться в діапазоні 1-255 |
Number | N | Число з діапазону 10 -307 – 10 308 з 15-ю значущими цифрами |
Money | $ | Число в грошовому форматі. Цифри числа діляться на групи за допомогою роздільника груп розрядів. Також виводиться знак грошової одиниці |
Short | S | Ціле число з діапазону -32767-32767 |
Long Integer | I | Ціле число з діапазону -2 147 483 648-2 147 483 647 |
Date | D | Дата |
Time | Т | Час з півночі, виражене в мілісекундах |
Time stamp | @ | Час і дата |
Memo | M | Рядок символів довільної довжини. Поле типу Memo використовується для зберігання текстової інформації, яка не може бути збережена в поле типу Alpha. Розмір поля (1-240) визначає, скільки символів зберігається в таблиці. решта символів зберігаються в файлі, ім’я якого збігається з ім’ям файлу таблиці, а розширення файлу – mb |
Formatted Memo | F | Рядок символів довільної довжини (як у типу Memo). Є можливість вказати тип і розмір шрифту, спосіб оформлення і колір символів |
Graphic | G | Графіка |
Logical | L | Логічне значення ” істина ” (True) або ” БРЕХНЯ “(False) |
Auto-increment | + | Ціле число. при додаванні до таблиці чергового запису в полі записується число на одиницю більше, ніж знаходиться у відповідному полі останній доданій записи |
Bytes | Y | Двійкові дані. поле цього типу використовується для зберігання даних, які не можуть бути інтерпретовані Database Desktop |
Binary | У | Двійкові дані. поле цього типу використовується для зберігання даних, які не можуть бути інтерпретовані Database Desktop. Як і дані типу Memo, ці дані не перебувають у файлі таблиці. Поля типу Binary, як правило, містять audio-дані |
Константа, що визначає тип поля, може бути введена з клавіатури або шляхом вибору типу поля зі списку, який
з’являється при натисканні правою кнопкою миші в колонці Туре або при натисканні клавіші “Пропуск “.
Одне або кілька полів можна помітити як ключові. Ключове поле визначає логічний порядок слідування записів в таблиці. Наприклад, якщо символьне (тип Alpha) поле Fam (Прізвище) позначити як ключове, то при виведенні таблиці записи будуть упорядковані відповідно до алфавітного порядком прізвищ. Якщо поле Fam не позначаються як ключове, то записи будуть виведені в тому порядку, в якому вони були введені в таблицю. Слід звернути увагу на те, що в таблиці не може бути двох записів з однаковим вмістом ключових полів. Тому в розглянутому прикладі ключовими полями повинні бути поля Fam (Прізвище) і Name (Ім’я). Тоді в таблицю можна буде ввести інформацію про однофамільців. Проте як і раніше не можна буде ввести однофамільців, у яких збігаються імена. Тому в якості ключового поля зазвичай вибирають поле, яке містить унікальну інформацію. Для таблиці зі списком людей, в якості ключового можна вибрати поле Pasp (Паспорт).
Для того щоб позначити поле як ключове, необхідно виконати подвійне клацання в колонці Key. Слід звернути увагу на те, що ключові поля повинні бути згруповані у верхній частини таблиці.
Якщо дані, для зберігання яких призначене поле, повинні обов’язково бути присутнім в запису, то слід встановити прапорець Required Field. Наприклад, очевидно, що поле Fam (Прізвище) обов’язково має бути заповнено, в той час як поле Tel (Телефон) може залишатися порожнім.
Якщо значення, що записується в поле, має перебувати в певному діапазоні, то введенням значень в поля Minimum
value (Мінімальне значення) і Maximum value (Максимальна значення) можна задати межі діапазону.
Поле Default value дозволяє задати значення за замовчуванням, яке буде автоматично записуватися в поле при додаванні до таблиці нового запису.
Поле Picture дозволяє задати шаблон, використовуючи який можна контролювати правильність введеної в поле інформації. Шаблон являє собою послідовність звичайних і спеціальних символів. Спеціальні символи перераховані в табл. 17.2.
Під час введення інформації в позицію поля, якій відповідає спеціальний символ, будуть з’являтися тільки символи, допустимі для даного символу шаблону. Наприклад, якщо в позиції шаблону варто символ #, то в відповідну цього символу позицію можна ввести тільки цифру. Якщо в позиції шаблону стоїть звичайний символ, то під час введення інформації в даній позиції буде автоматично з’являтися вказаний символ.
Наприклад, нехай поле Tel типу А (рядок символів) призначене для зберігання номера телефону, і програма, працює з базою даних, передбачає, що номер телефону повинен бути представлений в звичайному вигляді, т. е. у вигляді послідовності згрупованих, розділених дефісами цифр. В цьому випадку в поле Picture слід записати шаблон: ### – ## – ##. При введенні інформації в поле Tel будуть з’являтися тільки цифри (натискання клавіш з іншими символами ігноруються), причому після введення третьої і п’ятої цифр в поле будуть автоматично додані дефіси.
Таблиця 17.2. Спеціальні символи, використовувані при записи шаблонів
Символ шаблону |
Допустимий при введенні символ |
* | Цифра Будь-яка буква (прописна або рядкова) Будь-яка буква (автоматично перетвориться в прописну) Будь-яка буква (автоматично перетвориться в малу) Будь-який символ |
& | Будь-який символ (якщо введена буква, то вона автоматично перетворюється в прописну) |
@ | Символ, наступний за символом “крапка з комою”, інтерпретується як звичайний символ, а не символ шаблону |
*. | Будь-яка кількість повторюваних, визначених наступним за ” зірочкою” символом шаблону |
Деякі елементи даних поля можуть бути необов’язковими, наприклад, код міста для номера телефону. Елементи шаблону, що забезпечують введення необов’язкових даних, укладають в квадратні дужки. Наприклад, шаблон [(###)] ### – ## – ## дозволяє вводити в поле номер телефону як до укладеного в дужки кодом міста, так і без коду.
Шаблони дозволяють не тільки контролювати правильність введених в поле даних шляхом блокування введення невірних символів, але і забезпечують автоматизацію введення даних. це досягається шляхом вказівки в шаблоні в квадратних або фігурних дужках списку допустимих значень вмісту поля.
Наприклад, якщо для поля Address задати шаблон {Санкт-Петербург, Москва, Воронеж} * @ або [Санкт-Петербург, Москва, Воронеж] * @, то під час введення даних в це поле назву відповідного міста буде з’являтися відразу після введення однієї з букв: с, м або в. Відмінність фігурних дужок від квадратних і, отже, цих шаблонів один від одного полягає в тому, що в першому шаблоні вміст поля обов’язково повинно починатися з назви одного з перерахованих в списку міст, а в другому – місто може називатися по-іншому, проте його назва доведеться вводити повністю.
Після того як буде визначена структура таблиці, таблицю слід зберегти. Для цього необхідно натиснути кнопку Save As. В результаті відкривається вікно Save Table As. У цьому вікні зі списку Alias потрібно вибрати псевдонім бази даних, частиною якої є створена таблиця, а в поле Файл ввести ім’я файлу, в якому потрібно зберегти створену таблицю
Якщо перед тим як натиснути кнопку Зберегти встановити прапорець Display table, то в внаслідок натискання кнопки Зберегти відкривається діалогове вікно Table , в якому можна ввести дані в тільки що створену таблицю.
Якщо таблиця бази даних недоступна, то для того щоб ввести дані в таблицю, таблицю потрібно відкрити. Для цього треба з меню File вибрати команду Open | Table, потім в діалоговому вікні Open table в списку Alias вибрати псевдонім потрібної бази даних і таблицю. Слід звернути увагу, що таблиця буде відкрита в режимі перегляду, в якому змінити вміст таблиці не можна. Для того щоб в таблицю можна було вводити дані, потрібно активізувати режим редагування таблиці, для чого необхідно з меню Table вибрати команду Edit Data.
Дані в поля запису вводяться з клавіатури звичайним чином. Для переходу до наступного поля потрібно натиснути клавішу ” Enter “. Якщо поле є останнім полем останнього запису, то в результаті натискання клавіші ” Enter “ в таблицю буде додано ще один запис.
Якщо під час заповнення таблиці необхідно внести зміни в якийсь вже заповнене поле, то слід вибрати це поле, скориставшись клавішами переміщення курсору, натиснути клавішу ” F2″ і внести потрібні зміни.
Якщо при введенні даних в таблицю літери російського алфавіту відображаються невірно, то треба змінити шрифт, використовуваний для відображення даних. Для цього необхідно в меню Edit вибрати команду Preferences і в діалоговому вікні, у вкладці General, клацнути на кнопці Change. У результаті цих дій відкриється діалогове вікно Change Font , в якому потрібно вибрати русифікований шрифт. слід звернути увагу, що в Windows 2000 (Windows XP) використовуються шрифти типу Open Type, в той час як програма Database Desktop орієнтована на роботу зі шрифтами TrueType. Тому в списку шрифтів потрібно вибрати русифікований шрифт саме TrueType. Після цього треба завершити роботу з Database Desktop, так як внесення в конфігурацію зміни будуть дійсні тільки після перезапуску утиліти.