Вы находитесь на странице: 1из 125

4/10/2013

Cap. 2 Sistemul CIM (Computer Integrated Manufacturing)

2.1 Introducere

Definiţia după CASA (Computer and Automation Systems Association):


CIM este conceptul de integrare totală a activităţilor întreprinderii realizat prin
integrarea sistemelor, a comunicaţiilor de date şi a noi filozofii manageriale care
îmbunătăţesc eficienţa organizatorică şi de personal.

Definiţia după dicţionarul APICS:


CIM – Integrarea organizatorică totală a fabricaţiei prin folosirea sistemelor de calcul
şi a filozofiilor manageriale cu scopul de a îmbunătăţi eficienţa organizatorică;
utilizarea calculatoarelor pentru a interfaţa diverse sisteme de calcul şi conectarea
acestora coerentă într-un tot unitar. De exemplu integrarea sectorului financiar,
sistemului CAD/CAM, a controlului proceselor, a sistemelor grupului tehnologic,
MRPII, sistemul de raportări financiare. Toate acestea sunt legate prin interfeţe.

Mediul informational al unei intreprinderi suporta schimbari frecvente in configuratie si


tehnologie. O arhitectura CIM este un sistem informatic care permite intreprinderilor
industriale sa integreze informatiile si procesele afacerii, oferind o structura flexibila
care ii permite sa reactioneze rapid la aceste schimbari. Structura se bazeaza pe un
numar de elemente modulare care se pot modifica usor si se pot dezvolta dupa
cerintele intreprinderii.

Modelul conceptual al unui sistem CIM este ilustrat de Society of Manufacturing


Engineers in figura urmatoare.

(6) Infrastructura de fabricatie


(5) Oameni- materiale – Scule – RESURSE – Informatii – Tehnologii - Furnizorii
Proiectare Proiectare Imbunatatire
Transformari

viata produs

sistem componente continua


ciclu de

Definirea (4) Definire produs/proces Documentatie


Competitorii, distribuitori, resurse naturale

afacerii si lansare

(3) Cunostinte partajate


Planificare
resurse
(4) Suport clienti

(2) Organizatii
(4) Planificare
(2) Echipe
Sevicii
clienti

(1) Clienti
Planificare

(2) Oameni
operatii
Vanzari si

reguli – etica - mediu


promotie

(3) Sisteme
Management Productie
Organizatii

materiale componente
(4) Fabricatie
globale

Asamblare si
testare

(5) Angajati- investitori – comunitati – RESPONSABILITATI –

Pieţe financiare, comunităţi, guverne, instituţii de învăţământ şi de cercetare.

1
4/10/2013

Conceptul CIM are o dezvoltare pe niveluri :


• nivelul 1: Clienţii reprezintă ţinta principală pentru toate activităţile şi efortul de
fabricaţie.
• nivelul 2: Acest nivel cuprinde metodele de organizare, motivare, perfecţionare,
evaluare şi comunicare dezvoltate pentru realizarea muncii în echipă şi pentru
cooperare.
• nivelul 3: se referă la partajarea cunoştinţelor, sistemelor şi a bazelor comune de
date utilizate pentru a ajuta personalul şi procesele. Resursele includ instrumente
manuale sau de calcul pentru a ajuta proiectarea cercetarea, elaborarea
documentaţiei luarea deciziilor şi controlul tuturor activităţilor.
• nivelul 4: Sunt patru categorii principale de procese: definirea produsului şi a
proceselor de fabricatie, planificarea, fabricaţia şi suportul clienţilor.
– Definirea produs/proces: Definirea afacerii, proiectarea produsului, proiectarea
componentelor, perfecţionarea proiectului, documentaţia şi lansarea produs.
– Planificare: planificare operatii si planificare resurse
– Fabricaţie: Managementul materialelor, asamblare şi testare, fabricaţia
componentelor, planificarea capacităţilor, planificarea resurselor.
– Suportul clienţilor: vânzări şi promovare, tranziţii pe timpul ciclului de viaţă,
servicii clienţi.
• nivelul 5: resursele companiei care includ : capitalul , personalul, materiale,
management, informaţii, tehnologie şi furnizori. Compania are responsabilităţi către
angajaţi, investitori, şi comunitate. Trebuie să respecte reguli de etică şi obligaţii faţă
de mediu.
• nivelul 6: Infrastructura. Aceasta include clienţii, furnizorii, competitorii, distribuitori,
resurse naturale, pieţe financiare, comunităţi, guverne, instituţii de învăţământ şi de
cercetare.

In figura urmatoare este o alta reprezentare a structurii CIM ce evidentiaza: procesele


datele si resursele sistemului.

Managementul
resurselor umane

Proiectare

Planificarea
si controlul
Productie fabricatiei
(MPC)

Marketing
si vanzari

Modelul sistemului CIM cu evidentierea proceselor datelor si resurselor sistemului

2
4/10/2013

Structura CIM include trei procese care se suprapun. Zona comună reprezintă datele şi resursele. De
asemenea cele trei procese sunt susţinute de resursele din cercul care le înconjoară:

• Proiectare şi elaborarea documentaţiei, denumită „product/process” şi care include: definirea


afacerii, proiectarea sistemului, proiectarea componentelor, îmbunătăţirea continuă, documentaţie
şi lansare. Acest sistem poartă denumirea de CAD.
– CAD – utilizarea calculatoarelor în desenul tehnic interactiv şi în arhivarea proiectelor.
Programele realizează forma, transformări geometrice, proiecţii, rotaţii, schimbarea scării de
reprezentare, secţiuni, vederi parţiale a părţilor şi a relaţiilor dintre acestea (definiţia APICS).
– CAE – Procesul de generare şi testare a specificaţiilor tehnice pe platforme de calcul.

• Planificarea si controlul fabricatiei (MPC) include procesele de planificare programare,


managementul inventarului si planificarea capacităţilor necesare pentru desfăşurarea eficientă a
fabricaţiei. Procesul include: managementul materialelor, elaborarea specificaţiilor de asamblare
şi testare, fabricaţia componentelor, planificarea operaţiilor, şi planificarea resurselor.
– CAPP – O metodă de planificare a proceselor în care sistemul de calcul asistă în
dezvoltarea planurilor proceselor de fabricaţie (definirea operaţiilor, secvenţa, cerinţele de
maşini şi scule, parametrii de fabricaţie, toleranţe, criterii de inspecţie). Inteligenţa artificială
şi sistemele de codificare şi clasificare sunt utilizate în generarea planului de procesare.
– CAM – Utilizarea programelor de calculator pentru programarea, comanda controlul
echipamentelor de producţiei pentru fabricaţia componentelor.
– CNC – O tehnică prin care controlerele maşinilor unelte utilizează calculatoare sau
microprocesoare pentru stocarea şi execuţia instrucţiunilor numerice.
– PAC (Production activity control): funcţia de rutare şi lansare în fabricaţie a operaţiilor care
trebuie executate pe facilităţile de producţie şi realizarea controlului furnizorilor. PAC
cuprinde tehnicile necesare de programare, control, măsură şi evaluare a eficienţei
operaţiilor de producţie.
– MRPII – Manufacturing resource planning O metodă pentru planificarea eficientă a tuturor
resusrselor de fabricaţie ale companiei. Este compus din: planificarea afacerii, planificarea
vânzărilor şi a operaţiilor, planificarea producţiei, planul de producţie, planificarea necesarului
de materiale, planificarea capacităţilor.

• Productie: Ultimul proces include activităţile asociate cu producţia sau cu “shop floor”.

Computer Integrated Manufacturing (CIM)

Nivelul strategic Nivelul tactic Nivelul operational


Managementul Ingineria asistată de calculator (CAE) Fabricatia asistata de
asistat de calculator calculator (CAM)

Sistemul de luare a Sisteme informatice Proiectare Analiza Asigurarea Ingineria Controlul shop-floor
deciziilor de fabricaţie calitatii fabricatiei

- AI: Inteligenţa - MIS: Sistemul - CAD - FEA -CAQ - CAP - CNC


artificială informatic de - GT - FEM -- SPC - GT - Roboti
- DSS: Sisteme de management - NC - FMS
support al deciziei - MRP: Planificarea - WIP
- DBMS: Sistemul necesarului de - AS/RS
de management al materiale
bazei de date - BOM: Lista de
materiale

Modelul sistemului CIM cu evidentierea nivelurilor ierarhice

3
4/10/2013

PPS CAD/CAM

MPS Plan
productie Proiectare CAD
MRP Planificare Ciclul de
materiale CAE

Planificare
productie

Planificare
CAP Planificare Plan de
capacitati lucru
Programe
Comanda si NC
planificarea Pregatirea Comanda
productiei fabricatiei
Transport
Colectare
date proces
Asamblare

CAM

Realizare
Realizare

Control
montaj Asamblare

Comanda Control
CAQ
expeditie calitate

Modelul in Y a sistemului CIM

2.2 Etapele introducerii conceptului CIM:

• 1. Evaluarea întreprinderii sub aspectul : tehnologiei, a resurselor umane şi a


sistemului.

– Analiza nivelului tehnologic şi gradul de sofisticare a proceselor utilizate în


fabricaţie.
– Nivelul cunoştinţelor angajaţilor privind conceptului CIM
– Analiza critică a sistemului de producţie în care urmează să se introducă
conceptul.

Obstacole pentru implementarea CIM :

Lipsa experienţei în interiorul întreprinderii 55%, la nivel managerial nu se


obţin beneficii 48%, planificare inadecvată sau lipsă de viziune 46%, metode
inadecvate de analiză a costurilor 43%, lipsa de fonduri 36%, frica eşecului
implementării 27%, companii care nu au nevoie 8%, altele 5%.

• 2. Simplificarea şi eliminarea pierderilor. Simplificarea este procesul de eliminarea a


pierderilor la nivelul operaţiilor sau a activităţilor pentru îmbunătăţirea productivităţii şi
eficienţei departamentelor şi organizaţiei.

• 3. Implementarea cu măsurarea performanţelor. Parametrii evaluaţi: timpul ciclului de


producţie, durata de staţionare în inventar, timpii de pregătire a fabricaţiei, eficienţa
fabricaţiei, calitatea, productivitatea angajaţilor.

4
4/10/2013

2.3 Componente tehnologice in structura CIM

Structura flexibila a sistemului se bazeaza pe utilizarea urmatoarelor componente


tehnologice: comunicatiile, baza de date (managementul datelor: definirea, stocarea,
securitatea si gestionarea modului de utilizare a datelor) si modul de prezentarea
datelor utilizatorilor si dispozitivelor din componenta intreprinderii.

a. Comunicatiile

In figura de mai jos este prezentata comunicatia la nivelul intreprinderii.

5
4/10/2013

Comunicatiile prin rolul lor de a distribui datele intreprinderii catre utilizatori, sisteme
si dispozitive, reprezinta un aspect critic al arhitecturii, sistemul de fabricatie utilizand
o gama larga de sisteme de calcul, tehnologii, arhitecturi de sisteme, sisteme de
operare si aplicatii. Aceasta diversitate creaza o dificultate deosebita in realizarea
comunicatiei dintre oameni si masini, in special cand utilizeaza formate diferite pentru
date. Plecand de la aceasta problema IBM a dezvoltat sistemul SNA - System
Network Architecture, cu rolul de a permite comunicatia dintre diferite sisteme IBM. In
decursul anilor sistemul a devenit un standard de comunicatii in multe companii
industriale. Cerintele CIM necesita o integrare mai larga decat cea oferita de sistemul
SNA. De exemplu la nivelul sistemului de productie (“shop-floor”), solutia oferita de
IBM este IBM Plant Floor Series, un set de produse software. O componenta a
setului, Distributed Automation Edition (DAE) este un sistem ce permite functii de
comunicatie pentru aplicatiile de la nivelul shop-floor:

- definirea si menagementul retelelor


- asignarea dispozitivelor logice
- managementul bibliotecilor de programe
- rutarea mesajelor si gestionarea mesajelor in cozi de asteptare
- Stabilirea unor proceduri de alertare
- Monitorizarea starii celulelor de lucru

DAE suporta diferite protocoale de comunicatie ca de exemplu protocolul ISO token-


ring MAP (Manufacturing Automation Protocol) , IBM-PC Network sau protocolul
CSMA/CD, TOP (Technical Office Protocol). Aceste functii ii permit sistemului DAE
sa asiste ingineria fabricatiei in dezvoltarea programelor, controlul centrelor de lucru
si sa ofere capabilitati de comunicatie intre sistemele zonale si sistemul central.

Managementul si prezentarea datelor

Sistemul de managementul datelor - reprezinta de asemenea o componenta critica


datorita diferitelor baze de date, formate, metode de stocare si accesare a datelor.
Managementul datelor defineste si inregistreaza locatiile datelor create si utilizate de
functiile afacerii intreprinderii. De asemenea sistemul permite accesarea datelor fara
a fi cunoscuta locatia in care se gasesc datele. In arhitectura CIM, managementul
datelor este realizat prin trei functii de depozitare individuale:

- Fisiere de date locale


- Aria de depozitare a datelor
- Sistem de stocarea datelor intreprinderii

Functiile principale ale managementului datelor sunt implementate de Consolidated


Design File (CDF), functii stabilite prin IBM Data Communication Service (DCS). CDF
opereaza cu baze de date relationale si este construit pe limbajul SQL. Un exemplu
de utilizare este la nivelul bazei de date care integreaza componentele CAD/CAM cu
cerintele afacerii prin functiile de management al proceselor ingineresti. In acest
mediu, sistemul IBM DCS/CDF furnizeaza urmatoarele functii:

- Transforma datele in formatul cerut de utilizator


- Depoziteaza datele CAD/CAM
- Adauga atributele datelor CAD/CAM
- Permite utilizatorilor sa interogheze date si atribute.

6
4/10/2013

Prezentarea datelor in mediul CIM

Functia aceasta asigura ca datele sa ajunga in formatul corespunzator la utilizatori si


dispozitive. Aceasta functie este critica datorita faptului ca sistemul de fabricatie
contine o gama foarte larga de dispozitive si de cerinte informationale, trebuie sa
asigure un mod consistent de distribuire si prezentare a informatiei catre oameni,
masini unelte, roboti, senzori, sisteme cu coduri de bare, vehicule ghidate automat
(AGV) si sisteme AS/RS.

Gama informatiilor cuprinde de la mesaje simple la transferul unor arii mari de date
pentru aplicatii de proiectare inginereasca.

Sistemele sunt distribuite si informatia trebuie trimisa in locatiile in care este ceruta de
utilizatori sau dispozitive.
Echipamentele utilizate pentru prezentarea datelor sunt display-uri care utilizeaza
diferite tehnologii. Unele sunt ne-programabile in timp ce altele sunt statii de lucru
programabile si sunt implementate in mod unic pentru fiecare aplicatie.

In consecinta aceeasi informatie este tratata diferit de diferite aplicatii.


De exemplu, o componenta a produsului fabricat este tratata ca un cod in aplicatia
Listei de materiale, a sistemului de Planificare a Productiei, ca un desen in CAD sau
ca o componenta in proiectarea rutelor Planului de Operatii.

7
4/10/2013

2.4 Concepte IT şi sisteme informaţionale pentru conducerea fabricaţiei.

Sistemul informaţional - cuprinde ansamblul mijloacelor şi procedurilor de prelucrare,


clasificare, stocare, difuzare şi valorificare a datelor şi informaţiilor la nivelul unei
entităţi economico-sociale.

Obiectivul principal este acela al furnizării de informaţii sub formă utilizabilă la


momentul oportun, în scopul asigurării bunei funcţionări a sistemelor operaţionale,
precum şi luării deciziilor la diferite niveluri.
Acest obiectiv este susţinut de doua caracteristici esenţiale ale sistemului
informaţional:
- sprijinirea procesului decizional şi
- coordonarea intr-un sistem cu mai multe niveluri.

Într-o primă clasificare, bazată pe funcţia sistemului informaţional, acesta poate fi de mai
multe tipuri:
 de prelucrare a tranzacţiilor: Transaction Processing System (TPS) – Sistemul de
Procesare a Tranzacţiilor,
 de conducere: Management Information System (MIS) - Sistemul Informaţional al
Managementului, Integrated Information System (IIS) – Sistem Informaţional Integrat
şi Enterprise Wide Systems (WIS) – Sistemul Lărgit al Întreprinderii (o aplicaţie in
care logistica este considerata ca parte a sistemului),
 de sprijinire in luarea deciziilor: Decision Support System – (DSS) şi
 pentru conducere executiva: Executive Information System – (EIS).

Functiile sistemelor informationale:

TPS - preia datele generate de activitatea internă economico-socială în baza de date


internă şi constituie infrastructura unuia din nivelurile sistemului informaţional.

MIS – pleacă de la TPS şi sintetizează informaţiile, in rapoarte periodice cu un format


predefinit.

DSS – Deoarece rapoartele oferite de MIS nu sunt suficient de relevante pentru luarea
deciziilor, mai ales la nivelurile superioare, s-au dezvoltat sistemele DSS. În general
exista mai multe DSS intr-o întreprindere deoarece, de exemplu, controlul tactic
financiar este foarte diferit în ceea ce priveşte cerinţele informaţionale de controlul
tactic al producţiei.

EIS (CIS) – Sistemul de sprijinire a deciziilor la nivelurile superioare de conducere este


denumit sistem informaţional pentru conducere executiva, dezvoltat in formele:
- Executive Information System (EIS) – Sistemul Informational Executiv
- Corporate Information System (CIS) – Sistemul Informaţional al Corporaţiei.

Acestea integrează informaţii provenind de la mai multe surse interne şi externe


întreprinderii şi permit managerilor să controleze şi să dispună de informaţiile
necesare luării deciziilor, prezentate intr-un mod personalizat.

8
4/10/2013

Sistemul informaţional la care operarea este asistată de calculator sau decurge automat
poartă denumirea de sistem informatic.

Sistemul informatic este structurat ierarhic pe nivelurile:

 tranzacţional (se prelucrează evenimente elementare ce reprezint activităţile


întreprinderii),

 operaţional (reprezinta nivelul cel mai de jos al deciziei in întreprindere),

 tactic (informaţiile obţinute reprezintă suportul de nivel intermediar al deciziei,


esenţiale in activitatea de control),

 strategic (suportul deciziei de nivel înalt pentru probleme complexe şi puţin


repetitive).

Funcţiile sistemelor informatice in procesele manageriale sunt: înregistrarea


tranzacţiilor, gestiunea şi stocarea operaţiilor, sprijinirea in luarea deciziilor si
comunicarea.

Subsistemele de înregistrare a tranzacţiilor sunt cele mai puternic automatizate,


deoarece aici s-au concentrat majoritatea aplicaţiilor informatice. Funcţiile esenţiale sunt
in acest caz:
 preluarea faptelor elementare,
 stocarea si gestiunea datelor componente in fişiere si baze de date.

2.5 Sistemul de management al informaţiilor (MIS)


Definiţie: Un sistem informatic care permite ca informaţia, sub forma rapoartelor
periodice, rapoartelor speciale sau rezultate din simulare, sa fie accesibila utilizatorilor de la
aceeaşi arie funcţionala, de la acelaşi nivel de management sau utilizatorilor, manageri sau
non-manageri care au aceleaşi cerinţe. MIS este o resursă organizaţională care furnizează
informaţii din trecut, prezent şi elaborează informaţii referitoare la evoluţii viitoare. A constituit
prima încercare de a face datele disponibile managementului, fiind introdus în anii 1960.

In contextul actual MIS este un subsistem al sistemului global de control al afacerii


ce acopera aplicatiile utilizatorilor, documente, tehnologii si proceduri utilizate de managerii
contabili pentru a solutiona probleme ale afacerii precum: costurile produsului, servicii sau
strategii de afacere.

Sistemele MIS sunt utilizate pentru a analiza alte sisteme de informatii aplicate in
activitatile operationale ale organizatiei. Termenul este folosit uzual pentru a se face referire
la grupuri de metode de managementul informatiei folosite pentru automatizarea sau suportul
uman in luarea deciziei.

La inceput, in afaceri sau in alte organizatii, rapoartele interne pe produse erau


facute manual si numai periodic, de sistemul contabil. Acestea aveau adaugiri statistice si
ofereau informatii limitate si intarziate sistemului de management. Apoi datele au fost
separate individual pe persoane, in functie de cerintele informatice individuale ale
departamentelor din care faceau parte. Mai tarziu s-a facut o distinctie intre date si informatii,
stocandu-se colectii mari de date in functie de cerintele organizatiei

9
4/10/2013

• Avantaje:
• Aduce contribuţii prin faptul că formează o resursă de management a informaţiei la nivel
organizaţional (arie functionala, manageri, etc)
• Asigură furnizarea continuă de informaţii către manageri pentru identificarea şi înţelegerea
problemelor.

• Modelul MIS:
Baza de date: Sistemul de informaţii intra-organizaţional:
- Date şi informaţii despre mediu - Modele matematice
- Software pentru elaborarea rapoartelor

Rezolvarea problemelor
organizaţiei

Software pentru
elaborarea rapoartelor Modele matematice

Baza de
date
Sistemul de Management
al Informaţiilor (MIS)

Mediu

Date Informaţii

Modelarea matematica
Modelele sunt abstracţii ce pot fi:
– statice sau dinamice
– deterministe sau probabilistice
– optimizatoare sau suboptimizatoare (vezi lab1)

Simularea - folosirea unui model este denumită simulare


- ‘Scenarii’ – condiţii care influentează modelul
- Variabilele de decizie sunt valorile de intrare
- Formatul de ieşire variază

Ieşirea grafica
Se folosesc grafice pentru:
– Prezentarea unui sumar rapid al datelor
– Detectarea unor tendinţe in timp
– Activităti de prognoză
– Se caută o impresie simpla asupra unui volum mare de date

Tipuri de grafice
– Linii sau bare pentru a rezuma datele
– Linii grupate sau bar charts pentru a ilustra tendinţa
– Bare chart grupate pentru reprezentarea parţilor ca un întreg
– Compararea variabilelor folosind bare orizontale nu verticale
– Linii simple sau bare chart pentru compararea datelor

10
4/10/2013

Software pentru elaborarea rapoartelor


Elaborează rapoartele periodice şi cele speciale pot avea aceeaşi structură,
diferenţa dintre ele constând in:
 Rapoartele periodice – produse conform programării
 Rapoarte speciale – produse când are loc un eveniment deosebit

I Incorporarea managementului excepţiilor


 Pregătirea rapoartelor numai când au loc excepţii
 Folosirea secvenţei rapoartelor pentru a scoate in evidenţă excepţiile
 Gruparea excepţiilor
 Prezentarea variaţiei faţă de normă

Exemple de rapoarte furnizate de sistem:

Raport de vânzări
pentru sfârşitul săptamânii

16-10 Receptii $ 2,305.00 $ 5,319.20


16-11 Inspectie $ 1,025.60 $ 4,386.12
16-12 Manipulari materiale $ 3,392.50 $12,629.00
16-13 Scule $ 78.00 $ 1,049.00
16-14 Asamblare $ 0.00 $ 792.80
16-15 Plating $ 3,504.90 $12,635.20
16-16 Livrare $ 5,219.16 $18,294.16

TOTAL: $15,525.16 $55,105.48

Vanzari pe produs
pentru luna iunie
NUMAR NUME VANZARI VANZARI
PRODUS PRODUS LUNA CURENTA Cumulate

129875 CUTIE CENTRU GASKET $ 5,090.23 $ 31,764.00


087235 AX PRINCIPAL 4,760.01 29,329.45
118320 AX 1 DE MISCARE 1,789.45 28,243.59
250067 GARNITURA ULEI 11,560.24 23,450.07
228203 REDUCTOR 8,369.34 14,709.03
576000 HUB 5 .00 13,623.68
516012 MANETA FURCA 450.95 12,634.44
090407 INEL DE SINCRONIZARE 2 2,243.27 9,963.58

282130 MANETA DE LEVIER .00 490.00


576301 GARNITURA POMPA ULEI .00 11.50

11
4/10/2013

GRAFIC DE LINII MULTIPLE GRAFIC TIP BARE GRUPATE


GRUPATE
Profit vanzari Profit vanzari
90
80
70
60
50
40
30
20
10
0
1980 1981 1982 1983 1984
Ani

Ani Apples Oranges Peanuts

GRAFIC CU SEGMENTE DE BARE DIVIZATE

Vânzări Beneficiu

200

150
Milioane dolari

100

50

0
1980 1981 1982 1983 1984
Legenda:
Ani Apples
Oranges
Peanuts

12
4/10/2013

2.6 Sisteme de suport in luarea deciziilor


Definitia unui Sistem de suport al deciziei (DSS)
Definitia (Gorry si Scott-Morton – 1971) – un DSS este un sistem interactiv bazat pe
calculator care ajuta in luarea deciziilor, utilizeaza date si modele pentru a rezolva
probleme nestructurate.
(Keen si Scott-Morton – 1978) - un sistem DSS cupleaza resursele intelectuale ale indivizilor
cu capabilitatile calculatorului pentru a imbunatati calitatea deciziei. Este un sistem bazat
pe calculator pentru, managementul luarii deciziilor, care este utilizat in probleme
semistructurate.

Definitie: un sistem ce furnizeza atat rezolvarea-problemelor cat si capabilitati de comunicare


pentru probleme semistructurate.

In particular – un sistem care suporta un singur manager sau un grup reltiv mic de manageri
care lucreaza in echipa pentru rezolvarea unei probleme semistructurate prin furnizarea
unor informatii sau facand sugestii cu privire la decizii specifice.
Luarea deciziei
Fazele (activitatile) in luarea deciziilor
 Inteligenta:
 Gaseste probleme, defineste problema (cauze, scopuri, restrictii)
 Proiectare
 Creeaza, inventeaza, deriveaza diferite solutii posibile
 Alegere
 Analizeaza alternative, alege, implementeaza
 Revizuire
 Examineaza rezultatele, revizue dupa caz.

Structurarea informatiilor
 La nivelul cel mai de jos in rezolvarea problemelor se gaseste extragerea elementelor
de informatie
 Pe nivelul superior se gaseste actiunea de scoaterea informatiilor din fisiere
 Realizarea unor rapoarte din fisiere multiple
 Sisteme care pot estima consecintele deciziilor
 Sisteme care pot propune decizii
 Si pe nivelul cel mai de sus sisteme care pot lua deciziii

Gradul de
suport in
rezolvarea
Scoaterea Analiza Pregatire Estimarea Propunere Luare problemelor
elementelor intregului rapoarte consecintelor decizii decizii
de fisier din fisiere deciziei
informatie multiple

Gradul de
complexitate in
Mic rezolvarea Mare
problemelor

13
4/10/2013

Tipuri de probleme

• O problema structurata consta din elemente si relatii intre elemente intelese de


rezolvitorul problemei. Problemele structurate pot fi rezolvate prin algoritmi si reguli
de decizie

• O problema nestructurata este una care nu contine elemente sau relatii intre
elemente care sa fie intelese de rezolvitor. Problemele nestructurate nu prezinta
activitati in luarea deciziei

• O problema semi-structurata este una care contine unele elemente si relatii care sunt
intelese de rezolvitor si unele nu. Problemele semi-structurate au faze structurate si
nestructurate

Tipuri de decizii
 Programate.
- repetitive si de rutina
- dupa o procedura definita, pusa la punct pentru rezolvare

 Neprogramate.
- noi, nestructurate si intr-o secventa neobisnuita.
- nu este o metoda stabilita de rezolvare
- necesita o modalitate particulara de abordare

Gradul de structurare a problemelor la diferite nivele


de management, dupa Gorry si Scott Morton

Nivele de management
Controlul Controlul Planificare
operatiilor managementului strategica

Contul de plati Bugetul de Structura


