База даних MySQL


База даних MySQL

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


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

MySQL - це система керування базами даних. У реляційній базі даних дані зберігаються не всі скопом, а в окремих таблицях, завдяки чому досягається виграш в швидкості і гнучкості. Таблиці зв'язуються між собою за допомогою відносин, завдяки чому забезпечується можливість об'єднувати при виконанні запиту дані з декількох таблиць. SQL як частина системи MySQL можна охарактеризувати як мову структурованих запитів плюс найбільш поширений стандартний мова, яка використовується для доступу до баз даних. 

MySQL - це ПЗ з відкритим кодом. Застосовувати його і модифікувати може будь-хто. Таке ПЗ можна одержувати по Internet і використовувати безкоштовно. При цьому кожен користувач може вивчити вихідний код і змінити його відповідно до своїх потреб.

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

Технічні можливості СУБД MySQL 


MySQL є системою клієнт-сервер, яка містить багато-SQL-сервер, що забезпечує підтримку різних обчислювальних машин баз даних, а також кілька різних клієнтських програм і бібліотек, засоби адміністрування і широкий спектр програмних інтерфейсів (API) . Ми також постачаємо сервер MySQL у вигляді багато поточної бібліотеки, яку можна підключити до призначеного для користувача додатком і отримати компактний, більш швидкий і легкий в управлінні продукт. Доступно також велика кількість програмного забезпечення для MySQL, в більшій частині - безкоштовного. 
MySQL правильно вимовляється як '' Май Ес Кью Ель ''.

SQL 


SQL складається з двох частин: серверної і клієнтської. 
Сервер MySQL постійно працює на комп'ютері. Клієнтські програми (наприклад, скрипти PHP) посилають сервера MySQL SQL-запити через механізм сокетів (тобто за допомогою мережевих засобів), сервер їх обробляє і запам'ятовує результат. Тобто скрипт (клієнт) вказує, яку інформацій він хоче отримати від сервера баз даних. Потім сервер баз даних посилає відповідь (результат) клієнту (скрипту). 

