Cursul 9 Stocarea 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 Configur˘ ari 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 Configur˘ ari 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 aceast˘ a s˘ apt˘ amˆ an˘ a la USO I ˆ ın week end apare quest de World of USO I miercuri, 22 noiembrie 2017, ˆ ıncepe laboratorul 9: Stocarea s , i prelucrarea datelor I tema 3 va ap˘ area ˆ ın aceast˘ a s˘ apt˘ amˆ an˘ a I ˆ ıntrebat , i, ˆ ıntrebat , i, ˆ ıntrebat , i I folosit , i forumul I ajutat , i colegii pe forum I https://ocw.cs.pub.ro/courses/uso/regulament I sect , iunea ,,Recomand˘ ari de comunicare electronic˘ a” 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 gril˘ a I extra: 8 (per serie), cea mai activ˘ a persoan˘ a din serie pe forumuri (cs.curs.pub.ro), cel mai activ om ˆ ın zona de social media (post˘ ari 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 Prelucr˘ ari 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 stocheaz˘ a digital (ˆ ın bit , i, specific sistemului de calcul) I ˆ ın general stocate ˆ ın fis , iere, ˆ ın cadrul sistemelor de fis , iere I avantaje fat , ˘ a de date ,,nedigitale”: I stocare facil˘ a (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
6
Embed
Cursul 9 - Stocarea si prelucrarea datelorelf.cs.pub.ro/uso/res/cursuri/curs-09/curs-09-handout-8...Cursul 9 Stocarea s, i prelucrarea datelor Utilizarea Sistemelor de Operare (USO)
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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
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
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