costuri analiza- productiei
Intrare ordine inginerie produs
Structurate Magazii si
Prognoza pe termen locatie fabrici
Controlul scurt
Gradul de inventarului
structurare a Semistructurate
problemelor Programarea Analiza variatiilor
productiei Aliante si achizitii
bugetului global

Managementul Planificare noi produse


Nestructurate Pregatire
lichiditatilor buget Planificare
Sisteme cercetare dezvoltare
Vanzari si
PERT/COST productie

14
4/10/2013

DSS se focalizeaza pe probleme semistructurate

Solutii gasite Manager + Calculator Solutie


de Solutie (DSS) manager
calculator

Structurate Semi-structurate Nestructurate

Gradul de structurare a problemei

 Functiile DSS

Dupa Keen (1978) sistemele DSS au evoluat din doua domenii principale de
cercetare:
- studiile teoretice privind luarea deciziilor in organizatii, facute la Carnegie Institute
of Technology intre anii 1950-1960
- studiile privind sistemele de calcul interactive facute la MIT in anii 1960. Se
considera ca sistemele DSS au devenit un domeniu independent de studiu la mijlocul
anilor 1970 si au crescut in intensitate in anii 1980.

In anii 1980 sistemele DSS au evoluat spre:


- sistemele EIS,
- DSS orientate pe un singur utilizator.
- sisteme suport in luarea deciziei in grup si sisteme de suport al deciziei la
nivel organizational.
- DSS pentru imbunatatirea eficientei manageriale si a activitatilor
profesionale
- statiilor de lucru inteligente.
Din punctul de vedere al obiectivelor sistemele DSS au evoluat de la: sisteme de
luarea deciziilor bazate pe calculator, la sisteme interactive de luarea deciziilor care
permitea utilizarea bazelor de date si modele pentru rezolvarea problemelor
nestructurate.

 Folosite pentru:
- Asistare in rezolvarea problemelor semistructurate
- Sa asiste managerul nu sa-l inlocuiasca
- Sa contribuie la luarea efectiva a deciziilor

15
4/10/2013

Caracteristici suplimentare au fost adaugate pentru a permite rezolvitorilor de probleme sa


lucreze in grup, asa numitul sistem de suport al deciziei in grup.

Tendintele recente au adaugat elemente de inteligenta artificiala si programarea analitica


online (OLAP).
Un model DSS

Mediu

Rezolvitori Alte
individuali grupuri
de probleme membre

Software
elaborare Modele DSS
GDSS
rapoarte matematice software
software

Baza de
date
Sistem de
suport al deciziilor

Mediu

Data Comunicatie Informatie


Legenda:

Tipuri de sisteme DSS:


- Sisteme care extrag fisiere
- Sisteme de analiza datelor
- Sisteme informatice de analiza
- Modele de contabilitate
- Modele de reprezentare
- Sisteme care optimizează
- Sisteme care sugerează decizii

16
4/10/2013

• Sisteme care extrag fişiere: sunt cele mai simple tipuri de DSS. Pot furniza accesul la unitati
de informatii, acestea conducand direct la luarea deciziei.
Ex: o maşina ATM. Se descoperă intîi balanţa contului şi apoi se decide suma care se
extrage
• Sistem de analiza datelor: furnizează accesul la date şi permite manipularea acestora.
Ex: Un sistem de rezervare a biletelor de avion. Nu mai sunt bilete, se găseşte o soluţie
alternativă, pe baza informaţiilor se face un plan de zbor.
• Sisteme informatice de analiză: furnizează accesul la multiple surse de date, combină datele
de la surse diferite şi are capabilităţi de analiză.
Ex: Compară creşterea profitului cu media industrială (necesită accesul la mai multe surse
de informaţii)
• Modele contabile: folosesc date contabile şi furnizează capabilitţi de modelare contabilă fără
a putea gestiona incertitudinile.
Ex: Pe baza listei de materiale calculează costurile de producţie, ia decizii asupra preţului.
• Model de reprezentare: foloseşte modele pentru a rezolva probleme de decizie, folosind
prognoza. Poate fi folosit pentru lărgirea capabilităţilor modelelor contabile şi pot încorpora
incertitudini.
Ex: Foloseşte datele privind cereerea de produse pentru a prognoza cererea anului următor.
Foloseşte rezultatele pentru a lua decizii de inventar.
• Sisteme de optimizare: sunt folosite pentru a estima efectele a diferite alternative de decizie
pe baza modelelor de optimizare şi pot încorpora incertitudini.
Ex: Asignează personalul de vînzări pe un anumit teritoriu. Asigură cea mai bună
programare relativ la un indice de performanţă.
• Sisteme de sugestii: folosesc un model descriptiv care poate fi utilizat pentru sugerarea celei
mai bune acţiuni sistemului de luarea deciziiilor. Au un model prescriptiv care poate fi folosit
pentru a sugereza sistemului cea mai bună acţiune şi pot încorpora un sistem expert.
Ex: Clenţii unei băci aplică pentru un împrumut. Se foloseşte sistemul pentru a recomanda o
decizie.

2.6 Sistemul informatic executiv (Executive Information


Systems – EIS)
O companie fără un EIS

Informaţii şi date din mediu

Manageri
de nivel înalt

Sistemul Sistemul Sistemul Sistemul


informatic de informatic de informatic informatic al
marketing fabricaţie contabil resurselor umane

Informaţii şi date din mediu

17
4/10/2013

O companie cu un sistem informatic executiv - EIS

Informaţii şi date din mediu

E I S

Sistemul Sistemul Sistemul Sistemul


informatic de informatic de informatic informatic al
marketing fabricaţie contabil resurselor umane

Informaţii şi date din mediu

Modelul unui sistem informatic EIS

Cereri de
informatii

Baza de
date Calculator
Afisare
executive informatie
Statie de lucru executiva
Catre Catre
alte statii alte statii
executive executive

Corporate
database
Face disponibila
Electronic informatia de la Noutati,
mailboxes
nivelul corporatiei explicatii
Software
library

Corporatie

Date si
informatii
externe

18
4/10/2013

2.7 Sisteme informatice de planificare

Evoluţia acestora a plecat de la metoda:

 controlului inventarului - Inventory Control (IC), prin care comanda unui lot era
lansată ori de cate ori cantitatea din inventar se reducea sub un nivel fixat, cunoscut
sub numele de punctul de lansare a comenzii.
 planificarea necesarului de materiale Material Requirements Planning (MRP), care
este caracterizată de un set de tehnici ce utilizează datele din lista de materiale şi
planul de productie pentru a calcula necesarul de materiale; se generează
recomandări de lansare sau replanificare a comenzilor la anumite intervale de timp şi
se reprogramează data la care este necesară satisfacerea comenzii, fără ca aceasta
să fie corelată cu data lansării comenzii. Sistemul MRP utilizează lista de materiale a
produselor din planul de producţie şi determină cantităţile necesare ale tuturor
componentelor si materialelor necesare pentru fabricaţia acelor produse, împreună
cu toate datele necesare, la fiecare increment de timp din orizontul considerat.
 planificarea necesarului de materiale II, (MRPII) este o metodă efectivă de planificare
a tuturor resurselor unei companii de fabricaţie. Aceasta implică planificarea
operaţională, cu capabilităţi de simulare de tip ce-se-întamplă-dacă.

Un astfel de sistem este constituit dintr-o varietate de funcţii, interconectate, ca de


exemplu: planificarea afacerii, planificarea operaţiilor şi a vânzărilor, planificarea
producţiei şi a sistemului de suport al execuţiei, etc.

Ieşirea sistemului este integrată cu rapoartele financiare, ca de exemplu planul de


afaceri, raportul achiziţiilor contractate, proiecţia cheltuielilor de transport, a
bugetului şi a inventarului.

MRPII este astfel o dezvoltare si extensie a MRP in buclă-închisă, care conduce spre
o utilizare mai eficienta a resurselor, o reducere a inventarului, micşorarea timpilor de
inactivitate, micşorarea strangulărilor in procesul de producţie, o îmbunătăţire a
planificării, o micşorare a timpilor de lansare a fabricaţiei şi flexibilitate în
programarea producţiei.
 Sistemul de Planificare al Întreprinderii, Enterprise Resource Planning (ERP) este un
sistem informatic orientat pe contabilitate, pentru identificarea şi planificarea pe scară
largă a resurselor necesare pentru a achiziţiona, produce, livra si contabiliza
comenzile clienţilor intr-o întreprindere de fabricaţie şi servicii distribuite.
Un sistem ERP diferă de sistemul MRPII prin cerinţe tehnice precum: necesitatea
unei interfeţe grafice utilizator, utilizarea bazelor de date relaţionale, utilizarea unui
limbaj de generaţia a patra si instrumente ale ingineriei software de asistare prin
calculator pentru dezvoltarea unei arhitecturi client/server, portabilă şi deschisă, a
sistemului.

Sinteza aplicatiilor software pentru planificarea fabricatiei

• IC – Inventory Control – Controlul inventarului


• Material Requirement Planning (MRP) – Sistemul de planificare a necesarului de
materiale
• Material Resource Planning II (MRPII) – Sistemul de planificare a resurselor
materiale II
• Enterprise Resource Planning (ERP) – Sistemul de planificare a resurselor
intreprinderii
O alta terminologie utilizata este: Money Resource Planning (MRPIII) – Planificarea
resurselor financiare III

19
4/10/2013

Definitia ERP: O solutie software proiectata in vederea satisfacerii cerintelor


intreprinderii, avand viziunea proceselor acesteia cu scopul satisfacerii obiectivelor prin
integrarea stransa a tuturor functiilor.

Ce este ERP:
• O modalitate de integrare pe scara
larga a sistemelor informatice ale
companiei
• Realizeaza nucleul activitatilor companiei
si creste gradul serviciilor catre client in
scopul cresterii imaginii companiei.

Ce integreaza ERP:
• Bazele de date
• Aplicatii
• Interfete
• Instrumente

De ce ERP:
• O integrare completa a sistemelor din cadrul departamentelor cat si a companiei ca
un ansamblu
• O solutie imbunatatita pentru managementul de proiect
• O servire imbunatatita a clientilor
• Introducerea tehnologiilor moderne
• Baze de date ce contin experienta in domeniu

Componentele principale:
• Vanzari si marketing
• Planul de productie
• Planificarea necesarului de materiale
• Planificarea capacitatilor necesare
• Lista de materiale
• Achizitii
• Controlul shop-floor (al productiei)
• Gestiunea conturilor de debite/creante
• Logistica

Probleme pe care le rezolva ERP:


• Imbunatatirea gestiunii materialelor Managementul lichiditatilor
• Problemele inventarului Probleme de calitate
• Imbunatatirea productivitatii Serviciul clientilor

20
4/10/2013

Integrarea sistemelor
informatice

Departamentul
central
Sisteme informatice
Fabricaţie Departamentul
Managementul proiectelor Marketing vânzări
Inventar
Comenzi locale, Achiziţii Vânzări, livrare, preţuri
verificare comenzi Vânzări Achiziţii mărfuri
Managementul inventarului Buget Managementul inventarului
Vanzari interne, Colectare lichidităţi Serviciul clienţi
livrare, preţuri
Analiză profit/pierdere
Utilizarea capacităţilor

21
4/10/2013

3. Aplicatii cu baze de date in sisteme de fabricatie


3.1 Structura unei baze de date
O baza de date este o colectie de date intre care exista relatii logice, proiectata pentru a
satisface necesitatile informationale ale unei organizatii si partajata de mai multi utilizatori si aplicatii.
Baza de date contine nu numai datele operationale ale organizatiei ci si o descriere a lor, fiind definita
din acest motiv si ca o colectie autodescrisa de inregistrari integrate (meta-data – date despre date).

Aplicatie 1 Baza de

DML date 1

Aplicatie 2 Baza de
DBMS
DML date 2
(Sistemul de
Utilizator management al
on-line
DML bazei de date)

Utilizator QL
on-line Baza de
DML date n

DDL
DBA
Nivel extern Nivel conceptual Nivel intern

DBMS este un sistem software generalizat pentru manipularea bazelor de date care permite utilizarea,
definirea, crearea si intretinerea bazei de date si accesul controlat la aceasta. Sistemul DBMS consta din elemente
de software care interactioneaza cu programele aplicatie utilizator si cu baza de date si permite urmatoarele
facilitati:

- Limbajul de definire a datelor (DDL) bazei de date. Este un limbaj descriptiv, care permite administratorului
DBA sau utilizatorului sa descrie si sa denumeasca entitatile cerute de aplicatie si relatiile care pot exista intre
entitati. Limbajul DDL permite specificarea tipurilor de date si a structurilor, precum si definirea modurilor de
vizualizare (reprezentari ale unor subseturi ale bazei de date).
- Limbajul de manipulare a datelor de catre utilizatorii on-line (DML). Un limbaj care asigura un set de
procedee ce permit operatii de baza pentru manipularea datelor continute in baza de date. Limbajul DML permite
utilizatorilor sa insereze noi date, sa modifice datele stocate, sa regaseasca datele continute in baza de date si sa
stearga date.
- Limbajul de interogare a continutului bazei de date (QL), ofera o facilitate de interogare a acestor date.

In functie de operatiile de extragere se pot deosebi doua tipuri de limbaje DML:


- procedurale (acestea specifica cum se va obtine rezultatul unei instructiuni DML)
- neprocedurale (descriu numai ce date vor fi obtinute). Cel mai obisnuit limbaj neprocedural
este limbajul structurat de interogare SQL.
Principala diferenta consta in faptul ca limbajele procedurale trateaza bazele de date inregistrare cu inregistrare, in
timp ce limbajele neprocedurale opereaza asupra unor seturi de inregistrari.

Sistemul DBMS are o vedere: - logica (schema si subschema datelor)


- fizica (metode de acces, clustere de date, limbajul de definire al datelor DDL,
limbajul de manipulare a datelor DML, utilitare: managementul tranzactiilor si
controlul concurentei accesului, integritatea datelor, recuperarea datelor in cazul
caderii sistemului si securitatea).

1
4/10/2013

Nivelul logic: Datele sunt structurate dupa o schema.


Schema datelor contine o descriere canonica a tipurilor de date ale aplicatiei, cu
atributele, relatiile si restrictiile lor. Schema datelor este un model static al structurii logice a bazei de
date. Baza de date este o instantiere a acestei scheme, fiind un model temporal al mediului pe care il
reprezinta.
O subschema sau o vedere este o schema adaptata pentru un grup de utilizatori.
Modelul datelor este o colectie integrata de concepte, necesare descrierii datelor, relatiilor dintre date si
a constrangerilor asupra datelor. Acesta cuprinde un set de notatii si concepte operationale pentru
expresiile schemei datelor si contine trei componente:
– o parte structurala (setul de reguli pe baza carora sunt construite bazele de date),
– o parte de manipulare (defineste tipuri de operatii care sunt permise asupra datelor),
– un set de reguli de integritate (care garanteaza ca datele sunt corecte).

Modelele clasice de reprezentare a datelor in bazele de date sunt:

– Modelul plat: Acest model este cel mai simplu model de reprezentare format dintr-un tabel cu doua
dimensiuni. Toate datele unei coloane se presupun a fi valori similare si toate valorile unui rand sunt in
relatii unele cu altele.
– Modelul ierarhic : datele sunt organizate intr-o structura de tip arbore, in care fiecare tabel “child” are o
singura tabela de tip “parent” si fiecare tabel de tip “parent” poate avea mai multe tabele de tip “child”. Se
utlizeaza concepte precum entitate, atribut si relatie. O entitate este un obiect abstract distinct, care va fi
reprezentat in baza de date. O colectie de entitati similare formeaza o multime de entitati. Un atribut este o
proprietate care descrie un anumit aspect al obiectului inregistrat. O relatie este o asociere (o conexiune)
intre doua sau mai multe seturi de entitati. Dezavantajul structurii ierarhice consta in faptul ca orice acces
trebuie sa se faca incepand de la nodul radacina.

– Modelul retea: datele reprezentate prin noduri numite inregistrari conectate prin legaturi etichetate. Spre
deosebire de modelul ierarhic, un tabel de tip “child” poate avea mai multe tabele de tip “parent”.

– Modelul relational: datele reprezentate prin tabele bidimensionale numite relatii si definite prin produsul
cartezian al atributelor lor. Este cel mai utilizat model datorita simplitatii si generalitatii, avand o baza
teoretica adecvata. Modelul relational are un singur concept de modelare a datelor care este relatia (un
tabel bi-dimensional in care sunt aranjate datele). Schema datelor este numele relatiei si multimea
atributelor acesteia (atributele se utilizeaza in ordinea standard).
Pe primul rand sunt atributele relatiei. Acestea sunt numele coloanelor relatiei. Intr-un model relational,
proiectarea bazei de date consta din una sau mai multe scheme si relatii, multimea acestora fiind denumita
schema bazei de date.

2
4/10/2013

Evolutia bazelor de date relationale:

- Modelul relational-obiect: este similar celui relational, dar schema datelor suporta in definirea obiectelor,
notiunile programarii pe obiecte si limbajul de interogare.

Tipurile de modele conceptuale de date sunt: Entitate-relatie


Semantic
Functional
Orientat spre obiecte

Schema bazei de date este structurata de administratorul bazei de date (DBA), dupa anumite
proceduri corespunzator metodologiei de proiectare logica a bazei de date.

Metodologiile de proiectare a bazei de date sunt:


– top-down – se defineste intai conceptual schema si apoi se determina subschema datelor
– bottom-up – este modelata mai intai subschema si apoi se integraza pentru a forma sche

Nivelul fizic: Aplicatii si utilizatori care acceseaza baza de date prin intermediul DBMS.
Este o interfata software intre programe externe sau utilizatori si date. Numai DBMS
are acces direct la date.
DBMS ofera accesul controlat la baza de date prin:

• sistemul de securitate, ce previne accesul la baza de date de utilizatori neautorizati


• sistemul de integritate, care mentine concordanta datelor stocate
• sistemul de control al concurentei, care permite accesul partajat
• sistemul de control al refacerii, care permite refacerea datelor ca urmare a unor defectiuni hardware sau
software (un catalog accesibil care contine descrieri ale datelor din baza de date).

Un obiectiv major il reprezinta asigurarea independentei de date (nivelurile superioare nu sunt


afectate de modificarile facute la cele inferioare). Exista doua tipuri de independenta de date:

- Logica – se refera la imunitatea schemelor externe fata de modificarile in schema conceptuala


- Fizica – se refera la imunitatea schemei conceptuale fata de modificarile in schema interna

O tranzactie reprezinta un set de actiuni elementare (inserare, stergere) asupra obiectelor ce contin
date.

3
4/10/2013

Vedere externa 1 Vedere externa 2

Nr_Personal Prenume Nume Varsta Salariu Nr_Personal Nume Nr_Filiala

Nivel
Nr_Personal Prenume Nume DDN Varsta Salariu Nr_Filiala
conceptual

Struct PERSONAL {
int Nr_Personal;
int Nr_Filiala;
int Varsta;
Nivel char Prenume[15];
intern char Nume [15]
struct data DDN;
float Salariu;
struct PERSONAL *next; /*Pointer la urmatoarea inregistrare
};
Index Nr_Personal; index Nr_Filiala; /* Defineste indexurile pentru personal */

Ciclul de viata al bazei de date

Ciclul de viata incorporeaza pasii care trebuie facuti in proiectarea schemei globale a bazei de date din
punct de vedere logic, alocarea datelor, definirea schemelor specifice DBMS.
Etapele proiectarii bazei de date sunt prezentate in figura 3.2:

1. Analiza cerintelor. Cerintele sunt determinate de proiectantii bazei de date pe baza analizei proceselor de
manipulare a informatiilor. Determinarea cerintelor implica:
- determinarea datelor necesare sistemului
- determinarea relatiilor dintre date
- alegerea platformei software pentru implementarea bazei de date

2. Proiectarea logica. Aceasta activitate implica proiectarea globala a schemei datelor, un model conceptual
al datelor, reprezentat sub forma de diagrame, care ilustreaza datele si relatiile dintre acestea. Se dezvolta
pe baza modelului: entitate-relatie (ER) sau UML. Metodologia de dezvoltare a schemei globale este
aceeasi atat pentru baze de date centralizate cat si pentru cele distribuite.

a) Modelarea conceptuala a datelor. Cerintele datelor sunt analizate si modelate folosind diagrame ER sau
UML, care includ semantica relatiilor optionale, relatii ternare, supertipuri, subtipuri. Procesarea cerintelor
este specificata in mod tipic pe baza limbajului natural sau prin comenzi SQL.

b) Integrarea vederilor. In cazul unor proiecte complexe in care sunt implicate mai multe persoane, analiza
cerintelor conduce spre vederi multiple. Pentru a elimina redundanta si inconsistenta modelului, aceste
vederi trebuie sa fie rationalizate si apoi consolidate intr-o singura vedere globala.

4
4/10/2013

Cerinţele informaţionale
Determinarea cerinţelor

Proiectarea logică
[vederi multiple]
Model Integrarea vederilor

[o singură vedere]

Transformă în tabele SQL

Normalizare

Proiectarea fizică

Selectează indecşi

[cerinţe speciale]
Denormalizare

[else] Implementare
Implementare
[else]

Monitorizare
[defunct]

Figura 3.2 Diagrama de activitati in proiectarea unei baze de date

c) Transformarea modelului conceptual in tabele SQL. Pe baza categoriilor de modele de date si a unui set
de reguli de mapare, fiecare relatie si entitatile asociate sunt transformate intr-un set de tabele relationale
specifice DBMS. Aceste transformari se fac in limbajul SQL.

d) Normalizarea tabelelor. Din diagramele modelului datelor sunt derivate dependentele functionale si din
analiza cerintelor se determina semantica relatiilor. Dependentele functionale se stabilesc intre elemente de
date ale entitatilor, care sunt identificate in mod unic prin chei. Relatiile functionale aditionale reprezinta
dependente intre atribute cheie si atribute care nu sunt cheie si sunt derivate din cerintele specificatiilor.
Tabelele relationale candidat asociate cu toate relatiile functionale derivate sunt normalizate. Prin
normalizare se intelege modificarea prin decompozitie sau splitarea tabelelor in tabele mai mici, folosind
tehnici standard. In final, redondantele privind datele din tabele sunt analizate pentru eliminarea acestora
fara a se afecta integritatea datelor.

3. Proiectarea fizica. Implica alegerea indecsilor (metode de acces), partitionari si impartirea datelor in
clustere. Denormalizarea consta in selectarea proceselor dominante prin frecventa tranzactiilor, a volumului
tranzactionat sau a prioritatii si definirea unor extensii mai simple la tabele cu scopul de a imbunatati
calitatea performantelor interogarilor.

4. Implementarea bazei de date, monitorizarea si modificari. Dupa ce baza de date este complet proiectata,
aceasta este creata prin implementarea schemei formale folosind limbajul DDL al DBMS. Limbajul DML
este folosit pentru interogarea si actualizarea bazei de date, cat si pentru fixarea indecsilor si a restrictiilor,
ca de pilda restrictiile de integritate. Limbajul SQL contine atat DDL cat si DML.

5
4/10/2013

1. Cerintele informationale

Products Salepersons

Customers Orders

2. Modelarea logica

a) proiectarea conceptuala

customer N orders N product

N N

served-by sold-by

1 salesperson
N

b) integrarea vederilor

customer 1 places N order

N
customer N order for
1 places

N
N
N

served-by 1 1 fills-out product


salesperson create table customer
(cust_no integer,
cust_name char(15),
cust_addr char(30),
c) transformarea modelelor conceptuale in tabele SQL sales_name char(15),
prod_no integer,
customer primary key (cust_no),
foreign key (sales_name)
cust_no cust_name cust_addr sales_name prod_no
references salesperson
foreign key (prod_no)
references product);
product order
prod_no prod_name qty_in_stock order_no sales_name cust_no prod_no

salesperson order-product

sales_name addr dept job_level vacantion_days order_no prod_no

6
4/10/2013

d) Normalizarea tabelelor SQL

Decompozitia tabelelor si actualizarea anomaliilor.

Salesperson Sales_vacantions

sales_name addr dept job_level job_level vacantion_days

Modelarea conceptuala a datelor

Acest proces reprezinta componenta de baza a proiectarii logice a bazei de date. Diagramele schemelor au
fost formalizate in 1960 de Charles Bachman. Acestea folosesc dreptunghiuri pentru a reprezenta tipul
inregistrarilor si sageti orientate de la un tip de inregistrare la altul, pentru a reprezenta o relatie “one-to-many”
intre instantele inregistrarilor celor doua tipuri. Metoda entitate-relatie (ER) pentru modelarea datelor a fost
introdusa in anul 1976 de Peter Chen. In acest formalism sunt utilizate dreptunghiuri pentru a specifica entitatile
si romburi pentru a reprezenta diferite tipuri de relatii care sunt diferentiate prin numere sau litere plasate pe
liniile de conexiune dintre romburi si dreptunghiuri. UML a fost introdus in anul 1997 de Grady Booch si James
Rumbaugh si a devenit un limbaj standard de reprezentare grafica pentru specificatiile si documentarea
proiectelor software complexe.

Modelul de tip entitate-relatie

Modelul ER este o reprezentare conceptuala abstracta a datelor, folosita ca metoda de modelarea bazelor de
date. Elementele pe baza cărora se construieşte modelul entitate-relaţie sunt trei clase de obiecte: entitatea,
relatiile si atributele.
- entitatea este un obiect despre care se doreşte a se stoca informaţie. Entităţile sunt concepte recunoscute,
concrete sau abstracte, care au relevanţă pentru baza de date.

In modelul relaţional o entitate este analogă unui tabel. Entităţile se clasifică în: independente (o entitate care nu se
bazează pe alta pentru a fi identificată) şi dependente sau slabe. O relaţie dependentă este aceea în care o entitate
depinde de alta pentru a fi identificată în mod unic. Tipurile speciale de entităţi sunt: entităţile asociative
(cunoscute şi sub numele de entităţi intersecţie) sunt entităţi folosite pentru a asocia două sau mai multe entităţi în
scopul de a stabili o relaţie “many-to-many”. Entităţile subtip sunt utilizate în ierarhii de generalizare pentru a
reprezenta o submulţime de instanţe ale entităţii părinte, numită supertip, având atribute şi relaţii care se aplică
numai submulţimii.
- atributul unei entităţi este o informaţie elementară care este ataşată acesteia pentru a o identifica sau descrie. O
instanţă particulară a unui atribut este valoarea. Atributele se reprezinta prin elipse (in care se trece numele
atributului), legate prin segmente de entitatile carora le apartin. Atributele se clasifica in:
- identificatori (sau chei)
- descriptori
Un identificator (sau cheie) al entităţii este format din unul sau mai multe atribute unice ale entităţii, astfel
încât fiecare valoare identifică în mod unic o instanta a entităţii.
Un descriptor (sau atribut care nu este cheie) este folosit pentru a specifica o caracteristica care nu este unica
a instantei particulare a entitatii.
Domeniul unui atribut este o colecţie de valori posibile pe care le poate avea atributul.
- relaţia reprezintă o asociere dintre două sau mai multe entităţi, fara a avea o existenta fizica ci doar cea
conceptuala definita intre respectivele entitati. O entitate poate avea o relaţie cu ea însăşi. Relaţiile se clasifică
după grad, conectivitate, cardinalitate şi existenţă. O relaţie binară recursivă are loc când o entitate este în relaţie
cu ea însăşi..

3.3.2 Gradul, conectivitatea, cardinalitatea si existenta relatiilor


Gradul unei relaţii este numărul de entităţi asociate cu aceea relaţie. Acesta poate fi N. Relatiile binare sau
ternare sunt cazuri particulare in care gradul relatiei este 2 si respectiv 3. Relaţiile binare sunt cele mai des
întâlnite.
Conectivitatea unei relaţii descrie modul în care se asociază instanţele entităţilor în relaţie. Valorile
conectivităţii sunt “one” sau “many”.

7
4/10/2013

