Більш детальне знайомство з СУБД MySQL

 

Більш детальне знайомство з СУБД MySQL

 

         Прийшов час більш детально ознайомитися з СКБД MySQL. MySQL є безкоштовним проектом для некомерційного використання. Ще додатковим плюсом є те, що це система з відкритим кодом, тобто кожен бажаючий може переглянути програмний код СКБД і внести в нього зміни згідно ліцензії GPL (General Public License).

         Додатково слід відмітити, що це не єдина безкоштовна СКБД з відкритим кодом, але так як вона є найбільш поширена тому спиратися будемо саме на неї.

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

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

         Виокремлюють такі елементи СКБД

  • База даних (БД) – сукупність таблиць. Кількість таблиць обмежена, але обмежена вона досить великим числом, тому будемо вважати, що кількісного ліміту не існує.
  • Таблиця – сукупність полів певних типів. Кількість полів обмежена, але обмежена вона досить великим числом, тому будемо вважати, що кількісного ліміту не існує.

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

При створенні таблиці потрібно чітко вказати типи полів які вона буде містити. Типи полів умовно можна побілити на три типи, це числові, текстові та типи дати-часу. Розглянемо їх по порядку:

  • Числові типи:
    • Використовуються для зберігання чисел, всі числові типи можна умовно поділити на два підтипи для зберігання точних чисел і чисел з плаваючою комою. Всі числові типи характеризуються довжиною зберігаємих чисел, а типи з плаваючою комою ще і кількістю знаків після коми. Ці значення вказуються після оголошення типу наприклад, FLOAT(10, 2). В прикладі вказана довжина числа у 10 символів і 2 символи після коми. Також оголошення числових типів можна завершувати ключовими словами ZEROFILL та (або) USIGNED. Ключове слово USIGNED значить, що стовпець буде містити тільки додатні числа, або 0. Якщо ж в такий тип відбудеться спроба записати від’ємне чисто операція завершиться помилкою.
      • ZEROFILL – означає, що число буде відображатися з 0 записаними спереду. Наприклад якщо довжина поля 4 цифри то число 25 буде відображене (і записане) як 0025.
      • NUMERIC або DECIMAL (DEC). Ці типи даних ідентичні. Тип числа з плаваючою крапкою. Використовується для зберігання грошових значень.
      • INTEGER (INT). Ціле число довжиною в 4 байти. Тобто може зберігати значення до двох у тридцять другому степені. Є декілька підтипів цього типу.
      • TINYINT. Комірка для збереження числа в один байт, тобто від 1 до 127 (один біт відводиться для від’ємного діапазону).
      • SMALLINT. Межа значень числа в два байти.
      • MEDIUMINT. Межа значень числа в три байти.
      • BIGINT. Найбільший тип для цілих чисел. Використовує вісім байт для діапазону значень.
      • FLOAT. Це числа з плаваючою крапкою. Точність чотири байти. Може містити значення від 1.18 на 10 в мінус 38 степені до 3.4 на 10 в 38 степені.
      • DOUBLE. Також з плаваючою крапкою. Тип підвищеної точності використовує 8 байт для збереження числа. Діапазон значень +-10^38.
    • Текстові типи даних:
      • CHAR. Використовується для збереження рядків фіксованої довжини. Після CHAR зазвичай вказується довжина в символах. Якщо ж довжину не вказати то рахується, що тип має довжину в 1 символ. Максимальна довжина поля 255 символів. Якщо рядок менший за довжину типу, то він буде доповнений пробілами, якщо більша то обрізана. При поверненні значення пробіли видаляються СКБД автоматично.
      • VARCHAR. Тип використовується для збереження радків змінної довжини. Так як і в попередньому типі вказується його довжина, наприклад VARCHAR(30), при такому оголошенні рядки довше 30 символів будуть обрізані. Різниця між цим і попереднім типом в тому, що в типі з фіксованою довжиною обробка інформації відбувається швидше, але розмір самої БД буде більший.
      • TEXT та BLOB. Ці типи полів використовуються для збереження більш довших рядків (фрагментів) тексту. Абревіатура BLOB означає великий двійковий об’єкт. Ці два типи однакові за винятком того, що в BLOB обробка йде з урахуванням регістру символів, а в TEXT – без. Обидва типи мають змінну довжину. Зберігають 64 кБ символів тексту.
      • TINYTEXT та TINYBLOB. Зберігають текст довжини не більше 255 символів.
      • MEDIUMTEXT та MEDIUMBLOB. Зберігають текст довжини не більше 16 мБ символів.
      • LONGTEXT та LONGBLOB. Зберігають текст довжини не більше 4 гБ символів.
      • ENUM. Цей тип зберігає набір значень. Наприклад , ENUM(`m`,`a`,`z`).
    • Типи дати та часу.
      • DATE. Тип використовується для збереження дат в форматі
        РРРР-ММ-ДД
      • TIME. Зберігає час у форматі ГГ:ХХ:СС
      • DATETIME. Комбінація двох попередніх типів у форматі
        РРРР-ММ-ДД ГГ:ХХ:СС
      • TIMESTAMP. Якщо при заповненні запису не вказати значення цього типу буде автоматично підставлено значення дата зміни або створення запису. Має формат аналогічний до DATETIME.
      • YEAR. Зберігає значення року, можливі дві довжини типу в 2 та в 4 байти. Якщо довжина 2 байти то значення поля буде між 1970 та 2069.

На цьому базові типи полів СКБД MySQL перераховані.

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

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