Sunteți pe pagina 1din 24

Atestat la Informatic

Agenie de turism

Profesor coordonator: Foarfec Guni


Elevi: Constantin Andrei & Coman Denisa
Clasa a XII-a A
Colegiul Naional "Alexandru Vlahu"

Cuprins:
1.Limbajul si tipul bazei de date...3
Pagin
1

2.Scopul lucrrii....4
3.Modelul conceptual(ERD).....5
4.Modelul fizic-descriere tabele-......6
5.Prezentarea site-ului...............................8
6.Inserarea datelor.....................................................................................12
7.Rapoarte.................................................................................................18
8.Bibliografie....22

1.Limbajul i tipul bazei de date


Limbajul SQL
Pagin
2

SQL (de la numele englez Structured Query Language - limbaj de interogare


structurat - care se pronun este un limbaj de programare specific pentru
manipularea datelor n sistemele de manipulare a bazelor de date rela ionale
(RDBMS), iar la origine este un limbaj bazat pe algebra rela ional. Acesta are ca
scop inserarea datelor, interogaii, actualizare i tergere, modificarea i crearea
schemelor, precum i controlul accesului la date. A devenit un standard n domeniu
(standardizat ANSI-ISO), fiind cel mai popular limbaj utilizat pentru creearea,
modificarea, regsirea i manipularea datelor de ctre SGBD-urile (Sistemele de
Gestiune a Bazelor de Date) relaionale. Pe lng versiunile standardizate ale
limbajului, exist o mulime de dialecte i variante, unele proprietare, fiind
specifice anumitor SGBD-uri i de asemenea coninnd extensii pentru a suporta
SBD-urile (Sistemele de Baze de Date) obiectuale (obiectual-rela ionale).
SQL permite att accesul la coninutul bazelor de date, ct i la structura acestora.
Limbajul SQL este divizat n urmtoarele elemente:

Clauze, care sunt componente ale instruciunilor i interogrilor.


Expresii, al cror efect este producerea de valori scalare sau tabele.
Predicates, pot specifica condiii care sunt evaluate de SQL conform logicii
ternare sau logicii booleene, n scopul limitrii efectelor instruciunilor, sau
pentru a influena cursul programului.

Interogrile, au ca scop regsirea datelor dup criterii specifice.

Instruciunile, pot avea un efect persistent asupra datelor sau structurii


datelor, sau pot controla tranzaciile, conexiunile sau cursul programului. n
general, instruciunile SQL se termin cu caracterul punct-virgul (";"), de i
acest lucru nu este obligatoriu n toate platformele SQL. Spa iile albe
suplimentare sunt ignorate, dar ele pot fi folosite pentru lizibilitatea codului
SQL.

2.Scopul Lucrrii
Pagin
3

Am ales ca tem "Agenia de turism" deoarece suntem pasionai de cltorii i


tim c o agenie de turism ofer pachete diversificate, ncluznd i bilete de avion,
avnd cele mai bune condiii, pentru toate buzunarele.
De asemenea, agenia de turism online uureaz cutarea pachetului dorit prin
accesarea rapid a site-ului, economisind timp preios.
Cu ajutorul catalogului online pute i gsi u or i rapid oferta dorit i pute i
chiar propune o ofert orientativ pe baza creia agen ia poate prelucra o ofert
personalizat i avantajoas pentru dumneavoastr.

3.Modelul Conceptual (ERD)


3.Modelul Conceptual (ERD)
Pagin
4

Baza de date cuprinde 5 entitati: clienti, destinatii, implementare_oferte,


aplicare_oferte, oferte_orientative si intre acestea exista relatii 1:M, care se
transpun in modelul fizic prin chei straine. Atributele sunt obligatorii, unele sunt
identificatori unici (UID-uri).

Pagin
5

4.Modelul fizic-descriere tabeleTransformarea modelului conceptual al ERD-ului n modelul fizic, adic n


baza de date propriu-zis, se numete mapare. Acest proces implic trasformarea
fiecrui element al ERD-ului, astfel: fiecare entitate devine tabel. Fiecare atribut al
unei entiti devine coloan a tabelului i fiecare coloan va memora date de
acelai tip. Fiecare instan a unei entiti se va transforma ntr-un rnd a tabelului.
Identificatorul unic devine cheie primar a tabelei, iar rela iile 1:M devin chei
strine: cheia primar devine cheie strin pentru tabelul care se afl la captul
many.
Cele 5 entiti devin tabele i au chei strine i chei primare. Restul atributelor
sunt obligatorii sau opionale. Sunt date de tip int i de tip varchar pentru care se
precizeaz lungimea irului de caractere.
Tabelul clienti:
*pk(cheie primara) id_client

Tabelul destinatii:
*pk(cheie primara) id_destinatie

Pagin
6

Tabelul implementare_oferte:
*pk(cheie
primara)
id_oferta
*fk(cheie
straina)

id_destinatie din tabelul destinatii


Tabelul aplicare_oferte:
*pk(cheie primara) id_ofertaaplicata
*fk(cheie
straina)
id_client
din tabelul
clienti
*fk(cheie
straina)
id_oferta
din tabelul

implementare_oferte
Tabelul oferte_orientative:

Pagin
7

*acest tabel nu conine nici cheie primara, nici chei strine, fiind o entitate separat de
celelalte 4.

5.Prezentarea site-ului
Pagina principal se numete Index. Aceasta conine un meniu, banner-ul i
seciunea home, n care este prezentat istoricul ageniei de turism.

Banne

Meni
u

Sectiune
a HOME

Pagin
8

Copyrig
ht

Pagin
9

Pagina Contact prezint informaii referitoare la modurile prin care clienii pot lua
legtura cu agenia de turism, respectiv prin telefon, email sau o vizit la sediul
central.
Pagina

Administrare permite accesarea paginilor Inserare i Rapoarte dar i crearea


bazei de date.

Pagin
10

Prezentare Turcia ofer informaii despre Turcia i staiunile acesteia.

Clienii
i

destinaiile sunt clienii nregistrai i destinaiile turistice unde agenia de ine


contracte cu diferitele hoteluri.

Pagin
11

Catalog oferte prezint ofertele


ageniei dintre care clientul poate alege una i propune ulterior o ofert
personalizat ce va aprea la Oferte orientative.

Oferte aplicate reprezint ofertele ale cror contracte au fost deja ncheiate ntre
client si agenie.

Pagin
12

6. Inserarea datelor
Inserarea datelor presupune introducerea datelor referitoare la clieni, destina ii,
oferte.
1.Inserarea clienilor

Comenzi HTML:
<form action="insert_client.php" method="GET">
<h1>ADAUGATI CLIENT</h1>
ID Client<input type="text" name="id_client"><br>
Nume Client<input type="text" name="nume_client"><br>
Prenume Client<input type="text" name="prenume_client"><br>
Adresa<input type="text" name="adresa"><br>
Telefon<input type="text" name="telefon"><br>
<input type="submit" value="Insereaza">
</form>

Comenzi PHP:
<?php
include"conectare.php";
$id_client=$_GET["id_client"];
$nume_client=$_GET["nume_client"];
$prenume_client=$_GET["prenume_client"];
$adresa=$_GET["adresa"];
$telefon=$_GET["telefon"];
Pagin
13

$cmd="INSERT INTO CLIENTI(id_client, nume_client, prenume_client, adresa, telefon)


VALUES(".$id_client.",'".$nume_client."','".$prenume_client."','".$adresa."','".$telefon."')";
$sql=mysqli_query($link, $cmd) or die ("Nu s-au inserat datele");
if($sql)
echo"Datele s-au inserat cu succes!"; ?>

2.Inserarea destinaiilor

Comenzi HTML:
<form action="insert_destinatie.php" method="GET">
<h1>ADAUGATI DESTINATIA</h1>
ID Destinatie<input type="text" name="id_destinatie"><br>
Nume Destinatie<input type="text" name="nume_destinatie"><br>
<input type="submit" value="Insereaza">
</form>

Comenzi PHP:
<?php
include"conectare.php";
$id_destinatie=$_GET["id_destinatie"];
$nume_destinatie=$_GET["nume_destinatie"];
$cmd="INSERT INTO DESTINATII(id_destinatie, nume_destinatie)
VALUES(".$id_destinatie.",'".$nume_destinatie."')";
$sql=mysqli_query($link, $cmd) or die ("Nu s-au inserat datele");
if($sql)
echo"Datele s-au inserat cu succes!";
?>

3.Inserarea ofertelor:
Pagin
14

Comenzi HTML:
<form action="implementare_oferta.php" method="GET">
<h1>IMPLEMENTATI OFERTA</h1>
ID Oferta<input type="text" name="id_oferta"><br>
<?php
include "conectare.php";
$cmd="select * from destinatii";
$sql=mysqli_query($link,$cmd) or die ("Nu pot selecta destinatiile!");
if($sql)
{
?>
Destinatia <select name="id_destinatie">
<?php
while($rand=mysqli_fetch_array($sql))
echo "<option value='$rand[0]'>$rand[1]</option>";
}
?>
</select><br>
Nume Hotel(&Locatia)<input type="text" name="nume_hotel"><br>
Stele<input type="text" name="stele"><br>
Tip Camera<input type="text" name="tip_camera"><br>
Pret(/persoana/noapte)<input type="text" name="pret"><br>
Numar maxim de persoane(/fiecare tip de camera)<input type="text" name="nr_persoane"><br>
<input type="submit" value="Insereaza">
</form>

Comenzi PHP:
<?php
include"conectare.php";
$id_oferta=$_GET["id_oferta"];
$id_destinatie=$_GET["id_destinatie"];
$nume_hotel=$_GET["nume_hotel"];
$stele=$_GET["stele"];
$tip_camera=$_GET["tip_camera"];
$pret=$_GET["pret"];
Pagin
15

$nr_persoane=$_GET["nr_persoane"];
$cmd="INSERT INTO IMPLEMENTARE_OFERTE(id_oferta, id_destinatie, nume_hotel, stele, tip_camera,
pret, nr_persoane)
VALUES(".$id_oferta.",".$id_destinatie.",'".$nume_hotel."','".$stele."','".$tip_camera."','".$pret."','".
$nr_persoane."')";
$sql=mysqli_query($link, $cmd) or die ("Nu s-au inserat datele ");
if($sql)
echo"Datele s-au inserat cu succes!";
?>

4.Compunerea unei oferte pentru un client

Comenzi HTML:
<form action="aplicare_oferta.php" method="GET">
<h1>APLICATI OFERTA</h1>
ID Oferta Aplicata<input type="text" name="id_ofertaaplicata"><br>
<?php
include "conectare.php";
$cmd="select id_oferta, nume_hotel, pret, tip_camera, nr_persoane from implementare_oferte";
$sql=mysqli_query($link,$cmd) or die ("Nu pot selecta ofertele!");
if($sql)
{
?>
Oferta <select name="id_oferta">
<?php
while($rand=mysqli_fetch_array($sql))
echo "<option value='$rand[0]'>$rand[1] $rand[2] $rand[3] $rand[4]</option>";
}
?>
</select><br>
<?php
include "conectare.php";
Pagin
16

$cmd="select * from clienti";


$sql=mysqli_query($link,$cmd) or die ("Nu pot selecta clientii!");
if($sql)
{
?>
Client <select name="id_client">
<?php
while($rand=mysqli_fetch_array($sql))
echo "<option value='$rand[0]'>$rand[1]</option>";
}
?>
</select><br>
Tip Camera<input type="text" name="tip_camera"><br>
Numar Persoane<input type="text" name="numar_persoane"><br>
Durata Sejur(nr.nopti)<input type="text" name="durata"><br>
Pret(final/nr.persoane+tip camera)<input type="text" name="pret"><br>
Reducere<input type="text" name="reducere"><br>
Din Data De<input type="date" name="data1"><br>
Pana La<input type="date" name="data2"><br>
<input type="submit" value="Insereaza">
</form>

Comenzi PHP:
<?php
include"conectare.php";
$id_ofertaaplicata=$_GET["id_ofertaaplicata"];
$id_oferta=$_GET["id_oferta"];
$id_client=$_GET["id_client"];
$tip_camera=$_GET["tip_camera"];
$numar_persoane=$_GET["numar_persoane"];
$durata=$_GET["durata"];
$pret=$_GET["pret"];
$reducere=$_GET["reducere"];
$data1=$_GET["data1"];
$data2=$_GET["data2"];
$cmd="INSERT INTO APLICARE_OFERTE(id_ofertaaplicata, id_oferta, id_client, tip_camera,
numar_persoane, durata, pret, reducere, data1, data2)
VALUES(".$id_ofertaaplicata.",".$id_oferta.",".$id_client.",'".$tip_camera."','".$numar_persoane."','".
$durata."','".$pret."','".$reducere."','".$data1."','".$data2."')";
$sql=mysqli_query($link, $cmd) or die ("Nu s-au inserat datele");
if($sql)
echo"Datele s-au inserat cu succes!";
?>

5.Oferta orientativ

Pagin
17

Comenzi HTML:
<form action="ofertaorientativa1.php" method="GET">
<h1>APLICATI OFERTA ORIENTATIVA</h1>
<?php
include "conectare.php";
$cmd="select id_oferta, nume_hotel, tip_camera, nr_persoane from implementare_oferte";
$sql=mysqli_query($link,$cmd) or die ("Nu pot selecta ofertele!");
if($sql)
{
?>
Oferta <select name="id_oferta">
<?php
while($rand=mysqli_fetch_array($sql))
echo "<option value='$rand[0]'>$rand[1] $rand[2] $rand[3] $rand[4]</option>";
}
?>
</select><br>
Nume si prenume<input type="text" name="nume"><br>
Tip Camera<input type="text" name="tip_camera"><br>
Numar Persoane<input type="text" name="numar_persoane"><br>
Durata Sejur(nr.nopti)<input type="text" name="durata"><br>
Din Data De<input type="date" name="data1"><br>
Pana La<input type="date" name="data2"><br>
Contactati-ma la nr. de tel.<input type="text" name="contact"><br>
<input type="submit" value="Trimite">
</form>

Comenzi PHP:
<?php
include"conectare.php";
$id_oferta=$_GET["id_oferta"];
$nume=$_GET["nume"];
Pagin
18

$tip_camera=$_GET["tip_camera"];
$numar_persoane=$_GET["numar_persoane"];
$durata=$_GET["durata"];
$data1=$_GET["data1"];
$data2=$_GET["data2"];
$cmd="INSERT INTO OFERTE_ORIENTATIVE(id_oferta, nume, tip_camera, numar_persoane, durata, data1,
data2)
VALUES(".$id_oferta.",'".$nume."','".$tip_camera."','".$numar_persoane."','".$durata."','".$data1."','".$data2."')";
$sql=mysqli_query($link, $cmd) or die ("Nu s-au inserat datele");
if($sql)
echo"Oferta a fost trimisa!";
?>

