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

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

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

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

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


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

Стовпчики таблиці називаються полями і містять конкретний атрибут сутності. Так, у таблиці "" Студенти "" в якості полів виступають:

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

Рядки називаються записами і представляють окремий реальний об 'єкт (конкретного студента).

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

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

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


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

Поле запису є найменшою іменованою одиницею інформації в базі даних. Воно має дві обов 'язкові властивості:

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

Поле може бути позначено як унікальне або ключове.

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

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

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

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

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

Крім того, деякі поля абсолютно необхідні для опису сутності, в той час як заповнення інших необов 'язково. У студента може не бути телефону, але ім 'я і заліковка є завжди.


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

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

Основні типи і формати полів, підтримувані більшістю СУБД:

  • числові - цілі та речові;
  • рядкові;
  • бінарні;
  • логічні;
  • дата і час;
  • перерахування і безлічі.

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

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

Рядки

Рядкові значення можуть містити будь-які символи. Основне обмеження накладається на довжину.


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

Назви рядкових типів полів у різних СУБД можуть відрізнятися. Найбільш популярні:

  • CHAR - фіксована довжина до 255 символів. Якщо розмір рядка менший за встановлений рядок, його буде доповнено пробілами.
  • VARCHAR, TINYTEXT - змінна довжина до 255 символів, для зберігання розміру витрачається додатковий байт.
  • TEXT, MEMO - змінна довжина до 65.535 символів.
  • MEDIUMTEXT - максимум 16.777.215 знаків.
  • LONGTEXT - максимально 4.294.967.295 символів у рядку.

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

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

Можливі обмеження цілісності: довжина рядка, обов 'язковість, типове значення.


Числа

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

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

Для цілих чисел:

  • TINYINT, байт - діапазон значень 0 - 255 (або -127 - 128);
  • SMALLINT - від 0 до 65.535 (від -32.768 до 32.767);
  • MEDIUMINT - від 0 до 16.777.215 (від -8.388.608 до 8.388.607);
  • INT - від 0 до 4294967295 (від -2.147.483.648 до 2.147.483.647);
  • BIGINT - від 0 до 18.446.744.073.709.551.615 (від -9.223.372.036.854.775.808 до 9.223.372.036.854.775.807).

Для речових чисел:

  • FLOAT - число знаків у дробовій частині мантіси не більше 24.
  • DOUBLE, REAL - число з подвійною точністю, після точки може бути до 53 знаків.

Існує ще один специфічний тип поля БД - DECIMAL (NUMERIC). Це таке ж число, як DOUBLE, записане у вигляді рядка.


Завжди слід вибирати мінімально можливий розмір поля. Наприклад, для зберігання екзаменаційної оцінки студента цілком вистачить одного байту TINYINT. Це дозволяє економити ресурси бази даних. Наприклад, поля BIGINT відносяться до найрідкісніших типів, оскільки практично жодна програма не оперує числами в такому величезному діапазоні.

Можливі обмеження цілісності даних:

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

Поля з числовим типом даних часто стають первинним індексом таблиці (за умови унікальності значень).

Лічильник

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

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

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

Дата і час

Дуже зручні для роботи поля з типом даних "Дата" та "Час". Вони дозволяють зберігати дані в різних форматах:

  • DATE - тільки дата у форматі "" ГГГГ-ММ-ДД "", наприклад, "" 2018-04-04 "";
  • DATETIME - дата разом з часом у форматі "" ГГГГ-ММ-ДД ЧЧ:ММ:СС "", наприклад, "" 2018-04-04 17: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. У дозволеному списку може бути максимум 65.535 рядкових значень, з яких вибирається тільки одне.

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

Безлічі

Дуже схоже працює тип даних SET. Він також приймає список допустимих рядкових значень, але дозволяє вибрати відразу кілька з них. Так працює елемент чекбокс. Максимальна кількість елементів у наборі - 64.

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

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