Laboratoriya ishi №4
Mavzu: ER (Entity–Relationship) modeldan relyatsion jadval yaratish
Ishning maqsadi:
ER-model (mohiyat–aloqa modeli) asosida relyatsion ma‘lumotlar bazasini loyihalash va SQL
tilida jadvallar yaratishni amaliy o‗rganish.
Nazariy ma’lumot:
ER model — bu ma‘lumotlar bazasidagi obyektlar (mohiyatlar), ularning atributlari va o‗zaro
aloqalarini ifodalovchi konseptual model.
Relyatsion model esa — shu ER model asosida SQL jadvallar ko‗rinishida amalga oshirilgan
tizimdir.
ER modeldan relyatsion modelga o‘tish qoidalari:
ER elementi Relyatsion modeldagi ko‘rinish
Entity (mohiyat) Jadval (table) sifatida yaratiladi
Attribute (atribut) Jadvalning ustuniga aylanadi
Primary Key Jadvalning asosiy kaliti sifatida belgilanadi
Relationship 1:N ―Ko‗p‖ tomoniga tashqi kalit (Foreign Key) qo‗shiladi
Relationship M:N Aloqa uchun alohida jadval yaratiladi
Relationship 1:1 Bitta jadvalga Foreign Key kiritiladi
Misol loyiha:
―Universitet ma‘lumotlar bazasi‖ (ER modeli asosida)
Mohiyatlar:
Talaba (Talaba_ID, Familiya, Ism, Guruh)
Fan (Fan_ID, Fan_nomi, Kredit)
O‗qituvchi (Oqituvchi_ID, Familiya, Ism, Lavozim)
Baholash (Baholash_ID, Talaba_ID, Fan_ID, Baho)
Aloqalar:
Talaba ↔ Fan — ko‘pdan-ko‘p (M:N) — Baholash jadvali orqali
O‗qituvchi ↔ Fan — 1:N — Har bir o‗qituvchi bir nechta fan o‗qitadi
1-qadam: ER model tahlili
ER diagramma asosida aniqlaymiz:
TALABA (1) —< (M:N) >— FAN
TALABA (1) —< (N) — BAHOLASH — (N) >— FAN
O‘QITUVCHI (1) —< (N) >— FAN
2-qadam: Relyatsion jadvallar yaratish (SQL kod):
CREATE DATABASE UniversitetDB;
USE UniversitetDB;
-- 1. TALABA jadvali
CREATE TABLE Talaba (
Talaba_ID INT PRIMARY KEY AUTO_INCREMENT,
Familiya VARCHAR(50),
Ism VARCHAR(50),
Guruh VARCHAR(20)
);
-- 2. FAN jadvali
CREATE TABLE Fan (
Fan_ID INT PRIMARY KEY AUTO_INCREMENT,
Fan_nomi VARCHAR(100),
Kredit INT,
Oqituvchi_ID INT
);
-- 3. O‘QITUVCHI jadvali
CREATE TABLE Oqituvchi (
Oqituvchi_ID INT PRIMARY KEY AUTO_INCREMENT,
Familiya VARCHAR(50),
Ism VARCHAR(50),
Lavozim VARCHAR(30)
);
-- 4. BAHOLASH (M:N aloqa uchun oraliq jadval)
CREATE TABLE Baholash (
Baholash_ID INT PRIMARY KEY AUTO_INCREMENT,
Talaba_ID INT,
Fan_ID INT,
Baho INT,
FOREIGN KEY (Talaba_ID) REFERENCES Talaba(Talaba_ID),
FOREIGN KEY (Fan_ID) REFERENCES Fan(Fan_ID)
);
-- 5. Aloqani o‘qituvchi bilan bog‘lash
ALTER TABLE Fan
ADD CONSTRAINT fk_fan_oqituvchi
FOREIGN KEY (Oqituvchi_ID) REFERENCES Oqituvchi(Oqituvchi_ID);
3-qadam: Ma’lumot kiritish (test ma’lumotlari)
INSERT INTO Oqituvchi (Familiya, Ism, Lavozim)
VALUES ('Xolmatov', 'Anvar', 'Dotsent'),
('Karimova', 'Laylo', 'Assistent');
INSERT INTO Fan (Fan_nomi, Kredit, Oqituvchi_ID)
VALUES ('Ma’lumotlar bazasi', 4, 1),
('Algoritmlar', 3, 2);
INSERT INTO Talaba (Familiya, Ism, Guruh)
VALUES ('Tursunov', 'Sardor', 'INF-21'),
('Rahimova', 'Nilufar', 'INF-21');
INSERT INTO Baholash (Talaba_ID, Fan_ID, Baho)
VALUES (1, 1, 95), (1, 2, 90), (2, 1, 88);
4-qadam: Natijani tekshirish
SELECT
[Link] AS Talaba,
F.Fan_nomi AS Fan,
[Link] AS Baho,
[Link] AS Oqituvchi
FROM Baholash B
JOIN Talaba T ON B.Talaba_ID = T.Talaba_ID
JOIN Fan F ON B.Fan_ID = F.Fan_ID
JOIN Oqituvchi O ON F.Oqituvchi_ID = O.Oqituvchi_ID;
Natija (jadval):
Talaba Fan Baho O‘qituvchi
Tursunov Ma‘lumotlar bazasi 95 Xolmatov
Tursunov Algoritmlar 90 Karimova
Rahimova Ma‘lumotlar bazasi 88 Xolmatov
Xulosa:
Ushbu laboratoriya ishida:
ER model asosida relyatsion modelga o‗tish bosqichlari o‗rganildi;
Har bir entity uchun alohida jadval yaratildi;
M:N aloqani ifodalash uchun oraliq jadval yaratildi;
Ma‘lumotlar kiritilib, JOIN yordamida ularni bog‗lab chiqarish amaliyoti bajarildi.
Natijada talaba ER modeldan relyatsion jadvallarni hosil qilish va ularni SQL yordamida amalga
oshirish ko‗nikmasiga ega bo‗ldi.