Pagin
19

7.Rapoarte
Rapoartele au rolul de a lista unul dintre elementele: clieni, hoteluri sau oferte n
funcie de celelalte doua.
1.

Comenzi HTML:
<form action="raport.php" method="GET">
<h1>HOTELURILE ALESE DE UN CLIENT</h1>
<br>
<?php
include "conectare.php";
$cmd="select * from clienti";
$sql=mysqli_query($link,$cmd) or die ("Nu pot selecta clientii!");
if($sql)
{
?>
Client <select name="id_client">
<?php
while($rand=mysqli_fetch_array($sql))
echo "<option value='$rand[0]'>$rand[1]</option>";
}
?>
</select><br><br><br>
<input type="submit" value="Listeaza">
</form>

Ceea ce rezult n urma apsrii butonului "Listeaza"

Comenzi PHP:
<?php
Pagin
20

include "conectare.php";
$id_client=$_GET["id_client"];
$cmd="select io.nume_hotel, io.stele, io.tip_camera, io.pret, io.nr_persoane
FROM CLIENTI c, aplicare_oferte ao, implementare_oferte io
WHERE c.id_client=ao.id_client and io.id_oferta=ao.id_oferta and c.id_client=$id_client";
$sql=mysqli_query($link, $cmd) or die("Nu pot executa comanda!");
?>
<table>
<tr><th>Nume hotel</th><th>Stelele hotelului</th><th>Tipul camerei</th><th>Pretul de
baza</th><th>Numarul de persoane admise in tipul de camera respectiv</th></tr>
<?php
while($rand=mysqli_fetch_array($sql))
echo"<tr><td>$rand[0]</td><td>$rand[1]</td><td>$rand[2]</td><td>$rand[3]</td><td>$rand[4]</td></tr>";
?>
</table>

