Suport de Curs ID

  • Published on
    02-Mar-2018

  • View
    214

  • Download
    0

Embed Size (px)

Transcript

  • 7/26/2019 Suport de Curs ID

    1/62

    Note de curs Baze de date

    Ctlin Tudor

    Frcalculator

    Cu calculator,

    fr baze de date

    Cu baze de date

  • 7/26/2019 Suport de Curs ID

    2/62

    Note de curs Baze de date

    Ctlin Tudor

    BAZE DE DATE Concept general

    Organizarea datelor n baze de date Conceptul de baz de date:

    Baza de date = un ansamblu de structuri dedate corelate logic i funcional, memorate pesuporturi adresabile,ce pot fi accesate simultan de maimuli utilizatori, n mod selectivi n timp real.

    Scop: regsirea rapid a informaiei de oricetip, prin stabilirea de criterii de interogaredefinite de utilizatori.

    Utilizatorii bazei de date: Administratorul bazei de date

    Analistul/proiectantul bazei de date

    Programatorii de aplicaii

    Utilizatorii finali

    Structuri de date:

    O structur de date corespunde unei clase(grupri) de obiecte reale sau conceptualei areca atribute caracteristicile acestor obiecte.

    Se identific printr-un nume unic i sereprezintn planul datelor printr-o mulime de

    realizri (nregistrri).

    Gestiunea datelor se focalizeaz pe precizareastructurilor de date i a relaiilor care exist

    ntre realizrile acestora.

  • 7/26/2019 Suport de Curs ID

    3/62

    Note de curs Baze de date

    Ctlin Tudor

    Cerine pentru gestiunea corectadatelor Independena datelor fade programele de

    aplicaii: Baza de date trebuie s aib o structur de sine-

    stttoare, a crei existen s nu depind de alteprograme care o utilizeaz.

    Asigurarea unei structuri ct mai puin redundante: Informaiile din cadrul unei baze de date trebuie s fie

    unice (s nu se repete) n cadrul bazei de date.

    Integritatea datelor: Datele trebuie s respecte diverse restricii i corelaiilogice ntre ele, restricii ce mpiedic apariia erorilorlogice sau structurale la nivelul bazei de date.

    BAZE DE DATE generaliti

    volumul de date ce urmeaz a fi stocati procesat

    gradul de expunere la riscuri

    tipul de aplicaii care vor exploata datele (aplicaiiweb, aplicaii de tip business intelligence, sistemeinformatice clasice, etc)

    previziunile de extindere pe termen mediu n

    privina volumului de date din cadrul organizaiei costurile de liceniere i politica de liceniere a

    productorului

    Considerente n alegerea unei soluii pentrumanagementul datelor:

  • 7/26/2019 Suport de Curs ID

    4/62

    Note de curs Baze de date

    Ctlin Tudor

    Conceptul de SGBD

    SGBD = pachet de programe constituind o interfantre

    utilizatori i bazele de date, ce permite crearea, actualizarea

    i consultarea acestora.

    Sisteme de gestiune a bazelor de date (S.G.B.D.)

    SGBD-urile pun la dispoziia utilizatorilor limbaje distincte pentru: descrierea bazei de date

    (Limbaj de Descriere a Datelor DDL)

    utilizarea bazelor de date(Limbaj de Manipulare a Datelor DML)

    controlul datelor(Limbaj de Control al Datelor DCL)

    Limbajele de manipulare a bazelor de date pot fi:-declarative - permit utilizatorului sdeclare de ce

    informaii are nevoie.-procedurale - obligutilizatorul sdescrie procedura

    pentru obinerea informaiilor.

    Funciile ndeplinite de un SGBD:

    descrierea bazei de date (prin LDD)

    coerena datelor (meninerea unor relaii logice ntre

    date);

    securitatea datelor (confidenialitatea i remedierea

    daunelor);

    partajarea datelor (tratare acces concurent);

    controlul i administrarea datelor prin drepturi diferite

    acordate utilizatorilor;

    repararea bazei de date;

    salvarea i restaurarea datelor etc.

    Sisteme de gestiune a bazelor de date (S.G.B.D.)

  • 7/26/2019 Suport de Curs ID

    5/62

    Note de curs Baze de date

    Ctlin Tudor

    Pentru volum mare de date (server database)

    Microsoft SQL Server

    Oracle

    IBM DB2

    Sybase

    Flexibilitate Performate crescute in procesarea datelor

    Facilitati complexe de administrare Instrumente specifice pentru analiza datelor

    (implementarea tehnologiilor Datawarehouse siDataminining)

    Securitate sporita a datelor

    Scalabilitate

    Server de date: un SGBD avansat instalat, deregul, pe o staie de lucru mai puternic, cu rolulde a furniza informaii ntr-o organizaie.

  • 7/26/2019 Suport de Curs ID

    6/62

    Note de curs Baze de date

    Ctlin Tudor

    Desemneaz relaia dintre dou entitisoftware care partajeaz sarcini comune

    ntr-o reea de calculatoare.Un program care poart denumirea de

    client, iniiaz o cerere informaional ctreun alt program, denumitserver, capabil sfurnizeze rspunsul la cererea clientului .

    Avantajul principal:

    accesul permanent la date din orice locaie a uneiinstituii sau organizaii, prin conectarea tuturoraplicaiilor client la o singur baz de date.

    Clientul este entitatea care asigurinterfaa cu utilizatorul, lanseazcereri de executare a unor operaii ctre o

    entitate server afieaz datele primite de la server ntr-un format

    inteligibil pentru utilizator.

    Serverul este entitatea care

    Recepioneaz cererile lansate de clieni, interpreteazcomenzile, executoperaiile necesare furnizeaz rspunsul ctre client.

  • 7/26/2019 Suport de Curs ID

    7/62

    Note de curs Baze de date

    Ctlin Tudor

    Exemplificarea generica relaiei

    Client-Server

    Exemplu de utilizare a tehnologieiClient Server ntr-o organizaie

  • 7/26/2019 Suport de Curs ID

    8/62

    Note de curs Baze de date

    Ctlin Tudor

    Client-Server se bazeazpe trei componente: logica prezentrii (responsabil cu interfaa grafic expus

    utilizatorilor);

    logica procesrii (responsabil cu gestionarea i aplicareatuturor regulilor legate de managementuli prelucrarea datelor);

    logica stocrii datelor (ce va gestiona pstrarea i extragereadatelor).

    n funcie de modul de grupare a componentelorClient-Server, exist:Arhitectura client-server pe dounivele (two tiers)

    Arhitectura client-server pe trei nivele (three tiers)Arhitectura client-server multi-nivel (n tiers)

    Tipologia sist emelor Cl i ent -Server

    Arhitectura client-server pe dounivele (two tiers)

    Logica prezentrii: Calculatorul ClientLogica datelor: Calculatorul ServerLogica procesrii: mprit ntre Clienti Server

  • 7/26/2019 Suport de Curs ID

    9/62

    Note de curs Baze de date

    Ctlin Tudor

    Tipologia si st emelor Cl i ent -Server

    Arhitectura client-server pe trei nivele (three tiers)

    Logica prezentrii: Calculatorul ClientLogica datelor: Calculatorul ServerLogica procesrii: Serverul de aplicaie

    Tipologia sist emelor Cl i ent -Server

    Arhitectura client-server multi-nivel (n tiers)

    Logica prezentrii: Calculatorul ClientLogica datelor: Calculatorul ServerLogica procesrii: Server de aplicaiei Server Web

  • 7/26/2019 Suport de Curs ID

    10/62

    Note de curs Baze de date

    Ctlin Tudor

    SQL SERVER 2012 Prezentare general

    SQL Server 2012:

    o suitsoftware oferind posibilitatea gestionrii bazelorde date de foarte mari dimensiuni.

    compatibil cu cele mai recente tehnologii existente.

    SQL Server 2012 este disponibil n mai multe ediii cediferprin:

    facilitile oferite,

    resursele hardware capabile sle exploateze (numr de

    procesoare, memorie RAM, etc.) politica de liceniere (numr de utilizatori, costuri

    licene, etc)

    SQL SERVER 2012 Versiuni (I) Enterprise

    toate instrumentele necesare privind administrarea isecuritatea datelor precum i un set complet de instrumentepentru dezvoltarea aplicaiilor business intelligence.

    Standard toate instrumentele pentru administrarea bazelor de date i

    pentru programare

    Developer dedicat dezvoltatorilor de aplicaii. Prezinttoate facilitile

    disponibile n varianta Enterprise dar nu este destinatutilizrii ca server productiv, ci doar pentru teste iprogramare.

    SQL Server 2012 Business Intelligence Editiondestinatn special pentru a deservi aplicaiile pentru asistareadeciziei n cadrul unei companii.

  • 7/26/2019 Suport de Curs ID

    11/62

    Note de curs Baze de date

    Ctlin Tudor

    Web indicatpentru administrarea bazelor de date ce

    urmeaza fi exploatate n mediul online.

    SQL Server Express soluie oferitgratuit pentru utilizatorii ce doresc s

    realizeze aplicaii client pentru sisteme de micidimensiuni sau pentru a nva

    Compact

    soluie gratuitpentru gestionarea bazelor de datedestinate aplicaiilor de tip desktop, a aplicaiilorpentru dispozitive mobile sau de tip client web peplatforme Windows.

    SQL SERVER 2012 Versiuni(II)

    SQL Server 2012 Componente SQL Server Database Engine

    este componenta nucleu

    responsabilcu memorarea, procesarea datelor stocatei asigurarea securitii acestora

    Analysis Services

    Suitde instrumente software pentru analiza datelor iinterpretarea rezultatelor

    Reporting Services

    componentele necesare pentru crearea i gestionarearapoartelor

    Integration Services set de aplicaii i obiecte programabile ce pot fi utilizate

    n copierea, mutarea sau transformarea datelor ntrediferite destinaii

  • 7/26/2019 Suport de Curs ID

    12/62

    Note de curs Baze de date

    Ctlin Tudor

    Tipuri de date n SQL ServerCategorii de tipuri de date:

    Numere exacteiruri de caractere non-Unicodeiruri de caractere Unicode Numere aproximativeiruri de caractere binare Dati orAlte tipuri de date

    Tipuri de date n SQL ServerNumere exacte

    Numere ntregi bigint int smallint tinyint bit

    Numere cuzecimale Decimal Numeric Money Smallmoney

    Numere aproximative Float

    Real

    iruri de caractere non-Unicode char

    varchar

    text

    iruri de caractereUnicode nchar

    nvarchar

    ntext

  • 7/26/2019 Suport de Curs ID

    13/62

    Note de curs Baze de date

    Ctlin Tudor

    Tipuri de date n SQL Serveriruri de caractere

    binare binary

    varbinary

    image

    Dati or

    date

    datetime

    datetime2

    smalldatetime

    time

    Alte tipuri de date cursor

    uniqueidentifier

    xml

    table

    Crearea tabelelor n SQL Server2012 Tabel: obiect din cadrul bazei de date utilizat

    pentru a stoca informaii structurate conformdefiniiei cmpurilor existente.

    Reprezintelementul de tip nucleu al bazei dedate pe care se bazeazcelelalte obiecte alebazei de date.

    Tabelele sunt grupate n cadrul grupului Tables.

    Structura unui tabel: - cmpuri (columns), chei(primare, externe), restricii (constraints),declanatori (triggers), indeci (indexes).

  • 7/26/2019 Suport de Curs ID

    14/62

    Note de curs Baze de date

    Ctlin Tudor

    Crearea tabelelor n SQL Server 2012(II) Instruciuni pentru crearea tabelelor SQL Server: Forma minimalist:

    CREATE TABLE Nume_tabel(nume_cmp1 tip_data(dimensiune) [restricie cmp],nume_cmp2 tip_data(dimensiune) [restricie cmp],nume_cmp3 tip_data(dimensiune) [restricie cmp],....,Nume_camp_cheie_externaCONSTRAINT cheie_externa REFERENCESnume_tabel_extern (cheie primartabel extern));

    Crearea tabelelor n SQL Server 2012(III) Exemplu:

    CREATE TABLE [dbo].[Produse]([IdProdus] [int] NOT NULL,[CodIntern] [nvarchar](255) NULL,[Denumire] [nvarchar](255) NULL,[Cantitate per unitate masura] [nvarchar](255) NULL,[Descriere] [nvarchar](255) NULL,[TermenValabilitate(zile)] [int] NULL,[Perisabil] [bit] NOT NULL,[CodCategorie] [int] NULL,CONSTRAINT PK_Produs PRIMARY KEY CLUSTERED

    (IdProdus),CONSTRAINT FK_Categorie FOREIGN KEY

    (CodCategorie), REFERENCES dbo.CategoriiProduse(CodCategorie)

  • 7/26/2019 Suport de Curs ID

    15/62

    Note de curs Baze de date

    Ctlin Tudor

    Instruciuni pentru modificarea itergerea tabelelor din baza de date Instruciunea ALTER TABLE modificarea

    structurii sau definiiei tabelului:ALTER TABLE [dbo].[Produse] WITH CHECK ADDCONSTRAINT [Produse_FK] FOREIGN KEY([CodCategorie])

    REFERENCES [dbo].[CategoriiProduse] ([CodCategorie])

    ON DELETE CASCADE

    GO

    Intruciunea DROP TABLE elimindefinitiv o tabeldin cadrul bazei de date

    DROP TABLE dbo.Produse;

    Tipuri de tabele n SQL Server 2012 Tabele permanente ale bazei de date sunt cele

    obinute n urma definirii modelului relaional formndbaza de stocare pentru datele reinute pe server;

    Tabele temporare sunt tabele locale ce au existende viascurt, definitpe perioada sesiunii n careutilizatorul care le creeazeste conectat. Sunt automat distruse (implicit) la terminarea procedurii n

    care au fost utilizate temporar. Se regsesc n baza de date cu numele tempdb implicit

    definitpe server Tipuri de tabele temporare:

    globale (disponibile tuturor utilizatorilor i tuturor sesiunilor delucru)

    locale (disponibile doar utilizatorului curent i sesiunii n careacesta lucreaz)

  • 7/26/2019 Suport de Curs ID

    16/62

    Note de curs Baze de date

    Ctlin Tudor

    Tabele temporare - exemple Crearea unui tabel temporar local:

    create table #Enumerare(NumeDepartament varchar(20),CodDepartament int

    )

    Crearea unui tabel temporar global:create table ##SesiuniDeLucru(NumeUtilizator nvarchar(50),IdSesiune int

    )

    Asocieri ntre tabele

    Obiecte care grupeaz totalitatea legturilor ce secreeaz ntre entitile (tuplurile) a dou tabele(asocieri binare) sau aparinnd unei singure tabele(asocieri unare).

    Au rolul de a permite accesarea mai multor tabele nacelai timp.

    Asocierile pot avea: caracter permanent: completeaz structura bazei de

    date i sunt ataate tabelelor existente, introducndrestricia de integritate referenial.

    caracter temporar: utilizate n extragerea datelor dinbaza de date, fiind prezente doar n obiectele de tipcerere (interogare).

  • 7/26/2019 Suport de Curs ID

    17/62

    Note de curs Baze de date

    Ctlin Tudor

    Implementarea restriciilor asupra datelor

    Restricii privind integritatea referenial

    Definesc constrngerile legate de relaia dintre cheiaprimari cheia extern

    Restricii de domeniu

    Definesc reguli impuse asupra datelor prin intermediulcmpurilor din tabele.

    Declanatori (proceduri de tip Trigger)

    Pot fi utilizate pentru implementarea de restriciicomplexe care privesc date din mai multe tabele.

    Specificarea vizuala restriciilor de domeniu

    la nivelul tabelelor

  • 7/26/2019 Suport de Curs ID

    18/62

    Note de curs Baze de date

    Ctlin Tudor

    Exemplu: Implementarea restriciei privind

    datele din factur

    Restricii privind integritatea referenial

    In fereastra de propriet i ale asocierii

    se pot configura restriciile de integritate

  • 7/26/2019 Suport de Curs ID

    19/62

    Note de curs Baze de date

    Ctlin Tudor

    Limbajul Transact-SQL (T-SQL)

    un limbaj standardizatde interogare a bazelor de daterelaionale (ANSI SQL-89)

    Este un limbaj declarativ:

    utilizatorul trebuie sdescrie informaiile pe care vrea sle

    obin, fra preciza algoritmii necesari pentru obinerea

    rezultatelor.

    nu sunt necesare cunotine de programare.

    Poate fi utilizat prin apelarea unui vocabular specific,

    recunoscut de toate bazele de date relaionale: Oracle,

    Access, SQL Server, Informix, Ingres, DB2, Sybase, etc.

    T-SQL: dialect al limbajului SQL pentru bazele de date

    SQL Server

  • 7/26/2019 Suport de Curs ID

    20/62

    Note de curs Baze de date

    Ctlin Tudor

    Vocabularul SQL:

    Instruciuni permit execuia anumitor aciuni (CREATE,ALTER, SELECT, UPDATE, DELETE, etc.)

    Clauze specific argumentele unei instruciuni (FROM,

    WHERE, ORDER BY, etc.)

    Funcii efectueaz prelucrri asupra datelor (care devin

    argumente sau parametrii) n scopul afirii unor rezultate

    specifice (SUM, ROUND, UPPER, LEFT, GETDATE, ISNULL

    etc.).

    Operatori acioneaz asupra datelor (care devin operanzi),

    permind definirea unor expresii, calcule, etc. (aritmetici, de

    comparare, logici, de concatenare, etc.).

    instruciuni de definire a datelor (permit descriereastructurii bazei de date):

    CREATE, ALTER, DROP

    instruciuni de selecie a datelor (permit consultarea

    bazei de date):

    SELECT

    instruciuni de manipulare a datelor (permit

    adugarea, modificareaitergerea nregistrrilor):

    INSERT, UPDATE, DELETE

    instruciuni privind controlul accesului la date(permit acordarea sau revocarea dre...