Sunteți pe pagina 1din 125

4/10/2013

Cap. 2 Sistemul CIM (Computer Integrated Manufacturing) 2.1 Introducere


Definiia dup CASA (Computer and Automation Systems Association): CIM este conceptul de integrare total a activitilor ntreprinderii realizat prin integrarea sistemelor, a comunicaiilor de date i a noi filozofii manageriale care mbuntesc eficiena organizatoric i de personal. Definiia dup dicionarul APICS: CIM Integrarea organizatoric total a fabricaiei prin folosirea sistemelor de calcul i a filozofiilor manageriale cu scopul de a mbunti eficiena organizatoric; utilizarea calculatoarelor pentru a interfaa diverse sisteme de calcul i conectarea acestora coerent ntr-un tot unitar. De exemplu integrarea sectorului financiar, sistemului CAD/CAM, a controlului proceselor, a sistemelor grupului tehnologic, MRPII, sistemul de raportri financiare. Toate acestea sunt legate prin interfee. Mediul informational al unei intreprinderi suporta schimbari frecvente in configuratie si tehnologie. O arhitectura CIM este un sistem informatic care permite intreprinderilor industriale sa integreze informatiile si procesele afacerii, oferind o structura flexibila care ii permite sa reactioneze rapid la aceste schimbari. Structura se bazeaza pe un numar de elemente modulare care se pot modifica usor si se pot dezvolta dupa cerintele intreprinderii. Modelul conceptual al unui sistem CIM este ilustrat de Society of Manufacturing Engineers in figura urmatoare.

(6) Infrastructura de fabricatie


(5) Oameni- materiale Scule RESURSE Informatii Tehnologii - Furnizorii
Transformari ciclu de viata produs Proiectare Proiectare Imbunatatire sistem componente continua Definirea (4) Definire produs/proces Documentatie afacerii si lansare

Competitorii, distribuitori, resurse naturale

(3) Cunostinte partajate (2) Organizatii (1) Clienti (2) Oameni (3) Sisteme
globale Management materiale Planificare resurse Planificare operatii

(4) Suport clienti

Vanzari si promotie

(4) Planificare

(2) Echipe

Sevicii clienti

Organizatii

(4) Fabricatie
Asamblare si testare

Productie componente

(5) Angajati- investitori comunitati RESPONSABILITATI


Piee financiare, comuniti, guverne, instituii de nvmnt i de cercetare.

reguli etica - mediu

4/10/2013

Conceptul CIM are o dezvoltare pe niveluri :


nivelul 1: Clienii reprezint inta principal pentru toate activitile i efortul de fabricaie. nivelul 2: Acest nivel cuprinde metodele de organizare, motivare, perfecionare, evaluare i comunicare dezvoltate pentru realizarea muncii n echip i pentru cooperare. nivelul 3: se refer la partajarea cunotinelor, sistemelor i a bazelor comune de date utilizate pentru a ajuta personalul i procesele. Resursele includ instrumente manuale sau de calcul pentru a ajuta proiectarea cercetarea, elaborarea documentaiei luarea deciziilor i controlul tuturor activitilor. nivelul 4: Sunt patru categorii principale de procese: definirea produsului i a proceselor de fabricatie, planificarea, fabricaia i suportul clienilor. Definirea produs/proces: Definirea afacerii, proiectarea produsului, proiectarea componentelor, perfecionarea proiectului, documentaia i lansarea produs. Planificare: planificare operatii si planificare resurse Fabricaie: Managementul materialelor, asamblare i testare, fabricaia componentelor, planificarea capacitilor, planificarea resurselor. Suportul clienilor: vnzri i promovare, tranziii pe timpul ciclului de via, servicii clieni. nivelul 5: resursele companiei care includ : capitalul , personalul, materiale, management, informaii, tehnologie i furnizori. Compania are responsabiliti ctre angajai, investitori, i comunitate. Trebuie s respecte reguli de etic i obligaii fa de mediu. nivelul 6: Infrastructura. Aceasta include clienii, furnizorii, competitorii, distribuitori, resurse naturale, piee financiare, comuniti, guverne, instituii de nvmnt i de cercetare. In figura urmatoare este o alta reprezentare a structurii CIM ce evidentiaza: procesele datele si resursele sistemului.

Managementul resurselor umane

Proiectare

Productie

Planificarea si controlul fabricatiei (MPC)

Marketing si vanzari

Modelul sistemului CIM cu evidentierea proceselor datelor si resurselor sistemului

4/10/2013

Structura CIM include trei procese care se suprapun. Zona comun reprezint datele i resursele. De asemenea cele trei procese sunt susinute de resursele din cercul care le nconjoar: Proiectare i elaborarea documentaiei, denumit product/process i care include: definirea afacerii, proiectarea sistemului, proiectarea componentelor, mbuntirea continu, documentaie i lansare. Acest sistem poart denumirea de CAD. CAD utilizarea calculatoarelor n desenul tehnic interactiv i n arhivarea proiectelor. Programele realizeaz forma, transformri geometrice, proiecii, rotaii, schimbarea scrii de reprezentare, seciuni, vederi pariale a prilor i a relaiilor dintre acestea (definiia APICS). CAE Procesul de generare i testare a specificaiilor tehnice pe platforme de calcul. Planificarea si controlul fabricatiei (MPC) include procesele de planificare programare, managementul inventarului si planificarea capacitilor necesare pentru desfurarea eficient a fabricaiei. Procesul include: managementul materialelor, elaborarea specificaiilor de asamblare i testare, fabricaia componentelor, planificarea operaiilor, i planificarea resurselor. CAPP O metod de planificare a proceselor n care sistemul de calcul asist n dezvoltarea planurilor proceselor de fabricaie (definirea operaiilor, secvena, cerinele de maini i scule, parametrii de fabricaie, tolerane, criterii de inspecie). Inteligena artificial i sistemele de codificare i clasificare sunt utilizate n generarea planului de procesare. CAM Utilizarea programelor de calculator pentru programarea, comanda controlul echipamentelor de produciei pentru fabricaia componentelor. CNC O tehnic prin care controlerele mainilor unelte utilizeaz calculatoare sau microprocesoare pentru stocarea i execuia instruciunilor numerice. PAC (Production activity control): funcia de rutare i lansare n fabricaie a operaiilor care trebuie executate pe facilitile de producie i realizarea controlului furnizorilor. PAC cuprinde tehnicile necesare de programare, control, msur i evaluare a eficienei operaiilor de producie. MRPII Manufacturing resource planning O metod pentru planificarea eficient a tuturor resusrselor de fabricaie ale companiei. Este compus din: planificarea afacerii, planificarea vnzrilor i a operaiilor, planificarea produciei, planul de producie, planificarea necesarului de materiale, planificarea capacitilor. Productie: Ultimul proces include activitile asociate cu producia sau cu shop floor.

Computer Integrated Manufacturing (CIM)

Nivelul strategic Managementul asistat de calculator

Nivelul tactic Ingineria asistat de calculator (CAE)

Nivelul operational Fabricatia asistata de calculator (CAM)

Sistemul de luare a deciziilor - AI: Inteligena artificial - DSS: Sisteme de support al deciziei - DBMS: Sistemul de management al bazei de date

Sisteme informatice de fabricaie - MIS: Sistemul informatic de management - MRP: Planificarea necesarului de materiale - BOM: Lista de materiale

Proiectare - CAD - GT

Analiza - FEA - FEM

Asigurarea Ingineria calitatii fabricatiei -CAQ -- SPC - CAP - GT - NC

Controlul shop-floor - CNC - Roboti - FMS - WIP - AS/RS

Modelul sistemului CIM cu evidentierea nivelurilor ierarhice

4/10/2013

PPS MPS MRP Planificare CAP


Plan productie Planificare materiale Planificare capacitati

CAD/CAM
Proiectare Ciclul de productie Plan de lucru Programe NC Pregatirea fabricatiei Colectare date proces Comanda Transport

CAD Planificare Realizare CAE

Comanda si planificarea productiei

Realizare

Control montaj Comanda expeditie

Asamblare Control calitate

CAQ

Modelul in Y a sistemului CIM

2.2 Etapele introducerii conceptului CIM: 1. Evaluarea ntreprinderii sub aspectul : tehnologiei, a resurselor umane i a
sistemului. Analiza nivelului tehnologic i gradul de sofisticare a proceselor utilizate n fabricaie. Nivelul cunotinelor angajailor privind conceptului CIM Analiza critic a sistemului de producie n care urmeaz s se introduc conceptul. Obstacole pentru implementarea CIM : Lipsa experienei n interiorul ntreprinderii 55%, la nivel managerial nu se obin beneficii 48%, planificare inadecvat sau lips de viziune 46%, metode inadecvate de analiz a costurilor 43%, lipsa de fonduri 36%, frica eecului implementrii 27%, companii care nu au nevoie 8%, altele 5%.

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

pierderilor la nivelul operaiilor sau a activitilor pentru mbuntirea productivitii i eficienei departamentelor i organizaiei.

3. Implementarea cu msurarea performanelor. Parametrii evaluai: timpul ciclului de producie, durata de staionare n inventar, timpii de pregtire a fabricaiei, eficiena fabricaiei, calitatea, productivitatea angajailor.

CAM

Asamblare

4/10/2013

2.3 Componente tehnologice in structura CIM


Structura flexibila a sistemului se bazeaza pe utilizarea urmatoarelor componente tehnologice: comunicatiile, baza de date (managementul datelor: definirea, stocarea, securitatea si gestionarea modului de utilizare a datelor) si modul de prezentarea datelor utilizatorilor si dispozitivelor din componenta intreprinderii.

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

4/10/2013

Comunicatiile prin rolul lor de a distribui datele intreprinderii catre utilizatori, sisteme si dispozitive, reprezinta un aspect critic al arhitecturii, sistemul de fabricatie utilizand o gama larga de sisteme de calcul, tehnologii, arhitecturi de sisteme, sisteme de operare si aplicatii. Aceasta diversitate creaza o dificultate deosebita in realizarea comunicatiei dintre oameni si masini, in special cand utilizeaza formate diferite pentru date. Plecand de la aceasta problema IBM a dezvoltat sistemul SNA - System Network Architecture, cu rolul de a permite comunicatia dintre diferite sisteme IBM. In decursul anilor sistemul a devenit un standard de comunicatii in multe companii industriale. Cerintele CIM necesita o integrare mai larga decat cea oferita de sistemul SNA. De exemplu la nivelul sistemului de productie (shop-floor), solutia oferita de IBM este IBM Plant Floor Series, un set de produse software. O componenta a setului, Distributed Automation Edition (DAE) este un sistem ce permite functii de comunicatie pentru aplicatiile de la nivelul shop-floor: - definirea si menagementul retelelor - asignarea dispozitivelor logice - managementul bibliotecilor de programe - rutarea mesajelor si gestionarea mesajelor in cozi de asteptare - Stabilirea unor proceduri de alertare - Monitorizarea starii celulelor de lucru DAE suporta diferite protocoale de comunicatie ca de exemplu protocolul ISO tokenring MAP (Manufacturing Automation Protocol) , IBM-PC Network sau protocolul CSMA/CD, TOP (Technical Office Protocol). Aceste functii ii permit sistemului DAE sa asiste ingineria fabricatiei in dezvoltarea programelor, controlul centrelor de lucru si sa ofere capabilitati de comunicatie intre sistemele zonale si sistemul central.

Managementul si prezentarea datelor Sistemul de managementul datelor - reprezinta de asemenea o componenta critica datorita diferitelor baze de date, formate, metode de stocare si accesare a datelor. Managementul datelor defineste si inregistreaza locatiile datelor create si utilizate de functiile afacerii intreprinderii. De asemenea sistemul permite accesarea datelor fara a fi cunoscuta locatia in care se gasesc datele. In arhitectura CIM, managementul datelor este realizat prin trei functii de depozitare individuale: Fisiere de date locale Aria de depozitare a datelor Sistem de stocarea datelor intreprinderii Functiile principale ale managementului datelor sunt implementate de Consolidated Design File (CDF), functii stabilite prin IBM Data Communication Service (DCS). CDF opereaza cu baze de date relationale si este construit pe limbajul SQL. Un exemplu de utilizare este la nivelul bazei de date care integreaza componentele CAD/CAM cu cerintele afacerii prin functiile de management al proceselor ingineresti. In acest mediu, sistemul IBM DCS/CDF furnizeaza urmatoarele functii: Transforma datele in formatul cerut de utilizator Depoziteaza datele CAD/CAM Adauga atributele datelor CAD/CAM Permite utilizatorilor sa interogheze date si atribute.

4/10/2013

Prezentarea datelor in mediul CIM Functia aceasta asigura ca datele sa ajunga in formatul corespunzator la utilizatori si dispozitive. Aceasta functie este critica datorita faptului ca sistemul de fabricatie contine o gama foarte larga de dispozitive si de cerinte informationale, trebuie sa asigure un mod consistent de distribuire si prezentare a informatiei catre oameni, masini unelte, roboti, senzori, sisteme cu coduri de bare, vehicule ghidate automat (AGV) si sisteme AS/RS. Gama informatiilor cuprinde de la mesaje simple la transferul unor arii mari de date pentru aplicatii de proiectare inginereasca. Sistemele sunt distribuite si informatia trebuie trimisa in locatiile in care este ceruta de utilizatori sau dispozitive. Echipamentele utilizate pentru prezentarea datelor sunt display-uri care utilizeaza diferite tehnologii. Unele sunt ne-programabile in timp ce altele sunt statii de lucru programabile si sunt implementate in mod unic pentru fiecare aplicatie. In consecinta aceeasi informatie este tratata diferit de diferite aplicatii. De exemplu, o componenta a produsului fabricat este tratata ca un cod in aplicatia Listei de materiale, a sistemului de Planificare a Productiei, ca un desen in CAD sau ca o componenta in proiectarea rutelor Planului de Operatii.

4/10/2013

2.4 Concepte IT i sisteme informaionale pentru conducerea fabricaiei.


Sistemul informaional - cuprinde ansamblul mijloacelor i procedurilor de prelucrare, clasificare, stocare, difuzare i valorificare a datelor i informaiilor la nivelul unei entiti economico-sociale. Obiectivul principal este acela al furnizrii de informaii sub form utilizabil la momentul oportun, n scopul asigurrii bunei funcionri a sistemelor operaionale, precum i lurii deciziilor la diferite niveluri. Acest obiectiv este susinut de doua caracteristici eseniale ale sistemului informaional: - sprijinirea procesului decizional i - coordonarea intr-un sistem cu mai multe niveluri. ntr-o prim clasificare, bazat pe funcia sistemului informaional, acesta poate fi de mai multe tipuri: de prelucrare a tranzaciilor: Transaction Processing System (TPS) Sistemul de Procesare a Tranzaciilor, de conducere: Management Information System (MIS) - Sistemul Informaional al Managementului, Integrated Information System (IIS) Sistem Informaional Integrat i Enterprise Wide Systems (WIS) Sistemul Lrgit al ntreprinderii (o aplicaie in care logistica este considerata ca parte a sistemului), de sprijinire in luarea deciziilor: Decision Support System (DSS) i pentru conducere executiva: Executive Information System (EIS).

Functiile sistemelor informationale:


TPS - preia datele generate de activitatea intern economico-social n baza de date intern i constituie infrastructura unuia din nivelurile sistemului informaional. MIS pleac de la TPS i sintetizeaz informaiile, in rapoarte periodice cu un format predefinit. DSS Deoarece rapoartele oferite de MIS nu sunt suficient de relevante pentru luarea deciziilor, mai ales la nivelurile superioare, s-au dezvoltat sistemele DSS. n general exista mai multe DSS intr-o ntreprindere deoarece, de exemplu, controlul tactic financiar este foarte diferit n ceea ce privete cerinele informaionale de controlul tactic al produciei. EIS (CIS) Sistemul de sprijinire a deciziilor la nivelurile superioare de conducere este denumit sistem informaional pentru conducere executiva, dezvoltat in formele: - Executive Information System (EIS) Sistemul Informational Executiv - Corporate Information System (CIS) Sistemul Informaional al Corporaiei. Acestea integreaz informaii provenind de la mai multe surse interne i externe ntreprinderii i permit managerilor s controleze i s dispun de informaiile necesare lurii deciziilor, prezentate intr-un mod personalizat.

4/10/2013

Sistemul informaional la care operarea este asistat de calculator sau decurge automat poart denumirea de sistem informatic. Sistemul informatic este structurat ierarhic pe nivelurile: tranzacional (se prelucreaz evenimente elementare ce reprezint activitile ntreprinderii), operaional (reprezinta nivelul cel mai de jos al deciziei in ntreprindere), tactic (informaiile obinute reprezint suportul de nivel intermediar al deciziei, eseniale in activitatea de control), strategic (suportul deciziei de nivel nalt pentru probleme complexe i puin repetitive).

Funciile sistemelor informatice in procesele manageriale sunt: nregistrarea tranzaciilor, gestiunea i stocarea operaiilor, sprijinirea in luarea deciziilor si comunicarea. Subsistemele de nregistrare a tranzaciilor sunt cele mai puternic automatizate, deoarece aici s-au concentrat majoritatea aplicaiilor informatice. Funciile eseniale sunt in acest caz: preluarea faptelor elementare, stocarea si gestiunea datelor componente in fiiere si baze de date.

2.5 Sistemul de management al informaiilor (MIS)


Definiie: Un sistem informatic care permite ca informaia, sub forma rapoartelor periodice, rapoartelor speciale sau rezultate din simulare, sa fie accesibila utilizatorilor de la aceeai arie funcionala, de la acelai nivel de management sau utilizatorilor, manageri sau non-manageri care au aceleai cerine. MIS este o resurs organizaional care furnizeaz informaii din trecut, prezent i elaboreaz informaii referitoare la evoluii viitoare. A constituit prima ncercare de a face datele disponibile managementului, fiind introdus n anii 1960. In contextul actual MIS este un subsistem al sistemului global de control al afacerii ce acopera aplicatiile utilizatorilor, documente, tehnologii si proceduri utilizate de managerii contabili pentru a solutiona probleme ale afacerii precum: costurile produsului, servicii sau strategii de afacere. Sistemele MIS sunt utilizate pentru a analiza alte sisteme de informatii aplicate in activitatile operationale ale organizatiei. Termenul este folosit uzual pentru a se face referire la grupuri de metode de managementul informatiei folosite pentru automatizarea sau suportul uman in luarea deciziei. La inceput, in afaceri sau in alte organizatii, rapoartele interne pe produse erau facute manual si numai periodic, de sistemul contabil. Acestea aveau adaugiri statistice si ofereau informatii limitate si intarziate sistemului de management. Apoi datele au fost separate individual pe persoane, in functie de cerintele informatice individuale ale departamentelor din care faceau parte. Mai tarziu s-a facut o distinctie intre date si informatii, stocandu-se colectii mari de date in functie de cerintele organizatiei

4/10/2013

Avantaje: Aduce contribuii prin faptul c formeaz o resurs de management a informaiei la nivel organizaional (arie functionala, manageri, etc) Asigur furnizarea continu de informaii ctre manageri pentru identificarea i nelegerea problemelor. Modelul MIS: Baza de date: - Date i informaii despre mediu Sistemul de informaii intra-organizaional: - Modele matematice - Software pentru elaborarea rapoartelor
Rezolvarea problemelor organizaiei

Software pentru elaborarea rapoartelor

Modele matematice

Baza de date

Sistemul de Management al Informaiilor (MIS)

Mediu Date Informaii

Modelarea matematica
Modelele sunt abstracii ce pot fi: statice sau dinamice deterministe sau probabilistice optimizatoare sau suboptimizatoare (vezi lab1)

Simularea - folosirea unui model este denumit simulare


Scenarii condiii care influenteaz modelul Variabilele de decizie sunt valorile de intrare Formatul de ieire variaz

Ieirea grafica
Se folosesc grafice pentru: Prezentarea unui sumar rapid al datelor Detectarea unor tendine in timp Activitti 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 tendina Bare chart grupate pentru reprezentarea parilor ca un ntreg Compararea variabilelor folosind bare orizontale nu verticale Linii simple sau bare chart pentru compararea datelor

