1 / 31

Tipovi podataka SQL 99 standard

Tipovi podataka SQL 99 standard. Nikola Perić 369/2006 Mirjana Milić 319/2006. Uvod. SQL (Structured Query Language) je neproceduralni struktuirani upitni jezik IBM-ova istrazivačka laboratorija, kraj XX veka Postoji više standarda: ANSI, ISO, Microsoft SQL…. Razvoj SQL-a.

elijah
Download Presentation

Tipovi podataka SQL 99 standard

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tipovi podataka SQL 99 standard Nikola Perić 369/2006 Mirjana Milić 319/2006

  2. Uvod • SQL (Structured Query Language) je neproceduralni struktuirani upitni jezik • IBM-ova istrazivačka laboratorija, kraj XX veka • Postoji više standarda: ANSI, ISO, Microsoft SQL…

  3. Razvoj SQL-a • SQL/1986 • SQL/1989 • SQL/1992 • SQL/1999

  4. SQL99 – Tipovi podataka • Standard SQL99 podržava: • predefinisane • referencne • nizovske • Row Data Structures tipove podataka • tipovi podataka koje kreira sam korisnik

  5. Predefinisani tipovi podataka su: • numerički • stringovski • datumski • intervalni • logički tipovi

  6. Numerički (tačni i približni) tipovi podataka su: • INTEGER ili INT • SMALLINT • NUMERIC • DECIMAL ili DEC • REAL • DOUBLE PRECISION • FLOAT

  7. String Type Podaci tipa string su: bitski, karakterski tipovi i BLOB (ili BINARY LARGE OBJECT). Bitski tipovi podataka su: • BIT • BIT VARYING Karakterski tipovi podataka (fiksne i promenljive dužine) su: • CHARACTER ili CHAR • CHARACTER VARYING ili CHAR VARYING ili VARCHAR • CHARACTER LARGE OBJECT ili CLOB ili CHAR LARGE OBJECT

  8. Primer: • Rat_i_mir CLOB(25M) CHARACTER SET CYRILLIC • sluzbenik_fotografija BLOB(50K)

  9. Date Time Type Datumski tipovi podataka su definisani u odnosu na univerzalno koordinisano vreme (UTC): • DATE • TIME • TIMESTAMP • TIME WITH TIME ZONE • TIMESTAMP WITH TIME ZONE

  10. Intervalni tipovi podataka se dele na: • Godina-mesec interval: • INTERVAL YEAR • INTERVAL MONTH • INTERVAL YEAR TO MONTH • Dan-vreme interval: • INTERVAL DAY TO HOUR • INTERVAL DAY TO MINUTE • INTERVAL SECOND • INTERVAL DAY TO SECOND • INTERVAL MINUTE TO SECUNDE

  11. Boolean Type BOOLEAN je logički tip podatka sa moguće tri vrednosti: • TRUE • FALSE • UNKNOWN.

  12. Ref Types Referencni tipovi podataka u SQL99 standardu implementiraju se na sledeći način: <attribute definition> ::= <attribute name> <data type> [ <reference scope check> ] [ <attribute default> ] [ <collate clause> ] <attribute default> ::= <default clause>

  13. Primer: CREATE SCHEMA preduzece CREATE TYPE sluzbenik AS ( prezime CHARACTER VARYING (30), ime CHARACTER VARYING (30), manadzer REF (sluzbenik) SCOPE EVERY EXISTING TABLE );

  14. CREATE TABLE zaposleni OF sluzbenik ( zaposleni_ref REF (sluzbenik) VALUES ARE SYSTEM GENERATED );

  15. CREATE TABLE projekat_tim ( tim_ime CHARACTER VARYING (30), tim_lider REF (sluzbenik) SCOPE (zaposleni), tim REF (sluzbenik) SCOPE (zaposleni) ARRAY [10], izvestaji ROW (frekvenca CHARACTER VARYING (30), izvestaj_za REF (sluzbenik) SCOPE zaposleni) );

  16. Arrays Nizovski tip podataka u SQL99 standaru: Primer: CREATE TABLE izvestaji ( id INTEGER, autori VARCHAR(15) ARRAY[20], naslov VARCHAR(100) );

  17. Operacije nad kreiranom tabelom izveštaji: INSERT INTO izvestaji (id, autori, naslov) VALUES (10, ARRAY ['Date', 'Darwen'], 'A Guide to the SQL Standard’)

  18. Primer: SELECT id, autori[1] AS ime FROM izvestaji SELECT r.id, a.ime FROM izvestaji AS r, UNNEST (r.autori) AS a (ime)

  19. ROW Data Structures ROW Data Structures u SQL99 standardu: Primer: CREATE TABLE zaposleni ( ime CHAR (40), adresa ROW ( ulica CHAR (30), grad CHAR (20), post_br ROW ( original CHAR (5), plus4 CHAR (4) ) );

  20. INSERT INTO zaposleni VALUES (‘John Doe’, (‘2225 Coral Drive’, ‘San Jose’, (‘95124’, ‘2347’) ) );

  21. User Defined Types - UDT • Korisnički definisani tipovi podataka opisani su imenom, reprezentacijom, kao i odnosom sa drugim tipovima podataka. • Korisniči definisani metodi i funkcije opisani su imenom, listom parametara, rezultatom i implementacijom.

  22. Primer: CREATE TABLE soba ( sobaID CHAR(10), sobaDuzina INTEGER, sobaSirina INTEGER, sobaPovrsina INTEGER, sobaObim INTEGER );

  23. UPDATE soba SET sobaPovrsina = sobaDuzina;

  24. CREATE TYPE plan.sobaTip AS CHAR(10) FINAL; CREATE TYPE plan.metri AS INTEGER FINAL; CREATE TYPE plan.metriKvadratni AS INTEGER FINAL; CREATE TABLE soba ( sobaID plan.sobaTip, sobaDuzina plan.metri, sobaSirina plan.metri, sobaObim plan.metri, sobaPovrsina plan.metriKvadratni);

  25. UPDATE soba SET sobaPovrsina = sobaDuzina; UPDATE soba SET sobaDuzina = sobaSirina;

  26. UDT u kolonama i tabelama CREATE TYPE adresa AS ( ulica CHAR (30), grad CHAR (20), drzava CHAR (2), post_br INTEGER) NOT FINAL; CREATE TYPE bitmap AS BLOB FINAL;

  27. CREATE TYPE nekretnina AS ( vlasnik REF (osoba), cena novac, sobe INTEGER, velicina DECIMAL(8,2), lokacija adresa, opis text, slika bitmap, dokumentacija doc ) NOT FINAL ;

  28. CREATE TABLE karakteristike OF nekretnina ( REF IS objekatID USER GENERATED )

  29. SQL99 – UDT Metodi CREATE TYPE sluzbenik AS ( ime CHAR(40), fixna_plata DECIMAL(9,2), bonus DECIMAL(9,2) ) INSTANTIABLE NOT FINAL METHOD plata() RETURNS DECIMAL(9,2); CREATE METHOD plata() FOR sluzbenik BEGIN .... END;

  30. UDT u strukturama podataka i podtabelama Primer: CREATE TYPE osoba ... NOT FINAL CREATE TYPE nekretnina ... NOT FINAL CREATE TYPE stan UNDER nekretnina ... NOT FINAL CREATE TYPE kuca UNDER nekretnina ... NOT FINAL CREATE TABLE klijenti OF osoba ( ...) CREATE TABLE karakteristike OF nekretnina CREATE TABLE stanovi OF stan UNDER karakteristike CREATE TABLE kuce OF kuca UNDER karakteristike

  31. Za svaki red nadtabele postoji najviše jedan red iz neke podtabele. Count(karakteristike) >= Sum (Count(stanovi) + Count(kuce))

More Related