Integritet u relacionim bazama podataka

Similar documents
Uvod u relacione baze podataka

VRIJEDNOSTI ATRIBUTA

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

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

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

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

Programiranje III razred

Jezik Baze Podataka SQL. Jennifer Widom

INFORMACIONE TEHNOLOGIJE U MEDICINI 2012/13 LEKCIJA 6

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

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

Relacione baze podataka

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

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

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

x y = z Zadaci - procedure

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

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA

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

Računarske osnove Interneta (SI3ROI, IR4ROI)

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

Informacioni sistemi i baze podataka

VHDLPrimeri Poglavlje5.doc

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

Baze podataka SQL Jezik relacione BP

PREDMET. Osnove Java Programiranja. Čas JAVADOC

KLASIFIKACIJA JELENA JOVANOVIĆ. Web:

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

Deo CCITT X.500 directory service standarda Distribuirani serveri koji održavaju neku bazu sa informacijama

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

Uputstvo za korišćenje logrotate funkcije

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

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

MODEL PODATAKA. POREðENJE - KRITERIJUM: PROJEKTOVANJE I/ILI SUBP

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.

Programiranje 1 Programski jezik C 2. čas. Mirko Spasić

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

relacionim bazama podataka (1)

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

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

Izrada VI laboratorijske vježbe

Prirodno-matematički fakultet u Nišu Departman za fiziku. dr Dejan S. Aleksić Programiranje u fizici

... ; ako je a n parno. ; ako je a n neparno

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

Vežbe - XII nedelja PHP Doc

Programske paradigme Funkcionalna paradigma

Java. Ugnježdeni tipovi IMI PMF KG OOP 09 AKM. najveći deo teksta je preuzet sa slajdova Prof. Dragana Milićeva (ETF Bg) namenjenih pedmetu OOP2

Cjenovnik usluga informacionog društva

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

X.509 autentikacioni servis

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

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

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

2. Linijska algoritamska struktura

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije }

Sadržaj. Verzija 03/2017 Primjenjuje se od 20. novembra godine

VB komande. Programiranje 1

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

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

VDSL modem Zyxel VMG1312-B10A/B30A

Chapter 8 INTEGRITY 1

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

GUI - događaji (Events) i izuzeci. Bojan Tomić

JavaScript i HTML DOM

for i:=2 to n do if glasovi[i]>max then begin max:=glasovi[i]; k:=i {*promenljiva k ce cuvati indeks takmicara sa najvise glasova *} end;

For. 1) program ispis; {ispisuje brojeve od 1 do 5 jedan ispod drugog} uses wincrt; var s,i:integer; begin for i:=1 to 5do writeln(i); end.

Editovanje registra u Windowsu

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

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

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

Variable Neighborhood Descent - VND (Metoda promenljivog spusta)

Gramatika mc programskog jezika

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

Ispit iz Programiranja 1

12. Uskladištene procedure (Stored Procedures)

PARALELNO PROGRAMIRANJE

PROGRAMIRANJE. Amir Hajdar

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

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

BAZE PODATAKA 1 - DRUGI KOLOKVIJUM - januar 2013.

Numerical Computation

Proširena stvarnost - Augmented Reality (AR) Dr Nenad Gligorić

PHP? PHP (recursive acronym "PHP: Hypertext Preprocessor") Open Source general-purpose scripting language Web development

Programiranje III razred

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

Proceduralni mehanizmi za kontrolu integriteta relacione baze podataka

Dežurni nastavnik: Kolokvijum traje 1.5 sat, prvih sat vremena nije dozvoljeno napuštanje kolokvijuma. Upotreba literature nije dozvoljena.

FORENZIČKA ANALIZA WINDOWS 7 REGISTRY

decenija objektne orijentacije

PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI

Programiranje Internet aplikacija

RIP v2. Mr Nenad Krajnović Katedra za telekomunikacije

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

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

Geant2 - JRA1. Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce)

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

Osnove RDBMS-a: Šta sačinjava SQL Server bazu podataka

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

Doc.dr.sc. GORAN KRALJEVIĆ

NIZOVI.

Transcription:

Integritet u relacionim bazama podataka Nenad Mitić Matematički fakultet nenad@matf.bg.ac.rs

a a - DATE-AIDB Pojam se u kontekstu baza podataka odnosi na preciznost, punovažnost i korektnost podataka u bazi Održavanje a podataka je od najveće važnosti za RSUBP. Zbog toga se u sistemu definišu pravila (tzv. ograničenja a) koja se primenjuju na podatke ciklus 5.2

(nastavak) a a - DATE-AIDB Intuitivno, ograničenje a je logički izraz pridružen bazi za koga se zahteva da njegovo izračunavanje uvek daje vrednost tačno ciklus se proveravaju pri formiranju objekata u bazi ili menjanju njihovog sadržaja 5.3

