BAZE PODATAKA. SQL Opis podataka. Neđeljko Lekić Irena Orović

Similar documents
VRIJEDNOSTI ATRIBUTA

Jezik Baze Podataka SQL. Jennifer Widom

SQL Rukovanje podacima

Uvod u relacione baze podataka

CREATE DATABASE naziv-baze-podataka [IN naziv-dbspace]

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA

1/42 SQL DDL. CREATE ALTER DROP Schema Table Tablespace Index View Domain Constraint... DECLARE TABLE (DB2)

Baze podataka. Ovaj fajl je skinut sa sajta Uvod u SQL (Structured Query Language)

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

PROGRAMIRANJE. Amir Hajdar

In This Lecture. SQL Data Definition SQL SQL. Non-Procedural Programming. Notes. Database Systems Lecture 5 Natasha Alechina

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se biti u mogućnosti: Opisati ograničenja Generisati i održavati ograničenja u bazi

Informacioni sistemi i baze podataka

Integritet u relacionim bazama podataka

Računarske osnove Interneta (SI3ROI, IR4ROI)

Oracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu:

INFORMACIONE TEHNOLOGIJE U MEDICINI 2012/13 LEKCIJA 6

Ime ograničenja je clients_client_num_pk. Ono inforsira biznis pravila po kojem client_number je PK u clients tabeli Naming Constraints

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak...

relacionim bazama podataka (1)

Baze podataka SQL Jezik relacione BP

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.

VHDLPrimeri Poglavlje5.doc

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

IV SQL. Slika 1. SQL*Plus ikona. Slika 2. Dijalog provere identifikacije korisnika. Slika 3. Prozor SQL*Plus programa

Programiranje III razred

[] znači opciono; znači ili. Strana 3 od 5

VDSL modem Zyxel VMG1312-B10A/B30A

(1,M) (1,1) PEVA. idpevaca Ceo broj Većeg opsega da. ime String Max. 30 karaktera da. prezime String Max. 30 karaktera da

Rad sa MySQL bazom podataka

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

Uputstvo za podešavanje mail klijenta

PREDMET. Osnove Java Programiranja. Čas JAVADOC

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

Programske paradigme Funkcionalna paradigma

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak...

Moja naslovnica / Sveučilište u Zagrebu / Fakultet prometnih znanosti / Baze podataka / Opći dio / Izvanredni studenti - test za potpis

VB komande. Programiranje 1

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv

SQL language. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365

Naredbe za kontrolu toka

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije }

Definicije kolona su odvojene zarezima CREATE TABLE Example Sledeći primer poklazuje CREATE TABLE iskaz:

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

Brčko, Brčko Distrikt BiH. OSNOVE BAZA PODATAKA/UPRAVLJANJE BAZAMA PODATAKA Strukturirani jezik za upite - SQL

vježbe. Slobodan Jelić

JavaScript i HTML DOM

RDF, RDFS i JSON-LD. NIKOLA MILIKIĆ URL: nikola.milikic.info

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.

Tema 8: Koncepti i teorije relevantne za donošenje odluka (VEŽBE)

Izrada VI laboratorijske vježbe

SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2. Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1

Doc.dr.sc. GORAN KRALJEVIĆ

Uputstvo za korišćenje logrotate funkcije

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

Elektrotehnički fakultet Osijek Kneza Trpimira 2b. Stručni studij. Rent a Car. Projektni zadatak iz kolegija Baze podataka

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

SQL: Concepts. Todd Bacastow IST 210: Organization of Data 2/17/ IST 210

