From Wikipedia, the free encyclopedia
(engl. ) je relacioni upitni jezik ( i standard).[2][3][4][5] Relacije se kreiraju jednom naredbom i odmah su dostupne, što ga čini jednostavnim za korišćenje. Uniforman je, jer se svi podaci i rezultati operacija prikazuju u vidu tabele i omogućava interaktivno i klasično programiranje. Sve do verzije ovaj jezik je bio neproceduralan, odnosno njime se specificiralo ŠTA, a ne i KAKO nešto treba uraditi.[6]
Strukturni upitni jezik | |
---|---|
Originalni naziv | |
Dizajner(i) | Donald Čamberlin Rejmond Bojs |
Implementacije | Mnoge |
Dijalekti | |
Uticaji | |
Uticao na | |
Operativni sistemi | Multiplatformski |
Tvorac -a je Donald Čamberlin, a nastao je u -ovoj istraživačkoj laboratoriji (енгл. ) u San Hozeu, Kalifornija 1974. godine, dakle na istom mestu gde je E. F. Kod 1970. definisao osnovne koncepte relacionog modela podataka. Jezik se u početku zvao (engl. ) i predstavljao je programski interfejs () za , prototipski sistem za upravljanje bazom podataka () koji se razvijao kao deo istraživačkog projekta pod istim nazivom.
Pojava komercijalnih relacionih sistema uvećala je značaj i ubrzala proces standardizacije relacionog upitnog jezika. Prva etapa tog procesa završila se 1986. godine usvajanjem -a kao standardnog relacionog upitnog jezika. Ta prva verzija standarda je poznata pod nazivom . Njom su standardizovane osnovne karakteristike -a kao deklarativnog relacionog upitnog jezika. Međutim, mnoge bitne karakteristike jezika ostale su nestandardizovane. To je dovelo do revizija standarda, koji je usvojen 1989. godine i kojom su standardizovane karakteristike koje se odnose na očuvanje integriteta baze podataka i povezivanje sa klasičnim programskim jezicima. Ta verzija standarda poznata je pod nazivom . 1992. godine usvojena je sledeća bitna revizija standarda, poznata pod nazivom ili , kojom je zaokružen kao programski jezik, a obim standarda uvećan šest puta u odnosu na polaznu verziju. Naredna verzija standarda usvojena je . godine.[7]
Iako su početne verzije -a bile prilično jednostavne, bliske korisniku i u velikoj meri deklarativne za se može reći da je kompleksan, proceduralno/deklarativan jezik. U njega su uključeni koncepti objektne tehnologije, mehanizam trigera, rekurzija i proceduralna proširenja. Da bi se povećala funkcionalnost jezika, u standardu uvedena je proceduralna nadgradnja -a, koju uglavnom čine upravljačke struktrure slične upravljačkim strukturama klasičnih programskih jezika. standard definiše više načina korišćenja -a. Dva osnovna načina su direktno (interaktivno) korišćenje -a i povezivanje -a sa klasičnim programskim jezicima („ugrađeni“ ).[7]
standard razvrstava naredbe u sledećih 7 kategorija:
Domen je u -u prost, korisnički definisan imenovan objekat koji se može koristiti kao alternativa za predefinisan tip podatka nad kojim se definiše. Može imati vrednost i jedno ili više ograničenja.
CREATE DOMAIN <naziv domena> [AS] <predefinisani tip>
[DEFAULT <vrednost>]
[[CONSTRAINT <naziv ograničenja>] CHECK (<ograničenje>)] ..
ALTER
:ALTER DOMAIN <naziv domena>
SET DEFAULT <vrednost> |
DROP DEFAULT |
ADD [CONSTRAINT <naziv ograničenja>] CHECK (<ograničenje>) |
DROP CONSTRAINT <naziv ograničenja>
DROP DOMAIN <naziv domena>
Indeksi su strukture podataka koje olakšavaju i čine efikasnijim pristup podacima baze. Vrednosti indeksiranih kolona mogu biti jedinstvene (primarni ključ) ukoliko se pri kreiranju izabere varijanta .
CREATE [UNIQUE] INDEX <naziv indeksa>
ON (<naziv tabele> ( <naziv kolone1> [, <naziv kolone2>, ..]) ;
Izbacivanje se vrši naredbom:
DROP INDEX <naziv indeksa>
Katalog je imenovana kolekcija šema baze podataka u . Svaki katalog sadrži šemu rečnika podataka sa nazivom INFORMATION SCHEMA
. U –u ne postoji mogućnost kreiranja i brisanja kataloga.
Šema predstavlja kolekciju svih objekata koji dele isti prostor imenovanja. Šema može sadržati jednu ili više tabela, a svaka tabela može pripadati logički tačno jednoj šemi. Šema se kreira naredbom:
CREATE SHEMA <naziv šeme>
Izbacivanje šeme može biti CASCADE
- izbacuje šemu i objekte iz nje ili RESTRICT
- brisanje šeme koja je prazna i ostvaruje se naredbom:
DROP SHEMA <naziv šeme> CASCADE | RESTRICT
Pun naziv objekta specificira se u obliku:
<naziv kataloga>, <naziv šeme>, <naziv objekta>
Numerički tipovi |
|
Tekstualni tipovi |
|
Binarni tipovi |
|
Datumski tipovi |
|
Intervalni tipovi |
|
---|
Podaci se u čuvaju se i prikazuju u obliku tabela. Svaka kolona tabele ima ime i tip podatka ili domen. Red je najmanja jedinica podatka koja se može uneti u tabelu ili izbrisati iz nje.
U koriste se:
Perzistentna tabela
CREATE TABLE <naziv tabele>
(<naziv kolone1> <tip podatka> NOT NULL],
<naziv kolone> <tip podatka> [NOT NULL], ..)
Globalna privremena tabela
CREATE GLOBAL TEMPORARY TABLE <naziv tabele>
(<naziv kolone1> <tip podatka> [ NOT NULL],
<naziv kolone> <tip podatka> [ NOT NULL], . .) ;
Kreirana lokalna privremena tabela
CREATE LOCAL TEMPORARY TABLE <naziv tabele>
(<naziv kolone1> <tip podatka> [ NOT NULL],
<naziv kolone> <tip podatka> [ NOT NULL], . .) ;
Deklarisana lokalna privremena tabela
DECLARE LOCAL TEMPORARY TABLE MODULE <naziv tabele>
(<naziv kolone1> <tip podatka> [NOT NULL],
<naziv kolone> <tip podatka> [ NOT NULL], . .) ;
ALTER TABLE <naziv tabele>
[ADD COLUMN] <definicija kolone> ;
ALTER TABLE <naziv tabele>
[ALTER COLUMN] <naziv kolone>
SET DEFAULT <vrednost> |
DROP DEFAULT;
ALTER TABLE <naziv tabele>
DROP [COLUMN] <naziv kolone> ;
ALTER TABLE <naziv tabele>
ADD [CONSTRAINT <naziv ograničenja> ] <ograničenje tabele> |
DROP CONSTRAINT <naziv ograničenja> ;
DELETE TABLE <naziv tabele>;
DROP TABLE <naziv tabele>;
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.