Sunteți pe pagina 1din 6

BAZE DE DATE – SEMINAR 2

I. BAZE DE DATE – NOTIUNI FUNDAMENTALE:

Bază de date: ansamblu de colecții de date intercorelate


Tabelă:
 colecție de date în cadrul BD relaționale
 structură bidimensională cu mai multe coloane (câmpuri, atribute) și rânduri (înregistrări,
tupluri)
Cheie primară: restricție asociată coloanei ale cărei valori identifică în mod unic fiecare
înregistrare din tabelă
Cheie externă: restricție asociată coloanei de legătură din tabela copil; coloana cheie externă va
permite legătura cu coloana cheie primară (cel mai adesea) din tabela părinte.

Tipuri de legături între tabele:


 1:1 – unei înregistrări din prima tabelă îi corespunde o singură înregistrare din cea de-a
doua. Cel mai adesea, legătura dintre cele două tabele aflate în asociere 1:1 se face pe baza
cheilor primare;
 1:n – unei înregistrări din prima tabelă îi corespund mai multe înregistrări din cea de-a
doua. Practic, cheia primară din tabela părinte se adaugă în tabela copil sub formă de cheie
externă;
 n:n – mai multor înregistrări din prima tabelă le corespund mai multe înregistrări din cea
de-a doua; nu se poate implementa practic și se recurge la adăugarea unei tabele
suplimentare care va conține cheile primare ale tabelelor inițiale și câmpuri referitoare la
asocierea cu tabelele părinte. Cheia primară din tabela intermediară va fi o cheie compusă.

II. LIMBAJUL SQL

Limbajul SQL – Structured Query Language este un limbaj standard de interogare a bazelor de
date implementat în majoritatea SGBD. In ORACLE este implementat limbajul SQL cu anumite
particularități.

1. Tipuri de date

TIP Caracteristici
CHAR(size) șir de caractere de lungime fixă
VARCHAR2(size)
șir de caractere de lungime variabilă
VARCHAR(size)
NUMBER(p,s) numeric: p (precizie) = 1..38, s (scală) =-84..127
DATE dată calendaristică
TIMESTAMP dată calendaristică
ROWID adresa fiecărui rând din tabelă
BLOB Binary Large Object (max 4GB) - se stochează date nestructurate
(text, imagine, video, date spațiale)
CLOB Character Large Object – date de tip text de dimensiune foarte mare
NCLOB National CLOB – include caractere naționale
BFILE conține un pointer către un fișier binar stocat în afara bazei de date

1
BAZE DE DATE – SEMINAR 2

2. Operatori SQL

Operator Caracteristici
<, >, =, >=, <= operatori de comparație
AND, OR, NOT operatori logici
BETWEEN ... AND ... între două valori (inclusiv)
IN (listă) egal cu oricare valoare din listă
LIKE similar cu un şablon
% - oricâte caractere; _ - un caracter;
IS NULL are valoarea NULL

3. Comenzi SQL

Comenzile referitoare la bazele de date sunt comune tuturor versiunilor de SQL și sunt
împărțite în următoarele categorii:

1) Comenzi LDD (Limbaj de Definire a Datelor - Data Definition Language)


Comanda Scop
CREATE Creează un obiect nou (tabelă, utilizator, rol etc.)
ALTER Modifică o parte dintre proprietățile unui obiect
DROP Elimină un obiect din baza de date

2) Comenzi LMD (Limbaj de Manipulare a Datelor - Data Manipulation Language)


Comanda Scop
SELECT Regăsește înregistrări în tabele sau view-uri
DELETE Șterge înregistrări din tabele
INSERT Adaugă o nouă înregistrare în tabelă
UPDATE Modifică valorile unor înregistrări din tabele

3) Comenzi LPT (Limbaj pentru Procesarea Tranzacțiilor – Transaction Processing


Language)
Comanda Scop
COMMIT Finalizează o tranzacție
ROLLBACK Anulează o tranzacție
SAVEPOINT Definește un punct de salvare, în locul în care tranzacția salvează toate
operațiile efectuate până în momentul respectiv, înainte de a continua
următorul set de modificări efectuate în baza de date.

4) Comenzi LCD (Limbaj de Control al Datelor - Data Control Language)


Comanda Scop
GRANT Acordă utilizatorilor drepturile necesare pentru accesul și manipularea
obiectelor din baza de date
REVOKE Anulează anumite drepturi utilizatorilor

2
BAZE DE DATE – SEMINAR 2

Comenzi LDD
(Limbaj de Definire a Datelor - Data Definition Language)

Comanda Scop
CREATE Creează un obiect nou, precum: TABLE, INDEX, CLUSTER,
TABLESPACE, SEQUENCE, VIEW, MATERIALIZED VIEW, USER,
ROLE, PROCEDURE, FUNCTION, TRIGGER
ALTER Modifică o parte dintre proprietățile unui obiect
DROP Șterge un obiect din baza de date

CREAREA TABELELOR – COMANDA CREATE TABLE


Pentru a crea o tabelă se specifică următoarele:
- denumirea tabelei
- definirea coloanelor și tipul acestora
- stabilirea restricțiilor de integritate

RESTRICȚII DE INTEGRITATE
- Tipuri de restricții:
o NOT NULL
o UNIQUE
o PRIMARY KEY
o FOREIGN KEY
o CHECK

- Precizarea restricțiilor se poate face în 2 moduri: in-line la definirea coloanei pe care se


impune restricția și out-of-line, separat, fie la sfârșitul sintaxei CREATE TABLE, fie prin
comanda ALTER TABLE

Să se execute următoarele comenzi!


