Documente Academic
Documente Profesional
Documente Cultură
PROIECT DE CURS
Cuprins
1. Proiectarea logic a bazei de date......................................................................................................3
3.4 Subinterogri.......................................................................................................................
Concluzia................................................................................................................................................31
2) terg din F dependee tranzitive. Pentru mulimea de dependene funcionale primit la punctul anterior
formez acoperirea neredundant n uniune cu mulimea J:
(B)/F{A->BUJ}=><ACSFDEGHTUV>, NU
(C)/F{A->C}=><ABSFGHDETUV>,NU
(S)/F{A->S}=><ABCFDEGHS>,OMITEM
(F)/F{A->F}=><ABCDE>,NU
(G)/F{F->G}=><FHSTUV>,NU
(H)/F{F->H}=><FGSTUV>,NU
(S)/F{F->S}=><FGH>,NU
(P)/F{P->N}=><ORMNGHSTUV>,OMITEM
(O)/F{P->O}=><PMRNFGHSTUV>,NU
(N)/F{M->N}=><MORFGHSTUVP>,NU
(O)/F{M->O}=><MORFGHSTUVP>,OMITEM
(R)/F{M->R}=><MOR>,OMITEM
(F)/F{M->F}=><MORPONM>,NU
(T)/F{S->T}=><SUV>,NU
(U)/F{S->U}=><STV>,NU
(V)/F{S->V}=><SVT>,NU
(AM)/F{AM->Q}=><AM>,NU
3) Introduc J n F:
E F={ E ( A )= { A B , A C , A F , A D , D A , A E , E A , E D , D E } ,
E ( F ) ={ F G , F H , F S } ,
E ( M )={ P O , M N , M F , R P , P R , M P , P M , M R , R M } ,
E ( S )= { S T , S U , S V } ,
E ( AM )= { AM Q } ,}
4) Reeind din punctul anterior formez schemele bazei de date i cheile primare:
R 1= { A , D , B , C , E , F } , K = { A , D , E } ;
R2= { F ,G , H , S } , K= { F } ;
R3= { P , O , M , N , F , R } , K= { P , M , R , P } ;
R4 ={ S ,T ,U , V } , K= { S } ;
R5= { A , M } , K ={ AM } .
2. Implementarea bazei de date n SQL
2.1 Crearea bazei de date noi n T-SQL
use master
go
IF DB_ID('Academia_Cisco') IS NOT NULL
DROP DATABASE ICT_SUMMIT;
CREATE DATABASE Academia_Cisco
ON(
NAME = Academia_Cisco_data,
FILENAME = 'C:\BDC\Academia_Cisco.mdf',
SIZE = 250MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 25MB)
LOG ON(
NAME = Academia_Cisco_log,
FILENAME = 'C:\BDC\Academia_Cisco.ldf',
SIZE = 5MB,
FILEGROWTH = 5MB);
GO
Figura 2.1.1 Rezultatul scriptului pentru crearea Bazei de Date n Transact-SQL (C:\BDC)
Figura 2.2.1 Rezultatul scriptului pentru rearea relaiilor i constrngerilor de integritate n Transact-SQL
2.3 Crearea cheilor externe
ALTER TABLE [Sala]
ADD CONSTRAINT [K_SALAID] PRIMARY KEY([Sala_Id]);
ALTER TABLE [Tema]
ADD CONSTRAINT [K_TEMAID] PRIMARY KEY([Tema_Id]),
CONSTRAINT [FK_SALAID_TEMA] FOREIGN KEY ([Sala_Id]) REFERENCES [Sala]([Sala_Id]);
USE Academia_Cisco;
GO
INSERT INTO [Tema]
([Tema_Nume],[Tema_Descriere],[Sala_Id])
VALUES
('Routing','Rutarea Paketelor',5),
('Swinchiking','Dispozitiv_de_layer_2',4),
('WanLan','WanLanRouting',5),
('Subnetare','Subnetarea Retelelor', 15);
USE Academia_Cisco;
GO
INSERT INTO Sala
([Sala_Nume],[Sala_Locuri],[Sala_Tip])
VALUES
('D-03',111,'Deschis'),
('D-02',222,'Deschis'),
('D-01',333,'Inchis');
use Academia_Cisco
go
INSERT INTO Profesor ([Profesor_Nume],[Profesor_Prenume],[Profesor_Email],
[Profesor_Tel],[Tema_Id])
VALUES
('Iurie','Costas','CostasIurie.@gmail.com','12348906',14),
('Skupuiriri','Nadrei','SkupuriiAbdrei,@gmail.com','245472',8),
('Dorian','Saranciuc','DorianSaranciu.@gmail.com','66546457',6),
('Ion','Mihai','IonMiha.@gmail.com','668585',6);
Figura 2.6.1 Rezultatul scriptului pentru crearea schemelor bazei de date Tranasact-SQL
2.7 Crearea utilizatorilor
IF EXISTS(SELECT * FROM [master].[dbo].[syslogins] WHERE [name]='Examplu_1' AND
[dbname]='Academia_Cisco')
DROP LOGIN Examplu_1;
CREATE LOGIN Examplu_1
WITH PASSWORD = '1111', DEFAULT_DATABASE = Academia_Cisco;
IF EXISTS(SELECT * FROM [master].[dbo].[sysusers] WHERE [name]='Examplu_1')
DROP USER Examplu_1;
CREATE USER Examplu_1 FOR LOGIN Examplu_1
WITH DEFAULT_SCHEMA = [Student];
EXEC SP_ADDSRVROLEMEMBER 'Examplu_1','sysadmin';
EXEC SP_ADDROLEMEMBER 'db_datareader', 'Examplu_1';
--2
IF EXISTS(SELECT * FROM [master].[dbo].[syslogins] WHERE [name]='Examplu_2' AND
[dbname]='Academia_Cisco')
DROP LOGIN Examplu_2;
CREATE LOGIN Examplu_2
WITH PASSWORD = '2222', DEFAULT_DATABASE = Academia_Cisco;
IF EXISTS(SELECT * FROM [master].[dbo].[sysusers] WHERE [name]='Examplu_2')
DROP USER Examplu_2;
CREATE USER Examplu_2 FOR LOGIN Examplu_2
WITH DEFAULT_SCHEMA = [Proiecte];
EXEC SP_ADDSRVROLEMEMBER 'Examplu_2','sysadmin';
EXEC SP_ADDROLEMEMBER 'db_datawriter', 'Examplu_2';
--intersectie
--Sa se afiseze toate coloane din profesor si tema
select * from Tema.Profesor
where Tema.Profesor.Profesor_Id = 1
intersect
select* from Tema.Sala
where Tema.Sala.Sala_Id= 3;
--diferenta
--sa se gaseasca TemaId din Profesori unde Sala_tip din Sala este Deschis
select Tema_Id from Tema.Profesor
where Tema_Id = 6
except
select Sala_Tip from Tema.Sala
where Sala_Tip = '%Deschis'
Figura 3.1.3 Diferena
--produsul cartezian
--sa se afiseze tota inscritiile din Profesor sin din Sala
select * from Tema.Profesor
CROSS JOIN Tema.Sala;
-- Jonctiune
-- Tema id = cu sala id
SELECT * FROM [TEM] JOIN [Sal]
ON [TEM].Tema_Id=Sal.Sala_Id ;
--semijonctiunea
select * from Tema.Sala
join ON
[Tema].Sala.Sala_Id = [Tema].Sala.Sala_Id;
--Sa se afiseze locurile la sala care are cel mai multe locuri
3.4 Subinterogri
select * from Tema.Profesor
where Tema.Profesor.Profesor_Email in (select Tema.Profesor.Profesor_Nume from
Tema.Profesor);
-------------------------------------------
GO
USE ICT_SUMMIT
GO
IF OBJECT_ID('Tema_descriere','P') IS NOT NULL
DROP PROCEDURE [Tema_descriere];
GO
CREATE PROCEDURE [Tema_descriere]
AS
SELECT *
FROM dbo.Tema
WHERE dbo.Tema.Tema_Descriere LIKE '%About%'
EXCEPT
SELECT *
FROM dbo.Tema
WHERE dbo.Tema.Tema_Descriere LIKE '%Weather%';
Concluzie
Una din utilizrile cele mai frecvente ale calculatorului const n stocarea datelor. In general prin date se are n vedere un
numr, o secvena, un caracter. Astfel organizarea datelor ntr-un sitem orientat pe procese raspunde unor cerine concrete n
funcie de problema care se rezolva. Diverse aplicaii utilizeaz date distincte pentru diferite prelucrri. Prin urmare, orice
echip de utilizatori dispun de propriile fiiere. Dar accesul la aceste date pna la urma va fi determinat de organizarea
fizica a datelor.
Pentru solutonarea acestor probleme, din nou intervin capacitaile calculatorului de a face rapid multe lucruri simple. Adic
calculatorul se propune s controleze coordonaa ntre date i pentru aceasta datelor li se d o structur distinc care nu se
mai bazeaza pe conceptul clasic de fiier. Pentru a obine informaiile necesare, se leag datele din diferite componente n
structuri complexe. n felul acesta au aprut bazele de date.
In lucrarea de an prezentat mai mai sus am creat o baza de date pentru Academia Cisco, dupa parerea mea este o baza de
date reusit. Doar ca ar trebui de o expandat pe scara mai larga. Aceasta baza de date ofera posibilitatea de stoca mai multe
feluri de data cum ar fi nume, prenumele profesorilor, studentilor impreuna cu infortaia personala a unui membru al acestei,
att student ct si profesor.
Anexa A - Scriptul T-SQL bazei de date
Crearea bazei de date noi n T-SQL
use master
go
IF DB_ID('Academia_Cisco') IS NOT NULL
DROP DATABASE ICT_SUMMIT;
CREATE DATABASE Academia_Cisco
ON(
NAME = Academia_Cisco_data,
FILENAME = 'C:\BDC\Academia_Cisco.mdf',
SIZE = 250MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 25MB)
LOG ON(
NAME = Academia_Cisco_log,
FILENAME = 'C:\BDC\Academia_Cisco.ldf',
SIZE = 5MB,
FILEGROWTH = 5MB);
GO
];
GO
--
Student
-- TEMA
-- Profesor
--Sala--
USE Academia_Cisco;
GO
INSERT INTO [Tema]
([Tema_Nume],[Tema_Descriere],[Sala_Id])
VALUES
('Routing','Rutarea Paketelor',5),
('Swinchiking','Dispozitiv_de_layer_2',4),
('WanLan','WanLanRouting',5),
('Subnetare','Subnetarea Retelelor', 15);
USE Academia_Cisco;
GO
INSERT INTO Sala
([Sala_Nume],[Sala_Locuri],[Sala_Tip])
VALUES
('D-03',111,'Deschis'),
('D-02',222,'Deschis'),
('D-01',333,'Inchis');
use Academia_Cisco
go
INSERT INTO Profesor ([Profesor_Nume],[Profesor_Prenume],[Profesor_Email],
[Profesor_Tel],[Tema_Id])
VALUES
('Iurie','Costas','CostasIurie.@gmail.com','12348906',14),
('Skupuiriri','Nadrei','SkupuriiAbdrei,@gmail.com','245472',8),
('Dorian','Saranciuc','DorianSaranciu.@gmail.com','66546457',6),
('Ion','Mihai','IonMiha.@gmail.com','668585',6);
Crearea viziunilor
IF OBJECT_ID('VIEW_First','V') IS NOT NULL
DROP VIEW [VIEW_First];
GO
CREATE VIEW [VIEW_First]
WITH SCHEMABINDING
AS
SELECT
dbo.Profesor
dbo.Profesor,
FROM dbo.Utilizator_Speaker;
GO
DROP TABLE dbo.Profesor;