Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Similar documents
Versionare - GIT ALIN ZAMFIROIU

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice

Subinterogari SELECT salariul FROM angajaţi WHERE nume= Ionescu SELECT nume, prenume FROM angajaţi WHERE salariul>s

Procesarea Imaginilor

Proceduri stocate. Crearea procedurilor stocate. Varianta 1 În Management Studio se dă clic pe New Query ca în imaginea de mai jos: Fig.

Metrici LPR interfatare cu Barix Barionet 50 -

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin

CERERI SELECT PE O TABELA

Mecanismul de decontare a cererilor de plata

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N

Crearea şi gestionarea tabelelor. Definirea constrângerilor de integritate în SQL

Creare baza de data Deschidem aplicaţia Microsoft Access. Lansarea în execuţie a programului se face urmând calea:

5.1 Definirea datelor în SQL

Capitolul IF.02. Structurarea bazelor de date

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962)

[{CYCLE NOCYCLE}] [{CACHE

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban

INTEROGĂRI ÎN SQL SERVER

CERERI SELECT PE MAI MULTE TABELE

The First TST for the JBMO Satu Mare, April 6, 2018

Propuneri pentru teme de licență

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows

Ce este o BAZA DE DATE?

MICROSOFT ACCESS 2007 (DE CĂUTAT???)

Proiectarea bazelor de date. PL/SQL Înregistrări și Colecții # 13. Adrian Runceanu

R O M Â N I A CURTEA CONSTITUŢIONALĂ

Cap.5 Normalizarea relaţiilor

Funcţii grup şi clauzele GROUP BY, HAVING. Operatorii ROLLUP şi CUBE.

Baza de date: tabele, date. Componentele unei B.D.: tabele, constrangeri, relatii. Entitati ale unei B.D.: formulare, interogari, rapoarte

Subiecte Clasa a VI-a

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND

Proiectarea bazelor de date # 11. PL/SQL Funcții în PL/SQL (partea a II-a) Adrian Runceanu

EN teava vopsita cu capete canelate tip VICTAULIC

Capitolul 4 SUBCERERI. F. Radulescu. Curs: Baze de date - Limbajul SQL

Baze de date distribuite și mobile

Documentaţie Tehnică

SGBD Access 2010: Query

Baze de date - Lucrare de laborator 3 -

Olimpiad«Estonia, 2003

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A.

ISBN-13:

Gruparea rezultatelor unei interogări

Colegiul Național Calistrat Hogaș Piatra-Neamț LIMBAJUL SQL

Class D Power Amplifiers

Auditul financiar la IMM-uri: de la limitare la oportunitate

Proprietăţi obiectual-relaţionale în standardul SQL prof. dr. ing. Mircea Petrescu

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC

X-Fit S Manual de utilizare

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M )

9. CURSOARE. Obiective. În acest Capitol, vom învăţa despre: Manipularea cursoarelor. Folosirea Cursor FOR Loops şi Nesting Cursors.

1. Date, informaţii, cunoştinţe Date Informaţii Cunoştinţele

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC)

Interogarea (query), este operaţia prin care se obţin datele

O bază de date (database), este o colecţie de date creată şi

:= 950; BEGIN DELETE FROM

Nume şi Apelativ prenume Adresa Număr telefon Tip cont Dobânda Monetar iniţial final

Subprograme şi pachete PL/SQL

PROIECT. La Baze de date. Evidența activității pentru o firmă IT. Îndrumător: ș. l. dr. ing. Mirela Danubianu. Efectuat de: Grigoriev Sergiu gr.

Candlesticks. 14 Martie Lector : Alexandru Preda, CFTe

Luminiţa Scripcariu PREFAŢĂ... 3

I. CONCEPTE ALE BAZELOR DE DATE RELAŢIONALE

1 Vasile Violeta Ion Popescu Avram Maria Câmpuri în tabel

UNIVERSITATEA DIN CRAIOVA FACULTATEA DE ELECTROMECANICĂ CATEDRA DE ACŢIONĂRI ELECTRICE. Şef lucrări dr. ing. Cătălin CONSTANTINESCU BAZE DE DATE