Elementele modelului relational


Concept Reprezentare

entitate
Employee

entitate slaba Employee_job_history

relatie
Works-in

atribute:
emp_id
- identificator (cheie)
- descriptor emp_name
- descriptor multivaloare
degrees street
- descriptor complex
city
degrees
country

• Cardinalitatea unei relaţii indică numărul maxim de instanţe (una sau mai multe) în relaţia dintre entităţi.
Pentru a determina cardinalitatea unei relaţii, se determină dacă pot exista mai multe apariţii ale unei entităţi
pentru o apariţie a altei entităţi. Tipurile de bază pentru conectivitatea relaţiilor sunt: “one-to-one”, “one-to-
many” si “many-to-many”.
• Existenta optionala este definita printr-un zero pe linia de legatura dintre entitate si relatie si defineste
cardinalitatea 0.
• Rolul este numele unui capat al relatiei cand la fiecare din capete se utilizeaza un nume distinct care face
relatia sa fie mai clara in inteles.

Exemple ilustrative a unor relatii cu diferite grade si conectivitati

Grad Reprezentare Existenta Reprezentare


manager
1
binar-recursiv optional 1 1
employee manages is_mana
department employee
N ged_by
subordinate

N is_sub 1
binar department division mandatory N
unit_of 1 is_ocupi
office employee
ed_by

ternar N N
employee uses project

N
skill

Conectivitate Reprezentare

1 1
one-to-one department is_mana
employee
ged_by

1 N
department has employee
one-to-many

N works_ N
many-to- employee project
on
many

8
4/10/2013

1 1 Abbreviati 1 1
Report has-abbr is_manag
on Department Employee
ed_by

create table department


create table report (dept_no integer,
(report_no integer, dept_name char(20),
report_name varchar(256), mgr_id char(10) not null unique,
primary key(report_no); primary key (dept_no),
create table abbreviation foreign key (mgr_id) references employee
(abbr_no char(6), on delete set default on update cascade);
report_no integer not null unique, create table employee
primary key (abbr_no), (emp_id char(10),
foreign key (report_no) references report emp_name char(20),
on delete cascade on update cascade); primary key (emp_id));

1 1 1 N
Has
Engineer Desktop department has employee
allocated

create table engineer


(emp_id char(10), create table department
desktop_no integer, (dept_no integer,
primary key (emp_id)); dept_name char(20),
create table desktop primary key (dept_no));
(desktop_no integer, create table employee
emp_id char(10), (emp_id char(10),
primary key (desktop_no), emp_name char(20),
foreign key (emp_id) references engineer dept_no integer not null,
on delete set null on update cascade); primary key (emp_id),
foreign key (dept_no) references department
on delete set default on update cascade);

1 N
Department Report N Belongs N
publishes engineer
-to Prof-assoc

create table department create table engineer


(dept_no integer, (emp_id char(10),
dept_name char(20), primary key (emp_id));
primary key (dept_no)); create table prof_assoc
create table report (assoc_name varchar(256),
(report_no integer, primary key (assoc_name));
dept_no integer, create table belongs_to
primary key (report_no), (emp_id char(10),
foreign key (dept_no) references department assoc_name varchar(256),
on delete set null on update cascade); primary key (emp_id, assoc_name),
foreign key (emp_id) references engineer
on delete cascade on update cascade,
foreign key (assoc_name) references prof_assoc
1 on delete cascade on update cascade);
is-group-
engineer
leader-of
N

create table engineer


(emp_id char(10),
leader_id char(10) not null,
primary key (emp_id),
foreign key (leader_id) references engineer
on delete set default on update cascade);

9
4/10/2013

3.3.3 Generalizari, supertipuri si subtipuri

Relatia de generalizare specifica faptul ca mai multe tipuri de entitati cu anumite atribute comune pot fi
generalizate la un nivel mai inalt al tipului de entitate (numita generic entitate superclasa – supertype entity).
Nivelul inferior al entitatii (subtype intr-o ierarhie de generalizare) poate fi fie disjuncta sau cu submultimi
suprapuse ale entitatii supertype. In figura de mai jos se prezinta doua exemple de generalizari: cu subtipuri
disjuncte si cu subtipuri cu suprapunere si constrangeri complete.

individual
employee supertype

o
d subtypes

employee customer
manager engineer technician maintenance

3.3.4 Agregarea

Agregarea este o forma de abstractizare intre o entitate supertip si una subtip, diferita de generalizare.
Astfel daca generalizarea este descrisa printr-o relatie caracterizata de termenul “ este-o” intre o entitate subtip si
una supertip, agregarea este o relatie dintre “intreg” si “partile componente” si este descrisa de termenul “ face-
parte din”. Un exemplu este prezentat in urmatoarea diagrama.

software_product

program documentation

3.3.4 Relatii ternare si relatiile functionale corespunzatoare

Relatiile ternare sunt utilizate cand relatiile binare nu descriu suficient de precis semantica asocierilor
dintre trei entitati. Conectivitatea fiecarei entitati poate fi descrisa fie de “one” fie de “many”. Exemple:

1 uses_ Un inginer foloseste exact un


1
engineer noteb project notebook pentru fiecare
ook proiect. Fiecare notebook
1 apartine unui inginer pentru
notebook fiecare proiect. Un inginer
poate lucra la mai multe
proiecte dar are notebook-uri
Dependentele functionale in relatia ternara diferite pentru diferite
“one-to-one-to-one” : proiecte.

eng_id,project_name -> notebook_no


eng_id,notebook_no-> project_name
project_name, notebook_no-> eng_id

10
4/10/2013

1 Assign N N skill_u N
proiect employee Fiecare “employee” asignat la employee project
ed_to sed
un proiect lucreaza numai
1 intr-o “location” pentru acel N
“project”, dar poate fi in
location skill
“location” diferite pentru
diferite “project”. La o
Dependentele functionale in relatia “location” particulara pot fi
ternara “one-to-one-to-many”: mai multi “employee” Mai multi “employee” pot
asignati la un “project” dat. folosi mai multe “skill”
emp_id, loc_name -> project_name pentru fiecare din mai multe
emp_id, project_name-> loc_name “project” si fiecare “project”
are mai multi “employee cu
diferite “skill”.

Dependentele functionale in relatia


ternara “many-to-many-to-many” :

1 manag N Nu sunt!
manager engineer Un “engineer” care lucreaza
es
cu un manager, poate lucra la
N mai multe “project”. Un
project
proiect, sub conducerea unui
manager poate avea mai multi
muncitori. Un “engineer” care
Dependentele functionale in relatia lucreaza la un “project”
ternara “one-to-many-to-many” : trebuie sa aiba numai un
singur manager..
project_name, emp_id -> mngr_id

Exemple: 1. 1
division

contains

department
1 1

has is_mana is_head


ged_by ed_by
1
skill
1
N 1
N 1
N skill_ N
employee
project used
N
1 N
manages
assigned d
_to

N
manager secretary engineer technician
location 1 1 1 N

is_alloc is_allo has_all belongs


ated cated ocated _to

1 1 1 N

desktop workstation prof_association

11
4/10/2013

Constrangeri de integritate, redondanta datelor, normalizarea

Constrangerile de integritate – sunt reguli care restrang valorile care pot fi prezente in baza de date.

É Integritatea datelor inseamna asigurarea consistentei si satisfacerea regulilor referitoare la


constrangeri. Acestea se clasifica in:

- integritatea entitatii – Randurile sau t-uplele dintr-o relatie reprezinta entitati si fiecare din ele trebuie sa fie
identificate in mod unic. Astfel cheile primare trebuie sa aiba o valoare unica, nenula pentru fiecare rand.
- integritatea referentiala – Aceasta restrictie se refera la cheile straine. Relatiile se stabilesc prin intermediul
cheilor straine si este esential ca legaturile sa fie corecte. O cheie straina poate fi nula sau valoarea sa trebuie sa
fie aceeasi cu valoarea cheiei din celalalt capat al relatiei.

É Redondanta datelor:

- directa: daca datele se pot gasi in doua locuri diferite apartinand aceleasi baze de date.
- indirecta: daca datele sunt calculate folosindu-se date din locuri diferite ale aceleasi baze de date
Daca exista redondanta intr-o baza de date aceasta creaza probleme in operarea cu baza de date la inserarea
datelor (datele trebuie multiplicate in fiecare loc in care apar versiunile redondante), la actualizarea datelor
(toate datele redondante trebuie actualizate simultan pentru a reflecta schimbarea respectiva).

É Normalizarea trebuie sa elimine redondanta, pastrand integritatea datelor.


Transformarea datelor dintr-o problema intr-o relatie cu asigurarea integritatii datelor si eliminarea
redondantelor poarta numele de normalizare

Normalizarea
Definitie: Transformarea datelor dintr-o problema in relatii cu asigurarea integritatii datelor si eliminarea
redondantelor poarta numele de normalizare.

Daca exista redondanta intr-o baza de date aceasta creaza probleme in operarea cu baza de date la inserarea
datelor (datele trebuie multiplicate in fiecare loc in care apar versiunile redondante), la actualizarea datelor
(toate datele redondante trebuie actualizate simultan pentru a reflecta schimbarea respectiva).

Forme normale:
Datele din baza de date pot fi considerate a fi in una din urmatoarele forme normale:

–Forma normala 1 (1NF)


–Forma normala 2 (2NF)
–Forma normala 3 (3NF)
–Forma normala Boyce-Codd (BCNF)
–Mai sunt sunt si alte forme dupa BCNF care se utilizeaza mai rar.
Intelegerea cerintelor datelor unei probleme se realizeaza prin scrierea dependentelor functionale ce
caracterizeaza relatiile dintre ele.
O dependenta functionala este formata de doua liste de atribute separata de o sageata. Fiind date valorile
din partea stanga, acestea identifica in mod unic un singur set de valori pentru atributele din partea dreapta.

Fie relatia: R(matric_no, firstname, surname, tutor_no, tutor_name)


si dependenta functionala: tutor_no  tutor_name
Semnificatia: dat un tutor_no acesta identifica in mod unic un tutor_name

12
4/10/2013

Reguli de Inferenta (axiomele lui Armstrong)

1. Reflexivitatea - Daca Y este o submultime a atributelor lui X atunci X  Y

Ex. X este ABCD si Y este ABC, atunci X  Y.


Cazul banal: X  X

2. Augmentarea - Daca X  Y si Z este o submultime a tabelului R, atunci XZ  YZ.

3. Tranzitivitatea - Daca XY si YZ, atunci XZ.

Reguli care rezulta din axiomele de mai sus.

4. Pseudotranzitivitatea - Daca XY si YWZ, atunci XWZ.

5. Uniun ea - Daca XY si XZ, atunci XYZ.

6. Decompozitia - Daca XYZ, atunci XY and XZ.

Exemplu de normalizare a relatiilor bazei de date

Se considera relatia: Student(matric_no,name, date_of_birth, (subject, grade))

Student

13
4/10/2013

Forma normala 1 (1NF)

Forma normala 1 (1NF) este determinata de forma inregistrarii. O relatie este in 1NF daca si numai
daca aceasta nu contine atribute sau grupuri de atribute care se repeta (fiecare coloana poate avea numai
o singura valoare pentru fiecare rand al tabelului).

De exemplu tabelul Student cu grupurile care se repeta este un tabel nenormalizat. Pentru a inlatura
grupurile care se repeta fie:

A) se face tabelul plat si se extinde cheia sau


B) se descompune relatia, conducand la forma normala 1.

A) Tabelul Student cu grupurile care se repeta poate fi aplatizat, modificand relatia ca in Student2:
Student2(matric_no, name, date_of_birth, subject, grade)
Aceasta forma nu mai are grupuri repetitive dar are redondanta: pentru fiecare combinatie
matric_no/subject, se replica name si date of birth. Aceasta poate conduce la erori in operatiile de
inserare, actualizare si stergere:

- la inserare, subject fiind cheie primara, nu se poate adauga un student pana ce acesta nu are cel putin
un subject (deoarece cheia primara nu poate fi nula!);
- la actualizare, prin schimbarea numelui studentului se cauta toate randurile din baza de date in care
exista studentul si se schimba fiecare din ele separat;
- stergerea de exemplu a informatiei subject conduce la stergerea matric_no.

Student2
matric_no name date_of_birth subject grade
960100 Smith, J 14/11/1977 Databases C
960100 Smith, J 14/11/1977 Soft_Dev A
960100 Smith, J 14/11/1977 ISDE D
960105 White, A 10/05/1975 Soft_Dev B
960105 White, A 10/05/1975 ISDE B
960120 Moore, T 11/03/1970 Databases A
960120 Moore, T 11/03/1970 Soft_Dev B
960120 Moore, T 11/03/1970 Workshop C
960145 Smith, J 09/01/1972 Databases B
960150 Black, D 21/08/1973 Databases B
960150 Black, D 21/08/1973 Soft_Dev D
960150 Black, D 21/08/1973 ISDE C
960150 Black, D 21/08/1973 Workshop B

B) Solutia alternativa este de a imparti tabelul in doua tabele (splitare): unul care sa contina
grupurile care se repeta si unul care sa contina grupurile care nu sunt repetitive. Cheia primara a
relatiei originale este inclusa in ambele relatii noi.

14
4/10/2013

Student Record
matric_no name date_of_birth matric_no subject grade
960100 Smith,J 14/11/1977 960100 Databases C
960105 White,A 10/05/1975 960100 Soft_Dev A
960120 Moore,T 11/03/1970 960100 ISDE D
960145 Smith,J 09/01/1972 960105 Soft_Dev B
960150 Black,D 21/08/1973 960105 ISDE B
... ... ...
960150 Workshop B

Se obtin doua relatii Student si Record:

Student(matric_no, name, date_of_birth)


Record(matric_no, subject, grade)

care contin grupurile repetitive si nerepetitive. Relatia Student are grupul repetitiv si cheia matric_no.

Aceasta versiune a relatiilor nu prezinta anomalii de inserare, actualizare sau stergere si spunem ca este
in Forma Normala 1.

Forma normala 2 (2NF)

O relatie este in forma 2NF daca si numai daca este in forma normala 1NF si fiecare atribut care
nu este cheie este complet functional dependent de intreaga cheie.

Astfel, relatia este in forma 1NF fara grupuri repetitive si toate atributele care nu sunt cheie
trebuie sa depinda de intreaga cheie, nu doar de o parte a ei. Altfel spus, nu trebuie sa existe
dependente partiale de cheie. Problemele apar cand cheia este compusa (de exemplu in relatia
Record, cheia compusa matric_no, subject). In acest caz este posibil ca atributele care nu sunt chei sa
depinda numai de o parte a cheii (de exemplu numai de una din chei). Acest lucru incearca sa previna
forma 2NF.

Daca se considera relatia Student din tabelul plat Student2:

Student2(matric_no, name, date_of_birth, subject, grade)

avem o cheie compusa, astfel ca trebuie sa verificam toate atributele care nu sunt cheie, fata de
fiecare din cheile primare pentru a ne asigura ca sunt functional dependente de ele.

Astfel:

matric_no  name (A), matric_no  date_of_birth (A), matric_no grade (F).


(subject, matric_no)  grade (A), (subject, matric_no)  name (F)
(subject, matric_no)  date_of_birth (F).

Acestea sunt probleme cu potential de redondante. Diagrama dependentelor este urmatoarea:

15
4/10/2013

matric_no name date_of_birth subject grade

Aceasta relatie nu este in forma 2NF, aparand ca doua tabele puse intr-unul singur. Solutia este
de a separa relatia in partile componente. Se separa toate atributele care sunt dependente numai de
matric_no si se pun intr-o noua relatie Student_details, cu matric_no cheie primara. Se separa toate
atributele care depind numai de subject (in acest caz nici unul in atribute nu depinde de subject). Se
separa toate atributele care depind numai de matric_no + subject si se pun intr-o relatie separata
Student cu cheia primara compusa din matric_no + subject.

Student_details matric_no name date_of_birth

matric_no subject grade


Student

Toate atributele din fiecare relatie sunt complet dependente functional de cheia primara. Aceste
relatii sunt acum in forma 2NF. Este interesant de observat ca setul de relatii este acelasi cu cel in
care s-au observat grupurile repetitive.

Forma normala 3 (3NF)

3NF este o forma normala mai stricta si inlatura virtual toate redondantele datelor. O relatie este
in 3NF daca si numai daca nu sunt dependente functionale tranzitive. Dependentele functionale
tranzitive au loc cand:
- un atribut care nu este cheie este functional dependent de alt atribut non-cheie.
FD: atribut-non-cheie  atribut-non-cheie si cand nu sunt redondante in baza de date. Prin
definitie dependentele functionale tranzitive pot avea loc numai daca sunt mai mult de un camp non-
cheie, asa incat putem spune ca o relatie 2NF cu zero sau un camp non-cheie trebuie automat sa fie
3NF.
project_no manager address

p1 Black,B 32 High Street


p2 Smith,J 11 New Street
p3 Black,B 32 High Street
p4 Black,B 32 High Street

Relatia Project are mai mult de un camp non-cheie asa incat trebuie verificate dependentele
functionale tranzitive. Atributul address depinde de valoarea manager. Din tabel se poate propune
relatia:
Project(project_no, manager, address)
cu dependenta functionala: manager  address.
In acest caz address este tranzitiv dependenta functional de manager. Cheia primara este
project_no, dar nici membrul stang nici cel drept din relatia de dependenta nu fac referire la aceasta.
Redondanta datelor provine din faptul ca se dubleaza atributul address daca manager are o valoare
identica pentru mai multe proiecte. Daca trebuie schimbata valoarea address aceasta trebuie facuta in
mai multe intrari, putand conduce la erori.

16
4/10/2013

Pentru eliminarea dependentelor functionale tranzitive se poate imparti tabelul astfel incat:
- sa se creeze doua relatii – una cu dependenta tranzitiva si alta pentru atributele care raman.
- se imparte relatia Project in relatiile: Project si Manager

Atributul determinant devine cheie primara in noua relatie – Manager devine cheie primara in
relatia Manager. Cheia originala este cheia primara a atributelor non-tranzitive ramase – in acest caz
project_no ramane cheia noii tabele Project.

Acum trebuie sa stocam address numai o data. Daca trebuie sa cunoastem adresa managerului
putem cauta in relatia manager. Atributul manager este legatura intre cele doua tabele si in tabelul
Project este acum cheia primara. Aceste relatii sunt acum in forma 3NF.

Project project_no manager Manager manager address


p1 Black,B
Black,B 32 High Street
p2 Smith,J
p3 Black,B Smith,J 11 New Street
p4 Black,B

In concluzie:
pentru ca relatia R(a,b,c,d) cu cd sa fie in forma 3NF aceasta se transforma in:
R(a,b,c)
R1(c,d)

Boyce-Codd Normal Form (BCNF)

Cand o relatie are mai mult de o cheie candidat, pot rezulta anomalii chiar daca relatia este in
3NF. Forma 3NF nu rezolva satisfacator cazul unei relatii cu suprapunerea cheilor candidat. De
exemplu cazul cheilor candidat compuse cu cel putin un atribut in comun. BCNF se bazeaza pe
conceptul determinantului. Un determinant este un atribut (simplu sau compus) pe baza caruia alte
atribute sunt complet functional dependente.
O relatie este in forma BCNF daca si numai daca orice determinant este un candidat de cheie.
Baza teoretica a metodei este urmatoarea:

Fie urmatoarele relatii si determinanti:


R(a,b,c,d)
a,b  c,d
a,d  b

Pentru a fi o forma BCNF, toti determinantii valizi trebuie sa fie candidat de cheie.
In relatia R,
a,bc,d este determinantul folosit, astfel incat primul determinant este bun.
a,db sugereaza ca a,d pot fi chei primare, ceea ce ar determina pe b, dar nu ar determina
pe c. Acesta nu este un candidat de cheie si in concluzie relatia R nu este BCNF.
Fie exemplul:
Patno PatName appNo Time doctor

1 John 0 09:00 Zarra


2 Kerr 0 09:00 Kate
3 Adam 1 10:00 Zarra
4 Robert 0 13:00 Kate
5 Zane 1 14:00 Zarra

17
4/10/2013

DB(Patno,PatName,appNo,Time,doctor)
Determinanti:
– Patno  PatName
– Patno,appNo  Time,doctor
– Time  appNo
Sunt posibile doua selectii de chei pentru forma 1NF
- DB(Patno,PatName,appNo,Time,doctor) (exemplul 1a)
- DB(Patno,PatName,appNo,Time,doctor) (exemplul 1b)

Exemplul 1a

DB(Patno,PatName,appNo,Time,doctor)
Nu sunt grupuri repetitive deci este in forma 1NF
2NF – se elimina dependentele partiale de cheie:
DB(Patno,appNo,Time,doctor)
R1(Patno,PatName)

3NF – nu sunt dependente tranzitive astfel incat forma este 3NF


In continuare se aplica BCNF. Fiecare determinant este un candidat de cheie.

DB(Patno,appNo,Time,doctor)
R1(Patno,PatName)

Este determinantul o cheie?


Patno  PatName
Patno este prezent in DB, dar nu PatName, asa incat este irelevant.

DB(Patno,appNo,Time,doctor)
R1(Patno,PatName)

Patno,appNo  Time,doctor

Sunt prezente in membrul drept si stang toate atributele deci este relevanta. Este un candidat de
cheie?
Patno,appNo este cheia, astfel incat este o cheie candidat.
Time  appNo Time este prezent si la fel appNo, deci este relevanta. Este o
cheie? Daca ar fi atunci am putea rescrie DB ca:

DB(Patno,appNo,Time,doctor)

Nu ar merge deoarece avem nevoie de Time si Patno impreuna pentru a forma o cheie unica.
Deci acest determinant nu este o cheie si DB nu este o forma BCNF.
Considerand din nou relatiile:

DB(Patno,appNo,Time,doctor),
R1(Patno,PatName)

pentru forma BCNF acestea se rescriu:


DB(Patno,Time,doctor)
R1(Patno,PatName)
R2(Time,appNo)

In aceasta varianta Time este suficient sa lucreze cu appNo corespunzator pacientului. Forma
BNCF este astfel satisfacuta acesta fiind rezultatul final.

18
4/10/2013

Exemplul 1b:

DB(Patno,PatName,appNo,Time,doctor)

Nu sunt grupuri repetitive deci este o forma 1NF


Pentru forma 2NF se elimina dependentele partiale de cheie:

– DB(Patno,Time,doctor)
– R1(Patno,PatName)
– R2(Time,appNo)

3NF – nu sunt dependente tranzitorii deci este o forma 3NF

In continuare se incearca forma BCNF. Pentru aceasta fiecare determinant este un candidat de
cheie. Este determinantul un candidat de cheie? Avem dependentele functionale:

Patno  PatName - Patno este prezent in DB, dar nu PatName astfel incat este
irelevanta.
Patno,appNo  Time,doctor - Lipsesc atribute in membrul stang deci, nu este relevanta.
Time  appNo - Time este prezent dar nu appNo, astfel incat este irelevanta.

Relatiile sunt in BCNF.

Exemplul a demonstrat urmatoarele:

