Nuotolinės LD3 Reliacinės DB Kūrimas 2020 05 06

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

LD3 Reliacinės DB projektavimas ir kūrimas

I. Reliacinės DB modelio sudarymas

1. Šio laboratorinio darbo metu sudarysime supaprastintą dekanato duomenų bazės modelį. Dekanato duomenų
bazėje saugomi duomenys apie tris pagrindinius objektus: Studentus, Dalykus ir Dėstytojus. Šioms trims
lentelėms priskirsime tokius atributus (stulpelius): studentų lentelei - studento kodas, pavardė, vardas, grupės
numeris, telefonas, stipendija, pažymiai; dėstytojų lentelei - dėstytojo kodas, dalyko kodas, vardas, pavardė,
gimimo data, pareigos, telefono numeris, darbo užmokestis; dalykų lentelei - dalyko kodas, dalyko
pavadinimas. MySQL yra reliacinė duomenų bazių valdymo sistema (angl. Relational DBMS), todėl duomenų
lentelės jungiamos tarpusavyje griežtai apibrėžtais atributais. Dėstytojų ir dalykų sąryšį galima apibrėžti
dėstytojo kodo ir dalyko kodo atributais, o studentų ir dalykų sąryšį - studento kodo ir dalyko kodo atributais.
Galimi trys ryšių tarp lentelių tipai: vienas su vienu (1:1), vienas su daugeliu (1:N) ir daugelis su daugeliu (M:N).
Vienas dėstytojas gali dėstyti kelis dalykus, keli dėstytojai gali dėstyti tą patį dalyką, taigi gaunamas sąryšis
daugelis su daugeliu (M:N). Vienas studentas mokosi daugelio dalykų, keli studentai vienu metu mokosi to
paties dalyko, taigi vėl gaunamas sąryšis daugelis su daugeliu (M:N).

2. Didžioji dalis šiuolaikinių DBVS (duomenų bazių valdymo sistemų) palaiko sąryšius daugelis su daugeliu (M:N),
bet mes laikysimės klasikinės koncepcijos, kuri teigia, kad šie sąryšiai komplikuoja duomenų bazės valdymą ir
kurdami reliacinį modelį vengsime šių sąryšių. Vienas paprasčiausių metodų išvengti sąryšių daugelis su
daugeliu yra vieno sąryšio daugelis su daugeliu pakeitimas dviem sąryšiais vienas su daugeliu (1:N). Šio metodo
įgyvendinimui sukuriamos papildomos sujungimo lentelės (objektai). Šiuo atveju sukursime lenteles Pažymiai
ir Dėstytojai_Dalykai. Lentelę Pažymiai sudarys šie atributai: studento kodas, dalyko kodas, pažymiai; lentelę
Dėstytojai_Dalykai sudarys šie atributai: dėstytojo kodas, dalyko kodas.
Reliacinės DB kūrimas

1. Prisijunkite prie duomenų bazės per „phpMyAdmin“. Internetinės naršyklės lange įveskite adresą ir
prisijunkite (rekomenduojame pasirinkti anglų kalbą, nes toliau laboratorinio aprašyme naudojami
paveikslėliai su angliškais užrašais):
virtualios mašinos IP adresas/phpmyadmin
Prisijungimui nuotoliniu būdu: 3.127.210.4/phpmyadmin
2. Prisijungus prie serverio atlikite šiuos veiksmus (atkreipkite dėmesį, kad jūsų sukurtos duomenų bazės
pavadinimas grupės numeris + studento kodas):
Sukurkite naujas 5 lenteles. Kaip pavyzdį naudosime duomenų bazę pavadinimu „Dekanatas“. Lentelių
pavadinimuose nenaudokite lietuviškų raidžių. Pirmą kartą kuriant lentelę „Studentai“ pažymėkite duomenų
bazę pvz.: „Dekanatas“ (1) (nuotoliniu būdu jungiantis, pasirinkite jau jums sukurtą duomenų bazę jos
pavadinimas: grupės numeris + studento kodas!!!), įrašykite lentelės pavadinimą (2) ir pasirinkite kiek
stulpelių turės lentelė (3) bei paspauskite sukurti „Go“ mygtuką (4):

