Много програми трябва да запазват или съхраняват данни за по-късна употреба и да четат записаните данни. Въпреки че има много начини да направите това, най-често срещаният подход е използването на Система за управление на релационни бази данни (RDBMS).MySQL е стандартна RDBMS с отворен код, която е широко приета от проекти за разработка на софтуер. Това ръководство предоставя общ преглед на MySQL и обяснява основните концепции за RDBMS.
Какво е релационна база данни (RDBMS)?
Базата данни е приложение за съхранение и извличане на данни. Въпреки че механизмите се различават, повечето бази данни предоставят API, позволяващ на потребителите да добавят, изтриват, осъществяват достъп, търсят и управляват своите данни. Като алтернатива на използването на база данни, данните могат да се съхраняват в текстови файлове или хеш таблици. Тази техника обаче не е толкова бърза или удобна, колкото използването на база данни и рядко се използва в съвременните системи.
Ранните приложения за бази данни се превърнаха в съвременна релационна база данни , което позволява на потребителите да съхраняват огромни количества данни. RDBMS вече не принуждава потребителите да съхраняват данни в една голяма таблица. Той предоставя по-структурирани начини за разделяне на данните и е проектиран за по-ефективен достъп. RDBMS приложенията са оптимизирани за бързо четене и запис и групово прехвърляне на информация.
Дизайнерите на бази данни концептуализират и организират данните като таблици , колони и редове . Редът се нарича също запис , или кортеж. Съвременните релационни бази данни структурират данните, използвайки следните концепции:
- Всяка база данни съдържа една или повече таблици.
- Когато потребителят създава таблица, той посочва колоните в нея едновременно.
- Всяка колона представлява конкретен атрибут или поле в рамките на записа. Колоната е предназначена да съхранява данни от определен тип данни, например
VARCHAR
, което означава низ с променлива дължина. - Таблица съдържа група от редове.
- Всеки ред в таблица представлява уникален запис в базата данни. Всяка колона в реда съдържа отделно поле в този запис.
- Таблицата на базата данни е като матрица две по две. Всеки квадрат в матрицата съдържа част от данни.
RDBMS се счита за релационна, тъй като позволява на потребителите да дефинират връзки в и между различните таблици, използвайки ключове и индекси. Релационната база данни позволява на потребителя да предостави или генерира първичен ключ за всеки ред. SQL може да гарантира, че този ключ е уникален в таблицата. Полетата в тези таблици може да са свързани едно с друго въз основа на техните първични и външни ключове. Тези връзки помагат за структурирането и организирането на базата данни и ограничават количеството дублиране на данни.
Приложението RDBMS винаги предоставя изброените по-долу възможности. Отделните приложения може да предлагат повече опции.
- Позволява създаването, дефинирането, модифицирането и премахването на таблици, колони, редове, първични ключове и индекси на базата данни.
- Приема SQL заявки и съхранява или извлича съответните данни, като комбинира информация от различни таблици на база данни, ако е необходимо.
- Той гарантира целостта на данните и препратките между таблиците. Например външният ключ винаги сочи към валиден ред в друга таблица.
- Автоматично актуализира индекси, времеви печати и други вътрешно генерирани атрибути според изискванията.
Релационните бази данни използват език на структурирани заявки (SQL) за запитване и актуализиране на базата данни. Например, клиент на RDBMS използва SQL INSERT
команда за добавяне на нов ред към една от таблиците на базата данни. Когато потребителят добави нов ред, той едновременно посочва стойност за всяка колона. Допълнителни SQL команди се използват за модифициране и изтриване на редове, управление на елементи от базата данни и извличане на списък със записи, отговарящи на специфични критерии.
Например, помислете за база данни за училище. Тази база данни има няколко таблици за учители, студенти, курсове, класни стаи и т.н. Дефиницията на Студенти
таблицата може да съдържа колони за име и фамилия на ученика, идентификационен номер, клас, семейство и други. Всеки ред в тази таблица символизира отделен ученик и служи за представяне и събиране на цялата необходима информация за този ученик. Ако името на ученика е „Джон“, first_name
колона в този ред съдържа John
. Идентификационният номер на ученика може да служи като индекс и първичен ключ и може да се използва за кръстосана препратка към ученика в други таблици.
Например, опростен Студенти
таблицата може да бъде дефинирана с помощта на структурата, показана по-долу. Най-горният ред представлява имената на колоните в таблицата. Таблицата по-долу в момента има два реда данни, по един за всеки ученик.
first_name | фамилно_име | оценка | family_id | udent_id |
---|---|---|---|---|
Джон | Сърна | 4 | 1116 | 5005 |
Джейн | Студент | 5 | 1224 | 5350 |
Какви са някои общи условия за RDBMS?
Следните термини често се използват във връзка с бази данни:
- Колона: Набор от стойности от един и същ тип данни, представляващи един атрибут в таблица. Колоните се дефинират при създаване на таблица.
- Сложен ключ: Ключ, състоящ се от множество колони. Съставен ключ се използва, когато една колона не може надеждно да идентифицира ред.
- База данни: Организирана група данни, която се съхранява по електронен път. Базата данни обикновено е организирана в по-малки групи информация.
- Външен ключ: Индекс, използван за кръстосано свързване на запис в таблица с ред в друга таблица.
- Индекс: Метод за по-бърз достъп до записи в базата данни. Индекс може да бъде създаден с помощта на всяка комбинация от атрибути, но изпълнението е специфично за приложението. Индексът на базата данни е подобен на индекс в книга.
- Първичен ключ: Колона, служеща като индекс за уникално идентифициране на ред в таблица. Първичният ключ може да бъде автоматично генериран или дефиниран в дефиницията на таблицата. Първичният ключ може да се използва за намиране на конкретен ред в таблица.
- Цялост на препратката: Свойство на вътрешна база данни, за да се гарантира, че външният ключ винаги препраща към валиден ред в друга таблица.
- Система за управление на релационни бази данни (RDBMS): Тип система на база данни, базирана на връзки между таблици и записи.
- Ред: Структуриран запис в таблица, състояща се от набор от свързани данни. Всеки ред в таблица има една и съща структура, която съответства на спецификациите на колоните в дефиницията на таблицата. Редът се нарича също запис или кортеж.
- Език на структурирани заявки (SQL): Опростен език за програмиране, специфичен за домейна, използван за управление на данни в RDBMS.
- Таблица: Колекция от записи в базата данни, състояща се от поредица от редове и колони. Таблицата може да се разглежда като двумерна матрица от информация.
SQL срещу MySQL
Термините SQL и MySQL често се смесват или използват взаимозаменяемо, но не са еднакви. SQL е стандартният език за програмиране за заявки за RDBMS приложения. Използва се за писане на заявки към база данни и може да се използва с всяка система за бази данни, която го поддържа. MySQL е специфичен екземпляр на RDBMS, който използва SQL. Потребителите на база данни изпращат SQL команди към RDBMS като MySQL, за да четат и записват данни и да администрират базата данни. Няма приложение с име SQL, така че няма смисъл да се прави сравнение „SQL срещу MySQL“. Въпреки това, терминът SQL база данни често се използва неофициално като съкратен термин за всяка релационна база данни.
Езикът SQL
Езикът на SQL е посочен като серия от изрази. Не се счита за императивен език за програмиране с общо предназначение като Python, тъй като му липсва пълен набор от структури от данни и контролни оператори. Вместо това е специфичен за домейн език, предназначен за една единствена цел. SQL е предназначен за запитване, дефиниране и манипулиране на данни. Той също така е проектиран да осигури контрол на достъпа до данни. Едно от предимствата на SQL е, че той има достъп до множество записи, използвайки само една команда. Той не указва как базата данни трябва да има достъп до запис.
Езикът на SQL се състои от определени ключови думи, изрази, заявки, изрази, оператори и незадължителни клаузи. Идентификаторите на обекти се използват за препращане към обекти на база данни, включително таблици и колони. SQL поддържа голям брой предварително дефинирани типове данни, като CHAR
, за знака и INTEGER
. Някои от най-важните SQL оператори включват =
, <>
, >код> ,
<
, IN
, Харесвам
, ВЯРНО
, FALSE
и НЕ
. Последните версии на SQL вече поддържат прост CASE
изявление. Документацията на MySQL съдържа повече информация за структурата на SQL език, типове данни и изрази.
Някои от най-широко използваните SQL изрази и клаузи включват следното:
- ALTER: Променя структурата на обект от база данни.
- СЪЗДАВАНЕ: Създава обект на база данни, като таблица или база данни.
- ИЗТРИВАНЕ: Премахва един или повече съществуващи реда от базата данни.
- ИЗПУСКАНЕ: Изтрива за постоянно обект от базата данни.
- ОТ: Показва коя таблица да се използва за заявката.
- ПРЕДОСТАВЯ: Упълномощава потребител на база данни да извърши определено действие.
- ГРУПИРА ПО: Клауза за организиране на изход от
SELECT
изявление. - ВЪВЕТЕ: Добавя редове към базата данни.
- Присъединете се: Клауза, указваща как да се комбинират и събират данни от множество таблици.
- СЛИВАНЕ: Комбинира данни от множество таблици.
- ПОРЪЧАЙТЕ ОТ: Клауза за сортиране на изхода от заявка.
- ИЗБЕРЕТЕ: Извлича данни от една или повече таблици. Тази команда не променя базата данни или никакви данни.
- АКТУАЛИЗИРАНЕ: Променя един или повече съществуващи реда.
- КЪДЕ: Клауза за идентифициране на редовете, с които заявката трябва да работи. Обикновено се използва с оператор за сравнение.
Заместващият знак *
операторът често се използва във връзка с SELECT
команда. Тази команда инструктира SQL да покаже всички колони в изхода.
По-долу са дадени няколко примера за SQL заявки. Следната SQL команда показва name
на всеки клас в Class
база данни за всеки ред, където е стойността на субект
колоната е math
.
SELECT name
FROM Class
WHERE subject='math';
Следващият SQL израз създава Class
маса. CREATE
оператор дефинира всяка колона в таблицата, заедно с нейния тип данни, в последователен ред. VARCHAR
типът данни се използва за задържане на низ с променлива дължина. SMALLINT
типът данни се използва за малки цели числа от подписания диапазон от -32768
до 32767
.
CREATE TABLE Class (
classID smallint,
name varchar(255),
subject varchar(255),
level smallint
);
Какво е MySQL база данни?
MySQL е RDBMS, която внедрява SQL. Първоначално е проектиран за използване с малки до средни бази данни, но сега може да обработва дори много големи количества съхранявани данни. MySQL е написан на C/C++ и е предимно съвместим със стандарта SQL. Въпреки това, той добавя много разширения и подчертава скоростта и надеждността пред перфектното съответствие. По-подробна дискусия относно съответствието на MySQL и SQL може да бъде намерена в документацията на MySQL относно стандартите за съответствие.
Основната версия на MySQL се разпространява от Oracle Corporation и е достъпна безплатно под лиценз с отворен код. Текущата версия на MySQL е 8.0. MySQL може да се използва във всяка дистрибуция на Linux и на повечето други платформи. Той е важен компонент отстека LAMP с отворен код , заедно с Linux, Apache и езика за програмиране PHP. LAMP стекът е крайъгълният камък на разработката на уеб приложения с отворен код в Linux. MySQL може да се използва като част от клиент/сървър система или като част от вградена система.
Както всички RDBMS приложения, MySQL е релационна база данни. Администраторите и потребителите дефинират връзки в и между таблиците в базата данни. Различните колони могат да бъдат маркирани като задължителни или незадължителни и могат да служат като първичен ключ или като указател към друга таблица. MySQL е стабилен, надежден и лесен за използване. Ето някои специфични предимства на MySQL:
- MySQL е зрял, популярен и добре утвърден продукт. Той има повече подкрепа от общността в сравнение с други бази данни с отворен код и по-добри справочни материали и документация.
- MySQL може да бъде конфигуриран да бъде ACID-съвместим когато се използва със системата за съхранение InnoDB. Акронимът ACID означава атомност, консистенция, изолация и издръжливост. Това означава, че може да гарантира валидност на данните, независимо от грешки, повреди или прекъсвания.
- Той е известен с високата си производителност, благодарение на функции като оптимизирани библиотеки на класове, компресия, разпределение на паметта и хеш таблици. Той поддържа многонишкови нишки на ядрото за по-ефективна работа на системи с множество процесори.
- Поддържа много големи бази данни, съхраняващи до стотици милиони записи и до 64 индекса на таблица.
- MySQL предоставя подобрени механизми за сигурност, включително криптиране на всички пароли.
- Позволява репликация на данни и резервиране за повишена надеждност.
- MySQL осигурява поддръжка за псевдоними на таблици и колони и пълна поддръжка за много различни набори от знаци.
- MySQL работи добре с PHP, който се използва широко в уеб разработката.
- Работи с много различни компилатори и на много различни платформи и е проектиран да бъде преносим между системите. Клиентските програми могат да бъдат написани на много езици. MySQL предоставя API за C/C++, PHP, Java, Python, Ruby и Perl.
- MySQL се предлага като библиотека, която може да бъде вградена в самостоятелни приложения.
- MySQL е пакетиран с няколко удобни клиентски помощни програми, включително
mysqldump
иmysqladmin
. Потребителите могат да проверяват, оптимизират и поправят таблици с помощта наmysqlcheck
програма. - Лицензът с отворен код MySQL позволява на разработчиците да персонализират MySQL и да променят изходния код, за да отговори на техните изисквания.
MySQL се предлага и в по-пълнофункционално Enterprise Edition, с пълна поддръжка на клиенти. За информация относно инсталирането на MySQL на Ubuntu или други Linux платформи, вижте ръководството на Linode за Инсталиране и конфигуриране на MySQL в Ubuntu 20.04.
SQL срещу NoSQL
NoSQL системите са алтернатива на традиционните базирани на SQL RDBMS приложения. Както подсказва името, те използват нерелационен модел за обработка на данни. Те обикновено са по-малко структурирани и по-гъвкави от RDBMS. NoSQL системите не са стандартизирани и могат да приемат различни формати. Те обаче обикновено са базирани на ключ-стойност, графика или документ, а не на таблица. Някои NoSQL приложения могат да използват структурирани специфични за домейна езици или дори да приемат SQL заявки паралелно. Няколко примера за NoSQL приложения включват Redis и MongoDB. За повече информация относно NoSQL системите вижте ръководството на Linode за сравнение между SQL и NoSQL бази данни.
Какви са MySQL клиент и сървър?
MySQL клиентът и MySQL сървърът са два различни компонента, които работят заедно в мрежова архитектура. Обикновено има един централен сървър и един или повече клиенти. Приложението за сървър на база данни MySQL е инсталирано на хост, често като част от LAMP стека. Този сървър съхранява конфигурацията и данните на базата данни и отговаря на заявки от клиенти. Той също така налага сигурността и всяка система за контрол на достъпа и репликира и архивира данни според изискванията. Един и същ сървър може да хоства множество бази данни за различни клиенти.
MySQL клиентът позволява на потребителите да се свързват с MySQL сървър, или на същата система, или на различен хост. Клиентът изпраща SQL заявки към сървъра за четене или запис в база данни. MySQL клиентът също така администрира, поддържа и защитава клиента. Самостоятелен клиент се препоръчва за потребители, които искат да се свържат само с отдалечена база данни, за да изпълняват заявки. Администраторите, които искат да хостват база данни на сървъра, трябва да инсталират пълния MySQL сървърен пакет. Инсталацията на сървъра включва клиент за създаване и администриране на базата данни.
Стандартната клиентска програма за команден ред MySQL се нарича mysql
. Може да се инсталира без сървърния компонент с помощта на командата yum install mysql
или apt-get install mysql-client
. За достъп до MySQL клиента използвайте командата mysql <име_на_база_данни>код> . Потребителското име, паролата и IP адресът на сървъра могат да бъдат посочени чрез допълнителни параметри.
Когато потребителят влезе успешно, клиентът показва подканата за MySQL mysql>
. След това потребителят може да изпълнява SQL команди. За повече информация относно инсталирането и използването на MySQL, вижте ръководството на Linode относно Как да се свържете с MySQL или MariaDB база данни.
За какво се използва MySQL?
MySQL е универсална RDBMS за използване с набор от данни от всякакъв размер. Може да се разглежда всеки път, когато приложение трябва да съхранява и извлича данни. MySQL първоначално е разработен за малки до средни конфигурации с един сървър. Но с последните подобрения в производителността и мащабируемостта, той може да се използва практически навсякъде в приложение от всякакъв размер. Дори големи компании, включително Uber, Airbnb и Shopify, използват MySQL.
Потребителите трябва да инсталират MySQL, за да конфигурират WordPress. WordPress използва MySQL за съхраняване на всички свои данни и конфигурационни файлове и динамично взаимодейства с MySQL за показване и създаване на уеб страници. Потребителите не трябва непременно да разбират SQL, за да използват WordPress. Въпреки това, той може да бъде полезен при извършване на разширени персонализации. В Linux WordPress често се инсталира като пакет заедно с MySQL и останалата част от LAMP стека. За повече информация как да конфигурирате MySQL и WordPress, вижте ръководството за Linode за Инсталиране на WordPress в Ubuntu 20.04.
Други често срещани приложения за MySQL включват съхранение на данни, обработка на транзакции, системи за резервации, електронна търговия и уеб бази данни. Например MySQL база данни може да поддържа списъка с продукти и инвентара за онлайн магазин.
Заключение
Това ръководство отговаря на често задавания въпрос „Какво е MySQL база данни?“ MySQL е релационна база данни, която организира данни въз основа на връзките между таблици и полета. Това е вид система за управление на релационна база данни (RDBMS), която съхранява записи като редове в таблици. Всеки ред се състои от определен брой колони, които представляват различните атрибути на записа с данни. Специфичният за базата данни език за програмиране SQL се използва за съхраняване и извличане на данни от MySQL. SQL използва серия от дискретни изрази и е предназначен за работа с RDBMS системи.
MySQL е известен със способността си да съхранява големи таблици и огромни количества данни, както и със своята скорост и надеждност. Той предоставя API за много често срещани езици за програмиране и е опакован с няколко полезни помощни програми. MySQL сървърът съхранява данни и отговори на заявки от MySQL клиенти. Клиентът винаги е пакетиран със сървъра, но може да се използва като самостоятелно приложение за комуникация с отдалечени бази данни. MySQL се използва в много широко известни компании и е от съществено значение за тези, които искат да използват WordPress. Въпреки това, той се използва и в уеб бази данни и съхранение на данни. За повече информация относно MySQL вижте документацията на MySQL.
Повече информация
Може да пожелаете да се консултирате със следните ресурси за допълнителна информация по тази тема. Въпреки че те са предоставени с надеждата, че ще бъдат полезни, моля, имайте предвид, че не можем да гарантираме за точността или навременността на външно хостваните материали.
- Официална MySQL документация