Documente Academic
Documente Profesional
Documente Cultură
PROIECT
Baze de date II
Galați,
2020
Mersul trenurilor – Agenție CFR
1.1. Tema proiectului - argument
Unul din cele mai importante mijloace de transport din România este trenul.
Căile Ferate Române (CFR) este compania naţională de transport feroviar a României. CFR, ca
instituţie, a fost fondată în 1880, după ce prima cale ferată pe teritoriul actual al Regatului
României a fost deschisă în 1854.
Primul pas în realizarea unei aplicaţii de baze de date este analiza datelor şi realizarea unei
scheme conceptuale a acestora. În această etapă sunt analizate natura şi modul de utilizare ale
datelor. Sunt identificate datele care vor trebui memorate şi procesate, apoi se împart aceste date
în grupuri logice şi se identifică relaţiile care există între aceste grupuri. Odată obţinute aceste
informaţii ele trebuie reprezentate într-o formă convenţională care să poată fi uşor înţeleasă.
O astfel de reprezentare este modelul conceptual (MCD). Aceste scheme sunt un instrument util
care uşurează comunicarea dintre specialiştii care proiectează bazele de date, programatori, pe de
o parte şi beneficiari, pe de altă parte.
A. MCD
2.1. MCD
2. MCD:
• O entitate este o clasă de obiecte, reprezentată în MCD printr-un dreptunghi. Numele entităţii este
întodeauna scris în partea de sus a dreptunghiului cu majuscule.
• Un atribut este orice detaliu care serveşte la identificarea, clasificarea, cuantificarea sau exprimarea stării
unei instanţe a unei entităţi.
• O relaţie este o asociere, legătură, sau conexiune existentă între entităţi şi care are o semnificaţie pentru
afacerea modelată. Aşadar, după identificarea entităţilor urmează o altă etapă: stabilirea relaţiilor între
entităţi. Orice relaţie este caracterizată de următoarele elemente: numele relaţiei, opţionalitatea relaţiei şi
cardinalitatea relaţiei.
- este modelul folosit în realizarea bazelor de date şi reprezintă cel mai utilizat model de stocare
a datelor, în care datele sunt organizate sub formă de tabele între care există diverse legături;
modelul relaţional este un model simplu, bazat pe algebra relaţională, care a făcut posibilă
dezvoltarea limbajelor relaţionale sub forma unui software specializat ce asistă procesul de
implementare a bazelor de date. Un exemplu ar fi SQL.
Transformarea modelului conceptual, în model fizic, adică baza de date propriu-zisă, se numeşte
mapare. Acest proces implică transformarea fiecărui element al MCD-ului.
Prima etapă a acestui proces constă în crearea tabelelor bazei de date. Astfel:
1) fiecărei entităţi îi va corespunde câte un tabel.
2) fiecare atribut al unei entităţi va deveni o coloană a tabelei. Fiecare coloană va memora date
de acelaşi tip.
3) fiecare instanţă a unei entităţi se va transforma într-un rând (sau înregistrare) a tabelului
corespunzător.
4) unicul identificator al unei entităţi devine cheia primară a tabelei. Coloana sau combinaţia de
coloane care identifică în mod unic toate liniile unui tabel se numeşte cheie primară.
Informaţiile despre o tabelă a bazei de date vor fi prezentate folosind diagramele de tabelă, în
care vom nota numele coloanelor pe care le va avea tabela bazei de date. Notăm dacă o coloană
face parte din cheia primară, caz în care vom scrie un PK (primary key), sau dacă face parte din
cheia străină, caz în care vom scrie un FK (foreign key). Pentru aceasta vom folosi aceleaşi
simboluri ca şi în cazul MCD-ului. Deci orice tabelă are linii şi coloane şi conţine datele
organizate conform anumitor structuri. În limbajul bazelor de date, coloanele se numesc câmpuri.
Fiecare coloană reprezintă un câmp cu o denumire unică, de un anumit tip (şir de caractere,
numeric, dată calendaristică, etc), având o dimensiune prestabilită. În tabelul următor sunt
prezentate principalele tipuri de date pe care le pune la dispoziţie Oracle:
Acestea garantează că datele introduse în baza de date sunt corecte şi valide. Aceasta înseamnă
că dacă există orice regulă sau restricţie asupra unei entităţi, atunci datele introduse în baza de
date respectă aceste restricții. În Oracle, regulile de integritate se definesc la crearea tabelelor
folosind constrângerile (constraints). Regulile de integritate sunt următoarele:
- Integritatea entităţilor: indică faptul că nici o coloană ce face parte din cheia primară nu poate
avea valoare NULL. În plus, pentru fiecare înregistrare, cheia primară trebuie să fie unică.
- Integritatea de domeniu: acest tip de reguli permite ca într-o anumită coloană să se introducă
doar valori dintr-un anumit domeniu.
- Integritatea referenţială: este o protecţie care asigură că fiecare valoare a cheii străine să
corespundă unei valori a cheii primare din tabela referită.
Tabela TRENURI
Tabela CARDURI
• Pentru crearea tabelelor în SQL se foloseşte comanda CREATE TABLE. Cea mai simplă formă
de creare a acestei comenzi este:
CREATE TABLE numetabel (coloana 1 tip 1, coloana 2 tip 2, ..., coloana n tip n)
- unde numetabel este numele atribuit tabelului nou creat
- coloana 1, coloana 2, ..., coloana n sunt numele coloanelor din tabela nou creată
- tip 1, tip 2, ..., tip n reprezintă tipul datelor ce vor fi reţinute în coloanele tabelei nou create şi
dimensiunea (dacă este cazul)
De exemplu pentru crearea tabelei RUTE, folosim comanda:
CREATE TABLE rute (cod_r varchar2(20), nr_km number(5), timp varchar2(6), nr_tren
number(5))
• În cadrul comenzii CREATE TABLE, putem utiliza clauza DEFAULT pentru a defini o valoare
implicită pentru o coloană a tabelei. Această clauză precizează ce valoare va lua un atribut atunci
când la inserarea unei linii în tabelă, nu se specifică în mod explicit valoarea atributului
respectiv. Clauza default apare după precizarea tipului coloanei şi este urmată de constanta care
defineşte valoarea implicită. Exemplu:
ATENŢIE! Coloanele definite ca UNIQUE pot conţine valori NULL, iar acestea pot fi oricâte,
adică valoarea NULL este singura valoare ce poate fi duplicată într-o coloană UNIQUE.
• Restricţia FOREIGN KEY - la definirea unei chei străine se poate utiliza o clauză suplimentară
ON DELETE CASCADE care precizează că la ştergerea unei linii din tabela părinte se vor
şterge automat din tabela copil acele linii care fac referire la linia ce se şterge din tabela părinte.
o Restricţia CHECK - acest tip de constrângeri specifică o condiţie ce trebuie să fie îndeplinită de
datele introduse în coloana (sau coloanele) asupra căreia acţionează. O astfel de constrângere
poate limita valorile care pot fi introduse în cadrul unei coloane.
o
2.6. Pentru realizarea comenzilor
• Adăugarea unei noi coloane se realizează folosind clauza ADD a comenzii ALTER TABLE.
• Ştergerea unei coloane se realizează folosind clauza DROP COLUMN a comenzii ALTER
TABLE.
• Adăugarea datelor în tabelă se realizează cu ajutorul comenzii INSERT. Forma generală a acestei
comenzi este următoarea:
• Modificarea datelor dintr-o tabelă se realizează cu comanda UPDATE, care are sintaxa:
UPDATE nume_tabela
SET coloana1=valoare1,
coloana2=valoare2,
...
WHERE conditie
• Comanda SELECT este utilizată pentru a extrage date din baza de date. Setul de date returnate
prin intermediul unei comenzi SELECT este compusă, ca şi tabelele bazei de date, din linii şi
coloane, şi vor putea fi simplu afişate, sau vom putea popula o tabelă cu datele returnate de către
comanda SELECT. Cea mai simplă formă a comenzii SELECT are sintaxa:
- Într-o tabelă putem avea mii şi mii de informaţii. Pentru a filtra doar informaţiile care ne sunt
relevante folosim în cadrul comenzii SELECT clauza WHERE. În aceasta vom preciza condiţiile
pe care trebuie să le îndeplinească o linie pentru a fi afişată. Aşadar clauza WHERE permite
realizarea filtrării operaţiei de selecţie.
- Pentru a preciza criteriile după care se ordonează datele folosim clauza ORDER BY. În aceasta
se vor preciza criteriile după care se vor ordona liniile unei tabele înainte de a fi afişate.
- Gruparea datelor dintr-o tabelă se poate realiza într- comandă cu ajutorul clauzei GROUP BY.
Atunci când folosim GROUP BY trebuie ca toate câmpurile care apar în SELECT în afara
funcţiilor de grup să apara și în clauza GROUP BY.
- Pentru a filtra grupurile obţinute în urma utilizării comenzii GROUP BY folosim clauza
HAVING.
OBSERVAŢIE: Putem folosi clauza GROUP BY fără clauza HAVING, însă clauza HAVING
poate fi folosită doar atunci când este prezentă clauza GROUP BY.
• O subinterogare este o interogare ce se află în interiorul unei alte comenzi SQL. Subinterogările
sunt în general folosite atunci când dorim să afişăm informaţii dintr-o tabelă pe baza
informaţiilor preluate din aceeaşi tabelă sau din alte tabele.
• Rularea comenzilor
- O metodă pentru rularea comenzilor este folosirea lui „Database 18C Express Edition”.
3. Aplicație JAVA SWING/AWT conectata la o bază de date MySQL
Un user ordinar se poate înregistra, dar trebuie să primească aprobarea contului de la unul din
administratorii aplicației. Astfel că, acesta nu poate rezerva și plăti un bilet până ce nu primește
aprobarea admin-ului. Mai jos sunt prezentate succint ferestrele importante pentru un utilizator
obișnuit, după ce a primit aprobarea administratorului.
FORMULAR DE REZERVARE :
Folosit pentru rezervarea unui bilet. Cu o interfață user-friendly, ai
toate informațiile pasagerului la îndemână.
“Agenție CFR” este un proiect ce are ca scop organizarea și administratea unei asemenea agenții
teritoriale. De asemenea, baza de date facilitează preluarea simultană a informațiilor memorate în diferite
tabele, fapt ce duce la ușurarea volumului de muncă a personalului din conducere atunci când este nevoie
să se scoată rapoarte.
Așadar, baza de date corespunde nevoilor organizatorice și de gestiune a activității companiei naționale
de căi ferate, deoarece:
o Baza de date păstrează istoricul întregii activități, facând-o pe aceasta mai ușor de gestionat.
o Bazele de date sunt flexibile, permițând realizarea de rapoarte și statistici complexe, multe
informații fiind disponibile la o interogare distanță, pentru a fi aduse la cunoștința conducerii.
o Accesul la informațiile din baza de date va fi permis doar personalului autorizat și doar acesta va
putea să modifice informații din baza de date, accesul facându-se cu un user și o parolă.