3. Atsiradusiame lange suveskite lentelės stulpelių pavadinimus (1). Taip pat nustatykite stulpelių atributus (2, 3,
4, 5, 6), kaip parodyta žemiau pateikiamose lentelėse. Atkreipkite dėmesį, kad „NN“ – būtina įvesti duomenis
(angl. Not Null), šio laukelio vertė negali būti lygi nuliui ir varnelės nereikia dėti (3)!!! PK – Pirminis raktas
(angl. Primary Key), pagrindinis indeksavimo laukelis, vienareikšmiškai apibrėžiantis įrašą (4). AI – Automatinis
inkrementavimas (5) (angl. Auto Increment). Atkreipkite dėmesį į numatytąją vertę (6) (Default). Paspauskite
sukurti „Save“ mygtuką (7) norėdami išsaugoti lentelę su nustatymais (jeigu reikia pridėti dar viena stulpelį tai
galite padaryti skiltyje „Add“ (8)):
4. Kitas lenteles „Pazymiai“; „Dalykai“; „Destytojai_dalykai“; „Destytojai“ panašiai kaip ir pirmą kurkite naršyklės
lango kairėje pusėje paspaudus „New“ po pasirinkta duomenų baze:

Lentelės pavadinimas: Studentai


Lauko pavadinimas Duomenų tipas, lauko dydis Atributai Numatytoji vertė
(Column Name) (Datatype) (Default)
Studento kodas INT (11) PK, NN, AI
Pavardė VARCHAR (15) NN
Vardas VARCHAR (12) NN
Grupės numeris VARCHAR (8) NN
Telefonas VARCHAR (9) NN
Stipendija BIT (1) NN 1

Lentelės pavadinimas: Pazymiai


Lauko pavadinimas Duomenų tipas, lauko dydis Atributai Numatytoji vertė
(Column Name) (Datatype) (Default)
Studento kodas INT (11) PK, NN
Dalyko kodas INT (11) PK, NN
Pažymiai INT (2) NN

Lentelės pavadinimas: Dalykai


Lauko pavadinimas Duomenų tipas, lauko dydis Atributai Numatytoji vertė
(Column Name) (Datatype) (Default)
Dalyko kodas INT(11) PK, NN, AI
Dalyko pavadinimas VARCHAR(20) NN

Lentelės pavadinimas: Destytojai_dalykai


Lauko pavadinimas Duomenų tipas, lauko dydis Atributai Numatytoji vertė
(Column Name) (Datatype) (Default)
Dėstytojo kodas INT (11) PK, NN
Dalyko kodas INT (11) PK, NN

Lentelės pavadinimas: Destytojai


Lauko pavadinimas Duomenų tipas, lauko dydis Atributai Numatytoji vertė
(Column Name) (Datatype) (Default)
Dėstytojo kodas INT (11) PK, NN, AI
Pavardė VARCHAR(15) NN
Vardas VARCHAR(12) NN
Gimimo data DATE NN
ENUM('Asistentas', 'Docentas',
Pareigos NN Docentas
'Profesorius')
Telefonas VARCHAR(9) NN
Darbo užmokestis DECIMAL(10,2) NN
Laukelių atributų (jų trumpinių) sąrašas:

 PK – Pirminis raktas (angl. Primary Key), pagrindinis indeksavimo laukelis, vienareikšmiškai apibrėžiantis įrašą;
 NN – būtina įvesti duomenis (angl. Not Null), šio laukelio vertė negali būti lygi nuliui;
 UQ – Unikali vertę (angl. Unique), šio laukelio vertės negali kartotis;
 BIN – Šio laukelio duomenys pateikiami dvejetainiu kodu (angl. Binary);
 UN – Galimi tik teigiami skaičiai, ženklo duomenys nesaugomi (angl. Unsigned);
 ZF – Nenurodytos vertės užpildomos nuliais (angl. Zero Fill);
 AI – Automatinis inkrementavimas (angl. Auto Increment).