Tehnologia OLAP. Prep. Daniela-Ioana SANDU, prep. Elena POSDARIE Catedra de Informatica Economica, A.S.E. Bucuresti

GHID DE TERMENI MEDIA

Programarea rapidă a aplicaţiilor pentru baze de date relaţionale. Lorentz JÄNTSCHI

BAZE DE DATE LECTOR DR. ADRIAN RUNCEANU

Managementul referinţelor cu

Update firmware aparat foto

SAG MITTIGATION TECHNICS USING DSTATCOMS

BAZE DE DATE Crearea, gestionarea şi exploatarea bazelor de date spaţiale

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; }

MANAGEMENTUL CALITĂȚII - MC. Proiect 5 Procedura documentată pentru procesul ales

BAZE DE DATE LECTOR DR. ADRIAN RUNCEANU

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: "9",

UNIVERSITATEA POLITEHNICA DIN BUCUREŞTI FACULTATEA DE ELECTROTEHNICĂ

Reţele Neuronale Artificiale în MATLAB

The driving force for your business.

ADO.NET - note de curs pentru disciplina "Servere de date"

2. Setări configurare acces la o cameră web conectată într-un echipament HG8121H cu funcție activă de router

PROCEDURA PRIVIND DECONTURILE. 2. Domeniu de aplicare Procedura se aplică în cadrul Universităţii Tehnice Cluj-Napoca

O abordare Data Mining pentru detectarea accesului neautorizat la baza de date.

Proiect de practică. Gestionarea unei librării online

(Text cu relevanță pentru SEE)

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs

CAPITOLUL 4. CREAREA UNEI BAZE DE DATE PRIN COMENZI SQL

5.2 Interogări în SQL

Modulul 5 Baze de date

INTRODUCERE... 2 SCENARIUL... 3 ERD (DIAGRAMA ENTITATE RELAȚIE)... 6 MAPARE... 8 REALIZARE APLICAȚIE BIBLIOGRAFIE...

BAZE DE DATE LECTOR DR. ADRIAN RUNCEANU

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive.

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET

Modalitǎţi de clasificare a datelor cantitative

F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5.

Evoluția pieței de capital din România. 09 iunie 2018

Transcription:

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiect nr. 154/323 cod SMIS 4428 cofinanțat de prin Fondul European de Dezvoltare Regională Investiții pentru viitorul dumneavoastră. Programul Operațional Sectorial Creșterea Competitivității Economice - POS CCE

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Baze de date 17. Constrângeri asupra bazelor de date. Erori posibile

Introducere Comenzile pentru crearea şi definirea de structuri tabelare sunt comenzi de definire a datelor (Data Definition Language DDL) şi permit crearea, dar şi relaționarea lor într-o bază de date. Structura unei tabele este dată de următoarele specificații de definire: definirea coloanelor definirea constrângerilor de integritate definirea tablespace-lui unde se creează definirea parametrilor Constrângerile de integritate reprezintă anumite reguli de funcționare, care trebuie respectate la nivel de tabel, sau în relațiile cu alte tabele. Aceste reguli sunt verificate automat, în cazul operațiilor de inserare, stergere sau modificare şi în cazul în care nu se validează, sistemul de gestiune generează o eroare şi tranzacția nu se efectuează.

Tipuri de constrângeri de integritate În Oracle, constrăngerile de integritate pot fi : NOT NULL înregistrările nu pot conține valori nule UNIQUE defineşte o cheie unică pe una sau mai multe coloane ( nu pot fi mai multe înregistrări cu aceleaşi valori pe coloanele respective) PRIMARY KEY defineşte o cheie primară la nivel de coloană sau tabelă ( nu pot fi mai multe înregistrări cu aceeaşi cheie primară). FOREIGN KEY defineşte o cheie externă ( tabela relaționează cu altă tabelă, pe o cheie unică sau cheie primară) CHECK forțează o condiție pe coloană

