01_Uvod_DDL_DML_0

Embed Size (px)

Citation preview

  • 7/25/2019 01_Uvod_DDL_DML_0

    1/44

    Fakultet tehni kih nauka, DRA, Novi Sad Predmet:

    Struktura i organizacija bazapodataka

    Dr Slavica Aleksi , Milanka Bjelica,

    Nikola Obrenovi

  • 7/25/2019 01_Uvod_DDL_DML_0

    2/44

    2

    Sistem ocenjivanja

    Ukupno: 100 bodova

    Predispitne

    obaveze

    Zavrni

    ispitTeoretski deo(predavanja)

    20 30 50

    Praktini deo

    (vebe) 50 0 50

    70 30 100

  • 7/25/2019 01_Uvod_DDL_DML_0

    3/44

    3

    Praktini deo - vebe

    50 bodova U toku nastave

    3 zadatka / ve be sloeni oblici vebi (Z1 -Z3) realizacija zadataka na vebama

    SQL jezik (20 bodova) ER model podataka (15 bodova) Prevo enje ER eme u relacioni model podataka

    (15 bodova) Maks. 50 bodova

  • 7/25/2019 01_Uvod_DDL_DML_0

    4/44

    4

    Praktini deo - vebe

    Pravila realizacije obaveza Zadaci / vebe sloeni oblici vebi (Z1 -Z3)

    polaganje na asu vebi, koji je za to unapredplaniran, pred asistentom

    u toku semestra student dobija na vebama primere i zadatke koji

    predstavljaju pripremu za njihovu realizaciju najvie jedan zadatak / veba moe se ponoviti,

    odnosno popraviti, na kraju semestra

  • 7/25/2019 01_Uvod_DDL_DML_0

    5/44

    5

    Praktini deo - vebe Softverska podrka

    SUBP Microsoft SQL Server 2008 R2 SQL Server Management Studio

  • 7/25/2019 01_Uvod_DDL_DML_0

    6/44

    6

    Rad u uionici

    Windows: User name: EE X-Y

    X broj indeksa Y godina upisa

    Password: ftn

  • 7/25/2019 01_Uvod_DDL_DML_0

    7/44

    7

    Rad u uionici

    SQL Server Management Studio Start -> Programs ->Microsoft SQL Server

    2008 R2-> SQL Server Management Studio

    Materijali www.acs.uns.ac.rs

  • 7/25/2019 01_Uvod_DDL_DML_0

    8/44

    8

    Rad u uionici

    Podaci potrebni za konektovanje na bazupodataka SQL Server: ULMO (Network server)

    SQL Server Authentication: Username: sa Password: sa

  • 7/25/2019 01_Uvod_DDL_DML_0

    9/44

    9

    SQL (Structured Query Language)

    SQL standardni jezik relacionih sistema za

    upravljanje bazama podataka jezik visokog nivoa deklarativnosti objedinjuje funkcije jezika za definiciju

    podataka, jezik za manipulaciju podacima i

    upitni jezik

  • 7/25/2019 01_Uvod_DDL_DML_0

    10/44

    10

    SQL (Structured Query Language)

    Namena i zadaci SQL-a u okviru sistemaza upravljanje bazama podataka administratorima baze podataka za obavljanje

    poslova administracije programerima za izradu aplikacija nad bazom

    podataka

    krajnjim korisnicima, za postavljanje upita nadbazom podataka

  • 7/25/2019 01_Uvod_DDL_DML_0

    11/44

    11

    SQL (Structured Query Language)

    SQL se javlja u formama: interaktivnog jezika sistema za upravljanje

    bazama podataka ugra enog jezika u jezik III generacije sastavnog dela jezika IV generacije

  • 7/25/2019 01_Uvod_DDL_DML_0

    12/44

    12

    SQL (Structured Query Language)

    Saglasno nameni i vrstama korisnika koji gaupotrebljavaju, SQL obezbeuje realizacijusledeih zadataka: izraavanje upita putem upitnog jezika (naredba

    SELECT) auriranje baze podataka putem jezika za

    manipulaciju podacima (naredbe INSERT, DELETE iUPDATE)

    realizacija implementacione eme baze podataka idefinisanje fizike organizacije baze podataka(naredbe CREATE, DROP i ALTER)

    automatsko odravanje renika podataka

  • 7/25/2019 01_Uvod_DDL_DML_0

    13/44

    13

    SQL (Structured Query Language)

    Saglasno nameni i vrstama korisnika koji gaupotrebljavaju, SQL obezbeuje realizaciju sledeihzadataka: transakcijska obrada podataka ( naredbe COMMIT, ROLLBACK,

    SAVEPOINT) zakljuavanje resursa (naredba LOCK TABLE) zatita podataka od neovlaenog pristupa (naredbe GRANT,

    REVOKE) praenje zauzea resursa i performansi rada sistema za

    upravljanje bazama podataka (naredbe AUDIT, EXPLAIN PLAN) obezbeenje proceduralnog naina obrade podataka "slog po

    slog" (naredbe za rad sa kursorom: OPEN, FETCH, CLOSE)

  • 7/25/2019 01_Uvod_DDL_DML_0

    14/44

    14

    SQL (Structured Query Language)

    Sintaksa SQL- a zavisi od proizvoaasistema za upravljanje bazama podataka.

  • 7/25/2019 01_Uvod_DDL_DML_0

    15/44

    Kreiranje baze podatakaCREATE DATABASE database_name

    [ CONTAINMENT = { NONE | PARTIAL } ][ ON [ PRIMARY ] [ ,...n ] [ ,

    [ ,...n ] ] [ LOG ON [ ,...n ] ] ][ COLLATE collation_name ] [ WITH [,...n ] ][;]

    15

  • 7/25/2019 01_Uvod_DDL_DML_0

    16/44

    Primer

    create database E12333;

    nakon kreiranja nove baze podataka, sveostale naredbe se izvravaju nad tom

    bazom podataka opcija New Query iz konteksnog menija

    16

  • 7/25/2019 01_Uvod_DDL_DML_0

    17/44

    17

    SQL tipovi podatakaData TypeDescription

    VARCHAR(size) niz karaktera promenljive duine, maksimalne duine size ;minimalna duina je 1, maksimalna je 8000

    CHAR(size) Niz karaktera fiksne duine od size bajtova; default i minimalna duina je 1,maksimalna duina je 8000

    NVARCHAR(size) Unicode niz karaktera promenljive duine, maksimalneduine size ; m inimalna duina je 1, maksimalna je 4000

    NCHAR(size) Unicode n iz karaktera fiksne duine od size bajtova; default i minimalna duina je 1,maksimalna duina je 4000

    NUMERIC(p,s) broj ukupnog broja cifara p, od ega je s cifaraiza decimalnog zareza; p moe imati vrednosti

    od 1 do 38 BINARY binarni sadr aj do 8000 bajtova INT REAL, FLOAT DATETIME vrednosti za vreme i datum TEXT, NTEXT veliki text do 2^31-1karaktera IMAGE veliki binarni sadr aj do 2^31-1 bajtova

  • 7/25/2019 01_Uvod_DDL_DML_0

    18/44

    18

    Kreiranje tabele

    CREATE TABLE [ema.] ( [DEFAULT izraz] [, ...][CONSTRAINT constraint_name PRIMARY KEY

    (col1[,])] [CONSTRAINT constraint_name FOREIGN KEY(col1[,]) references table_name (col1[,])] );

    ema poklapa se sa nazivom korisnika DEFAULT opcija:

    Specificira se predefinisana vrednost za kolonu, kojase koristi ukoliko se prilikom ubacivanja podatakaizostavi vrednost za tu kolonu

  • 7/25/2019 01_Uvod_DDL_DML_0

    19/44

    19

    Naziv tabele i kolone

    mora poeti slovom, mora biti izmeu 1 i 30 znakova duine, mora sadrati samo velika i mala slova,

    cifre, _, $ i #, ne sme se poklapati sa nazivom nekog

    drugog objekta koji je kreirao isti korisnik,

    ne sme biti rezervisana re Microsoft SQLservera.

    nazivi nisu case sensitive.

  • 7/25/2019 01_Uvod_DDL_DML_0

    20/44

    20

    Primer

    radnik({Mbr, Ime, Prz, Sef, Plt, God}, {Mbr}),projekat({Spr, Ruk, Nap, Nar}, {Spr}),radproj({Spr, Mbr, Brc}, {Spr+Mbr}),

    radnik[Sef] radnik[Mbr],projekat[Ruk] radnik[Mbr],radproj[Mbr] radnik[Mbr],radproj[Spr] projekat[Spr].

  • 7/25/2019 01_Uvod_DDL_DML_0

    21/44

    21

    Tabela radnik Mbr - maticni broj radnika Ime - ime radnika Prz - prezime radnika Sef - maticni broj direktno nadredjenog rukovodioca

    - radnika Plt - mesecni iznos plate radnika God - Datum rodjenja radnika Pre godinja premija na platu radnika

    Obeleja Mbr, Ime, Prz ne smeju imati null vrednost.Plata ne sme biti manja od 500

  • 7/25/2019 01_Uvod_DDL_DML_0

    22/44

    22

    Tabela radnikCREATE TABLE radnik(

    Mbr integer NOT NULL,Ime varchar(20) NOT NULL,Prz varchar(25) NOT NULL,

    Sef integer,Plt decimal(10, 2),Pre decimal(6, 2),God date NOT NULL,

    CONSTRAINT radnik_PK PRIMARY KEY (Mbr),CONSTRAINT radnik_FK FOREIGN KEY (Sef)REFERENCES Radnik (Mbr),

    CONSTRAINT radnik_CH CHECK (Plt>500));

  • 7/25/2019 01_Uvod_DDL_DML_0

    23/44

    23

    Tabela projekat

    Spr - sifra projekta Ruk - rukovodilac projekta Nap - naziv projekta Nar - narucilac projekta

    Obeleja Spr i Ruk ne smeju imati nullvrednost, dok obeleje Nap mora imati

    jedinstvenu vrednost

  • 7/25/2019 01_Uvod_DDL_DML_0

    24/44

    24

    Tabela projekatCREATE TABLE projekat

    (Spr integer not null,

    Ruk integer not null,Nap varchar(30),Nar varchar(30),CONSTRAINT projekat_PK PRIMARY KEY (Spr),

    CONSTRAINT projekat_FK FOREIGN KEY (Ruk)REFERENCES Radnik (Mbr),

    CONSTRAINT projekat_UK UNIQUE (Nap));

  • 7/25/2019 01_Uvod_DDL_DML_0

    25/44

    25

    Tabela radproj

    Spr - sifra projekta Mbr - maticni broj radnika Brc - broj casova nedeljnog angazovanja na

    projektu

    Sva tri obeleja ne smeju da imaju nullvrednost

  • 7/25/2019 01_Uvod_DDL_DML_0

    26/44

    26

    Tabela radproj

    CREATE TABLE radproj(Spr integer NOT NULL,

    Mbr integer NOT NULL,Brc integer NOT NULL,CONSTRAINT radproj_PK PRIMARY KEY (Spr, Mbr),CONSTRAINT radproj_rad_FK FOREIGN KEY (Mbr)

    REFERENCES radnik(Mbr),CONSTRAINT radproj_prj_FK FOREIGN KEY (Spr)

    REFERENCES projekat(Spr));

  • 7/25/2019 01_Uvod_DDL_DML_0

    27/44

  • 7/25/2019 01_Uvod_DDL_DML_0

    28/44

    28

    Kreiranje tabele za vebu

    create table organizacija(

    orgid int not null,orgnaziv varchar(20) null,mestoorg varchar(20) null,CONSTRAINT organizacija_pkPRIMARY KEY (orgid)

    );

  • 7/25/2019 01_Uvod_DDL_DML_0

    29/44

    29

    Kreiranje tabele

    imenik ({Mbr, Telbroj}, {Mbr})

    Mbr matini broj radnika Telbroj telefonski broj radnika

  • 7/25/2019 01_Uvod_DDL_DML_0

    30/44

  • 7/25/2019 01_Uvod_DDL_DML_0

    31/44

  • 7/25/2019 01_Uvod_DDL_DML_0

    32/44

  • 7/25/2019 01_Uvod_DDL_DML_0

    33/44

    33

    ALTER TABLE U tabelu imenik dodati obeleja mesto i adresa .

    alter table imenikadd adresa varchar(20) null,

    mesto varchar(30) null;

    U tabelu imenik dodati ogranienje referencijalnogintegritetaimenik[Mbr] radnik[Mbr]

    alter table imenikadd constraint radnik_ti_fk FOREIGN KEY (mbr)

    references radnik (mbr) ;

  • 7/25/2019 01_Uvod_DDL_DML_0

    34/44

    34

    ALTER TABLE

    Iz tabele imenik ukloniti obeleje mesto

    alter table imenikdrop column mesto;

  • 7/25/2019 01_Uvod_DDL_DML_0

    35/44

  • 7/25/2019 01_Uvod_DDL_DML_0

    36/44

    36

    Auriranje baze podataka

    INSERT DELETE

    UPDATE

  • 7/25/2019 01_Uvod_DDL_DML_0

    37/44

  • 7/25/2019 01_Uvod_DDL_DML_0

    38/44

  • 7/25/2019 01_Uvod_DDL_DML_0

    39/44

  • 7/25/2019 01_Uvod_DDL_DML_0

    40/44

  • 7/25/2019 01_Uvod_DDL_DML_0

    41/44

    41

    Auriranje baze podataka

    Iskljuiti radnike sa onih projekta gde im je angaovanje na projektu manje od 5asova

    delete from radprojwhere brc < 5

  • 7/25/2019 01_Uvod_DDL_DML_0

    42/44

    42

    Auriranje baze podataka

    UPDATE modifikacija postoje ih torki

    UPDATE SET < obeleje >= {,= }

    [WHERE ()]

  • 7/25/2019 01_Uvod_DDL_DML_0

    43/44

  • 7/25/2019 01_Uvod_DDL_DML_0

    44/44

    44

    Auriranje baze podataka

    Svim radnicima koji ma je ef radnik saifrom 50, poveati p latu za 500

    update radnikset plt = plt + 500where sef = 50