10

4/10/2013

Software pentru elaborarea rapoartelor


Elaboreaz rapoartele periodice i cele speciale pot avea aceeai structur, diferena dintre ele constnd in: Rapoartele periodice produse conform programrii Rapoarte speciale produse cnd are loc un eveniment deosebit I Incorporarea managementului excepiilor Pregtirea rapoartelor numai cnd au loc excepii Folosirea secvenei rapoartelor pentru a scoate in eviden excepiile Gruparea excepiilor Prezentarea variaiei fa de norm Exemple de rapoarte furnizate de sistem:
Raport de vnzri pentru sfritul sptamnii 16-10 16-11 16-12 16-13 16-14 16-15 16-16 Receptii $ 2,305.00 Inspectie $ 1,025.60 Manipulari materiale $ 3,392.50 Scule $ 78.00 Asamblare $ 0.00 Plating $ 3,504.90 Livrare $ 5,219.16 TOTAL: $15,525.16 $ 5,319.20 $ 4,386.12 $12,629.00 $ 1,049.00 $ 792.80 $12,635.20 $18,294.16 $55,105.48

Vanzari pe produs pentru luna iunie


NUMAR PRODUS 129875 087235 118320 250067 228203 576000 516012 090407 282130 576301 NUME PRODUS CUTIE CENTRU GASKET AX PRINCIPAL AX 1 DE MISCARE GARNITURA ULEI REDUCTOR HUB 5 MANETA FURCA INEL DE SINCRONIZARE 2 MANETA DE LEVIER GARNITURA POMPA ULEI VANZARI LUNA CURENTA $ 5,090.23 4,760.01 1,789.45 11,560.24 8,369.34 .00 450.95 2,243.27 .00 .00 VANZARI Cumulate $ 31,764.00 29,329.45 28,243.59 23,450.07 14,709.03 13,623.68 12,634.44 9,963.58 490.00 11.50

11

4/10/2013

GRAFIC DE LINII MULTIPLE GRUPATE


Profit vanzari

GRAFIC TIP BARE GRUPATE Profit vanzari


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

Ani

Apples

Oranges

Peanuts

GRAFIC CU SEGMENTE DE BARE DIVIZATE

Vnzri Beneficiu

200 150 Milioane dolari 100

50 0 1980 1981 Ani 1982 1983 1984

Legenda:
Apples Oranges Peanuts

12

4/10/2013

2.6 Sisteme de suport in luarea deciziilor Definitia unui Sistem de suport al deciziei (DSS) Definitia (Gorry si Scott-Morton 1971) un DSS este un sistem interactiv bazat pe calculator care ajuta in luarea deciziilor, utilizeaza date si modele pentru a rezolva probleme nestructurate. (Keen si Scott-Morton 1978) - un sistem DSS cupleaza resursele intelectuale ale indivizilor cu capabilitatile calculatorului pentru a imbunatati calitatea deciziei. Este un sistem bazat pe calculator pentru, managementul luarii deciziilor, care este utilizat in probleme semistructurate. Definitie: un sistem ce furnizeza atat rezolvarea-problemelor cat si capabilitati de comunicare pentru probleme semistructurate. In particular un sistem care suporta un singur manager sau un grup reltiv mic de manageri care lucreaza in echipa pentru rezolvarea unei probleme semistructurate prin furnizarea unor informatii sau facand sugestii cu privire la decizii specifice. Luarea deciziei Fazele (activitatile) in luarea deciziilor Inteligenta: Gaseste probleme, defineste problema (cauze, scopuri, restrictii) Proiectare Creeaza, inventeaza, deriveaza diferite solutii posibile Alegere Analizeaza alternative, alege, implementeaza Revizuire Examineaza rezultatele, revizue dupa caz.

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

Scoaterea elementelor de informatie

Analiza intregului fisier

Pregatire rapoarte din fisiere multiple

Estimarea consecintelor deciziei

Propunere decizii

Luare decizii

Gradul de suport in rezolvarea problemelor

Mic

Gradul de complexitate in rezolvarea problemelor

Mare

13

4/10/2013

Tipuri de probleme O problema structurata consta din elemente si relatii intre elemente intelese de rezolvitorul problemei. Problemele structurate pot fi rezolvate prin algoritmi si reguli de decizie O problema nestructurata este una care nu contine elemente sau relatii intre elemente care sa fie intelese de rezolvitor. Problemele nestructurate nu prezinta activitati in luarea deciziei O problema semi-structurata este una care contine unele elemente si relatii care sunt intelese de rezolvitor si unele nu. Problemele semi-structurate au faze structurate si nestructurate

Tipuri de decizii Programate. - repetitive si de rutina - dupa o procedura definita, pusa la punct pentru rezolvare Neprogramate. - noi, nestructurate si intr-o secventa neobisnuita. - nu este o metoda stabilita de rezolvare - necesita o modalitate particulara de abordare

Gradul de structurare a problemelor la diferite nivele de management, dupa Gorry si Scott Morton

Nivele de management Controlul operatiilor Contul de plati Intrare ordine Structurate Gradul de structurare a problemelor Controlul inventarului Semistructurate Programarea productiei Nestructurate Managementul lichiditatilor Sisteme PERT/COST Analiza variatiilor bugetului global Pregatire buget Vanzari si productie Aliante si achizitii Planificare noi produse Planificare cercetare dezvoltare Prognoza pe termen scurt Controlul managementului Bugetul de costuri analizainginerie produs Planificare strategica Structura productiei Magazii si locatie fabrici

14

4/10/2013

DSS se focalizeaza pe probleme semistructurate

Solutii gasite de calculator

Manager + Calculator Solutie (DSS)

Solutie manager

Structurate

Semi-structurate

Nestructurate

Gradul de structurare a problemei

Functiile DSS

Dupa Keen (1978) sistemele DSS au evoluat din doua domenii principale de cercetare: - studiile teoretice privind luarea deciziilor in organizatii, facute la Carnegie Institute of Technology intre anii 1950-1960 - studiile privind sistemele de calcul interactive facute la MIT in anii 1960. Se considera ca sistemele DSS au devenit un domeniu independent de studiu la mijlocul anilor 1970 si au crescut in intensitate in anii 1980. In anii 1980 sistemele DSS au evoluat spre: - sistemele EIS, - DSS orientate pe un singur utilizator. - sisteme suport in luarea deciziei in grup si sisteme de suport al deciziei la nivel organizational. - DSS pentru imbunatatirea eficientei manageriale si a activitatilor profesionale - statiilor de lucru inteligente. Din punctul de vedere al obiectivelor sistemele DSS au evoluat de la: sisteme de luarea deciziilor bazate pe calculator, la sisteme interactive de luarea deciziilor care permitea utilizarea bazelor de date si modele pentru rezolvarea problemelor nestructurate. Folosite pentru: - Asistare in rezolvarea problemelor semistructurate - Sa asiste managerul nu sa-l inlocuiasca - Sa contribuie la luarea efectiva a deciziilor

15

4/10/2013

Caracteristici suplimentare au fost adaugate pentru a permite rezolvitorilor de probleme sa lucreze in grup, asa numitul sistem de suport al deciziei in grup. Tendintele recente au adaugat elemente de inteligenta artificiala si programarea analitica online (OLAP).

Un model DSS
Mediu Rezolvitori individuali de probleme Alte grupuri membre

Software elaborare rapoarte

Modele matematice

DSS GDSS software software

Baza de date Sistem de suport al deciziilor Mediu Data Comunicatie Informatie

Legenda:

Tipuri de sisteme DSS: Sisteme care extrag fisiere Sisteme de analiza datelor Sisteme informatice de analiza Modele de contabilitate Modele de reprezentare Sisteme care optimizeaz Sisteme care sugereaz decizii

16

4/10/2013

Sisteme care extrag fiiere: sunt cele mai simple tipuri de DSS. Pot furniza accesul la unitati de informatii, acestea conducand direct la luarea deciziei. Ex: o maina ATM. Se descoper inti balana 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 gsete o soluie alternativ, pe baza informaiilor 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 capabiliti de analiz. Ex: Compar creterea profitului cu media industrial (necesit accesul la mai multe surse de informaii) Modele contabile: folosesc date contabile i furnizeaz capabiliti de modelare contabil fr a putea gestiona incertitudinile. Ex: Pe baza listei de materiale calculeaz costurile de producie, ia decizii asupra preului. Model de reprezentare: folosete modele pentru a rezolva probleme de decizie, folosind prognoza. Poate fi folosit pentru lrgirea capabilitilor modelelor contabile i pot ncorpora incertitudini. Ex: Folosete datele privind cereerea de produse pentru a prognoza cererea anului urmtor. Folosete 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 vnzri 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 aciuni sistemului de luarea deciziiilor. Au un model prescriptiv care poate fi folosit pentru a sugereza sistemului cea mai bun aciune i pot ncorpora un sistem expert. Ex: Clenii unei bci aplic pentru un mprumut. Se folosete sistemul pentru a recomanda o decizie.

2.6 Sistemul informatic executiv (Executive Information Systems EIS)


O companie fr un EIS

Informaii i date din mediu


Manageri de nivel nalt

Sistemul informatic de marketing

Sistemul Sistemul informatic de informatic fabricaie contabil

Sistemul informatic al resurselor umane

Informaii i date din mediu

17

4/10/2013

O companie cu un sistem informatic executiv - EIS

Informaii i date din mediu

E I S

Sistemul informatic de marketing

Sistemul informatic de fabricaie

Sistemul informatic contabil

Sistemul informatic al resurselor umane

Informaii i date din mediu

Modelul unui sistem informatic EIS


Cereri de informatii

Baza de date executive Catre alte statii executive


Corporate database Electronic mailboxes Software library

Calculator

Afisare informatie

Statie de lucru executiva

Catre alte statii executive

Face disponibila informatia de la nivelul corporatiei

Noutati, explicatii

Corporatie
Date si informatii externe

18

4/10/2013

2.7 Sisteme informatice de planificare Evoluia acestora a plecat de la metoda: controlului inventarului - Inventory Control (IC), prin care comanda unui lot era lansat ori de cate ori cantitatea din inventar se reducea sub un nivel fixat, cunoscut sub numele de punctul de lansare a comenzii. planificarea necesarului de materiale Material Requirements Planning (MRP), care este caracterizat de un set de tehnici ce utilizeaz datele din lista de materiale i planul de productie pentru a calcula necesarul de materiale; se genereaz recomandri de lansare sau replanificare a comenzilor la anumite intervale de timp i se reprogrameaz data la care este necesar satisfacerea comenzii, fr ca aceasta s fie corelat cu data lansrii comenzii. Sistemul MRP utilizeaz lista de materiale a produselor din planul de producie i determin cantitile necesare ale tuturor componentelor si materialelor necesare pentru fabricaia 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 fabricaie. Aceasta implic planificarea operaional, cu capabiliti de simulare de tip ce-se-ntampl-dac. Un astfel de sistem este constituit dintr-o varietate de funcii, interconectate, ca de exemplu: planificarea afacerii, planificarea operaiilor i a vnzrilor, planificarea produciei i a sistemului de suport al execuiei, etc. Ieirea sistemului este integrat cu rapoartele financiare, ca de exemplu planul de afaceri, raportul achiziiilor contractate, proiecia cheltuielilor de transport, a bugetului i a inventarului.

MRPII este astfel o dezvoltare si extensie a MRP in bucl-nchis, care conduce spre o utilizare mai eficienta a resurselor, o reducere a inventarului, micorarea timpilor de inactivitate, micorarea strangulrilor in procesul de producie, o mbuntire a planificrii, o micorare a timpilor de lansare a fabricaiei i flexibilitate n programarea produciei. 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 achiziiona, produce, livra si contabiliza comenzile clienilor intr-o ntreprindere de fabricaie i servicii distribuite. Un sistem ERP difer de sistemul MRPII prin cerine tehnice precum: necesitatea unei interfee grafice utilizator, utilizarea bazelor de date relaionale, utilizarea unui limbaj de generaia a patra si instrumente ale ingineriei software de asistare prin calculator pentru dezvoltarea unei arhitecturi client/server, portabil i deschis, a sistemului.

Sinteza aplicatiilor software pentru planificarea fabricatiei IC Inventory Control Controlul inventarului Material Requirement Planning (MRP) Sistemul de planificare a necesarului de materiale Material Resource Planning II (MRPII) Sistemul de planificare a resurselor materiale II Enterprise Resource Planning (ERP) Sistemul de planificare a resurselor intreprinderii O alta terminologie utilizata este: Money Resource Planning (MRPIII) Planificarea resurselor financiare III

19

4/10/2013

Definitia ERP: O solutie software proiectata in vederea satisfacerii cerintelor intreprinderii, avand viziunea proceselor acesteia cu scopul satisfacerii obiectivelor prin integrarea stransa a tuturor functiilor. Ce este ERP: O modalitate de integrare pe scara larga a sistemelor informatice ale companiei Realizeaza nucleul activitatilor companiei si creste gradul serviciilor catre client in scopul cresterii imaginii companiei. Ce integreaza ERP: Bazele de date Aplicatii Interfete Instrumente

De ce ERP: O integrare completa a sistemelor din cadrul departamentelor cat si a companiei ca un ansamblu O solutie imbunatatita pentru managementul de proiect O servire imbunatatita a clientilor Introducerea tehnologiilor moderne Baze de date ce contin experienta in domeniu Componentele principale: Vanzari si marketing Planul de productie Planificarea necesarului de materiale Planificarea capacitatilor necesare Lista de materiale Achizitii Controlul shop-floor (al productiei) Gestiunea conturilor de debite/creante Logistica Probleme pe care le rezolva ERP: Imbunatatirea gestiunii materialelor Managementul lichiditatilor Problemele inventarului Probleme de calitate Imbunatatirea productivitatii Serviciul clientilor

20

4/10/2013

Integrarea sistemelor informatice

Departamentul central Fabricaie Comenzi locale, verificare comenzi Managementul inventarului Vanzari interne, livrare, preuri Analiz profit/pierdere Utilizarea capacitilor Sisteme informatice Managementul proiectelor Inventar Achiziii Vnzri Buget Colectare lichiditi
Departamentul Marketing vnzri

Vnzri, livrare, preuri Achiziii mrfuri Managementul inventarului Serviciul clieni

21

4/10/2013

3. Aplicatii cu baze de date in sisteme de fabricatie


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

DML
Aplicatie 2

date 1

DBMS DML (Sistemul de management al bazei de date)

Baza de date 2

Utilizator on-line

DML QL

Utilizator on-line

Baza de

DML DDL DBA Nivel conceptual

date n

Nivel extern

Nivel intern

DBMS este un sistem software generalizat pentru manipularea bazelor de date care permite utilizarea, definirea, crearea si intretinerea bazei de date si accesul controlat la aceasta. Sistemul DBMS consta din elemente de software care interactioneaza cu programele aplicatie utilizator si cu baza de date si permite urmatoarele facilitati: - Limbajul de definire a datelor (DDL) bazei de date. Este un limbaj descriptiv, care permite administratorului DBA sau utilizatorului sa descrie si sa denumeasca entitatile cerute de aplicatie si relatiile care pot exista intre entitati. Limbajul DDL permite specificarea tipurilor de date si a structurilor, precum si definirea modurilor de vizualizare (reprezentari ale unor subseturi ale bazei de date). - Limbajul de manipulare a datelor de catre utilizatorii on-line (DML). Un limbaj care asigura un set de procedee ce permit operatii de baza pentru manipularea datelor continute in baza de date. Limbajul DML permite utilizatorilor sa insereze noi date, sa modifice datele stocate, sa regaseasca datele continute in baza de date si sa stearga date. - Limbajul de interogare a continutului bazei de date (QL), ofera o facilitate de interogare a acestor date. In functie de operatiile de extragere se pot deosebi doua tipuri de limbaje DML: - procedurale (acestea specifica cum se va obtine rezultatul unei instructiuni DML) - neprocedurale (descriu numai ce date vor fi obtinute). Cel mai obisnuit limbaj neprocedural este limbajul structurat de interogare SQL. Principala diferenta consta in faptul ca limbajele procedurale trateaza bazele de date inregistrare cu inregistrare, in timp ce limbajele neprocedurale opereaza asupra unor seturi de inregistrari. Sistemul DBMS are o vedere: - logica (schema si subschema datelor) - fizica (metode de acces, clustere de date, limbajul de definire al datelor DDL, limbajul de manipulare a datelor DML, utilitare: managementul tranzactiilor si controlul concurentei accesului, integritatea datelor, recuperarea datelor in cazul caderii sistemului si securitatea).

4/10/2013

Nivelul logic:

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

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

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

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

4/10/2013

Evolutia bazelor de date relationale:

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

Tipurile de modele conceptuale de date sunt:

Schema bazei de date este structurata de administratorul bazei de date (DBA), dupa anumite proceduri corespunzator metodologiei de proiectare logica a bazei de date. Metodologiile de proiectare a bazei de date sunt: top-down se defineste intai conceptual schema si apoi se determina subschema datelor bottom-up este modelata mai intai subschema si apoi se integraza pentru a forma sche

Nivelul fizic:

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

sistemul de securitate, ce previne accesul la baza de date de utilizatori neautorizati sistemul de integritate, care mentine concordanta datelor stocate sistemul de control al concurentei, care permite accesul partajat sistemul de control al refacerii, care permite refacerea datelor ca urmare a unor defectiuni hardware sau software (un catalog accesibil care contine descrieri ale datelor din baza de date). Un obiectiv major il reprezinta asigurarea independentei de date (nivelurile superioare nu sunt afectate de modificarile facute la cele inferioare). Exista doua tipuri de independenta de date: - Logica se refera la imunitatea schemelor externe fata de modificarile in schema conceptuala - Fizica se refera la imunitatea schemei conceptuale fata de modificarile in schema interna date. O tranzactie reprezinta un set de actiuni elementare (inserare, stergere) asupra obiectelor ce contin

4/10/2013

Vedere externa 1 Nr_Personal Prenume Nume Varsta Salariu

Vedere externa 2 Nr_Personal Nume Nr_Filiala

Nivel conceptual

Nr_Personal

Prenume

Nume

DDN

Varsta

Salariu

Nr_Filiala

Nivel intern

Struct PERSONAL { int Nr_Personal; int Nr_Filiala; int Varsta; char Prenume[15]; char Nume [15] struct data DDN; float Salariu; struct PERSONAL *next; }; Index Nr_Personal; index Nr_Filiala;

/*Pointer la urmatoarea inregistrare /* Defineste indexurile pentru personal */

Ciclul de viata al bazei de date Ciclul de viata incorporeaza pasii care trebuie facuti in proiectarea schemei globale a bazei de date din punct de vedere logic, alocarea datelor, definirea schemelor specifice DBMS. Etapele proiectarii bazei de date sunt prezentate in figura 3.2: 1. Analiza cerintelor. Cerintele sunt determinate de proiectantii bazei de date pe baza analizei proceselor de manipulare a informatiilor. Determinarea cerintelor implica: - determinarea datelor necesare sistemului - determinarea relatiilor dintre date - alegerea platformei software pentru implementarea bazei de date 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. 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.

2.

a)

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/10/2013

Cerinele informaionale

Determinarea cerinelor

Proiectarea logic

Model
[o singur vedere]

[vederi multiple]

Integrarea vederilor

Transform n tabele SQL Normalizare


Proiectarea fizic

Selecteaz indeci
[cerine speciale]

Denormalizare
Implementare

[else]

Implementare Monitorizare

[else]

[defunct]

Figura 3.2 Diagrama de activitati in proiectarea unei baze de date