Caracteristicile constrângerilor de integritate Fiecare constrângere va avea un nume dat de user, sau generat de sistem; Constrângerile pot fi activate sau dezactivate cu comanda ALTER TABLE; Constrângerile pot fi adăugate sau şterse şi după crearea tabelului; Informațiile legate de constrângeri se păstrează în dicționarul bazei de date; Violarea unei constrângeri generează o eroare de sistem.

Constrângerea NOT NULL Se aplică numai la nivel de coloane şi verifică dacă înregistrările au valori nule pe coloanele respective, forțând un cod de eroare care anulează tranzacția; Când se creează constrângeri pe o cheie primară, se creează automat şi o costrângere NOT NULL pe coloanele respective ( o cheie primară nu trebuie să conțină valori nule pe coloanele care o definesc). Sintaxa la nivel de coloană este : unde column_name [ CONSTRAINT constraint_name ] NOT NULL column_name este numele unei coloane din tabel; constraint_name este numele constrângerii.

Exemplu: Să creăm un tabel pentru tipurile de funcții într-o companie: SQL>CREATE TABLE functii ( cod_functie number(2) CONSTRAINT NL NOT NULL, den_functie varchar2(20) NOT NULL, data_vigoare date ); Funcționalitatea coloanelor cod_functie şi den_functie este aceeaşi (nu acceptă valori nule), dar construcția constrângerii pentru cod_functie permite activarea sau dezactivarea constrângerii NL.

Constrângerea UNIQUE Se foloseşte când vrem ca o coloană, sau perechi de coloane, să nu conțină valori duplicate. Verificarea se face numai pentru înregistrări cu valori nenule, deoarece constrângerea permite inserarea de valori nule în coloanele respective. În mod automat, se creează şi un index pe coloanele definite cheii unice, ceea ce duce la mărirea vitezei de interogare pe tabel. Sintaxa la nivel de coloană este: column_name [ CONSTRAINT constraint_name ] UNIQUE Sintaxa la nivel de tabel este: [, CONSTRAINT constraint_name ] UNIQUE (col1, col 2,..)

Exemplu: Să creăm tabela functii definind unicitate pe anumite coloane: SQL>CREATE TABLE functii ( cod_functie number(2) CONSTRAINT UK_FUN UNIQUE, den_functie varchar2(20) UNIQUE, data_vigoare date ) ; Putem să facem şi următoarea construcție la nivel de tabel: SQL>CREATE TABLE functii ( cod_functie number(2), den_functie varchar2(20), data_vigoare date, CONSTRAINT UK_FUN UNIQUE (cod_functie,den_functie) ); În prima construcție, putem insera oricâte înregistrări cu valori nule pe coloanele definite unice, dar în construcția a doua, nu putem să inserăm înregistrări cu una dintre coloane nulă şi cealaltă să nu respecte unicitatea.

Constrângerea PRIMARY KEY Se foloseşte pentru definirea cheii primare la nivel de coloană (când cheia conține o singură coloană) sau la nivel de tabel ( când cheia este compusă pe mai multe coloane). Un tabel poate avea o singură cheie primară şi nu acceptă valori nule pentru nicio coloană care o definesc. Când se creează o cheie primară, se creează în mod automat şi un index pentru a scurta timpul de răspuns în cazul unei interogări. Sintaxa la nivel de coloană este: column [ CONSTRAINT constraint_name ] PRIMARY KEY Sintaxa la nivel de tabel este: [, CONSTRAINT constraint_name ] PRIMARY KEY (col1, col 2,..)

Exemplu: Dacă vrem să creăm un nomenclator de funcții, în care fiecare funcție să aibă cod unic, folosim următoarea construcție : SQL>CREATE TABLE functii ( cod_functie number(2) CONSTRAINT PK PRIMARY KEY, den_functie varchar2(20), data_vigoare date ); Când dorim ca un cod de funcție să poată fi utilizat de mai multe ori, trebuie să definim cheia pe mai multe coloane, de exemplu pe codul funcției şi data la care intră în vigoare codificarea, folosind construcția: SQL>CREATE TABLE functii ( cod_functie number(2), den_functie varchar2(20), data_vigoare date, CONSTRAINT PK_FUN PRIMARY KEY (cod_functie,data_vigoare) )

