Ca o regulă, orice aplicație web poate fi împărțit în 2 părți principale: front-end, care afișează toate site-ul de informații, și back-end, în cazul în care se formează informațiile și plasate. În acest articol vom vorbi despre ce o bază de date relațională, și cum să le proiecteze.
Baza de date stochează înregistrările într-un mod organizat special că informațiile pot fi ușor găsite și extrase. Orice bază de date este format din unul sau mai multe tabele. Foaia de calcul este format din rânduri și coloane. Toate rândurile au aceleași coloane, și fiecare coloană conține date. În general, pentru o mai bună înțelegere, pentru a stabili că tabelul de baze de date este foarte asemănătoare cu cele pe care le vedeți în Excel-e.
date tabelare pot fi inserate, restaurate, actualizate și șterse. CRUD speciale acronim (Create-Read-update-Delete) a fost creat pentru pachetul acestor operațiuni.
Baze de date relationale - o bază de date în care toate informațiile sunt stocate în tabele, legate între ele prin relații speciale. Aceste relații ne permit să extragă și să combine datele din unul sau mai multe tabele cu o singură interogare.
Dar toate acestea sunt doar cuvinte. Pentru a înțelege cu adevărat ce o bază de date relațională, aveți nevoie pentru a practica mai mult. Să începem și să vedem ce date trebuie să lucrăm.
Etapa 1. Prepararea datelor
Pentru ca noi să fim o mulțime de muncă, am înscris pe Twitter interogarea „#databases“ și a format o masă de 10 înregistrări:
Ce părere ai despre #emailing #campaigns #traffic în #USA? Este o piață bună în zilele noastre? ai #databases?
RT @tisakovich: @NimbusData la conferința @Barclays mari de date în San Francisco astăzi, vorbind #virtualization, #databases și memorie #flash.
În primul rând, trebuie să înțelegem cu următoarele coloane:
- FULL_NAME: nume de utilizator
- Nume utilizator: conectare la Twitter e-
- Text: textul tweet
- created_at: crearea unui tweet
- following_username: o listă de utilizatori separate prin virgula, care sunt abonate la acest tweet. Pentru concizie, am tăiat lista la 2 nume.
Aceasta este datele reale. Dacă doriți, le puteți găsi și actualiza.
Bine. Acum, toate datele noastre într-un singur loc. Asta ne da posibilitatea de a căuta cu ușurință de el? Nu chiar. Acest tabel este departe de a fi ideal. În primul rând, în unele coloane avem înregistrări duplicat: de exemplu, în x „nume de utilizator“ și „following_username“. De asemenea, coloana „following_username“ dă departe modelul relațional, deoarece este prezent în celulele unei valori 1 (intrări separate prin virgulă).
În plus, am ajuns peste duplicate și rânduri.
date duplicat este o problemă, deoarece CRUD complică procesul. De exemplu, o căutare a tabelului în procesarea duplicat va lăsa timp suplimentar. În plus, în cazul în care un utilizator actualizează tweet, atunci vom avea nevoie de a re-înregistra toate duplicate.
Soluția la această problemă este de a împărți tabelul 1 pentru câteva mese. Să luăm pentru soluția la prima problemă - și anume, eliminarea duplicatelor din coloană.
Pasul 2: Scapa de duplicate în coloana
După cum sa menționat mai sus, coloanele de „nume de utilizator“ și „following_username“ conțin date duplicate. Ei au apărut ca urmare a ceea ce am vrut să arate relația dintre utilizatori și tweet-uri. Să ne să îmbunătățim structura noastră de baze de date, împărțind tabelul curent în două: unul va stoca informația, iar celălalt - relația dintre înregistrările.
Deoarece @Brett_Englebert @RealSkipBayless abonat, în tabelul „mai jos“ Afișează acest lucru în felul următor: numele @Brett_Englebert pus în coloana „FROM_USER“, iar în @RealSkipBayless „to_user.“ Să vedem cum tabelul va arata „în urma“ după tabelele de separare 1:
Tabelul 2. următor
După separarea utilizatorilor din tabel (tabelul 5), prezentăm o linie unică (non-duplicat).
Acest proces de îndepărtare a rândurilor duplicate numit acționare normală a doua formă.
Pasul 4. Unește tabelul bazată pe chei
Astfel, ca rezultat al acțiunilor noastre Tabelul 1 a fost împărțit în 3 părți: următoarele (Tabelul 2), tweets (tabelul 4), utilizatorii (Tabelul 5). Toate duplicate sunt eliminate. Pentru în continuare că putem regăsi cu ușurință datele din această structură, independent unul de celălalt tabel, noi trebuie să se lege relația specială pe care ne va da informații despre ce aparține utilizatorul la orice tweet, și pentru cineva care este semnat.
Pentru a crea legături între înregistrări, trebuie să introduceți un ID unic, care se numește cheie primară.
În general vorbind, în tabelul 4 și 5, am făcut deja acest lucru. În „utilizatori“ Masa este principala cheie coloana „username“, deoarece datele de autentificare de utilizator trebuie să fie o valoare unică și nu poate fi repetată. În „tweet-uri“ de masă vom folosi această cheie pentru a se referi la relația dintre utilizator și tweet. Coloana „utilizator“ în „tweet-uri“ de masă se numește o cheie externă.
Dacă ați lucrat vreodată cu baze de date, atunci s-ar putea întreba dacă putem face uz de „username“ ca cheia primară?
Pe de o parte, se poate simplifica procesul de căutare, pentru că noi nu folosim nici un cod numeric. Pe de altă parte, în cazul în care utilizatorul dorește să schimbe numele de utilizator? Acest lucru poate duce la un număr foarte mare de probleme. Pentru a nu cădea într-o astfel de situație, este mai bine să utilizați ID-ul numeric. Totul depinde de sistemul dumneavoastră. Dacă vă oferi utilizatorilor posibilitatea de a schimba numele de utilizator, cel mai bine este de a utiliza ca câmpul cheie primară avtoinkrementirovannoe ID-ul numeric. În caz contrar, coloana „numele de utilizator“ este destul de potrivit pentru acest rol. O să-l lăsăm așa.
Tabelul 6. tweets cu coloană id
Deci, în acest moment, avem o mulțime de lucruri de facut. Scapă de informații duplicat în coloane și rânduri, și-au ales pentru mesele noastre vorbitori potrivite pentru rolul de chei primare și străine pentru a descrie relațiile dintre date. Acest proces este numit normalizare, și este proiectat pentru a aduce la masa ta de modelul relațional. Din cauza normalizării, putem implementa mai ușor operațiunile de CRUD.
Mai jos puteți vedea o diagramă de tabele și relațiile dintre ele noastre:
Sisteme de management al bazelor de date
Acum, că avem o bază de date relațională, cum putem pune în aplicare? Pentru a face acest lucru, putem folosi un sistem de management de baze de date (SGBD). Există un întreg set de astfel de programe, atât plătite și gratuite. Printre plătite pot distinge Oracle Database. IBM DB2 și Microsoft SQL Server. Gratuit: MySQL. SQLite și PostgreSQL.
Cel mai adesea, diferite companii folosesc MySQL. Twitter, în acest sens - nu este o excepție.
PostgreSQL este folosit foarte rar. Pentru ea, există o extensie utilă PostGIS, ceea ce face ca baza de date ușor de a stoca date geolocalizare. De exemplu, serviciul OpenStreetMap, uneori, este folosit PostgreSQL.
Structured Query Language (SQL)
După ce ați ales o bază de date potrivită pentru tine și instalați-l, următorul pas ar fi crearea de tabele și de gestionare a datelor. Pentru a face acest lucru, putem folosi SQL limbaj special.
Crearea unei baze de date de dezvoltare:
Creați un tabel Utilizatori:
Când creați un câmp, trebuie să specificați tipul de informații stocate și dimensiunea acesteia. Coloana „FULL_NAME“ și „numele de utilizator“ va tip VARCHAR, care este destinat pentru stocarea șiruri de caractere. Dimensiune 100 de caractere. Lista tuturor tipurilor pot fi găsite aici.
Eliminarea tuturor înregistrărilor _DreamLead utilizator:
Prin obținerea de informații de la două canale (vedere si auz) eficacitatea instruirii de învățare departe superioare de cărți. O temele pentru acasă și teste on-line vă va permite să se gândească în mod constant în limba țintă și imediat verifica cunoștințele!
Dacă doriți o lungă perioadă de timp pentru a studia modul în HTML, mi-ai, pentru ai vesti bune!
Dacă ați învățat deja HTML și doresc să avanseze, următorul pas va fi de a studia tehnologia CSS.
Dacă doriți să înțeleagă conceptele de domeniu si hosting, învață cum să creeze o bază de date, încărca fișiere pe un site web prin intermediul unui server FTP, crea subdomenii, configurați cutiile poștale pentru site-ul și să monitorizeze participarea, acest curs este conceput special pentru tine!