Ni jednoj operaciji ažuriranja nije dozvoljeno da ostavi bilo koji relvar u stanju koje narušava bilo koje od ograničenja tog relvar-a. Verzija 1: Ni jednoj operaciji ažuriranja nije dozvoljeno da ostavi bilo koju bazu podataka u stanju u kome se neki od atributa baze izračunava kao netacno (posledica: pre bilo kakvog stvarnog ažuriranja proverava se važenje ograničenja) a a - DATE-AIDB ciklus 5.4

a a - DATE-AIDB ograničenja a: Ocena dobijena na ispitu mora da bude u intervalu od 5 do 10. CONSTRAINT OCENA1 IS EMPTY (ISPIT WHERE OCENA<5 OR OCENA>10) ciklus 5.5

a Klasifikacija prema DATE-AIDB : definišu prihvatljiva stanja u bazi : definišu prihvatljiva stanja prelaza u bazi a a - DATE-AIDB ciklus 5.6

baze: ograničenja koja se odnose na vrednosti koje je dozvoljeno čuvati u bazi (tj. koje se odnose na dve ili više različitih relacija) relacija (relvar-a): zadaje se ograničenje na vrednost pojedinačne relacije (relvar-a) koje se proverava pri ažuriranju te relacije a a - DATE-AIDB ciklus 5.7

(nastavak) a a - DATE-AIDB atributa: ograničenja na skup dozvoljenih vrednosti datog atributa tipa: definicija skupova vrednosti koji čine dati tip ciklus 5.8

- primeri a a - DATE-AIDB Ogranicenja tipa TYPE POINT POSSREP CARTESIAN (X RATIONAL, Y RATIONAL) CONSTRAINT ABS (THE_X (POINT)) <= 100.0 AND ABS(THE_Y (POINT)) <= 100.0 ; ciklus 5.9

- primeri Ogranicenja atributa VAR PREDMET BASE RELATION { ID_PREDMETA INTEGER, SIFRA SIFRA, NAZIV NAZIV, BODOVI SMALLINT }; a a - DATE-AIDB ciklus 5.10

- primeri Ogranicenja relacija CONSTRAINT REL1 IF NOT ( IS_EMPTY ( PREDMET ) ) THEN COUNT ( PREDMET END IF; a a - DATE-AIDB WHERE SIFRA= SIFRA ( R270 )) > 0 Ako uopšte postoji neki predmet tada bar jedna od njih mora da ima šifru R270. ciklus 5.11