2.

Comenzi HTML:
<form action="raport1.php" method="GET">
<h1>OFERTELE CE SUNT CUPRINSE INTR-O DESTINATIE</h1>
<br>
<?php
include "conectare.php";
$cmd="select * from destinatii";
$sql=mysqli_query($link,$cmd) or die ("Nu pot selecta destinatiile!");
if($sql)
{
?>
Destinatia <select name="id_destinatie">
<?php
while($rand=mysqli_fetch_array($sql))
echo "<option value='$rand[0]'>$rand[1]</option>";
}
?>
</select><br><br><br>
<input type="submit" value="Listeaza">
</form>

Ceea ce rezult n urma apsrii butonului "Listeaza"


Pagin
21

Comenzi PHP:
<?php
include "conectare.php";
$id_destinatie=$_GET["id_destinatie"];
$cmd="select io.id_oferta, io.nume_hotel, io.stele, io.tip_camera, io.pret, io.nr_persoane
FROM implementare_oferte io, destinatii d
WHERE io.id_destinatie=d.id_destinatie and io.id_destinatie=$id_destinatie";
$sql=mysqli_query($link, $cmd) or die("Nu pot executa comanda!");
?>
<table>
<tr><th>Oferta</th><th>Nume hotel</th><th>Stele hotelului</th><th>Tipul camerei</th><th>Pretul de
baza</th><th>Numar persoane admise intr-o camera</th></tr>
<?php
while($rand=mysqli_fetch_array($sql))
echo"<tr><td>$rand[0]</td><td>$rand[1]</td><td>$rand[2]</td><td>$rand[3]</td><td>$rand[4]</td><td>$ra
nd[5]</td></tr>";
?>
</table>