• Relatia BCNF este mai puternica decat 3NF (relatiile care sunt 3NF nu sunt necesar in BCNF.
• BCNF este necesara in unele situatii pentru o intelegere completa a modelului datelor.
• Sunt mai multe cai prin care sa se ajunga la acelasi set de relatii in BCNF.

Din pacate nu sunt reguli care sa determine care este cea mai simpla cale de a ajunge la rezultat.

Exemplul 2.

Grade_report(StudNo,StudName,(Major,Adviser,(CourseNo,Ctitle,InstrucName,InstructLocn,Grade)))

Dependente functionale:

StudNo  StudName
CourseNo  Ctitle, InstrucName
InstrucName  InstrucLocn
StudNo, CourseNo, Major  Grade
StudNo, Major  Advisor
Advisor  Major

Nenormalizata:
Grade_report(StudNo,StudName,(Major,Advisor, (CourseNo,Ctitle,InstrucName,InstructLocn,Grade)))
1NF

Student(StudNo, StudName)
StudMajor(StudNo, Major, Advisor)
StudCourse(StudNo, Major, CourseNo, Ctitle, InstrucName, InstructLocn,Grade)

19
4/10/2013

- 1NF inlatura grupurile repetitive


Student(StudNo, StudName)
StudMajor(StudNo, Major,Advisor)
StudCourse(StudNo, Major, CourseNo, Ctitle, InstrucName, InstructLocn, Grade)

- 2NF inlatura dependentele partiale de cheie


Student(StudNo, StudName)
StudMajor(StudNo, Major, Advisor)
StudCourse(StudNo, Major, CourseNo, Grade)
Course(CourseNo, Ctitle, InstrucName, InstructLocn)

- 3NF Inlatura dependentele tranzitive


Student(StudNo, StudName)
StudMajor(StudNo, Major, Advisor)
StudCourse(StudNo, Major, CourseNo, Grade)
Course(CourseNo, Ctitle, InstrucName)
Instructor(InstructName, InstructLocn)

• BCNF Fiecare determinant este un candidat de cheie


– Student: singurul determinant este StudNo
– StudCourse: singurul determinant este StudNo,Major,CourseNo
– Course: singurul determinant este CourseNo
– Instructor: singurul determinant este InstrucName
– StudMajor: determinantii sunt:
• StudNo,Major, or
• Advisor
Numai StudNo,Major este un candidat de cheie.

- BCNF

Student(StudNo, StudName)
StudCourse(StudNo, Major, CourseNo, Grade)
Course(CourseNo, Ctitle, InstrucName)
Instructor(InstructName, InstructLocn)
StudMajor(StudNo, Advisor)
Adviser(Advisor, Major)

Fie tabelul

StudNo Major Advisor

123 PHYSICS EINSTEIN


123 MUSIC MOZART
456 BIOLOGY DARWIN
789 PHYSICS BOHR
999 PHYSICS EINSTEIN

Forma BCNF rezolva urmatoarele probleme:


- Daca inregistrarea 456 este stearsa se pierd informatii nu numai despre studentul 456 dar si despre
faptul ca DARWIN este advisor la BIOLOGY
- Nu putem inregistra faptul ca WATSON poate fi advisor in COMPUTING pana ce nu avem un student
care sa fie la COMPUTING si caruia sa-i fie asignat WATSON ca advisor.

20
4/10/2013

Se imparte tabelul in doua tabele in forma BCNF.

Student Advisor Advisor Major

123 EINSTEIN EINSTEIN PHYSICS


123 MOZART
MOZART MUSIC
456 DARWIN
DARWIN BIOLOGY
789 BOHR
BOHR PHYSICS
999 EINSTEIN

Legatura cu modelul relational

Sa comparam rezultatul obtinut in urma normalizarii cu modelul ER original. Modelul original poate fi
modificat pentru a tine cont de schimbarile care au avut loc in timpul procesului de normalizare. Diagrama ER
trebuie sa reflecte perfect modelul ce urmeaza a fi implementat. Schimbarile necesare depind de cat de bun
a fost modelul initial.

3.4 Limbajul SQL


SQL este un limbaj de interogare structurat, folosit pentru a interactiona cu DBMS. Acest limbaj este
standardizat ISO si are la baza algebra relationala.

Limbajul SQL permite:


– Crearea de scheme in DBMS
– Modificarea schemei sdatelor
– Adaugare date
– Modificare date
– Accesul la date

SQL este un sub limbaj de date (Data Sub Language – DSL), deoarece este o combinatie a doua limbaje:
– DDL – Data Definition Language
– DML – Data Manipulation Language

Pentrua prezentarea comenzilor SQL se va folosi o baza de date, formata din doua tabele: CAR si DRIVER.
Fiecare masina poate fi detinuta de un sofer. Un sofer poate avea mai multe masini.

21
4/10/2013

MAKE

REGNO COLOUR

NAME

1 N
DRIVER PRICE
drives CAR
DOB

OWNER

DRIVER CAR

NAME DOB REGNO MAKE COLOUR PRICE OWNER

Jim Smith 11 Jan 1980 F611 AAA FORD RED 12000 Jim Smith

Bob Smith 23 Mar 1981 J111 BBB SKODA BLUE 11000 Jim Smith

Bob Jones 3 Dec 1986 A155 BDE MERCEDES BLUE 22000 Bob Smith
K555 GHT FIAT GREEN 6000 Bob Jones
SC04 BFE SMART BLUE 13000

• Fiecare coloana are date de un anumit tip: intreg, sir, zecimal.


– Integer, string, decimal, etc.
– Intervalul valorilor poate fi o constrangere.
– Daca o coloana dintr-un rand nu contine date, continutul este NULL.
– Fiecare rand trebuie sa difere de celelalte intr-un anumit fel
– Uneori un rand este denumit o t-upla.
– Cardinalitatea este numarul de randuri dintr-un tabel.

Chei primare

• In exemplu sunt definite chei primare. O cheie primara este un grup de una sau mai multe coloane, care
atunci cand sunt considerate impreuna identifica in mod unic o inregistrare in tabel. Nici o parte a cheiei
primare nu poate fi NULL. In exemplul considerat:

– Tabelul DRIVER are cheia primara NAME


– Tabelul CAR are cheia primara REGNO

In cazul primului tabel utilizarea cheiei NAME inseamna ca nu exista doi soferi care sa aiba acelasi nume.
Atentie, in alte aplicatii daca pot fi doua nume identice, atunci nu mai poate fi considerata cheie primara
NAME!.

22
4/10/2013

Integritatea referentiala

• Se observa ca este o legatura intre CAR si DRIVER via OWNER. Daca este o valoare in OWNER, atunci
aceasta trebuie sa apara undeva in DRIVER. Daca se schimba numele in DRIVER, trebuie sa fie facuta
aceeasi schimbare in OWNER din CAR.
• DBMS intareste regulile.
• Daca se incearca nerespectarea regulii DBMS raporteaza problema ca o eroare de integritate referentiala
(REFERENTIAL INTEGRITY ERROR).

Comenzile de baza SQL


Comenzile de baza SQL sunt:

– CREATE – creaza o structura de date


– SELECT – citeste unul sau mai multe randuri din tabel
– INSERT – insereaza unul sau mai multe randuri in tabel
– DELETE – sterge unul sau mai multe randuri din tabel
– UPDATE – schimba valorile intr-un rand
– DROP – sterge o structura de date

Exemple ale comenzii SELECT


SELECT column FROM tablename
• SELECT column1,column2,column3 FROM tablename
• SELECT * FROM tablename
• SELECT * FROM CAR;

REGNO MAKE COLOUR PRICE OWNER


F611 AAA FORD RED 12000 Jim Smith
J111 BBB SKODA BLUE 11000 Jim Smith
A155 BDE MERCEDES BLUE 22000 Bob Smith
K555 GHT FIAT GREEN 6000 Bob Jones
SC04 BFE SMART BLUE 13000

SELECT regno FROM CAR; SELECT colour,owner FROM CAR;

REGNO COLOUR OWNER


F611 AAA RED Jim Smith
J111 BBB BLUE Jim Smith
A155 BDE BLUE Bob Smith
K555 GHT GREEN Bob Jones
SC04 BFE BLUE

23
4/10/2013

Formatarea comenzilor

• Caracterele SPACE si NEWLINE nu conteaza


• O practica indicata este sa se puna ; la sfarsitul interogarii.
• Tipul caracterelor nu conteaza daca nu sunt intre ghilimele simple.
• Ambele comenzi de mai jos sunt valide

SELECT REGNO FROM CAR;


SElecT regno
From Car
;

Comentarii

• Sunt utile pentru a face comentarii in comanda.


• Comentariile nu sunt executate
• Comentariul incepe cu -- si se termina cu linie noua
• Comentariile sunt permise numai in interogare.

Ex:
SELECT regno -- The registration number
FROM car -- The car storage table

Filtre de selectie
• Pot fi folosite reguli in interogare
• Aceste reguli sunt testate pentru fiecare rand produs de interogare
• Daca regula este adevarata, atunci randul este afisat; daca este falsa, randul nu este afisat
• Regula incepe cu WHERE
Ex:
SELECT columns
FROM table
WHERE rule

• O regula simpla poate fi selectia unei masini cu culoarea rosie (RED).


• Regula va fi colour = 'RED'
Ex:
SELECT regno FROM CAR SELECT regno FROM CAR
WHERE colour = 'RED'
REGNO
REGNO
F611 AAA
F611 AAA
J111 BBB
A155 BDE
K555 GHT
SC04 BFE

24
4/10/2013

Comparatii

• Comparatiile valide include: =,!=,<>,<,<=,>,>=


– Colour = ‘RED’ Culoarea trebuie sa fie RED
– Colour != ‘RED’ Culoarea nu este RED
– Colour <> ‘Red’ La fel ca mai sus
– Price > 10000 Mai mare ca 10000
– Price >= 10000 Mai mare sau egal cu10000
– Price < 10000 Mai mic decat 10000
– Price <=10000 Mai mic sau egal cu 10000
• Numerele se pot scrie ‘10000’ sau 10000. Sirurile sunt totdeauna scrise intre ghilimele simple.

Date calendaristice

• Compararea datelor calendaristice poate creea probleme


• Se pot utiliza aceiasi operatori si pentru date calendaristice.
Ex:

SELECT name,dob SELECT name,dob from driver


from driver where DOB = ‘3 Dec 1986’

NAME DOB NAME DOB

Jim Smith 11 Jan 1980 Bob Jones 3 Dec 1986

Bob Smith 23 Mar 1981

Bob Jones 3 Dec 1986

Datele calendaristice sunt considerate de valoare mai mare cu cat sunt in viitorul mai indepartat.
Astfel, DATE1>DATE2 indica DATE1 in viitor dupa DATE2.

SELECT name,dob from driver NAME DOB


WHERE DOB >= ‘1 Jan 1981’
Bob Jones 23 Mar 1981
Bob Smith 3 Dec 1986

25
4/10/2013

Sintaxa datelor calendaristice

• Trebuie sa fie intre apostrof


• Fiecare DBMS utilizeaza datele intr-un mod propriu
• De exemplu ‘1 Jan 2003’ este scris corect.
• Oracle permite date in format ‘1-Jan-2003’ si de asemenea scrise: ‘1-Jan-03’
• Trebuie totdeauna specificata o zi si o lun, altfel DBMS va indica eroare.

BETWEEN

• Uneori se doreste testarea valorii uni camp daca se gaseste intre doua date calendaristice.
Acest lucru se face cu BETWEEN.
Ex: Gasiti toti soferii nascuti intre 1995 si 1999
SELECT name,dob from driver
WHERE DOB between ‘1 Jan 1985’ and ’31 Dec 1999’
• Between se foloseste si pentru alte tipuri de date:

SELECT regno from CAR


where price between 5000 and 10000;

NULL

• NULL indica ca ceva nu are nici o valoare


• Nu este o valoare si deci nu poate fi utilizat cu operatori de comparatie.
Ex:
Gresit: SELECT regno from car where owner = NULL
Gresit: SELECT regno from car where owner = ‘NULL’

• Sunt in schimb operatori speciali: IS NULL si IS NOT NULL

SELECT regno from car REGNO


WHERE OWNER is null
SC04 BFE

REGNO

SELECT regno from car F611 AAA


WHERE OWNER is not null J111 BBB
A155 BDE
K555 GHT
SC04 BFE

26
4/10/2013

LIKE

• Cateodata sunt dorite reguli care implica siruri partiale, subsiruri sau wildcards
• LIKE face acest lucru, fiind un inlocuitor pentru ‘=‘
• Daca sirul contine ‘%’ sau ‘_’, LIKE le foloseste ca suport pentru wildcards.
– % - inlocuieste 0 sau mai multe caractere din sir
– _ - inlocuieste numai un caracter din sir
Exemple:

• Name LIKE ‘Jim Smith’ e.g. Jim Smith


• Name LIKE ‘_im Smith’ e.g. Tim Smith
• Name LIKE ‘___ Smith’ e.g. Bob Smith
• Name LIKE ‘% Smith’ e.g. Frank Smith
• Name LIKE ‘% S%’ e.g. Brian Smart
• Name LIKE ‘Bob %’ e.g. Bob Martin
• Name LIKE ‘%’ i.e. match anyone

• LIKE face mai mult ca =


• Daca nu se folosesc wildcards, atunci mai bine folositi = decat LIKE.

Operatori Logici
• Permit combinarea regulilor intr-un singur WHERE
• AND si OR permit acest lucru
• NOT permite modificarea comportamentului regulii Exemplu:

SELECT regno from car SELECT regno from car SELECT regno from car
where colour = ‘BLUE’ WHERE regno LIKE ‘%5%’ WHERE colour = ‘BLUE’ and
regno LIKE ‘%5%’;

REGNO REGNO REGNO

J111 BBB A155 BDE A155 BDE

A155 BDE K555 GHT

SC04 BFE

Reguli AND multiple

SELECT regno
FROM car REGNO
WHERE colour = ‘BLUE’
AND regno like ‘%5%’ A155 BDE
AND owner like ‘Bob %’

27
4/10/2013

OR
Exemplu:
REGNO COLOUR
SELECT regno,colour from CAR
WHERE colour = ‘RED’ OR colour = ‘BLUE’ A155 BDE BLUE
F611 AAA RED
J111 BBB BLUE

NOT SC04 BFE BLUE

• NOT inverseaza regula in fata careia este pus


• De exemplu: WHERE colour = ‘RED’
• Poate fi inversata:
– WHERE colour != ‘RED’
– WHERE NOT colour = ‘RED’

Precedenta
• Precedence este ordinea in care regulile sunt evaluate.
• Aceasta nu este in ordinea in care sunt scrise!
• Regulile sunt grupate impreuna la inceput de AND, apoi OR si in final de NOT.
• Exemplu : Masina care are 5 in reg si este fie red sau blue.

SELECT regno,colour from car


WHERE colour = ‘RED’ -- Line 1
OR colour = ‘BLUE’ -- Line 2
AND regno LIKE ‘%5%’ -- Line 3

Paranteze
• Poate fi mai clar:
SELECT regno,colour from car
WHERE ( colour = ‘RED’ OR colour = ‘BLUE’ )
AND regno LIKE ‘%5%’

DISTINCT

Exemplu: Gasiti toate culorile folosite la masini.

SELECT colour from car; SELECT DISTINCT colour from car;

COLOUR COLOUR
RED RED
BLUE BLUE
BLUE GREEN
GREEN
BLUE

28
4/10/2013

ORDER BY

• Ordonarea ascendenta este implicita


SELECT make from car; SELECT make from car SELECT make from car
ORDER BY make; ORDER BY make DESC;

MAKE MAKE MAKE


FORD FIAT SMART
SKODA FORD SKODA
MERCEDES MERCEDES
MERCEDES
FIAT
SKODA FORD
SMART
SMART FIAT

Ordonarea multi-coloana MAKE COLOUR

MERCEDES BLUE
SELECT make,colour FROM car
SKODA BLUE
ORDER BY colour,make;
SMART BLUE
FIAT GREEN

FORD RED

IN

• Cand este o lista de OR, toate asupra aceluiasi atribut, atunci IN poate fi o modalitate mai
simpla.

• Decat:
SELECT regno,make FROM car
WHERE make = ‘SKODA’ or make = ‘SMART’

• Se poate utiliza:
SELECT regno,make FROM car
WHERE make in (‘SKODA’,’SMART’);

Agregarea functiilor
• Agregaarea functiilor permite scrierea interogarilor care produc calcule statistice asupra
datelor din baza de date.
• Aceste functii sunt denumite functii SET si includ:
– AVG
– SUM
– MAX
– MIN
– COUNT

29
4/10/2013

Exemple: SELECT price FROM car; SELECT avg(price) FROM car;

PRICE
AVG(PRICE)
12000
12800
11000
22000
6000
13000

SELECT sum(price) FROM car;


SELECT max(price) FROM car;
SELECT min(price) FROM car;
SELECT count(price) FROM car;
SELECT count(colour) from car;
SELECT count(DISTINCT colour) from car;

GROUP BY
• Agregarea functiilor s-a facut doar in interogari cu o singura agregare in linia SELECT, dar se
pot combina functii si non-functii in linia SELECT prin GROUP BY.
Exemplu:
• Intrebare: Care este cea mai scumpa masina pentru fiecare culoare.
• Intuitive ar parea ca varianta de mai jos este corecta, dar nu va fi executata!
SELECT colour,max(price)
FROM car;

SELECT colour,price SELECT colour,max(price)


FROM car; FROM car
GROUP BY colour;

COLOUR PRICE COLOUR PRICE

RED 12000 RED 12000

BLUE 11000 BLUE 22000

BLUE 22000 GREEN 6000

GREEN 6000
BLUE 13000

30
4/10/2013

HAVING

• WHILE permite reguli pentru fiecare rand.


• HAVING permite reguli pentru fiecare grup din GROUP BY.

Exemplu: Cine are mai mult de o masina?.

• Aceasta s-ar spune:


SELECT owner from car where count(owner) > 1

• Functii agregate nu sunt permise in WHERE.


• Ele sunt permise in HAVING.

SELECT owner,count(regno)
FROM car
GROUP BY owner
HAVING count(regno) > 1
OR
SELECT owner
FROM car
GROUP BY owner
HAVING count(regno) > 1

count(*) se poate folosi de asemenea in acest caz.

SQL – JOIN si VIEW


Surse multiple de tabele

Deseori este necesara folosirea mai multor tabele. O metoda este de a lista toate tabelele dorite in linia
FROM, dar DBMS va trebui sa stie cum sa alature tabelele.

Conditii JOIN
SELECT * from driver; SELECT * from car;

NAME DOB REGNO MAKE COLOUR PRICE OWNER

Jim Smith 11 Jan 1980 F611 AAA FORD RED 12000 Jim Smith

Bob Smith 23 Mar 1981 J111 BBB SKODA BLUE 11000 Jim Smith
Bob Jones 3 Dec 1986 A155 BDE MERCEDES BLUE 22000 Bob Smith

K555 GHT FIAT GREEN 6000 Bob Jones

SC04 BFE SMART BLUE 13000

31
4/10/2013

SELECT *
FROM car,driver

REGNO MAKE COLOUR PRICE OWNER NAME DOB

F611 AAA FORD RED 12000 Jim Smith Jim Smith 11 Jan 1980
J111 BBB SKODA BLUE 11000 Jim Smith Jim Smith 11 Jan 1980
A155 BDE MERCEDES BLUE 22000 Bob Smith Jim Smith 11 Jan 1980
K555 GHT FIAT GREEN 6000 Bob Jones Jim Smith 11 Jan 1980
SC04 BFE SMART BLUE 13000 Jim Smith 11 Jan 1980
F611 AAA FORD RED 12000 Jim Smith Bob Smith 23 Mar 1981
J111 BBB SKODA BLUE 11000 Jim Smith Bob Smith 23 Mar 1981
A155 BDE MERCEDES BLUE 22000 Bob Smith Bob Smith 23 Mar 1981
K555 GHT FIAT GREEN 6000 Bob Jones Bob Smith 23 Mar 1981
SC04 BFE SMART BLUE 13000 Bob Smith 23 Mar 1981
F611 AAA FORD RED 12000 Jim Smith Bob Jones 3 Dec 1986
J111 BBB SKODA BLUE 11000 Jim Smith Bob Jones 3 Dec 1986
A155 BDE MERCEDES BLUE 22000 Bob Smith Bob Jones 3 Dec 1986
K555 GHT FIAT GREEN 6000 Bob Jones Bob Jones 3 Dec 1986
SC04 BFE SMART BLUE 13000 Bob Jones 3 Dec 1986

FOREIGN KEY link

REGNO MAKE COLOUR PRICE OWNER NAME DOB


F611 AAA FORD RED 12000 Jim Smith Jim Smith 11 Jan 1980
J111 BBB SKODA BLUE 11000 Jim Smith Jim Smith 11 Jan 1980
A155 BDE MERCEDES BLUE 22000 Bob Smith Jim Smith 11 Jan 1980
K555 GHT FIAT GREEN 6000 Bob Jones Jim Smith 11 Jan 1980
SC04 BFE SMART BLUE 13000 Jim Smith 11 Jan 1980
F611 AAA FORD RED 12000 Jim Smith Bob Smith 23 Mar 1981
J111 BBB SKODA BLUE 11000 Jim Smith Bob Smith 23 Mar 1981

A155 BDE MERCEDES BLUE 22000 Bob Smith Bob Smith 23 Mar 1981
K555 GHT FIAT GREEN 6000 Bob Jones Bob Smith 23 Mar 1981
SC04 BFE SMART BLUE 13000 Bob Smith 23 Mar 1981
F611 AAA FORD RED 12000 Jim Smith Bob Jones 3 Dec 1986
J111 BBB SKODA BLUE 11000 Jim Smith Bob Jones 3 Dec 1986
A155 BDE MERCEDES BLUE 22000 Bob Smith Bob Jones 3 Dec 1986
K555 GHT FIAT GREEN 6000 Bob Jones Bob Jones 3 Dec 1986
SC04 BFE SMART BLUE 13000 Bob Jones 3 Dec 1986

32
4/10/2013

Traditional JOIN

SELECT *
FROM car,driver
WHERE owner = name;

REGNO MAKE COLOUR PRICE OWNER NAME DOB


F611 AAA FORD RED 12000 Jim Smith Jim Smith 11 Jan 1980
J111 BBB SKODA BLUE 11000 Jim Smith Jim Smith 11 Jan 1980
A155 BDE MERCEDES BLUE 22000 Bob Smith Bob Smith 23 Mar 1981
K555 GHT FIAT GREEN 6000 Bob Jones Bob Jones 3 Dec 1986

Cu ajutorul lui JOIN

SELECT *
FROM car JOIN driver ON ( owner = name );

REGNO MAKE COLOUR PRICE OWNER NAME DOB


F611 AAA FORD RED 12000 Jim Smith Jim Smith 11 Jan 1980
J111 BBB SKODA BLUE 11000 Jim Smith Jim Smith 11 Jan 1980
A155 BDE MERCEDES BLUE 22000 Bob Smith Bob Smith 23 Mar 1981
K555 GHT FIAT GREEN 6000 Bob Jones Bob Jones 3 Dec 1986

OUTER JOIN

• Sa consideralm ultima linie a unui join fara constrangeri…


REGNO MAKE COLOUR PRICE OWNER NAME DOB
SC04 BFE SMART BLUE 13000 Bob Jones 3 Dec 1986

• Este o masina fara un proprietar.


• Cateodata se doreste sa se vada randurile care nu satisfac conditia JOIN din cauza campurilor
NULL.
• Pentru a vedea NULL in JOIN se foloseste OUTER JOIN.
• Deci JOIN care a fost discutat este cunoscut ca INNER JOIN.
• Astfel OUTER JOIN forteaza toate liniile sa apara in rezultat.
• Sunt unele variante ale OUTER JOIN, care depind de care randuri dorim sa le pastram.
• Se considera:
FROM car JOIN driver on (driver = name)

To the RIGHT of the JOIN

To the LEFT of the JOIN


• Daca dorim toate randurile in CAR sa apara in raspuns trebuie folosit LEFT OUTER JOIN
• Daca dorim toate randurile in DRIVER sa apara in raspuns trebuie folosit RIGHT OUTER
JOIN

33
4/10/2013

• In exemplu, OWNER este NULL in tabela CAR.


• CAR este la stanga cuvantului JOIN
• Ne trebuie LEFT OUTER JOIN (care este scris LEFT JOIN).

SELECT *
FROM car LEFT JOIN driver ON ( owner = name )
;

REGNO MAKE COLOUR PRICE OWNER NAME DOB


F611 AAA FORD RED 12000 Jim Smith Jim Smith 11 Jan 1980
J111 BBB SKODA BLUE 11000 Jim Smith Jim Smith 11 Jan 1980
A155 BDE MERCEDES BLUE 22000 Bob Smith Bob Smith 23 Mar 1981
K555 GHT FIAT GREEN 6000 Bob Jones Bob Jones 3 Dec 1986
SC04 BFE SMART BLUE 13000

FULL OUTER JOIN


• Cu LEFT OUTER join, se tin toate randurile de la stanga.
• Cu RIGHT OUTER join, se tin toate randurile de la dreapta..
• Daca se doreste tinerea randurilor de la ambele capete se utilizeaza FULL OUTER join, cunoscut ca
FULL JOIN.
• Sa consideram un nou rand in DRIVER, David Davis, care nu are nici o masina.

NAME DOB
Jim Smith 11 Jan 1980
Bob Smith 23 Mar 1981
Bob Jones 3 Dec 1986
David Davis 1 Oct 1975

LEFT

SELECT *
FROM car LEFT JOIN driver ON ( owner = name )
;

REGNO MAKE COLOUR PRICE OWNER NAME DOB


F611 AAA FORD RED 12000 Jim Smith Jim Smith 11 Jan 1980
J111 BBB SKODA BLUE 11000 Jim Smith Jim Smith 11 Jan 1980
A155 BDE MERCEDES BLUE 22000 Bob Smith Bob Smith 23 Mar 1981
K555 GHT FIAT GREEN 6000 Bob Jones Bob Jones 3 Dec 1986
SC04 BFE SMART BLUE 13000

34
4/10/2013

Right

SELECT *
FROM car RIGHT JOIN driver ON ( owner = name )
;

REGNO MAKE COLOUR PRICE OWNER NAME DOB


F611 AAA FORD RED 12000 Jim Smith Jim Smith 11 Jan 1980
J111 BBB SKODA BLUE 11000 Jim Smith Jim Smith 11 Jan 1980
A155 BDE MERCEDES BLUE 22000 Bob Smith Bob Smith 23 Mar 1981
K555 GHT FIAT GREEN 6000 Bob Jones Bob Jones 3 Dec 1986
David Davis 1 Oct 1975

Example: Full

SELECT *
FROM car FULL JOIN driver ON ( owner = name )
;

REGNO MAKE COLOUR PRICE OWNER NAME DOB


F611 AAA FORD RED 12000 Jim Smith Jim Smith 11 Jan 1980
J111 BBB SKODA BLUE 11000 Jim Smith Jim Smith 11 Jan 1980
A155 BDE MERCEDES BLUE 22000 Bob Smith Bob Smith 23 Mar 1981
K555 GHT FIAT GREEN 6000 Bob Jones Bob Jones 3 Dec 1986
SC04 BFE SMART BLUE 13000
David Davis 1 Oct 1975

Numele
• Cateodata coloana nume poate fi ambigua daca de exemplu se face referire la doua tabele,
ambele avand o coloana NAME:

SELECT name from ALPHA,BRAVO;

• Aceasta interogare esueaza din motivele aratate, dar se poate rezolva prin:

SELECT alpha.name from ALPHA,BRAVO;

35
4/10/2013

• In unele cazuri este incomod a se repeta denumiri lungi de tabele.


• SQL permite redenumirea tabelelor pe durata interogarii.
• Se pune noul nume imediat dupa numele tabelului in FROM, separat de spatiu.
• In loc de:
SELECT car.owner FROM car;
• Se poate scrie:
SELECT c.owner FROM car c;
• Aceasta se poate folosi si cu JOIN.

SELECT c.regno, c.owner, d.dob


FROM car c JOIN driver d on (c.owner = d.name)

Selfjoin

• Un selfjoin, sau un echi JOIN apare atunci cand acelasi tabel este folosit de doua ori intr-o
linie FROM.
• Se indica necesitatea utilizarii unei singure tabele in doua moduri simultan.
• Se considera intrebarea: “Cine conduce o masina de aceeasi culoare cu a lui Bob Smith?

SELECT colour FROM car WHERE owner = ‘Bob Smith’; Colour


BLUE

SELECT owner FROM car


owner
WHERE colour = ‘BLUE’
Jim Smith
AND owner != ‘Bob Smith’
AND owner IS NOT NULL;

SELECT other.owner
owner
FROM car bobsmith, car other
Jim Smith
WHERE bobsmith.colour = other.colour -- 1
AND bobsmith.owner = ‘Bob Smith’ -- 2
AND bobsmith.owner != other.owner -- 3
AND other.owner IS NOT NULL -- 4
;

36
4/10/2013

VIEWS
• VIEWS este pentru baza de date ce este subrutina intr-un limbaj de programare.
• Aceasta permite sa se pastreze o interogare in baza de date, astfel incat sa putem s-o accesam
la un moment ulterior prin nume.
• Cand se scrie o interogare, acestea se trateaza ca tabelele, prin nume,.
• Nu toate implementarile SQL suporta VIEW; MySQL nu suporta VIEW.
• Sa presupunem ca scriem o interogare care sa ne spuna cati soferi si cate masini
sunt in baza de date.
• Se pot scrie separat…

SELECT count(*) from DRIVER;


SELECT count(*) from CAR;

• Sunt doua interogari si dorim sa facem intr-o singura interogare. Sa stocam cele
doua interogari in doua vederi diferite.

CREATE VIEW count1 (total) AS select count(*) from driver;


CREATE VIEW count2 (total) AS select count(*) from car;

Select * from count1; Total


3

Select * from count2;


Total
5

Select count1.total,count2.total Total Total


from count1,count2;
3 5

Stergerea unei vederi

Vederea se poate sterge cu comanda DROP VIEW.


• De exemplu

DROP VIEW count1;

DROP VIEW count2;

37
4/10/2013

Subqueries

• Subquery – o declaratie select in interiorul alteia


• Folosita in clauze WHERE
• Subqueries pot returna mai multe randuri
• Subqueries pot returna numai o coloana.
• Folosite ca un inlocuitor pentru view sau selfjoin.
• Principalul inconvenient, pot fi mai lente decat selfjoin sau view.
Exemple:
• Cine din baza de date este mai in varsta decat Jim Smith?

SELECT dob FROM driver WHERE name = ‘Jim Smith’;

Dob
11 Jan 1980

SELECT name FROM driver WHERE dob > ’11 Jan 1980’;

name
Bob Smith
Bob Jones

• Combinate:

SELECT name
FROM driver
WHERE dob > (SELECT dob
FROM driver
WHERE name = ‘Jim Smith’)
;

• Aceasta solutie va functiona daca este doar 1 Jim Smith.

ANY and ALL


• Pentru a suporta subqueries care returneaza mai mult de 1 rand sunt necesari operatorii
aditionali ANY si ALL.
• ANY – schimba regula astfel incat aceasta trebuie sa fie adevarata pentru macar unul din
randurile returnate de subquery.
• ALL – schimba regula astfel incat aceasta trebuie sa fie adevarata pentru fiecare si oricare din
randurile returnate de subquery.

• Operatorii ANY sau ALL se folosesc imediat inaintea parantezei deschise a subquery.

38
4/10/2013

Examplu 1:
• Ce masina este de aceeasi culoare ca masina detinuta de Jim Smith?

Jim detine 2 masini, una este RED si cealalta BLUE. Cautam masini care sunt fie
RED fie BLUE.

SELECT regno FROM car


WHERE colour = ANY ( SELECT colour
FROM car
WHERE owner = ‘Jim Smith’
);

Exemplu 2:
• Listati soferii mai tineri decat toti soferii care detin o masina albastra.
• Se cauta varsta soferilor care detin o masina BLUE si se listeaza soferii care sunt mai tineri
decat toate aceste varste.

SELECT name,dob FROM driver


WHERE dob < ALL (
SELECT dob
FROM car JOIN driver ON (owner=name)
WHERE colour = ‘BLUE’
);

IN and NOT IN
• O subquery returneaza rezultatul ca o multime.
• Astfel putem utiliza IN si NOT IN in subqueries.

• Intrebare: Care masini au aceeasi culoare ca masina lui Jim Smith?

SELECT regno FROM car


WHERE colour IN (SELECT colour FROM car
WHERE owner = ‘Jim Smith’);

Exemplu cu NOT IN

• Intrebare: Care masini nu au aceeasi culoare ca masina lui Jim Smith?

SELECT regno FROM car


WHERE colour NOT IN (SELECT colour FROM car
WHERE owner = ‘Jim Smith’)

39
4/10/2013

EXISTS

• Daca o intrebare implica descoperirea unor unicitati, atunci este probabil sa fie mai usor
rezolvata cu operatorii EXISTS sau NOT EXISTS.
• Operatorul EXISTS testeaza rezultatul unei subquery, si daca este returnat cel putin un rand
este TRUE, altfel este FALSE.
• Operatorul NOT EXISTS este opusul lui EXISTS.

• Exemplu:
• Intrebare: Listati culorile care sunt folosite o singura data in baza de date.

SELECT colour
FROM car a
WHERE exists (
SELECT colour -- The row does not matter
FROM car b -- unique name from a
WHERE a.colour = b.colour -- Same colour as a
AND a.regno != b.regno -- Different car from a
);

UNION
• Cate odata doua sau mai multe interogari produc acelasi rand si se doreste
combinarea rezultatelor intr-unul singur.
• UNION face aceasta si permite alaturarea unor selectii diferite.
• UNION automat scoate randurile duplicate.

• Pentru exemplul urmator presupunem ca un rand a fost adaugat in tabela DRIVER.


Acest rand contine inregistrarea David Davis, dar proprietarul nu detine nici o
masina.
• Intrebare: Listati toti soferii din tabela DRIVER, impreuna cu cate masini detin.

SELECT name,count(*)
FROM driver JOIN car on (name = owner)

NAME Count(*)
Jim Smith 2
Bob Smith 1
Bob Jones 1

David Davis lipseste deoarece nu satisface conditia din JOIN.

40
4/10/2013

• Scrieti o interogare numai pentru David Davis…

SELECT name,0
FROM driver
WHERE name NOT IN (select owner from car)

NAME
David Davis 0

Legati cele doua interogari impreuna:

SELECT name,count(*)
FROM driver JOIN car on (name = owner) NAME Count(*)
UNION Jim Smith 2
SELECT name,0 Bob Smith 1
FROM driver
Bob Jones 1
WHERE name
David Davis 0
NOT IN (select owner
from car)

Modificatori ai datelor
• Alti operatori utili sunt:
– INSERT
– DELETE
– UPDATE
INSERT
INSERT INTO table_name
[(column_list)] VALUES (value_list)

column_list poate fi omisa daca fiecarei coloane i se va asigna o valoare, altfel


trebuie listate coloanele carora li se vor asigna valori.value_list este o multime de
valori literale ce dau valoarea fiecarei coloane in aceeasi ordine ca column_list,
daca sunt specificate sau cum sunt coloanele definite in CREATE TABLE.
Ex:
insert into driver
values (‘Jessie James’,’31 Nov 1892’);
insert into driver (name,dob)
values (‘John Johnstone’,’1 Aug 1996’);

41
4/10/2013

DELETE

DELETE FROM table_name [WHERE condition];

Randurile table_name care satisfac conditia sunt sterse.

• Exemple:
DELETE FROM car; -- Delete all rows from CAR
;
DELETE FROM car
WHERE owner is null -- Delete rows for cars without owners;

UPDATE
UPDATE table_name
SET column_name = expression,{column_name=expression}
[WHERE condition]

Set all BLUE cars to GREEN


UPDATE car SET colour = ‘GREEN’
WHERE colour = ‘BLUE’

Add VAT/Purchase Tax at 17.5% to all prices


UPDATE car SET price = price * 1.175

CREATE TABLE
• A Tipuri de date:
– INTEGER
– REAL
– DECIMAL : Including DECIMAL(5) and DECIMAL(4,2)
– VARCHAR
– CHAR : Pads out strings with spaces
– DATE
Sintaxa:

CREATE TABLE tablename (


colname type optionalinfo
,colname type optionalinfo
,other optional info
);

• Optionalinfo pot fi
– O INTEGER REFERENCES b(c)
– PRIMARY KEY
– NOT NULL

42
4/10/2013

• Alte optional info de la sfarsitul definitiei tind sa fie reguli cu impact asupra a mai mult de un atribut:
– PRIMARY KEY (col1,col2,…)
– FOREIGN KEY (col1,col2,…) REFERENCES othertable

CREATE table driver (


name varchar(30) PRIMARY KEY,
dob date IS NOT NULL
);
CREATE TABLE car (
regno varchar(8) PRIMARY KEY
,make varchar(20)
,colour varchar(30)
,price decimal(8,2)
,owner varchar(30) references driver(name)
);
CREATE table driver (
name varchar(30)
,dob date IS NOT NULL
,PRIMARY KEY (name)
);

CREATE TABLE car (


regno varchar(8)
,make varchar(20)
,colour varchar(30)
,price decimal(8,2)
,owner varchar(30)
,FOREIGN KEY(owner) references driver(name)
,PRIMARY KEY(regno)
);

DROP TABLE
• Pentru stergerea tabelei se foloseste DROP TABLE.
– DROP TABLE tablename
• Dificultatea principala la stergerea tabelului consta in integritatea referentiala. Tabelul CAR
se refera la DRIVER deci trebuie sters intai CAR si apoi DRIVER. Daca se face invers
DBMS va raporta eroare.

DROP TABLE car;


DROP TABLE driver;

43
4/10/2013

Modificarea tabelului
• Pentru a schimba o tabela care exista se foloseste MODIFY TABLE.
• Aceasta este o comanda complexa cu multe optiuni.
• Un exemplu simplu este de a adauga un camp de adresa la tabela DRIVER.

ALTER TABLE driver ADD address varchar(50)

Ordinea evaluarii in SELECT

SELECT [DISTINCT] column_name 5,6 elimina datele nedorite


FROM label_list 1 Produsul Cartezian
[WHERE condition ] 2 elimina randuri nedorite
[GROUP BY column_list 3 grupeaza randuri
[HAVING condition ]] 4 elimina grupuri nedorite
[ORDER BY column_list[DESC]] 7 sorteaza randuri

Ultimele patru componente sunt optionale

44
4/10/2013

Data mining
Data Mining este o tehnologie noua ce vizeaza descoperirea cunostintelor in baze de date. Aceasta
a fost definita ca analiza automata a unor seturi de date complexe si de volum mare, cu scopul de a
descoperi noi informatii (tipare semnificative ale datelor sau tendinte ale acestora).
Procesul de extragerea cunostintelor se realizează în următorii pasi:
Ç Analiza problemei - care constă în achizitia unor cunostinte despre starea initială, precum si
despre scopul aplicatiei. Această etapă identifică următoarele faze:
- Determinarea obiectivelor. Declanşarea unui astfel de proces este determinată de sesizarea
unei oportunităţi sau necesităţi de afaceri, ceea ce impune delimitarea exactă a ceea ce se
urmăreşte de rezolvat prin data mining, care sunt obiectivele urmărite şi rezultatele aşteptate.
Problemele pot fi diverse: optimizarea răspunsului clienţilor în cadrul unei campanii de
marketing, prevenirea utilizării frauduloase a cardurilor bancare, detectarea intrărilor ostile într-
un sistem informaţional.
- Definirea criteriilor de succes. O dată problema conturată, se recomandă definirea unor criterii
ce pot asigura reuşita proiectului; aceste criterii pot fi, atât de natură obiectivă (cantitativă):
îmbunătăţirea numărului abaterilor detectate, îmbunătăţirea gradului de răspuns al clienţilor la
campaniile de marketing, cât şi de natură subiectivă (calitativă), situaţie în care expertul
domeniului apreciază rezultatele utilizării tehnicilor data mining corespunzător obiectivelor
problemei de rezolvat.
- Evaluarea situaţiei impune o analiză a costurilor implicate şi a beneficiilor viitoare, a
experienţei deţinute în rezolvarea problemei propuse.
- Determinarea scopurilor Data Mining. Etapele anterioare au stabilit problema şi criteriile de
succes pentru o soluţionare corectă a acesteia, astfel încât în acest moment este necesară o
traducere a scopurilor problemei de rezolvat în termeni “data mining”. Practica a demonstrat
adesea, că scopul general al unei probleme este diferit de scopul “data mining”, exemplele din
tabelul 1. evidenţiind acest aspect:

Scopul general al
Scopul „data mining”
problemei de rezolvat
Determinarea caracteristicilor clienţilor în funcţie de puterea
Creşterea vânzărilor
acestora de cumpărare

Determinarea modelelor critice de utilizare frauduloasă a


Prevenirea fraudării
cărţilor de credit, sau construirea unui algoritm precis pentru
cărţilor de credit
detectarea automată a fraudelor

Scopul „data mining” este într-o relaţie directă cu principalele categorii de operaţii, ce
caracterizează acest proces: descrierea datelor, clasificarea, predicţia, analiza dependenţelor, analiza
clusterelor, analiza excepţiilor.
- Elaborarea unui plan al proiectului. Finalitatea acestei etape se rezumă în descrierea unui
plan de acţiune, cu toate lucrările ce se vor executa, tehnicile ce se vor utiliza în cadrul
acestora şi obiectivele urmărite.

Ç Identificarea surselor de date. Odată problema definită, este necesară stabilirea structurii generale
a datelor cât şi delimitării surselor acestor date. Practica a demonstrat adeseori că este vorba de date
dispersate în diverse sisteme operaţionale, stocate în formate diferite, administrate cu produse
software diferite, uneori disponibile doar pe hârtie. Etapa în sine implică realizarea următoarelor
acţiuni: colectarea iniţială a datelor, descrierea datelor şi verificarea calităţii acestora. Aceste acţiuni,
în ansamblul lor, permit extragerea şi plasarea tuturor datelor într-o bază comună ce urmează a fi
folosită, verificarea conţinutului fiecăreia dintre surse pentru o identificare a eventualelor incoerenţe
sau probleme de definire, “elemente” care ar putea compromite rezultatele analizelor viitoare.

1
4/10/2013

Ç Pregătirea datelor. Datele selectate în etapa anterioară trebuie supuse unui proces preliminar
de pregătire înainte de a fi realizată extracţia prin data mining. Acţiunile importante ce caracterizează
această etapă se pot rezuma la: selectarea datelor, „curăţirea datelor”, obţinerea noilor date şi
formatarea lor. „Curăţirea datelor” se distinge ca o fază importantă a etapei, recunoscută ca mare
consumatoare de timp datorită tehnicilor diversificate ce pot fi implementate pentru asigurarea
fiabilităţii datelor. Aceste tehnici vizează:
- normalizarea datelor
- omogenizarea datelor
- administrarea valorilor care lipsesc. Absenţa anumitor valori influenţează negativ
exploatarea optimă a tehnologiilor Data Mining, precum şi aplicarea unor metode
statistice. În general realizarea unor experimente cu şi fără aceste atribute în etapa de
modelare, evidenţiază importanţa valorilor lipsă. O soluţie simplă de rezolvare a
problemei presupune fie:
– înlocuirea tuturor valorilor lipsă cu o constantă totală unică,
– înlocuirea unei valori lipsă cu caracteristica sa medie,
– înlocuirea unei valori lipsă cu caracteristica previzionată.
Adesea, această soluţie nu asigură valoarea optimă fapt pentru care datele vor fi
afectate. Dacă valorile lipsă pot fi reduse la doar câteva caracteristici, atunci se poate
încerca o soluţionare prin ştergerea exemplelor continând valori lipsă, sau ştergerea
atributelor ce conţin majoritatea valorilor lipsă. O altă soluţie este de a se încerca
predicţia valorilor lipsă cu ajutorul unui instrument data mining. În acest caz
previzionarea valorilor lipsă reprezintă un caz special al problemei de predicţie data
mining.
- reducerea datelor. Motivele pentru reducerea datelor sunt în majoritatea cazurilor
duble: fie volumul datelor este prea mare pentru aplicaţie, fie timpul estimat pentru
obţinerea soluţiei este prea lung. Tehnicile pentru reducerea datelor sunt de regulă
eficiente, dar imperfecte.

Cel mai frecvent algoritm pentru reducerea dimensiunilor datelor este de a se examina
atributele şi de a lua în considerare doar potenţialul predictiv. În general, o parte dintre
atribute pot fi în mod obişnuit ignorate, fie pentru că sunt slab predictive, fie pentru că
sunt suplimentare în raport cu alte atribute bune.

Ç Modelarea este etapa de construire a unui model informatic pe baza caruia se va efectua
explorarea propriu-zisă a datelor. Analizând noutatea şi abundenţa tehnicilor şi algoritmilor utilizaţi în
cadrul acestei etape, se poate considera că ea este cea mai interesantă parte a procesului Data
Mining. Selectarea tehnicii de modelare este hotărâtoare pentru construcţia modelului în sine, fapt
pentru care în tabelul urmator sunt prezentate cele mai importante tehnici de modelare asociate
acţiunilor uzuale Data Mining.

Modele de inducţie a regulilor, arbori de decizie, reţele


Clasificare neuronale, metoda celor mai apropiaţi k vecini, raţionament
bazat pe cazuri

Analiza regresiei, reţele neuronale, metoda celor mai


Predicţie
apropiaţi k vecini

Analiza corelaţiei, analiza regresiei, reguli de asociere, reţele


Analiza dependenţelor
Bayesiane

Descrierea datelor Tehnici statistice OLAP

Analiza clusterelor Tehnici de clustering, reţele neuronale, vizualizarea datelor

Construirea modelului este însoţită de o fază de testare, care verifică calitatea şi valabilitatea
modelului. De exemplu, în acţiunile de clasificare a datelor este uzuală folosirea valorilor eronate ca o
măsură a calităţii modelelor de data mining. Astfel, datele colectate în etapele anterioare vor fi divizate
în seturi de „date de pregătire” şi seturi de „date pentru testare”.

2
4/10/2013

Prima categorie de date va reprezenta baza construirii modelului, iar estimarea calităţii sale va fi
abordată prin prisma celei de-a doua categorii. Odată ales instrumentul/tehnicile de modelare, acestea
se vor utiliza pe setul de date de pregătire, generând diferite tipuri de modele. În general, toate
instrumentele de modelare au un număr de parametri ce conduc procesul de generare al modelului,
coeficienţi ce pot fi modificaţi până la obţinerea rezultatelor scontate.
Ç Evaluarea modelului. Această etapă validează modelul din punct de vedere al datelor
analizate. În fazele anterioare, cu precădere în faza de modelare, evaluarea presupunea o analiză a
fiabilităţii şi generalităţii modelelor generate, în timp ce in această etapă se realizează o evaluarea a
modelelor prin prisma obiectivelor iniţiale ale problemei. Se vor analiza şi interpreta atât rezultatele
direct legate de obiectivele de soluţionare a problemei cât şi alte constatări efectuate, acest lucru
putând oferi sugestii pentru modelele viitoare şi alte informaţii suplimentare.
Ç Integrarea noilor cunoştinţe. Această etapă finalizează procesul prin expansiunea modelului
obţinut şi a rezultatelor sale la nivelul sistemului informatic al organizaţiei.

Metode de data mining


Regresia este o metodă folosită în explorarea datelor preluată din statistică, algoritmii liniari şi
neliniari, fiind utilizaţi pentru corelarea datelor. Algoritmul constă în învăţarea unei funcţii care mapează
un set de date peste variabila estimată a valorii reale. Prin folosirea acestei metode este posibil să se
obţină cunoştinţe calitative despre relaţiile de intrare-ieşire. Dacă nu sunt cunoştinţe apriorice, este
necesar de găsit funcţia cea mai probabilă prin încercări succesive, ceea ce poate fi consumatoare de
timp. Exemple de acest tip sunt estimarea cererii de consum pentru un nou produs ca o funcţie de
publicitate a vânzărilor şi estimarea seriilor de timp în care variabilele de intrare pot fi versiuni întârziate
ale variabilelor estimate.
Clasificarea este cunoscută şi ca segmentarea, fiind un proces de examinare a grupurilor de date
pentru a determina care caracteristici pot fi utilizate pentru a identifica (sau estima) apartenenţa la grup.
Exemple de clasificări includ clasificarea tendinţelor în pieţele financiare, gruparea clienţilor pe baza
tranzacţiilor realizate şi estimarea răspunsului acestora la promoţia unui anumit produs. Aplicarea
metodei necesită gruparea înregistrărilor în clase pe baza proprietăţilor comune (atributelor). Algoritmii
de clasificare sunt:
- algoritmi statistici (analiza discriminatorie “discriminant analysis”, regresia logistică);
- arbori de decizie sau segmentarea bazată pe arbori, (folosind metoda divide-et-impera, CHAID
sau arbori de clasificare şi regresie: C&RT, QUESt, CART şi C4.5/ C5.0);
Învăţarea regulilor de clasificare - implică găsirea regulilor sau a arborilor de decizie care
partiţionează seturi de date în clase predefinite. Se aplică în cazul volumelor mari de date la care
mulţimea arborilor de decizie posibili este prea mare pentru o căutarea exhaustivă.
Algoritmi din această clasă sunt:
- ID3 este un algoritm de construire a arborilor de decizie care clasifică obiectele prin
testarea valorilor proprietăţilor. Acesta construieşte arborele într-o manieră top-down,
plecând de la mulţimea obiectelor şi specificaţia proprietăţilor;

3
4/10/2013

-C4.5 algoritmul generează arborele de clasificare-decizie pentru un anumit set de date


prin partiţionarea recursivă a datelor, luând în considerare toate testele posibile şi
selectând pe cel care dă cea mai bună informaţie. Pentru fiecare atribut se consideră un
test şi acesta produce atâtea ieşiri cât numărul valorilor distincte ale atributelor testate.

– SLIQ (Supervised Learning In QUEST) algoritmul este un clasificator bazat pe arbori


de decizie proiectat să clasifice seturi mari de date. Acesta foloseşte o tehnică de
presortare în faza de creştere a arborelui, ceea ce îi permite evitarea costurilor cu
sortarea în fiecare nod. SQLIP păstrează o listă separată pentru fiecare atribut continuu
şi a listă separată numită lista claselor. O intrare în lista claselor corespunde unui articol
data (data item) are o etichetă de clasă şi numele nodului căruia îi aparţine în arborele
de decizie.

- reţele neuronale cu dezavantajul că necesită un timp îndelungat de antrenare pentru procesare


faţă de arborii de decizie. Timpul de antrenare variază depinzând de numărul de cazuri de
antrenare, ponderile în reţea şi de fixarea parametrilor de învăţare;
- algoritmi genetici sunt tehnici de optimizare care folosesc procese de combinare genetică,
mutaţii şi selecţie naturală într-o proiectare bazată pe conceptele evoluţiei naturale;
- metoda vecinătăţii celei mai apropiate clasifică fiecare înregistrare dintr-un set de date pe baza
unei combinaţii de clase a înregistrării k;
- inducţia regulii, extracţia datelor utile pe baza unor reguli de tipul dacă – atunci aplicate datelor
pe baza semnificaţiei statistice.

Reguli de asociere - Ideea de bază a asocierii regulilor este de a căuta tipare de date de
următoarea formă: IF (unele condiţii sunt adevărate) THEN (alte condiţii sunt probabil adevărate).
Fiecare condiţie extrasă din prelucrarea datelor este numită o regulă asociată, sau simplu o regulă.
Regulile de asociere generează modele bazate pe reguli şi au două caracteristici principale asociate,
care le măsoară valoarea: acoperirea şi nivelul de încredere. Acoperirea descrie cât de multă evidenţă
este în setul datelor de antrenare pentru a salva regula. Uzual domeniul este între 0 şi 1 (0% şi 100%).
În plus, algoritmul regulilor de asociere foloseşte suportul unei reguli care este numărul de înregistrări
sau tranzacţii care confirmă regula. Algoritmul clasic de explorare a datelor prin Regula de asociere a
fost dezvoltat pentru a găsi toate regulile de asociere într-o bază de date a cărei suport este mai mare
decât suportul minim şi a cărei confidenţă este mai mare decât confidenţa minimă. Acest algoritm
foloseşte conceptul setului de articole (item set concept), definit ca o mulţime nevidă de articole. Setul
de articole este numit frecvent, dacă suportul său este mai mare decât suportul minim. Un set de
articole frecvent care este maximal este numit mare (large). Problema regulii de asociere în explorarea
datelor este descompusă în următorii paşi:

- găsirea tuturor combinaţiilor de articole care au tranzacţii suport peste suportul minim,
- apelarea acelor combinaţii ale setului de articole frecvent, folosirea seturilor de articole
frecvent pentru a genera regulile dorite,
- păstrarea regulii care are confidenţa mai mare sau egală cu confidenţa minimă şi
suportul mai mare sau egal cu suportul minim.

Metode de clustering – La fel ca segmentarea, metoda identifică grupuri de cazuri similare, dar
nu estimează ieşirile sau categoriile ţintă. Din acest motiv algoritmii de clustering sunt denumiţi
algoritmi de clasificare nesupervizată şi aceştia procesează un grup de obiecte fizice abstracte în
clase de obiecte similare. Analiza clustering permite identificarea unor colecţii de obiecte dată,
similare, incluse în structura de date analizată. Similaritatea este exprimată prin funcţii distanţă şi se
urmareşte maximizarea similarităţilor dintre cazurile asignate aceluiaşi grup şi maximizarea diferenţei
dintre grupuri.

4
4/10/2013

Tipare secvenţiale – metoda este o parte componentă a analizei secvenţiale, scopul principal
fiind acela de a găsi toate tiparele secvenţiale cu suport minim predefinit reprezentat de secvenţa de
date. Datele de intrare sunt reprezentate de o listă de tranzacţii secvenţiale, deseori fiind asociate
tranzacţii-timp.

Tehnici combinate – metoda combină diferiţi algoritmi, precum cei de extragere a


cunoştinţelor pe baza regulilor cu reţelele neuronale, cu raţionamentul bazat pe cazuri. Învăţarea
bazată pe cazuri reprezintă procesul de achiziţie a cunoştinţelor printr-un raţionament bazat pe
analogii. Această metodă este utilă în cazul procesării datelor cu structură complexă.

Procesarea analitică on-line (OLAP) – este considerată o metodă complementară metodelor de


explorare a datelor pentru analiza unor date de volum foarte mare, multi-dimensionale în baze de date
relaţionale. În comparaţie cu metodele de explorare a datelor, OLAP nu are capabilităţi de învăţare, nu
creează noi cunoştinţe şi nu pot căuta soluţii noi. OLAP se combină cu metodele de explorare a
datelor în două moduri: explorarea datelor se poate include într-o maşină OLAP existentă, cele două
tehnici fiind aplicate intercorelat pentru analiza acelueaşi set de date sau metoda de explorarea
datelor se aplică înaintea analizei OLAP.

ARBORI DE DECIZIE

Un arbore de decizie este o reprezentare vizuală a alegerilor, consecinţelor, probabilităţilor şi


oportunităţilor, prin care se simplifica modelul sistemului printr-un mod facil de a înţelege o structură.

Definitie: Un arbore decizional este o structură sub formă de arbore în care fiecare nod poate fi:
- nod terminal (nod frunza)
- nod decizional (contine un test pentru o anumită proprietate)

Arcele sunt etichetate cu o valoare a proprietăţii testate din nodul din care pleacă, iar frunză este
etichetate cu clasificaţii (daca clasificatiile sunt simple cu YES şi NO atunci arborele se numeste
boolean). Nodurile intermediare sunt etichetate ca atribute.

Nod_radacina

v1 v2

Nod_frunza Nod_frunza

Set raspunsuri posibile

Arcele reprezintă conexiunile între nodurile părinte şi nodurile fii iar numărul lor este legat de setul
de răspunsuri valide pe care le poate furniza utilizatorul pentru o întrebare. Arcele care pleacă dintr-un
nod A sunt etichetate cu valorile posibile ale atributului A. Parcurgerea arborelui se face de sus în jos,
dar există şi situaţii când poate fi necesară şi deplasarea de jos în sus (de exemplu, într-un arbore
care învaţă, atunci când setul de întrebări trebuie modificat, deoarece au fost găsite soluţii noi sau
vechile întrebări nu sunt bine formulate).
Metoda arborilor de decizie este cea mai populară metoda de clasificare şi predicţie. Constructia
arborelui se face prin alegerea pentru fiecare întrebare a unui răspuns dintr-un set de răspunsuri
valide. În funcţie de aceste răspunsuri sunt eliminate o serie de soluţii din setul curent de soluţii
posibile ale problemei. Cu cât se coboară în arbore, cu atât acest set de soluţii posibile se micşorează.
Fiecare nod neterminal este conectat la un test care împarte setul sau de raspunsuri posibile într-o
submulţime corespunzând rezultatelor de test diferite. Fiecare ramură duce rezultatul testului la un alt
nod şi fiecare nod este conectat la un set de răspunsuri posibile În final soluţia furnizată corespunde
nodului frunză în care s-a ajuns.

5
4/10/2013

Atractivitatea arborilor de decizie se datorează faptului că reprezintă reguli. În unele aplicaţii


acurateţea clasificării sau predicţiei este singurul lucru care contează.
Sunt o multime de algoritmi pentru a construi arbori de decizie care împart calitatea interpretării.
Metoda arborilor de decizie are numeroase aplicatii in domenii precum: medicina, prognoza
vremii, predictia stocurilor, gestiunea creditelor financiare, analiza greşelilor.
Majoritatea algoritmilor care au fost creaţi pentru învăţarea arborilor de decizie sunt variaţii ale
unui algoritm de baza care implică o parcurgere top-down greedy prin mulţimea arborilor de decizie
posibili. Programele de acest tip construiesc un arbore decizional pornind de la un set de situaţii,
cazuri.
Ordinea testelor este importantă, punându-se accent pe criteriul alegerii testului din rădăcina
arborelui de decizie.
Învăţarea regulilor de clasificare - implică găsirea regulilor sau a arborilor de decizie care
partiţionează seturi de date în clase predefinite. Se aplică în cazul volumelor mari de date la care
mulţimea arborilor de decizie posibili este prea mare pentru o căutarea exhaustivă.
În această clasă intră următorii algoritmi:
- ID3 este un algoritmul care construieşte arbori de decizie în manieră top-down. Pentru fiecare
proprietate, putem partiţiona multimea de exemple de învătare în submultimi disjuncte, în fiecare
submultime aflându-se obiecte cu o anumită valoare a acelei proprietăţi. Algoritmul selectează o
proprietate pentru a o testa în nodul curent al arborelui şi foloseşte această proprietate pentru a
partiţiona multimea de exemple. Algoritmul se aplică recursiv pentru construirea subarborilor
corespunzători fiecărei partiţii. Acest procedeu continuă până când toţi membrii unei partiţii sunt în
aceeasi clasă. Clasa devine o frunză în arborele de decizie;
- C4.5 algoritmul generează arborele de clasificare-decizie pentru un anumit set de date prin
partiţionarea recursivă a datelor, luând în considerare toate testele posibile şi selectând pe cel
care dă cea mai bună informaţie. Pentru fiecare atribut se consideră un test şi acesta produce
atâtea ieşiri cât numărul valorilor distincte ale atributelor testate.

– SLIQ (Supervised Learning In QUEST) algoritmul este un clasificator bazat pe arbori de decizie
proiectat să clasifice seturi mari de date. Acesta foloseşte o tehnică de presortare în faza de
creştere a arborelui, ceea ce îi permite evitarea costurilor cu sortarea în fiecare nod. SLIQ
păstrează o listă separată pentru fiecare atribut continuu şi a listă separată idem

ALGORITMUL ID3 (Itemized Dichotomizer 3)

Ideea de bază este de a construi un arbore de decizie printr-o cautare greedy de sus în jos într-
un set dat de date, pentru a testa fiecare atribut la fiecare nod. În loc să selecteze atributul care este
cel mai folositor pentru a clasifica setul de date, introduce o informatie cheie.
ID3 este un algoritm neincremental, însemnând că îşi derivează clasele dintr-un set fix de date de
antrenare. Clasele create de ID3 sunt inductive, ceea ce înseamnă că dând un mic set de date de
antrenare, clasele specifice create de ID3 sunt scutite de a lucra pentru alte instante viitoare. Clasele
induse nu pot fi facute sa funcţioneze pentru toate cazurile din moment ce pot clasifica un numar infinit
de instanţe. Datele folosite de ID3 trebuie sa corespundă unor cerinţe şi anume:
- descrierea valorii atributelor: acelaşi atribut trebuie sa descrie fiecare exemplu şi să aibă un
număr fix de valori;
- clase predefinite: un exemplu de atribut trebuie să fie deja definit, ceea ce înseamnă ca nu este
învăţat de ID3;
- clase discrete: clasele trebuie sa fie foarte bine descrise. Clasele continue împărţite în categorii
vagi pot creea suspiciuni (de ex: greu, putin greu, normal, usor, foarte usor);
- exemple suficiente: din moment ce este utilizată inducţia generalizată trebuie sa fie destule
cazuri de test pentru a putea distinge modele.
Pentru a găsi metoda optimală pentru a clasifica setul de învăţare trebuie să minimizăm
întrebarea pusă (minimizăm adâncimea arborelui). Avem nevoie de nişte funcţii care să fac cea mai
bună împărţire. Algoritmul ID3 aduce două noi îmbunătaţiri algoritmilor de clasificare: vizualizare şi
informaţia teoretica euristică.

6
4/10/2013

- Vizualizarea poate fi folosită dacă setul de antrenare este foarte mare. Un subset din setul de antrenare
este ales la întâmplare pentru a construi arborele iniţial. Cazurile rămase sunt ulterior clasificate folosind
arborele. Dacă arborele ne oferă clasificarea corectă pentru setul de date de intrare atunci este acceptat
pentru întreg setul de date şi procesul ia sfârşit.
- Informaţia teoretică euristică este folosită pentru a produce arbori „superficiali” decizând ordinea în care
să fie selectate atributele. Primul stagiu este calcularea proporţiei cazurilor pozitive şi negative care sunt
disponibile într-un nod. O valoare cunoscută ca entropia atributului tinta S, relativ la clasificarea in c valori
este definita ca:

unde c este numarul de valori (clase) ale atributului tinta S, iar pi reprezinta proportia din S care
apartine clasei i.
Valoarea entropiei E(S) se utilizeaza pentru a determina cantitativ efectul împărţirii setului de date,
folosind un atribut particular.
De notat ca Entropy este 0 daca toti membrii lui S apartin aceleiasi clase (data este perfect
clasificata). Multimea valorilor entropiei este de la 0 (perfect clasificata) la 1 (total aleatoare).
Pentru aceasta se foloseste o măsura numită Castigul informational (“Information Gain”) care
calculează reducerea entropiei care ar rezulta din împărţirea datelor dupa atributul A.

Pentru un anumit atribut A, câştigul informaţional produs de selectarea acestuia ca rădăcină a


arborelui de decizie este egal cu continutul total de infomaţie din arbore minus continutul de informatie
necesar pentru a termina clasificarea (construirea arborelui), după selectarea atributului A ca radacina.

Information gain - câştigul informaţional reprezintă reducerea aşteptată în entropie cauzata de


segmentare. Mai precis, information gain, Gain(S,A) a unui atribut A în raport cu o colectie S a
atributului tinta este definit ca:

unde:
- Values(A) este un set de posibile valori pentru atributul A
- Sv este o submultime a lui S pentru care atributul A are valoarea v, Sv = {s œ S | A(s) = v}
- Entropy(S) este entropia lui S
- cel de-al doilea termen e valoarea aşteptată pentru entropie, dupa ce S este segmentat folosind
atributul A, deci este suma entropiilor pentru fiecare submultime Sv, înmulţită cu fracţia |Sv|/|S|.
- |Sv| numarul de elemente in Sv
- |S| numarul de elemente in S
Exemplu:
Presupunem ca S este o multime de 14 exemple in care unul din atribute este wind_speed.
Valorile acestui atribut sunt : Weak sau Strong. Clasificarea acestor 14 exemple contine: 9 YES si 5
NO. Pentru atributul Wind, presupunem ca sunt 8 aparitii ale Wind = Weak si 6 aparitii ale Wind =
Strong. Pentru 6 aparitii Wind = Weak, le corespund valoarea atributului tinta YES si pentru 2 aparitii
NO. Pentru Wind = Strong, 3 sunt YES si 3 sunt NO.
Se calculeaza:

Entropy(S) = - (9/14) Log2 (9/14) - (5/14) Log2 (5/14) = 0.940

7
4/10/2013

Entropy(Sweak) = - (6/8)*log2(6/8) - (2/8)*log2(2/8) = 0.811


Entropy(Sstrong) = - (3/6)*log2(3/6) - (3/6)*log2(3/6) = 1.00
Gain(S,Wind) = Entropy(S)-(8/14)*Entropy(Sweak)-(6/14)*Entropy(Sstrong) = 0.940 - (8/14)*0.811 -
(6/14)*1.00 = 0.048
Pentru fiecare atribut, se calculeaza castigul si se alege in nodul de decizie cel cu castigul cel mai mare.
Algoritmul continuă alegând un nou atribut şi repetând segmentarea cu fiecare nod neterminal.
Procesul se repeta până când una din cele două condiţii este satisfăcută:
- toate atributele au fost deja incluse in parcurgerea arborelui;
- exemplele antrenate asociate cu nodul frunză au toate aceeaşi valoare de atribut.

wind _speed Yes No Total Entropie

Weak 6 2 8 Entropy(Sweak)=- (6/8)*log2(6/8) - (2/8)*log2(2/8) = 0.811


Strong 3 3 6 Entropy(Sstrong)=-(3/6)*log2(3/6)-(3/6)*log2(3/6) = 1.00

Total 9 5 14 Entropy(S) = - (9/14) Log2 (9/14) - (5/14) Log2 (5/14) = 0.940

Gain(S,wind_speed) = Entropy(S) -(8/14)*Entropy(Sweak)-(6/14)*Entropy(Sstrong)


Gain
= 0.940 - (8/14)*0.811 - (6/14)*1.00 = 0.048

Exemplu de aplicare a algoritmului ID3 – Estimarea riscului de credit


Într-un prim exemplu încercăm să analizăm problema estimării riscului acordării unui credit unei
anumite persoane, bazat pe anumite proprietăţi: comportamentul anterior al persoanei atunci când i-au fost
acordate credite (istoria creditului), datoria curentă, garanţii şi venit. Problema este una de clasificare
simplă: a prezice dacă un solicitant prezintă sau nu un risc mare sau mic pentru credit. Urmatorul tabel
prezintă multimea de date de antrenare pentru aceasta problema.

Nr. Istoria Clasificarea


Nume Client Datorii Garanţii Venit
Crt. creditului Riscului
1 Andrei Rea Mari Fara 0 – 15k Mare
2 Ion Necunoscuta Mari Fara 15 – 35 k Mare
3 Marius Necunoscuta Mici Fara 15 – 35 k Moderat
4 Vlad Necunoscuta Mici Fara 0 – 15k Mare
5 Bogdan Necunoscuta Mici Fara > 35k Mic
6 Sorin Necunoscuta Mici Adecvate > 35k Mic
7 Alex Rea Mici Fara 0 – 15k Mare
8 Mihai Rea Mici Adecvate > 35k Moderat
9 Lucian Buna Mici Fara > 35k Mic
10 Rares Buna Mari Adecvate > 35k Mic
11 Samir Buna Mari Fara 0 – 15k Mare
12 Petru Buna Mari Fara 15 – 35 k Moderat
13 Marcel Buna Mari Fara > 35k Mic
14 Sorin Rea Mari Fara 15 – 35 k Mare

Calculăm entropia medie a setului de date complet pentru fiecare din cele 4 atribute (Istoria creditului,
Datorii, Garantii, Venit):

Istoria creditului:

8
4/10/2013

Calculăm entropia medie a setului de date complet pentru fiecare din cele 4 atribute (Istoria creditului,
Datorii, Garantii, Venit):

Istoria creditului:

Istoria Risc Risc Risc


Total Entropie
creditului Mare Moderat Mic

Necunoscuta 2 1 2 5

Rea 3 1 0 4

Buna 1 1 3 5

Total 6 3 5 14

Gain

Datorii:
Risc Risc Risc
Datorii Total Entropie
Mare Moderat Mic

Mari 4 1 2 7

Mici 2 2 3 7

Total 6 3 5 14

Gain

Garantii:
Risc Risc Risc
Garantii Total Entropie
Mare Moderat Mic

Fara 6 2 3 11

Adecvate 0 1 2 3

Total 6 3 5 14

Gain

9
4/10/2013

Venit:
Risc Risc Risc
Venit Total Entropie
Mare Moderat Mic

0-15k 4 0 0 4

15-35k 2 2 0 4

>35k 0 1 5 6

Total 6 3 5 14

Gain

Max(0,266;0,063;0,206;1,047)=1,047 Deci se alege radacina: Venit si pe 0-15k se inchide ramura


pentru ca entropia este 0.

Nr. Istoria Clasificarea


Nume Client Datorii Garanţii Venit
Crt. creditului Riscului
2 Ion Necunoscuta Mari Fara 15 – 35 k Mare
3 Marius Necunoscuta Mici Fara 15 – 35 k Moderat
12 Petru Buna Mari Fara 15 – 35 k Moderat
14 Sorin Rea Mari Fara 15 – 35 k Mare

Istoria Risc Risc Risc


Total Entropie
creditului Mare Moderat Mic

Necunoscuta 1 1 0 2
Rea 1 0 0 1
Buna 0 1 0 1
Total 2 2 0 4
Gain

Risc Risc Risc Risc Risc Risc


Datorii Total Entropie Garantii Total Entropie
Mare Moderat Mic Mare Moderat Mic

Mari 2 1 0 3 Fara 2 2 0 4
Mici 0 1 0 1 Adecvate 0 0 0 0
Total 2 2 0 4 Total 2 2 0 14
Gain Gain

10
4/10/2013

Max(0,5;0,311;0)=0,5 Deci se alege Istoria creditului. Cum entropia pentru ramurile: Rea si Buna
sunt 0 se inchid cu riscul corespunzator, Risc Mare si respectiv Risc Moderat.

Nr. Istoria Clasificarea


Nume Client Datorii Garanţii Venit
Crt. creditului Riscului
5 Bogdan Necunoscuta Mici Fara > 35k Mic
6 Sorin Necunoscuta Mici Adecvate > 35k Mic
8 Mihai Rea Mici Adecvate > 35k Moderat
9 Lucian Buna Mici Fara > 35k Mic
10 Rares Buna Mari Adecvate > 35k Mic
13 Marcel Buna Mari Fara > 35k Mic

Istoria Risc Risc Risc


Total Entropie
creditului Mare Moderat Mic

Necunoscuta 0 0 2 2
Rea 0 1 0 1
Buna 0 0 3 3
Total 0 1 5 6
Gain

Risc Risc Risc Risc Risc Risc


Datorii Total Entropie Garantii Total Entropie
Mare Moderat Mic Mare Moderat Mic

Mari 0 0 2 2 Fara 0 0 3 3
Mici 0 1 3 4 Adecvate 0 1 2 3
Total 0 1 5 6 Total 0 1 5 6
Gain Gain

11
4/10/2013

Max(0,65;0,109;0,190)=0,65 Deci se alege Istoria creditului. Cum entropia pentru ramurile:


Necunoscuta, Rea si Buna sunt 0 se inchid cu riscul corespunzator: risc Mic, Risc Moderat si
respectiv Risc Mare.

Nr. Istoria Clasificarea


Nume Client Datorii Garanţii Venit
Crt. creditului Riscului
2 Ion Necunoscuta Mari Fara 15 – 35 k Mare
3 Marius Necunoscuta Mici Fara 15 – 35 k Moderat

Risc Risc Risc Risc Risc Risc


Datorii Total Entropie Garantii Total Entropie
Mare Moderat Mic Mare Moderat Mic

Mari 1 0 0 1 Fara 1 1 0 2
Mici 0 1 0 1 Adecvate 0 0 0 0
Total 1 1 0 2 Total 1 1 0 2
Gain Gain

Max(1;0)=1 Deci se alege Datorii. Cum entropia pentru ramurile: Mari, Mici sunt 0 se inchid cu riscul
corespunzator: Risc Mare si respectiv Risc Moderat.

12
4/10/2013

Algoritmul C4.5

Algoritmul C4.5 aparţine unei succesiuni de arbori de decizie de învăţare. Este o versiune mai
avansată şi îmbunătăţită a algoritmului ID3. C4.5 generează un arbore de decizie clasificat pentru un
set de date dat prin partiţionarea recursivă a datelor. Arborele este construit folosind strategia „Depth-
first”. Algoritmul consideră toate testele posibile care pot splita setul de date şi selectează un test care
ne oferă ce-a mai bună soluţie.
Noutăţile aduse de C4.5 sunt următoarele: Criteriul raportului caştigător: Noţiunea de „informaţia
maximă caştigătoare” este folosită în algoritmul ID3 pentru a determina ce atribut este selectat.
Quinlan a remarcat că dacă un atribut are valori distincte pentru fiecare înregistrare, atunci acest
atribut va fi reţinut ca „informaţia maximă caştigătoare”, iar setul de antrenare va fi împărţit conform cu
acest atribut. C4.5 foloseşte „raportul caştigator”. In general, daca este data o distributie de
probabilitate P = {p1, p2, …,pn} atunci Informatia extrasa din distributie, notata: Info(P) este entropia lui
P:

Info(P)=Entropy(P) = -(p1*log2(p1) + p2*log2(p2) + .. + pn*log2(pn))

Daca un set de S inregistrari este partitionat in clase disjuncte si exhaustive S= {S1, S2, …,Sn}, pe
baza valorilor unui atribut A (non tinta) si p este multimea probabilitatilor partitiilor {S1, S2, …,Sn}:
p={|S1|/|S|, |S2|/|S|, …, |Sn|/|S|}, atunci informatia necesara identificarii unei clase corespunzatoare
unui element din S, notata cu Info(S,A), devine media ponderata a informatiei necesare identificarii
clase elementului Si, Info(Si):

Se noteaza cu Gain(S,A) castigul informational definit:

GainRatio a fost introdus sa favorizeze atributele care au un numar mare de valori si se defineste:

unde:

SpiltInfo(A) este informatia obtinuta prin splitarea lui atributului non-tinta A pe baza valorilor
proprii. Astfel SplitInfo(A)=I{|A1|/|A|, |A2|/|A|,…, |Am|/|A|} unde {A1, A2, …,Am} sunt partitiile lui A
induse de valorile sale.

Valorile necunoscute ale atributelor: Algorimul C4.5 poate lucra cu baze de date care au
înregistrări cu valori necunoscute, considerand GainRatio doar pentru înregistrările unde valoarea
atributelor este cunoscută.

Valorie continue ale atributelor: C4.5 poate lucra cu valori continue ale atributelor. De exemplu,
dacă un atribut A are un rang continuu, iar valorile sunt în ordine crescătoare C1, C2, ..., Ci ; atunci
pentru fiecare valoare Cj = 1,2,3..., m algoritmul împarte valorile în cele care au valorile Ai mai mari
sau egale cu Aj şi cele care au valori mai mici decat Aj. Pentru fiecare dintre aceste separări
„informaţia caştigătoare” este calculată şi este selectată partea care maximizează caştigul.

1
4/10/2013

Funcţia C4.5 (R: mulţimea atributelor neclasificate; C: cheia de sortare; S: setul de antrenare)
Returnează arborele de decizie.
begin
dacă S este vidă,
atunci avem nod unic
dacă toate înregistrările din S au aceeaşi valoare pentru cheia de sortare,
atunci avem un singur nod cu acea valoare
dacă R este vidă,
atunci returnează un singur nod cu cea mai frecventă valoare a cheii de sortare din
înregistrările din S
dacă R nu este vidă,
atunci reţinem in D cheia cu cea mai bună valoare din mulţimea R
fie {dj | j = 1,2, ... m} valorile atributului D fie {Sj | j = 1,2, ... m} submulţimile din S
corespunzătoare valorilor respective din dj
se returnează un arbore cu noduri sursă D şi cu arcele d1, d2, ..., dm
C4.5(R\{D},C,S1), C4.5(R\{D},C,S2), .... C4.5(R\{D},C,Sm);
end;

Exemplu de calcul:

Info(Play) = Info(9/14,5/14)=0,9402

Outlook Temp Humidity Windy Play


Outlook yes no Total Entropie

sunny 85 85 false yes


sunny 3 2 5 Info(Play,sunny)=Info(3/5,2/5) = 0,9709
sunny 80 90 true yes
overcast 83 78 false no overcast 0 4 4 Info(Play,overcast)=Info(0,4/4) = 0
rain 70 96 false no
rain 2 3 5 Info(Play,rain)=Info(2/5,3/5 ) = 0,9709
rain 68 80 false no
rain 65 70 true yes SplitInfo(Outlook) = -5/14*log(5/14) -
Total 5 9 14
4/14*log(4/14) - 5/14*log(5/14) = 1.5774
overcast 64 65 true no
Info(Play,Outlook) = 5/14*Info(Play,sunny) +
sunny 72 95 false yes
4/14*Info(Play,overcast)+ 5/14*Info(Play,rain) =
sunny 69 70 false no
0.6935
rain 75 80 false no
Gain Gain(Play,Outlook) = Info(Play) -
sunny 75 70 true no
Ratio Info(Play,Outlook) = 0.9402 - 0.6935 = 0.2467
overcast 72 90 true no
GainRatio(Play,Outlook) =
overcast 81 75 false no
0,2467/1,5774=0,1564
rain 71 80 true yes

2
4/10/2013

Temperature 64 65 68 69 70 71 72 72 75 75 80 81 83 85
Play no yes no no no yes no yes no no yes no no yes

[4/no, 2/yes] [5/no, 3/yes]


71,5
Info(Temperature) = Info(6/14,8/14)=0,985

Info(Play,Temperature) = 6/14*Info(2/6,4/6) +
8/14*Info(3/8,5/8) = 6/14*0.918 +8/14*0,954=0,939

<71.5 yes no >71.5 yes no

2 4 3 5

Gain(Play,Temperature) = Info(Temperature) -
Info(Play,Temperature) = 0.985 – 0.939 = 0.046

SplitInfo(Temperature) = -6/14*log(6/14) -
8/14*log(8/14) = 0,985

GainRatio(Play,Temperature) = 0,046/0,985=0,0467

Humidity 65 70 70 70 75 78 80 80 80 85 90 90 95 96
Play no yes no no no yes no yes no yes no yes yes no

[6/no, 3/yes] [2/no, 3/yes]


82,5
Info(Humidity) = Info(9/14,5/14)=0,940

Info(Play,Humidity) = 9/14*Info(3/9,6/9) +
5/14*Info(3/5,2/5) = 9/14*0.918 +5/14*0,971=0,937

<82.5 yes no >82.5 yes no

3 6 3 2

Gain(Play,Humidity)= Info(Humidity) -
Info(Temperature,S) = 0.940 – 0.937 = 0.003

SplitInfo (Humidity)= -6/14*log(6/14) - 8/14*log(8/14) =


0,985

GainRatio(Play,Humidity )= 0,003/0,985=0,003

3
4/10/2013

Info(Windy) = I{8/14,6/14}=0,985

Info(Play,Windy) = 8/14*Info(2/8,6/8) + 6/14*Info(3/6,3/6) =


=8/14*0.811+6/14*1=0,892

false yes no true yes no

2 6 3 3

Gain(Play, Windy) = Info(Play) - Info(Play,Windy) = 0.985 – 0.892 = 0.093

SplitInfo(Windy) = -8/14*log(8/14) - 6/14*log(6/14) - 5/14*log(5/14) = 0,985

GainRatio(Play,Windy) = 0,093/0,985=0,094

Algoritmul SLIQ

Algoritmul SLIQ (Supervised Learning In QUEST) este un algoritm de data mining rapid şi
masurabil dezvoltat de către Centrul de Cercetare Almaden al IBM în 1996. Foloseşte o tehnică rapidă
de presortare pentru a construi arborele de decizie atunci când datele din setul de antrenare sunt prea
multe.
SLIQ nu impune nici o restricţie asupra cantităţii de date sau a numărului de atribute din exemple.
De aceea, SLIQ poate obţine o acurateţe mai mare clasificând seturi mari de date care nu pot fi făcute
cu alţi algoritmi.
Pentru atribute numerice, timpul de sortare este factorul determinant când căutăm cea mai bună
împărţire a nodurilor arborelui de decizie. Ca urmare, prima tehnică folosită în SLIQ este de a
implementa o schemă care elimină nevoia de a sorta datele la fiecare nod a arborelui de decizie. În
schimb, setul de date este sortat o singură dată pentru fiecare atribut numeric la începutul fazei de
creare a arborelui.
Structura algoritmului arată astfel:
CreareArbore (Setul de date T)
Partiţionare(T)
Partiţionare (Data S)
Dacă toate punctele din S sunt din aceeaşi clasa
Atunci intoarce
Evaluare împărţire pentru fiecare atribut A;
Foloseşte cea mai bună împărţire pentru a partiţiona S în S1 şi S2;
Partiţionare(S1);
Partiţionare(S2);

4
4/10/2013

Pentru a evalua cât de bună este alternativa împarţirii unui atribut se foloseşte un index numit gini.
Aceste se foloseşte pentru a măsura intrări inegale, dar se poate folosi pentru a măsura orice formă de
distribuţii inegale. Indexul gini este un număr între 0 şi 1 si masoara gradul de impuritate al unui nod T.
Valoarea minima este 0 cand toate inregistrarile apartin aceleasi clase şi 1 corespunde cu inegalitatea
perfectă cand toate inregistrarile apartin unor clase diferite.
Dacă un set de date S conţine exemple din n clase, Gini(S) este definit ca:

unde pj este frecvenţa relativă a clasei j în S. Exemple:

C1 0 C1 1
C2 6 C2 5
Gini = 1-(0/6)^2 - (6/6)^2 = 0 Gini = 1-(1/6)^2-(5/6)^2 = 0,278

C1 2
C2 1
C3 3
Gini = 1-(2/6)^2-(1/6)^2-(3/6)^2 = 0,611

După splitarea S în două subseturi S1 şi S2 indexul gini este definit ca:

In general pentru un nod splitat in k partitii:

unde: numarul de copii ai descendentului i, numarul de inregistrari in nodul p

Exemplu:

S S
YES NO v1 v3
v2
Node N1 Node N2 Node N1 Node N2 Node N3

N1 N2 Atribut
C1 6 2 N1 (valoare1) N2 (valoare2) N3 (valoare3)
C2 2 0 C1 1 2 1

Gini(N1)=1- Gini(N2)=1-(2/2)^2- C2 4 1 1
(6/8)^2- (0/2)^2=0 Gini(N1)=1-(1/5)^2- Gini(N2)=1-(2/3)^2- Gini(N3)=1-(1/2)^2-
(2/8)^2=0,375 (4/5)^2=0,32 (1/3)^2=0.444 (1/2)^2=0,5
Gini_split=(8/10)*Gini(N1)+(2/10)*Gini
(N2)=0,3 Gini_split=(5/10)*Gini(N1)+(3/10)*Gini(N2)+2/10*Gini(N3)=0,393

5
4/10/2013

Pentru evaluarea împărţirii se foloseşte următorul algoritm:

EvaluareÎmpărţire()
Pentru fiecare atribut A, Execută
Parcurge lista de atribute a lui A
Pentru fiecare valoare v din lista de atribute,
Execută
Găseşte intrarea corespunzătoare în lista de clase şi de aici clasa corespunzătoare şi ramura
nodului 1
Actualizează histograma clasei în ramura 1
Dacă A este un atribut numeric atunci
Calculează indexul de splitare pentru test (A≤v) pentru 1
Dacă A este un atribut direct atunci
Pentru fiecare ramură a arborelui
Execută
Găseşte subsetul din A cu cea mai bună splitare

Pentru actualizarea listei de clase se foloseşte următorul algoritm:

UpdateLabels()
Pentru fiecare atribut A folosit într-o splitare Execută
Parcurge lista de atribute a lui A
Pentru fiecare valoare v din lista de atribute, Execută
Gaseşte intrarea corespunzătoare în lista de clase e Găseşte noua clasă c de care
aparţine v aplicând testul de splitare nodului referinţă din e.
Actualizează eticheta clasei de la e la c
Actualizează nodul referinţă în e copilului corespunzător clasei c

Exemplu de aplicare a algoritmului SLIQ – Estimarea riscului de credit

Nr. Istoria Clasificarea


Nume Client Datorii Garanţii Venit
Crt. creditului Riscului
1 Andrei Rea Mari Fara 0 – 15k Mare
2 Ion Necunoscuta Mari Fara 15 – 35 k Mare
3 Marius Necunoscuta Mici Fara 15 – 35 k Moderat
4 Vlad Necunoscuta Mici Fara 0 – 15k Mare
5 Bogdan Necunoscuta Mici Fara > 35k Mic
6 Sorin Necunoscuta Mici Adecvate > 35k Mic
7 Alex Rea Mici Fara 0 – 15k Mare
8 Mihai Rea Mici Adecvate > 35k Moderat
9 Lucian Buna Mici Fara > 35k Mic
10 Rares Buna Mari Adecvate > 35k Mic
11 Samir Buna Mari Fara 0 – 15k Mare
12 Petru Buna Mari Fara 15 – 35 k Moderat
13 Marcel Buna Mari Fara > 35k Mic
14 Sorin Rea Mari Fara 15 – 35 k Mare

6
4/10/2013

Datorii Garantii Venit


Mari Mici Fara Adecvate 0-15k 15-35k >35k
RM 4 2 RM 6 0 RM 4 2 0
Mod 1 2 Mod 2 1 Mod 0 2 1
Rm 2 3 Rm 3 2 Rm 0 0 5
Gini=0,571 Gini=0,653 Gini=0,595 Gini=0,44 Gini=0 Gini=0,5 Gini=0,278

Gini_split=0,612 Gini_split=0,563 Gini_split=0,262

Istorie credit
Necunnoscuta Rea Buna
RM 2 3 1
Mod 1 1 1
Rm 2 0 3
Gini=0,64 Gini=0,375 Gini=0,56

Gini_split=0,536

Nr. Istoria Clasificarea


Nume Client Datorii Garanţii Venit
Crt. creditului Riscului
1 Andrei Rea Mari Fara 0 – 15k Mare
4 Vlad Necunoscuta Mici Fara 0 – 15k Mare
7 Alex Rea Mici Fara 0 – 15k Mare
11 Samir Buna Mari Fara 0 – 15k Mare
Nr. Istoria Clasificarea
Nume Client Datorii Garanţii Venit
Crt. creditului Riscului
2 Ion Necunoscuta Mari Fara 15 – 35 k Mare
3 Marius Necunoscuta Mici Fara 15 – 35 k Moderat
12 Petru Buna Mari Fara 15 – 35 k Moderat
14 Sorin Rea Mari Fara 15 – 35 k Mare

Istorie credit Datorii Garantii


Necunnoscuta Rea Buna Mari Mici Fara Adecvate
RM 1 1 0 RM 2 0 RM 2 0
Mod 1 0 1 Mod 1 1 Mod 2 0
Rm 0 0 0 Rm 0 0 Rm 0 0
Gini=0,5 Gini=0 Gini=0 Gini=0,444 Gini=0 Gini=0,5 Gini=0

Gini_split=0,25 Gini_split=0,267 Gini_split=0,5

7
4/10/2013

Nr. Istoria Clasificarea


Nume Client Datorii Garanţii Venit
Crt. creditului Riscului
2 Ion Necunoscuta Mari Fara 15 – 35 k Mare
3 Marius Necunoscuta Mici Fara 15 – 35 k Moderat
12 Petru Buna Mari Fara 15 – 35 k Moderat
14 Sorin Rea Mari Fara 15 – 35 k Mare

Istorie credit
Necunoscuta Rea Buna
RM 1 1 0
Mod 1 0 1

Rm 0 0 0
Gini=0,5 Gini=0 Gini=0

Gini_split=0,25

Nr. Istoria Clasificarea


Nume Client Datorii Garanţii Venit
Crt. creditului Riscului
2 Ion Necunoscuta Mari Fara 15 – 35 k Mare
3 Marius Necunoscuta Mici Fara 15 – 35 k Moderat

Garantii
Fara Adecvate
RM 1 0
Mod 1 0
Rm 0 0
Gini=0,5 Gini=nedef

Gini_split=0,5

Datorii
Mari Mici
RM 1 0
Mod 0 1
Rm 0 0
Gini=0 Gini=0

Gini_split=0

8
4/10/2013

Nr. Istoria Clasificarea


Nume Client Datorii Garanţii Venit
Crt. creditului Riscului
5 Bogdan Necunoscuta Mici Fara > 35k Mic
6 Sorin Necunoscuta Mici Adecvate > 35k Mic
8 Mihai Rea Mici Adecvate > 35k Moderat
9 Lucian Buna Mici Fara > 35k Mic
10 Rares Buna Mari Adecvate > 35k Mic
13 Marcel Buna Mari Fara > 35k Mic

Istorie credit Datorii Garantii

Necunoscuta Rea Buna Mari Mici Fara Adecvate

RM 0 0 0 RM 0 0 RM 0 0

Mod 0 1 0 Mod 0 1 Mod 0 1

Rm 2 0 3 Rm 2 3 Rm 3 2

Gini=0 Gini=0 Gini=0 Gini=0 Gini=0 Gini=0,444 Gini=0

Gini_split=0 Gini_split=0,167 Gini_split=0,148

Determinarea arborelui de decizie cand avem valori numerice

Crt. Stare Venit Eludeaza


civila impozabil plata
impozit
1 necasatorit 125k no
2 casatorit 100k no
3 necasatorit 70k no
4 casatorit 120k no
5 divortat 95k yes
6 casatorit 60k no Stare civila

7 divortat 220k no necasatorit casatorit divortat

8 necasatorit 85k yes yes 2 0 1

9 casatorit 75k no no 2 4 1

10 necasatorit 90k yes Gini_split=0,3

55 65 72 87 92 97 110 122 172 230


<= > <= > <= > <= > <= > <= > <= > <= > <= > <= >
yes 0 3 0 3 0 3 1 2 2 1 3 0 3 0 3 0 3 0 3 0
no 0 7 1 6 2 5 3 4 3 4 3 4 4 3 5 2 6 1 7 0
Gini_ 0,42 0,4 0,375 0,417 0,4 0,3 0,343 0,375 0,4 0,42
split

9
4/10/2013

<=97k >97k

Crt. Stare Venit Eludeaza no


civila impozabil plata
impozit
3 necasatorit 70k no Crt. Stare Venit Eludeaza
civila impozabil plata
5 divortat 95k yes impozit
6 casatorit 60k no 1 necasatorit 125k no
8 necasatorit 85k yes 2 casatorit 100k no
9 casatorit 75k no 4 casatorit 120k no
10 necasatorit 90k yes 7 divortat 220k no

55 65 72 87 92
<= > <= > <= > <= > <= >
yes 0 3 0 3 0 3 2 1 3 0
no 0 3 1 2 2 1 3 0 3 0
Gini_ 0,5 0,4 0,25 0,4 0,5
split

Stare civila
necasatorit casatorit divortat
yes 2 0 1
no 1 2 0
Gini_split=0,222

Venit
impozabil
<=97k >97k
Stare
civila
no
necasatorit
casatorit divortat

Venit
no yes
impozabil

Crt. Stare Venit Eludeaza <=97k >97k


civila impozabil plata
Stare
impozit civila
3 necasatorit 70k no
no
8 necasatorit 85k yes necasatorit casatorit
divortat
10 necasatorit 90k yes Venit
impozabil no yes
<=72k >72k
65 72 87 92
<= > <= > <= > <= > no yes
yes 0 2 0 2 1 1 2 0
no 0 1 1 0 1 0 1 0
Gini_ 0,444 0 0,333 0,444
split

10
4/10/2013

4. Sistemul CAD (Computer Aided Design –


Proiectarea asistată de calculator)
4.1 Procesul de proiectare

Activitatea de proiectare este una din principalele activităţi care influenţează eficienţa sistemului de
fabricaţie. Intrarea în acest sistem poate fi iniţiată din exterior de către o comandă client, fiind
preluată prin intermediul serviciului de marketing şi prognoză, sau din interior, ca urmare a unor studii
de prospectare a pieţei. În ambele cazuri, la nivelul sistemului CAD intrarea se materializează sub
forma unor specificaţii de proiectare, concepute astfel încât produsul proiectat să satisfacă
următoarele cerinţe:
• de formă („form”), (proprietăţi legate de forma produsului, stilul şi caracterul acestuia);
• de potrivire („fit”) cu cerinţele pieţei din punctul de vedere al criteriului de câştigare a comenzii, cu alte
produse aflate deja în fabricaţie şi cu cerinţele segmentului ţintă căruia i se adresează;
• funcţionale („function”) - înglobează caracteristicile care definesc produsul din punctul de vedere al
performanţelor, fiabilităţii, întreţinerii, precum şi al altor criterii generale de câştig a comenzii).