Чому завжди передається не весь результат? Дуже просто: справа в тому, що розмір результуючого набору даних може бути занадто великим, і на його передачу по мережі піде надто багато часу. Та й рідко коли буває потрібно отримувати відразу весь запитував (тобто всі записи, що задовольняють висловом запиту). Наприклад, нам може знадобитися лише підрахувати, скільки записів задовольняє того чи іншого умові, або ж вибрати з даних тільки перші 10 записів. Механізм використання сокетів має на увазі технологію клієнт-сервер, а це означає, що в системі повинна бути запущена спеціальна програма - MySQL-сервер, яка приймає і обробляє запити від програм. Так як вся робота відбувається в дійсності на одній машині, накладні витрати по роботі з мережевими засобами незначні (установка і підтримка з'єднання з MySQL-сервером обходиться досить дешево). 

Структура MySQL трирівнева: бази даних - таблиці - записи. Бази даних і таблиці MySQL фізично представляються файлами з розширеннями frm, MYD, MYI. Логічно - таблиця являє собою сукупність записів. А записи - це сукупність полів різного типу.Ім'я бази даних MySQL унікально в межах системи, а таблиці - в межах бази даних, поля - в межах таблиці. Один сервер MySQL може підтримувати відразу кілька баз даних, доступ до яких може розмежовуватися логіном і паролем. Знаючи ці логін і пароль, можна працювати з конкретною базою даних. Наприклад, можна створити або видалити в ній таблицю, додати записи і т. Д. Зазвичай ім'я-ідентифікатор і пароль призначаються хостинг провайдерами, які і забезпечують підтримку MySQL для своїх користувачів.

Основні характеристики:

  1. 32-розрядна Linux-Intel - розмір таблиці 4 Гб. 
  2. Solaris 2.7 Intel - 4 Гб 
  3. Solaris 2.7 UltraSPARC - 512 Гб  - WindowsXP - 4 Гб

Як можна бачити, розмір таблиці в базі даних MySQL зазвичай лімітується операційною системою. За замовчуванням MySQL-таблиці мають максимальний розмір близько 4 Гб. Для будь-якої таблиці можна перевірити / визначити її максимальний розмір за допомогою команд SHOW TABLE STATUS або myisamchk -dv table_name. Якщо велика таблиця призначена тільки для читання, можна скористатися myisampack, щоб злити кілька таблиць в одну і стиснути її. Зазвичай myisampack утискає таблицю принаймні на 50%, тому в результаті можна отримати дуже великі таблиці. 

Вимоги до апаратного забезпечення

Система пред'являє наступні вимоги до апаратного та програмного забезпечення сервера: 
Мінімальні вимоги до сервера: 1 комп'ютер з процесором Pentium II 233 МГц і вище, 128 Мб оперативної пам'яті. 
Рекомендовані вимоги до сервера: 2 комп'ютери з процесором Pentium II 233 МГц і вище, 256Мб оперативної пам'яті. У цьому випадку передбачається, що один комп'ютер буде виконувати функції SQL сервера, а інший - сервера додатків CimWebCenter. 
Для роботи системи необхідно наступне встановлене програмне забезпечення: Apache Web Server, PHP 4.3.x, MySql, на платформі FreeBSD або Linux. 
Існує також можливість інсталяції системи на платформі Windows. При цьому вимоги до попередньо програмного забезпечення залишаються колишніми. 
Для роботи з клієнтською частиною системи потрібен комп'ютер, підключений по протоколу TCP / IP до мережі, в якій знаходиться сервер із встановленою CimWebCenter. 
Мінімальні вимоги до комп'ютера клієнта: Pentium 200 МГц і вище, 32 Мб оперативної пам'яті. Робота з системою здійснюється за допомогою браузера Internet Explorer версії 6.0. 

Для роботи в режимі WYSIWIG редактора, також потрібна наявність на клієнтському комп'ютері встановленого пакета MsOffice. При першому запуску системи може знадобитися дистрибутив пакета MsOffice.

Приклад створення бази даних

Для створення бази даних використовувався Ibexpert та утиліта адміністрування InterBase (Підтримується InterBase MySQL Yaffil) Працює одночасно з декількома базами даних. Містить редактори для всіх об'єктів БД з синтаксичної підсвічуванням, SQL редактор з історією запитів і можливістю фонового виконання запитів, відладчик збережених процедур і тригерів, пошук в метаданих, повне і часткове вилучення даних і метаданих, аналізатор залежностей об'єктів баз даних, звіти по метаданих, менеджери користувачів і призначених для користувача привілеїв, експорт даних в різні формати.

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

Створення таблиці 

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

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

Ключове слово NULL використовується для вказівки того, що в даному стовпці можуть міститися значення NULL. Значення NULL відрізняється від пробілу або нуля - до нього вдаються, коли необхідно вказати, що дані недоступні, опущені або неприпустимі. Якщо вказано ключове слово NOT NULL, то будуть відхилені будь-яким спробам помістити значення NULL в даний стовпець. Якщо вказано параметр NULL, приміщення значень NULL в стовпець дозволено. За замовчуванням стандарт SQL передбачає наявність ключового слова NULL.

CREATE GENERATOR GEN_TOWN_ID;

CREATE TABLE TOWNS (

ID_TOWN INTEGER NOT NULL,

NAME VARCHAR(30) NOT NULL,

DOLGOTA INTEGER,

SHIROTA INTEGER,

ID_STR INTEGER NOT NULL);

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

id_town - ідентифікатор міста, дане поле не може бути порожнім. 

name - це поле містить назву міста, воно не може перевищувати 30 символів . 

id_country - ідентифікатор країни до якої належить місто. 

dovgota- довгота на якій знаходиться дане місто. 

shirota- широта на якій знаходиться дане місто.

CREATE GENERATOR GEN_COUNTRY_ID_STR;

CREATE TABLE COUNTRY (

ID_STR INTEGER NOT NULL,

NAME VARCHAR(30) NOT NULL,

CAPITAL VARCHAR(30) NOT NULL,

POULATION INTEGER);

Таблиця країни: 
id_str - ідентифікатор країни 
name - це поле містить назву країни 
capital - в даному поле знаходиться столиця обраної країни 
naselenie- населення даної країни (в млн ). 
CREATE TABLE LOG (
 "WHEN" TIMESTAMP, 
 "USER" VARCHAR (20), 
 "ACTION" CHAR (3));  Таблиця лог: дана таблиця містить інформацію про те Хто? Коли? і що зробив (видалив, змінив, вставив)? 
When- дата дії; 
User- хто вчиняє дії; 
Action- показує дію яке здійснює користувач 
Таблиця країни: 
id_str - ідентифікатор країни 
nazvanie- це поле містить назву країни 
stolica - в даному поле знаходиться столиця обраної країни 
naselenie- населення даної країни (в млн) . 

CREATE TABLE LOG (
"WHEN" TIMESTAMP, 
"USER" VARCHAR (20), 
"ACTION" CHAR (3));

Таблиця лог: дана таблиця містить інформацію про те Хто? Коли? і що зробив (видалив, змінив, вставив)? 

When- дата дії; 

User- хто вчиняє дії; 

Action- показує дію яке здійснює користувач 

Створення генераторів 

CREATE GENERATOR GEN_TOWNS_ID; 
SET GENERATOR GEN_TOWNS_ID TO 24; 
CREATE GENERATOR GEN_COUNTRY_ID_STR; 
SET GENERATOR GEN_COUNTRY_ID_STR TO 15; {{1 }} Дані генератори 

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

CREATE TRIGGER TRIG_TOWNS FOR TOWNS 
ACTIVE BEFORE INSERT POSITION 0 
as 
begin 
if (new.id_town is null) then new.id_town = gen_id (gen_towns_id, 1); 
end 

Даний тригер автоматично створює ідентифікаційний номер кожного нового міста в таблиці towns. 

CREATE TRIGGER TRIG_COUNTRY FOR COUNTRY 
ACTIVE BEFORE INSERT POSITION 0 
AS BEGIN 
IF (NEW.Id_str IS NULL) THEN NEW.Id_str = GEN_ID (gen_country_id_str, 1); 
END 

Теж саме робить і 'той тригер. тільки для таблиці country, відзначимо що ідентифікаційний номер кожної нової країни або міста збільшується на 1. 

Створення збережених процедур 

 CREATE PROCEDURE COUNTRY_1 
RETURNS (
TOWN_T VARCHAR (30), 
POPULATION_C INTEGER) 
AS 
begin 
for select country., towns.population, country.population 
from country,  towns
where (country.id_str =  towns.id_str) 
into: country_c,:  town_t,: population_s do suspend; 
end

Дана процедура здійснює вибірку з таблиць Country і  Towns

В даному варіанті при виконанні процедури, що будуть показані назва країн, міст, а так само населення країн. Вибірка здійснюється за ідентифікатором країни.

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

Далі буде ...