/*#include <iostream> // Prvi zadatak sa integralnomg ispita

Sberbank Business Online na Mozilla FireFox

Nizovi. Programiranje 1

MICROSOFT LINQ. INFOTEH-JAHORINA Vol. 9, Ref. F-9, p , March Ognjen Borovina, Elektrotehnički fakultet, Istočno Sarajevo

Ovde će se raditi na funkcijama konverzija: konverzija tipa datuma u znak tip i obrnuto, konverzija broja u karakter tip i obrnuto

Z1. Dati RDF graf predstavljen u JSON-LD sintaksi potrebno je grafički predstaviti u skladu sa RDF notacijom. (5 poena)

SQL Functionality SQL. Creating Relation Schemas. Creating Relation Schemas

Upute za postavljanje Outlook Expressa

Numerical Computation

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,

MODELIRANJE I DIZAJN BAZE PODATAKA

OUR KNOWLEDGE FOR YOUR SUCCESS. Iskustva u razvoju i implementaciji ADF aplikacije

Information Systems Engineering. SQL Structured Query Language DDL Data Definition (sub)language

String. String. Kreiranje string objekta pomoću string literala (konstanti) Kreiranje string objekta

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133

EGCI 321: Database Systems. Dr. Tanasanee Phienthrakul

Objektno-relacioni model

Sveučilište Jurja Dobrile u Puli Fakultet ekonomije i turizma «Dr. Mijo Mirković» GORAN ANTOLOVIĆ ALATI ZA KONCEPTUALNO MODELIRANJE PODATAKA

Scheme je funkcionalni jezik moderna varijanta jezika LISP-a, s dodacima iz Algola (lokalni doseg identifikatora).

Editovanje registra u Windowsu

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS

SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU ELEKTROTEHNIČKI FAKULTET. Stručni studij. Formula 1. Projektni zadatak iz kolegija Baze podataka

NIZOVI.

x y = z Zadaci - procedure

PVC Eco. Eco Prozori i Balkonska Vrata Bela Boja Dezeni drveta su 40% skuplji

9. RAD S DATOTEKAMA PODATAKA

Univerzitet u Beogradu Matematički fakultet. Master rad Alati za objektno relaciono preslikavanje Entity Framework i Hibernate i njihovo poređenje

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0

Uvod u SQL kroz primjere

PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM

Projektovanje baze podataka kreiranje i uklanjanje tabela, indeksa, pogleda, trigeri

Brisanje podataka. Unošenje podataka. Izmjena podataka (SQL) Indeks. Kreiranje i brisanje indeksa (SQL) UNIQUE indeks

SQL Data Definition and Data Manipulation Languages (DDL and DML)

CS143: Relational Model

Relacione baze podataka

Transcription:

BAZE PODATAKA SQL Opis podataka Neđeljko Lekić Irena Orović www.etf.ac.me

U OVOJ LEKCIJI SQL SQL jezik SQL, relacioni model i E/R diagram CREATE TABLE Kolone Primarni ključevi Spoljnji ključevi DROP TABLE ALTER TABLE

SQL SQL - Structured Query Language ANSI Standardi SQL-1989 SQL-1992 (SQL2) SQL-1999 (SQL3) SQL-2003 SQL-2006 SQL-2008 Različiti DBMS koriste različite SQL

SQL SQL obezbjeđuje Jezik za opis podataka (DDL - data definition language) Jezik za rukovanje podacima (DML - data manipulation language) Jezik za kontrolu podataka (DCL - data control language) Osim toga SQL se može koristiti iz drugih programskih jezika. Može se proširiti u cilju obezbjeđenja uobičajenih programskih konstrukcija (kao što su: if-then, petlje, promjenljive, itd.)

SQL - NAPOMENE SQL (uglavnom) nije case-sensitive, ali u cilju naglašavanja, SQL ključne riječi je preporučljivo pisati velikim slovima. Nizovi u SQL-u navode se pod jednostrukim navodnicima: Ja sam niz' Citati unutar niza navode se pod dvostrukim navodnicima. Prazan niz:''

NEPROCEDURALNO PROGRAMIRANJE SQL je deklarativan (neproceduralni) jezik Proceduralni navodi što kompjuter tačno treba da uradi. Neproceduralni opisuje zahtijavani rezultat (ne način kako to izračunati). Primjer: Neka je data baza podataka sa sljedećim tabelama: Student sa atributima ID, Ime, Adresa. Predmeti sa atributima Šifra, Naziv. Upis sa atributima ID, Šifra. Dobiti listu studenata koji su odabrali predmet Baze podataka.

PROCEDURALNO PROGRAMIRANJE Set P to be the first Predmet Record /* Nalazenje sifre predmeta */ Code = /* Baze podataka */ While (P is not null) and (Code = ) If (P.Naziv = Baze podataka ) Then Code = P.Code Set P to be the next Predmet Record Set IMENA to be empty /* Lista imena studenata */ Set S to be the first Student Record While S is not null /* Za svakog studenta... */ Set U to be the first Upis Record While U is not null /* Za svaku instacu Upisa... */ If (U.ID = S.ID) And /* Ako je student */ (U.Code = Code) Then /* upisao Baze podataka */ IMENA = IMENA + S.IME /* dodati ga u listu */ Set U to be the next Upis Record Set S to be the next Student Record Return IMENA