Specificaţiile de proiectare sunt preluate simultan/concurent de echipe cu atribuţii diverse după cum
urmează:
• proiectare („product engineering”), preiau specificaţiile de proiectare şi le materializează sub forma
proiectului produsului;
• analiză („analyse engineering”) testează şi simulează funcţiile produsului;
• dezvoltare („development engineering”) se ocupă de realizarea prototipului şi testarea acestuia;
• cercetare, susţin activităţile de mai sus, sub aspect teoretic, al standardizării activităţilor şi al modului
de organizare.

Modul în care aceste echipe interacţionează definesc un prim model al sistemului şi anume modelul
activităţilor de proiectare. În literatură sunt prezentate mai multe astfel de modele propuse de diverşi
autori.

• Principalele activităţi sunt: conceptualizarea, sinteza, analiza, evaluarea şi realizarea


documentaţiei.

Elaborarea
conceptului Sinteza Analiza Evaluarea Documentaţia

Fig. 1 Înlănţuirea etapelor în modelul desfăşurării proiectării

Elaborarea conceptului – reprezintă clarificarea sarcinii de proiectare sub aspectul elaborării


cerinţelor de formă, potrivire şi funcţie („form-fit-function”) ale produsului final.
Până la această etapă, se analizează dacă problema de proiectare este similară cu alte probleme
de proiectare anterioare, clasificându-se ca tipică sau atipică. În cazul unei probleme atipice
trebuie elaborat conceptul de proiectare – aplicarea metodelor de proiectare pentru crearea unui
produs nou cu caracteristici unice. Această activitate este preponderent creativă, dar se ia în
considerare utilizarea unor subansamble standard sau a unor rezultate anterioare obţinute. Spre
deosebire de cazul problemelor atipice, în cazul problemelor tipice se foloseşte proiectarea
repetitivă (se aplică concepte de proiectate sau părţi componente elaborate anterior la alte
produse similare sau adaptări minore ale acestora). Proiectarea repetitivă necesită un sistem de
clasificare a produselor curente pe baza căruia să se identifice asemănările (criteriile de
clasificare se bazează pe analiza parametrilor produselor sau subansamblelor cu formă şi funcţii
asemănătoare, dar diferite prin mărime şi detalii) şi utilizarea unor modele de proiectare grafice şi
analitice care să poată fi transmise şi recepţionate printr-un sistem de comunicaţie adecvat.

