Cursul 9Stocarea s, i prelucrarea datelor
Utilizarea Sistemelor de Operare (USO)20 noiembrie 2017
Departamentul de Calculatoare
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 1/51
Citat
Three things are certain:Death, taxes, and lost data.Guess which has occurred.
David Dixon, 1998, winning entry of the Haiku Error Messages 21st Challenge
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 2/51
Configurari de ret,ea
adres IP masc de re ea
gateway server DNS
static dinamic
temporar
persistent
ip address add 192.168.0.2/24 dev eth0
ip route add default via 192.168.0.1
echo "nameserver 8.8.8.8" > /etc/resolv.conf
dhclient eth0
auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameserver 8.8.8.8
auto eth0
iface eth0 inet dhcp
/etc/network/interfaces
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 3/51
Configurari de ret,ea (2)
http://www.guy-sports.com/humor/computers/computer_tech_support_calls.htm
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 4/51
In aceasta saptamana la USO
I ın week end apare quest de World of USO
I miercuri, 22 noiembrie 2017, ıncepe laboratorul 9: Stocarea s, iprelucrarea datelor
I tema 3 va aparea ın aceasta saptamanaI ıntrebat, i, ıntrebat, i, ıntrebat, iI folosit, i forumulI ajutat, i colegii pe forumI https://ocw.cs.pub.ro/courses/uso/regulament
I sect, iunea ,,Recomandari de comunicare electronica”I sect, iunea ,,Realizarea temelor”
I slide-urile cursului 10: ,,Shell scripting” vor fi publicate vineri,24 noiembrie 2017
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 5/51
Pin-uri USO
58 de pin-uri
I lab: 18 pin-uri (votat de asistent, i)
I curs: 8 (separat pe fiecare serie: 2 CA, 2 CB, 2 CC, 2 CD)
I midterm: 8 (primele 8 scoruri la testul practic de midterm)
I final: 16 (separat pe fiecare serie: 3 CA, 3 CB, 3 CC, 3 CD),cel mai bun scor, primul scor la practic, primul la grila
I extra: 8 (per serie), cea mai activa persoana din serie peforumuri (cs.curs.pub.ro), cel mai activ om ın zona de socialmedia (postari cu #usolife)
https://systems.cs.pub.ro/bachelor/uso/2018
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 6/51
Cuprins
Date digitale
Baze de date. SQL
Prelucrari de date
Parsarea datelor
Prezentarea datelor
Sumar
Extra
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 7/51
Date digitale
I informat, ii stocate pe suport electronic (ın general discuri)
I se stocheaza digital (ın bit, i, specific sistemului de calcul)
I ın general stocate ın fis, iere, ın cadrul sistemelor de fis, iereI avantaje fat, a de date ,,nedigitale”:
I stocare facila (nu ai nevoie de spat, iu fizic)I duplicare instant (nu e nevoie de copiator sau scanner)I transfer us,or (nu ai nevoie de cutii s, i camioane)I controlul accesului (decizi cine ce foloses, te)I aplicat, ii care folosesc date (aplicat, ii conform nevoii: criptare,
extragere informat, ii, ınlocuire etc.)I format de stocare (binar, text, comprimat etc.)
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 9/51
Ce e important la date digitale?
I spat, iul ocupat: unde le stocam, cum le stocam
I accesul: cum le accesam, ce interfet,e oferim, ce aplicat, ii lefolosesc
I securitatea: cine are acces, cum protejez de acces nedorit
I permanent,a (backup, versionare): cum previn pierdereadatelor
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 10/51
Date structurate
I datele structurate sunt organizate, ın general, ca o lista deelemente ce respecta nis, te criterii
I lista de student, i dintr-o facultate s, i atributele lor reprezintadate structurate
I catalogul unei materii e o forma de informat, ie structurataI alte exemple
I lista angajat, ilor unei companiiI portofoliul de produse al unei companiiI istoricul de evenimente ale unei organizat, ii
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 11/51
Entitat, i, proprietat, i s, i asocieri
I ın datele structurate folosim entitat, i (persoane, student, i,evenimente, produse)
I entitat, ile au proprietat, i sau atributeI o persoana are varsta, sex, ınalt, ime, ocupat, ie, data de nas, tereI un eveniment are o data de desfas,urare, un organizator, un set
de sponsori, nis, te obiectiveI un produs are un nume, un producator, un pret, , un mod de
distribut, ieI entitat, ile pot fi legate sau asociate ıntre ele
I un profesor preda mai multe cursuriI un curs este parte a unui an de studiuI un an de studiu cuprinde mai multe seriiI seriile cont, in student, iI o persoana are ca parint, i alte persoaneI o persoana lucreaza ıntr-o organizat, ieI o organizat, ie furnizeaza o serie de produse
I formele de stocare a datelor structurate trebuie sa pastrezeentitat, ile, atributele acestora s, i legaturile/asocierile ıntre ele
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 12/51
Date ın format tabelar
I un mod de prezentare a datelor structurate este formatultabelar: linii s, i coloane
I fiecare tabela reprezinta o entitate (de exemplu ,,studenti”)
I fiecare linie din tabel reprezinta o intrare, un element de tipulacelei entitat, i (adica un ,,student” real)
I fiecare coloana ınseamna atribute ale studentului (nume,grupa, nota, username, locul nas, terii etc.)
I pot exista referint,e ıntre tabele; o coloana este o referint, acatre alta intrare din alt tabel sau din acelas, i
I fis, ierele spreadsheet (.xls, .ods) sunt forme de date structurateın format tabelar
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 13/51
Baze de date
I mod de structurare a datelor pentru stocare s, i accesareeficienta
I orice forma de structurare a informat, iei pentru a facilitaaccesul poate fi considerata o baza de date
I poate fi text sau binar
I /etc/passwd: baza de date de utilizatori locali
I ın general, baza de date este binara pentru eficient, a
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 14/51
Format text vs. format binar
Format text
I citibil, format ASCII
I us,or de editat s, i parcurs
I foarte portabil
I spat, iu ocupat mai mare
I util pentru fis, iere relativmici, ce pot fi parcurse deoameni
I ın general nu foarte divers,folosim cuvinte s, i caractere
Format binar
I nu poate fi inspectat de opersoana
I nevoie de o aplicat, iededicata pentru citire s, imodificare
I posibil sa fie dificil dedeschis cu alta aplicat, ie
I eficient ca spat, iu
I poate folosi fis, iere oricat demari
I flexibilitate completa lamodul de structurare
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 15/51
Serializare
I transformarea structurilor de date/obiectelor ıntr-o formastocabila (de obicei un fis, ier)
I ın general se prefera un format de stocare standard, care sapoata fi folosit de diverse aplicat, ii/limbaje
I exemple de formate de stocare de date serializate text: JSON,XML, YAML
I ın Python se poate folosi modulul Pickle care stocheaza dateın fis, iere binare
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 16/51
Date ın format atribut-valoare
I nu exista obiecte/entitat, i, ci doar proprietat, i/atribute s, i valoripentru acestea
I ın general de forma attribute = value sau attribute:
value
I util pentru fis, iere de configurare, nu pentru obiecte sau entitat, i
I /etc/default/grub, /etc/hosts, fis, ierele .vmx
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 17/51
Formate de fis, iere text
I INI: forma simpla de cheie valoare
I JSON (JavaScript Object Notation): o forma de definire deobiecte (cu atribute s, i valori)
I YAML (YAML Ain’t Markup Language): este un superset alJSON
I XML (Extensible Markup Language): reprezentarearborescenta
I CSV (Comma Separated Values): format tabelar text,colaborare cu suite Office
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 18/51
Codificarea caracterelor
I codificarea caracterelor folosite de oameni ın format digital dereprezentare
I ASCII asociaza 7 bit, i pentru fiecare caracter: A = 0x41, a =
0x61
I UTF-8 este cel mai raspandit format de codificare din InternetI UTF-8 este compatibil cu ASCII s, i permite reprezentarea unui
spectru larg de caractereI ın UTF-8: s, = 0xc899, t, = 0xc89bI caractere chirilice, chinezes, ti etc.
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 19/51
Ce este o baza de date?
I un fis, ier sau un set de fis, iere
I format particular de stocare, specific implementarii
I ın general binare cu un nivel de acces la baza de date
I sisteme de gestiune a bazelor de date pentru interact, iune cubaza de date (SGBD, DBMS)
I pentru o baza de date definim o schema: modul de organizares, i legatura
I practic implementarea modelului entitate-asociere
I ın general, modelelul relat, ional (pe baza de tabele): RDBMS -Relational Database Management System
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 21/51
Sistem de gestiune a bazei de date
http://resources4ict.excellencegateway.org.uk/term.php?id=1192&img=1
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 22/51
Baze de date relat, ionale
I interfat,a expusa ın forma de tabele
I model cu intrari (randuri) cu proprietat, i (coloane) s, i legaturiıntre ele
I formele de interogoare t, in cont de stuctura pe baza de tabele
I cele mai cunoscute SGBD sunt de tip relat, ional: Oracle, MSSQL, IBM DB2, MySQL, MariaDB, PostgreSQL, Firebird,SQLite
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 23/51
Baze de date relat, ionale
http://code.tutsplus.com/tutorials/relational-databases-for-dummies--net-30244
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 24/51
Interogari pentru baze de date relat, ionale
I creeaza un tabel
I s, terge un tabel
I adauga o intrare
I s, terge o intrare sau mai multe
I selecteaza o intrare sau mai multe
I actualizeaza o intrare
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 25/51
SQL
I Standard Query Language
I limbaj dedicat pentru interogarea unui RDBMS
I sintaxa simplista pentru interact, iune cu baza de date
Comenzi SQL
insert into studenti(nume, email, an, serie)
values(’Capota Paul’, ’[email protected]’, 2, ’CC’);
delete from students where nume=’Capota Paul’;
select from students where serie=’CC’;
update students set serie=’CA’ where email=’[email protected]’;
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 26/51
Ce vrem sa facem cu datele?
I vizualizare, interpretare, analiza, rapoarte: ın general ın formade imagini s, i grafice
I sumarizare, agregare, statistici: ın general ın forma numerica
I cautare, selectare, sortare, ordonare, grupare, extragere: ıngeneral ın forma de tabele sau liste
I datele sunt prelucrate prin mijloace (means) pentru a atingeobiective (ends) observatorului uman
I ne preocupa obiectivele s, i alegem mijloacele cele mai potrivite
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 28/51
Prelucrarea datelor
I data processing, data analysis
I metodele prin care datele sunt preluate de pe suportul destocare s, i apoi analizate pentru a obt, ine un rezultat utilobservatorului
I rezultatul poate fi un numar, un tabel, un graficI metodele de prelucrare depind de
I modul de stocareI tipul datelor (numere, s, iruri, array-uri)I nevoile observatorului uman
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 29/51
Pas, i ın prelucrarea datelor
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 30/51
Best tool for the job
I plecam de la obiective (ends, ce vrem sa obt, inem) s, i apoistabilim mijloacele (means, cum vrem sa ajungem acolo)
I means to an end
I ın funct, ie de situat, ie alegem o opt, iune sau alta
I stocare: text sau binar, JSON sau XML, XML sau baze date,date tabelare sau nu
I parsare: utilitare simple (cut, awk, shell scripting),funct, ionalitat, i ın limbaje (Python, C, Java), aplicat, ii dedicate(lexere, Flex), interfat,a SQL pentru baze de date
I prelucrare: shell scripting, limbaje de programare dedicate
I prezentare: numere, tabele, grafice
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 31/51
Exemple de scenarii
I dorim sa indexam numele de funct, ii s, i variabile globaledintr-un fis, ier cod sursa (sau mai multe)
I dorim sa parcurgem un fis, ier CSV (Comma Separated Values)
I dorim sa parcurgem informat, iile dintr-un fis, ier de tip jurnal(log), unde fiecare linie are o intrare specifica
I dorim sa analizam s, i sa extragem informat, ii dintr-un fis, ierXML
I dorim sa intepretam datele dintr-o baza de date SQL (deobicei engine-ul SQL face parsarea)
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 33/51
Splitting, tokenizing, parsing, deserializing
I ın sensul larg, parsing se refera la analiza sintactica a unui text
I un lexer sau tokenizer ımparte un text ın elemente (items);este folosit de parser
I splitting e o forma simpla de parsing ın care se ımparte untext ın elemente t, inand cont de un caracter sau de un set decaractere despart, itoare (separator de campuri – fieldseparator)
I deserializarea este o operat, ie generalista: se refera latransformarea datelor din suportul de stocare ın structuri dedate ın memorie (liste, array-uri, arbori etc.)
I operat, ia de stocare a datelor din memorie ıntr-un suport destocare se numes, te serializare (numita s, i marshalling)
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 34/51
Date tabelare
I linii (rows) s, i coloane (columns)
I exista un separator de campuri (de coloane): field separator
I separatorul de linii este caracterul newline (linie noua, \n)
I parsarea se refera ın general la ımpart, ireacampurilor/coloanelor de pe fiecare linie (splitting)
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 35/51
Separatorul de campuri
I field separator sau field delimiter
I ımparte campuri pe o linie
I poate fi un caracter (virgula, tab, spat, iu) sau un set decaractere (semne de punctuat, ie)
I utilitarele care fac split precizeaza caracterul sau setul decaractere pentru separare
I opt, iunea -d la cutI opt, iunea -F la awkI opt, iunea -s la sortI string.split() ın PythonI String.split() ın Java
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 36/51
cut vs. awk
I cut -d ’ ’ -f 1
I awk -F ’[ ]’ ’{print $1;}’I cut e mai simplu
I awk permite folosirea unei expresii regulate pe post deseparator
I awk are s, i alte utilizari ın afara de splitting
I pentru cazuri mai complexe folosim limbaje de programare
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 37/51
Ce prezentam?
I evolut, ii, reprezentari grafice: imagini
I medii, erori, contoare: numere
I liste cu primele N valori, primele N caracteristici: tabele,rapoarte
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 39/51
Prezentari numerice
I medii (ın general aritmetice): a tuturor valorilor, a unor valori
I contoare: cat, i student, i au obt, inut nota X, cate persoane s-aunascut ın anul Y
I abaterea patratica medie (dispersia)
I variat, ii: cat a crescut consumul de lapte ın perioada X
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 40/51
Prezentari tabelare
I de obicei agregari de prezentari numerice
I asocieri
I datele complete despre parlamentarii care au votat legea X
I grupa s, i media pe grupa pentru materia X
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 41/51
Prezentari grafice
I pornesc tot de la numere
I grafice cu puncte (plots)
I grafice cu linii
I grafice cu linii s, i puncte (legaturi ıntre puncte)
I histograme (distribut, ia de valori numerice)
I bar charts (similar cu histograme, dar distribut, ia poate fi s, idupa alte criterii: t, ari, perioade, localitat, i)
I pie charts (grafice de tip placinta cu felii/procente)
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 42/51
Utilitare pentru prezentare grafica
I aplicat, ii spreadsheet ın suite Office
I gnuplot
I Matlab / Octave
I matplotlib
I R
I http://en.wikipedia.org/wiki/Wikipedia:
How_to_create_charts_for_Wikipedia_articles
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 43/51
Ce foloses, ti cand stochezi date?
I text: pentru configurare s, i pentru date ın fis, iere mici
I INI: pentru configurare foarte simpla
I YAML: pentru configurare mai complexa, pentru date de micidimensiuni
I JSON: pentru interact, iune cu servicii web
I XML: pentru configurari foarte complexe, pentruextensibilitate
I fis, iere binare simple: pentru eficient, a s, i viteza
I baze de date: date de mari dimensiuni, nevoie de cautare s, i deviteza, aplicat, ii acceseaza concurent
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 45/51
Sfaturi ın prelucrarea datelor
I ıntai obiectivele (prezentare, finalitate, ends) ınainte demijloace (parsare, prelucrare efectiva, means)
I best tool for the job: accesibil, rapid, mentenabil
I depinde de formatul de stocare (text, binar, XML, baza dedate)
I nu reinventat, i roata; folosit, i ceea ce deja exista
I o imagine face cat o mie de cuvinte
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 46/51
Cuvinte cheie
I date digitale
I structurate
I nestructurate
I entitate
I proprietate
I asociere
I format tabelar
I format text
I format binar
I atribut-valoare
I INI
I JSON
I YAML
I XML
I CSV
I baza de date
I SGBD, DBMS
I relat, ional
I RDMBS
I interogare
I SQL
I prelucrari
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 47/51
Resurse utile
I http://www.yaml.org/
I http://www.w3.org/XML/
I http://www.json.org/
I http://www.fileinfo.com/filetypes/spreadsheet
I https://www.dmoz.org/Computers/Data_Formats/Database
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 48/51
Rackspace
I companie de hosting IT
I fondata ın 1996
I unul dintre principalii furnizori de servicii cloud (RackspaceCloud)
I contribuitor la OpenStack
I folosit de GitHub
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 50/51
Big Data
I termen care defines, te date neprelucrabile ın modul standard
I mari, complexe: meteorologie, finant,e, cautare pe Internet
I date de ordinul PB, ZB
I operat, ii obis,nuite pe alte date: cautare, prelucrare
I necesita sisteme capabile de calcul paralel/distribuit sau alteabordari
CSE Dep Cursul 9, Stocarea s, i prelucrarea datelor 51/51