- primeri Ogranicenja baze CONSTRAINT BAZA1 FORALL DOSIJE D FORALL ISPIT I IS_EMPTY (( D JOIN I ) WHERE I.INDEKS > 20150000 AND I.INDEKS = D.INDEKS AND GODINA_ROKA=GODINA_ROKA(2015); Ni jedan student upisan na studije 2015 godine ne može da polaže uspit u 2015 godini a a - DATE-AIDB ciklus 5.12

: ako baza sadrži podatke o osobama tada su važeca sledeća ograničenja: Nije dozvoljeno venčanje vec venčanih osoba Dozvoljeno je venčati se sa razvedenom osobom Osobe koje više nisu žive ne mogu da primaju platu (penziju,...)... a a - DATE-AIDB ciklus Šta bi bila ograničenja prelaza u slučaju baze podataka o studentima? 5.13

a - drugi pogled a a - DATE-AIDB Klasifikacija prema tipu ograničenja koje mora da bude ispoštovano u bazi Integritet domena Integritet redundatnosti Integritet (poslovnih) ograničenja ciklus 5.14

relacije R predstavlja podskup atributa X te relacije, ako važi: Pravilo jedinstvenosti: ne postoje dve torke u relaciji R koje imaju iste vrednosti za X, i Pravilo minimalnosti: ne postoji pravi podskup skupa X koji zadovoljava pravilo jedinstvenosti. Svaka relacija ima bar jednog kandidata za ključ (skup svih atributa ili neki njegov pravi podskup) a a - DATE-AIDB ciklus 5.15

a Primarni ključ - jedan od kandidata za ključ Alternativni ključevi - ostali kandidati Spoljašnji (strani) ključ - skup atributa jednog relvar-a R2 čije vrednosti treba da odgovaraju vrednostima nekog kandidata za ključ nekog relvar-a R1 Superključ - nadskup kandidata za ključ; poseduje jedinstvenost ali ne i minimalnost a - DATE-AIDB ciklus 5.16

Relvar DOSIJE - primarni ključ je INDEKS Relvar PREDMET - primarni ključ je ID_PREDMETA Relvar ISPITNI_ROK - primarni ključ je par atributa (GODINA_ROKA, OZNAKA_ROKA) Relvar ISPIT primarni ključ je (INDEKS, ID_PREDMETA, GODINA_ROKA, OZNAKA_ROKA) spoljašnji ključevi su - (GODINA_ROKA, OZNAKA_ROKA) - INDEKS - ID_PREDMETA a a - DATE-AIDB ciklus 5.17

a a - DATE-AIDB Osnovna ideja očuvanja a u ovom slucaju je da sve vrednosti u ma treba da budu usaglašene : ako ispit sadrži podatke o studentu za koga ne postoje informacije u tabeli dosije tada je došlo da narušavanja a baze ciklus Spoljašnji ključevi u relaciji ispit? 5.18

(nastavak) a a - DATE-AIDB Spoljašnji ključ predstavlja referencu na torku koji sadrži odgovarajući primarni kljuc. Odatle je problem osiguravanja da baza podataka ne sadrži pogrešne spoljašnje ključeve poznat kao problem referencijalnog a, a ograničenja koja to omogućuju se nazivaju referencijalna ograničenja. ciklus 5.19

(nastavak) a a - DATE-AIDB Relacija koja sadrži primarne ključeve se naziva roditelj relacija, a relacija koja sadrži spoljašnje ključeve koji se referišu na roditelj relaciju se naziva dete relacija. ciklus : Baza ne sme da sadrži neuparene vrednosti spoljašnjih ključeva 5.20

(nastavak) a a - DATE-AIDB Relvar-i koji nemaju kandidate za ključ (tj. sadrže duple slogove) se ponašaju nepredvidivo u pojedinim situacijama (videti primer1a.sql iz 5.primeri.sql) Sistem koji ne poseduje znanje o kandidatima za ključ ponekad pokazuje karakteristike koje nisu "čisto relacione". ciklus 5.21

(nastavak) a a - DATE-AIDB Definicija spoljasnjih kljuceva: FOREIGN KEY lista atributa REFERENCES ime relvar-a ciklus 5.22

a a - DATE-AIDB Pravilo brisanja CASCADE RESTRICT NO ACTION SET NULL Pravilo ažuriranja RESTRICT NO ACTION ciklus 5.23

ciklus a a - DATE-AIDB T n T n 1 T n 2... T 1 T n Roditelj i dete ne moraju da budu različite tabele VAR STUDENTI BASE RELATION {INDEKS INDEKS,..., PARLAMENT INDEKS,...} PRIMARY KEY {INDEKS} FOREIGN KEY {RENAME PARLAMENT AS INDEKS} REFERENCES STUDENTI; ciklus 5.24

a CREATE DOMAIN NAZIV_PREDMETA CHAR(30) DEFAULT??? CONSTRAINT POSTOJECI_PREDMETI CHECK ( VALUE IN ( Relacione baze podataka, Programiranje 1, Programiranje 2, Analiza 1,??? )); CREATE TABLE PREDMETI (..., NAZIV NAZIV_PREDMETA,...); a - DATE-AIDB ciklus 5.25

a Definicija kandidata za ključeve UNIQUE (lista naziva atributa) PRIMARY KEY (lista naziva atributa) NOT NULL definicija spoljašnjih ključeva FOREIGN KEY (lista naziva atributa) REFERENCES osnovna [(lista naziva atributa)] [ON DELETE referencijalna akcija] [ON UPDATE referencijalna akcija] a - DATE-AIDB ciklus 5.26

(nastavak) a Definicija ograničenja provere CHECK (uslovni izraz) create table ispit ( indeks integer not null, id_predmeta integer not null, godina_roka smallint not null, oznaka_roka char(5) not null, ocena smallint not null with default 5, datum_ispita date, bodovi smallint, primary key (indeks, id_predmeta, godina_roka, oznaka_roka), foreign key (godina_roka, oznaka_roka) references ispitni_rok, foreign key (indeks) references dosije, foreign key (id_predmeta) references predmet), check (ocena >=5 and ocena <=10)); a - DATE-AIDB ciklus 5.27

a Tvrdnja (eng. assertion) je logičke vrednost koja mora uvek da budu ispunjene Okidač (eng. trigger) je niz akcija koje su pridružene odredjenim dogadjajima, i koji se izvršavaju svaki put kada se takav dogadjaj dogodi Implementacije RSUBP ne podržavaju tvrdnje ali podržavaju okidače. a - DATE-AIDB ciklus 5.28

(nastavak) a a - DATE-AIDB CREATE ASSERTION <naziv ogranicenja> CHECK ( <logicki izraz>); DROP ASSERTIONS <naziv ogranicenja> ciklus 5.29

(nastavak) a a - DATE-AIDB CREATE TRIGGER <naziv trigera> <pre ili posle dogadjaja> <dogadjaj> ON <osnovna > [REFERENCING <lista imena>] [FOR EACH <slog ili naredba>] [WHEN (<logicki izraz>) ] <akcija>; ciklus 5.30