3.

Comenzi HTML:
<form action="raport3.php" method="GET">
<h1>Caror clienti le-a fost implementata una dintre oferte </h1>
<br>
<?php
include "conectare.php";
$cmd="select id_oferta, nume_hotel, pret, tip_camera, nr_persoane from implementare_oferte";
$sql=mysqli_query($link,$cmd) or die ("Nu pot selecta ofertele!");
if($sql)
{
?>
Oferta <select name="id_oferta">
<?php
while($rand=mysqli_fetch_array($sql))
Pagin
22

echo "<option value='$rand[0]'>$rand[1] $rand[2] $rand[3] $rand[4]</option>";


}
?>
</select><br><br><br>
<input type="submit" value="Listeaza">
</form>

Ceea ce rezult n urma apsrii butonului "Listeaza"

Comenzi PHP:
<?php
include "conectare.php";
$id_oferta=$_GET["id_oferta"];
$cmd="select ao.id_client, ao.tip_camera, ao.numar_persoane, ao.durata, ao.pret, ao.reducere, ao.data1, ao.data2
FROM implementare_oferte io, aplicare_oferte ao
WHERE io.id_oferta=ao.id_oferta and io.id_oferta=$id_oferta";
$sql=mysqli_query($link, $cmd) or die("Nu pot executa comanda!");
?>
<table>
<tr><th>A fost aplicata urmatorilor clienti</th><th>Tipul camerei ales de client</th><th>Numarul de
persoane</th><th>Durata sejurului</th><th>Pretul final</th><th>Reducere</th><th>Data checkin</th><th>Data check-out</th></tr>
<?php
while($rand=mysqli_fetch_array($sql))
echo"<tr><td><a
href='clientul.php'>$rand[0]</a></td><td>$rand[1]</td><td>$rand[2]</td><td>$rand[3]</td><td>$rand[4]</td
><td>$rand[5]</td><td>$rand[6]</td><td>$rand[7]</td></tr>";
?>
</table>

Pagin
23

8.Bibliografie
1. https://ro.wikipedia.org/wiki/SQL
2. https://oracle-atestat.wikispaces.com/CAPITOLUL+2.B.+++++++++
+Transformarea+modelului+conceptual+al+bazei+de+date+(ERD-ul)+
%C3%AEn+modelul+fizic+(tabelele+bazei+de+date)
3.Surse imagini:
http://www.minartravels.com/img/minar/travel_wallpaper.jpg
http://www.ihalemagazin.com/resimboyut.asp?yol=haber8Zx2KVApgBc6.jpg&genislik=120&yukseklik=100
http://ronnib.com/wp-content/uploads/2014/04/World-Travel-1024x6001.jpg
http://www.greentravel.rs/wordpress/wp-content/uploads/kemer-turska400x260.jpg
http://www.blog.mamicamea.ro/wp-content/uploads/2013/06/Kusadasi.jpg
http://www.hayattourism.com/timthumb.php?
src=/inc/uploads/post_images/orj_postss-208-Side-manavgatAntalya.jpg&w=848&h=460&zc=1&q=100
http://motoryachtcharter.org/wpcontent/uploads/images/2013/02/contact_motoryacht_master-1350-630.jpg
http://www.kprowindowtint.com/bg-contact-33degrees.jpg
http://www.craveinfotech.com/images_post/video_cover/rds.png
http://1fotonin.com/image.php?pic=/data/wallpapers/6/WDF_551115.jpg
http://www.alfasystem.com.pl/admin/res/upload/news/normal/InsERT_partner.jpg
http://photos2.meetupstatic.com/photos/member/3/4/0/highres_51120832.jpeg

Pagin
24