11
4/10/2013

Sinteza – continuă faza de elaborare a conceptului prin adăugarea specificaţiilor de material, a unor
noi caracteristici geometrice şi detalierea dimensiunilor geometrice. Această etapă este
importantă pentru că urmăreşte să raţionalizeze detaliile geometrice ale produsului şi
caracteristicile de material, aspecte care influenţează substanţial costurile de fabricaţie fără a
contribui la valoarea de piaţă a acestuia. Pentru aceasta se utilizează conceptele de proiectare
pentru asamblare şi proiectarea pentru fabricaţie, care au fost amintite la impactul tehnologiilor
specifice de fabricaţie. La acest nivel se stabileşte 70% din preţul final al produsului, ceea ce
determină parcurgerea mai multor iteraţii prin care se optimizează soluţia finală.

Analiza – este metoda de determinare sau descriere a naturii unui lucru prin separarea în părţile
componente. În urma analizei se studiază varianta sau variantele furnizate în cadrul sintezei,
stabilindu-se gradul de satisfacere a cerinţelor din specificaţiile de proiectare. Este un proces
intens interactiv, în care se utilizează analiza proprietăţilor de masă (calculul masei, a volumelor,
şi suprafeţelor, a centrelor de greutate şi a momentelor de inerţie etc., analiza toleranţelor şi
interferenţa ansamblului – stabilirea faptului că operaţiile de asamblare vor decurge
corespunzător) şi metoda elementului finit (se determină limitele la efort, transferul căldurii şi
limitele teoretice de funcţionare).

