relacijske podatkovne baze Flashcards
relacijske podatkovne baze
- Entitetno-relacijski model (ER)
- SQL
o DCL – grand, revoke
o DDL – Create, alter, drop
o DML – insert, update, delete
o DQL – select
o TCL – commit, rollback
Podatki oblikovanja konceptualnega modela PB:
- Podatkovna analiza in zbiranje zahtev
- Opredelitev skupin uporabnikov in področij uporabe
- Analiza operativnega okolja
- Ime in opis entitete
- Arhiviranje
- Oblikovanje ER modela
- Čimbolj razširjen ER model
- Upoštevamo zahteve naročnika
▪ Entiteta, Ključ, Atribut, Relacija, Kardinalnost (1:1, 1:M, M:N) - Normalizacija
-Zagotavlja da entitete ne vsebujejo redundantnih ali dvoumnih podatkov
Koraki izdelave ER- modela
- Definiramo namen PB
- Poiščemo in organiziramo informacije
- Oblikujemo E-R model
o Definiramo entitete
o Definiramo razmerje med entitetami
o Definiramo kardinalnost - 1:1
- 1:M
- M:N
o Definiramo primarne ključe
o Definiramo obvezne opcijske atribute - Normalizacija
o Zagotavlja da entitete ne vsebujejo redundantnih ali dvoumnih podatkov
o - Popravljanje E-R modela
SQL skupine ukazov:
DCL – Data Control Language (GRANT, REVOKE)
DDL – Data Definition Language (CREATE, ALTER, DROP, TRUNCATE)
DML – Data Manipulation Language (INSERT, UPDATE, DELETE, MERGE)
DQL – Data Query Language (SELECT)
TCL – Transaction Control Language (COMMIT, ROLLBACK, SAVEPOINT)
CRUD operacije:
CREATE (CREATE, INSERT)
READ (SELECT)
UPDATE (UPDATE)
DELETE (DELETE)
SQL sintaksa:
Stavki se vedno končajo s podpičjem
NE uporabljamo šumnikov
Na začetku besede NE uporabljamo posebnih znakov
Velike/male črke niso pomembne za ukazne besede (select == SeLeCT)
SQL ukazne besede pišemo z VELIKIMI črkami (SELECT, CREATE,
WHERE)
Stringi so v enojnih narekovajih
SQL Ustvarjanje uporabnikov (Potrebujemo pravice)
Ustvarjanje uporabnika in njegovega gesla: CREATE USER ‘uporabnik’ @
‘lokacija’ IDENTIFIED BY ‘geslo’;
CREATE USER ‘kevin’@’198.51.100.0/255.255.255.0’ IDENTIFIED BY
‘tukajjegeslo69’;
Spreminjanje gesla za uporabnika: SET PASSWORD FOR ‘kevin’@’%’ =
novo_geslo’;
ALTER USER ‘kevin’@’%’ IDENTIFIED BY ‘novo_geslo’;
SQL – Dodajanje pravic uporabnikom
GRANT/REVOKE pravica ON baza.tabela TO ‘uporabnik’@’lokacija’;
Pravice, ki jih lahko ima uporabnik:——–
ALL PRIVILEGES
CREATE
DROP
DELETE
INSERT
SELECT
UPDATE
GRANT OPTION
Brisanje uporabnika: DROP USER ‘uporabnik’ @ ‘localhost’;
SQL – DDL stavki
Ustvarimo podatkovno bazo: CREATE DATABASE (IF NOT EXISTS) ime_baze;
Izbrišemo podatkovno bazo: DROP DATABASE (IF EXISTS) ime_baze;
Pregled obstoječih baz: SHOW DATABASES;
Uporaba podatkovne baze (na začetku vsakega pisanja SQL kode): USE
ime_baze;
PRO TIPS PRI KREIRANJU TABEL:
- ID (Primarni ključ) mora VEDNO imeti NOT NULL, ker je prisoten v VSAKI
tabeli
-ID-ju (Primarnem ključu) dodamo AUTO_INCREMENT, da se nam
avtomatsko kreira po vrsti od 1 dalje (yay, ne rabim vpisovat vsakega ID-ja
pri insertu)
-Podatkovni tipi naj bodo pls jasni in smiselni (INT, CHAR, VARCHAR(),
DATE, DATETIME, BOOL, FLOAT, DOUBLE)
-Dolžina VARCHAR() naj bo reasonable (ne preveč nizka in ne preveč
visoka)
Podatkovni tipi v SQL
Numerični podatkovni tipi
Časovni podatkovni tipi
Znakovni podatkovni tipi
Prostorski podatkovni tipi
Numerični podatkovni tipi:
INT – Celo število
DECIMAL (M, D) – Decimalna števila. Prva cifra pove koliko je števk, drugo
pa število števk za decimalno vejico (npr. cena)
FLOAT (M, D) – Podobno kot DECIMAL, s tem da ne rabimo vpisat cifer v
oklepaje)
BOOL – T(1), F(0) – vsebina je lahko ali »true« ali »false« oz. 1 ali 0
Časovno podatkovni tipi:
DATE – YYYY-MM-DD
DATETIME – YYYY-MM-DD HH:MM:SS
TIME – HH:MM:SS
TIMESTAMP – Računanje razlike med dvema časoma (hrani se kot št.
Sekund)
YEAR – Letnice med 1901 in 2155
Znakovni podatkovni tipi:
VARCHAR(N) – Celotna beseda, s številom v oklepaju določimo dolžino te
besede. Dolžina je dinamična (String)
CHAR – Podobno kot VARCHAR, ampak je dolžina fiksna
TEXT – Daljša besedila
ENUM() – Vsaki številki določimo vrednosti npr. 1-small, 2-medium, 3-large,
potem napišemo ENUM(‘S’,’M’,’L’)
Omejitve/Constraints
Primarni ključ – Enolično definira vsako vrstico podatkov v tabeli- Privzeto vključuje NOT NULL in UNIQUE, v pisanju kode določimo še
AUTO_INCREMENT- Poimenujemo kot ID_ime_tabele- Nikoli ne sme biti NULL (Torej NOT NULL)
Tuji ključ – Atribut ene tabele, ki kaže na primarni ključ druge tabele (z njim
povezujemo tabele – brainrot za razumet ampak je simple)-Če tabela stoji za sebe in ni povezana z nobeno drugo, nimamo tujega ključa- Ena tabela lahko ima infinite tujih ključev- Tuj ključ se pojavi tam, kjer je v E-R modelu M pri povezavi 1:M (wtf je tota
razlaga)- Podatkovni tip tujega ključa mora biti enak kot pri primarnem ključu na katerega
se sklicujemo
Brisanje podatkov in tabel
Izbrišemo podatke iz tabele, ohranijo pa se stolpci oz. imena vrstic: TRUNCATE
TABLE ime_tabele;
Izbrišemo celotno tabelo: DROP TABLE (IF EXISTS) ime_tabele;
Vnašanje podatkov – INSERT INTO
Implicitni vnos:
- Vrednosti morajo biti v enakem vrstnem redu, kot so stolpci v tabeli (Razen
ID, ker smo gangsterji in smo dali AUTO_INCREMENT in damo NULL)
- Ne rabimo navajati vseh stolpcev, katerim želimo vnest vrednosti
Eksplicitni vnos:
- Navedemo ime stolpca, v katerega vpisujemo vrednosti—
- Vrednosti ne rabijo biti v enakem vrstnem redu, kot so stolpci v tabeli
- Navedemo samo tiste stolpce, pri katerih želimo vnesti vrednosti
tukaj pa primarne ključe čisto preskočimo (ker smo še večji gangsterji ko
prej)
Brisanje podatkov
– DELETE FROM student WHERE ID_student=3
Posodabljanje podatkov
UPDATE predmet SET Naziv_predmeta=
‘Podatkovne baze’ WHERE ID_predmet=1;