c) Transformarea modelului conceptual in tabele SQL. Pe baza categoriilor de modele de date si a unui set de reguli de mapare, fiecare relatie si entitatile asociate sunt transformate intr-un set de tabele relationale specifice DBMS. Aceste transformari se fac in limbajul SQL. d) Normalizarea tabelelor. Din diagramele modelului datelor sunt derivate dependentele functionale si din analiza cerintelor se determina semantica relatiilor. Dependentele functionale se stabilesc intre elemente de date ale entitatilor, care sunt identificate in mod unic prin chei. Relatiile functionale aditionale reprezinta dependente intre atribute cheie si atribute care nu sunt cheie si sunt derivate din cerintele specificatiilor. Tabelele relationale candidat asociate cu toate relatiile functionale derivate sunt normalizate. Prin normalizare se intelege modificarea prin decompozitie sau splitarea tabelelor in tabele mai mici, folosind tehnici standard. In final, redondantele privind datele din tabele sunt analizate pentru eliminarea acestora fara a se afecta integritatea datelor. 3. Proiectarea fizica. Implica alegerea indecsilor (metode de acces), partitionari si impartirea datelor in clustere. Denormalizarea consta in selectarea proceselor dominante prin frecventa tranzactiilor, a volumului tranzactionat sau a prioritatii si definirea unor extensii mai simple la tabele cu scopul de a imbunatati calitatea performantelor interogarilor. 4. Implementarea bazei de date, monitorizarea si modificari. Dupa ce baza de date este complet proiectata, aceasta este creata prin implementarea schemei formale folosind limbajul DDL al DBMS. Limbajul DML este folosit pentru interogarea si actualizarea bazei de date, cat si pentru fixarea indecsilor si a restrictiilor, ca de pilda restrictiile de integritate. Limbajul SQL contine atat DDL cat si DML.

4/10/2013

1. Cerintele informationale
Products Salepersons

Customers

Orders

2. Modelarea logica a) proiectarea conceptuala


customer N served-by N orders N product N sold-by

salesperson N

b) integrarea vederilor
customer 1 places N order

customer N

places

order

for

N N served-by 1 salesperson 1 fills-out product

c) transformarea modelelor conceptuale in tabele SQL


customer cust_no cust_name cust_addr sales_name prod_no

create table customer (cust_no integer, cust_name char(15), cust_addr char(30), sales_name char(15), prod_no integer, primary key (cust_no), foreign key (sales_name) references salesperson foreign key (prod_no) references product);

product prod_no prod_name qty_in_stock

order order_no sales_name cust_no prod_no

salesperson sales_name addr dept job_level vacantion_days

order-product order_no prod_no

4/10/2013

d) Normalizarea tabelelor SQL Decompozitia tabelelor si actualizarea anomaliilor.


Salesperson sales_name addr dept job_level Sales_vacantions job_level vacantion_days

Modelarea conceptuala a datelor


Acest proces reprezinta componenta de baza a proiectarii logice a bazei de date. Diagramele schemelor au fost formalizate in 1960 de Charles Bachman. Acestea folosesc dreptunghiuri pentru a reprezenta tipul inregistrarilor si sageti orientate de la un tip de inregistrare la altul, pentru a reprezenta o relatie one-to-many intre instantele inregistrarilor celor doua tipuri. Metoda entitate-relatie (ER) pentru modelarea datelor a fost introdusa in anul 1976 de Peter Chen. In acest formalism sunt utilizate dreptunghiuri pentru a specifica entitatile si romburi pentru a reprezenta diferite tipuri de relatii care sunt diferentiate prin numere sau litere plasate pe liniile de conexiune dintre romburi si dreptunghiuri. UML a fost introdus in anul 1997 de Grady Booch si James Rumbaugh si a devenit un limbaj standard de reprezentare grafica pentru specificatiile si documentarea proiectelor software complexe. Modelul de tip entitate-relatie Modelul ER este o reprezentare conceptuala abstracta a datelor, folosita ca metoda de modelarea bazelor de date. Elementele pe baza crora se construiete modelul entitate-relaie sunt trei clase de obiecte: entitatea, relatiile si atributele. - entitatea este un obiect despre care se dorete a se stoca informaie. Entitile sunt concepte recunoscute, concrete sau abstracte, care au relevan pentru baza de date.

In modelul relaional o entitate este analog unui tabel. Entitile se clasific n: independente (o entitate care nu se bazeaz pe alta pentru a fi identificat) i dependente sau slabe. O relaie dependent este aceea n care o entitate depinde de alta pentru a fi identificat n mod unic. Tipurile speciale de entiti sunt: entitile asociative (cunoscute i sub numele de entiti intersecie) sunt entiti folosite pentru a asocia dou sau mai multe entiti n scopul de a stabili o relaie many-to-many. Entitile subtip sunt utilizate n ierarhii de generalizare pentru a reprezenta o submulime de instane ale entitii printe, numit supertip, avnd atribute i relaii care se aplic numai submulimii. - atributul unei entiti este o informaie elementar care este ataat 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 entitii este format din unul sau mai multe atribute unice ale entitii, astfel nct fiecare valoare identific n mod unic o instanta a entitii. 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 colecie de valori posibile pe care le poate avea atributul. - relaia reprezint o asociere dintre dou sau mai multe entiti, fara a avea o existenta fizica ci doar cea conceptuala definita intre respectivele entitati. O entitate poate avea o relaie cu ea nsi. Relaiile se clasific dup grad, conectivitate, cardinalitate i existen. O relaie binar recursiv are loc cnd o entitate este n relaie cu ea nsi.. 3.3.2 Gradul, conectivitatea, cardinalitatea si existenta relatiilor Gradul unei relaii este numrul de entiti asociate cu aceea relaie. Acesta poate fi N. Relatiile binare sau ternare sunt cazuri particulare in care gradul relatiei este 2 si respectiv 3. Relaiile binare sunt cele mai des ntlnite. Conectivitatea unei relaii descrie modul n care se asociaz instanele entitilor n relaie. Valorile conectivitii sunt one sau many.

4/10/2013

Elementele modelului relational Concept entitate entitate slaba relatie


Works-in

Reprezentare
Employee Employee_job_history

atribute: - identificator (cheie) - descriptor - descriptor multivaloare - descriptor complex

emp_id emp_name degrees degrees


street city country

Cardinalitatea unei relaii indic numrul maxim de instane (una sau mai multe) n relaia dintre entiti. Pentru a determina cardinalitatea unei relaii, se determin dac pot exista mai multe apariii ale unei entiti pentru o apariie a altei entiti. Tipurile de baz pentru conectivitatea relaiilor sunt: one-to-one, one-tomany si many-to-many. Existenta optionala este definita printr-un zero pe linia de legatura dintre entitate si relatie si defineste cardinalitatea 0. Rolul este numele unui capat al relatiei cand la fiecare din capete se utilizeaza un nume distinct care face relatia sa fie mai clara in inteles.

Exemple ilustrative a unor relatii cu diferite grade si conectivitati


Grad binar-recursiv Reprezentare
1 employee N N manager manages subordinate is_sub unit_of 1 division

Existenta optional
department

Reprezentare
1

is_mana ged_by

employee

binar

department

mandatory
office

is_ocupi ed_by

employee

ternar

employee

uses N skill

project

Conectivitate
1

Reprezentare
1

one-to-one

department

is_mana ged_by

employee

one-to-many

department

1 has

employee

many-tomany

employee

works_ on

project

4/10/2013

Report

1 has-abbr

Abbreviati on

Department

is_manag ed_by

Employee

create table report (report_no integer, report_name varchar(256), primary key(report_no); create table abbreviation (abbr_no char(6), report_no integer not null unique, primary key (abbr_no), foreign key (report_no) references report on delete cascade on update cascade);

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

Engineer

Has allocated

Desktop

department

1 has

employee

create table engineer (emp_id char(10), desktop_no integer, primary key (emp_id)); create table desktop (desktop_no integer, emp_id char(10), primary key (desktop_no), foreign key (emp_id) references engineer on delete set null on update cascade);

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

Department

N publishes

Report

engineer

Belongs -to

Prof-assoc

create table department (dept_no integer, dept_name char(20), primary key (dept_no)); create table report (report_no integer, dept_no integer, primary key (report_no), foreign key (dept_no) references department on delete set null on update cascade);

1 engineer N is-groupleader-of

create table engineer (emp_id char(10), primary key (emp_id)); create table prof_assoc (assoc_name varchar(256), primary key (assoc_name)); create table belongs_to (emp_id char(10), assoc_name varchar(256), primary key (emp_id, assoc_name), foreign key (emp_id) references engineer on delete cascade on update cascade, foreign key (assoc_name) references prof_assoc on delete cascade on update cascade);

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

4/10/2013

3.3.3 Generalizari, supertipuri si subtipuri


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

supertype

o d
subtypes

employee manager engineer technician maintenance

customer

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 faceparte din. Un exemplu este prezentat in urmatoarea diagrama.

software_product

program

documentation

3.3.4 Relatii ternare si relatiile functionale corespunzatoare Relatiile ternare sunt utilizate cand relatiile binare nu descriu suficient de precis semantica asocierilor dintre trei entitati. Conectivitatea fiecarei entitati poate fi descrisa fie de one fie de many. Exemple:
Un inginer foloseste exact un notebook pentru fiecare proiect. Fiecare notebook apartine unui inginer pentru fiecare proiect. Un inginer poate lucra la mai multe proiecte dar are notebook-uri diferite pentru diferite proiecte.

engineer

uses_ noteb ook 1 notebook

project

Dependentele functionale in relatia ternara one-to-one-to-one : eng_id,project_name -> notebook_no eng_id,notebook_no-> project_name project_name, notebook_no-> eng_id

10

4/10/2013

proiect

Assign ed_to 1 location

employee

Dependentele functionale in relatia ternara one-to-one-to-many: emp_id, loc_name -> project_name emp_id, project_name-> loc_name

Fiecare employee asignat la un proiect lucreaza numai intr-o location pentru acel project, dar poate fi in location diferite pentru diferite project. La o location particulara pot fi mai multi employee asignati la un project dat.

employee

skill_u sed N skill

project

Mai multi employee pot folosi mai multe skill pentru fiecare din mai multe project si fiecare project are mai multi employee cu diferite skill. Dependentele functionale in relatia ternara many-to-many-to-many :

manager

manag es N project

engineer

Dependentele functionale in relatia ternara one-to-many-to-many : project_name, emp_id -> mngr_id

Un engineer care lucreaza cu un manager, poate lucra la mai multe project. Un proiect, sub conducerea unui manager poate avea mai multi muncitori. Un engineer care lucreaza la un project trebuie sa aiba numai un singur manager..

Nu sunt!

Exemple: 1.
division 1 contains N department 1 has skill N N project 1 assigned _to N location skill_ used 1 1 N N N 1 1 is_mana ged_by

is_head ed_by 1

employee N manages

manager 1

secretary 1

engineer 1 N

technician

is_alloc ated 1 desktop

is_allo cated 1

has_all ocated 1 workstation

belongs _to N prof_association

11

4/10/2013

Constrangeri de integritate, redondanta datelor, normalizarea


Constrangerile de integritate sunt reguli care restrang valorile care pot fi prezente in baza de date. Integritatea datelor inseamna asigurarea consistentei si satisfacerea regulilor referitoare la constrangeri. Acestea se clasifica in:

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

- directa: daca datele se pot gasi in doua locuri diferite apartinand aceleasi baze de date. - indirecta: daca datele sunt calculate folosindu-se date din locuri diferite ale aceleasi baze de date Daca exista redondanta intr-o baza de date aceasta creaza probleme in operarea cu baza de date la inserarea datelor (datele trebuie multiplicate in fiecare loc in care apar versiunile redondante), la actualizarea datelor (toate datele redondante trebuie actualizate simultan pentru a reflecta schimbarea respectiva). Normalizarea trebuie sa elimine redondanta, pastrand integritatea datelor. Transformarea datelor dintr-o problema intr-o relatie cu asigurarea integritatii datelor si eliminarea redondantelor poarta numele de normalizare

Normalizarea
Definitie: Transformarea datelor dintr-o problema in relatii cu asigurarea integritatii datelor si eliminarea redondantelor poarta numele de normalizare. Daca exista redondanta intr-o baza de date aceasta creaza probleme in operarea cu baza de date la inserarea datelor (datele trebuie multiplicate in fiecare loc in care apar versiunile redondante), la actualizarea datelor (toate datele redondante trebuie actualizate simultan pentru a reflecta schimbarea respectiva). Forme normale: Datele din baza de date pot fi considerate a fi in una din urmatoarele forme normale: Forma normala 1 (1NF) Forma normala 2 (2NF) Forma normala 3 (3NF) Forma normala Boyce-Codd (BCNF) Mai sunt sunt si alte forme dupa BCNF care se utilizeaza mai rar. Intelegerea cerintelor datelor unei probleme se realizeaza prin scrierea dependentelor functionale ce caracterizeaza relatiile dintre ele. O dependenta functionala este formata de doua liste de atribute separata de o sageata. Fiind date valorile din partea stanga, acestea identifica in mod unic un singur set de valori pentru atributele din partea dreapta. Fie relatia: si dependenta functionala: Semnificatia: R(matric_no, firstname, surname, tutor_no, tutor_name) tutor_no tutor_name dat un tutor_no acesta identifica in mod unic un tutor_name

12

4/10/2013

Reguli de Inferenta (axiomele lui Armstrong) 1. Reflexivitatea - Daca Y este o submultime a atributelor lui X atunci X Y

Ex. X este ABCD si Y este ABC, atunci X Y. Cazul banal: X X 2. Augmentarea - Daca X Y si Z este o submultime a tabelului R, atunci XZ YZ. 3. Tranzitivitatea - Daca XY si YZ, atunci XZ. Reguli care rezulta din axiomele de mai sus. 4. Pseudotranzitivitatea - Daca XY si YWZ, atunci XWZ. 5. Uniun ea - Daca XY si XZ, atunci XYZ. 6. Decompozitia - Daca XYZ, atunci XY and XZ.

Exemplu de normalizare a relatiilor bazei de date Se considera relatia: Student(matric_no,name, date_of_birth, (subject, grade)) Student

13

4/10/2013

Forma normala 1 (1NF) Forma normala 1 (1NF) este determinata de forma inregistrarii. O relatie este in 1NF daca si numai daca aceasta nu contine atribute sau grupuri de atribute care se repeta (fiecare coloana poate avea numai o singura valoare pentru fiecare rand al tabelului). De exemplu tabelul Student cu grupurile care se repeta este un tabel nenormalizat. Pentru a inlatura grupurile care se repeta fie: A) se face tabelul plat si se extinde cheia sau B) se descompune relatia, conducand la forma normala 1. A) Tabelul Student cu grupurile care se repeta poate fi aplatizat, modificand relatia ca in Student2: Student2(matric_no, name, date_of_birth, subject, grade) Aceasta forma nu mai are grupuri repetitive dar are redondanta: pentru fiecare combinatie matric_no/subject, se replica name si date of birth. Aceasta poate conduce la erori in operatiile de inserare, actualizare si stergere: la inserare, subject fiind cheie primara, nu se poate adauga un student pana ce acesta nu are cel putin un subject (deoarece cheia primara nu poate fi nula!); la actualizare, prin schimbarea numelui studentului se cauta toate randurile din baza de date in care exista studentul si se schimba fiecare din ele separat; stergerea de exemplu a informatiei subject conduce la stergerea matric_no.

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

Record
matric_no 960100 960100 960100 960105 960105 ... 960150 subject Databases Soft_Dev ISDE Soft_Dev ISDE ... Workshop grade C A D B B ... B

Se obtin doua relatii Student si Record: Student(matric_no, name, date_of_birth) Record(matric_no, subject, grade) care contin grupurile repetitive si nerepetitive. Relatia Student are grupul repetitiv si cheia matric_no. Aceasta versiune a relatiilor nu prezinta anomalii de inserare, actualizare sau stergere si spunem ca este in Forma Normala 1.

Forma normala 2 (2NF) O relatie este in forma 2NF daca si numai daca este in forma normala 1NF si fiecare atribut care nu este cheie este complet functional dependent de intreaga cheie. Astfel, relatia este in forma 1NF fara grupuri repetitive si toate atributele care nu sunt cheie trebuie sa depinda de intreaga cheie, nu doar de o parte a ei. Altfel spus, nu trebuie sa existe dependente partiale de cheie. Problemele apar cand cheia este compusa (de exemplu in relatia Record, cheia compusa matric_no, subject). In acest caz este posibil ca atributele care nu sunt chei sa depinda numai de o parte a cheii (de exemplu numai de una din chei). Acest lucru incearca sa previna forma 2NF. Daca se considera relatia Student din tabelul plat Student2: Student2(matric_no, name, date_of_birth, subject, grade) avem o cheie compusa, astfel ca trebuie sa verificam toate atributele care nu sunt cheie, fata de fiecare din cheile primare pentru a ne asigura ca sunt functional dependente de ele. Astfel: matric_no name (A), matric_no date_of_birth (A), matric_no grade (F). (subject, matric_no) grade (A), (subject, matric_no) name (F) (subject, matric_no) date_of_birth (F). Acestea sunt probleme cu potential de redondante. Diagrama dependentelor este urmatoarea:

15

4/10/2013

matric_no

name

date_of_birth

subject

grade

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

Student_details

matric_no

name

date_of_birth

Student

matric_no

subject

grade

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

Forma normala 3 (3NF)


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

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

16

4/10/2013

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

Atributul determinant devine cheie primara in noua relatie Manager devine cheie primara in relatia Manager. Cheia originala este cheia primara a atributelor non-tranzitive ramase in acest caz project_no ramane cheia noii tabele Project. Acum trebuie sa stocam address numai o data. Daca trebuie sa cunoastem adresa managerului putem cauta in relatia manager. Atributul manager este legatura intre cele doua tabele si in tabelul Project este acum cheia primara. Aceste relatii sunt acum in forma 3NF.

Project

project_no p1 p2 p3 p4

manager Black,B Smith,J Black,B Black,B

Manager

manager Black,B

address 32 High Street

Smith,J

11 New Street

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)

Boyce-Codd Normal Form (BCNF) Cand o relatie are mai mult de o cheie candidat, pot rezulta anomalii chiar daca relatia este in 3NF. Forma 3NF nu rezolva satisfacator cazul unei relatii cu suprapunerea cheilor candidat. De exemplu cazul cheilor candidat compuse cu cel putin un atribut in comun. BCNF se bazeaza pe conceptul determinantului. Un determinant este un atribut (simplu sau compus) pe baza caruia alte atribute sunt complet functional dependente. O relatie este in forma BCNF daca si numai daca orice determinant este un candidat de cheie. Baza teoretica a metodei este urmatoarea: Fie urmatoarele relatii si determinanti: R(a,b,c,d) a,b c,d a,d b Pentru a fi o forma BCNF, toti determinantii valizi trebuie sa fie candidat de cheie. In relatia R, a,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 1 2 3 4 5 PatName John Kerr Adam Robert Zane appNo 0 0 1 0 1 Time 09:00 09:00 10:00 13:00 14:00 doctor Zarra Kate Zarra Kate Zarra

17

4/10/2013

DB(Patno,PatName,appNo,Time,doctor) Determinanti: Patno PatName Patno,appNo Time,doctor Time appNo Sunt posibile doua selectii de chei pentru forma 1NF - DB(Patno,PatName,appNo,Time,doctor) (exemplul 1a) - DB(Patno,PatName,appNo,Time,doctor) (exemplul 1b) Exemplul 1a DB(Patno,PatName,appNo,Time,doctor) Nu sunt grupuri repetitive deci este in forma 1NF 2NF se elimina dependentele partiale de cheie: DB(Patno,appNo,Time,doctor) R1(Patno,PatName) 3NF nu sunt dependente tranzitive astfel incat forma este 3NF In continuare se aplica BCNF. Fiecare determinant este un candidat de cheie. DB(Patno,appNo,Time,doctor) R1(Patno,PatName) Este determinantul o cheie? Patno PatName Patno este prezent in DB, dar nu PatName, asa incat este irelevant.