Evaluarea – constă în verificarea proiectului relativ la specificaţiile de proiectare. Pe lângă verificarea


soluţiei provenită în urma sintezei şi analizei se evaluează relaţia dintre capacităţile de producţie
şi specificaţiile de asamblare şi fabricaţie ale proiectului. Evaluarea necesită de multe ori
realizarea unui prototip.

Realizarea rapidă a prototipului („Rapid prototyping”) este conceptul modern utilizat pentru
evaluarea performanţelor operaţionale. Dacă proiectul satisface toate criteriile se înaintează
pentru elaborarea documentaţiei.

Elaborarea documentaţiei – ansamblul activităţilor prin care se elaborează toate vederile părţilor
componente, adăugarea detaliilor de proiectare (note de fabricaţie, dimensiuni şi toleranţe),
elaborarea documentelor, asignarea codurilor părţilor componente, elaborarea listei de materiale
şi tabelei de referinţe, realizarea fişierelor de date ce vor fi transmise spre planificarea şi controlul
fabricaţiei, spre producţie şi controlul calităţii.

Desfăşurarea activităţilor de proiectare simultan/concurenţial implică proiectarea produsului cu luarea


în considerare a ciclului de viaţă al acestuia. Introducerea acestui concept în modelul
organizatoric al activităţilor de proiectare este ilustrat înurmatoarea figura.

12
4/10/2013

Cercetarea
pieţei

Stabilirea costurilor şi a
sarcinilor de producţie

Echipa de proiectare Procesul de proiectare a


concurentă produsului
-ingineri tehnologi -conceptualizare
-furnizori de echipamente -sinteză
-proiectanţi -analiză
-controlul producţiei Proiectare -evaluare
-programatori CNC simultană/concurentă -documentaţie
-proiectanţi scule şi dispoziive
-controlul calităţii
-furnizori componente
-proiectanţi scule
-achiziţie
-marketing
Se obţin costurile Nu
planificate?

Da

Dezvoltarea sistemului de
fabricaţie

Operarea sistemului de
fabricaţie

4. 2 Rolul comunicării şi al modelelor în sistemul CAD

Activitatea de proiectare este una creativă şi abstractă (produsul este virtual până în faza de
realizare a prototipului). Din acest motiv este necesară introducerea unui sistem de reprezentare a
ideilor proiectului.

Sistemul de reprezentare este compus din totalitatea modelelor utilizate pentru reprezentarea
caracteristicilor produsului şi a părţilor componente. În funcţie de complexitatea proiectului, modelul
produsului reprezintă o modalitate de fixare a ideilor, dar şi un mijloc de comunicare între participanţii
la această activitate. În urma comunicării, modelul este analizat de participanţi pe baza unor
protocoale standardizate sau a unui set de reguli şi în urma acestei activităţi se completează cu
elemente noi care generează alte modele.

Modelul este un suport pentru evaluarea informaţiilor şi generarea de noi informaţii. Pentru
aceeaşi componentă a unui produs pot exista simultan mai multe tipuri de modele diferite între ele, în
funcţie de ce proprietate a proiectului trebuie modelată şi de receptor.
De exemplu, la un subansamblu mecanic se poate modela forma, cinematica, comportamentul la
efort, transferul căldurii etc.
Uzual în procesul de proiectare se modelează:

– funcţia,
– forma,
– structura,
– proprietăţile de material,
– condiţiile impuse suprafeţelor,
– toleranţe sau dimensiuni ale produsului.

Receptorii sunt participanţii la acest proces.

13
4/10/2013

Dintre toate proprietăţile modelate o importanţă deosebită o au forma şi structura. Acestea


influenţează în mod diferit modul în care se face reprezentarea.

Forma se reprezintă prin desenarea acesteia în timp ce structura se reprezintă folosind simboluri
abstracte care modelează modul intern de conectare şi circuitul fluxului de informaţii, energie sau
materiale. Structura se modelează prin scheme sau diagrame. O parte semnificativă a procesului de
proiectare a structurii poate avea loc fără a detalia forma. Această metodă de proiectare poartă
denumirea de ingineria sistemelor.

Relativ la buna comunicare între participanţi, o altă condiţie este legată de limbajul de comunicare
folosit. Complexitatea proiectelor poate conduce la dificultăţi de interpretare, ambiguităţi de
reprezentare şi erori de evaluare. În consecinţă, proiectarea modelelor trebuie să se raporteze la o
serie de standarde care definesc sintaxa limbajului de comunicare.

Modelarea cu ajutorul calculatoarelor trebuie să suporte o modalitate de elaborare progresivă a


proiectului, activităţile de proiectare detaliate anterior, metodele de evaluare şi să furnizeze un mijloc
de comunicare. Rolul calculatorului este de a automatiza şi asista activităţile de elaborare a desenelor,
a genera lista de materiale a produsului şi la un nivel superior de a facilita noi tehnici de elaborare şi
asistare a procesului de proiectare.

4.3 Arhitectura sistemelor CAD

În cele prezentate anterior sistemele CAD au fost descrise logic. Fizic, un sistem CAD este compus
din: structura hardware (calculatorul şi dispozitivele periferice), structura software (programele care
rulează pe structura hardware), structura de date (structura de date creată şi manipulată de software) şi
operatorii umani (care pe baza cunoştinţelor desfăşoară activităţi). Arhitectura sistemelor CAD este
reprezentată în fig. 3.

Structura de date Funcţii

Definire
model

Manipulare
model
Baza de date Date de
lucru
Generare
grafică
-Modelele componentelor - Date geometrice Utilizatori
Intrare/ieşire
- Desene - Date asociate
Utilitare
- Standarde
- Biblioteci
- date
Managementul
bazei de date
(DBMS)

Aplicaţii

14
4/10/2013

Funcţiile CAD sunt:

• definire model (adăugarea componentelor geometrice unui desen)


• manipulare model (operaţiile move, copy, delete, edit, sau orice alte comenzi care modifică
elementele desenului)
• generare grafică (algoritmii de generare a imaginilor pe ecran sau pe un dispozitiv de imprimare)
• interfaţă utilizatori (sistemul de preluare a comenzilor date de utilizatori şi de prezentare a ieşirii
către utilizatori sub un anumit sistem de operare)
• managementul bazei de date (managementul fişierelor care alcătuiesc baza de date)
• aplicaţii (aceste elemente de software nu modifică modelul proiectului, ci îl utilizează pentru
generarea informaţiilor de evaluare, analiză sau fabricaţie)
• utilitare (termen generic ce defineşte toate modulele software care nu afectează direct modelul,
dar modifică modul de operare al sistemului într-un anumit fel, de exemplu: selectarea culorii
afişate, unităţile de măsură utilizate, etc.)
• Aceste funcţii se vor studia în laborator, în cazul unor CAD-uri particulare.

4.4 Definirea modelului şi reprezentarea structurii

Tehnica reprezentării formelor 3D în spaţiul cu două dimensiuni, prin intermediul desenului tehnic
pe hârtie sau cu ajutorul calculatorului poartă denumirea de geometrie descriptivă. Primele începuturi
aparţin lui Albrecht Durer în sec. 15-16, dar în forma în care se utilizează astăzi, dezvoltarea aparţine
inginerului militar francez Gaspard Monge (1764-1818). Monge a introdus o metodă de reprezentare a
formelor prin proiecţia acestora în două planuri mutual perpendiculare. Esenţa metodei lui Monge se
utilizează şi astăzi. Formele 3D sunt reprezentate în două dimensiuni prin punerea în corespondenţă a
punctelor obiectului cu punctele proiecţiilor acestuia în mai multe planuri mutual perpendiculare, prin
utilizarea proiecţiilor paralele, perpendiculare pe planurile de proiecţie. Din proiecţia punctelor se
obţine proiecţia muchiilor şi din muchii suprafeţele. Proiecţia în 2D se obţine prin desfăşurarea
planurilor perpendiculare într-un singur plan, vezi figura de mai jos

15
4/10/2013

În această metodă se utilizează o serie de convenţii descrise detaliat în standarde. De exemplu:


într-un desen se utilizează diferite tipuri de linii cu semnificaţii diferite, secţiunile se reprezintă ca şi
cum o anumită parte a obiectului este înlăturată, proiecţiile se realizează în două moduri proiecţia
paralelă (care păstrează scara obiectelor) şi proiecţia de perspectivă (care creează impresia de
profunzime pentru interpretarea desenului).

Diagramele sau schemele sunt reprezentate printr-o serie de simboluri conectate prin conexiuni.
Modalitatea de reprezentare a simbolurilor şi a conexiunilor este de asemenea stabilită prin standarde.
În figura de mai jos se prezintă un exemplu de modelare a structurii prin simboluri şi conexiuni în
ORCAD.

O modalitate de reprezentare în astfel de modele este reprezentarea de tip top-down. Iniţial sunt
prezentate numai relaţiile dintre blocuri. Prin selectarea unui bloc urmează o detaliere a acestuia şi,
prin selecţii consecutive se determină continuarea detalierii structurii. Modalităţile descrise utilizate în
reprezentarea formei şi structurii au avantaje incontestabile validate în timp prin utilizarea acestora.
Practic, orice produs poate fi reprezentat prin aceste metode. Totuşi sunt şi o serie de dezavantaje: în
cadrul unor produse complexe documentaţia poate conţine un număr foarte mare de desene,
interpretarea modelelor necesită cunoştinţe avansate pe care trebuie să le aibă toţi participanţii la
această activitate, pot apare erori în generarea modelelor, curbe complexe pot fi foarte greu de
reprezentat prin tehnicile convenţionale, extragerea informaţiilor din desene s-a dovedit a fi subiectivă
şi în unele situaţii reprezentările prezintă ambiguităţi.

4.5 Reprezentarea desenelor şi schemelor cu calculatorul


4.5.1 Realizarea schiţelor

Se referă la reprezentarea geometriei. Modalitatea este în general asemănătoare cu cea clasică.


Se utilizează aceleaşi standarde şi geometria conturului se reprezintă printr-o serie de elemente
geometrice precum puncte, linii, arce, cercuri, elipse, elementele geometrice individuale purtând
numele de entităţi geometrice, fig.6. Aceste entităţi vor fi definite de sistem prin valori numerice,
reprezentând punctele de coordonate sau alte date. De exemplu, o linie este definită prin coordonatele
x şi y ale punctelor extremităţilor, sau un arc de cerc prin coordonatele centrului cercului, rază şi
unghiul de start şi de stop. În reprezentarea manuală dimensiunea desenului reprezintă o
constrângere.

16
4/10/2013

17
4/10/2013

18
4/10/2013

În reprezentarea pe calculator această restricţie dispare. Modelul este construit printr-o serie de
proceduri de calcul care sunt condiţionate numai de numărul entităţilor ce pot fi stocate şi manipulate
de calculator. În consecinţă în CAD desenele pot fi reprezentate în vedere completă, indiferent de
mărimea lor. De asemenea, calculatorul furnizează utilizatorului un număr mare de variante de definire
a entităţilor geometrice. De exemplu, în AUTOCAD un cerc se poate defini prin centru şi rază, centru
şi diametru, 2 puncte, 3 puncte, tangentă tangentă şi rază, tangentă tangentă tangentă. De asemenea,
definirea unor entităţi se poate face pe baza entităţilor deja definite. Coordonatele pot fi introduse prin
valori numerice sau prin localizarea cu mouse-ul a punctului pe ecran.

O parte din comenzile de manipulare a desenului în AUTOCAD sunt: erase, copy, mirror, move,
rotate, scale, strech (fig. 7), trim (fig. 8), extent, join entities.

19
4/10/2013

Desenarea schemelor constă în asistarea de către calculator în procesul de producere a schemelor. Şi


acest tip de reprezentare foloseşte entităţi geometrice. Diferenţa constă în faptul că acestea sunt agregate
sub formă de simboluri şi conexiuni.
Programele au facilitatea de a grupa o colecţie de entităţi care mai sunt cunoscute sub numele de pattern,
template sau symbol. Schema este construită dintr-o serie de pattern-uri conectate prin polilinii. Simbolurile
cu care se construieşte schema au puncte de conexiune şi conectori care permit realizarea legăturilor.
Programul permite extragerea dintr-un astfel de desen a listei simbolurilor şi a modului cum sunt conectate.
Aceasta din urmă poartă denumirea de netlist.
O astfel de reprezentare este utilă pentru identificarea conexiunilor neutilizate, sau a conexiunilor
incomplete. În plus intrările schemei pot fi modelate şi sistemul simulat, fig.9.

20
4/10/2013

Modelarea corpurilor prin metoda “WIREFRAME”

• Principiul de reprezentare consta in memoreaza pozitiile liniilor 2D sau 3D


• Folositor pentru realizarea schitelor, fiind usor de realizat vederi multiple si de editat.
• Ambiguitate in reprezentarea suprafetelor, ceea ce limiteaza posibilitatile de interfatare cu
sistemul de fabricatie asistata de calculator (nu permite masurarea volumelor sau generarea
traiectoriilor de prelucrare pentru NC.

Un exemplu de reprezentare prin wireframes este indicat in figura de mai jos, corpul reprezentat
in stanga. Interpretarea acestuia poate conduce la multiple solutii sugerate in figura de mai jos
dreapta.

Modelarea suprafetelor

Permite reprezentarea ecuatiilor suprafetelor


• Cele mai multe biblioteci grafice 3D folosesc tehnica
de modelarea suprafetelor.
• Avantaje:
- permit vizualizarea suprafetelor complexe
si generarea automata a traiectorieie de
prelucrare pe NC.
Dezavantaje: informatiile privind volumul corpurilor sau
materialul sunt ambigue sau dificil de determinat.

In fig. alaturata sunt diferite reprezentari prin aceasta


tehnica.

Modelarea solidului

Aceasta se realizeaza prin diverse tehnici:


• crearea unor primitive
• operatii Booleane
• operatii de baleiere
• operatii de suprafata
• modelarea pe baza caracteristicilor ingineresti
• modelarea parametrica

21
4/10/2013

Crearea primitivelor

Primitivele sunt forme solide elementare cu suprafete


matematice simple.
• Pot fi controlate printr-un numar mic de parametrii si
pozitionate prin transformari matriciale (vezi fig.
alaturata).

Operatii Booleene

Operatiile Booleene sunt utilizate pentru realizarea unor


corpuri mai complicate prin combinarea primitivelor.
• Sunt posibile trei tipuri de operatii:
– reuniune sau “join”
– intersectie
– diferenta”

Operatii de baleiere

Folosesc reprezentari wireframe 2D ale sectiunilor


pentru a genera solidul 3D.
Aceasta include operatii ca:
– extrude (extruziune)
– revolve (generarea suprafetelor de revolutie)
– sweep (generarea suprafetelor prin baleiere)
– loft

22
4/10/2013

Operatii asupra suprafetelor

Acestea opereaza direct asupra modelului suprafetelor


corpului solid, asupra muchiilor sau colturilor pentru a
crea modificarile dorite
• Exemple:
– chamfering
– rounding/filleting
– drafting
– shelling

Modelarea pe baza caracteristicilor

Caracteristicile sunt forme care au anumite semnificatii


ingineresti. De obicei ele sunt reprezentari geometrice
ale operatiilor de prelucrare pe masina sau functia unei
componente
• Exemple:
– hole – pocket (gaura - buzunar)
– slot - boss
• Se utilizeaza termenul de caracteristica pentru orice
operatie de modelare a corpului solid.
• Unele sisteme furnizeaza caracteristici gata definite.

23
4/10/2013

Sistemul CAD/CAM

Geometrie
Cerere CAM
piata
CAD

Geometrie

Prioritati
Fabricatie

Rute
Strategia de
fabricatie
CAPP CAPM

Profilul Profilul
capabilitatilor capacitatii
celulei de celulei de
fabricatie fabricatie

CAD
Format Fisier Fisier Fisier Fisier
nativ PDES
.dxf IGES STEP

Translator Translator Translator Translator


Programarea
.dxf IGES STEP PDES
asistata de
calculator

Fisier sursa Fisier format CAM Fisier Fisier


scule parametri
Compilare tehnologici
Elaborarea
manuala a Fisierul locatiilor
codului cutitului (CLDATA) Fisierul locatiilor
cutitului (CLDATA) Fisier geometria traseului
Post-procesare

Codul masina (MCD)

Introducere Afisare animata a Plotter


manuala a Transmiterea la Transmiterea la
masina traseului prelucrat
datelor (MDI) distanta
CAM

Comanda numerica (NC)

Masina unealta
(MU)

1
4/10/2013

Limbaje simbolice

• Limbajul APT: Automatic Programmed Tool


• Alte limbaje:
IFAP (Germania) Waldo (1ier) PROMO (Franta)
EXAPT (Germania) COMPAC (Bendix) ELAN
MINIAPT SYMPAC (Univac) PAM
SYMAP NUMERISCRIPT GTL
AUTOPROG SPLIT PSI
AUTOAPT CINAP COMPACT II
ADAPT AUTOSPOT NEL (Ferranti)
AUTOPROPS AUTOPRESS (Anglia) NUCOM
PROFILEDATA SNAP AUTOPIT (Germania)

Limbajul APT

• Introducere
– Cel mai utilizat limbaj
– Standardizat ANSI X3.37-1980
– Suporta toate tipurile de prelucrari pe masini unelte:
• Punct cu punct
• Conturare
• 2 axe, 2 1/2 axes sau mai multe axe (3,4,5)
– Convenabil pentru diverse procese
• Uzinare
• Electro-eroziune
• Sudura
• Masini de desenare
• …
– Complex

2
4/10/2013

• Principii
– Total independent de MUCN (Masina Unealta cu Comanda Numerica)
– Utiliseaza propriul reper si nu sistemul de axe al MUCN
• Caracteristici principale
– Referinte simbolice (variabile cu nume)
– Variabile scalare, vectoriale, matriciale, geometrice
– Entitati geometrice (curbe si suprafete)
– Descrierea sculei (forma cutitului, orientarea, precizia pe traiectorie)
– Calcul scalar, matricial, geometric
– Structurat (salt conditionat, bucle, macro-uri)
– Instructiuni de control (tiparire, post-procesare, etc.)

• Arhitectura

Program sursa
Editor de texte Instructiuni APT

Interpretor
Calcul
geometric
Program sursa
Instructiuni APT
+
Referinte erori
Sistem CAD

Calcul
deplasari scula

Cutter location File Parametrii


CL File (masina i)

Post-Procesor
Cod G
(masina i)

3
4/10/2013

LY
• Exemplu de program

PARTNO EXEMPLE TYPE


CLPRNT
REMARK *** DEF. GEOM. ***
SETPT = POINT/ -1, -2, 1.5
ORIG = POINT/ 0, 0
LX = LINE/ XAXIS
C4
LY = LINE/ YAXIS
C1 = CIRCLE/TANTO, LY, XLARGE, ORIG, RADIUS, 1.5 R=1.5 R=0.5
L1 = LINE/ (POINT/0, -2), RIGHT, TANTO, C1
C2 = CIRCLE/YSMALL, LX, YLARGE, L1, RADIUS, .5 LX
ORIG R=0.5
C3 = CIRCLE/CENTER, ORIG, RADIUS, 1.5
C3 C2
C4 = CIRCLE/ YLARGE, LX, XLARGE, OUT, C3, RADIUS, .5 C1
L2 = LINE/ LEFT, TANTO, C2, RIGHT, TANTO, C3 L1
REMARK *** DEF. TOL., OUTIL, PARAMETRES *** R=1.5 L2
CUTTER/ 0.5
INTOL/ .005
OUTTOL/ 0. SETP 0,-2
SPINDL/2000,CLW T
FEDRAT/20.0
COOLNT/ON
REMARK *** DEPLACEMENT OUTIL ***
….

REMARK *** DEPLACEMENT OUTIL ***


FROM/ SETPT
INDIRV/ 1,0, 0 LY
GO/ PAST, L1
TLRGT, GOFWD/ L1, TANTO, C2
GOFWD/C2,TANTO,LX
GOFWD/ LX, TANTO, C4
GOFWD/ C4, TANTO, C3
GOFWD/ C3, TANTO, L2
GOFWD/ L2, PAST, LY
GOBACK/ LY, TANTO, C1 C4
GOFWD/ C1, TANTO, L1
TLLFT, GOBACK/ L1, PAST, LY
GOTO/ SETPT LX
END ORIG
C3 C2
FINI C1
L1

L2

SETPT 0,-2

4
4/10/2013

• Elementele limbajului
• Sintaxa. Caractere utilizate.
• , separator de baza
• / separator de cuvant major
• * semn de multiplicare
• ** semn de ridicare la putere
• + numar cu semn pozitiv sau semn de adunare
• - numar cu semn negativ sau semn de scadere
• $ caractere de continuare de linie
• $$ comentariu
• = semn de asignare
• . Punct zecimal
• () incadreaza parametrii functiei, indici de tabel,
expresii ale unui IF, definitii imbricate
• ) eticheta unei linii

