AXV

RDBMS va yaxlitlik

Relatsion model (3-qism): RDBMS muhitlari va ma'lumotlar yaxlitligi

9-sinfBusiness Intelligence4-hafta · 11-dars

Bugungi reja

01. RDBMS

SQL Server, PostgreSQL, MySQL, Oracle, SQLite.

02. SSMS

Baza va jadval yaratish muhiti.

03. Yaxlitlik

Cheklovlar va ACID.

Takrorlash: 10-dars

Mijoz telefoni faqat bitta qatorda yangilanib, boshqa qatorlarda eskisi qoldi. Bu qanday anomaliya?

To'g'ri: takrorlangan ma'lumot qisman yangilandi. 3NF bunday holatning oldini oladi.
01

RDBMS platformalari

Bitta til - SQL, turli «shevalar»

Mashhur RDBMS lar

RDBMSKimQayerdaDialekt
SQL ServerMicrosoftkorporativ, Power BIT-SQL
PostgreSQLochiq kodveb, analitikaPostgreSQL
MySQLOracle / ochiq kodveb-saytlarMySQL
OracleOracleyirik korporatsiyalarPL/SQL
SQLiteochiq kodtelefon, brauzerSQLite

Bir til - turli shevalar

SQL Server

SELECT TOP 5 * FROM Mahsulotlar;
VS

PostgreSQL, MySQL, SQLite

SELECT * FROM Mahsulotlar LIMIT 5;
Asosiy grammatika bir xil: SELECT, FROM, WHERE hamma joyda ishlaydi.
02

SSMS muhiti

SQL Server Management Studio

SSMS qismlari

Connect to Server

Server nomi: localhost yoki .\SQLEXPRESS.

Object Explorer

Chapda: bazalar, jadvallar, ustunlar daraxti.

New Query

SQL yozish oynasi.

Execute (F5)

Bajarish; natija Results va Messages da.

Birinchi baza


CREATE DATABASE Dokon;
GO
USE Dokon;
GO
  

GO - SSMS uchun «paket tugadi» belgisi. USE - qaysi baza bilan ishlashni tanlash.

03

Ma'lumotlar yaxlitligi

Aniq, to'liq va izchil

Uch tur yaxlitlik

Entity

bosing

Har qator noyob: PRIMARY KEY takrorlanmaydi va NULL bo'lmaydi.

Referential

bosing

FOREIGN KEY faqat mavjud PK qiymatiga ishora qiladi.

Domain

bosing

Qiymat ruxsat etilgan doirada: tur, NOT NULL, CHECK, DEFAULT.

Cheklovlar (constraints)

NOT NULL

Bo'sh qolmasin: ism.

UNIQUE

Takrorlanmasin: email, telefon.

CHECK

Shartga mos: Narx > 0.

DEFAULT

Standart qiymat: N'Toshkent'.

PRIMARY KEY

Noyob identifikator.

FOREIGN KEY

Boshqa jadvalga bog'lanish.

Cheklovli jadval


CREATE TABLE Mijozlar (
    MijozID INT PRIMARY KEY,
    Ism     NVARCHAR(50) NOT NULL,
    Telefon VARCHAR(20)  UNIQUE,
    Shahar  NVARCHAR(30) DEFAULT N'Toshkent',
    Yosh    INT CHECK (Yosh >= 14)
);
  

NVARCHAR - o'zbek harflari uchun Unicode matn; qiymat N'...' ko'rinishida.

FK bilan bog'lash


CREATE TABLE Buyurtmalar (
    BuyurtmaID INT PRIMARY KEY,
    Sana       DATE NOT NULL,
    MijozID    INT NOT NULL FOREIGN KEY REFERENCES Mijozlar(MijozID)
);
  
Avval Mijozlar, keyin Buyurtmalar: FK mavjud jadvalga ishora qiladi.

Xato - bu himoya

Messages
INSERT Mijozlar (1, N'Bekzod') -- ID 1 bor
Xato: PRIMARY KEY buzildi
INSERT Buyurtmalar (101, ..., 99)
Xato: FOREIGN KEY: MijozID 99 yo'q

Cheklovlar «iflos» ma'lumotni bazaga kiritmaydi - Data Cleaning ishi kamayadi.

Mini-test

Baholar jadvalida mavjud bo'lmagan FanID = 55 kiritildi. Qaysi yaxlitlik turi buzildi?

FK mavjud bo'lmagan PK qiymatiga ishora qilmoqda - referential integrity buzildi, DBMS rad etadi.

ACID

A - Atomicity

Hammasi yoki hech biri: pul yechilib, qo'shilmasa - bekor.

C - Consistency

Tranzaksiyadan keyin barcha cheklovlar saqlanadi.

I - Isolation

Bir vaqtdagi tranzaksiyalar bir-biriga xalaqit bermaydi.

D - Durability

COMMIT qilingan o'zgarish elektr o'chsa ham saqlanadi.

Apostrof tuzog'i

Xato

N'O'g'iloy' - matn birinchi apostrofda tugaydi.
VS

To'g'ri

N'O''g''iloy' - apostrofni ikkilantiring.

Ustun nomlarida apostrofdan umuman qoching: OquvchiID, O'quvchiID emas.

BI uchun nega muhim?

Dublikat yo'q

PK tufayli bir mijoz ikki marta sanalmaydi.

«Yetim» yo'q

FK tufayli mijozi yo'q buyurtma bo'lmaydi.

To'g'ri hisobot

CHECK tufayli manfiy narx yig'indini buzmaydi.

Amaliy topshiriqlar 20 daqiqa

Oson3 holatga mos RDBMS tanlang. 3 xatoda yaxlitlik turini aniqlang.
O'rtaSSMS da Maktab bazasi va Oquvchilar jadvali: PK, NOT NULL, UNIQUE, DEFAULT, CHECK.
Qiyin5 ta INSERT natijasini bashorat qiling, so'ng bajarib tekshiring.

Dars xulosasi

RDBMS

5 platforma, bitta SQL, turli dialektlar.

Yaxlitlik

Entity, Referential, Domain - cheklovlar bilan.

ACID

Tranzaksiyalar ishonchli bajariladi.

Uyga vazifa: kutubxona modeli uchun cheklovli CREATE TABLE.

Keyingi dars: SELECT

SQL asoslari: ustunlar va sodda ifodalar

4-hafta · 12-dars