DB(Patno,appNo,Time,doctor) R1(Patno,PatName) Patno,appNo Time,doctor Sunt prezente in membrul drept si stang toate atributele deci este relevanta. Este un candidat de cheie? Patno,appNo este cheia, astfel incat este o cheie candidat. Time appNo Time este prezent si la fel appNo, deci este relevanta. Este o cheie? Daca ar fi atunci am putea rescrie DB ca: DB(Patno,appNo,Time,doctor) Nu ar merge deoarece avem nevoie de Time si Patno impreuna pentru a forma o cheie unica. Deci acest determinant nu este o cheie si DB nu este o forma BCNF. Considerand din nou relatiile: DB(Patno,appNo,Time,doctor), R1(Patno,PatName) pentru forma BCNF acestea se rescriu: DB(Patno,Time,doctor) R1(Patno,PatName) R2(Time,appNo) In aceasta varianta Time este suficient sa lucreze cu appNo corespunzator pacientului. Forma BNCF este astfel satisfacuta acesta fiind rezultatul final.

18

4/10/2013

Exemplul 1b: DB(Patno,PatName,appNo,Time,doctor) Nu sunt grupuri repetitive deci este o forma 1NF Pentru forma 2NF se elimina dependentele partiale de cheie: DB(Patno,Time,doctor) R1(Patno,PatName) R2(Time,appNo) 3NF nu sunt dependente tranzitorii deci este o forma 3NF In continuare se incearca forma BCNF. Pentru aceasta fiecare determinant este un candidat de cheie. Este determinantul un candidat de cheie? Avem dependentele functionale: Patno PatName Patno,appNo Time,doctor Time appNo Relatiile sunt in BCNF. - Patno este prezent in DB, dar nu PatName astfel incat este irelevanta. - Lipsesc atribute in membrul stang deci, nu este relevanta. - Time este prezent dar nu appNo, astfel incat este irelevanta.

Exemplul a demonstrat urmatoarele: Relatia BCNF este mai puternica decat 3NF (relatiile care sunt 3NF nu sunt necesar in BCNF. BCNF este necesara in unele situatii pentru o intelegere completa a modelului datelor. Sunt mai multe cai prin care sa se ajunga la acelasi set de relatii in BCNF. Din pacate nu sunt reguli care sa determine care este cea mai simpla cale de a ajunge la rezultat. Exemplul 2. Grade_report(StudNo,StudName,(Major,Adviser,(CourseNo,Ctitle,InstrucName,InstructLocn,Grade))) Dependente functionale: StudNo StudName CourseNo Ctitle, InstrucName InstrucName InstrucLocn StudNo, CourseNo, Major Grade StudNo, Major Advisor Advisor Major Nenormalizata: Grade_report(StudNo,StudName,(Major,Advisor, (CourseNo,Ctitle,InstrucName,InstructLocn,Grade))) 1NF Student(StudNo, StudName) StudMajor(StudNo, Major, Advisor) StudCourse(StudNo, Major, CourseNo, Ctitle, InstrucName, InstructLocn,Grade)

19

4/10/2013

- 1NF inlatura grupurile repetitive Student(StudNo, StudName) StudMajor(StudNo, Major,Advisor) StudCourse(StudNo, Major, CourseNo, Ctitle, InstrucName, InstructLocn, Grade) - 2NF inlatura dependentele partiale de cheie Student(StudNo, StudName) StudMajor(StudNo, Major, Advisor) StudCourse(StudNo, Major, CourseNo, Grade) Course(CourseNo, Ctitle, InstrucName, InstructLocn) - 3NF Inlatura dependentele tranzitive Student(StudNo, StudName) StudMajor(StudNo, Major, Advisor) StudCourse(StudNo, Major, CourseNo, Grade) Course(CourseNo, Ctitle, InstrucName) Instructor(InstructName, InstructLocn) BCNF Fiecare determinant este un candidat de cheie Student: singurul determinant este StudNo StudCourse: singurul determinant este StudNo,Major,CourseNo Course: singurul determinant este CourseNo Instructor: singurul determinant este InstrucName StudMajor: determinantii sunt: StudNo,Major, or Advisor Numai StudNo,Major este un candidat de cheie.

- BCNF Student(StudNo, StudName) StudCourse(StudNo, Major, CourseNo, Grade) Course(CourseNo, Ctitle, InstrucName) Instructor(InstructName, InstructLocn) StudMajor(StudNo, Advisor) Adviser(Advisor, Major) Fie tabelul
StudNo 123 123 456 789 999 Major PHYSICS MUSIC BIOLOGY PHYSICS PHYSICS Advisor EINSTEIN MOZART DARWIN BOHR EINSTEIN

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

20

4/10/2013

Se imparte tabelul in doua tabele in forma BCNF.

Student 123 123 456 789 999

Advisor EINSTEIN MOZART DARWIN BOHR EINSTEIN

Advisor EINSTEIN MOZART DARWIN BOHR

Major PHYSICS MUSIC BIOLOGY PHYSICS

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

3.4 Limbajul SQL


SQL este un limbaj de interogare structurat, folosit pentru a interactiona cu DBMS. Acest limbaj este standardizat ISO si are la baza algebra relationala. Limbajul SQL permite: Crearea de scheme in DBMS Modificarea schemei sdatelor Adaugare date Modificare date Accesul la date SQL este un sub limbaj de date (Data Sub Language DSL), deoarece este o combinatie a doua limbaje: DDL Data Definition Language DML Data Manipulation Language Pentrua prezentarea comenzilor SQL se va folosi o baza de date, formata din doua tabele: CAR si DRIVER. Fiecare masina poate fi detinuta de un sofer. Un sofer poate avea mai multe masini.

21

4/10/2013

MAKE REGNO NAME COLOUR

DRIVER
DOB

1 drives

CAR

PRICE

OWNER

DRIVER
NAME Jim Smith Bob Smith Bob Jones DOB 11 Jan 1980 23 Mar 1981 3 Dec 1986

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

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

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

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

22

4/10/2013

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

Comenzile de baza SQL Comenzile de baza SQL sunt: CREATE creaza o structura de date SELECT citeste unul sau mai multe randuri din tabel INSERT insereaza unul sau mai multe randuri in tabel DELETE sterge unul sau mai multe randuri din tabel UPDATE schimba valorile intr-un rand DROP sterge o structura de date

Exemple ale comenzii SELECT SELECT column FROM tablename SELECT column1,column2,column3 FROM tablename SELECT * FROM tablename SELECT * FROM CAR;
REGNO F611 AAA J111 BBB A155 BDE K555 GHT SC04 BFE MAKE FORD SKODA MERCEDES FIAT SMART COLOUR RED BLUE BLUE GREEN BLUE PRICE 12000 11000 22000 6000 13000 OWNER Jim Smith Jim Smith Bob Smith Bob Jones

SELECT regno FROM CAR;


REGNO F611 AAA J111 BBB A155 BDE K555 GHT SC04 BFE

SELECT colour,owner FROM CAR;


COLOUR RED BLUE BLUE GREEN BLUE OWNER Jim Smith Jim Smith Bob Smith Bob Jones

23

4/10/2013

Formatarea comenzilor Caracterele SPACE si NEWLINE nu conteaza O practica indicata este sa se puna ; la sfarsitul interogarii. Tipul caracterelor nu conteaza daca nu sunt intre ghilimele simple. Ambele comenzi de mai jos sunt valide

SELECT REGNO FROM CAR; SElecT regno From Car ; Comentarii Sunt utile pentru a face comentarii in comanda. Comentariile nu sunt executate Comentariul incepe cu -- si se termina cu linie noua Comentariile sunt permise numai in interogare.

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

Filtre de selectie Pot fi folosite reguli in interogare Aceste reguli sunt testate pentru fiecare rand produs de interogare Daca regula este adevarata, atunci randul este afisat; daca este falsa, randul nu este afisat Regula incepe cu WHERE Ex: SELECT columns FROM table WHERE rule O regula simpla poate fi selectia unei masini cu culoarea rosie (RED). Regula va fi colour = 'RED' Ex: SELECT regno FROM CAR SELECT regno FROM CAR WHERE colour = 'RED'
REGNO F611 AAA J111 BBB A155 BDE K555 GHT SC04 BFE REGNO F611 AAA

24

4/10/2013

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

Date calendaristice Compararea datelor calendaristice poate creea probleme Se pot utiliza aceiasi operatori si pentru date calendaristice. Ex: SELECT name,dob from driver SELECT name,dob from driver where DOB = 3 Dec 1986

NAME Jim Smith Bob Smith Bob Jones

DOB 11 Jan 1980 23 Mar 1981 3 Dec 1986

NAME Bob Jones

DOB 3 Dec 1986

Datele calendaristice sunt considerate de valoare mai mare cu cat sunt in viitorul mai indepartat. Astfel, DATE1>DATE2 indica DATE1 in viitor dupa DATE2. SELECT name,dob from driver WHERE DOB >= 1 Jan 1981
NAME Bob Jones Bob Smith DOB 23 Mar 1981 3 Dec 1986

25

4/10/2013

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

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

NULL NULL indica ca ceva nu are nici o valoare Nu este o valoare si deci nu poate fi utilizat cu operatori de comparatie. Ex: Gresit: SELECT regno from car where owner = NULL Gresit: SELECT regno from car where owner = NULL Sunt in schimb operatori speciali: IS NULL si IS NOT NULL
REGNO SC04 BFE

SELECT regno from car WHERE OWNER is null

REGNO SELECT regno from car WHERE OWNER is not null F611 AAA J111 BBB A155 BDE K555 GHT SC04 BFE

26

4/10/2013

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

Exemple: Name LIKE Jim Smith Name LIKE _im Smith Name LIKE ___ Smith Name LIKE % Smith Name LIKE % S% Name LIKE Bob % Name LIKE % e.g. Jim Smith e.g. Tim Smith e.g. Bob Smith e.g. Frank Smith e.g. Brian Smart e.g. Bob Martin i.e. match anyone

LIKE face mai mult ca = Daca nu se folosesc wildcards, atunci mai bine folositi = decat LIKE.

Operatori Logici Permit combinarea regulilor intr-un singur WHERE AND si OR permit acest lucru NOT permite modificarea comportamentului regulii Exemplu: SELECT regno from car where colour = BLUE SELECT regno from car WHERE regno LIKE %5% SELECT regno from car WHERE colour = BLUE and regno LIKE %5%; REGNO A155 BDE

REGNO J111 BBB A155 BDE SC04 BFE

REGNO A155 BDE K555 GHT

Reguli AND multiple


SELECT regno FROM car WHERE colour = BLUE AND regno like %5% AND owner like Bob %

REGNO A155 BDE

27

4/10/2013

OR Exemplu: SELECT regno,colour from CAR WHERE colour = RED OR colour = BLUE

REGNO A155 BDE F611 AAA J111 BBB SC04 BFE

COLOUR BLUE RED BLUE BLUE

NOT NOT inverseaza regula in fata careia este pus De exemplu: WHERE colour = RED Poate fi inversata: WHERE colour != RED WHERE NOT colour = RED

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

SELECT regno,colour from car WHERE colour = RED OR colour = BLUE AND regno LIKE %5%

-- Line 1 -- Line 2 -- Line 3

Paranteze Poate fi mai clar: SELECT regno,colour from car WHERE ( colour = RED OR colour = BLUE ) AND regno LIKE %5% DISTINCT Exemplu: Gasiti toate culorile folosite la masini. SELECT colour from car;
COLOUR RED BLUE BLUE GREEN BLUE

SELECT DISTINCT colour from car;


COLOUR RED BLUE GREEN

28

4/10/2013

ORDER BY Ordonarea ascendenta este implicita SELECT make from car; SELECT make from car ORDER BY make;
MAKE FORD SKODA MERCEDES FIAT SMART MAKE FIAT FORD MERCEDES SKODA SMART

SELECT make from car ORDER BY make DESC;


MAKE SMART SKODA MERCEDES FORD FIAT

Ordonarea multi-coloana SELECT make,colour FROM car ORDER BY colour,make;

MAKE MERCEDES SKODA SMART FIAT FORD

COLOUR BLUE BLUE BLUE GREEN RED

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

Decat: SELECT regno,make FROM car WHERE make = SKODA or make = SMART Se poate utiliza: SELECT regno,make FROM car WHERE make in (SKODA,SMART); Agregarea functiilor Agregaarea functiilor permite scrierea interogarilor care produc calcule statistice asupra datelor din baza de date. Aceste functii sunt denumite functii SET si includ: AVG SUM MAX MIN COUNT

29

4/10/2013

Exemple: SELECT price FROM car;


PRICE 12000 11000 22000 6000 13000

SELECT avg(price) FROM car;


AVG(PRICE) 12800

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

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

SELECT colour,price FROM car;

SELECT colour,max(price) FROM car GROUP BY colour;


COLOUR RED BLUE GREEN PRICE 12000 22000 6000

COLOUR RED BLUE BLUE GREEN BLUE

PRICE 12000 11000 22000 6000 13000

30

4/10/2013

HAVING WHILE permite reguli pentru fiecare rand. HAVING permite reguli pentru fiecare grup din GROUP BY.

Exemplu: Cine are mai mult de o masina?. Aceasta s-ar spune: SELECT owner from car where count(owner) > 1 Functii agregate nu sunt permise in WHERE. Ele sunt permise in HAVING.

SELECT owner,count(regno) FROM car GROUP BY owner HAVING count(regno) > 1 OR SELECT owner FROM car GROUP BY owner HAVING count(regno) > 1 count(*) se poate folosi de asemenea in acest caz.

SQL JOIN si VIEW Surse multiple de tabele Deseori este necesara folosirea mai multor tabele. O metoda este de a lista toate tabelele dorite in linia FROM, dar DBMS va trebui sa stie cum sa alature tabelele. Conditii JOIN SELECT * from driver; NAME Jim Smith Bob Smith Bob Jones DOB 11 Jan 1980 23 Mar 1981 3 Dec 1986

SELECT * from car; REGNO F611 AAA J111 BBB A155 BDE K555 GHT SC04 BFE MAKE FORD SKODA MERCEDES FIAT SMART COLOUR RED BLUE BLUE GREEN BLUE PRICE 12000 11000 22000 6000 13000 OWNER Jim Smith Jim Smith Bob Smith Bob Jones

31

4/10/2013

SELECT * FROM car,driver


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

FOREIGN KEY link


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

32

4/10/2013

Traditional JOIN SELECT * FROM car,driver WHERE owner = name;


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

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

REGNO F611 AAA J111 BBB A155 BDE K555 GHT

MAKE FORD SKODA MERCEDES FIAT

COLOUR RED BLUE BLUE GREEN

PRICE 12000 11000 22000 6000

OWNER Jim Smith Jim Smith Bob Smith Bob Jones

NAME Jim Smith Jim Smith Bob Smith Bob Jones

DOB 11 Jan 1980 11 Jan 1980 23 Mar 1981 3 Dec 1986

OUTER JOIN Sa consideralm ultima linie a unui join fara constrangeri


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

Este o masina fara un proprietar. Cateodata se doreste sa se vada randurile care nu satisfac conditia JOIN din cauza campurilor NULL. Pentru a vedea NULL in JOIN se foloseste OUTER JOIN. Deci JOIN care a fost discutat este cunoscut ca INNER JOIN. Astfel OUTER JOIN forteaza toate liniile sa apara in rezultat. Sunt unele variante ale OUTER JOIN, care depind de care randuri dorim sa le pastram. Se considera: FROM car JOIN driver on (driver = name) To the RIGHT of the JOIN To the LEFT of the JOIN Daca dorim toate randurile in CAR sa apara in raspuns trebuie folosit LEFT OUTER JOIN Daca dorim toate randurile in DRIVER sa apara in raspuns trebuie folosit RIGHT OUTER JOIN

33

4/10/2013

In exemplu, OWNER este NULL in tabela CAR. CAR este la stanga cuvantului JOIN Ne trebuie LEFT OUTER JOIN (care este scris LEFT JOIN).

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


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

FULL OUTER JOIN


Cu LEFT OUTER join, se tin toate randurile de la stanga. Cu RIGHT OUTER join, se tin toate randurile de la dreapta.. Daca se doreste tinerea randurilor de la ambele capete se utilizeaza FULL OUTER join, cunoscut ca

FULL JOIN.
Sa consideram un nou rand in DRIVER, David Davis, care nu are nici o masina.

NAME Jim Smith Bob Smith Bob Jones David Davis

DOB 11 Jan 1980 23 Mar 1981 3 Dec 1986 1 Oct 1975

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


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

34

4/10/2013

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


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

Example: Full SELECT * FROM car FULL JOIN driver ON ( owner = name ) ;
REGNO F611 AAA J111 BBB A155 BDE K555 GHT SC04 BFE MAKE FORD SKODA MERCEDES FIAT SMART COLOUR RED BLUE BLUE GREEN BLUE PRICE 12000 11000 22000 6000 13000 David Davis 1 Oct 1975 OWNER Jim Smith Jim Smith Bob Smith Bob Jones NAME Jim Smith Jim Smith Bob Smith Bob Jones DOB 11 Jan 1980 11 Jan 1980 23 Mar 1981 3 Dec 1986

Numele Cateodata coloana nume poate fi ambigua daca de exemplu se face referire la doua tabele, ambele avand o coloana NAME: SELECT name from ALPHA,BRAVO; Aceasta interogare esueaza din motivele aratate, dar se poate rezolva prin: SELECT alpha.name from ALPHA,BRAVO;

35

4/10/2013

In unele cazuri este incomod a se repeta denumiri lungi de tabele. SQL permite redenumirea tabelelor pe durata interogarii. Se pune noul nume imediat dupa numele tabelului in FROM, separat de spatiu. In loc de: SELECT car.owner FROM car; Se poate scrie: SELECT c.owner FROM car c;
Aceasta se poate folosi si cu JOIN.

SELECT c.regno, c.owner, d.dob FROM car c JOIN driver d on (c.owner = d.name)

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

SELECT colour FROM car WHERE owner = Bob Smith;

Colour BLUE

SELECT owner FROM car WHERE colour = BLUE AND owner != Bob Smith AND owner IS NOT NULL;
SELECT other.owner FROM car bobsmith, car other WHERE bobsmith.colour = other.colour AND bobsmith.owner = Bob Smith AND bobsmith.owner != other.owner AND other.owner IS NOT NULL ;

owner Jim Smith

owner

-- 1 -- 2 -- 3 -- 4

Jim Smith

36

4/10/2013

VIEWS VIEWS este pentru baza de date ce este subrutina intr-un limbaj de programare. Aceasta permite sa se pastreze o interogare in baza de date, astfel incat sa putem s-o accesam la un moment ulterior prin nume. Cand se scrie o interogare, acestea se trateaza ca tabelele, prin nume,. Nu toate implementarile SQL suporta VIEW; MySQL nu suporta VIEW.

Sa presupunem ca scriem o interogare care sa ne spuna cati soferi si cate masini sunt in baza de date. Se pot scrie separat

SELECT count(*) from DRIVER; SELECT count(*) from CAR; Sunt doua interogari si dorim sa facem intr-o singura interogare. Sa stocam cele doua interogari in doua vederi diferite.

CREATE VIEW count1 (total) AS select count(*) from driver; CREATE VIEW count2 (total) AS select count(*) from car; Select * from count1;
Total 3

Select * from count2;

Total 5

Select count1.total,count2.total from count1,count2;

Total 3

Total 5

Stergerea unei vederi Vederea se poate sterge cu comanda DROP VIEW. De exemplu DROP VIEW count1; DROP VIEW count2;

37

4/10/2013

Subqueries Subquery o declaratie select in interiorul alteia Folosita in clauze WHERE Subqueries pot returna mai multe randuri Subqueries pot returna numai o coloana. Folosite ca un inlocuitor pentru view sau selfjoin. Principalul inconvenient, pot fi mai lente decat selfjoin sau view. Exemple:

Cine din baza de date este mai in varsta decat Jim Smith?

SELECT dob FROM driver WHERE name = Jim Smith;


Dob 11 Jan 1980

SELECT name FROM driver WHERE dob > 11 Jan 1980;


name Bob Smith Bob Jones

Combinate:

SELECT name FROM driver WHERE dob > (SELECT dob FROM driver WHERE name = Jim Smith) ; Aceasta solutie va functiona daca este doar 1 Jim Smith.

ANY and ALL Pentru a suporta subqueries care returneaza mai mult de 1 rand sunt necesari operatorii aditionali ANY si ALL. ANY schimba regula astfel incat aceasta trebuie sa fie adevarata pentru macar unul din randurile returnate de subquery. ALL schimba regula astfel incat aceasta trebuie sa fie adevarata pentru fiecare si oricare din randurile returnate de subquery. Operatorii ANY sau ALL se folosesc imediat inaintea parantezei deschise a subquery.

38

4/10/2013

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

Jim detine 2 masini, una este RED si cealalta BLUE. Cautam masini care sunt fie RED fie BLUE.
SELECT regno FROM car WHERE colour = ANY ( SELECT colour FROM car WHERE owner = Jim Smith

); Exemplu 2: Listati soferii mai tineri decat toti soferii care detin o masina albastra. Se cauta varsta soferilor care detin o masina BLUE si se listeaza soferii care sunt mai tineri decat toate aceste varste. SELECT name,dob FROM driver WHERE dob < ALL ( SELECT dob FROM car JOIN driver ON (owner=name) WHERE colour = BLUE );

IN and NOT IN O subquery returneaza rezultatul ca o multime. Astfel putem utiliza IN si NOT IN in subqueries. Intrebare: Care masini au aceeasi culoare ca masina lui Jim Smith?

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

Exemplu cu NOT IN

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

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

39

4/10/2013

EXISTS

Daca o intrebare implica descoperirea unor unicitati, atunci este probabil sa fie mai usor rezolvata cu operatorii EXISTS sau NOT EXISTS. Operatorul EXISTS testeaza rezultatul unei subquery, si daca este returnat cel putin un rand este TRUE, altfel este FALSE. Operatorul NOT EXISTS este opusul lui EXISTS. Exemplu: Intrebare: Listati culorile care sunt folosite o singura data in baza de date.

SELECT colour FROM car a WHERE exists ( SELECT colour FROM car b WHERE a.colour = b.colour AND a.regno != b.regno );

-- The row does not matter -- unique name from a -- Same colour as a -- Different car from a

UNION

Cate odata doua sau mai multe interogari produc acelasi rand si se doreste combinarea rezultatelor intr-unul singur. UNION face aceasta si permite alaturarea unor selectii diferite. UNION automat scoate randurile duplicate. Pentru exemplul urmator presupunem ca un rand a fost adaugat in tabela DRIVER. Acest rand contine inregistrarea David Davis, dar proprietarul nu detine nici o masina. Intrebare: Listati toti soferii din tabela DRIVER, impreuna cu cate masini detin.

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


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

David Davis lipseste deoarece nu satisface conditia din JOIN.

40

4/10/2013

Scrieti o interogare numai pentru David Davis

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

NAME David Davis 0

Legati cele doua interogari impreuna: SELECT name,count(*) FROM driver JOIN car on (name = owner) UNION SELECT name,0 FROM driver WHERE name NOT IN (select owner from car)

NAME Jim Smith Bob Smith Bob Jones David Davis

Count(*) 2 1 1 0

Modificatori ai datelor Alti operatori utili sunt: INSERT DELETE UPDATE

INSERT INSERT INTO table_name [(column_list)] VALUES (value_list) column_list poate fi omisa daca fiecarei coloane i se va asigna o valoare, altfel trebuie listate coloanele carora li se vor asigna valori.value_list este o multime de valori literale ce dau valoarea fiecarei coloane in aceeasi ordine ca column_list, daca sunt specificate sau cum sunt coloanele definite in CREATE TABLE. Ex: insert into driver values (Jessie James,31 Nov 1892); insert into driver (name,dob) values (John Johnstone,1 Aug 1996);

41

4/10/2013

DELETE

DELETE FROM table_name [WHERE condition]; Randurile table_name care satisfac conditia sunt sterse. Exemple: DELETE FROM car; ; DELETE FROM car WHERE owner is null

-- Delete all rows from CAR

-- Delete rows for cars without owners;

UPDATE UPDATE table_name SET column_name = expression,{column_name=expression} [WHERE condition] Set all BLUE cars to GREEN UPDATE car SET colour = GREEN WHERE colour = BLUE Add VAT/Purchase Tax at 17.5% to all prices UPDATE car SET price = price * 1.175

CREATE TABLE

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

Sintaxa:
CREATE TABLE tablename ( colname type optionalinfo ,colname type optionalinfo ,other optional info ); Optionalinfo pot fi O INTEGER REFERENCES b(c) PRIMARY KEY NOT NULL

42

4/10/2013

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

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

CREATE TABLE car ( regno varchar(8) ,make varchar(20) ,colour varchar(30) ,price decimal(8,2) ,owner varchar(30) ,FOREIGN KEY(owner) ,PRIMARY KEY(regno) );

references driver(name)

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

43

4/10/2013

Modificarea tabelului Pentru a schimba o tabela care exista se foloseste MODIFY TABLE. Aceasta este o comanda complexa cu multe optiuni. Un exemplu simplu este de a adauga un camp de adresa la tabela DRIVER. ALTER TABLE driver ADD address varchar(50) Ordinea evaluarii in SELECT

SELECT [DISTINCT] column_name FROM label_list [WHERE condition ] [GROUP BY column_list [HAVING condition ]] [ORDER BY column_list[DESC]]

5,6 elimina datele nedorite 1 Produsul Cartezian 2 elimina randuri nedorite 3 grupeaza randuri 4 elimina grupuri nedorite 7 sorteaza randuri

Ultimele patru componente sunt optionale

44

4/10/2013

Data mining
Data Mining este o tehnologie noua ce vizeaza descoperirea cunostintelor in baze de date. Aceasta a fost definita ca analiza automata a unor seturi de date complexe si de volum mare, cu scopul de a descoperi noi informatii (tipare semnificative ale datelor sau tendinte ale acestora). Procesul de extragerea cunostintelor se realizeaz n urmtorii pasi: Analiza problemei - care const n achizitia unor cunostinte despre starea initial, precum si despre scopul aplicatiei. Aceast etap identific urmtoarele faze: - Determinarea obiectivelor. Declanarea unui astfel de proces este determinat de sesizarea unei oportuniti sau necesiti de afaceri, ceea ce impune delimitarea exact a ceea ce se urmrete de rezolvat prin data mining, care sunt obiectivele urmrite i rezultatele ateptate. Problemele pot fi diverse: optimizarea rspunsului clienilor n cadrul unei campanii de marketing, prevenirea utilizrii frauduloase a cardurilor bancare, detectarea intrrilor ostile ntrun sistem informaional. - Definirea criteriilor de succes. O dat problema conturat, se recomand definirea unor criterii ce pot asigura reuita proiectului; aceste criterii pot fi, att de natur obiectiv (cantitativ): mbuntirea numrului abaterilor detectate, mbuntirea gradului de rspuns al clienilor la campaniile de marketing, ct i de natur subiectiv (calitativ), situaie n care expertul domeniului apreciaz rezultatele utilizrii tehnicilor data mining corespunztor obiectivelor problemei de rezolvat. - Evaluarea situaiei impune o analiz a costurilor implicate i a beneficiilor viitoare, a experienei deinute n rezolvarea problemei propuse. - Determinarea scopurilor Data Mining. Etapele anterioare au stabilit problema i criteriile de succes pentru o soluionare corect a acesteia, astfel nct 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. evideniind acest aspect:

Scopul general al problemei de rezolvat Creterea vnzrilor

Scopul data mining Determinarea caracteristicilor clienilor n funcie de puterea acestora de cumprare Determinarea modelelor critice de utilizare frauduloas a crilor de credit, sau construirea unui algoritm precis pentru detectarea automat a fraudelor

Prevenirea fraudrii crilor de credit

Scopul data mining este ntr-o relaie direct cu principalele categorii de operaii, ce caracterizeaz acest proces: descrierea datelor, clasificarea, predicia, analiza dependenelor, analiza clusterelor, analiza excepiilor. - Elaborarea unui plan al proiectului. Finalitatea acestei etape se rezum n descrierea unui plan de aciune, cu toate lucrrile ce se vor executa, tehnicile ce se vor utiliza n cadrul acestora i obiectivele urmrite. Identificarea surselor de date. Odat problema definit, este necesar stabilirea structurii generale a datelor ct i delimitrii surselor acestor date. Practica a demonstrat adeseori c este vorba de date dispersate n diverse sisteme operaionale, stocate n formate diferite, administrate cu produse software diferite, uneori disponibile doar pe hrtie. Etapa n sine implic realizarea urmtoarelor aciuni: colectarea iniial a datelor, descrierea datelor i verificarea calitii acestora. Aceste aciuni, n ansamblul lor, permit extragerea i plasarea tuturor datelor ntr-o baz comun ce urmeaz a fi folosit, verificarea coninutului fiecreia dintre surse pentru o identificare a eventualelor incoerene sau probleme de definire, elemente care ar putea compromite rezultatele analizelor viitoare.

4/10/2013

Pregtirea datelor. Datele selectate n etapa anterioar trebuie supuse unui proces preliminar de pregtire nainte de a fi realizat extracia prin data mining. Aciunile importante ce caracterizeaz aceast etap se pot rezuma la: selectarea datelor, curirea datelor, obinerea noilor date i formatarea lor. Curirea datelor se distinge ca o faz important a etapei, recunoscut ca mare consumatoare de timp datorit tehnicilor diversificate ce pot fi implementate pentru asigurarea fiabilitii datelor. Aceste tehnici vizeaz: - normalizarea datelor - omogenizarea datelor - administrarea valorilor care lipsesc. Absena anumitor valori influeneaz negativ exploatarea optim a tehnologiilor Data Mining, precum i aplicarea unor metode statistice. n general realizarea unor experimente cu i fr aceste atribute n etapa de modelare, evideniaz importana valorilor lips. O soluie 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 soluie nu asigur valoarea optim fapt pentru care datele vor fi afectate. Dac valorile lips pot fi reduse la doar cteva caracteristici, atunci se poate ncerca o soluionare prin tergerea exemplelor continnd valori lips, sau tergerea atributelor ce conin majoritatea valorilor lips. O alt soluie este de a se ncerca predicia valorilor lips cu ajutorul unui instrument data mining. n acest caz previzionarea valorilor lips reprezint un caz special al problemei de predicie data mining. - reducerea datelor. Motivele pentru reducerea datelor sunt n majoritatea cazurilor duble: fie volumul datelor este prea mare pentru aplicaie, fie timpul estimat pentru obinerea soluiei 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 potenialul predictiv. n general, o parte dintre atribute pot fi n mod obinuit 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. Analiznd noutatea i abundena tehnicilor i algoritmilor utilizai n cadrul acestei etape, se poate considera c ea este cea mai interesant parte a procesului Data Mining. Selectarea tehnicii de modelare este hotrtoare pentru construcia modelului n sine, fapt pentru care n tabelul urmator sunt prezentate cele mai importante tehnici de modelare asociate aciunilor uzuale Data Mining.
Modele de inducie a regulilor, arbori de decizie, reele neuronale, metoda celor mai apropiai k vecini, raionament bazat pe cazuri Analiza regresiei, reele neuronale, metoda celor mai apropiai k vecini Analiza corelaiei, analiza regresiei, reguli de asociere, reele Bayesiane Tehnici statistice OLAP Tehnici de clustering, reele neuronale, vizualizarea datelor

Clasificare

Predicie Analiza dependenelor Descrierea datelor Analiza clusterelor

Construirea modelului este nsoit de o faz de testare, care verific calitatea i valabilitatea modelului. De exemplu, n aciunile de clasificare a datelor este uzual folosirea valorilor eronate ca o msur a calitii modelelor de data mining. Astfel, datele colectate n etapele anterioare vor fi divizate n seturi de date de pregtire i seturi de date pentru testare.

4/10/2013

Prima categorie de date va reprezenta baza construirii modelului, iar estimarea calitii 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 pregtire, genernd diferite tipuri de modele. n general, toate instrumentele de modelare au un numr de parametri ce conduc procesul de generare al modelului, coeficieni ce pot fi modificai pn la obinerea rezultatelor scontate. Evaluarea modelului. Aceast etap valideaz modelul din punct de vedere al datelor analizate. n fazele anterioare, cu precdere n faza de modelare, evaluarea presupunea o analiz a fiabilitii i generalitii modelelor generate, n timp ce in aceast etap se realizeaz o evaluarea a modelelor prin prisma obiectivelor iniiale ale problemei. Se vor analiza i interpreta att rezultatele direct legate de obiectivele de soluionare a problemei ct i alte constatri efectuate, acest lucru putnd oferi sugestii pentru modelele viitoare i alte informaii suplimentare. Integrarea noilor cunotine. Aceast etap finalizeaz procesul prin expansiunea modelului obinut i a rezultatelor sale la nivelul sistemului informatic al organizaiei.

Metode de data mining


Regresia este o metod folosit n explorarea datelor preluat din statistic, algoritmii liniari i neliniari, fiind utilizai pentru corelarea datelor. Algoritmul const n nvarea unei funcii care mapeaz un set de date peste variabila estimat a valorii reale. Prin folosirea acestei metode este posibil s se obin cunotine calitative despre relaiile de intrare-ieire. Dac nu sunt cunotine apriorice, este necesar de gsit funcia cea mai probabil prin ncercri succesive, ceea ce poate fi consumatoare de timp. Exemple de acest tip sunt estimarea cererii de consum pentru un nou produs ca o funcie de publicitate a vnzrilor i estimarea seriilor de timp n care variabilele de intrare pot fi versiuni ntrziate ale variabilelor estimate. Clasificarea este cunoscut i ca segmentarea, fiind un proces de examinare a grupurilor de date pentru a determina care caracteristici pot fi utilizate pentru a identifica (sau estima) apartenena la grup. Exemple de clasificri includ clasificarea tendinelor n pieele financiare, gruparea clienilor pe baza tranzaciilor realizate i estimarea rspunsului acestora la promoia unui anumit produs. Aplicarea metodei necesit gruparea nregistrrilor n clase pe baza proprietilor comune (atributelor). Algoritmii de clasificare sunt: - algoritmi statistici (analiza discriminatorie discriminant analysis, regresia logistic); - arbori de decizie sau segmentarea bazat pe arbori, (folosind metoda divide-et-impera, CHAID sau arbori de clasificare i regresie: C&RT, QUESt, CART i C4.5/ C5.0); nvarea regulilor de clasificare - implic gsirea regulilor sau a arborilor de decizie care partiioneaz seturi de date n clase predefinite. Se aplic n cazul volumelor mari de date la care mulimea arborilor de decizie posibili este prea mare pentru o cutarea exhaustiv. Algoritmi din aceast clas sunt: - ID3 este un algoritm de construire a arborilor de decizie care clasific obiectele prin testarea valorilor proprietilor. Acesta construiete arborele ntr-o manier top-down, plecnd de la mulimea obiectelor i specificaia proprietilor;

4/10/2013

-C4.5 algoritmul genereaz arborele de clasificare-decizie pentru un anumit set de date prin partiionarea recursiv a datelor, lund n considerare toate testele posibile i selectnd pe cel care d cea mai bun informaie. Pentru fiecare atribut se consider un test i acesta produce attea ieiri ct numrul valorilor distincte ale atributelor testate. SLIQ (Supervised Learning In QUEST) algoritmul este un clasificator bazat pe arbori de decizie proiectat s clasifice seturi mari de date. Acesta folosete o tehnic de presortare n faza de cretere a arborelui, ceea ce i permite evitarea costurilor cu sortarea n fiecare nod. SQLIP pstreaz o list separat pentru fiecare atribut continuu i a list separat numit lista claselor. O intrare n lista claselor corespunde unui articol data (data item) are o etichet de clas i numele nodului cruia i aparine n arborele de decizie. - reele neuronale cu dezavantajul c necesit un timp ndelungat de antrenare pentru procesare fa de arborii de decizie. Timpul de antrenare variaz depinznd de numrul de cazuri de antrenare, ponderile n reea i de fixarea parametrilor de nvare; - algoritmi genetici sunt tehnici de optimizare care folosesc procese de combinare genetic, mutaii i selecie natural ntr-o proiectare bazat pe conceptele evoluiei naturale; - metoda vecintii celei mai apropiate clasific fiecare nregistrare dintr-un set de date pe baza unei combinaii de clase a nregistrrii k; inducia regulii, extracia datelor utile pe baza unor reguli de tipul dac atunci aplicate datelor pe baza semnificaiei statistice.

Reguli de asociere - Ideea de baz a asocierii regulilor este de a cuta tipare de date de urmtoarea form: IF (unele condiii sunt adevrate) THEN (alte condiii sunt probabil adevrate). Fiecare condiie 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 msoar valoarea: acoperirea i nivelul de ncredere. Acoperirea descrie ct 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 folosete suportul unei reguli care este numrul de nregistrri sau tranzacii care confirm regula. Algoritmul clasic de explorare a datelor prin Regula de asociere a fost dezvoltat pentru a gsi toate regulile de asociere ntr-o baz de date a crei suport este mai mare dect suportul minim i a crei confiden este mai mare dect confidena minim. Acest algoritm folosete conceptul setului de articole (item set concept), definit ca o mulime nevid de articole. Setul de articole este numit frecvent, dac suportul su este mai mare dect suportul minim. Un set de articole frecvent care este maximal este numit mare (large). Problema regulii de asociere n explorarea datelor este descompus n urmtorii pai: - gsirea tuturor combinaiilor de articole care au tranzacii suport peste suportul minim, - apelarea acelor combinaii ale setului de articole frecvent, folosirea seturilor de articole frecvent pentru a genera regulile dorite, - pstrarea regulii care are confidena mai mare sau egal cu confidena 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 ieirile sau categoriile int. Din acest motiv algoritmii de clustering sunt denumii algoritmi de clasificare nesupervizat i acetia proceseaz un grup de obiecte fizice abstracte n clase de obiecte similare. Analiza clustering permite identificarea unor colecii de obiecte dat, similare, incluse n structura de date analizat. Similaritatea este exprimat prin funcii distan i se urmarete maximizarea similaritilor dintre cazurile asignate aceluiai grup i maximizarea diferenei dintre grupuri.

4/10/2013

Tipare secveniale metoda este o parte component a analizei secveniale, scopul principal fiind acela de a gsi toate tiparele secveniale cu suport minim predefinit reprezentat de secvena de date. Datele de intrare sunt reprezentate de o list de tranzacii secveniale, deseori fiind asociate tranzacii-timp. Tehnici combinate metoda combin diferii algoritmi, precum cei de extragere a cunotinelor pe baza regulilor cu reelele neuronale, cu raionamentul bazat pe cazuri. nvarea bazat pe cazuri reprezint procesul de achiziie a cunotinelor printr-un raionament bazat pe analogii. Aceast metod este util n cazul procesrii datelor cu structur complex. Procesarea analitic on-line (OLAP) este considerat o metod complementar metodelor de explorare a datelor pentru analiza unor date de volum foarte mare, multi-dimensionale n baze de date relaionale. n comparaie cu metodele de explorare a datelor, OLAP nu are capabiliti de nvare, nu creeaz noi cunotine i nu pot cuta soluii noi. OLAP se combin cu metodele de explorare a datelor n dou moduri: explorarea datelor se poate include ntr-o main OLAP existent, cele dou tehnici fiind aplicate intercorelat pentru analiza acelueai set de date sau metoda de explorarea datelor se aplic naintea analizei OLAP. ARBORI DE DECIZIE Un arbore de decizie este o reprezentare vizual a alegerilor, consecinelor, probabilitilor i oportunitilor, prin care se simplifica modelul sistemului printr-un mod facil de a nelege o structur. Definitie: Un arbore decizional este o structur sub form de arbore n care fiecare nod poate fi: - nod terminal (nod frunza) - nod decizional (contine un test pentru o anumit proprietate)

Arcele sunt etichetate cu o valoare a proprietii testate din nodul din care pleac, iar frunz este etichetate cu clasificaii (daca clasificatiile sunt simple cu YES i NO atunci arborele se numeste boolean). Nodurile intermediare sunt etichetate ca atribute.
Nod_radacina v1 Nod_frunza v2 Nod_frunza

Set raspunsuri posibile

Arcele reprezint conexiunile ntre nodurile printe i nodurile fii iar numrul lor este legat de setul de rspunsuri 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 situaii cnd poate fi necesar i deplasarea de jos n sus (de exemplu, ntr-un arbore care nva, atunci cnd setul de ntrebri trebuie modificat, deoarece au fost gsite soluii noi sau vechile ntrebri nu sunt bine formulate). Metoda arborilor de decizie este cea mai popular metoda de clasificare i predicie. Constructia arborelui se face prin alegerea pentru fiecare ntrebare a unui rspuns dintr-un set de rspunsuri valide. n funcie de aceste rspunsuri sunt eliminate o serie de soluii din setul curent de soluii posibile ale problemei. Cu ct se coboar n arbore, cu att acest set de soluii posibile se micoreaz. Fiecare nod neterminal este conectat la un test care mparte setul sau de raspunsuri posibile ntr-o submulime corespunznd rezultatelor de test diferite. Fiecare ramur duce rezultatul testului la un alt nod i fiecare nod este conectat la un set de rspunsuri posibile n final soluia furnizat corespunde nodului frunz n care s-a ajuns.

4/10/2013

Atractivitatea arborilor de decizie se datoreaz faptului c reprezint reguli. n unele aplicaii acurateea clasificrii sau prediciei este singurul lucru care conteaz. Sunt o multime de algoritmi pentru a construi arbori de decizie care mpart calitatea interpretrii. Metoda arborilor de decizie are numeroase aplicatii in domenii precum: medicina, prognoza vremii, predictia stocurilor, gestiunea creditelor financiare, analiza greelilor. Majoritatea algoritmilor care au fost creai pentru nvarea arborilor de decizie sunt variaii ale unui algoritm de baza care implic o parcurgere top-down greedy prin mulimea arborilor de decizie posibili. Programele de acest tip construiesc un arbore decizional pornind de la un set de situaii, cazuri. Ordinea testelor este important, punndu-se accent pe criteriul alegerii testului din rdcina arborelui de decizie. nvarea regulilor de clasificare - implic gsirea regulilor sau a arborilor de decizie care partiioneaz seturi de date n clase predefinite. Se aplic n cazul volumelor mari de date la care mulimea arborilor de decizie posibili este prea mare pentru o cutarea exhaustiv. n aceast clas intr urmtorii algoritmi: - ID3 este un algoritmul care construiete arbori de decizie n manier top-down. Pentru fiecare proprietate, putem partiiona multimea de exemple de nvtare n submultimi disjuncte, n fiecare submultime aflndu-se obiecte cu o anumit valoare a acelei proprieti. Algoritmul selecteaz o proprietate pentru a o testa n nodul curent al arborelui i folosete aceast proprietate pentru a partiiona multimea de exemple. Algoritmul se aplic recursiv pentru construirea subarborilor corespunztori fiecrei partiii. Acest procedeu continu pn cnd toi membrii unei partiii sunt n aceeasi clas. Clasa devine o frunz n arborele de decizie; - C4.5 algoritmul genereaz arborele de clasificare-decizie pentru un anumit set de date prin partiionarea recursiv a datelor, lund n considerare toate testele posibile i selectnd pe cel care d cea mai bun informaie. Pentru fiecare atribut se consider un test i acesta produce attea ieiri ct numrul valorilor distincte ale atributelor testate.

SLIQ (Supervised Learning In QUEST) algoritmul este un clasificator bazat pe arbori de decizie proiectat s clasifice seturi mari de date. Acesta folosete o tehnic de presortare n faza de cretere a arborelui, ceea ce i permite evitarea costurilor cu sortarea n fiecare nod. SLIQ pstreaz o list separat pentru fiecare atribut continuu i a list separat idem ALGORITMUL ID3 (Itemized Dichotomizer 3) Ideea de baz este de a construi un arbore de decizie printr-o cautare greedy de sus n jos ntrun 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, nsemnnd c i deriveaz clasele dintr-un set fix de date de antrenare. Clasele create de ID3 sunt inductive, ceea ce nseamn c dnd 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 funcioneze pentru toate cazurile din moment ce pot clasifica un numar infinit de instane. Datele folosite de ID3 trebuie sa corespund unor cerine i anume: - descrierea valorii atributelor: acelai atribut trebuie sa descrie fiecare exemplu i s aib un numr fix de valori; - clase predefinite: un exemplu de atribut trebuie s fie deja definit, ceea ce nseamn ca nu este nvat de ID3; - clase discrete: clasele trebuie sa fie foarte bine descrise. Clasele continue mprite n categorii vagi pot creea suspiciuni (de ex: greu, putin greu, normal, usor, foarte usor); - exemple suficiente: din moment ce este utilizat inducia generalizat trebuie sa fie destule cazuri de test pentru a putea distinge modele. Pentru a gsi metoda optimal pentru a clasifica setul de nvare trebuie s minimizm ntrebarea pus (minimizm adncimea arborelui). Avem nevoie de nite funcii care s fac cea mai bun mprire. Algoritmul ID3 aduce dou noi mbuntairi algoritmilor de clasificare: vizualizare i informaia teoretica euristic.

4/10/2013

- Vizualizarea poate fi folosit dac setul de antrenare este foarte mare. Un subset din setul de antrenare este ales la ntmplare pentru a construi arborele iniial. Cazurile rmase 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 sfrit. - Informaia teoretic euristic este folosit pentru a produce arbori superficiali deciznd ordinea n care s fie selectate atributele. Primul stagiu este calcularea proporiei 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 mpririi 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 msura numit Castigul informational (Information Gain) care calculeaz reducerea entropiei care ar rezulta din mprirea datelor dupa atributul A. Pentru un anumit atribut A, ctigul informaional produs de selectarea acestuia ca rdcin a arborelui de decizie este egal cu continutul total de infomaie din arbore minus continutul de informatie necesar pentru a termina clasificarea (construirea arborelui), dup selectarea atributului A ca radacina.

Information gain - ctigul informaional reprezint reducerea ateptat n entropie cauzata de segmentare. Mai precis, information gain, Gain(S,A) a unui atribut A n raport cu o colectie S a atributului tinta este definit ca:

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

4/10/2013

Entropy(Sweak) = - (6/8)*log2(6/8) - (2/8)*log2(2/8) = 0.811 Entropy(Sstrong) = - (3/6)*log2(3/6) - (3/6)*log2(3/6) = 1.00 Gain(S,Wind) = Entropy(S)-(8/14)*Entropy(Sweak)-(6/14)*Entropy(Sstrong) = 0.940 - (8/14)*0.811 (6/14)*1.00 = 0.048 Pentru fiecare atribut, se calculeaza castigul si se alege in nodul de decizie cel cu castigul cel mai mare. Algoritmul continu alegnd un nou atribut i repetnd segmentarea cu fiecare nod neterminal. Procesul se repeta pn cnd una din cele dou condiii este satisfcut: - toate atributele au fost deja incluse in parcurgerea arborelui; - exemplele antrenate asociate cu nodul frunz au toate aceeai valoare de atribut.
wind _speed Weak Strong Total Yes 6 3 9 No 2 3 5 Total 8 6 14 Entropie Entropy(Sweak)=- (6/8)*log2(6/8) - (2/8)*log2(2/8) = 0.811 Entropy(Sstrong)=-(3/6)*log2(3/6)-(3/6)*log2(3/6) = 1.00 Entropy(S) = - (9/14) Log2 (9/14) - (5/14) Log2 (5/14) = 0.940 Gain(S,wind_speed) = Entropy(S) -(8/14)*Entropy(Sweak)-(6/14)*Entropy(Sstrong) = 0.940 - (8/14)*0.811 - (6/14)*1.00 = 0.048

Gain

Exemplu de aplicare a algoritmului ID3 Estimarea riscului de credit ntr-un prim exemplu ncercm s analizm problema estimrii riscului acordrii unui credit unei anumite persoane, bazat pe anumite proprieti: comportamentul anterior al persoanei atunci cnd i-au fost acordate credite (istoria creditului), datoria curent, garanii i venit. Problema este una de clasificare simpl: a prezice dac un solicitant prezint sau nu un risc mare sau mic pentru credit. Urmatorul tabel prezint multimea de date de antrenare pentru aceasta problema.

Nr. Crt. 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Nume Client Andrei Ion Marius Vlad Bogdan Sorin Alex Mihai Lucian Rares Samir Petru Marcel Sorin

Istoria creditului Rea Necunoscuta Necunoscuta Necunoscuta Necunoscuta Necunoscuta Rea Rea Buna Buna Buna Buna Buna Rea

Datorii Mari Mari Mici Mici Mici Mici Mici Mici Mici Mari Mari Mari Mari Mari

Garanii Fara Fara Fara Fara Fara Adecvate Fara Adecvate Fara Adecvate Fara Fara Fara Fara

Venit 0 15k 15 35 k 15 35 k 0 15k > 35k > 35k 0 15k > 35k > 35k > 35k 0 15k 15 35 k > 35k 15 35 k

Clasificarea Riscului Mare Mare Moderat Mare Mic Mic Mare Moderat Mic Mic Mare Moderat Mic Mare

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

4/10/2013

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

Istoria creditului Necunoscuta Rea Buna Total

Risc Mare 2 3 1 6

Risc Moderat 1 1 1 3

Risc Mic 2 0 3 5

Total 5 4 5 14 Gain

Entropie

Datorii:
Datorii Mari Mici Total

Risc Mare 4 2 6

Risc Moderat 1 2 3

Risc Mic 2 3 5

Total 7 7 14 Gain

Entropie

Garantii:
Garantii Fara Adecvate Total

Risc Mare 6 0 6

Risc Moderat 2 1 3

Risc Mic 3 2 5

Total 11 3 14 Gain

Entropie

4/10/2013

Venit:
Venit 0-15k 15-35k >35k Total

Risc Mare 4 2 0 6

Risc Moderat 0 2 1 3

Risc Mic 0 0 5 5

Total 4 4 6 14 Gain

Entropie

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

Nr. Crt. 2 3 12 14

Nume Client Ion Marius Petru Sorin Risc Mare 1 1 0 2

Istoria creditului Necunoscuta Necunoscuta Buna Rea Risc Moderat 1 0 1 2 Risc Mic 0 0 0 0

Datorii Mari Mici Mari Mari

Garanii Fara Fara Fara Fara

Venit 15 35 k 15 35 k 15 35 k 15 35 k

Clasificarea Riscului Mare Moderat Moderat Mare

Istoria creditului Necunoscuta Rea Buna Total

Total 2 1 1 4 Gain

Entropie

Datorii Mari Mici Total

Risc Mare 2 0 2

Risc Moderat 1 1 2

Risc Mic 0 0 0

Total 3 1 4 Gain

Entropie

Garantii Fara Adecvate Total

Risc Mare 2 0 2

Risc Moderat 2 0 2

Risc Mic 0 0 0

Total 4 0 14 Gain

Entropie

10

4/10/2013

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

Nr. Crt. 5 6 8 9 10 13

Nume Client Bogdan Sorin Mihai Lucian Rares Marcel Risc Mare 0 0 0 0

Istoria creditului Necunoscuta Necunoscuta Rea Buna Buna Buna Risc Moderat 0 1 0 1 Risc Mic 2 0 3 5

Datorii Mici Mici Mici Mici Mari Mari

Garanii Fara Adecvate Adecvate Fara Adecvate Fara

Venit > 35k > 35k > 35k > 35k > 35k > 35k

Clasificarea Riscului Mic Mic Moderat Mic Mic Mic

Istoria creditului Necunoscuta Rea Buna Total

Total 2 1 3 6 Gain

Entropie

Datorii Mari Mici Total

Risc Mare 0 0 0

Risc Moderat 0 1 1

Risc Mic 2 3 5

Total 2 4 6 Gain

Entropie

Garantii Fara Adecvate Total

Risc Mare 0 0 0

Risc Moderat 0 1 1

Risc Mic 3 2 5

Total 3 3 6 Gain

Entropie

11

4/10/2013

Max(0,65;0,109;0,190)=0,65 Deci se alege Istoria creditului. Cum entropia pentru ramurile: Necunoscuta, Rea si Buna sunt 0 se inchid cu riscul corespunzator: risc Mic, Risc Moderat si respectiv Risc Mare.

Nr. Crt. 2 3

Nume Client Ion Marius

Istoria creditului Necunoscuta Necunoscuta

Datorii Mari Mici

Garanii Fara Fara

Venit 15 35 k 15 35 k

Clasificarea Riscului Mare Moderat

Datorii Mari Mici Total

Risc Mare 1 0 1

Risc Moderat 0 1 1

Risc Mic 0 0 0

Total 1 1 2 Gain

Entropie

Garantii Fara Adecvate Total

Risc Mare 1 0 1

Risc Moderat 1 0 1

Risc Mic 0 0 0

Total 2 0 2 Gain

Entropie

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 aparine unei succesiuni de arbori de decizie de nvare. Este o versiune mai avansat i mbuntit a algoritmului ID3. C4.5 genereaz un arbore de decizie clasificat pentru un set de date dat prin partiionarea recursiv a datelor. Arborele este construit folosind strategia Depthfirst. Algoritmul consider toate testele posibile care pot splita setul de date i selecteaz un test care ne ofer ce-a mai bun soluie. Noutile aduse de C4.5 sunt urmtoarele: Criteriul raportului catigtor: Noiunea de informaia maxim catigtoare 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 reinut ca informaia maxim catigtoare, iar setul de antrenare va fi mprit conform cu acest atribut. C4.5 folosete raportul catigator. In general, daca este data o distributie de probabilitate P = {p1, p2, ,pn} atunci Informatia extrasa din distributie, notata: Info(P) este entropia lui P: Info(P)=Entropy(P) = -(p1*log2(p1) + p2*log2(p2) + .. + pn*log2(pn)) Daca un set de S inregistrari este partitionat in clase disjuncte si exhaustive S= {S1, S2, ,Sn}, pe baza valorilor unui atribut A (non tinta) si p este multimea probabilitatilor partitiilor {S1, S2, ,Sn}: p={|S1|/|S|, |S2|/|S|, , |Sn|/|S|}, atunci informatia necesara identificarii unei clase corespunzatoare unui element din S, notata cu Info(S,A), devine media ponderata a informatiei necesare identificarii clase elementului Si, Info(Si):

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

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

unde:

SpiltInfo(A) este informatia obtinuta prin splitarea lui atributului non-tinta A pe baza valorilor proprii. Astfel SplitInfo(A)=I{|A1|/|A|, |A2|/|A|,, |Am|/|A|} unde {A1, A2, ,Am} sunt partitiile lui A induse de valorile sale. Valorile necunoscute ale atributelor: Algorimul C4.5 poate lucra cu baze de date care au nregistrri cu valori necunoscute, considerand GainRatio doar pentru nregistrrile 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 cresctoare 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 separri informaia catigtoare este calculat i este selectat partea care maximizeaz catigul.

4/10/2013

Funcia C4.5 (R: mulimea 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 nregistrrile din S au aceeai 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 nregistrrile din S dac R nu este vid, atunci reinem in D cheia cu cea mai bun valoare din mulimea R fie {dj | j = 1,2, ... m} valorile atributului D fie {Sj | j = 1,2, ... m} submulimile din S corespunztoare valorilor respective din dj se returneaz un arbore cu noduri surs D i cu arcele d1, d2, ..., dm C4.5(R\{D},C,S1), C4.5(R\{D},C,S2), .... C4.5(R\{D},C,Sm); end;

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

4/10/2013

Temperature Play

64 no

65 yes

68 no

69 no

70 no

71 yes

72 no

72

75

75 no

80 yes

81 no

83 no

85 yes

yes no

[4/no, 2/yes]
Info(Temperature) = Info(6/14,8/14)=0,985

71,5

[5/no, 3/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


<71.5 yes 2 no 4 >71.5 yes 3 no 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 Play

65 no

70 yes

70 no

70 no

75 no

78

80

80

80

85

90

90

95

96 no

yes no

yes no

yes no

yes yes

[6/no, 3/yes]
Info(Humidity) = Info(9/14,5/14)=0,940 Info(Play,Humidity) = 9/14*Info(3/9,6/9) + 5/14*Info(3/5,2/5) = 9/14*0.918 +5/14*0,971=0,937 <82.5 yes 3 no 6 >82.5 yes 3 no 2

82,5

[2/no, 3/yes]

Gain(Play,Humidity)= Info(Humidity) Info(Temperature,S) = 0.940 0.937 = 0.003 SplitInfo (Humidity)= -6/14*log(6/14) - 8/14*log(8/14) = 0,985 GainRatio(Play,Humidity )= 0,003/0,985=0,003

4/10/2013

Info(Windy) = I{8/14,6/14}=0,985 Info(Play,Windy) = 8/14*Info(2/8,6/8) + 6/14*Info(3/6,3/6) = =8/14*0.811+6/14*1=0,892

false

yes 2

no 6

true

yes 3

no 3

Gain(Play, Windy) = Info(Play) - Info(Play,Windy) = 0.985 0.892 = 0.093 SplitInfo(Windy) = -8/14*log(8/14) - 6/14*log(6/14) - 5/14*log(5/14) = 0,985 GainRatio(Play,Windy) = 0,093/0,985=0,094

Algoritmul SLIQ Algoritmul SLIQ (Supervised Learning In QUEST) este un algoritm de data mining rapid i masurabil dezvoltat de ctre Centrul de Cercetare Almaden al IBM n 1996. Folosete o tehnic rapid de presortare pentru a construi arborele de decizie atunci cnd datele din setul de antrenare sunt prea multe. SLIQ nu impune nici o restricie asupra cantitii de date sau a numrului de atribute din exemple. De aceea, SLIQ poate obine o acuratee mai mare clasificnd seturi mari de date care nu pot fi fcute cu ali algoritmi. Pentru atribute numerice, timpul de sortare este factorul determinant cnd cutm cea mai bun mprire 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) Partiionare(T) Partiionare (Data S) Dac toate punctele din S sunt din aceeai clasa Atunci intoarce Evaluare mprire pentru fiecare atribut A; Folosete cea mai bun mprire pentru a partiiona S n S1 i S2; Partiionare(S1); Partiionare(S2);

4/10/2013

Pentru a evalua ct de bun este alternativa mparirii unui atribut se folosete un index numit gini. Aceste se folosete pentru a msura intrri inegale, dar se poate folosi pentru a msura orice form de distribuii inegale. Indexul gini este un numr 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 conine exemple din n clase, Gini(S) este definit ca:

unde pj este frecvena relativ a clasei j n S. Exemple:


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

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

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

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

In general pentru un nod splitat in k partitii:

unde: Exemplu:

numarul de copii ai descendentului i,

numarul de inregistrari in nodul p

S YES Node N1 NO Node N2 v1 Node N1

S v2 Node N2 v3 Node N3

N1 C1 C2 6 2 Gini(N1)=1(6/8)^2(2/8)^2=0,375

N2 2 0 Gini(N2)=1-(2/2)^2(0/2)^2=0 C1 C2 N1 (valoare1) 1 4 Gini(N1)=1-(1/5)^2(4/5)^2=0,32 2 1

Atribut N2 (valoare2) N3 (valoare3) 1 1 Gini(N3)=1-(1/2)^2(1/2)^2=0,5

Gini(N2)=1-(2/3)^2(1/3)^2=0.444

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

4/10/2013

Pentru evaluarea mpririi se folosete urmtorul algoritm: Evaluaremprire() Pentru fiecare atribut A, Execut Parcurge lista de atribute a lui A Pentru fiecare valoare v din lista de atribute, Execut Gsete intrarea corespunztoare n lista de clase i de aici clasa corespunztoare i ramura nodului 1 Actualizeaz histograma clasei n ramura 1 Dac A este un atribut numeric atunci Calculeaz indexul de splitare pentru test (Av) pentru 1 Dac A este un atribut direct atunci Pentru fiecare ramur a arborelui Execut Gsete subsetul din A cu cea mai bun splitare Pentru actualizarea listei de clase se folosete urmtorul algoritm: UpdateLabels() Pentru fiecare atribut A folosit ntr-o splitare Execut Parcurge lista de atribute a lui A Pentru fiecare valoare v din lista de atribute, Execut Gasete intrarea corespunztoare n lista de clase e Gsete noua clas c de care aparine v aplicnd testul de splitare nodului referin din e. Actualizeaz eticheta clasei de la e la c Actualizeaz nodul referin n e copilului corespunztor clasei c

Exemplu de aplicare a algoritmului SLIQ Estimarea riscului de credit


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

4/10/2013

Datorii Mari RM Mod Rm 4 1 2 Gini=0,571 Mici 2 2 3 Gini=0,653 RM Mod Rm Fara 6 2 3

Garantii Adecvate 0 1 2 Gini=0,44 RM Mod Rm 0-15k 4 0 0 Gini=0

Venit 15-35k 2 2 0 Gini=0,5 >35k 0 1 5 Gini=0,278

Gini=0,595

Gini_split=0,612

Gini_split=0,563

Gini_split=0,262

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

Nr. Crt. 1 4 7 11 Nr. Crt. 2 3 12 14

Nume Client Andrei Vlad Alex Samir Nume Client Ion Marius Petru Sorin

Istoria creditului Rea Necunoscuta Rea Buna Istoria creditului Necunoscuta Necunoscuta Buna Rea

Datorii Mari Mici Mici Mari Datorii Mari Mici Mari Mari

Garanii Fara Fara Fara Fara Garanii Fara Fara Fara Fara
Datorii

Venit 0 15k 0 15k 0 15k 0 15k Venit 15 35 k 15 35 k 15 35 k 15 35 k

Clasificarea Riscului Mare Mare Mare Mare Clasificarea Riscului Mare Moderat Moderat Mare
Garantii Fara Adecvate 2 2 0 Gini=0,5 0 0 0 Gini=0

Istorie credit Necunnoscuta RM Mod Rm 1 1 0 Gini=0,5 Rea 1 0 0 Gini=0 Buna 0 1 0 Gini=0 RM Mod Rm Mari 2 1 0

Mici 0 1 0 Gini=0 RM Mod Rm

Gini=0,444

Gini_split=0,25

Gini_split=0,267

Gini_split=0,5

4/10/2013

Nr. Crt. 2 3 12 14

Nume Client Ion Marius Petru Sorin

Istoria creditului Necunoscuta Necunoscuta Buna Rea

Datorii Mari Mici Mari Mari

Garanii Fara Fara Fara Fara

Venit 15 35 k 15 35 k 15 35 k 15 35 k

Clasificarea Riscului Mare Moderat Moderat Mare

Istorie credit Necunoscuta RM Mod Rm 1 1 0 Gini=0,5 Gini_split=0,25 Rea 1 0 0 Gini=0 Buna 0 1 0 Gini=0

Nr. Crt. 2 3

Nume Client Ion Marius

Istoria creditului Necunoscuta Necunoscuta

Datorii Mari Mici

Garanii Fara Fara

Venit 15 35 k 15 35 k

Clasificarea Riscului Mare Moderat

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

Gini_split=0,5 Datorii Mari RM Mod Rm 1 0 0 Gini=0 Mici 0 1 0 Gini=0

Gini_split=0

4/10/2013

Nr. Crt. 5 6 8 9 10 13

Nume Client Bogdan Sorin Mihai Lucian Rares Marcel

Istoria creditului Necunoscuta Necunoscuta Rea Buna Buna Buna


Istorie credit

Datorii Mici Mici Mici Mici Mari Mari

Garanii Fara Adecvate Adecvate Fara Adecvate Fara

Venit > 35k > 35k > 35k > 35k > 35k > 35k
Datorii

Clasificarea Riscului Mic Mic Moderat Mic Mic Mic


Garantii Mici 0 1 3 Gini=0 RM Mod Rm Fara 0 0 3 Gini=0,444 Adecvate 0 1 2 Gini=0

Necunoscuta RM Mod Rm 0 0 2 Gini=0

Rea 0 1 0 Gini=0 Gini_split=0

Buna 0 0 3 Gini=0 RM Mod Rm

Mari 0 0 2 Gini=0

Gini_split=0,167

Gini_split=0,148

Determinarea arborelui de decizie cand avem valori numerice

Crt.

Stare civila necasatorit casatorit necasatorit casatorit divortat casatorit divortat necasatorit casatorit necasatorit 65 > 3 7 <= 0 1 0,4 > 3 6

Venit impozabil 125k 100k 70k 120k 95k 60k 220k 85k 75k 90k 72 <= 0 2 > 3 5 87 <= 1 3

Eludeaza plata impozit no no no no yes no no yes no yes 92 > 2 4 <= 2 3 0,4 > 1 4 <= 3 3 0,3 97 > 0 4 <= 3 4 0,343 110 > 0 3 <= 3 5 yes no necasatorit 2 2 Stare civila casatorit 0 4 Gini_split=0,3 divortat 1 1

1 2 3 4 5 6 7 8 9 10 55 <= yes no Gini_ split 0 0 0,42

122 > 0 2

172 <= 3 6 0,4 > 0 1 <= 3 7

230 > 0 0 0,42

0,375

0,417

0,375

4/10/2013

<=97k

>97k

Crt.

Stare civila necasatorit divortat casatorit necasatorit casatorit necasatorit

Venit impozabil 70k 95k 60k 85k 75k 90k

Eludeaza plata impozit no yes no yes no yes 1 2 4 7 Crt. Stare civila necasatorit casatorit casatorit divortat

no

3 5 6 8 9 10

Venit impozabil 125k 100k 120k 220k

Eludeaza plata impozit no no no no

55 <= yes no Gini_ split 0 0 0,5 > 3 3

65 <= 0 1 0,4 > 3 2

72 <= 0 2 0,25 > 3 1

87 <= 2 3 0,4 > 1 0 <= 3 3

92 > 0 0 0,5

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

<=97k

Venit impozabil

>97k

Stare civila
necasatorit casatorit divortat no Crt. Stare civila necasatorit necasatorit necasatorit Venit impozabil 70k 85k 90k Eludeaza plata impozit no yes yes necasatorit casatorit yes

no

Venit impozabil Stare civila


<=97k >97k

3 8 10

no

Venit impozabil
92 <=72k > 0 0 no >72k yes

divortat yes

no

65 <= yes no Gini_ split 0 0 > 2 1

72 <= 0 1 0 > 2 0

87 <= 1 1 > 1 0 <= 2 1

0,444

0,333

0,444

10

4/10/2013

4. Sistemul CAD (Computer Aided Design

Proiectarea asistat de calculator)


4.1 Procesul de proiectare
Activitatea de proiectare este una din principalele activiti care influeneaz eficiena sistemului de fabricaie. Intrarea n acest sistem poate fi iniiat din exterior de ctre o comand client, fiind preluat prin intermediul serviciului de marketing i prognoz, sau din interior, ca urmare a unor studii de prospectare a pieei. n ambele cazuri, la nivelul sistemului CAD intrarea se materializeaz sub forma unor specificaii de proiectare, concepute astfel nct produsul proiectat s satisfac urmtoarele cerine: de form (form), (proprieti legate de forma produsului, stilul i caracterul acestuia); de potrivire (fit) cu cerinele pieei din punctul de vedere al criteriului de ctigare a comenzii, cu alte produse aflate deja n fabricaie i cu cerinele segmentului int cruia i se adreseaz; funcionale (function) - nglobeaz caracteristicile care definesc produsul din punctul de vedere al performanelor, fiabilitii, ntreinerii, precum i al altor criterii generale de ctig a comenzii). Specificaiile de proiectare sunt preluate simultan/concurent de echipe cu atribuii diverse dup cum urmeaz: proiectare (product engineering), preiau specificaiile de proiectare i le materializeaz sub forma proiectului produsului; analiz (analyse engineering) testeaz i simuleaz funciile produsului; dezvoltare (development engineering) se ocup de realizarea prototipului i testarea acestuia; cercetare, susin activitile de mai sus, sub aspect teoretic, al standardizrii activitilor i al modului de organizare. Modul n care aceste echipe interacioneaz definesc un prim model al sistemului i anume modelul activitilor de proiectare. n literatur sunt prezentate mai multe astfel de modele propuse de diveri autori.

Principalele activiti sunt: conceptualizarea, sinteza, analiza, evaluarea i realizarea documentaiei.

Elaborarea conceptului

Sinteza

Analiza

Evaluarea

Documentaia

Fig. 1 nlnuirea etapelor n modelul desfurrii proiectrii Elaborarea conceptului reprezint clarificarea sarcinii de proiectare sub aspectul elaborrii cerinelor de form, potrivire i funcie (form-fit-function) ale produsului final. Pn la aceast etap, se analizeaz dac problema de proiectare este similar cu alte probleme de proiectare anterioare, clasificndu-se ca tipic sau atipic. n cazul unei probleme atipice trebuie elaborat conceptul de proiectare aplicarea metodelor de proiectare pentru crearea unui produs nou cu caracteristici unice. Aceast activitate este preponderent creativ, dar se ia n considerare utilizarea unor subansamble standard sau a unor rezultate anterioare obinute. Spre deosebire de cazul problemelor atipice, n cazul problemelor tipice se folosete proiectarea repetitiv (se aplic concepte de proiectate sau pri componente elaborate anterior la alte produse similare sau adaptri minore ale acestora). Proiectarea repetitiv necesit un sistem de clasificare a produselor curente pe baza cruia s se identifice asemnrile (criteriile de clasificare se bazeaz pe analiza parametrilor produselor sau subansamblelor cu form i funcii asemntoare, dar diferite prin mrime i detalii) i utilizarea unor modele de proiectare grafice i analitice care s poat fi transmise i recepionate printr-un sistem de comunicaie adecvat.

11

4/10/2013

Sinteza continu faza de elaborare a conceptului prin adugarea specificaiilor de material, a unor noi caracteristici geometrice i detalierea dimensiunilor geometrice. Aceast etap este important pentru c urmrete s raionalizeze detaliile geometrice ale produsului i caracteristicile de material, aspecte care influeneaz substanial costurile de fabricaie fr a contribui la valoarea de pia a acestuia. Pentru aceasta se utilizeaz conceptele de proiectare pentru asamblare i proiectarea pentru fabricaie, care au fost amintite la impactul tehnologiilor specifice de fabricaie. La acest nivel se stabilete 70% din preul final al produsului, ceea ce determin parcurgerea mai multor iteraii prin care se optimizeaz soluia final. Analiza este metoda de determinare sau descriere a naturii unui lucru prin separarea n prile componente. n urma analizei se studiaz varianta sau variantele furnizate n cadrul sintezei, stabilindu-se gradul de satisfacere a cerinelor din specificaiile de proiectare. Este un proces intens interactiv, n care se utilizeaz analiza proprietilor de mas (calculul masei, a volumelor, i suprafeelor, a centrelor de greutate i a momentelor de inerie etc., analiza toleranelor i interferena ansamblului stabilirea faptului c operaiile de asamblare vor decurge corespunztor) i metoda elementului finit (se determin limitele la efort, transferul cldurii i limitele teoretice de funcionare). Evaluarea const n verificarea proiectului relativ la specificaiile de proiectare. Pe lng verificarea soluiei provenit n urma sintezei i analizei se evalueaz relaia dintre capacitile de producie i specificaiile de asamblare i fabricaie ale proiectului. Evaluarea necesit de multe ori realizarea unui prototip. Realizarea rapid a prototipului (Rapid prototyping) este conceptul modern utilizat pentru evaluarea performanelor operaionale. Dac proiectul satisface toate criteriile se nainteaz pentru elaborarea documentaiei.

Elaborarea documentaiei ansamblul activitilor prin care se elaboreaz toate vederile prilor componente, adugarea detaliilor de proiectare (note de fabricaie, dimensiuni i tolerane), elaborarea documentelor, asignarea codurilor prilor componente, elaborarea listei de materiale i tabelei de referine, realizarea fiierelor de date ce vor fi transmise spre planificarea i controlul fabricaiei, spre producie i controlul calitii. Desfurarea activitilor de proiectare simultan/concurenial implic proiectarea produsului cu luarea n considerare a ciclului de via al acestuia. Introducerea acestui concept n modelul organizatoric al activitilor de proiectare este ilustrat nurmatoarea figura.

12

4/10/2013

Cercetarea pieei Stabilirea costurilor i a sarcinilor de producie Echipa de proiectare concurent -ingineri tehnologi -furnizori de echipamente -proiectani -controlul produciei -programatori CNC -proiectani scule i dispoziive -controlul calitii -furnizori componente -proiectani scule -achiziie -marketing Procesul de proiectare a produsului -conceptualizare -sintez -analiz -evaluare -documentaie

Proiectare simultan/concurent

Se obin costurile planificate?


Da

Nu

Dezvoltarea sistemului de fabricaie Operarea sistemului de fabricaie

4. 2 Rolul comunicrii i al modelelor n sistemul CAD Activitatea de proiectare este una creativ i abstract (produsul este virtual pn 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 prilor componente. n funcie de complexitatea proiectului, modelul produsului reprezint o modalitate de fixare a ideilor, dar i un mijloc de comunicare ntre participanii la aceast activitate. n urma comunicrii, modelul este analizat de participani pe baza unor protocoale standardizate sau a unui set de reguli i n urma acestei activiti se completeaz cu elemente noi care genereaz alte modele. Modelul este un suport pentru evaluarea informaiilor i generarea de noi informaii. Pentru aceeai component a unui produs pot exista simultan mai multe tipuri de modele diferite ntre ele, n funcie 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 cldurii etc. Uzual n procesul de proiectare se modeleaz: funcia, forma, structura, proprietile de material, condiiile impuse suprafeelor, tolerane sau dimensiuni ale produsului.

Receptorii sunt participanii la acest proces.

13

4/10/2013

Dintre toate proprietile modelate o importan deosebit o au forma i structura. Acestea influeneaz n mod diferit modul n care se face reprezentarea. Forma se reprezint prin desenarea acesteia n timp ce structura se reprezint folosind simboluri abstracte care modeleaz modul intern de conectare i circuitul fluxului de informaii, energie sau materiale. Structura se modeleaz prin scheme sau diagrame. O parte semnificativ a procesului de proiectare a structurii poate avea loc fr a detalia forma. Aceast metod de proiectare poart denumirea de ingineria sistemelor. Relativ la buna comunicare ntre participani, o alt condiie este legat de limbajul de comunicare folosit. Complexitatea proiectelor poate conduce la dificulti de interpretare, ambiguiti de reprezentare i erori de evaluare. n consecin, proiectarea modelelor trebuie s se raporteze la o serie de standarde care definesc sintaxa limbajului de comunicare. Modelarea cu ajutorul calculatoarelor trebuie s suporte o modalitate de elaborare progresiv a proiectului, activitile de proiectare detaliate anterior, metodele de evaluare i s furnizeze un mijloc de comunicare. Rolul calculatorului este de a automatiza i asista activitile de elaborare a desenelor, a genera lista de materiale a produsului i la un nivel superior de a facilita noi tehnici de elaborare i asistare a procesului de proiectare.

4.3 Arhitectura sistemelor CAD


n cele prezentate anterior sistemele CAD au fost descrise logic. Fizic, un sistem CAD este compus din: structura hardware (calculatorul i dispozitivele periferice), structura software (programele care ruleaz pe structura hardware), structura de date (structura de date creat i manipulat de software) i operatorii umani (care pe baza cunotinelor desfoar activiti). Arhitectura sistemelor CAD este reprezentat n fig. 3.

Structura de date

Funcii
Definire model Manipulare model Generare grafic

Baza de date -Modelele componentelor - Desene - Standarde - Biblioteci - date

Date de lucru - Date geometrice - Date asociate

Intrare/ieire
Utilitare

Utilizatori

Managementul bazei de date (DBMS) Aplicaii

14

4/10/2013

Funciile CAD sunt: definire model (adugarea componentelor geometrice unui desen) manipulare model (operaiile move, copy, delete, edit, sau orice alte comenzi care modific elementele desenului) generare grafic (algoritmii de generare a imaginilor pe ecran sau pe un dispozitiv de imprimare) interfa utilizatori (sistemul de preluare a comenzilor date de utilizatori i de prezentare a ieirii ctre utilizatori sub un anumit sistem de operare) managementul bazei de date (managementul fiierelor care alctuiesc baza de date) aplicaii (aceste elemente de software nu modific modelul proiectului, ci l utilizeaz pentru generarea informaiilor de evaluare, analiz sau fabricaie) utilitare (termen generic ce definete toate modulele software care nu afecteaz direct modelul, dar modific modul de operare al sistemului ntr-un anumit fel, de exemplu: selectarea culorii afiate, unitile de msur utilizate, etc.) Aceste funcii se vor studia n laborator, n cazul unor CAD-uri particulare.

4.4 Definirea modelului i reprezentarea structurii Tehnica reprezentrii formelor 3D n spaiul cu dou dimensiuni, prin intermediul desenului tehnic pe hrtie sau cu ajutorul calculatorului poart denumirea de geometrie descriptiv. Primele nceputuri aparin lui Albrecht Durer n sec. 15-16, dar n forma n care se utilizeaz astzi, dezvoltarea aparine inginerului militar francez Gaspard Monge (1764-1818). Monge a introdus o metod de reprezentare a formelor prin proiecia acestora n dou planuri mutual perpendiculare. Esena metodei lui Monge se utilizeaz i astzi. Formele 3D sunt reprezentate n dou dimensiuni prin punerea n coresponden a punctelor obiectului cu punctele proieciilor acestuia n mai multe planuri mutual perpendiculare, prin utilizarea proieciilor paralele, perpendiculare pe planurile de proiecie. Din proiecia punctelor se obine proiecia muchiilor i din muchii suprafeele. Proiecia n 2D se obine prin desfurarea planurilor perpendiculare ntr-un singur plan, vezi figura de mai jos

15

4/10/2013

n aceast metod se utilizeaz o serie de convenii descrise detaliat n standarde. De exemplu: ntr-un desen se utilizeaz diferite tipuri de linii cu semnificaii diferite, seciunile se reprezint ca i cum o anumit parte a obiectului este nlturat, proieciile se realizeaz n dou moduri proiecia paralel (care pstreaz scara obiectelor) i proiecia de perspectiv (care creeaz impresia de profunzime pentru interpretarea desenului). Diagramele sau schemele sunt reprezentate printr-o serie de simboluri conectate prin conexiuni. Modalitatea de reprezentare a simbolurilor i a conexiunilor este de asemenea stabilit prin standarde. n figura de mai jos se prezint un exemplu de modelare a structurii prin simboluri i conexiuni n ORCAD.

O modalitate de reprezentare n astfel de modele este reprezentarea de tip top-down. Iniial sunt prezentate numai relaiile dintre blocuri. Prin selectarea unui bloc urmeaz o detaliere a acestuia i, prin selecii consecutive se determin continuarea detalierii structurii. Modalitile 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. Totui sunt i o serie de dezavantaje: n cadrul unor produse complexe documentaia poate conine un numr foarte mare de desene, interpretarea modelelor necesit cunotine avansate pe care trebuie s le aib toi participanii la aceast activitate, pot apare erori n generarea modelelor, curbe complexe pot fi foarte greu de reprezentat prin tehnicile convenionale, extragerea informaiilor din desene s-a dovedit a fi subiectiv i n unele situaii reprezentrile prezint ambiguiti. 4.5 Reprezentarea desenelor i schemelor cu calculatorul 4.5.1 Realizarea schielor Se refer la reprezentarea geometriei. Modalitatea este n general asemntoare cu cea clasic. Se utilizeaz aceleai standarde i geometria conturului se reprezint printr-o serie de elemente geometrice precum puncte, linii, arce, cercuri, elipse, elementele geometrice individuale purtnd numele de entiti geometrice, fig.6. Aceste entiti vor fi definite de sistem prin valori numerice, reprezentnd punctele de coordonate sau alte date. De exemplu, o linie este definit prin coordonatele x i y ale punctelor extremitilor, sau un arc de cerc prin coordonatele centrului cercului, raz i unghiul de start i de stop. n reprezentarea manual dimensiunea desenului reprezint o constrngere.

16

4/10/2013

17

4/10/2013

18

4/10/2013

n reprezentarea pe calculator aceast restricie dispare. Modelul este construit printr-o serie de proceduri de calcul care sunt condiionate numai de numrul entitilor ce pot fi stocate i manipulate de calculator. n consecin n CAD desenele pot fi reprezentate n vedere complet, indiferent de mrimea lor. De asemenea, calculatorul furnizeaz utilizatorului un numr mare de variante de definire a entitilor 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 entiti se poate face pe baza entitilor deja definite. Coordonatele pot fi introduse prin valori numerice sau prin localizarea cu mouse-ul a punctului pe ecran. O parte din comenzile de manipulare a desenului n AUTOCAD sunt: erase, copy, mirror, move, rotate, scale, strech (fig. 7), trim (fig. 8), extent, join entities.

19

4/10/2013

Desenarea schemelor const n asistarea de ctre calculator n procesul de producere a schemelor. i acest tip de reprezentare folosete entiti geometrice. Diferena const n faptul c acestea sunt agregate sub form de simboluri i conexiuni. Programele au facilitatea de a grupa o colecie de entiti care mai sunt cunoscute sub numele de pattern, template sau symbol. Schema este construit dintr-o serie de pattern-uri conectate prin polilinii. Simbolurile cu care se construiete schema au puncte de conexiune i conectori care permit realizarea legturilor. Programul permite extragerea dintr-un astfel de desen a listei simbolurilor i a modului cum sunt conectate. Aceasta din urm poart denumirea de netlist. O astfel de reprezentare este util pentru identificarea conexiunilor neutilizate, sau a conexiunilor incomplete. n plus intrrile schemei pot fi modelate i sistemul simulat, fig.9.

20

4/10/2013

Modelarea corpurilor prin metoda WIREFRAME


Principiul de reprezentare consta in memoreaza pozitiile liniilor 2D sau 3D Folositor pentru realizarea schitelor, fiind usor de realizat vederi multiple si de editat. Ambiguitate in reprezentarea suprafetelor, ceea ce limiteaza posibilitatile de interfatare cu sistemul de fabricatie asistata de calculator (nu permite masurarea volumelor sau generarea traiectoriilor de prelucrare pentru NC. Un exemplu de reprezentare prin wireframes este indicat in figura de mai jos, corpul reprezentat in stanga. Interpretarea acestuia poate conduce la multiple solutii sugerate in figura de mai jos dreapta.

Modelarea suprafetelor Permite reprezentarea ecuatiilor suprafetelor Cele mai multe biblioteci grafice 3D folosesc tehnica de modelarea suprafetelor. Avantaje: - permit vizualizarea suprafetelor complexe si generarea automata a traiectorieie de prelucrare pe NC. Dezavantaje: informatiile privind volumul corpurilor sau materialul sunt ambigue sau dificil de determinat. In fig. alaturata sunt diferite reprezentari prin aceasta tehnica. Modelarea solidului Aceasta se realizeaza prin diverse tehnici: crearea unor primitive operatii Booleane operatii de baleiere operatii de suprafata modelarea pe baza caracteristicilor ingineresti modelarea parametrica

21

4/10/2013

Crearea primitivelor Primitivele sunt forme solide elementare cu suprafete matematice simple. Pot fi controlate printr-un numar mic de parametrii si pozitionate prin transformari matriciale (vezi fig. alaturata). Operatii Booleene Operatiile Booleene sunt utilizate pentru realizarea unor corpuri mai complicate prin combinarea primitivelor. Sunt posibile trei tipuri de operatii: reuniune sau join intersectie diferenta

Operatii de baleiere Folosesc reprezentari wireframe 2D ale sectiunilor pentru a genera solidul 3D. Aceasta include operatii ca: extrude (extruziune) revolve (generarea suprafetelor de revolutie) sweep (generarea suprafetelor prin baleiere) loft

22

4/10/2013

Operatii asupra suprafetelor Acestea opereaza direct asupra modelului suprafetelor corpului solid, asupra muchiilor sau colturilor pentru a crea modificarile dorite Exemple: chamfering rounding/filleting drafting shelling Modelarea pe baza caracteristicilor Caracteristicile sunt forme care au anumite semnificatii ingineresti. De obicei ele sunt reprezentari geometrice ale operatiilor de prelucrare pe masina sau functia unei componente Exemple: hole pocket (gaura - buzunar) slot - boss Se utilizeaza termenul de caracteristica pentru orice operatie de modelare a corpului solid. Unele sisteme furnizeaza caracteristici gata definite.

23

4/10/2013

Sistemul CAD/CAM

Cerere piata

Geometrie

CAD

CAM

Geometrie

Prioritati

Fabricatie

Strategia de fabricatie

Rute

CAPP

CAPM

Profilul capabilitatilor celulei de fabricatie

Profilul capacitatii celulei de fabricatie

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

Programarea asistata de calculator Fisier sursa Elaborarea manuala a codului Compilare Fisierul locatiilor cutitului (CLDATA) Post-procesare Codul masina (MCD) Introducere manuala a datelor (MDI) Transmiterea la distanta Transmiterea la masina

Translator .dxf

Translator IGES

Translator STEP

Translator PDES

Fisier format CAM

Fisier scule

Fisier parametri tehnologici

Fisierul locatiilor cutitului (CLDATA)

Fisier geometria traseului

Afisare animata a traseului prelucrat

Plotter

CAM Comanda numerica (NC)

Masina unealta (MU)

4/10/2013

Limbaje simbolice
Limbajul APT: Automatic Programmed Tool Alte limbaje: IFAP (Germania) Waldo (1ier) EXAPT (Germania) COMPAC (Bendix) MINIAPT SYMPAC (Univac) SYMAP NUMERISCRIPT AUTOPROG SPLIT AUTOAPT CINAP ADAPT AUTOSPOT AUTOPROPS AUTOPRESS (Anglia) PROFILEDATA SNAP

PROMO (Franta) ELAN PAM GTL PSI COMPACT II NEL (Ferranti) NUCOM AUTOPIT (Germania)

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

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

Editor de texte

Program sursa Instructiuni APT Interpretor Calcul geometric

Sistem CAD

Program sursa Instructiuni APT + Referinte erori

Calcul deplasari scula Cutter location File CL File


Parametrii (masina i)

Post-Procesor Cod G
(masina i)

4/10/2013

Exemplu de program

LY

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

C4 R=1.5 ORIG C3 R=1.5 C1 L1 L2 R=0.5 LX R=0.5 C2

0,-2

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

LY

C4

LX ORIG C3 C1 L1 L2 SETPT 0,-2 C2

4/10/2013

Elementele limbajului

Sintaxa. Caractere utilizate.


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

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

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

Cerc

X+

DISTF (Plan1, Plan2) DISTF (Ligne1, Ligne2) NUMF (Pattern)

Distanta intre doua plane paralele Distanta intre doua plane paralele Numar de puncte al unui pattern

Tablouri RESERV/Nume_tablou, N Exemple RESERV/T,12 T(1) = 12.34 T(1, THRU, 5) T(THRU, 5) T(ALL) T(5, THRU, ALL) T(3,THRU, 8, INCR, 2) T(ALL, DECR, 3) P1 = POINT/ T(3, THRU, 5)

Declara un tabel cu N elemente,

Tabloul T de 12 elemente T(1), T(2), , T(5) idem Toate elementele tabloului T(5), T(6), , T(12) T(3), T(5), T(7) T(12), T(9), T(6), T(3) $$ X = T(3), Y = T(4), Z = T(5)

4/10/2013

Entitati geometrice:
POINT LINE CIRCLE ELLIPS HYPERB GCONIC punct (se poate utiliza deasemenea ca un vector) linie (plan orthogonal pe planul XY, trecand printr-o linie) cerc (cilindru ortogonal pe planul XY, trecand printr-un cerc) elipsa hiperbola ax2 + bxy + cy2 + dx + ey + f = 0 curba plana, Loft conic, o conica definita prin 5 puncte , 4 puncte + tangenta sau 3 puncte + 2 tangente plan cilindru cone sfera ax2 + by2 + cz2 + dyz + exz + fxy + gx + hy + iz + j = 0 Cilindru tabulat,

LCONIC PLANE CYLNDR CONE SPHERE QADRIC TABCYL

RLDSRF

Suprafata rulata

POLCON VECTOR MATRIX

Polyconique, suprafata policonica Vector Matrice

Definitia unei entitati geometrice Format general

Ident = Tip / Definitie Ident: Tip: Definitie: nume de variabila tipul entitatii metoda de definire a entitatii

ZSURF

definirea unei valori implicite pentru Z ZSURF/Plan ZSURF/a,b,c,d

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

4/10/2013

XSMALL, YSMALL, XLARGE, YLARGE, RIGHT, LEFT, LARGE, SMALL, etc.


A II-a intrare a definitiei
YLARGE XSMALL LEFT Y X XLARGE YSMALL

RIGHT

Prima intrare a definitiei

Declaratii geometrice (definitii ale entitatilor geometrice ale conturului de prelucrat) POINT Coordonate rectangulare PNT1 = POINT/ xcoord, ycoord [,zcoord] Intersectia a doua linii PNT2 = POINT/ INTOF, Linie1, Linie2 Intersectia unei linii cu un cerc PNT3 = POINT/ *Mod, INTOF, Linie1, Cerc1 Intersectia a doua cercuri PNT4 = POINT/ *Mod, INTOF, Cerc1, Cerc2 Pe un cerc la un unghi PNT5 = POINT/ Cerc1, ATANGL, Degrees Centrul cercului PNT6 = POINT/ CENTER, Cerc1 Intersectia linie conica PNT7 = POINT/ *Mod, INTOF, Linie1, Conica * Mod = XLARGE, YLARGE, XSMALL, YSMALL

PNT5 Degrees

Cerc1

4/10/2013

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

PNT11 X

Punctul N dintr-un patern PNT12=POINT/ Patt, N * Mod = XLARGE, YLARGE, XSMALL, YSMALL *Pref = XYPLAN, YZPLAN, ZXPLAN

POINT Exemple
Z

PF C2 PG Y PE C1 45 L2

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

10 PA

PC

PB

L1

10 45 PL3 PJ PI PL1 PL2

PH

K1

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 Point1 LN4 RIGHT LN5 C2 LN5 = LINE/ RIGHT, TANTO, C1, RIGHT, TANTO,C2 LEFT

* RL = LEFT sau RIGHT

Printr-un punct si un unghi LN6 = LINE/ Point1, ATANGL, Degrees, {[XAXIS], YAXIS} Printr-un punct si un unghi LN7 = LINE/ Point1, SLOPE, Tangte, {[XAXIS], YAXIS} Axa X sau Y LN8 = LINE/ {XAXIS, YAXIS} Printr-un punct si o panta in raport cu o linie LN9 = LINE/ Point1, SLOPE, Tangte, Linie1 Printr-un punct si o panta in raport cu o linie LN10 = LINE/ Point1, ATANGL, Degrees, Linie1

Point1

Point1

LN10 LN6 X Degrees

Degrees

Ligne1

10

4/10/2013

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

XSMALL YLARGE Y LN13 LN6 X

Linie1

LN13 = LINE/ PARLEL, LN6, YLARGE, 20

YSMALL XLARGE

* Mod = XLARGE, YLARGE,

XSMALL, YSMALL

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

Degrees Degrees X Val Val LN16 LN15

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

X Point1 LN17

11

4/10/2013

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

LB LA

LI -30 10

LC

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

Cerc1

C7 LARGE

Point1 C7 SMALL

12

4/10/2013

Prin raza si tangenta la 2 linii


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

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

Linie2 X XLARGE, Linie1, YSMALL, Linie2 YLARGE, Linie1, XSMALL, Linie2

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

* Mod = XLARGE, YLARGE, XSMALL, YSMALL

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

XSMALL, Linie1, . YSMALL, Linie1, . Cerc1 Y ,IN, Cerc1,... ,OUT, Cerc1,... Linie1

., XSMALL,,Cerc1 ., YLARGE,, Cerl1 ., XLARGE,,Cerc1 ., YSMALL,, Cerl1

X C9 XSMALL YLARGE

,OUT, Cerc1,...

raza C9 XLARGE YSMALL

Linie1

XLARGE, Linie1, . YLARGE, Linie1, .

* Mod = XLARGE, YLARGE, XSMALL, YSMALL

13

4/10/2013

Prin raza si tangenta la doua cercuri C11 = CIRCLE/ Mod*, IO*, Cerc1, IO*, Cerc2, RADIUS, raza

Cerc1

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

Cerc2 XLARGE, .. YLARGE, .. , IN, Cerc1, , IN, Cerc2, , OUT, Cerc1, , IN, Cerc2, X XSMALL, .. YSMALL, ..

* Mod = XLARGE, YLARGE, XSMALL, YSMALL

* IO

= IN, OUT

Prin raza si tangenta la o linie si un TABCYL C12 = CIRCLE/ TANTO, Linie1, Mod*, TabCl1, Mod*, Point1, RADIUS, raza

Y TabC11

Point1

Ligne1 raza X

* Mod = XLARGE, YLARGE, XSMALL, YSMALL

14

4/10/2013

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

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

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

PT8

PT6 VE1

PF

PG Z PE Y PT1 PA PT2

PT3 PT4 X PC

60

PB

15

4/10/2013

CYLNDR Printr-un punct, o axa si o raza (formeacanonica) CY1 = CYLNDR/ x, y, z, a, b, c, Raza CY2 = CYLNDR/ Point1, a, b, c, Raza CY3 = CYLNDR/ x, y, z, Vect1, Raza CY4 = CYLNDR/ Point1, Vect1, Raza CONE Printr-un punct o axa si cosinusul jumatatii unghiului la varf CO1 = CONE/ x, y, z, a, b, c, CosAng CO2 = CONE/ Point1, Vect1, CosAng

Z Y Point1 Ang Vect1

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

16

4/10/2013

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

Prin coordonatele polare intr-un plan de baza VE9 = VECTOR/LENGTH, Long1, ATANGL, Angle1, ModPlan* Prin intersectia a doua plane VE10 = VECTOR/ PARLEL, INTOF, Plan1, Plan2, ModPos* Prin adunarea sau scaderea a doi vectori VE11 = VECTOR/ Vect1, PLUS, Vect2 VE12 = VECTOR/ Vect1, MINUS, Vect2 Printr-un unghi in raport cu o linie din planul XY VE13 = VECTOR/ ATANGL, Angle1, Linie1, Mod*
*ModPlan = XYPLAN, YZPLAN, ZXPLAN *ModPos = POSX, POSY, POSZ, NEGX, NEGY, NEGZ *Mod = POSX, POSY, NEGX, NEGY, XLARGE, YLARGE, XSMALL, YSMALL

17

4/10/2013

Declaratii de miscare Traiectoria de conturare Principii de definire a conturului PS: Part Surface (Suprafata piesei) Controleaza miscarea sculei in directia axei. Este suprafata care trebuie generata. DS: Drive Surface (Suprafata conducatoare) Controleaza miscarea sculei perpendicular pe directia de deplasare. Este suprafata de ghidaj. CS: Check Surface (Suprafata de verificare) Controleaza sfarsitul miscarii. Este suprafata tinta.

DS

CS

PS

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

CS

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

18

4/10/2013

Pozitia sculei / PS TLON PS Centrul sculei in contact cu PS


PS DS DS DS

PS

PS

Fara compensare de raza

Compensare de raza la dreapta DS

Compensare de raza la stanga

TLOF PS Un alt punct al sculei in contact cu PS


PS

DS

DS

PS

PS

Nota: TLOF PS are influenta numai la masinile unelte multi - axa

DS: Drive Surface Aceasta suprafata ghideaza scula in spatiu mentinand relatia cu suprafata PS Scula se gaseste in permanenta pe suprafata DS cu toleranta definita. DS nu este modala si trebuie precizata explicit la fiecare deplasare de conturare.

Pozitia sculei / DS TLFT TLRGT TLON TLNDON


DS TLFT DS TLRGT

DS TLON TLNDON

Nota: TLFT, TLRGT, TLON si TLDNON sunt modali

19

4/10/2013

Pozitia sculei pe suprafata de control CS TO ON PAST TANTO, DSTAN PSTAN

PS DS

PSTAN

CS CS CS CS DS TO

DS ON

DS PAST

DS TANTO DSTAN

Sintaxa generala a unei miscari de conturare

[label] TLLFT , TLON TLNDON Facultativ TLRGT

GOFWD GOBACK GORGT GOLFT GOUP GODOWN

/DS , TO , [n, INTOF,] CS ON Modificator PAST intersectii multiple TANTO

Modifica pozitia sculei in raport cu DS

Modifica directia in raport cu miscarea precedenta

Modificator in raport cu CS

GOLFT GOFWD GOBACK GORGT

20

4/10/2013

Initializarea unei traiectorii

Deplasarea initiala nu poate fi realizata printr-o miscare de conturare Scula nu poate fi in contact cu piesa Originea deplasarii nu poate fi cunoscuta (pozitia curenta a sculei). Directia de deplasare este nedefinita. Definirea punctului initial FROM/ Point1 [, Vect1] [,Avans] FROM/ x, y, z [, i, j, k] [,Avans] FROM/ x, y (combinat cu ZSURF/ ) Aceasta instructiune defineste un punct initial virtual, utilizat pentru calculul pozitiei sculei. Atentie: Pozitia sculei nu este fortata in acest punct. Vectorul defineste axa sculei (masini multiaxa). Ultimul parametru defineste viteza de avans. Aceasta instructiune nu genereaza nici o deplasare.

Definirea unei directii de deplasare initiale teoretice. INDIRV/ Vect1 INDIRP/ Point1 Definirea primei miscari

, DS [label] GO / TO ON PAST optional

, PS , , TO ON PAST

TO , CS ON PAST TANTO

Pozitia sculei in raport cu suprafetele 1, 2 sau 3 DS nu are aceeasi semnificatie ca in conturare Scula se deplaseaza pe traiectoria cea mai scurta intre pozitia reala si destinatia definita prin instructiunea GO/. In timpul deplasarii nu se verifica nici o toleranta.

21

4/10/2013

Exemple:

C1

FROM/P1 GO/ON,C1 P1

FROM/P1 GO/TO,L1

L1

C2

P2

FROM/P2 GO/PAST,C2

Exemple:

SURF3 P3

SURF4 P4

PL3 FROM/P3 GO/TO,SURF3,ON,PL3

PL4

FROM/P4 GO/PAST,SURF4,ON,PL4

22

4/10/2013

Exemple:

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

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

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

PL1: Planul ecranului

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

L18 FROM/P7 GO/TO,C7 C7 P7

FROM/P8 INDIRP/P10 GO/TO,L8

P8

P10

FROM/P7 INDIRV/-1,-1,0 GO/TO,C7

L8 FROM/P8 INDIRP/0,0,0 GO/PAST,L18 (0,0,0)

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

23

4/10/2013

Traiectoria punct cu punct (interpolare liniara)


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

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

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


R F B D E A

Definitia simplificata CUTTER/ D, R

CUTTER/ D

CUTER/ D, R Cu D = 2R

CUTTER/ D, R cu D > 2R

24

4/10/2013

Definitia tolerantelor

INTOL/ Val Definirea unei tolerante prin lipsa.

Val

Cota masurata

OUTTOL/ Val Definirea unei tolerante prin adaos.


Val

TOLER/ Val Alte forme de definire echivalenta cu:


INTOL/0 OUTTOL/ Val

Cota masurata

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

S-ar putea să vă placă și