Академический Документы
Профессиональный Документы
Культура Документы
2.1 Introducere
viata produs
afacerii si lansare
(2) Organizatii
(4) Planificare
(2) Echipe
Sevicii
clienti
(1) Clienti
Planificare
(2) Oameni
operatii
Vanzari si
(3) Sisteme
Management Productie
Organizatii
materiale componente
(4) Fabricatie
globale
Asamblare si
testare
1
4/10/2013
Managementul
resurselor umane
Proiectare
Planificarea
si controlul
Productie fabricatiei
(MPC)
Marketing
si vanzari
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ă:
• Productie: Ultimul proces include activităţile asociate cu producţia sau cu “shop floor”.
Sistemul de luare a Sisteme informatice Proiectare Analiza Asigurarea Ingineria Controlul shop-floor
deciziilor de fabricaţie calitatii fabricatiei
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
4
4/10/2013
a. Comunicatiile
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:
6
4/10/2013
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.
7
4/10/2013
Î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).
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.
8
4/10/2013
Sistemul informaţional la care operarea este asistată de calculator sau decurge automat
poartă denumirea de sistem informatic.
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.
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)
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
Raport de vânzări
pentru sfârşitul săptamânii
Vanzari pe produs
pentru luna iunie
NUMAR NUME VANZARI VANZARI
PRODUS PRODUS LUNA CURENTA Cumulate
11
4/10/2013
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
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 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
Nivele de management
Controlul Controlul Planificare
operatiilor managementului strategica
14
4/10/2013
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.
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
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
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.
Manageri
de nivel înalt
17
4/10/2013
E I S
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
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ă.
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.
19
4/10/2013
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
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
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.
1
4/10/2013
– 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
- Modelul relational-obiect: este similar celui relational, dar schema datelor suporta in definirea obiectelor,
notiunile programarii pe obiecte si limbajul de interogare.
Schema bazei de date este structurata de administratorul bazei de date (DBA), dupa anumite
proceduri corespunzator metodologiei de proiectare logica a bazei de date.
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:
O tranzactie reprezinta un set de actiuni elementare (inserare, stergere) asupra obiectelor ce contin
date.
3
4/10/2013
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 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]
Normalizare
Proiectarea fizică
Selectează indecşi
[cerinţe speciale]
Denormalizare
[else] Implementare
Implementare
[else]
Monitorizare
[defunct]
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
N N
served-by sold-by
1 salesperson
N
b) integrarea vederilor
N
customer N order for
1 places
N
N
N
salesperson order-product
6
4/10/2013
Salesperson Sales_vacantions
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 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..
7
4/10/2013
entitate
Employee
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.
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
1 1 1 N
Has
Engineer Desktop department has employee
allocated
1 N
Department Report N Belongs N
publishes engineer
-to Prof-assoc
9
4/10/2013
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
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:
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”.
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
N
manager secretary engineer technician
location 1 1 1 N
1 1 1 N
11
4/10/2013
Constrangerile de integritate – sunt reguli care restrang valorile care pot fi prezente in baza de date.
- 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
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:
12
4/10/2013
Student
13
4/10/2013
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) 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
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.
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.
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:
15
4/10/2013
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.
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.
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
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.
In concluzie:
pentru ca relatia R(a,b,c,d) cu cd sa fie in forma 3NF aceasta se transforma in:
R(a,b,c)
R1(c,d)
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:
Pentru a fi o forma BCNF, toti determinantii valizi trebuie sa fie candidat de cheie.
In relatia R,
a,bc,d este determinantul folosit, astfel incat primul determinant este bun.
a,db 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
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)
DB(Patno,appNo,Time,doctor)
R1(Patno,PatName)
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)
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)
– DB(Patno,Time,doctor)
– R1(Patno,PatName)
– R2(Time,appNo)
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.
• 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
- BCNF
Student(StudNo, StudName)
StudCourse(StudNo, Major, CourseNo, Grade)
Course(CourseNo, Ctitle, InstrucName)
Instructor(InstructName, InstructLocn)
StudMajor(StudNo, Advisor)
Adviser(Advisor, Major)
Fie tabelul
20
4/10/2013
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.
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
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
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:
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).
23
4/10/2013
Formatarea comenzilor
Comentarii
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
24
4/10/2013
Comparatii
Date calendaristice
Datele calendaristice sunt considerate de valoare mai mare cu cat sunt in viitorul mai indepartat.
Astfel, DATE1>DATE2 indica DATE1 in viitor dupa DATE2.
25
4/10/2013
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:
NULL
REGNO
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:
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%’;
SC04 BFE
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
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.
Paranteze
• Poate fi mai clar:
SELECT regno,colour from car
WHERE ( colour = ‘RED’ OR colour = ‘BLUE’ )
AND regno LIKE ‘%5%’
DISTINCT
COLOUR COLOUR
RED RED
BLUE BLUE
BLUE GREEN
GREEN
BLUE
28
4/10/2013
ORDER BY
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
PRICE
AVG(PRICE)
12000
12800
11000
22000
6000
13000
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;
GREEN 6000
BLUE 13000
30
4/10/2013
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
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;
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
31
4/10/2013
SELECT *
FROM car,driver
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
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;
SELECT *
FROM car JOIN driver ON ( owner = name );
OUTER JOIN
33
4/10/2013
SELECT *
FROM car LEFT JOIN driver ON ( owner = name )
;
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 )
;
34
4/10/2013
Right
SELECT *
FROM car RIGHT JOIN driver ON ( owner = name )
;
Example: Full
SELECT *
FROM car FULL JOIN driver ON ( owner = name )
;
Numele
• Cateodata coloana nume poate fi ambigua daca de exemplu se face referire la doua tabele,
ambele avand o coloana NAME:
• Aceasta interogare esueaza din motivele aratate, dar se poate rezolva prin:
35
4/10/2013
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 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…
• Sunt doua interogari si dorim sa facem intr-o singura interogare. Sa stocam cele
doua interogari in doua vederi diferite.
37
4/10/2013
Subqueries
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’)
;
• 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.
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.
IN and NOT IN
• O subquery returneaza rezultatul ca o multime.
• Astfel putem utiliza IN si NOT IN in subqueries.
Exemplu cu NOT IN
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.
SELECT name,count(*)
FROM driver JOIN car on (name = owner)
NAME Count(*)
Jim Smith 2
Bob Smith 1
Bob Jones 1
40
4/10/2013
SELECT name,0
FROM driver
WHERE name NOT IN (select owner from car)
NAME
David Davis 0
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)
41
4/10/2013
DELETE
• 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]
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:
• 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
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.
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.
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
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.
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.
3
4/10/2013
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.
ARBORI DE DECIZIE
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
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
– 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
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.
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:
7
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:
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:
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
Necunoscuta 1 1 0 2
Rea 1 0 0 1
Buna 0 1 0 1
Total 2 2 0 4
Gain
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.
Necunoscuta 0 0 2 2
Rea 0 1 0 1
Buna 0 0 3 3
Total 0 1 5 6
Gain
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
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:
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):
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
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
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
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
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
3 6 3 2
Gain(Play,Humidity)= Info(Humidity) -
Info(Temperature,S) = 0.940 – 0.937 = 0.003
GainRatio(Play,Humidity )= 0,003/0,985=0,003
3
4/10/2013
Info(Windy) = I{8/14,6/14}=0,985
2 6 3 3
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:
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
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
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
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
6
4/10/2013
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
7
4/10/2013
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
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
RM 0 0 0 RM 0 0 RM 0 0
Rm 2 0 3 Rm 2 3 Rm 3 2
9 casatorit 75k no no 2 4 1
9
4/10/2013
<=97k >97k
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
10
4/10/2013
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.
Elaborarea
conceptului Sinteza Analiza Evaluarea Documentaţia
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).
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.
12
4/10/2013
Cercetarea
pieţei
Stabilirea costurilor şi a
sarcinilor de producţie
Da
Dezvoltarea sistemului de
fabricaţie
Operarea sistemului de
fabricaţie
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.
13
4/10/2013
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.
Î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.
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
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
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.
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
20
4/10/2013
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
Modelarea solidului
21
4/10/2013
Crearea primitivelor
Operatii Booleene
Operatii de baleiere
22
4/10/2013
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
Masina unealta
(MU)
1
4/10/2013
Limbaje simbolice
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
Post-Procesor
Cod G
(masina i)
3
4/10/2013
LY
• Exemplu de program
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
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
– 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:
• VECTOR Vector
• MATRIX Matrice
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
YLARGE
XSMALL
LEFT
Y
X
RIGHT
XLARGE
YSMALL
• 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
8
4/10/2013
PNT11
X
• 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
• Axa X sau Y
LN8 = LINE/ {XAXIS, YAXIS}
Point1
Point1
Degrees
Y LN10 Ligne1
LN6
Degrees
X
10
4/10/2013
LN13 LN6
LN13 = LINE/ PARLEL, LN6, YLARGE, 20
X YSMALL
XLARGE
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
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
Linie1
XSMALL, Linie1, YLARGE, Linie2
YSMALL, Linie1, XLARGE, Linie2
XLARGE, Linie1, YLARGE, Linie2
YLARGE, Linie1, XLARGE, Linie2
raza
Linie2
…., 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
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
Y Point1
TabC11
Ligne1
raza X
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
– 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
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
PS
– Observatie:
In 2D, PS este in mod obisnuit un plan paralel
cu XY si DS, CS sunt curbe. CS
DS
PS
18
4/10/2013
• Pozitia sculei / PS
DS DS
– TLON PS DS
Centrul sculei in contact cu PS
PS PS PS
DS DS
– TLOF PS DS
Un alt punct al sculei in contact
cu PS
PS PS PS
• Pozitia sculei / DS
– TLFT
– TLRGT
– TLON
– TLNDON
DS DS DS
TLON
TLFT TLRGT
TLNDON
19
4/10/2013
– TO
– ON
– PAST PS
– TANTO, DSTAN DS
– PSTAN
PSTAN
CS
CS
CS
CS
DS
DS
DS DS
TO
ON PAST TANTO
DSTAN
GOLFT
GOFWD
GOBACK
GORGT
20
4/10/2013
– 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.
[label] GO / TO , DS , TO , PS , TO , CS
ON ON ON
optional PAST PAST PAST
TANTO
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
– 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
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
Cu D = 2R cu D > 2R
24
4/10/2013
Definitia tolerantelor
Cota masurata
• OUTTOL/ Val
Definirea unei tolerante prin adaos.
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