Documente Academic
Documente Profesional
Documente Cultură
N ORACLE
Prezentare general
Limbajul SEQUEL (Structured English as Query Language) a fost prezentat pentru
prima dat ca un limbaj de interogare n anul 1974, de ctre Chamberlin i Boyce. n 1980,
Chamberlin a schimbat denumirea SEQUEL n SQL (Structured Query Language limbaj
structurat de interogare) [7].
ANSI (Institutul Naional American pentru Standarde) a publicat n 1986 standardul
SQL ANSI 1986, care definea comenzile de baz ale limbajului SQL, inclusiv pentru crearea
de tabele i vederi (create table i create view). Limbajul SQL 86 nu coninea opiuni de
modificare a structurii sau tergere a obiectelor bazei (alter, drop) i comenzi pentru acordare
i revocare de drepturi utilizatorilor (grant i revoke).
In 1989 apare limbajul SQL 89 recunoscut ca fundament al multor SGBD-uri
comerciale. Totui, variantele comerciale ale diferiilor productori erau incompatibile la
nivel de detaliu.
n 1999 a fost publicat un standard SQL 3 care iese din sfera relaionalului i a
normalizrii relaiilor, aa cum au fost formulate de Codd. Principalele orientri ale limbajului
SQL 3 vizeaz transformarea acestuia ntr-un limbaj complet, n vederea definirii i
gestionrii obiectelor complexe i persistente. Astfel, au fost introduse [7]:
civa gigaoctei
Oracle suport un mediu client/server real. El permite mprirea procesrii ntre baza de
Caracteristici
ir de caractere de lungime variabil
numeric: p (precision) = 1..38, s (scale) =-84..127
ir de caractere de lung>2GB
dat calendaristic
date de tip binar. Maxim size este 2000 bytes.
lungime variabil > 2GB se stocheaz grafice, sunete,
documente
adresa fiecarui rnd din tabel
ir de caractere de lungime fix
binary large object (max 4GB) se stocheaz date
nestructurate (text,imagine, video, date spatiale)
conine un pointer ctre un fiier binar stocat n afara bazei
de date
Crearea unei baze de date necesit cunotine de administrare strict legate de produsul
software de gestiune a bazei de date. Elementele tehnice i fizice ce caracterizeaz serverele
de baze de date, cum ar fi: Oracle, SQL Server, DB2, Informix, sunt [7]:
-
spaiile tabel (table space) folosite pentru alocarea de spaiu pe disc pentru
obiectele bazei
Aciune
CREATE
ALTER
DROP
n continuare, vor fi prezentate detaliat comenzile DDL folosite pentru crearea tabelelor,
modificarea structurii i tergerea acestora.
Crearea tabelelor
Pentru a crea o tabel, se specific urmtoarele [4]:
-
definiiile atributelor
restriciile de integritate
spaiul de tabel
caracteristicile de stocare
clusterul
definiiile partiiilor
4
out-of-line separat, fie la sfritul comenzii CREATE TABLE, fie prin comanda
ALTER
Comanda de creare a unui tabel n limbajul SQL versiunea Oracle:
CREATE TABLE nume_tabel ( camp1 tip_de_date_1 [definitie_cmp], camp2
tip_de_date_2 [definitie_cmp] [, ] )
unde cmp1, cmp2, sunt coloanele tabelului nume_tabel, iar definiie_cmp poate
conine clauze pentru iniializarea unui atribut cu o valoare implicit sau restricii precum
cheie primar, unicitate, null, o restricie definit de utilizator i cheie extern.
Scriptul care creeaz tabelele bazei i stabilete relaiile dintre ele i restriciile, este
urmtorul [7]:
create table firme
(codfirma number(2) constraint PK_firme primary key,
denfirma varchar2(20) not null,
loc varchar2(20),
zona varchar2(15)
CONSTRAINT ZONA_CK check (zona in ('MUNTENIA',
'MOLDOVA','ARDEAL','BANAT', 'DOBROGEA','TRANSILVANIA')));
create table agenti
(codagent varchar2(3) constraint pk_agent primary key,
nume varchar2(25) not null,
zona varchar2(15) CONSTRAINT AGZONA_CK check (zona
in('MOLDOVA','ARDEAL','BANAT','MUNTENIA','DOBROGEA', 'TRANSILVANIA')),
functie varchar2(20));
5
Adugarea restriciilor
n limbajul SQL se pot declara toate tipurile de restricii pentru o baz de date
relaional [6]:
-
restricii refereniale apar datorit existenei cheilor strine (clauza FOREIGN KEY).
precum: inserarea unei linii ntr-o tabel copil sau modificarea unei chei strine; la tergerea
unei linii dintr-o tabel printe (fie se efectueaz tergerea n cascad n tabelul copil, fie se
interzice tergerea).
ncrcarea bazei dintr-o alt aplicaie; salvri, restaurri sau alte operaii in care sunt
necesare dezactivarea temporar a unor restricii si reactivarea lor ulterioar.
Modificarea structurii bazei de date n Oracle poate fi efectuat utiliznd comanda
Modificarea
restriciilor
de
integritate:
ADD,
MODIFY,
DROP,
DISABLE
CONSTRAINT
-
Clauza ADD adaug o coloan sau o restricie, clauza MODIFY modific definiia unei
coloane, iar DROP terge o coloan sau o restricie.
Toate restriciile (PRIMARY KEY, UNIQUE, CHECK i FOREIGN KEY) pot fi
declarate ulterior crerii tabelei i pot fi anulate dac este necesar.
Dup fiecare comand se poate vizualiza structura tabelei cu:
DESCRIBE nume_tabel sau DESC nume_tabel Exemplu: DESCribe firme
7
Exemple:
- Redenumii tabelul comenzi n com i revenii la vechea denumire:
ALTER TABLE comenzi RENAME TO com; RENAME com TO comenzi;
- Adugai coloana adresa la tabelul comenzi
ALTER TABLE comenzi
ADD (adresa VARCHAR2(10) );
- modificai coloana adresa la tipul VARCHAR2(30) n tabelul comenzi:
ALTER TABLE comenzi
MODIFY (adresa VARCHAR2(30));
- adugai la tabelul comenzi restricia de validare pentru coloana codfirma: s aib valori
ntre 10 i 100:
ALTER TABLE comenzi
ADD (CONSTRAINT c1 CHECK (codfirma > 10 and codfirma < 100));
- dezactivai restricia de validare pentru coloana codfirma n tabelul comenzi:
ALTER TABLE comenzi
DISABLE CONSTRAINT c1;
- tergei restricia de validare pentru coloana codfirma n tabelul comenzi:
ALTER TABLE comenzi DROP CONSTRAINT c1;
tergerea tabelelor
Comenzile DROP i TRUNCATE TABLE realizeaz tergerea unui tabel [7]
DROP TABLE nume_tabel CASCADE CONSTRAINTS;
Ex: DROP TABLE comenzi CASCADE CONSTRAINTS;
TRUNCATE terge nregistrarile unei tabele i elibereaza spaiul alocat ei:
TRUNCATE TABLE angajati;
8
Bibliografie
1.
2.
3.
PL/SQL User's Guide and Reference Oracle 10g Release 1 (10.1), 2003
4.
5.
Marin Fotache, SQL Dialecte DB2, Oracle, Visual Foxpro, Editura Polirom, 2001
6.
7.