Sunteți pe pagina 1din 13

UNIVERSITATEA “DUNĂREA DE JOS” DIN GALAŢI

FACULTATEA DE AUTOMATICĂ, CALCULATOARE,

INGINERIE ELECTRICĂ ŞI ELECTRONICĂ

PROIECT
Baze de date II

Coordonator: Student: Ropotă Virgiliu-Adrian


Ș.l. dr. ing. Dan Munteanu Grupa: 22C31b

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.

1.2. Analiza problemei

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.

B. Transformarea modelului conceptual al bazei de date


(MCD-ul) în modelul fizic (tabelele bazei de date)
2.1. Modelul relaţional
2.2. Reguli de integritate
2.3. Maparea relaţiilor
2.4. Crearea şi modificarea structurii tabelelor
2.5. Definirea constrângerilor
2.6. Pentru realizarea comenzilor

2.1. Modelul relațional

- 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:

2.2. Reguli de integritate:

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ă.

2.3. Maparea relațiilor

Tabela TRENURI

Numele Tip Tip


coloanei cheie
nr_tren int PK
denumire varchar2
nr_loc_total int
nr_loc_disp int
nr_vagon_cls1 int
nr_vagon_cls2 int

Tabela INTERSECŢIE FEROVIARA

Numele Tip Tip


coloanei cheie
sosire int
plecare varchar2
nr_tren int PK,FK
cod_g int PK. FK

Tabela CARDURI

Numele Tip Tip


coloanei cheie
IBAN int PK
data_d date
sold_curent varchar2

2.4. Crearea şi modificarea structurii tabelelor

• 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:

CREATE TABLE conturi(IBAN varchar2(15), data_desch date DEFAULT SYSDATE,


sold_curent varchar2(8) DEFAULT '100 lei')

2.5. Definirea constrângerilor

• Restricţia NOT NULL – necompletarea în tabelă a unei celule conduce la completarea ei cu


valoarea NULL, semnificând faptul că celula respectivă are de fapt o valoare nedefinită. În baza
de date această condiţie se traduce prin faptul că valoarea coloanei respective trebuie obligatoriu
completată, adică nu poate conţine valoarea NULL. Pentru definirea acestui tip de restricţii
folosim restricţia NOT NULL pentru coloana respectivă, fie la crearea tabelei, fie mai târziu la
modificarea structurii acesteia.
• Restricţia PRIMARY KEY – cheia primară este o coloană sau o combinaţie de coloane care
identifică în mod unic liniile unei tabele. Coloanele care fac parte din cheia primară vor fi
automat de tip NOT NULL.
• Restricţia UNIQUE - precizează că valoarea coloanei definită ca UNIQUE sau combinaţia
valorilor coloanelor ce definesc restricţia UNIQUE trebuie să fie unice pentru toate liniile din
tabelă. Cu alte cuvinte, într-o coloană definită ca UNIQUE nu pot exista valori duplicate.

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:

INSERT INTO nume_tabela (lista_coloane) VALUES (lista_valori)

• 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:

SELECT lista_expresii FROM tabela.

- Î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.

Există două tipuri de subinterogări: - simple, ce returnează o singură linie;


- multiple, ce returnează mai multe linii şi/sau mai multe coloane
OBSERVAŢII - o subinterogare va fi întotdeauna inclusă în paranteză;
- subinterogarea nu poate conţine clauza order by.

• 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

3.1 Ferestrele utilizatorului

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ă.

Rezervare loc, cu cele două clase și cu număr de loc


Rezervare tren

FORMULAR ANULARE : Anulare rezervare după


numărul de bilet al călătorului

FORMULAR ACTUALIZARE: Actualizare


rezervare după numărul de bilet al călătorului
TRENURI ÎNTRE DIFERITE STAȚII:
Se folosește când se dorește aflarea unui tren între două stații, după
numărul trenului.

3.2 Ferestrele administratorului

VIZUALIZARE PASAGERI: Se folosește când se


dorește aflarea unui tren între două stații, după numărul trenului.
Adăugare trenuri: Se folosește când se dorește
adăugarea unui tren, cu toate detaliile necesare.

Aprobare useri: Un admin poate aproba orice user,


pentru a-și finaliza înregistrarea și spre a putea rezerva și cumpăra
bilete.
Concluzii și utilitate:

“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ă.

S-ar putea să vă placă și