NEPROCEDURALNO PROGRAMIRANJE SELECT Ime FROM Student, Upis WHERE (Student.ID = Upis.ID) AND (Upis.Sifra = (SELECT Sifra FROM Predmeti WHERE Naziv = Baze podataka ))

SQL, RELACIONI MODEL, E/R DIZAJN SQL je zasnovan na relacionom modelu Baze podataka koje podržavaju SQL su najčešće relacione baze. E/R dizajn se može implementirati SQLom Enteti, atributi, i veze mogu se izraziti terminima SQL-a. M:M veze su problem i treba ih ukloniti.

RELACIJE, ENTITETI, TABELE Relacioni model Relacija n-torka Atribut Spoljnji ključ Primarni ključ E/R Diagram Entitet Instanca Atribut M:1 veza SQL Tabela Red Kolona ili polje Spoljnji ključ Primarni ključ

IMPLEMENTIRANJE E/R DIZAJNA Za dati E/R dizajn Entiteti postaju SQL tabele. ID Ime Student Adresa Godina Atributi entiteta kolone odgovarajućih tabela. ocjena ima Upis datum Veze mogu biti predstavljene spoljašnjim ključem. Sifra Naziv u Predmet Fond Opis ECTS

ENTITETI I ATRIBUTI Svaki entitet postaje tabela u bazi podataka. Često se za ime tabele uzima ime entiteta. Atributi postaju kolone tabele sa istim imenima. ID Adresa Student Ime Godina Tebela Student, sa kolonama: ID, Ime, Adresa i Godina.

KREIRANJE TABELE CREATE TABLE <name> ( <col-def-1>, <col-def-2>, : <col-def-n>, <constraint-1>, : <constraint-k>) Neohodno je navesti: ime tabele listu definicija kolona listu ograničenja (npr. ključevi)

DEFINISANJE KOLONA <col-name> <type> [NULL NOT NULL] [DEFAULT <val>] [constraint-1 [, constraint-2[,...]]] Svakoj koloni se zadaje ime i tip podatka koji će sadržvati Najčešći tipovi: INT FLOAT CHAR(n) VARCHAR(n) DATE

DEFINISANJE KOLONA Kolone se mogu navesti nao NULL ili NOT NULL. NOT NULL kolone ne mogu imati NULL vrijednost. Ako naredbom ništa nije navedeno za kolone, podrazumijeva se NULL. Kolonama se može dodijeliti podrazumijevena (default) vrijednost. Samo se navede ključna riječ DEFAULT i zatim vrijednost, primjer: broj INT DEFAULT 0

PRIMJER CREATE TABLE Student ( studid INT NOT NULL, studime VARCHAR(50) NOT NULL, studadresa VARCHAR(50), studgodina INT DEFAULT 1) ENGINE=INNODB; ID Adresa Student Ime Godina

OGRANIČENJA CONSTRAINT <name> <type> <details> Najčešći <type>: PRIMARY KEY UNIQUE FOREIGN KEY INDEX Ograničenja imaju ime ograničenja pristupa zahtijevaju ime, ali neka druga ne. Ograničenja koja se odnose na jednu kolonu, mogu se uključiti u definiciju te kolone.

OGRANIČENJA: PRIMARY KEY Primarni ključ se definiše kroz ograničenja. PRIMARY KEY ograničenje uključuje UNIQUE i NOT NULL ograničenja. Za primarni ključ <details> je lista kolona koje sačinjavaju ključ. CONSTRAINT <name> PRIMARY KEY (col1, col2, )

OGRANIČENJA: UNIQUE Isto kao PRIMARY KEY, grupi kolona se može zadati UNIQUE ograničenje Ovime se definiše kandidat za ključ tabele. <details> za UNIQUE ograničenje je lista kolona koja predstavlja kandidat za ključ. CONSTRAINT <name> UNIQUE (col1, col2, )

PRIMJER CREATE TABLE Student ( studid INT NOT NULL, studime VARCHAR(50) NOT NULL, studadresa VARCHAR(50), studgodina INT DEFAULT 1, CONSTRAINT pkstudent PRIMARY KEY (studid) )ENGINE=INNODB;

PRIMJER CREATE TABLE Predmet ( predsifra INT NOT NULL, prednaziv VARCHAR(70) NOT NULL, predfond VARCHAR(50), predopis VARCHAR(100), CONSTRAINT pkpredmet PRIMARY KEY (predsifra) )

