CATEGORII DOCUMENTE |
Animale | Arta cultura | Divertisment | Film | Jurnalism | Muzica |
Pescuit | Pictura | Versuri |
Introducere
Descrierea lucrarii
Crearea modelului conceptual
Reguli structurale
Maparea modelului
Reguli procedurale
Bibliografie
Introducere
Auzim adesea vorbindu-se despre "Era informatiilor" sau "societate informationala" sau "tehnologia informatiei" insa de multe ori cuvantul 'informatie' este folosit fara a intelege clar sensul acestui cuvant, diferenta dintre date, informatii, cunostinte.
In general, continutul gandirii umane opereaza cu urmatoarele concepte:
Date - constau in material brut, fapte, simboluri, numere, cuvinte, poze fara un inteles de sine statator, neintegrate intr-un context, fara relatii cu alte date sau obiecte. Ele se pot obtine in urma unor experimente, sondaje etc.
Informatii - prin prelucrarea datelor si gasirea relatiilor dintre acestea se obtin informatii care au un inteles si sunt integrate intr-un context. Datele organizate si prezentate intr-un mod sistematic pentru a sublinia sensul acestor date devin informatii. Pe scurt informatiile sunt date prelucrate. Informatiile se prezinta sub forma de rapoarte, statistici, diagrame etc.
Cunostintele sunt colectii de date, informatii, adevaruri si principii invatate, acumulate de-a lungul timpului. Informatiile despre un subiect retinute si intelese si care pot fi folosite in luarea de decizii, formeaza judecati si opinii devin cunostinte. Cu alte cuvinte, cunostintele apar in momentul utilizarii informatiei .
Primul pas in realizarea unei aplicatii de baze de date este analiza datelor si realizarea unei scheme conceptuale (model conceptual) al acestor date.
In aceasta etapa sunt analizate natura si modul de utilizare a datelor. Sunt identificate datele care vor trebui memorate si procesate, se impart aceste date in grupuri logice si se identifica relatiile care exista intre aceste grupuri.
Analiza datelor este un proces uneori dificil, care necesita mult timp, insa este o etapa absolut obligatorie. Fara o analiza atenta a datelor si a modului de utilizare a acestora, vom realiza o baza de date care putem constata in final ca nu intruneste cerintele beneficiarului. Costurile modificarii acestei baze de date este mult mai mare decat costurile pe care le-ar fi implicat etapa de analiza si realizare a modelului conceptual. Modificarea modelului conceptual este mult mai usoara decat modificarea unor tabele deja existente, care eventual contin si o multime de date. Ideea de baza a analizei datelor si construirii modelului conceptual este 'sa masori de doua ori si sa tai o singura data'.
Informatiile necesare realizarii modelului conceptual se obtin folosind metode conventionale precum intervievarea oamenilor din cadrul organizatiei si studierea documentelor folosite.
Odata obtinute aceste informatii ele trebuiesc reprezentate intr-o forma conventionala care sa poata fi usor inteleasa de toata lumea. O astfel de reprezentare este diagrama entitati-relatii, numita si harta relatiilor, sau ERD-ul (Entity Relationship Diagram). Aceste scheme sunt un instrument util care usureaza comunicarea dintre specialistii care proiecteaza bazele de date si programatori pe de o parte si beneficiari, pe de alta parte. Acestia din urma pot intelege cu usurinta o astfel de schema, chiar daca nu sunt cunoscatori in domeniul IT.
In concluzie putem sublinia cateva caracteristici ale ERD-urilor:
sunt un instrument de proiectare
sunt o reprezentare grafica a unui sistem de date
ofera un model conceptual de inalt nivel al bazelor de date
sprijina intelegerea de catre utilizatori a datelor si a relatiilor dintre acestea
sunt independente de implementare.
In cele ce urmeaza vom prezenta principalele elemente care intra in componenta unui ERD precum si conventiile de reprezentare a acestora.
O entitate este un lucru, obiect, persoana sau eveniment care are semnificatie pentru afacerea modelata, despre care trebuie sa colectam si sa memoram date. O entitate poate fi un lucru real, tangibil precum o cladire, o persoana, poate fi o activitate precum o programare sau o operatie, sau poate fi o notiune abstracta.
O entitate este reprezentata in ERD printr-un dreptunghi cu colturile rotunjite. Numele entitatii este intotdeauna un substantiv la singular si se scrie in partea de sus a dreptunghiului cu majuscule
Pentru a preciza o instanta a unei entitati, trebuie sa specificam unele caracteristici ale acestui obiect, sa-l descriem (precizam de exemplu numele, clasa, scoala etc). Asadar, dupa ce am identificat entitatile trebuie sa descriem aceste entitati in termeni reali, adica sa le stabilim atributele. Un atribut este orice detaliu care serveste la identificarea, clasificarea, cuantificarea, sau exprimarea starii unei instante a unei entitati. Atributele sunt informatii specifice ce trebuie cunoscute si memorate.
Tipuri de legaturi intre tabele:
Analiza CRUD-se refera la CREATE, RETRIVE, UPDATE, DELETE-(creaza, reface, actualizeaza, sterge) operatii ce fac din ERD un model complet.Se verifica daca modelul exprima toate operatiile ce se pot face si nu are elem inutile, etc.
UID artificial si compus
UID-(Unique Identifier)-e atributul ce identifica in mod unic entitatea(ex: CNP, cod, id,). Daca e nevoie de o combinatie de mai multe atribute care sa identifice in mod unic entitatea , e vorba de un UID compus. Daca se recurge la o modalitate de identificare printr-un cod artificial oferit in mod automat de program, e vorba de UID artificial.
Normalizarea este o tehnica de proiectare a bazelor de date prin care se elimina (sau se evita) anumite anomalii si inconsistente a datelor. O baza de date bine proiectata nu permite astfel ca datele sa fie redundante, adica aceeasi informatie sa se gaseasca in locuri diferite, sau sa memorezi in baza de date, informatii care se pot deduce pe baza altor informatii memorate in aceeasi baza de date. Anomaliile care pot sa apara la o baza de date nenormalizata sunt urmatoarele:
anomalii la actualizarea datelor la o biblioteca se inregistreaza intr-o tabela urmatoarele date despre carti: ISBN, titlu, autor, pret, subiect, editura, adresa editurii. La un moment dat o editura isi schimba adresa. Bibliotecara va trebui sa modifice adresa editurii respective, in inregistrarile corespunzatoare tuturor cartilor din biblioteca aparute la respectiva editura. Daca aceasta modificare nu se face cu succes, unele dintre inregistrari ramanand cu vechea adresa, apare din nou o inconsistenta a datelor.
anomalii de inserare - in exemplul anterior, nu vom putea memora adresa unei edituri, lucru inacceptabil daca dorim sa avem informatii si despre edituri a caror carti nu le avem in biblioteca, eventual de la care dorim sa facem comenzi.
anomalii de stergere - sa presupunem ca intr-o tabela memoram urmatoarele informatii: codul studentului, codul cursului, codul profesorului. La un moment dat, nici un student nu mai doreste sa participe la un anume curs. Stergand toate inregistrarile corespunzatoare cursului, nu vom mai putea sti niciodata cine preda acel curs.
Edgar Codd a definit primele trei forme normale 1NF, 2NF si 3NF. Ulterior s-au mai definit formele normale 4NF, 5NF, 6NF care insa sunt rar folosite in proiectarea bazelor de date.
O entitate se gaseste in prima forma normala daca si numai daca:- nu exista atribute cu valori multiple;- nu exista atribute sau grupuri de atribute care se repeta. Cu alte cuvinte toate atributele trebuie sa fie atomice, adica sa contina o singura informatie.
Daca un atribut are valori multiple, sau un grup de atribute se repeta, atunci trebuie sa creati o entitate suplimentara pe care sa o legati de entitatea originala printr-o relatie de 1:m. In noua entitate vor fi introduse atributele sau grupurile de atribute care se repeta
O entitate se gaseste in a doua forma normala daca si numai daca se gaseste in prima forma normala si in plus orice atribut care nu face parte din UID (unique identifier) va depinde de intregul UID nu doar de o parte a acestuia.
O entitate se gaseste in a treia forma normala daca si numai daca se gaseste in a doua forma normala si in plus nici un atribut care nu este parte a UID-ului nu depinde de un alt atribut non-UID. Cu alte cuvinte nu se accepta dependente tranzitive, adica un atribut sa depinda de UID in mod indirect.
Orice sistem de gestiune a bazelor de date (SGBD) trebuie sa asigure urmatoarele functii:
definirea structurii bazei de date
incarcarea datelor in baza de date (adaugarea de noi inregistrari la baza de date)
accesul la date pentru:
o interogare (afisarea datelor, sortarea lor, calcule statistice etc.)
o stergere
o modificare
intretinerea bazei de date:
o refacerea bazei de date prin existenta unor copii de siguranta
o repararea in caz de incident
o colectarea si refolosirea spatiilor goale
posibilitatea de reorganizare a bazei de date prin:
o restructurarea datelor
o modificarea accesului la date
securitatea datelor.
O parte din aceste operatii pot fi realizate cu ajutorul limbajului SQL, altele cu ajutorul unor programe specializate, care sunt puse la dispozitia administratorului bazei de date de catre sistemul de gestiune al bazelor de date.
Detalierea caracteristicilor pe care trebuie sa le prezinte un SGBD pentru a fi considerat relational s-a facut de E. F. Codd in 1985 sub forma a 13 reguli. Una dintre aceste reguli precizeaza ca restrictiile de integritate trebuie sa poata fi definite in limbajul utilizat de SGBD pentru definirea datelor.
Regulile de integritate garanteaza ca datele introduse in baza de date sunt corecte si valide. Aceasta inseamna ca daca exista orice o regula sau restrictie asupra unei entitati, atunci datele introduse in baza de date respecta aceste restrictii. In Oracle, regulile de integritate se definesc la crearea tabelelor folosind constrangerile. Dar asupra acestora vom reveni in partea a doua a manualului.
Tipurile de reguli de integritate sunt urmatoarele:
Integritatea entitatilor - indica faptul ca nici o coloana ce face parte din cheia primara nu poate avea valoarea NULL. In plus, pentru fiecare inregristrare, cheia primara trebuie sa fie unica.
Integritatea de domeniu - acest tip de reguli permite ca intr-o anumita coloana se introduca doar valori dintr-un anumit domeniu. De exemplu putem impune ca salariul unui angajat sa fie cuprins intre 4500 si 5000 RON.
Integritatea referentiala - este o protectie care asigura ca fiecare valoare a cheii straine sa corespunda unei valori a cheii primare din tabela referita. De exemplu, referindu-ne la tabelele JUCATORI si ECHIPE, corespunzatoare ERD-ului din figura I.3.2, cod este cheie primara in tabela ECHIPE, iar in tabela JUCATORI cod devine cheie straina. Astfel valoarea campului cod din cadrul tabelei JUCATORI corespunzatoare unui anumit jucator trebuie sa se regaseasca printre valorile campului cod din tabela ECHIPE, altfel ar insemna ca jucatorul respectiv joaca la o echipa inexistenta (vezi figura I.3.8).
Situatii de incalcare a integritatii referentiale pot aparea:
la adaugarea unei noi inregistrari in baza de date, se poate incerca introducerea unor valori invalide pentru campurile cheii straine;
la actualizarea bazei de date;
la stergerea unei inregistrari. De exemplu se sterge inregistrarea corespunzatoare unei anumite echipe (echipa se desfiinteaza). Inregistrarile jucatorilor care au jucat la acea echipa vor incalca integritatea referentiala, deoarece se vor referi la o echipa care nu mai exista. Solutiile posibile sunt ca la stergerea unei echipe, toti jucatorii care au activat la acea echipa sa fie si ei stersi din baza de date (stergere in cascada) sau valoarea campului cod_echipa pentru acei jucatori sa fie setata la NULL, ceea ce va inseamna ca acei jucatori nu activeaza la nici o echipa.
TIP |
Caracteristici |
VARCHAR2(size) |
sir de caractere de lungime variabila |
NUMBER(p,s) |
Numeric: p (precision) = 1..38, s (scale) =-84..127 |
LONG |
sir de caractere de lung>2GB |
DATE |
data calendaristica |
RAW(size) |
date de tip binar. Maxim size este 2000 bytes. |
LONG RAW |
lungime variabila > 2GB se stocheaza grafice, sunete, documente |
ROWID |
adresa fiecarui rind din tabela |
CHAR(size) |
sir de caractere de lungime fixa |
BLOB |
binary large object (max 4GB) se stocheaza date nestructurate (text,imagine, video, date spatiale) |
BFILE |
contine un pointer catre un fisier binar stocat in afara bazei de date |
Operator |
Caracteristici |
<, >, =, >=, <=, NOT |
Operatori de comparatie |
BETWEEN AND |
intre doua valori (inclusiv). |
IN(lista) |
egal cu oricare valoare din lista |
LIKE |
similar cu un sablon % - oricate caractere; _ - un caracter; |
IS NULL |
are valoarea NULL |
Comenzile referitoare la bazele de date sunt comune tuturor versiunilor de SQL si sunt impartite in urmatoarele categorii:
Comenzi DDL (Data Definition Language - limbaj de definire a datelor)
Comanda |
Scop |
CREATE |
Creaza un obiect nou (tabela, utilizator, rol, etc) |
ALTER |
Modifica o parte dintre proprietatile unui obiect |
DROP |
Elimina un obiect din baza de date |
GRANT |
Acorda utilizatorilor drepturile necesare pentru accesul si manipularea obiectelor din baza de date |
REVOKE |
Anuleaza anumite drepturi utilizatorilor |
Comenzi DML (Data Manipulation Language - limbaj de manipulare a datelor)
Comanda |
Scop |
SELECT |
Regaseste inregistrari in tabele sau vederi. |
DELETE |
Sterge inregistrari din tabele |
INSERT |
Adauga o noua inregistrare in tabela |
UPDATE |
Modifica valorile unor inregistrari din tabele |
MERGE |
Adauga un tuplu in functie de o anumita conditie |
Comenzi TPL (limbaj pentru procesarea tranzactiilor)
Comanda |
Scop |
COMMIT |
Finalizeaza o tranzactie |
ROLLBACK |
Anuleaza o tranzactie |
SAVEPOINT |
Defineste un punct de salvare, in locul in care tranzactia salveaza toate operatiile effectuate pana in momentul respective, inainte de a continua urmatorul set de modificari effectuate in baza de date. |
Pentru a crea o tabela se specifica urmatoarele:
definitiile atributelor
modul de organizare a tabelei
restrictiile de integritate
spatiul de tabela
caracteristicile de stocare
clusterul
datele daca se preiau dintr-o alta tabela
definitiile partitiilor
RESTRICTII DE INTEGRITATE
Tipuri de restrictii:
o NOT NULL
o UNIQUE
o PRIMARY KEY
o FOREIGN
o CHECK
Descrierea lucrarii
Trebuie sa proiectati o baza de date a unui depozit de materiale de constructii. Baza de date trebuie sa contina informatii despre firma - codul unic de identificare de la Registrul Comertului , nume, adresa , produsele comercializate si angajatii depozitului . De asemenea, se doreste sa se tina o evidenta clara a angajatilor depozitului (cu ajutorul contractelor de munca , a datelor personale - nume,adresa,telefon si a departamentului in care lucreaza) . Clientii nostri pot fi atat persoane fizice,cat si firme.
Depozitul poate colabora cu importatori si/sau distribuitori ( pot exista mai multe firme care furnizeaza acelasi produs - material ), in acest caz informatiile despre acele firme trebuie trebuie inregistrate in baza de date.
Firma trebuie sa aiba si o evidenta clara a veniturilor si cheltuielilor , obtinuta cu ajutorul facturilor.
ERD
Reguli structurale
DEPOZIT-CONTRACT
O firma are unul sau mai multe contracte
Un contract trebuie sa apartina unui depozit
ANGAJAT-FACTURA
Un angajat poate emite una sau mai multe facturi
O factura este emisa de un angajat
FACTURA - PERS_FIZICA
O persoana fizica (client) poate avea una sau mai multe facturi
O factura este detinuta de o persoana fizica
FURNIZOR - CONTRACT
Un furnizor poate incheia unul sau mai multe contracte cu depozitul
Un contract apartine unui furnizor
ANGAJAT - CONTRACT
Un angajat incheie un contract cu depozitul
Un contract apartine unui angajat
ANGAJAT - DEPARTAMENT
Un departament poate avea unul sau mai multi angajati
Un apartine unui departament
MANAGER - DEPARTAMENT
Un departament poate avea un singur manager
Un manager conduce un singur departament
FURNIZOR - MATERIAL
Un furnizor poate distribui unul sau mai multe materiale
Un material poate fi furnizat de una sau mai multe firme
FACTURA - MATERIAL
O factura poate avea unul sau mai multe materiale
Un material poate fi pe una sau mai multe facturi
DEPOZIT - DEPARTAMENT
Un depozit poate avea unul sau mai multe departamente
Un departament apartine unui singur depozit
MAPAREA RELATIILOR
Regulile procedurale
Sa se afiseze numele, prenumele, data nasterii si numarul de telefon tuturor angajatilor
select nume, prenume, data_nastere, telefon
from angajat
Sa se afiseze furnizorii care distribuie ciment
select cui , nume , inmatriculare , localitate from furnizor,furnizat
where furnizor.cui = furnizat.cuifurnizor and furnizat.idmaterial in
(select id from material ,furnizat
Where material.id = furnizat.idmaterial and material.denumire like '%ciment%')
Sa se afiseze adresa si numarul de telefon al clientului "Popescu Ionut"
select strada,numar,bloc,apartament,codposta,localitate, telefon
from pers_fizica where nume = 'Popescu' and prenume = 'ionut'
Sa se afiseze angajatii care lucreaza in acelasi departament ca Ionescu
SELECT nume,prenume FROM angajat
WHERE iddepartament = ( SELECT iddepartament FROM angajat
WHERE nume = 'Ionescu')
Bibliografie
DOCUMENTATII ON-LINE
Academia Oracle
https://academy.oracle.com/
Oracle10g database
https://iacademy.oracle.com
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 5039
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved