Mega Shop DOCS
Mega Shop DOCS
Mega Shop DOCS
- 2023 –
LICEUL TEORETIC “IULIA ZAMFIRESCU” MIOVENI
Aplicație Web
- 2023 -
Cuprins
Bibliografie ........................................................... 24
3
Motivația alegerii lucrării
Prelucrarea datelor în vederea obținerii informațiilor este o paradigmă care a apărut cu mult
înainte de inventarea calculatorului electronic. Evoluția spectaculoasă a științei și tehnicii a condus la o
restructurare a economiei mondiale și a produs modificări profunde la nivelul societății umane.
Societatea în care trăim se bazează mai mult ca niciodată pe informație. Posibilitatea de a
colecta, prelucra și regăsi datele poate constitui un atu pentru orice entitate care are în vederea să se
dezvolte într-un medii concurențial. Pentru a putea dezvolta această abilitate trebuie respectate
principiile generale privind proiectarea unui model eficient de gestiune a datelor precum și utilizarea
unui mod de lucru riguros prin înțelegerea principiilor care stau la baza sistemelor informatice. Prin
urmare colectarea și prelucrarea datelor trebuie să fie însoțită și de suportul tehnic informatic, pentru
a putea exploata aplicațiile software de gestiune a bazelor de date, specifice oricărui domeniu de
activitate.
Pentru întocmirea proiectului de atestare a competențelor profesionale a absolvenților claselor
de matematică – informatică, am ales realizarea unei aplicații care să exemplifice modalitatea de
colectare și de prelucrare a datelor, și de asemenea pentru a pune în valoare cunoștințele și
competențele dobândite în cei patru ani de liceu, în care am studiat materia ”Informatică”. Fără îndoială,
comerțul electronic este în plină expansiune atât în sectorul business-to-consumer (B2C), cât și în
sectorul business-to-business (B2B). Comerțul electronic este activitatea de cumpărare și vânzare de
bunuri și servicii pe internet. Clienții de comerț electronic pot face achiziții de pe computerele lor,
precum și din alte puncte de contact, inclusiv de pe dispozitive smartphone, ceasuri inteligente și
asistenți digitali. Creșterea explozivă a comerțului electronic îl face un instrument din ce în ce mai
valoros, și chiar esențial, care permite companiilor să se diferențieze de concurență și să ajungă la clienți
din mai multe regiuni ale lumii. Pentru a ține pasul cu cererea crescândă a clienților pentru mai multe
opțiuni, acces mai ușor și livrare mai rapidă, companiile își integrează ofertele de comerț electronic și
din magazine pentru a crea experiențe de cumpărare multicanal fără probleme, în care clienții pot să
cerceteze și să exploreze produsele și serviciile online înainte de a face o achiziție.
Titlul produsului software pe cale l-am ales se numește Mega Shop și reprezintă o aplicație web
care simulează un magazin virtual de produse de îmbrăcăminte, care permite clienților răsfoirea
produselor oferite spre vânzare precum și colectarea lor într-un coș de cumpărături în vederea lansării
4
unei comenzi. Aplicația pune la dispoziție instrumente de administrare cum ar fi: gestiunea produselor,
analiza comenzilor prin diverse rapoarte statistice și gestionarea utilizatorilor.
Pentru realizarea aplicației Mega – Shop am ales platforma Oracle Aplication Express, platformă
care este utilizată pentru a dezvolta și implementa aplicații web pe baze de date. Oracle. APEX oferă un
mediu de dezvoltare integrat (IDE) bazat pe web, care utilizează experți de creare și editori de proprietăți
pentru a construi aplicații și pagini. Una dintre principalele funcționalități ale APEX este simplificarea
procesul de creare a aplicațiilor web care servesc ca interfață pentru un server de baze de date. Folosind
doar un web browser și putina programare, se pot dezvolta aplicații profesionale rapide și securizate.
5
1. Limbajul SQL
Limbajul SQL (Structured Query Language) este unul dintre limbajele relaționale de cereri care
formează nucleul multor sisteme de gestiune a bazelor de date. El a fost dezvoltat pentru sistemul de
gestiune al bazelor de date System R de cercetători din cadrul IBM Research Laboratory, San Jose-
California la sfârșitul anilor ’70. SQL a fost standardizat și a devenit limbajul de referință pentru bazele
de date relaționale. SQL este limbajul standard utilizat pentru accesarea bazelor de date relaționale.
Limbajul SQL este un limbaj declarativ, neprocedural, prin intermediul căruia utilizatorii descriu
structurile și manipulează datele. Prin intermediul limbajelor declarative utilizatorii stabilesc ce date
doresc sa obțină, fără a specifica modalitățile de obținere a acestor date
SQL este un limbaj de comenzi pentru comunicarea cu serverul Oracle din orice aplicație. Când
se introduce o instrucțiune SQL, aceasta este stocată într-o zonă de memorie numită buffer-ul SQL și
ea va rămâne în buffer până în momentul introducerii unei noi instrucțiuni.
6
caracter literal, de ex, dacă se stochează numele „POPA” și căutăm „Popa”, nu vom găsi înregistrarea
respectivă).
Deși SQL este un limbaj cu format liber, o instrucțiune este mai lizibilă dacă se utilizează
inventarea și alinierea. De exemplu pot fi respectate următoarele reguli:
• fiecare clauză dintr-o instrucțiune trebuie să înceapă pe o linie nouă
• începutul fiecărei clauze să fie aliniat cu începutul celorlalte
• dacă o clauză are mai multe pârți, fiecare parte trebuie să apară pe câte o linie separată și
trebuie indentația fată de începutul clauzei
Convenții de notare folosite în definirea instrucțiunilor:
• majuscule pentru cuvintele rezervate
• litere mici pentru cuvinte definite de utilizator
• bara verticală | indică posibilitatea alegerii dintre mai multe variante
• acoladele { } indică un element necesar
• parantezele drepte [ ] indică un element opțional
punctele de suspensie ... indică o repetare opțională a unui articol, de 0 sau mai multe ori
Identificatorii SQL sunt utilizați pentru a numi obiecte din BD. Pentru caracterele utilizate,
standardul ISO permite A...Z, a...z, 0...9, _. Restricții impuse identificatorilor:
• nu poate fi mai lung de 128 caractere (majoritatea dialectelor au o limită mult mai joasă)
• trebuie să înceapă cu o literă
• nu poate conține spatii libere
DDL (Data Definition Language): instrucțiuni de definire a datelor
7
TCL (Transaction Control Language): instrucțiuni de procesare a tranzacțiilor.
• SAVEPOINT permite definirea unui punct de salvare, la care se poate reveni pentru
a renunța la modificările făcute după acest punct asupra bazei de date
• COMMIT permite ca modificările făcute asupra bazei de date sa devina
permanente
• ROLLBACK permite renunțarea la anumite modificări făcute asupra bazei de date
DCL (Data Control Language): instrucțiuni pentru controlul datelor (permit definirea, modificarea și
retragerea privilegiilor).
• identificatori: specifica nume de obiecte SQL (baze de date, tabele, indecși, vizualizări,
proceduri stocate);
• cuvinte rezervate: termeni predefiniți care asigura o anumita funcționalitate;
• variabile: locații de memorie desemnate printr-un nume;
• constante: numerice (întregi 3251, reale 32.15); alfanumerice/sir de caractere (‘sir caractere’,
“sir caractere”); NULL (constanta speciala cu semnificația nici o valoare);
• operatori: simboluri utilizate in implementarea anumitor operații;
• expresii: formate din variabile, constante, operatori și apeluri de funcții.
SQL*Plus este un instrument Oracle care recunoaște și trimite instrucțiuni SQL la server pentru
execuție și conține propriul limbaj de comenzi.
8
• accesează baze de date locale și la distanta.
SQL SQL*Plus
Este un limbaj pentru comunicarea cu serverul Recunoaște instrucțiuni SQL și le trimite la server
Oracle pentru accesarea datelor
Este bazat pe standardul ANSI SQL Este o interfață proprietate Oracle pentru executarea
instrucțiunilor SQL
Manipulează date și definiții de tabele în baze Nu permite manipularea valorilor în baze de date
de date
O instrucțiune se stochează in bufferul SQL Este permisă o comandă pe linie și nu este
pe una sau mai multe linii memorată în bufferul SQL
Nu are caracter de continuare Folosește caracterul (-) pentru continuarea unei
comenzi dacă aceasta nu încape pe o linie
Folosește un caracter de terminare pentru Nu are nevoie de caractere de terminare. Se execută
executarea imediată a comenzii imediat
Nu pot fi abreviate Pot fi abreviate
Folosește funcții pentru anumite formatări Folosește comenzi pentru formatări
Mediul SQL*Plus oferă numeroase facilități, permițând:
• executarea instrucțiunilor SQL pentru extragerea, modificarea, adăugarea și ștergerea datelor
din baza de date;
• formatarea, efectuarea de calcule, stocarea și listarea rezultatele interogărilor sub formă de
rapoarte;
• crearea de fișiere de script pentru stocarea instrucțiunilor SQL.
coloanelor
9
2. Oracle Application Express
Oracle este singura companie din lume care oferă clienților pe lângă pachetul integrat de
aplicații și infrastructura tehnologică necesară pentru rularea optimă a acestora. Astfel, produsele
familiei Oracle 11g: baza de date, serverul de aplicații și un set complet de instrumente de dezvoltare,
integrează procese analitice online (OLAP), data mining, data ETL (extraction, translation and loading),
Oracle Portal, asigurând cele mai ridicate performanțe la procesarea datelor, precum și cele mai
avansate standarde de fiabilitate, disponibilitate și securitate. Important în ceea ce privește standardele
ridicate ale Oracle este faptul că cea mai mare parte din aplicațiile SAP, PeopleSoft (de curând
achiziționat de Oracle) și Baan din întreaga lume rulează tot pe baze de date Oracle.
Oracle APEX (cunoscut și ca APEX sau Oracle Application Express ) este o platformă de
dezvoltare low-code pentru întreprinderi de la Oracle Corporation, care este utilizată pentru a dezvolta
și implementa aplicații web pe baze de date Oracle. APEX oferă un mediu de dezvoltare integrat (IDE)
bazat pe web, care utilizează experți de creare și editori de proprietăți pentru a construi aplicații și
pagini. Una dintre principalele funcționalități ale APEX este simplificarea procesul de creare a aplicațiilor
web care servesc ca interfață pentru un server de baze de date. Folosind doar un web browser și putina
programare, se pot dezvolta aplicații profesionale rapide și securizate. Datorita trăsăturile incluse
precum teme pentru interfața cu utilizatorul, controale navigabile, handlere pentru formulare și
rapoarte flexibile, Oracle Application Express accelerează procesul dezvoltării aplicațiilor. Din punctul
de vedere al utilizatorului final, aplicațiile încărcate au nevoie doar de un browser și de acces la o baza
de date Oracle cu Application Express. APEX se instalează împreuna cu baza de date Oracle și este
compus din date in tabele și cod PL/SQL. Indiferent daca rulați mediul de dezvoltare al Oracle Application
Express sau o aplicație creata cu Oracle Application Express, procesul este același. Browserul trimite o
cerere URL care este tradusa într-un apel PL/SQL corespunzător. După ce baza de date procesează apelul
PL/SQL, rezultatele sunt afișate înapoi in browser sub format HTML. Acest ciclu se petrece de fiecare
data când se cere sau se trimite o pagina. Statutul sesiunii aplicației este gestionat in cadrul tabelelor
bazei de date din cadrul Oracle Application Express. Nu este folosita o conexiune dedicata cu baza de
date. In schimb, fiecare cerere este realizata printr-o noua sesiune a bazei de date, consumând resurse
minime ale procesorului.
APEX este o caracteristică complet acceptată și fără costuri a bazei de date Oracle și poate fi
instalată oriunde rulează alte baze de date Oracle. APEX este, de asemenea, oferit pe Oracle's Cloud
prin diverse servicii, inclusiv Autonomous Database Cloud Services și serviciul autonom APEX Application
Development.
10
Oracle APEX a trecut prin multe schimbări de nume de la începuturile sale în 2000. Numele includ:
• Flows
• Oracle Platform
• Project Marvel
• HTML DB
• Application Express (APEX) sau Oracle APEX
APEX a fost creat de Mike Hichwa, un dezvoltator la Oracle, după ce dezvoltarea proiectului său
anterior, Web DB , a început să se îndepărteze de viziunea sa inițială. Deși APEX împărtășește anumite
funcționalități cu Web DB, a fost dezvoltat de la zero și nu există o cale de actualizare de la Web DB la
APEX. Când a fost însărcinat cu construirea unui calendar web intern, Hichwa a cerut ajutorul lui Joel
Kallman și a început dezvoltarea unui proiect numit Flows. Hichwa și Kallman au dezvoltat împreună
Web Calendar și Flows, adăugând caracteristici la Flows, deoarece aveau nevoie de ele pentru a dezvolta
calendarul. Primele versiuni ale Flow nu aveau front-end, așa că toate modificările unei aplicații trebuiau
făcute în SQL*Plus prin inserări, actualizări și ștergeri.
APEX este utilizat pe scară largă intern de Oracle pentru a-și dezvolta site-urile de asistență. Baza de
cunoștințe AskTom, magazinul online, Dev Gym și livesql rulează pe APEX.
Utilizarea APEX pentru crearea de aplicații WEB oferă foarte multe avantaje, cum ar fi:
• Programatorii familiarizați cu PL/SQL își pot folosi setul de abilități pentru a dezvolta aplicații web
• Posibilitatea de a crea machete folosind teme pre-construite
• Ușor de implementat (utilizatorul final deschide o adresă URL pentru a accesa o aplicație APEX)
• Găzduire gratuită a aplicațiilor demo oferite de Oracle
• Aplicațiile APEX pot rula pe baza de date gratuită Oracle Express Edition (XE).
• Componentele individuale ale unei aplicații pot fi preluate sau identificate folosind SQL, facilitând
rapoarte personalizate
• Se integrează cu ușurință cu diferite surse de date, cum ar fi baza de date locală, baza de date
Oracle la distanță sau orice serviciu web
• Utilizatorii finali semi-tehnici își pot construi propriile pagini web și rapoarte
Ca dezavantaje se poate menționa că aplicațiile APEX sunt create folosind propriile instrumente Oracle
și pot fi găzduite doar într-o bază de date Oracle, făcând un implementator susceptibil de blocarea
furnizorului , foarte puține webhost-uri oferă APEX (Oracle Database) pe pachetul lor de servicii de
găzduire (majoritatea dintre ele oferă PHP + MySQL sau ASP + Microsoft SQL Server ). Ca rezultat,
aplicațiile APEX sunt limitate în alegerea lor de gazdă web. Cu toate acestea, deoarece APEX poate rula
pe ediția gratuită Express a bazei de date Oracle (Oracle XE), este posibil să instalați stiva necesară (bază
de date, framework APEX și gateway web) pe orice gazdă standard de sistem de operare (Linux sau
11
Windows), proiectele care necesită mai mulți dezvoltatori să atingă aceeași pagină web vor trebui să își
comunice intențiile între ei. Nu există un control al versiunilor integrat și toate componentele trebuie
editate prin interfața web. Nu există suport pentru îmbinarea a două versiuni. Blocarea paginii poate
ajuta la protejarea împotriva conflictelor.
Arhitectura Oracle Application Express este alcătuita din următoarele componente:
• browser de Web
• server HTTP (Apache) cu mod_plsql
• baza de date Oracle ce conține APEX.
Principalele componente ale Oracle Application Express sunt:
• Application Builder: folosit pentru crearea de aplicații noi sau a unor pagini HTML pentru
aplicațiile existente;
• SQL Workshop: folosit pentru a crea, a vedea și a putea modifica obiectele din baza de date,
folosind o interfață Web.
• Data Workshop: folosit pentru a importa sau exporta date în sau din baza de date
• Motorul Application Express transpune și procesează pagini.
De asemenea, realizează următoarele task-uri:
• Managementul stării sesiunii
• Serviciile de autentificare
• Serviciile de autorizare
• Controlul fluxului de pagini
• Procesarea validărilor
Oracle Application Express permite unei singure baze de date Oracle sa devina un grup de lucru
împărțit de mai mulți useri. Utilizatorii pot accesa APEX folosind un browser Web fără a instala software
adițional. Zona unde se dezvolta aplicații se numește zona de lucru sau workspace. Un workspace
este o baza de date virtuala ce permite multiplilor useri sa lucreze in cadrul aceluiași APEX instalat,
in timp ce își pot păstra obiectele, datele și aplicațiile private. Se pot crea diferite zone de lucru
dedicate anumitor dezvoltatori sau proiecte.
Imaginea data ilustrează relația dintre useri și dezvoltatori, zone de lucru și schemele bazei de
date. Când se creează un workspace, acesta este asociat cu o schemă nouă sau deja existentă
in baza de date. O singura schema poate fi asociata uneia sau mai multor zone de lucru.
Utilizatorii uneltei APEX pot deține diferite roluri și privilegii, printre care:
Administratori de zone de lucru sunt userii care realizează task-uri specifice de administrare
pe un workspace, cum ar fi gestionarea conturilor utilizatorilor, monitorizarea activității zonei de lucru
și verificarea anumitor fișiere.
12
• Dezvoltatorii sunt useri care creează și editează aplicații.
• Utilizatorii finali nu au drepturi de dezvoltare. e pot defini astfel încât ei sa acceseze aplicații
care nu folosesc o schema de autentificare externa.
• Administratorii Oracle Application Express sunt super - utilizatori care gestionează o întreaga
instanța folosind aplicați Application Express Administration Services.
Imaginea alăturată ilustrează diferiți utilizatori cu diverse roluri ce accesează mediul de dezvoltare
al APEX, serviciile de administrare ale APEX și
aplicațiile publicate.
Figura 2 Rolurile utilizatorilor APEX
13
3. Mega – Shop
https://apex.oracle.com/pls/apex/r/megashop/megashop/home
Pentru realizarea aplicației am utilizat la bază, un set de date demonstrativ ce poate fi importat
fără costuri în contul Application Oracle Express denumit Customers Orders.
Setul de date folosit conține următoarele tabele CUSTOMERS, STORES, PRODUCTS, ORDERS,
ORDERS_ITEM. Modelul conceptual este prezentat în diagrama de mai jos.
ORDER PRODUCT
CUSTOMER
ITEM
ORDER STORE
Tabelul PRODUCTS include coloane cum ar fi imagine preț și detalii dar nu conține coloane
separate pentru culoare, raion sau tipul de îmbrăcăminte, coloane pe care le-am creat separat și populat
14
ulterior cu date conform datelor inițiale din tabela PRODUCTS. Crearea noilor coloane am realizat-o prin
folosirea instrumentelor din OBJECT BROWSER, dar acest lucru putea fi făcut și din secțiune de rulare a
comenzilor SQL, prin folosirea comenzii ALTER TABLE.
Tot în această etapă pentru a evita repetarea datelor și a realiza updatările mai ușor, deoarece
mai multe produse pot avea aceleași valori în coloanele COLOR, DEPARTMENT și CLOTHING am creat
câte un tabel LOOKUP pentru fiecare coloană pentru a reține o singură dată valorile unice pentru acele
coloane. Pentru realizarea noilor tabele am folosit instrumentul CREATE LOOKUP TABLE din secțiunea
OBJECT BROWSER.
15
PROCEDURE remove_product (
p_product IN NUMBER);
--------------------------------------------------------------
-- create function to get the number of items in the shopping cart
FUNCTION Get_quantity
RETURN NUMBER;
--------------------------------------------------------------
-- create procedure for validate if a product exists in the shopping
cart
FUNCTION Product_exists(
p_product IN NUMBER)
RETURN NUMBER;
--------------------------------------------------------------
-- create procedure for clear the cart
PROCEDURE clear_cart;
--------------------------------------------------------------
-- create function to validate a customer
FUNCTION Customer_exists(
p_customer_email IN VARCHAR2)
RETURN NUMBER;
--------------------------------------------------------------
-- create procedure to insert orders
PROCEDURE create_order (
p_customer IN VARCHAR2 DEFAULT NULL,
p_customer_email IN VARCHAR2,
p_store IN NUMBER,
p_order_id OUT orders.order_id%TYPE,
p_customer_id OUT NUMBER );
END manage_orders;
16
• Crearea și personalizarea paginii de gestionare a unei comenzi, și asocierea interogărilor
SQL necesare
• Crearea paginii coșului de cumpărături care permite cumpărătorilor să folosească
următoarele operații:
o Recenzarea obiectelor din coș
o Editarea cantității produselor
o Eliminarea unui produs
o Golirea completă a coșului
o Lansarea comenzii
• Crearea paginii care permite plasarea unui singur produs în coș, ce permite
cumpărătorului următoarele:
o Vizualizarea detaliilor produsului
o Adăugarea în coș
o Vizualizarea recenziilor
17
3.2. Prezentarea aplicației
3.2.1. Modul Administrator
(https://apex.oracle.com/pls/apex/r/megashop/megashop/home prin accesarea
casetei de autentificare cu un cont de administrator)
3
9
5
10
4
1. Diagrame statistice
18
2. Pagina tabel Clothing Lookup
19
5. Pagina tabel clienți
20
8. Pagina tabel Gestionare Produse
21
3.2.2 Pagina principala
22
3. Pagina efectuare comandă
23
Bibliografie
2. Codrut Matei, Marian Balta, Victor Felea, Interogarea bazelor de date. Aplicații in Oracle și SQL
3. https://www.w3schools.com/
4. https://docs.oracle.com/en/database/oracle/apex/index.html
5. https://en.wikipedia.org/
24