ISTITUTO SUPERIORE “ITT MARCONI” – ROVERETO ESAME DI STATO 2015 Alunno: Andrea Tobaldi Classe: V° B Informatica Anno Scolastico: 2014-2015 Calcio Trentino Sito web contenente Classifiche, Calendari, Squadre e Rose PRESENTAZIONE DEL SITO Link del sito The subjects involved in this project are: - Sistemi e Reti - Informatica - Tecnologie Informatiche Technologies - HTML/CSS - JavaScript - Jquery - MYSQL - JSON - Web Service - Bootstrap PROGETTAZIONE DEL DATABASE Definizione di database Definizione di DBMS DBMS (Data Base Management System) Istruzioni del linguaggio SQL Linguaggio - CREATE VIEW, GRANT, REVOKE, ecc DCL (data control language) - CREATE TABLE, ALTER TABLE, ecc DDL (data definition language) - INSERT, UPDATE, DELETE DML (data manipulation language) - SELECT QL (query language) - CREATE INDEX, ecc DSL (data storage language) TIPI DI MODELLI PER LA BASE DI DATI -Gerarchico -Reticolare -Relazionale L’IMPORTANZA DELLA PROGETTAZIONE La progettazione del modello di dati avviene a modelli diversi: -MODELLO CONCETTUALE -MODELLO LOGICO - MODELLO FISICO MODELLO CONCETTUALE DIAGRAMMA/MODELLO ENTITÀ-RELAZIONE (ER) Gli elementi di un modello entità/associazioni sono: -Entità - Associazioni -Attributi ASSOCIAZIONI TRA ENTITÀ - Associazione uno ad uno (1:1) - Associazione uno a molti (1:N) - Associazione molti a molti (N:N) MODELLO CONCETTUALE USATO NEL PROGETTO MODELLO RELAZIONALE USATO NEL PROGETTO GIOCATORE (IdGiocatore, Nome, Cognome, Ruolo, DataAnno, IdSquadra) SQUADRA (IdSquadra, Nome, Paese, Stemma, Lat, Lon, IdCategoria, IdPartita) CATEGORIA (IdCategoria, NomeCampionato, Girone) ALLENATORE (IdAllenatore, Nome, Cognome, IdSquadra) PARTITA (IdPartita, Giornata, SquadraCasa, SquadraFuori, GolCasa, GolFuori, IdCategoria) Chiave Primaria Chiave Esterna PROGETTAZIONE LOGICA CREATE TABLE - SQUADRA create table if not exists Squadra ( Id_Squadra integer not null auto_increment, Nome varchar(100) not null, Paese varchar(100) not null, Stemma varchar(40), Lat double, Lon double, Id_Categoria integer not null, primary key (Id_Squadra), foreign key(Id_Categoria) references Categoria(Id_Categoria) ); PROGETTAZIONE LOGICA CREATE TABLE - GIOCATORE create table if not exists Giocatore ( Id_Giocatore integer not null auto_increment, Nome varchar(40) not null, Cognome varchar(40) not null, Ruolo varchar(40) not null, DataAnno integer, Id_Squadra integer not null, primary key (Id_Giocatore), foreign key(Id_Squadra) references Squadra(Id_Squadra), check (ruolo = "portiere" or ruolo = "difensore" or ruolo = "centrocampista" or ruolo = "attaccante") ); PROGETTAZIONE LOGICA CREATE TABLE - ALLENATORE create table if not exists Allenatore ( Id_Allenatore integer not null auto_increment, Nome varchar(40) not null, Cognome varchar(40) not null, Id_Squadra integer not null, primary key (Id_Allenatore), foreign key(Id_Squadra) references Squadra(Id_Squadra) ); PROGETTAZIONE LOGICA CREATE TABLE - PARTITA create table if not exists Partita ( Id_Partita integer not null auto_increment, Giornata integer not null, SquadraCasa integer not null, SquadraFuori integer not null, GolCasa integer, GolFuori integer, Id_Categoria integer not null, primary key (Id_Partita), foreign key(Id_Categoria) references Categoria(Id_Categoria), foreign key(SquadraCasa) references Squadra(Id_Squadra), foreign key(SquadraFuori) references Squadra(Id_Squadra) ); INTERROGAZIONI SQL 1) Ricavare tutte le informazioni di una squadra tramite il nome select * from squadra join categoria on squadra.Id_Categoria = categoria.Id_Categoria where Nome = "NomeSquadra"; 2) Ricavare i risultati di una giornata calcistica tramite l'IdCategoria e l'IdGiornata select partita.Giornata, (select squadra.Nome from squadra where id_Squadra = partita.SquadraCasa) as SquadraCasa, (select squadra.Nome from squadra where id_Squadra = partita.SquadraFuori) as SquadraFuori, partita.GolCasa, partita.GolFuori from partita join categoria on partita.Id_Categoria = categoria.Id_Categoria where categoria.Id_Categoria = "IdCategoria" and partita.Giornata = "IdGiornata"; INTERROGAZIONI SQL 3) Ricavare la lista dei giocatori di una squadra tramite il nome della squadra select giocatore.* from giocatore join squadra on giocatore.Id_Squadra = squadra.Id_Squadra where squadra.Nome ='NomeSquadra'; Grazie dell’attenzione