– Cuvinte cheie
• Tipuri de entitati geometrice: POINT, SPHERE, PLANE, etc.
• Operatori si functii: IF, SINF, COSF, etc.
• Instructiuni post-procesor STOP, SPINDL, END, etc.
• Modificatori XLARGE, ON, LEFT, etc.
• Cuvinte de miscare GO, GODLTA, etc.
• Moduri de operare NOPOST, CLPRNT, etc.
– Sintaxa
• Numere tratate ca numere reale, toate formele traditionale de notatie
(totdeauna . Inaintea lui E , ex: 1.E3)
• Simboluri nume de variabile de 1 pana la 6 caractere alfanumerice

• Eticheta 1 la 6 caractere alfanumerice la stanga liniei care urmeaza


• SYN/ definirea de sinonime (ex: SYN/PT, POINT, CI, CIRCLE)

5
4/10/2013

– Calcul
• Operatori aritmetici + - * / **
• Functii scalare cele din Fortran IV
SINF, COSF, TANF, ATANF, ATAN2F, ABSF, SQRTF, LOGF, LOG10F, EXPF
• Functii vectoriale
– LNTHF (Vector) Norma vectoriala
– DOTF (Vector 1, Vector 2) Produsul scala al Vector 1, Vector 2
• Functii geometrice
– ANGLF (Cerc, Punct) Unghiul in grade
Punct

ANGLF

X+
Cerc

– DISTF (Plan1, Plan2) Distanta intre doua plane paralele


– DISTF (Ligne1, Ligne2) Distanta intre doua plane paralele
– NUMF (Pattern) Numar de puncte al unui pattern

– Tablouri
• RESERV/Nume_tablou, N Declara un tabel cu N elemente,

• Exemple
RESERV/T,12 Tabloul T de 12 elemente
T(1) = 12.34
T(1, THRU, 5) T(1), T(2), …, T(5)
T(THRU, 5) idem
T(ALL) Toate elementele tabloului
T(5, THRU, ALL) T(5), T(6), …, T(12)
T(3,THRU, 8, INCR, 2) T(3), T(5), T(7)
T(ALL, DECR, 3) T(12), T(9), T(6), T(3)
P1 = POINT/ T(3, THRU, 5) $$ X = T(3), Y = T(4), Z = T(5)

6
4/10/2013

Entitati geometrice:

• POINT punct (se poate utiliza deasemenea ca un vector)


• LINE linie (plan orthogonal pe planul XY, trecand printr-o linie)
• CIRCLE cerc (cilindru ortogonal pe planul XY, trecand printr-un cerc)
• ELLIPS elipsa
• HYPERB hiperbola
• GCONIC ax2 + bxy + cy2 + dx + ey + f = 0
curba plana,
• LCONIC Loft conic, o conica definita prin 5 puncte
, 4 puncte + tangenta sau 3 puncte + 2 tangente
• PLANE plan
• CYLNDR cilindru
• CONE cone
• SPHERE sfera
• QADRIC ax2 + by2 + cz2 + dyz + exz + fxy + gx + hy + iz + j = 0
• TABCYL Cilindru tabulat,

• RLDSRF Suprafata rulata

• POLCON Polyconique, suprafata policonica

• VECTOR Vector
• MATRIX Matrice

– Definitia unei entitati geometrice


• Format general Ident = Tip / Definitie

Ident: nume de variabila


Tip: tipul entitatii
Definitie: metoda de definire a entitatii

• ZSURF definirea unei valori implicite pentru Z


ZSURF/Plan
ZSURF/a,b,c,d

Modificatori
• Pentru ca definirea unei entitati poate conduce la mai multe solutii posibile, modificatorii permit
discriminarea solutiei dorite.
Exemplu: Intersectia unei linii cu un cerc = 2 solutii posibile

?
?

7
4/10/2013

• XSMALL, YSMALL, XLARGE, YLARGE, RIGHT, LEFT, LARGE, SMALL,


etc.
A II-a intrare a definitiei

YLARGE
XSMALL
LEFT
Y

X
RIGHT
XLARGE
YSMALL

Prima intrare a definitiei

Declaratii geometrice (definitii ale entitatilor geometrice ale conturului de prelucrat)

• POINT
• Coordonate rectangulare
PNT1 = POINT/ xcoord, ycoord [,zcoord]
• Intersectia a doua linii
PNT2 = POINT/ INTOF, Linie1, Linie2
• Intersectia unei linii cu un cerc
PNT3 = POINT/ *Mod, INTOF, Linie1, Cerc1
• Intersectia a doua cercuri
PNT4 = POINT/ *Mod, INTOF, Cerc1, Cerc2
• Pe un cerc la un unghi PNT5
PNT5 = POINT/ Cerc1, ATANGL, Degrees Degrees
• Centrul cercului
PNT6 = POINT/ CENTER, Cerc1
Cerc1
• Intersectia linie conica
PNT7 = POINT/ *Mod, INTOF, Linie1, Conica

* Mod = XLARGE, YLARGE, XSMALL, YSMALL

8
4/10/2013

• Intersectia a trei plane


PNT8 = POINT/ Plan1, Plan2, Plan3
• Coordonate polare
PNT9 = POINT/ RTHETA, *Pref, Raza, Unghi
PNT10=POINT/ THETAR, *Pref, Unghi, Raza
• Intersectia linie TABCYL
PNT11=POINT/ INTOF, Line, TabCl1, Point
Point
TabCl1
Y
Line

PNT11
X

• Punctul N dintr-un patern


PNT12=POINT/ Patt, N

* Mod = XLARGE, YLARGE,


XSMALL, YSMALL
*Pref = XYPLAN, YZPLAN,
ZXPLAN

• POINT
PF
– Exemple
C2 45º
Z PG
PA = POINT/ 10,10 L2
PB = POINT/ INTOF, L1, L2 Y
PC = POINT/ YSMALL, INTOF, L1, C1 PE
C1
PE = POINT/ XSMALL, INTOF, C1, C2
PF = POINT/ C2, ATANGL, 45
PG = POINT/ CENTER, C2 10 PC L1
PA PB
PH = POINT/ YSMALL, INTOF, L2, K1
PI = POINT/ PL1, PL2, PL3
PJ = POINT/ THETAR, ZXPLAN, 45, 20
10 X
PH
45º

PL3 K1
PJ

PI PL2

PL1

9
4/10/2013

• LINE
• Prin 2 puncte
• LN1 = LINE/ x1, y1, z1, x2, y2, z2
LN2 = LINE/ x1, y1, x2, y2
LN3 = LINE/ Point1, Point2
• Punct + cerc tangent
LN4 = LINE/ Point1, RL*, TANTO, Cerc1
• Doua cercuri tangente
• LN5 = LINE/*RL, TANTO,C1, *RL,TANTO, C2
C1
LN4
RIGHT
Cerc1
LEFT
LEFT
Point1

LN4 ’ LN5
RIGHT C2

* RL = LEFT sau RIGHT


LN5 = LINE/ RIGHT, TANTO, C1, RIGHT, TANTO,C2

• Printr-un punct si un unghi


LN6 = LINE/ Point1, ATANGL, Degrees, {[XAXIS], YAXIS}

• Printr-un punct si un unghi


LN7 = LINE/ Point1, SLOPE, Tangte, {[XAXIS], YAXIS}

• Axa X sau Y
LN8 = LINE/ {XAXIS, YAXIS}

• Printr-un punct si o panta in raport cu o linie


LN9 = LINE/ Point1, SLOPE, Tangte, Linie1

• Printr-un punct si o panta in raport cu o linie


LN10 = LINE/ Point1, ATANGL, Degrees, Linie1

Point1
Point1

Degrees
Y LN10 Ligne1
LN6
Degrees
X

10
4/10/2013

• Printr-un punct si paralel la o linie


• LN11 = LINE/ Point1, PARLEL, Linie1
• Printr-un punct si perpendiculer pe o linie
LN12 = LINE/ Point1, PERPTO, Ligne1
• Paralel la o linie la o distanta
• LN13 = LINE/ PARLEL, Ligne1, Mod*, Dist
• Intersectia a doua plane
XSMALL
LN14 = LINE/ INTOF, Plan1, Plan2 YLARGE
Linie1
Y

LN13 LN6
LN13 = LINE/ PARLEL, LN6, YLARGE, 20
X YSMALL
XLARGE

* Mod = XLARGE, YLARGE,


XSMALL, YSMALL

• Panta si intersectia cu o axa


LN15 = LINE/ SLOPE, Degrees, INTERC, {YAXIS, [XAXIS]}, Val’
• Un unghi si intersectia cu o axa
LN16 = LINE/ ATANGL, Degrees, INTERC, {[YAXIS,] XAXIS}, Val
Y

Degrees

Degrees
X

Val ’
Val
LN16
LN15
• Printr-un punct si tangenta la un TABCYL in planul XY
LN17 = LINE/ Point1, TANTO, TabCl1, Point2
• Printr-un punct si perpendicular pe un TABCYL in planul XY
LN18 = LINE/ Point1, PERPTO, TabCyl1, Point2
Point2
Y
TabCyl1

Point1 LN17

11
4/10/2013

– Exemple

LA = LINE/ PT1, PT2


LB = LINE/ RIGHT, TANTO, CI1, LEFT, TANTO, CI2
LC = LINE/ PT1, RIGHT, TANTO, CI2
LD = LINE/ PT2, ATANGL, -30
LE = LINE/ XAXIS LH
LF = LINE/ PT2, ATANGL, -60, LD LB
LG = LINE/ PT1, PARLEL, LD LA
LH = LINE / PT1, PERPTO, LD
LD PT2
LI = LINE/ PARLEL, LD, XLARGE, 10
LJ =LINE/ ATANGLE, -45, INTERC,XAXIS, 80 LI
-30
10
-60
PT1 CI1

LG
LF

LE

80 -45
CI2

LJ

LC

• CIRCLE
• Prin coordonatele centrului si raza
C1 = CIRCLE/ xcoord, ycoord, zcoord, raza
C2 = CIRCLE/ xcoord, ycoord, raza
C3 = CIRCLE/ CENTER, Point1, RADIUS, raza
• Prin centru si tangenta la o linie
C4 = CIRCLE/ CENTER, Point1, TANTO, Linie1
• Prin centru si un punct de pe circumferinta
C5 = CIRCLE/ CENTER, Point1, Point2
• Prin 3 puncte pe circumferinta
C6 = CIRCLE/ Point1, Point2, Point3
• Prin centru si tangenta la un cerc
C7 = CIRCLE/ CENTER, Point1, {LARGE,SMALL}, TANTO, Cerc1

Cerc1
C7 LARGE

Point1

C7 SMALL

12
4/10/2013

• Prin raza si tangenta la 2 linii


C8 = CIRCLE/ *Mod, Linie1,* Mod, Linie2, RADIUS, raza

Linie1
XSMALL, Linie1, YLARGE, Linie2
YSMALL, Linie1, XLARGE, Linie2
XLARGE, Linie1, YLARGE, Linie2
YLARGE, Linie1, XLARGE, Linie2
raza

Linie2

XLARGE, Linie1, YSMALL, Linie2


YLARGE, Linie1, XSMALL, Linie2
XSMALL, Linie1, YSMALL, Linie2
YSMALL, Linie1, XSMALL, Linie2

* Mod = XLARGE, YLARGE, XSMALL, YSMALL

• Printr-un punct raza si tangenta la o linie


C9 = CIRCLE/ TANTO, Linie1, Mod*, Point1, RADIUS, raza
• Prin raza si tangenta la o linie si un cerc
C10 = CIRCLE/ Mod*, Linie1, Mod*, {IN, OUT,} Cerc1, RADIUS, r

…., XSMALL,…,Cerc1
…., YLARGE,…, Cerl1
XSMALL, Linie1, ….
YSMALL, Linie1, ….
Cerc1 …., XLARGE,…,Cerc1
…., YSMALL,…, Cerl1
Y
…,IN, Cerc1,...
…,OUT, Cerc1,...
Linie1

X …,OUT, Cerc1,...

C9
XSMALL
YLARGE raza
C9
XLARGE
YSMALL XLARGE, Linie1, ….
Linie1 YLARGE, Linie1, ….
* Mod = XLARGE, YLARGE, XSMALL, YSMALL

13
4/10/2013

• Prin raza si tangenta la doua cercuri


C11 = CIRCLE/ Mod*, IO*, Cerc1, IO*, Cerc2, RADIUS, raza

Cerc1

raza
…, IN, Cerc1, … …, OUT, Cerc1, …
…, OUT, Cerc2, … …, OUT, Cerc2, …

Cerc2
XLARGE, …..
YLARGE, …..
Y
…, IN, Cerc1, …
…, IN, Cerc2, …

XSMALL, …..
…, OUT, Cerc1, …
YSMALL, …..
…, IN, Cerc2, …
X

* Mod = XLARGE, YLARGE, XSMALL, YSMALL


* IO = IN, OUT

• Prin raza si tangenta la o linie si un TABCYL


C12 = CIRCLE/ TANTO, Linie1, Mod*, TabCl1, Mod*, Point1,
RADIUS, raza

Y Point1
TabC11

Ligne1
raza X

* Mod = XLARGE, YLARGE, XSMALL, YSMALL

14
4/10/2013

• PLANE
• Prin coeficientii ecuatiei canonice (ax + by + cz + d = 0)
PL1 = PLANE/ a, b, c, d
• Prin trei puncte
PL2 = PLANE/ Point1, Point2, Point3
• Printr-un punct si paralela la un plan
PL3 = PLANE/ Point1, PARLEL, Plan1
• Paralel cu un plan la o distanta
PL4 = PLANE/ PARLEL, Plan1, Mod*, Dist
• Printr-un punct si ortogonal pe un vector
PL5 = PLANE/Point1, PERPTO, Vect1
• Prin doua puncte si ortogonal pe un plan
PL6 = PLANE/ PERPTO, Plan1, Point1, Point2
PL7 = PLANE/ Point1, Point2, PERPTO, Plan1
• Printr-un punct si ortogonal pe 2 plane
PL8 = PLANE/ Point1, PERPTO, Plan1, Plan2

* Mod = XLARGE, YLARGE, ZLARGE, XSMALL, YSMALL,ZSMALL

– Exemple
PA = PLANE/ PT1, PT2, PT3
PB = PLANE/ PT4, PARLEL, PA
PC = PLANE/ PARLEL, PA, ZSMALL, 60 PT8
PE = PLANE/ PT5, PERPTO, VE1
PF = PLANE/ PERPTO, PE, PT6, PT5
PG = PLANE/ PT8, PERPTO, PE, PF PT6 PF

PT5 VE1

PG

Z
PE
Y
PT2
PT1

PA PT3

PT4
60 PB

X
PC

15
4/10/2013

• CYLNDR
• Printr-un punct, o axa si o raza (formeacanonica)
CY1 = CYLNDR/ x, y, z, a, b, c, Raza
CY2 = CYLNDR/ Point1, a, b, c, Raza
CY3 = CYLNDR/ x, y, z, Vect1, Raza
CY4 = CYLNDR/ Point1, Vect1, Raza

• CONE
• Printr-un punct o axa si cosinusul jumatatii unghiului la varf
CO1 = CONE/ x, y, z, a, b, c, CosAng
CO2 = CONE/ Point1, Vect1, CosAng

Z
Y Point1

Ang
Vect1

• SPHERE
• Prin centru si raza
SP1 = SPHERE/ x, y, z, raza
• SP2 = SPHERE/ Point1, raza
• SP3 = SPHERE/ CENTER, Point1, RADIUS, raza
• Prin centru si un punct de pe suprafata
SP4 = SPHERE/ CENTER, Point1, Point2
• Prin centru si un plan tangent
SP5 = SPHERE/ CENTER, Point1, TANTO, Plan1
• Prin patru puncte pe suprafata
SP6 = SPHERE/ Point1, Point2, Point3, Point4
• QADRIC
• Prin coeficientii formei canonice
Q1 = QUADRIC/ a, b, c, f, g, h, p, q, r, d
cu ax2+by2+cz2+2fyz+2gxz+2hxy+2px+2qy+2rz+d = 0

16
4/10/2013

• VECTOR
• Prin coordonate
VE1 = VECTOR/ CoordX, CoordY, CoordZ
• Prin 2 puncte
VE2 = VECTOR/ Point1, Point2
• Prin normala la un plan
VE3 = VECTOR/ PERPTO, Plan1, ModDir*
• Printr-un vector multiplicat cu un scalar
VE4 = VECTOR/ Scal1, TIMES, Vect1
• Prin produsul vectorial
VE5 = VECTOR/ Vect1, CROSS, Vect2
• Prin normalizarea unui vector, a unui punct sau a trei coordonate
VE6 = VECTOR/ UNIT, Vect1
VE7 = VECTOR/ UNIT, Point1
VE8 = VECTOR/ UNIT, CoordX, CoordY, CoordZ

*ModDir = POSX, POSY, POSZ, NEGX, NEGY, NEGZ

• Prin coordonatele polare intr-un plan de baza


VE9 = VECTOR/LENGTH, Long1, ATANGL, Angle1, ModPlan*
• Prin intersectia a doua plane
VE10 = VECTOR/ PARLEL, INTOF, Plan1, Plan2, ModPos*
• Prin adunarea sau scaderea a doi vectori
VE11 = VECTOR/ Vect1, PLUS, Vect2
VE12 = VECTOR/ Vect1, MINUS, Vect2
• Printr-un unghi in raport cu o linie din planul XY
VE13 = VECTOR/ ATANGL, Angle1, Linie1, Mod*

*ModPlan = XYPLAN, YZPLAN, ZXPLAN


*ModPos = POSX, POSY, POSZ, NEGX, NEGY, NEGZ
*Mod = POSX, POSY, NEGX, NEGY, XLARGE, YLARGE, XSMALL, YSMALL

17
4/10/2013

Declaratii de miscare

Traiectoria de conturare
• Principii de definire a conturului
– PS: Part Surface (Suprafata piesei)
Controleaza miscarea sculei in directia axei.
Este suprafata care trebuie generata. DS

– DS: Drive Surface (Suprafata conducatoare)


Controleaza miscarea sculei perpendicular pe
directia de deplasare. Este suprafata de ghidaj.
CS
– CS: Check Surface (Suprafata de verificare)
Controleaza sfarsitul miscarii. Este suprafata
tinta.

PS

– Observatie:
In 2D, PS este in mod obisnuit un plan paralel
cu XY si DS, CS sunt curbe. CS
DS
PS

• PS: Part Surface


– Aceasta suprafata controleaza in general profunzimea trecerii.
– Scula se gaseste continuu in contact cu PS cu toleranta definita.
– Planul XY este implicit PS.
– PS este modal si poate fi controlat prin:
• PSIS / Surf1
Surf1 devine PS-ul curent
• AUTOPS
PS este planul XY la cota curenta Z a sculei.
• GO/
Defineste o traiectorie in relatie cu suprafetele 1, 2 su 3.

18
4/10/2013

• Pozitia sculei / PS
DS DS
– TLON PS DS
Centrul sculei in contact cu PS

PS PS PS

Fara compensare de raza Compensare de raza Compensare de raza


la dreapta la stanga

DS DS
– TLOF PS DS
Un alt punct al sculei in contact
cu PS
PS PS PS

Nota: TLOF PS are influenta numai


la masinile unelte multi - axa

• DS: Drive Surface

– Aceasta suprafata ghideaza scula in spatiu mentinand relatia cu suprafata PS


– Scula se gaseste in permanenta pe suprafata DS cu toleranta definita.
– DS nu este modala si trebuie precizata explicit la fiecare deplasare de conturare.

• Pozitia sculei / DS
– TLFT
– TLRGT
– TLON
– TLNDON
DS DS DS

TLON
TLFT TLRGT
TLNDON

– Nota: TLFT, TLRGT, TLON si TLDNON sunt modali

19
4/10/2013

• Pozitia sculei pe suprafata de control CS

– TO
– ON
– PAST PS
– TANTO, DSTAN DS
– PSTAN

PSTAN

CS

CS
CS
CS

DS
DS
DS DS
TO
ON PAST TANTO
DSTAN

• Sintaxa generala a unei miscari de conturare

[label] TLLFT GOFWD /DS , TO , [n, INTOF,] CS


,
TLON GOBACK ON
Modificator
Facultativ TLNDON GORGT PAST intersectii multiple
TLRGT GOLFT TANTO
GOUP
GODOWN
Modificator in raport
Modifica pozitia
cu CS
sculei in raport Modifica directia in raport
cu DS cu miscarea precedenta

GOLFT
GOFWD
GOBACK
GORGT

20
4/10/2013

Initializarea unei traiectorii

• Deplasarea initiala nu poate fi realizata printr-o miscare de conturare


– Scula nu poate fi in contact cu piesa
– Originea deplasarii nu poate fi cunoscuta (pozitia curenta a sculei).
– Directia de deplasare este nedefinita.
• Definirea punctului initial
– FROM/ Point1 [, Vect1] [,Avans]
– FROM/ x, y, z [, i, j, k] [,Avans]
– FROM/ x, y (combinat cu ZSURF/ )

– Aceasta instructiune defineste un punct initial virtual, utilizat pentru calculul pozitiei sculei.
– Atentie: Pozitia sculei nu este fortata in acest punct.
– Vectorul defineste axa sculei (masini multiaxa).
– Ultimul parametru defineste viteza de avans.
– Aceasta instructiune nu genereaza nici o deplasare.

– Definirea unei directii de deplasare initiale teoretice.


• INDIRV/ Vect1
• INDIRP/ Point1

– Definirea primei miscari

[label] GO / TO , DS , TO , PS , TO , CS
ON ON ON
optional PAST PAST PAST
TANTO

– Pozitia sculei in raport cu suprafetele 1, 2 sau 3


– DS nu are aceeasi semnificatie ca in conturare
– Scula se deplaseaza pe traiectoria cea mai scurta intre pozitia reala si destinatia definita
prin instructiunea GO/….
– In timpul deplasarii nu se verifica nici o toleranta.

21
4/10/2013

– Exemple:

C1

FROM/P1
GO/ON,C1
P1

C2
L1
FROM/P1
GO/TO,L1

FROM/P2
P2
GO/PAST,C2

– Exemple:

SURF3 SURF4
P4
P3

PL3 PL4

FROM/P3
FROM/P4
GO/TO,SURF3,ON,PL3
GO/PAST,SURF4,ON,PL4

22
4/10/2013

– Exemple:

FROM/P5
GO/TO,L5,ON,PL1,PAST,C5 FROM/P5
P5
GO/PAST,L5,ON,PL1,TO,C6

C5
P6

L5

C6 FROM/P6
GO/TO,L5,ON,PL1,TANTO,C6

PL1: Planul ecranului

– Exemple:

FROM/P5
GO/PAST,L5,ON,PL1,TO,C6

FROM/P8
L18 INDIRP/P10 P8
FROM/P7 P7 GO/TO,L8
GO/TO,C7

C7 P10

FROM/P7
INDIRV/-1,-1,0 L8
GO/TO,C7
FROM/P8
INDIRP/0,0,0
GO/PAST,L18

FROM/P9 (0,0,0)
INDIRV/1,1,0
GO/PAST,L9,TO,PL1,PAST,C9
C9
P9 L9

FROM/P9
INDIRV/1,-1,0
GO/PAST,L9,TO,PL1,PAST,C9

23
4/10/2013

Traiectoria punct cu punct (interpolare liniara)


• Traiectorie liniara printr-un punct in coordonate absolute sau relative.
– In coordonate absolute
GOTO/ Point1 [,Vect1] [,Avans]
GOTO/ x, y, z [, i, j, k] [,Avans]
GOTO/ x, y
– In coordonate relative
GODLTA/ Vect1
GODLTA/ dx, dy, dz
GODLA/ Dltaxe
• Deplasarea pe un "PATTERN"
– GOTO/ Pat1
Aceasta instructiune genereaza un ansamblu de GOTO/ cu coordonatele fiecarui punct
din pattern.
Modificatorii (* INVERS, OMIT, RETAIN, AVOID, THRU, CONST) adauga
flexibilitate acestei instructiuni.
GOTO/ Pat1 [, MOD*, Num [, Nums]] [, …]

Declaratii auxiliare
• CLPRNT
Tipareste pozitiile cutitului la imprimanta
• PARTNO/
Defineste numele piesei
• FINI
Sfarsit fisier

H
• CUTTER/ D, R, E, F, A, B, H
Definitia completa a cutitului sculei
E
R
F
A
B
D

• Definitia simplificata
CUTTER/ D, R

CUTTER/ D CUTER/ D, R CUTTER/ D, R

Cu D = 2R cu D > 2R

24
4/10/2013

Definitia tolerantelor

• INTOL/ Val Val


Definirea unei tolerante prin lipsa.

Cota masurata

• OUTTOL/ Val
Definirea unei tolerante prin adaos.
Val

• TOLER/ Val Cota masurata


Alte forme de definire echivalenta cu:
INTOL/0
OUTTOL/ Val

Cota masurata

Declaratii post-procesor

• COOLNT/ {ON},{OFF},{FLOOD},{MIST}
Definirea modului de racire in prelucrare
• RAPID
Defineste deplasarea cu avans rapid
• SPINDL/
Defineste viteza de rotatie a cutitului
• FEDRAT/
Defineste viteza de avans
• TURRET/
Defineste scula folosita pentru prelucrare
• MACHINE/
Defineste masina unealta care realizeaza prelucrarea
• END
Sfarsitul program

25

Вам также может понравиться