Curs1 Access Tabele-2007

download Curs1 Access Tabele-2007

of 18

Transcript of Curs1 Access Tabele-2007

  • 7/31/2019 Curs1 Access Tabele-2007

    1/18

    1

    Baze de date MS Access

    1. TermeniDefiniie Un SGBD (Sistem deGestiune a Bazelor de Date) este un ansamblu complex

    de programe care asigur interfaa ntre o baz de date i utilizatorii acesteia.SGBD este componenta software a unui sistem de baz de date care interacioneaz cu toate

    celelalte componente ale acestuia, asigurnd legtura i interdependena ntre elementele

    sistemului.

    Clasificarea SGBD-ului:

    1. Dup sistemele de calcul pe care se implementeaz:a. SGBD pentru calculatoare mari, se folosesc pentru bazele de date complexe i

    foarte mari (ex.: Oracle, Db2, IMS)

    b. SGBD pentru minicalculatoare, pentru BD complexe i mari (ex.Oracle);c. SGBD-uri pentru micro calculatoare se folosesc pentru BD complexe i de

    mrim medie sau mic (ex.: Oracle, Access, FoxPro)

    2. Dup limbajul de programare utilizat:a. SGBD-ul cu limbaj gazd este cel care are un limbaj de manipulare a datelor

    bazat pe unul de nivel nalt;

    b. SGBD-ul cu limbaj propriu este cel care are un limbaj de manipulare adatelor propriu(ex. Visual FoxPro)

    3. Dup modelul logic de date implementat:a. SGBD ierarhic implementeaz un model de date arborescent

    b. SGBD reea implementeaz modelul de date reea. Sunt dificil de utilizatc. SGBD relaional implementeaz modelul de date relaional (ex. Oracle,

    Visual FoxPro, Paradox, Access,..)

    d. SGBD orientat obiect implementeaz modelul de date orientat obiect i sepreteaz bine la problemele cu complexitate ridicat

    O baz de date, reprezint o modalitate de stocare a unor informaii i date pe un

    suport extern (un dispozitiv de stocare), cu posibilitatea regsirii rapide a acestora. O baz de

    date este memorat ntr-unul sau mai multe fiiere. Bazele de date sunt manipulate cu ajutorul

    sistemelor de gestiune a bazelor de date. Cel mai rspndit tip de baze de date este cel

    relaional, n care datele sunt memorate n tabele.

    n modelul relaional o tabel relaional are urmtoarele proprieti:

  • 7/31/2019 Curs1 Access Tabele-2007

    2/18

    2

    numele tabelei este unic n baza de date cmpurile (atributele, coloanele) au nume care sunt unice n cadrul tabelei n care au

    fost definite

    valorile cmpurilor sunt toate din acelai domeniu ordinea coloanelor nu are importan fiecarenregistrare (fiecare articol) este distinct; nu sunt articole duplicate exist o

    cheie primar. Cheia primara identific n mod unic o nregistrare ntr-o tabel.

    din punct de vedere teoretic ordinea articolelor nu are importan; practic acest lucrupoate afecta eficiena accesrii articolului.

    ntr-o tabel nu exist articole duplicate (ntr-o relaie nu sunt tuple duplicate). Un

    cmp sau o combinaie de cmpuri ale cror valori identific unic un articol dintr-o tabel se

    numete supercheie. O supercheie care conine numrul minim de cmpuri necesare pentru

    identificarea unic a articolului se numete cheie candidat.

    O cheie candidat are urmtoarele proprieti:

    Unicitate. Nu exist dou articole care s aib aceeai valoare a cheii candidate. Ireductibilitate. Nici o submulime proprie a cheii candidate nu are proprietatea de

    unicitate.

    O cheie care s-a construit folosind mai multe coloane se numete cheie compus. O

    cheie care implic un singur atribut se numete cheie simpl. Fiecare tabel are cel puin o

    cheie candidat.

    Cheia candidat care este selectat pentru a reprezenta n mod unic un articol dintr-o

    tabel se numete cheie primar. Cheile candidate care nu sunt selectate drept chei primare

    se numesc cheialternative.

    n general, dac un cmp apare n tabele diferite apare n tabele diferite, acest lucru

    poate nsemna existena unei relaii ntre articolele din cele tabele.Se numete cheie strin(foreign key) un cmp sau un grup de cmpuri dintr-o tabel care

    coincid cu cheia candidat dintr-o alt tabel.

    Microsoft Access suport modelul relaional, iar o baz de date este format din mai

    multe obiecte. Dintre obiecte enumerm:

    - tabele conin nregistrrile propriu-zise- interogri selecteaz nregistrrile din tabel care satisfac anumite condiii;

  • 7/31/2019 Curs1 Access Tabele-2007

    3/18

    3

    - formulare afieaz nregistrrile din tabele, pe de-o parte, i permit adugareanregistrrilor n tabele;

    - rapoarte permit tiprirea nregistrrilor din tabele sau interogri

    1.2. Forme normale ale bazelor de date relaionale

    E.F.Codd a propus, iniial, o procedur de normalizare a tabelelor ce intr n

    componena unei baze de date, procedur care ulterior a fost mbuntit. Prin normalizare,

    cmpurile sunt grupate n tabele, iar tabelele n baza de date, iar scopul normalizrii este:

    - eliminarea redundanei din tabele;

    - posibilitatea efecturii unor modificri ulterioare la structura datelor

    - minimizarea impactului modificrii structurale a bazelor de date n aplicaii

    Tabele n modelul relaional1, respect una din cele 5 forme normale:

    a) Prima form normal (FN1)O tabel este n prima form normal dac valorile tuturor cmpurilor(atributelor) care o

    compun sunt indivizibile (atomice) i n plus nu exist atribute sau grupuri de atribute

    repetitive

    Pt. Exemplificare considerm tabela PROGRAMARE cu urmtoarele cmpuri:

    Id_curs Autonumber

    Den_curs text

    ziua - text

    nregistrrile

    Id_curs Den_curs Ziua

    1 Informatica Luni 11.10-12.50

    Vineri 12.40 14.10

    2 Matematica Marti -11.10-12.50Miercuri 12.40-14.10

    Tabela PROGRAMARE nu este n prima form normal, deoarece valorile

    cmpurilor ziua nu sunt atomice. Pentru a nltura aceast situaie tabela cursuri poate fi

    spart n 2 tabele: cursuri, programri

    1 Modelul relaional a fost propus n 1970 de E.F.Codd

  • 7/31/2019 Curs1 Access Tabele-2007

    4/18

    4

    Tabela cursuri

    Id_curs - Autonumber

    Den_curs Text(30)

    nregistrrile din tabela cursuri

    Id_curs Den_curs

    1 Informatica

    2 Matematica

    Tabela programari:

    Id_programare - Autonumber

    Id_curs - Number

    Data text(20)

    nregistrrile din tabela cursuri

    Id_programare Id_curs data

    1 1 Luni 11.10-12.50

    2 1 Vineri 12.40 14.10

    3 2 Marti -11.10-12.50

    4 2 Miercuri 12.40-14.10

    b) A doua form normal (FN2)O tabel este n a 2-a form normal dac este n FN1 i fiecare cmp (atribut) care

    nu face parte din cheia primar este complet dependent funcional de cheia primar.

    Fie X,Y cmpuri sau grupuri de cmpuri ale unei tabele. Domeniile valorilor

    corespunztoare acestor cmpuri le notm Dom(X), respectiv Dom(Y). Spunem c Y este

    dependent funcional de X, dac oricrui element din domeniul Dom(X) i corespunde un

    singur element din Dom(Y).

    c) A treia form normal (FN3)O tabel este n a treia form normal dac este n FN2 i fiecare cmp care nu

    aparine cheii primare este netranzitiv dependent funcional de cheia primar ( cmpurile care

    nu aparin cheii primare sunt reciproc independente)

  • 7/31/2019 Curs1 Access Tabele-2007

    5/18

    5

    2. Crearea unei baze de date n Microsoft Access

    Figura 1. Crearea bazei de date

    O baz de date n Access are extensia .accdb (Access 2007 data base) i conine

    tabele, interogri, formulare, rapoarte si macro.

    Pentru a crea o baz de date nou, se alege opiunea Blank database, se specific

    numele dorit al bazei de date, iar apoi se selecteaz opiunea Create.

    Pentru exemplificare, am ales s crem baza de date curs_MO.

    Efect: n folder-ul specificat se va genera fiierul studenti cu extensia .accdb (access

    data base).

    3. Tabele n MS Access 2007

    3.1. Crearea unei tabele

    Pentru a crea o tabel, n cadrul unei baze de date, se alege din meniul CREATEopiunea TABLE.

  • 7/31/2019 Curs1 Access Tabele-2007

    6/18

    6

    Pentru a defini elementele tabelei se sugereaz s se utilizeze modul Design View .

    Figura Proiectarea structurii logice modulDesign View

    Modul Design View - - permite proiectarea structurii logice pentru o tabel. Structura

    logic a tabelei se refer la :

    - definirea cmpuriloro stabilirea tipului de dat, pentru fiecare cmpo stabilirea proprietilor cmpului, n funcie de tipul de dat ales

    - alegerea cheii primare

    Dup proiectarea structurii logice se poate trece la modificarea structurii fizice care

    se refer lanregistrri.

  • 7/31/2019 Curs1 Access Tabele-2007

    7/18

    7

    3.2. Elementele unei tabele:

    Informaia n tabele se regsete sub form tabelar. Coloanele corespund cmpurilor,

    iar liniile nregistrrilor

    1. cmpul - este o entitate logic caracterizat de un nume i un tip de dat. n funcie detipul de dat, asupra cmpului pot fi impuse restricii

    2. nregistrarea cnd sunt introduse valori tuturor cmpurilor, spunem c am introdus onregistrare

    3. cheia primar unul sau mai multe cmpuri, din cadrul tabelei, pot defini cheiaprimar. Dac cheia primar este format dintr-un singur cmp atunci spunem c avem

    cheie primar simpl, iar n cazul n care cheia primar este format din mai multe

    cmpuri, avem cheie primar compus. Cheia primar, la nivel de tabel, identific n

    mod unic o nregistrare; cu alte cuvinte nu pot exista dou nregistrri cu aceeai

    valoare a cheii primare.

    3.3. Cmpuri definirea cmpurilor modul Design View

    Cmpurile unui tabele se definesc n mod Design View, iar fiecare cmp este

    caracterizat de atribute i proprieti.

    Atributele cmpului se refer la:

    - Numele cmpului (Field Name)- Tipul de dat pentru fiecare cmp este obligatoriu s se aleag unul din urmtoarele

    tipuri de dat:

    o Text n cmp se vor introduce un numr maxim de 255 caractereo Memo cnd n cmp se vor introduce mai mult de 255 caractereo Number cnd se dorete introducerea unor valori numericeo Date/Time se vor introduce date calendaristice sau ore;o Currency moned;o AutoNumber numerotare automato Yes/No cmpuri logiceo OleObject poze (nu accept formatul .jpg) sau secvene sonore; n general

    fiiere create cu alte programe fiiere text, grafice din Excel, silde-uri

    PowerPoint. Poate fi privit ca i cmp de tip attachement cu diferena c acesta

    din urm este mult mai rapid i mai flexibil

    o HyperLink legtur la alte fiiere sau site-uri

  • 7/31/2019 Curs1 Access Tabele-2007

    8/18

    8

    o Attachement ofer posibilitatea de a introduce date fcute n alte aplicaii,ns nu se accept caractere sau valori numerice.

    o Lookup Wizard nu este un tip de dat propriu-zis. Este utilizat pentru a evitaintroducerea manual a cmpului i permite selectarea valorii dintr-o list sau

    dintr-un combobox.

    - Proprietile cmpurilor - n funcie de tipul de date, se pot trata diverse proprieti. Cai proprieti generice putem enumera:

    o Field Size permite specificarea dimensiunii maxime sau a intervalului pentrudate de tip number

    o Format stabilete modul de afiareo Input Mask masca de introducere a datelor (ex: nr. de telefon 0_ _/_ _ _ _ _ _)o Caption permite redenumirea cmpului. Numele cmpului rmne

    neschimbat; se modific denumirea cmpului la afiare n mod DatasheetView

    o Default Value valoarea implicit pe care o va la cmpulo Validation Rule restricia care trebuie s fie satisfcut de valoarea cmpuluio Validation Text mesajul care apare n cazul n care regula de validare

    (Validation Rule) nu e satisfcut

    o Indexed tabela este indexat dup acest cmp; pentru o accelerare a timpuluide cutare a nregistrrilor este indicat s se indexeze cmpul n cadrul tabelei

  • 7/31/2019 Curs1 Access Tabele-2007

    9/18

    9

    3.3.1. Proprietile cmpurilor

    a)Cmpuri de tip Text. Proprieti

    Cmpurile de tip text sunt utilizate pentru a salva caractere sau iruri de caractere.

    - Field Size- se refer la numrul maxim de caractere pe care l poate conine un cmp- Input Mask masc de introducere a datelor (ex: se poate defini cmpul telefon de tip

    text, iar la introducerea numrului s apar delimitrile specificate.

  • 7/31/2019 Curs1 Access Tabele-2007

    10/18

    10

    Figura Mti predefinite

    3.3.2. Cmpuri de tip Number. Proprieti

  • 7/31/2019 Curs1 Access Tabele-2007

    11/18

    11

    - Field Size - se refer la tipul numrului. Dac valorile ce urmeaz a fi introduse ncmp sunt ntregi se pot alege urmtoarele tipuri de dat Byte (numere ntregi n

    pozitive

  • 7/31/2019 Curs1 Access Tabele-2007

    12/18

    12

    intermediul cmpurilor care sunt chei primare, respectiv cheia primar din prima tabel i

    cheia primar din a doua tabel

    Exemplu: Fie dou tabele: STUDENT i DATE_PERSONALE, cu urmtoarele

    structuri:

    STUDENT: DATE_PERSONALE

    - id_student AutoNumber(PK)

    - nume Text(30)

    - prenume Text(30)

    - id Number(PK)

    - data_nasterii Date/Time

    - initialaT Text(2)

    - locul_nasterii Text(30)

    ntre cele dou tabele se definete o relaie astfel: pentru un student, din tabela

    STUDENTI, exist o singur nregistrare, n tabela DATE_PERSONALE.

    Relaia dintre cele dou tabele se realizeaz prin intermediul celor dou chei primare

    asociate tabelelor: cmpurile id_student(din tabela STUDENT) i id (din tabela

    DATE_PERSONALE).

    Observaie:

    Pentru a realiza o legtur ntre dou tabele, cmpurile trebuie s aib acelai tip de

    dat.

    Definirea relaiei:

    Din meniul DatabaseTOOLS, grupul Show/Hide se alege RelationShips

    Figura Relaie one-to-one

    b) Relaie de tip one-to many pentru o nregistrare din tabela printe corespundmai multe nregistrri din tabela copil. Relaia se realizeaz prin intermediul cheii primare

  • 7/31/2019 Curs1 Access Tabele-2007

    13/18

  • 7/31/2019 Curs1 Access Tabele-2007

    14/18

    14

    STUDENTI: MATERII

    - id_student AutoNumber(PK)

    - nume Text(30)

    - prenume Text(30)

    - grad - Number

    - id_materie Number(PK)

    - den_materie Text(30)

    - an_studiu Valori I,II sau III

    - semestrul I sau II

    Un student, are ntr-un semestru mai multe materii. O materie este studiat de mai

    muli studeni. ntre cele dou tabele este o relaie many-to-many. Pentru a implementa relaia

    se folosete o tabel intermediar, NOTE, care sparge relaia many-to-many n dou relaii

    one-to-many

    NOTE:- id_nota Autonumber(PK)- id_student Number aceleai valori cu cmpul id_student din tabela STUDENTI- id_materie Number - aceleai valori cu cmpul id_materie din tabela MATERII- nota Number, cu valori ntre 2 i 10- nota_re Number, cu valori ntre 2 i 10- nota_rere Number, cu valori ntre 2 i 10

    Relaia iniial many-to-many se sparge n dou relaii one-to-many astfel:- pentru un student, exist mai multe note

    - pentru o materie exist mai multe note

    Figura Relaie many-to-many

  • 7/31/2019 Curs1 Access Tabele-2007

    15/18

    15

    4.1. Reguli de integritate referenial

    ntre tabelele STUDENTI i NOTE exist o relaie de tip one-to-many, n sensul c

    pentru un student exist mai multe note (la materii diferite). Cu alte cuvinte, pentru o

    nregistrare din tabela printe (tabela din partea one a relaiei - studenti) exist mai multe mai

    multe nregistrri n tabela copil (tabela din partea many note). Cu integritatea referenial ne

    asigurm c nu exist nregistrri n tabela copil care nu au corespondent n tabela printe,

    adic nu avem note care nu corespund niciunui student

    Figura. Relaia ntre tabelele MATERII i NOTE

    Dac nu avem stabilit regula de integritate referenial, atunci, n tabela note pot

    exista nregistrri orfane, n sensul c pot fi note care nu corespund niciunui student.

    nregistrrile din tabela printe studenti:

    Figura nregistrrile din tabela STUDENTInregistrrile din tabela note

    Figura: nregistrrile din tabela NOTE

    n tabela note, la cmpul id_student, avem valoarea 10 care nu au corespunde

    niciunei nregistrri din tabela studenti. Aceste nregistrri se numesc nregistrri orfane.

  • 7/31/2019 Curs1 Access Tabele-2007

    16/18

    16

    Pentru a evita aceste situaii, ntre dou tabele care sunt n relaie se definete regula de

    integritate referenial.

    Regulile de integritate referenial menin consistena nregistrrilor din tabele.

    Figura Integritate referenial

    Dac este stabilit regula de integritate referenial ntre cele dou tabele, nu mai pot fi

    introduse nregistrri orfane.

    tergerea nregistrrilor

    Dac se dorete tergerea nregistrrilor din tabela printe (materii), iar nregistrrile

    au corespondent n tabela copil (note), atunci nregistrrile nu pot fi terse. Trebuie terse mai

    nti nregistrrile din tabela copil i apoi nregistrrile din tabela printe.

    Pentru a face tergerea direct, fr o tergere prealabil n tabela copil, trebuie

    selectat opiunea Cascade Delete Related Records.

    TabelaPRINTE Tabela

    COPIL

  • 7/31/2019 Curs1 Access Tabele-2007

    17/18

    17

    Tema de laboratorT1S se proiecteze baza de date academie cu urmtoarele tabele :

    - Tabela GRADE:o id_grad Autonumbero den_grad Text(30)- Tabela STUDENTI:o nr_matricol Autonumbero nume Text(40)o prenume Text(40)o grad valoare din tabela GRADEo data_nasterii Date/Timeo specializarea MO, MEF sau APo grupa valorile 11, 12,... 20o solda - Currencyo poza Ole Objecto observatii memoo liceu_militar Yes/Noo site hyperlink

    - Tabela MATERIIo id_materie Autonumbero den_materie Text(50)o an_studiu O valoare 1, 2 sau 3o semestrul o valoare 1 sau 2o credite o valoare numeric, ntre 1 i 6

    - Tabela NOTEo id_nota- Autonumbero id_stud Number (acelai cmp cu cel din tabela STUDENTI)o id_mat Number (acelai cmp cu cel din tabela MATERII)o nota Number(Byte )- valoare cuprins ntre 1 i 10o nota_re Number(Byte) - valoare cuprins ntre 1 i 10o nota_rere Number(Byte) - valoare cuprins ntre 1 i 10o nota_marire Number(Byte) - valoare cuprins ntre 1 i 10

    Relaii:- ntre tabelele grade i studeni se definete o relaie one-to-many.- ntre tabelele materii i studenti o relaie many-to-many spart de tabela note

    Obs! Cmpurile subliniate sunt chei primare n tabele

  • 7/31/2019 Curs1 Access Tabele-2007

    18/18

    18

    T2Construii o baz de date care s conin tabelele:CRIcota_cartetitlu

    autordomeniunr_exemplarepret

    CITITORInr_matricolnume

    prenumeadresa

    Cerine: n MS Access construii tabelele. Stabilii tipul de relaie i apoi o implementai,stabilind i integritatea referenial.

    T3Se consider urmtoarele tabele:MAINI

    nrmarcamodel

    OFERI

    id_sofernumeprenume

    Construii n Access tabelele implementnd tipul de relaie corespunztoare.

    T4Construii 3 baze de date, la alegere, n care s avei implementate toate tipurile de relaii.