5. Sukurkite lentelių tarpusavio sąryšius:


A. Pasirinkite duomenų bazę (1). Pasirinkite sąryšio sukūrimo laukelį (2). Patogiai susidėliokite lenteles
atsidariusiame lange.

B. Sukurkite sąryšį tarp lentelių „Studentai“ ir „Pažymiai“, panaudodami grafinį įrankį. Pasirinkite sąryšio
sukūrimo įrankį „Create relationchip“.
Kuriant sąryšius iš pradžių nurodomi laukeliai, kurių sąryšis yra vienas, po to tie laukeliai kurių
sąryšis – daugelis. Gaunami sąryšiai vienas su daugeliu. Kurdami sąryšį tarp lentelių „Studentai“ ir
„Pažymiai“ atlikite šiuos veiksmus:
a) Paspauskite kairiuoju pelės klavišu komandą „Create relationchip“ (1).
b) Pasirinkite laukelį „Studento kodas“ iš lentelės „Studentai“ paspaudę jį kairiuoju pelės klavišu
(pasirinksite vienas) (2).
c) Po to pasirinkite laukelį „Studento kodas“ iš lentelės „Pazymiai“ paspaudę jį kairiuoju pelės
klavišu (pasirinksite daugelis) (3). Atsiradusioje lentelėje spauskite „OK“.
d) Įsitikite, kad sąryšis sukurtas teisingai „Studentai“ – vienas, „Pažymiai“ – daugelis. Jei sąryšis
neatsiras paspauskite naršyklės atnaujinimo mygtuką „F5“!!!
Jeigu sąryšis sukurtas netinkamai spustelėkite ant sąryšio daugelis ir išsirinkite
atsiradusiame meniu „Delete“.
C. Analogiškai įgyvenkite visus suprojektuoto modelio sąryšius kitoms lentelėms. Atkreipkite dėmesį,
laukelių pavadinimai turi sutapti ir daugelis sąryšis turi būti prie šitų laukelių (1). Įsitikinkite, kad sąryšiai
sutampa su pateiktu pavyzdžiu paveiksle:

6. Užpildykite lenteles (lenteles pildykite nurodyta tvarka:


Studentai => Destytojai => Dalykai => Pazymiai => Destytojai_dalykai !!!):
a. Lentelei „Studentai“ pildyti, duomenų bazėje (1) lentelių sąraše paspauskite „Studentai“ lentelę (2) ir
pasirinkite „Insert“ (3). Skiltyje „Value“ (4) įveskite studento reikiamus duomenis. Išsaugokite
duomenis lentelėje paspaudę mygtuką „Go“ (5).

b. Užpildykite „Studentai“ lentelę pagal dėstytojo nurodytą variantą iš puslapio


http://www2.el.vgtu.lt/db/. Lentelę pildykite atlikdami šiuos veiksmus:
a) Įveskite pirmojo studento duomenis Atkreipkite dėmesį, kad stipendijos laukelis yra bit tipo
todėl gali įgyti tik dvi vertes (0 ir 1). Todėl „Taip“ įrašą atitinka 1, o „Ne“ – 0.
b) Paspaudus įrašyti mygtuką „Go“ įsitikinkite, kad įrašas sukurtas ir turi būti toks užrašas:
c) Analogiškai įveskite visų studentų duomenis.
d) Pasirinkę duomenų bazę (1) ir paspauskite ant lentelės „Studentai“ (2). Įsitikinkite, kad visi įrašai
įvesti teisingai (3). Atkreipkite dėmesį, kad lentelėje gali būti daugiau įrašų nei 25 ir norint, kad
juos visus parodytų reikia pasirinkti „Number of rows“ => 50.:

