Verilənlər Bazasının əsasları
Məqalə udemy kursumuz üçün yazılıb
Verilənlər Bazası nədir? DB ( Data Base )
Verilənlər bazası datanın (məlumatın) sistematik təşkil edilmiş formada saxlanılmasıdır. Reallıqda bütün hamısı faylın daxilinə xüsusi formatda yazılmış məlumatlardır. Verilənlər bazalarının adlarını sadalayım, amma əsas ilk ikisini yadda saxlayın digərlərini biz müzakirə etməyəcəyik, çünki bizim proqrama daxil deyil. Növləri: Relational, NoSQL, In-Memory, Time-Series, Columnar, Graph, Spatial, Object-Oriented
Verilənlər Bazasının İdarə Etmə sistemi nədir? DBMS ( Data Base Management System)
Azərbaycan dilinə tərcümə edərkən, inanıram ki artıq daha aydın olur DBMS nə olduğunu anlamaq. Adından da məlum olduğu kimi, DBMS verilənlər bazasında olan məlumatları idarə etmək, verilənlər bazasına məlumatların əlavə etmək, və oradan silmək üçün istifadə olunur. Datanı idarə etmək üçün qaydaları təyin edir, məlumatın təhlükəsizliyi çox önəmlidir, ona görə datanı idarə edilməsi, kimin tərəfindən idarə ediləcəyi və necə ediləcəyi çox önəmlidir. Yuxarıda qeyd etdiyimiz verilənlər bazalarının növlərindən Relational Database üçün RDBMS var. RDBMS əsasında elə Relation Database nə olduğunu da yazım.
RDBMS Relational Database Management System ( Əlaqəli Verilənlər Bazasının idarə etmə sistemi )
Əlaqəli verilənlər bazasında məlumat cədvəl formasında saxlanılır, ona görə də sütun və sətirlərdən ibarət olur. Excel istifadə edənlər üçün daha rahat təsəvvür etmək olar. Xüsusi qaydaları və normaları var ki, cədvəllər arasında əlaqələr qurula bilsin və məlumatı idarə etmək daha da rahat olsun. RDBMS əlaqəli verilənlər bazasını idarə etmək üçün istifadə olunur. Misal: MySQL, PostgreSQL, və Microsoft SQL Server.
Tables (Cədvəllər)
Sütün və sətirlərdən ibarət məlumatın toplumudur, hansının ki ümumi məntiqi var. Misal istifadəçilər üçün users cədvəli yaratmaq, kitablar üçün books , ixtisaslar üçün majors cədvəlləri yaratmaq olar. Ayrı ayrı cədvəllərə yerləşdirərək biz kitaba aid məlumatı artıq istifadəçi cədvəlində axtarmayacağıq. Dediyimiz kimi məlumatları sütun və sətirlərə bölürük. O zaman sütün və sətirlər nə olduğuna baxaq.
Column və Row (Sütun və Sətir)
Bütün sətirlərin eyni növ informasiyasını saxlamaq üçün sütün istifadə olunur. Loru dildə və nümunə üzərindən izah etsəm daha aydın olar. Deyək ki istifadəçilərin hamısının adı, soyadı, doğum tarixi var. Bu ümumi olan anlayışlardır. Amma fərdi olan bu anlayışlara verilən dəyərlərdir. Yəni deyək ki sistemdə ilk qeydiyyatdan keçən istifadəçinin adı Ziya, ikincinin adı Nurlan, üçüncünün adı Nəzrin olarsa, bu adların hamısının başında ad sütunu duracaq. Adlar artıq sətirlərimiz olacaq və həmin sütunun altında yerləşəcək. Eyni qaydada soyad və doğum tarixi üçün verilənlər bazasına yazılacaq.
MySQL öz kompyuterimizdə necə istifadə edə bilərik?
Docker vasitəsi ilə istifadə etmək üçün MySQL Serverin laptopumuzda quraşdırılması üçün addımları ayrıca paylaşmışam.
MySQL Workbench vasitəsi ilə necə serverə qoşuluruq?
İnstall etdikdən sonra belə bir interfeys olacaq qarşınızda:
Burada MySQL Connections hissəsində + işarəsinə klikləyərək yeni bağlantı yaratmalıyıq. Bağlantının ayarlarını yazaraq serverə qoşula biləcəyik.
Bağlantının adını “Youtube” qoyuram. Şifrəni yazmaq üçün “Store in Vault” hissəsinə klikləyirək, şifrəni yazıram. Şifrəni unutmusunuzsa və mənim məqaləmə əsasən dockerdən istifadə edirsinizsə. Dockerin containerlər hissəsində konteynerimizin üzərinə klikləyib, İnspect hissəsinə keçib şifrəyə baxa bilərsiniz:
Test Connection edərkən şifrəni yenə tələb edərsə şifrəni yazıb, Save password in Vault çekboksa işarə qoyub, connect edirsiniz. Sonra belə bir yazı çıxa bilər, “Continue Anyway” seçirik.
Belə pəncərə də gəldisə, deməli bağlantı uğurla quruldu:
Nəticədə yeni yaradılmış bağlatı artıq bağlantılar interfeysində görünür. İndi həmin bağlantı ilə serverə qoşulmaq üçün sadəcə üzərinə klikləyirik.
MySQL Workbenchdə Verilənlər Bazasını necə yaradırıq?
Screenshotda rənglər qeyd etmişəm nələrə fikir vermək lazımdır.
Sarı rənglə qeyd etdiyimə fikir verin hamısı aktiv olsun. Sonra yaşıl rənglə qeyd etdiyim işarəyə klikləyin. Verilənlər bazasını yaratmaq üçün interfeys açılacaq. “Name” hissəsinə verilənlər bazası üçün ad yazın. Mən adını “manual_qa” qoyuram. Və qırmızı rənglə də qeyd etdiyim “Apply” hissəsinə klikləyirəm. MySQL Workbench hansı sorğunu (CREATE SCHEMA `manual_qa` ;) göndərəcəyini görsədir və bizim təsdiqimizi gözləyir. Biz yenə “Apply” üzərinə klikləyirik. Sonrada “Finish” klikləyirik.
MySQL Workbench üzərindən yaratdığımız verilənlər bazasında cədvəlləri necə yaradırıq?
Yaratdığımız verilənlər bazası (digər adı schema) daxilində müxtəlif menyular saxlayır: Tables, Views, Stored Procedures, Functions. Biz bu dərsimizdə yalnız “Tables” hissəsinə testerə lazım olası qədər baxacağıq.
Yeni cədvəl yaratmaq üçün Tables üzərində sağ düyməni klikləyib “Create Table…” seçirik. Sağ tərəfdə yaranan interfeysdə “Table Name” cədvəlimizin adını yazmaq üçün input təqdim edir. Orada bizim kurs üçün “countries” yəni “ölkələr” adını cədvələ təyin edirik. Sonra sütünların (columns) adlarını və ayarlarını qeyd etməliyik, əks halda xəta alacağıq:
Error 4028: A table must have at least one visible column. SQL Statement: CREATE TABLE `manual_qa`.`countries`
3 dənə sütun əlavə edirəm: id, name, short_code. Onları ayarlayıram və sizə indi ancaq ayarladığım hissəni izah edəcəm ki, çox da qarışıq olmasın.
PK — primary key. Yəni sütunda olan yazıları təyin edən əsas açar (dəyər).
NN — not null. Yəni bu sütunun dəyəri null ola bilməz.
UQ — unique. Bu sütuna verilən dəyərlər təkrarlana bilməz.
Aİ — auto increment. Avtomatik artan dəyər. Adətən elə bir bir artan natural ədəd kimi təyin olunur.
Qısa desəm burada bizim hər ölkə üçün onu təyin edən unikal əsas açar kimi id olacaq və eyni adlı iki ölkə ola bilməz. Ölkə adsız ola bilməz. İd də avtomatik artan dəyər olacaq. Hər dəfə bizim daxil etməyimizə ehtiyac yoxdur.
Başqa heç bir ayarlamanı dəyişmədən hamısını susmaya görə olan dəyərləri saxlayırıq. “Apply” düyməsini basmaqla istəyimizi MySQL Workbenchə bildiririk. O da bizə belə bir sorğu göndəriləcəyini qeyd edib, təsdiqimizi gözləyir. Yenidən “Apply” düyməsinə basaraq, sorğunu yerinə yetirilmə istəyini təsdiqləyirik və ona görə də cədvəl yaradılır.
CREATE TABLE `manual_qa`.`countries` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`short_code` VARCHAR(45) NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `name_UNIQUE` (`name` ASC) VISIBLE,
UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE);
Cədvəlimiz yaradıldı:
Cədvələ necə ölkələri əlavə edək?
Cədvələ əlbəttə ölkələri bir bir əllə əlavə edə bilərik. Bunu etməyə bizə müxtəlif RDBMSlər şərait yaradır amma hamısını bir sorğu ilə də əlavə etmək olar.
Sorğunu yazaraq işlətmək üçün SQL vərəqi açıb orada sorğunu əlavə etməliyik. Yuxarıda gördüyünüz şəkildə yaşıl ilə qeyd etdiyim düymə yeni SQL vərəqini açır. 1 yazılan yerdən sorğumuzu əlavə edə bilərik. Mən indi sorğunu bura yazıram, siz öyrənmək məqsədi ilə özünüz çap edə bilərsiniz. Yox əgər öyrnəmək istəmirsinizsə, kopyalayıb orada qoya bilərsiniz:
INSERT INTO manual_qa.countries (name, short_code)
VALUES
('United States', 'US'),
('United Kingdom', 'UK'),
('Canada', 'CA'),
('Australia', 'AU'),
('Japan', 'JP'),
('Germany', 'DE'),
('France', 'FR'),
('Italy', 'IT'),
('Spain', 'ES'),
('China', 'CN'),
('India', 'IN'),
('Brazil', 'BR'),
('Russia', 'RU'),
('South Africa', 'ZA'),
('Mexico', 'MX'),
('Argentina', 'AR'),
('Netherlands', 'NL'),
('Sweden', 'SE'),
('Switzerland', 'CH'),
('New Zealand', 'NZ'),
('Norway', 'NO'),
('Denmark', 'DK'),
('Finland', 'FI'),
('Greece', 'GR'),
('Turkey', 'TR'),
('South Korea', 'KR'),
('Singapore', 'SG'),
('Thailand', 'TH'),
('Egypt', 'EG'),
('United Arab Emirates', 'AE'),
('Saudi Arabia', 'SA'),
('Israel', 'IL'),
('Vietnam', 'VN'),
('Malaysia', 'MY'),
('Indonesia', 'ID'),
('Philippines', 'PH'),
('Chile', 'CL'),
('Colombia', 'CO'),
('Peru', 'PE'),
('Nigeria', 'NG'),
('Kenya', 'KE'),
('Morocco', 'MA'),
('Ireland', 'IE'),
('Austria', 'AT'),
('Belgium', 'BE'),
('Portugal', 'PT'),
('Czech Republic', 'CZ'),
('Poland', 'PL'),
('Hungary', 'HU'),
('Romania', 'RO'),
('Ukraine', 'UA'),
('Pakistan', 'PK'),
('Bangladesh', 'BD'),
('Sri Lanka', 'LK'),
('Nepal', 'NP'),
('Ghana', 'GH'),
('Venezuela', 'VE'),
('Bolivia', 'BO'),
('Ecuador', 'EC'),
('Costa Rica', 'CR'),
('Panama', 'PA'),
('Uruguay', 'UY'),
('Azerbaijan','AZ'),
('Paraguay', 'PY');
SQL faylında sarı ildırım işarəsinə klikləməklə biz sorğunu işlətmiş oluruq. Nəticədə uğur mesajı aşağıda görünəcək və əgər countries cədvəlinin daxilində olan recordlara (yazılara) baxsaq sətirlərimizdə ölkələrin adları və qısa kodları olacaq.
İldırımlı cədvəl işarəsinin üzərinə kliklədikdə bizə “Select statement” yaradacaq həmin cədvəl üçün. Onu işlədərək biz bütün cədvəldə olan recordları əldə edə bilərik. Öncəki “İnsert” sorğumuzun nəticəsinə belə baxa bilərik. Qeyd edim ki, insert etməzdən öncə baxsaydınız, heç bir record olmadığını görərdiniz.
SELECT * FROM manual_qa.countries;
User interfeysdən artıq əlavə etmə qaydasını izah etmirəm, çünki bu məqalə belə getsə MySQL Workbench üçün bir FAQ olacaq.
Növbəti məqalədə daha ətraflı DDL, DML, DCLdən danışarıq. Hələlik bu qədər. Məqaləni bəyənib bizə dəstək olmaq istəsəniz, istənilən dəstək qəbuldur.
- Çox sağ olun. — Mediumda izləmə və məqaləni alqışlayırsınız.
- Vaxtınızı ayırdınız, bir kofe qonağım olun — Kofe.alda bizə kofe ala bilərsiniz.
- Davamlı olsun, köməyimə çatdı — Kofelərin sayını arıtraq, yuxusuz gecələr çox olacaq.
- Mən sizin gördüyünüz işləri bəyənirəm, kursunuzu almaq istəyirəm. Endirimlə? O zaman əlaqə saxlayın.