Sa se creeze tabelele firme și agenti în care să fie precizate restricțiile de integritate.
CREATE TABLE firme
(codfirma NUMBER(2) CONSTRAINT PKey_firme PRIMARY KEY,
denfirma VARCHAR2(20) NOT NULL,
loc VARCHAR2(20),
zona VARCHAR2(15) CONSTRAINT FZONA_CK check (zona IN
('Moldova','Ardeal','Banat','Muntenia','Dobrogea','Transilvania')));

CREATE TABLE agenti


(codagent VARCHAR2(3) CONSTRAINT pk_agent PRIMARY KEY,
numeagent VARCHAR2(25) NOT NULL,
dataang DATE DEFAULT SYSDATE,
datanast DATE,
functia VARCHAR2(20),
codfirma NUMBER(2),
CONSTRAINT FK_agenti FOREIGN KEY (codfirma) REFERENCES firme(codfirma));

3
BAZE DE DATE – SEMINAR 2

Schema BD pentru activitatea de evidență a comenzilor și a resurselor umane

Se consideră activitatea de evidență a comenzilor încheiate de o societate comercială cu diverși


clienți prin intermediul angajaților care dețin anumite funcții și își desfășoară activitatea în diverse
departamente, aflate în mai multe țări/regiuni/locații. Comenzile pot fi plasate și online și conțin
produse aflate în depozitul societății.

Deschideți, analizați și apoi rulați scriptul de creare a tabelelor și de adăugare de


înregistrări:
https://bd.ase.ro/Media/Default/BD/ScriptBD.txt

CREAREA UNEI TABELE PE BAZA COLOANELOR DIN ALTĂ TABELĂ:

CREATE TABLE nume_tabela


AS
SELECT [*, nume coloane] FROM nume_tabela_sursa
[WHERE conditie];

Să se execute următoarea comandă!


Să se creeze tabela fosti_agenti pe baza tabelei agenti și care va conține doar o parte din
coloanele tabelei initiale (codagent, numeagent, functia, codfirma)

CREATE TABLE fosti_agenti


AS
SELECT codagent, numeagent, functia, codfirma FROM agenti;

4
BAZE DE DATE – SEMINAR 2

MODIFICAREA STRUCTURII TABELELOR - COMANDA ALTER TABLE

Comanda ALTER TABLE permite:


- Modificarea structurii unei tabele având următoarele opțiuni:
Adăugare coloană ADD nume_coloana tip_data
Modificare coloană MODIFY nume_coloana tip_nou_data
Stergere coloană DROP COLUMN nume_coloana
Inactivare coloană în vederea ștergerii SET UNUSED
ulterioare

- Modificarea restricțiilor de integritate având următoarele opțiuni:


Adăugare restricție ADD CONSTRAINT nume_restrictie tip_restrictie
Modificare restricție MODIFY CONSTRAINT nume_restrictie
tip_nou_restrictie
Stergere restricție DROP CONSTRAINT nume_restrictie
Dezactivare/activare restricție DISABLE/ENABLE CONSTRAINT nume_restrictie

- Redenumirea tabelei: RENAME


ALTER TABLE nume_tabela RENAME TO nume_nou_tabela;
sau
RENAME nume_tabela TO nume_nou_tabela;

Să se execute următoarele comenzi!


Să se redenumească tabela agenti în personal
ALTER TABLE agenti RENAME TO personal;
sau
RENAME agenti TO personal;

Să se adauge coloanele email și varsta în tabela personal


ALTER TABLE personal
ADD (email VARCHAR2(10),
varsta NUMBER(2));

Să se modifice tipul de date al coloanei email


ALTER TABLE personal
MODIFY (email VARCHAR2(30));

Să se șteargă coloana email


ALTER TABLE personal
DROP COLUMN email;

Să se inactiveze coloana functia


ALTER TABLE personal
SET UNUSED COLUMN functia;

Să se șteargă coloanele inactive


ALTER TABLE personal
DROP UNUSED COLUMNS;

Să se adauge o restricție pe coloana varsta

5
BAZE DE DATE – SEMINAR 2

ALTER TABLE personal


ADD CONSTRAINT check_varsta CHECK (varsta>18 and varsta<60);

Să se dezactiveze restricția anterioară


ALTER TABLE personal
DISABLE CONSTRAINT check_varsta;

Să se șteargă restricția anterioară


ALTER TABLE personal
DROP CONSTRAINT check_varsta;

ȘTERGEREA TABELELOR – COMENZILE DROP TABLE ȘI TRUNCATE


TABLE

Comanda DROP TABLE permite ștergerea unei tabele (inclusiv restricțiile acesteia) cu
posibilitate de recuperare:

DROP TABLE nume_tabela [CASCADE CONSTRAINTS];


FLASHBACK TABLE nume_tabela TO BEFORE DROP;

Șterge definitiv tabela fără posibilitate de recuperare


DROP TABLE nume_tabela PURGE;

Să se execute următoarele comenzi!


Să se șteargă tabela fosti_agenti
DROP TABLE fosti_agenti;
Să se recupereze tabela fosti_agenti
FLASHBACK TABLE fosti_agenti TO BEFORE DROP;

Comanda TRUNCATE TABLE șterge înregistrările unei tabele și eliberează spațiul alocat
acestora

Să se execute următoarea comandă!


TRUNCATE TABLE personal;

VIZUALIZAREA OBIECTELOR CE APARTIN UNUI ANUMIT UTILIZATOR


Din dicționarul bazei de date se pot vizualiza o serie de informații referitoare la obiectele
utilizatorului curent

Să se execute următoarele comenzi!


Să se vizualizeze toate tabelele utilizatorului curent
SELECT * FROM USER_TABLES;

Să se vizualizeze denumirea tabelelor, restricțiile și tipul acestora pentru utilizatorul curent


SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME
FROM USER_CONSTRAINTS;

S-ar putea să vă placă și