Relatsion model (3-qism): RDBMS muhitlari va ma'lumotlar yaxlitligi
9-sinfBusiness Intelligence4-hafta · 11-darsSQL Server, PostgreSQL, MySQL, Oracle, SQLite.
Baza va jadval yaratish muhiti.
Cheklovlar va ACID.
Mijoz telefoni faqat bitta qatorda yangilanib, boshqa qatorlarda eskisi qoldi. Bu qanday anomaliya?
Bitta til - SQL, turli «shevalar»
| RDBMS | Kim | Qayerda | Dialekt |
|---|---|---|---|
| SQL Server | Microsoft | korporativ, Power BI | T-SQL |
| PostgreSQL | ochiq kod | veb, analitika | PostgreSQL |
| MySQL | Oracle / ochiq kod | veb-saytlar | MySQL |
| Oracle | Oracle | yirik korporatsiyalar | PL/SQL |
| SQLite | ochiq kod | telefon, brauzer | SQLite |
SELECT TOP 5 * FROM Mahsulotlar;SELECT * FROM Mahsulotlar LIMIT 5;SQL Server Management Studio
Server nomi: localhost yoki .\SQLEXPRESS.
Chapda: bazalar, jadvallar, ustunlar daraxti.
SQL yozish oynasi.
Bajarish; natija Results va Messages da.
CREATE DATABASE Dokon;
GO
USE Dokon;
GO
GO - SSMS uchun «paket tugadi» belgisi. USE - qaysi baza bilan ishlashni tanlash.
Aniq, to'liq va izchil
Har qator noyob: PRIMARY KEY takrorlanmaydi va NULL bo'lmaydi.
FOREIGN KEY faqat mavjud PK qiymatiga ishora qiladi.
Qiymat ruxsat etilgan doirada: tur, NOT NULL, CHECK, DEFAULT.
Bo'sh qolmasin: ism.
Takrorlanmasin: email, telefon.
Shartga mos: Narx > 0.
Standart qiymat: N'Toshkent'.
Noyob identifikator.
Boshqa jadvalga bog'lanish.
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.
CREATE TABLE Buyurtmalar (
BuyurtmaID INT PRIMARY KEY,
Sana DATE NOT NULL,
MijozID INT NOT NULL FOREIGN KEY REFERENCES Mijozlar(MijozID)
);
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.
Baholar jadvalida mavjud bo'lmagan FanID = 55 kiritildi. Qaysi yaxlitlik turi buzildi?
Hammasi yoki hech biri: pul yechilib, qo'shilmasa - bekor.
Tranzaksiyadan keyin barcha cheklovlar saqlanadi.
Bir vaqtdagi tranzaksiyalar bir-biriga xalaqit bermaydi.
COMMIT qilingan o'zgarish elektr o'chsa ham saqlanadi.
N'O'g'iloy' - matn birinchi apostrofda tugaydi.N'O''g''iloy' - apostrofni ikkilantiring.Ustun nomlarida apostrofdan umuman qoching: OquvchiID, O'quvchiID emas.
PK tufayli bir mijoz ikki marta sanalmaydi.
FK tufayli mijozi yo'q buyurtma bo'lmaydi.
CHECK tufayli manfiy narx yig'indini buzmaydi.
5 platforma, bitta SQL, turli dialektlar.
Entity, Referential, Domain - cheklovlar bilan.
Tranzaksiyalar ishonchli bajariladi.
Uyga vazifa: kutubxona modeli uchun cheklovli CREATE TABLE.
SQL asoslari: ustunlar va sodda ifodalar
4-hafta · 12-dars