Constrângerea FOREIGN KEY Acest tip de constrângere se foloseşte pentru relaționarea unui tabel cu unul sau mai multe tabele, verificând dacă valorile conținute în coloanele definite de FOREIGN KEY ( cheie străină sau cheie externă) sunt cuprinse în valorile coloanelor altei tabele care trebuie să fie definite UNIQUE sau PRIMARY KEY. Mai exact, o relaționare pe cheie externă se poate face numai pe o cheie primară sau unică. Sintaxa la nivel de coloană este: column [ CONSTRAINT constraint_name ] REFERENCES table(column) Sintaxa la nivel de tabel este: [ ON DELETE CASCADE ON DELETE SET NULL ] column [ CONSTRAINT constraint_name ] FOREIGN KEY ( col1, col2,...) REFERENCES table(col1, col2,..) [ ON DELETE CASCADE ON DELETE SET NULL ]

Exemplu: Dacă vrem să creăm tabelul angajati şi să o relaționăm cu tabelele departamente şi funcții, trebuie să facem următoarea construcție la nivel de coloană: SQL>CREATE TABLE angajati ( id_ang number(4) PRIMARY KEY, nume functie varchar2(30), varchar2(20) REFERENCES functii(den_functie), id_sef number(4) REFERENCES angajati(id_ang), data_ang salariu date, number(7,2), comision number(7,2), id_dep number(2) REFERENCES departamente(id_dep) ); Pentru a se putea face relaționarea, trebuie ca tabela functii să aibă cheie primară sau unică pe coloana den_functie, iar tabela departamente să aibă cheie primară sau unică pe coloana id_dep. Se observă că tabelul este relaționat cu el însuşi după coloanele id_sef şi id_ang.

Reguli de funcţionare Când se face relaționarea între două tabele, trebuie avute în vedere următoarele reguli de funcționare : Inserarea unei linii într-un tabel relaționat (pe care am definit FOREIGN KEY) nu se poate face dacă nu există decât o singură linie în tabelul de referință ( în care am definit PRIMARY KEY sau UNIQUE) corespunzător coloanelor de relaționare; Ştergerea unei linii din tabelul de referință nu se poate face atâta timp cât există linii relaționate pe linia respectivă în tabelul relaționat; Dacă s-a folosit optiunea ON DELETE CASCADE, se poate şterge o linie din tabelul de referință, dar se şterg automat toate liniile relaționate pe linia respectivă, din toate tabelele relaționate; În cazul unui tabel relaționat cu el însuşi, când se şterge o linie, care este referită, toate coloanele devin nule în liniile relaționate; Regulile de mai sus sunt valabile şi în cazul relaționării pe coloane.

Constrângerea CHECK Acest tip de constrângere se foloseşte pentru a forța valorile unei coloane să verifice o condiție. Condiția poate să conțină şi funcții, cu unele excepții( sysdate, user, unele functii de tip data calendaristica e.t.c). Sintaxa la nivel de coloană este: column [ CONSTRAINT constraint_name ] CHECK ( expr) Sintaxa la nivel de tabel este: [, CONSTRAINT constraint_name ] CHECK (expr)

Exemplu: Dacă vrem ca în tabelul angajati, numele angajaților să fie înregistrate numai cu litere mari, salariul să fie mai mare decât zero, iar comisionul să nu depăşească salariul, folosim constrângerea CHECK : SQL>CREATE TABLE angajati ( id_ang number(4) PRIMARY KEY, nume functie varchar2(30) CONSTRAINT CK_NU CHECK(nume=UPPER(nume), varchar2(20) REFERENCES functii(den_functie), id_sef number(4) REFERENCES angajati(id_ang), data_ang date, salariu number(7,2) CHECK (salariu>0), comision number(7,2), id_dep number(2) REFERENCES departamente(id_dep), CONSTRAINT CK_COM CHECK (comision <= salariu) );