c. Pagal dėstytojo variantą analogiškai užpildykite lentelę „Destytojai“. Stulpelyje „Darbo


užmokestis“ nereikia rašyti LT ir dėti taškų!!!
d. Lenteles „Dalykai“ , „Pazymiai“ ir „Destytojai_Dalykai“ užpildykite šiais duomenimis:

Lentelės Dalykai duomenys:


Dalyko kodas Dalyko pavadinimas
1 Duomenų bazės
2 Matematika
3 Fizika
4 Ekonomika
Lentelės Pazymiai duomenys:
Studento Dalyko Studento Dalyko
Pažymiai Pažymiai
kodas kodas kodas kodas
1 1 8 6 1 10
1 2 9 6 2 8
1 3 8 6 3 10
1 4 8 6 4 8
2 1 10 7 1 9
2 2 10 7 2 6
2 3 8 7 3 8
2 4 8 7 4 6
3 1 6 8 1 6
3 2 10 8 2 10
3 3 8 8 3 10
3 4 6 8 4 8
4 1 8 9 1 8
4 2 8 9 2 8
4 3 10 9 3 8
4 4 8 9 4 7
5 1 10 10 1 10
5 2 10 10 2 10
5 3 10 10 3 10
5 4 10 10 4 10

Lentelės Destytojai_dalykai duomenys:


Dėstytojo kodas Dalyko kodas
1 1
2 4
3 2
4 2
5 4
6 1
7 3

7. Įvykdykite keletą SQL užklausų:


a. Pateikite studentų sąrašą:
a) Pasirinkę duomenų bazę (atkreipkite dėmesį, kad jūsų sukurtos duomenų bazės
pavadinimas grupės numeris + studento kodas) (1). Paspauskite „SQL“ piktogramą
įrankių juostoje (2).
b) SQL užklausų lange (3) įveskite tokią užklausą: SELECT * FROM Studentai;
c) Įvykdykite šią užklausą žemiau paspaudę „Go“ mygtuką (4). Įsitikinkite, kad užklausa
įvykdyta ir ekrane matote pilną studentų sąrašą.
d) Užklausos gautą rezultato vaizdą išsaugokite dėstytojo patikrinimui. Tai padarykite
paspaudę mygtuką „Create view“ (1):

e) Atsiradusiame lange įveskite užklausos pavadinimą (1), kurį turėtų sudaryti laboratorinio
numeris ir užklausos pavadinimas, kuriame turėtų atsispindėti užklausos esmė. Šiuo atveju
lentelės pavadinimas: „LD3 Studentai lentelė“ ir paspauskite mygtuką „GO“ (2):
f) Sukūrus užklausos rezultato atvaizdą jis turėtų pasirodyti jūsų sukurtos duomenų bazės
atvaizdų skiltyje „Views“:

b. Analogiškai įvykdykite užklausas pateikiančias lentelių „Destytojai“, „Destytojai_dalykai“, „Dalykai“ ir


„Pazymiai“ duomenis. Atkreipkite dėmesį, kad lentelėje „Pazymiai“ įrašų yra daugiau nei 25 ir norint,
kad juos visus parodytų reikia pasirinkti „Number of rows“ => 50.
8. Išsaugokite duomenų bazę ataskaitai:
a. Pažymėkite duomenų bazę kurią norite išsaugoti (1).
b. „Phpmyadmin“ tvarkyklės įrankių juostoje pasirinkite „Export“ (2).
c. Atsidariusiame lange įsitinkite, kad išsaugojate norima duomenų bazę „Exporting tables from
„Dekanatas“ database“ ir paspauskite mygtuką „Go“ (3) išsaugojimui.

d. Atsiradusiame lange nurodykite vietą, kur norite išsaugoti duomenų bazę ir įveskite jos pavadinimą:
„Vardas_Pavardė_Grupė_LD3.sql“.

9. Duomenų bazę išsisaugokite ataskaitai!!!

You might also like