Властивості і типи полів

18 0 Новини високих технологій

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

Табличні бази даних

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


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


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

    Поля та їх властивості

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

    Властивості цілісності

    Для нормального безпомилкового функціонування бази даних вкрай важливо зберігати цілісність даних. Це означає, що кожне поле кожного запису має приймати саме те значення, яке очікується. Наприклад, номером залікової книжки завжди буде число, а в імені студента цифр бути не повинно.
    Крім того, деякі поля абсолютно необхідні для опису сутності, в той час як заповнення інших необов'язково. У студента може не бути телефону, але ім'я та залікова книжка є завжди. Забезпечення цілісності даних контролюється декількома властивостями:
  • тип поля-визначає тип даних, які можуть бути його значенням;
  • обов'язковість забороняє вносити в таблицю записи з порожнім полем;
  • значення за замовчуванням дозволяє не заповнювати поле, але не залишати його порожнім;
  • унікальність забезпечує однозначну ідентифікацію сутності в межах таблиці;
  • максимальна або точна довжина значення поля в символах;
  • спосіб форматування даних;
  • різні додаткові умови (максимальна і мінімальна дата).
  • Властивості і типи полів
    Основні типи та формати полів, підтримувані більшістю СУБД:
  • числові - цілі і речові;
  • рядкові;
  • бінарні;
  • логічні;
  • дата і час;
  • перерахування і множини.
  • В деяких базах в окремий тип можуть бути виділені гіперпосилання, грошові величини, примітки, повідомлення про помилки. Тип поля визначає набір обмежень цілісності, які можуть бути до нього застосовані. У багатьох системах управління базами даних ці типи специфіковані і спочатку включають в себе ряд обмежень. Хорошим прикладом може служити тип TINYINT в СУБД MySQL, приймає цілі числа в обмеженому діапазоні.

    Рядки

    Рядкові значення можуть містити будь-які символи. Основне обмеження на довжину. Рядки можуть бути фіксованою або змінної довжини. У другому випадку зазвичай встановлюється максимально можливий розмір. Найбільш поширене обмеження по довжині для рядків в БД - 255 символів.
    Назви строкових типів полів у різних СУБД можуть відрізнятися. Найбільш популярні:
  • CHAR - фіксована довжина до 255 символів. Якщо розмір рядка менше встановленого, вона буде доповнена пробілами.
  • VARCHAR, TINYTEXT - змінна довжина до 255 символів, для зберігання розміру витрачається додатковий байт.
  • TEXT, MEMO - змінна довжина до 65535 символів.
  • MEDIUMTEXT - максимум 16777215 знаків.
  • LONGTEXT - максимально 4294967.295 символів в рядку.
  • Властивості і типи полів
    Рядковий тип поля бази даних дозволяє зберігати паролі, короткі описи, анкетні дані, адреси, номери телефонів, статті. З цією інформацією не проводяться ніякі математичні операції. Рядки можуть порівнюватися в лексикографічному порядку. Дуже великі фрагменти тексту можуть також зберігатися в полях типу BLOB, які розглянуті нижче. Можливі обмеження цілісності: довжина рядка, обов'язковість, значення за замовчуванням.

    Числа

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

    Для цілих чисел:
  • TINYINT, байт - діапазон значень від 0 до 255 (або -127 - 128);
  • SMALLINT - від 0 до 65535 (від -32768 до 32767);
  • MEDIUMINT - від 0 до 16777215 (від -8388608 до 8388607);
  • INT - від 0 до 4294967295 (від -2147483.648 до 2147483.647);
  • BIGINT - від 0 до 18446744.073709551.615 (від -9223372.036854775.808 до 9223372.036854775.807).
  • Для дійсних чисел:
  • FLOAT - число знаків в дробовій частині мантиси не більше 24.
  • DOUBLE, REAL - число з подвійною точністю, після точки може бути до 53 знаків.
  • Існує ще один специфічний тип поля БД - DECIMAL (NUMERIC). Це така ж кількість, як DOUBLE, записане, однак, у вигляді рядка. Завжди слід вибирати мінімально можливий розмір поля. Наприклад, для зберігання екзаменаційної оцінки студента цілком вистачить одного байта TINYINT. Це дозволяє економити ресурси бази даних. Наприклад, поля BIGINT належать до найбільш рідко використовуваних типів, так як практично жодна програма не оперує числами в такому величезному діапазоні. Можливі обмеження цілісності даних:
  • розмір;
  • форматування даних (у деяких СУБД): числа можуть бути представлені у відсотковому, науковому, грошовому форматі;
  • розмір дробової частини;
  • значення за замовчуванням;
  • унікальність;
  • автозаповнення (нумерація записів).
  • Поля з числовим типом даних часто стають первинним індексом таблиці (при умові унікальності значень).

    Лічильник

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

    Дата і час

    Дуже зручні для роботи поля з типом даних "Дата" і "Час". Вони дозволяють зберігати дані в різних форматах:
  • DATE - тільки дата у форматі РРРР-ММ-ДД", наприклад, "2018-04-04";
  • DATETIME - дата разом з часом у форматі РРРР-ММ-ДД ГГ:ММ:СС", наприклад, "2018-04-0417:51:33";
  • TIME - час у форматі ГГ-ММ-СС";
  • YEAR - рік у форматі "РР" (17) або "РРРР" (2017);
  • TIMESTAMP - тимчасова мітка, яка може означати, наприклад, точний момент внесення запису до бази. Формат може бути різним, наприклад, "ГГГГММДДЧЧММСС".
  • Основним обмеженням цілісності є спосіб форматування даних.
    Властивості і типи полів

    Логічні значення

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

    Двійкові дані

    Бази даних передбачають можливість зберігання великих обсягів інформації. Аудіо - та відеофайли, зображення, фрагменти скомпільованого коду зберігаються в BLOB-вигляді (Binary Large Object, великий двійковий об'єкт). Поля, призначені для запису таких даних, повинні мати один з наступних типів:
  • BINARY - двійковий рядок фіксованої довжини;
  • TINYBLOB;
  • BLOB;
  • MEDIUMBLOB;
  • LONGBLOB;
  • OLE-об'єкт (Object Linking and Embedding, технологія зв'язування і вставки об'єктів) - Microsoft Access;
  • Масив двійкових даних не має користувальницьких обмежень цілісності. Роботу з BLOB-об'єктами різні бази реалізують по-різному.
    Властивості і типи полів

    Перерахування

    У деяких СУБД існує можливість створити поле, значення якого буде вибиратися із заздалегідь визначеного списку допустимих значень. Це дуже схоже на роботу радіо-кнопки в HTML. Такий тип поля називається ENUM. У дозволеному списку може бути максимум 65535 строкових значень, з яких вибирається тільки одне. Обмеження цілісності в цьому випадку очевидно - всі можливі значення поля бази заздалегідь визначені і не може приймати інші значення.

    Безлічі

    Дуже схоже працює тип даних SET. Він також приймає список допустимих значень рядка, але дозволяє вибрати відразу декілька з них. Так працює елемент чекбокс. Максимальна кількість елементів у наборі - 64.
    Властивості і типи полів
    Вибір правильного типу поля бази даних має велике значення для організації роботи програми. Це пов'язано з економією ресурсів і різними способами обробки інформації різних видів. При проектуванні і створенні бази даних важливо точно визначитися з форматом і обмеженнями цілісності інформації в кожному полі кожної таблиці. З підходящих типів, пропонованих конкретної СУБД, рекомендується вибирати той, який займає найменше місця.