VEZE Zavisno od tipa: 1:1 se obično ne koristi ili se može tretirati kao specijalan slučaj M:1 veze ID Ime Ocjena Student ima Upis Adresa Godina Datum M:1 se predstavlja kao spoljašnji ključ iz M-strane na 1. M:M se dijeli u dvije M:1 veze. Sifra Naziv u Predmet Fond Opis ECTS

PREDSTAVLJANJE VEZE Tabela Upis: Imaće kolone za atribute Ocjena i Datum. ID Ime Student ima Adresa Godina Imaće spoljašnji ključ za tebelu Student, za ima vezu. Imaće spoljašnji ključ za tebelu Predmet, za u vezu. Ocjena Sifra Naziv Upis u Predmet Datum Fond Opis ECTS

OGRANIČENJA: FOREIGN KEYS Spoljašnji ključevi (Foreign Keys - FK) takođe se definišu kao ograničenje. Morate da imate: kolone koje čine spoljašnji ključ, referenciranu tabelu, kolone koje su referancirane spoljašnjim ključem. CONSTRAINT <name> FOREIGN KEY (col1,col2, ) REFERENCES <table> [(ref1,ref2, )] Ako se spoljašnji ključ referencira na primarni ključ <table> ne treba se navoditi lista kolona.

PRIMJER CREATE TABLE Upis ( studid INT NOT NULL, predsifra INT NOT NULL, Ocjena CHAR(1), Datum DATE, CONSTRAINT upk PRIMARY KEY (studid, predsifra), CONSTRAINT fkstud FOREIGN KEY (studid) REFERENCES Student (studid), CONSTRAINT fkpred FOREIGN KEY (predsifra) REFERENCES Predmet (predsifra))

BRISANJE TABELA Za brisanje tabele koristi se: DROP TABLE [IF EXISTS] <name> Primjer: BUDITE PAŽLJIVI sa DROP: Izbrisaćete i sve podatke iz tabele. Obično nećete biti pitani za potvrdu. Nama jednostavnog načina za opoziv. DROP TABLE Predmet

IZMJENE U STRUKTURI TABELA Ponekad je potrebno izmijeniti strukturu postojećih tabela. Jedan način je izbrisati je (DROP) i ponovo kreirati. To se ne preporučuje, već umjesto toga postoji komanda ALTER TABLE. ALTER TABLE može Dodati novu kolonu. Ukloniti postojeću kolonu. Dodati novo ograničenje. Ukloniti postojeće ograničenje. Iznijeniti osobine postojeće kolone.

BRISANJE I DODAVANJE KOLONA Za dodavanje i brisanje kolone koristi se: ALTER TABLE <table> ADD COLUMN <col> ALTER TABLE <table> DROP COLUMN <name> Primjeri: ALTER TABLE Student ADD COLUMN Stepen VARCHAR(50) ALTER TABLE Student DROP COLUMN Stepen

IZMJENA OSOBINA KOLONA Promjena imena i definicije: ALTER TABLE <table> CHANGE COLUMN <old col-name> <new colname> <type> Promjena samo definicije: ALTER TABLE <table> MODIFY <col-name> <type> PRIMJERI: ALTER TABLE Student CHANGE COLUMN studime spime VARCHAR(50) NOT NULL ALTER TABLE Student MODIFY spime VARCHAR(40) NOT NULL

DODAVANJE OGRANIČENJA Dodavanje ograničenja: ALTER TABLE <table> ADD CONSTRAINT <definition> Examples ALTER TABLE Predmet ADD CONSTRAINT ck UNIQUE (prednaziv)

BRISANJE OGRANIČENJA U MySQL-u prilikom brisanja ograničenje mora se navesti tip ograničenja: PRIMARY KEY za primarne ključeve; FOREIGN KEY za spoljnje ključeve; INDEX za UNIQUE ograničenje. PRIMJER: ALTER TABLE Predmet DROP INDEX ck ALTER TABLE Predmet DROP PRIMARY KEY ALTER TABLE upis DROP FOREIGN KEY fkstud

ZA VJEŽBU Na osnovu modela sa slike, kreirati bazu podataka. pripada Osoblje brine Odjeljenje Funkcija ima Pacijent uput Atributi postojećih entiteta su: OSOBLJE(osID#, Ime, Prezime, DatRodj, DatZap, odjid, funid) FUNKCIJA(funID#, Naziv) PACIJENT(pctID#, Ime, Prezime, DatRodj, DatPrijem, odjid) ODJELJENJE(odjID#, Naziv) Realizovati vezu brine.