[{CYCLE NOCYCLE}] [{CACHE

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

Versionare - GIT ALIN ZAMFIROIU

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

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

Metrici LPR interfatare cu Barix Barionet 50 -

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

CERERI SELECT PE O TABELA

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

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

Subiecte Clasa a VI-a

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

CERERI SELECT PE MAI MULTE TABELE

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

5.1 Definirea datelor în SQL

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

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

INTEROGĂRI ÎN SQL SERVER

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

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

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

GHID DE TERMENI MEDIA

Mecanismul de decontare a cererilor de plata

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

Update firmware aparat foto

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

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; }

Modalitǎţi de clasificare a datelor cantitative

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

Procesarea Imaginilor

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

Gruparea rezultatelor unei interogări

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

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

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

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

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

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm

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

Universitatea George Bariţiu, Braşov

Olimpiad«Estonia, 2003

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

Ce este o BAZA DE DATE?

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

1. Creaţi un nou proiect de tip Windows Forms Application, cu numele MdiExample.

ISBN-13:

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

Baze de date în Visual Fox Pro. Stabilirea relațiilor dintre tabele în cadrul bazei de date. Filtrarea, sortarea, indexarea, căutarea înregistrărilor.

Documentaţie Tehnică

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

Propuneri pentru teme de licență

Baze de date distribuite și mobile

Capitolul IF.02. Structurarea bazelor de date

CAPITOLUL 4. CREAREA UNEI BAZE DE DATE PRIN COMENZI SQL

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

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

Reţele Neuronale Artificiale în MATLAB

:= 950; BEGIN DELETE FROM

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

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

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

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

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

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

Subprograme şi pachete PL/SQL

CHAMPIONS LEAGUE 2017 SPONSOR:

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

Metoda BACKTRACKING. prof. Jiduc Gabriel

CURS 2. Reprezentarea numerelor intregi si reale. Sistem de numeraţie

Managementul referinţelor cu

UNIVERSITATEA ŞTEFAN CEL MARE SUCEAVA

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

INTERPRETOARE DE COMENZI

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

Class D Power Amplifiers

MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII

X-Fit S Manual de utilizare

Mods euro truck simulator 2 harta romaniei by elyxir. Mods euro truck simulator 2 harta romaniei by elyxir.zip

Itemi Sisteme de Operare

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

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

SAG MITTIGATION TECHNICS USING DSTATCOMS

Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple. Memoria cache Memoria virtuală

EN teava vopsita cu capete canelate tip VICTAULIC

I. CONCEPTE ALE BAZELOR DE DATE RELAŢIONALE

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

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

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

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

A NOVEL ACTIVE INDUCTOR WITH VOLTAGE CONTROLLED QUALITY FACTOR AND SELF-RESONANT FREQUENCY

Behavioral design patterns (comportamentale) ALIN ZAMFIROIU

Laboratorul 3 Lucrul cu baze de date relaționate în Visual C#.NET

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.

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

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs

Printesa fluture. Мобильный портал WAP версия: wap.altmaster.ru

Baze de date - Lucrare de laborator 3 -

Metoda de programare BACKTRACKING

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

Cap.5 Normalizarea relaţiilor

Laborator 2. Definirea tablourilor şi a funcţiilor (în linia de comandă) în Matlab 7.0

Transcription:

Laborator 10 1. Secvenţe Secvenţa este un obiect al bazei de date ce permite generarea de întregi unici pentru a fi folosiţi ca valori pentru cheia primară sau coloane numerice unice. Secvenţele sunt independente de tabele, aşa că aceeaşi secvenţă poate fi folosită pentru mai multe tabele. Crearea secvenţelor se realizează prin comanda CREATE SEQUENCE, a cărei sintaxă este: CREATE SEQUENCE nume_secv [INCREMENT BY n] [START WITH n] [{MAXVALUE n NOMAXVALUE}] [{MINVALUE n NOMINVALUE}] [{CYCLE NOCYCLE}] [{CACHE n NOCACHE}] La definirea unei secvenţe se pot specifica: - numele secvenţei - diferenţa dintre 2 numere generate succesiv, implicit fiind 1 (INCREMENT BY); - numărul initial, implicit fiind 1 (START WITH); - valoarea maximă, implicit fiind 1027 pentru o secvenţă ascendentă şi 1 pentru una descendentă; - valoarea minimă; - dacă secvenţa ciclează după ce atinge limita; (CYCLE) - câte numere să încarce în cache server, implicit fiind încărcate 20 de numere (CACHE). Informaţii despre secvenţe găsim în dicţionarul datelor. Pentru secvenţele utilizatorului curent, interogăm USER_SEQUENCES. Alte vizualizări utile sunt ALL_SEQUENCES şi DBA_SEQUENCES. Pseudocoloanele NEXTVAL şi CURRVAL permit lucrul efectiv cu secvenţele. - Nume_secv.NEXTVAL - returnează următoarea valoare a secvenţei, o valoare unică la fiecare referire. Trebuie aplicată cel puţin o dată înainte de a folosi CURRVAL; - Nume_secv.CURRVAL obţine valoarea curentă a secvenţei. Obs: Pseudocoloanele se pot utiliza în: - lista SELECT a comenzilor ce nu fac parte din subcereri; - lista SELECT a unei cereri ce apare într un INSERT; - clauza VALUES a comenzii INSERT; - clauza SET a comenzii UPDATE. Obs: Pseudocoloanele nu se pot utiliza: - în lista SELECT a unei vizualizări; - într-o comanda SELECT ce conţine DISTINCT, GROUP BY, HAVING sau ORDER BY; - într-o subcerere în comenzile SELECT, UPDATE, DELETE - în clauza DEFAULT a comenzilor CREATE TABLE sau ALTER TABLE. 1

Ştergerea secvenţelor se face cu ajutorul comenzii DROP SEQUENCE. DROP SEQUENCE nume_secventa; Probleme rezolvate: Baze de date - SQL (2016) 1.1. Creaţi o secvenţă pentru generarea codurilor de departamente, SEQ_DEPT_PNU. Secvenţa va începe de la 200, va creşte cu 10 de fiecare dată şi va avea valoarea maximă 10000, nu va cicla şi nu va încărca nici un număr înainte de cerere. CREATE SEQUENCE seq_dept_pnu START WITH 200 INCREMENT BY 10 MAXVALUE 10000 NOCYCLE NOCACHE; 1.2. Să se selecteze informaţii despre secvenţele utilizatorului curent (nume, valoare minimă, maximă, de incrementare, ultimul număr generat). SELECT sequence_name, min_value, max_value, last_number, increment_by FROM user_sequences WHERE sequence_name like '%PNU'; 1.3. Creaţi o secvenţă pentru generarea codurilor de angajaţi, SEQ_EMP_PNU. CREATE SEQUENCE seq_emp_pnu START WITH 500 INCREMENT BY 1 MAXVALUE 10000 NOCYCLE; 1.4. Să se modifice toate liniile din EMP_PNU (dacă nu mai există, îl re-creeaţi), regenerând codul angajaţilor astfel încât să utilizeze secvenţa SEQ_EMP_PNU şi să avem continuitate în codurile angajaţilor. UPDATE emp_pnu SET employee_id = seq_emp_pnu.nextval ; 1.5. Să se insereze câte o inregistrare nouă în EMP_PNU şi DEPT_PNU utilizând cele 2 secvenţe create. 1.6. Să se selecteze valorile curente ale celor 2 secvenţe. SELECT seq_emp_pnu.currval FROM dual; 1.7. Ştergeţi secvenţa SEQ_DEPT_PNU. DROP SEQUENCE seq_dept_pnu; 2

2. Indecşi Un index este un obiect al unei scheme utilizator care este utilizat de server-ul Oracle pentru a mări performanţele unui anumit tip de cereri asupra unui tabel. Indecşii: - evită scanarea completă a unui tabel la efectuarea unei cereri; - reduc operaţiile de citire/scriere de pe disc utilizând o cale mai rapidă de acces la date şi anume pointeri la liniile tabelului care corespund unor anumite valori ale unei chei (coloane); - sunt independenţi de tabelele pe care le indexează, în sensul că dacă sunt şterşi nu afectează conţinutul tabelelor sau comportamentul altor indecşi; - sunt menţinuţi şi utilizaţi automat de către server-ul Oracle; - la ştergerea unui tabel, sunt şterşi şi indecşii asociaţi acestuia. Tipuri de indecşi: 1. indecşi normali (indecsi ce folosesc B-arbori); 2. indecşi bitmap, care stochează identificatorii de linie (ROWID) asociaţi cu o valoare cheie sub forma unui bitmap sunt de obicei folosiţi pentru coloane care nu au un domeniu mare de valori în contextul unei concurenţe limitate, de exemplu în data warehouse; 3. indecşi partiţionaţi, care constau din partiţii corespunzătoare valorilor ce apar în coloanele indexate ale tabelului; 4. indecşi bazaţi pe funcţii (pe expresii). Aceştia permit construcţia cererilor care evaluează valoarea returnată de o expresie, expresie ce poate conţine funcţii predefinite sau definite de utilizator. Indecşii pot fi creaţi: - automat: odată cu definirea unei constrangeri PRIMARY KEY sau UNIQUE; - manual: cu ajutorul comenzii CREATE INDEX; Se creează un index atunci când: - O coloană conţine un domeniu larg de valori; - O coloană conţine nu număr mare de valori null; - Una sau mai multe coloane sunt folosite des în clauza WHERE sau în condiţii de join în programele de aplicaţii Nu se creează un index atunci când: - Tabelul este mic; - Coloanele nu sunt folosite des în clauza WHERE sau în condiţiile de join ale cererilor; - Tabelul este modificat frecvent; - Coloanele indexate sunt referite des în expresii; Informaţii despre indecşi şi despre coloanele implicate în indecşi se pot găsi în vizualizările dicţionarului datelor USER_INDEXES, USER_IND_COLUMNS, ALL_INDEXES, ALL_IND_COLUMNS. 3

Crearea unui index se face prin comanda: CREATE {UNIQUE BITMAP} INDEX nume_index ON tabel (coloana1 [, coloana2 ]); Modificarea unui index se face prin comanda: ALTER INDEX. Eliminarea unui index se face prin comanda: DROP INDEX nume_index; Probleme propuse spre rezolvare: Baze de date - SQL (2016) 2.1. Să se creeze un index (normal, neunic) IDX_EMP_LAST_NAME_PNU, asupra coloanei last_name din tabelul emp_pnu. 2.2. Să se creeze indecşi unici asupra codului angajatului (employee_id) şi asupra combinaţiei last_name, first_name, hire_date prin două metode (automat şi manual). Obs.: Pentru metoda automată impuneţi constrângeri de cheie primară asupra codului angajatului şi constrângere de unicitate asupra celor 3 coloane. Este recomandabilă această metodă. 2.3. Creaţi un index neunic asupra coloanei department_id din EMP_PNU pentru a eficientiza join-urile dintre acest tabel si DEPT_PNU. 2.4. Prespupunând că se fac foarte des căutari case insensitive asupra numelui departamentului şi asupra numelui angajatului, definiţi doi indecşi bazaţi pe expresiile UPPER(department_name), respectiv LOWER(last_name). 2.5. Să se selecteze din dicţionarul datelor numele indexului, numele coloanei, poziţia din lista de coloane a indexului şi proprietatea de unicitate a tuturor indecşilor definiţi pe tabelele EMP_PNU şi DEPT_PNU. 4

3. Sinonime Pentru a simplifica accesul la obiecte, acestora li se pot asocia sinonime. Crearea unui sinonim este utilă pentru a evita referirea unui obiect ce aparţine altui utilizator prefixându-l cu numele utilizatorului şi pentru a scurta numele unor obiecte cu numele prea lung. Informaţii despre sinonime se găsesc în vizualizarea din dicţionarul datelor USER_SYNONYMS. Crearea sinonimelor se realizează prin comanda: CREATE [PUBLIC] SYNONYM nume_sinonim FOR obiect; Eliminarea sinonimelor se face prin comanda: DROP SYNONYM nume_sinonim; Probleme propuse spre rezolvare: 3.1. Creaţi un sinonim public EMP_PUBLIC_PNU pentru tabelul EMP_PNU. 3.2. Creaţi un sinonim V30_PNU pentru vizualizarea VIZ_EMP30_PNU. 3.3. Creaţi un sinonim pentru DEPT_PNU. Utilizaţi sinonimul pentru accesarea datelor din tabel. Redenumiţi tabelul (RENAME TO..). Încercaţi din nou să utilizaţi sinonimul pentru a accesa datele din tabel. Ce se obţine? 5