Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

Dizionario dei dati

ENTITA' DESCRIZIONE ATTRIBUTI IDENTIFICATORE

Nickname, Nome utente, Nickname

Giocatore L’utente del gioco password, sesso, età,

data di nascita

Villaggio Villaggio controllato da un Nome, x, y, abitanti Nome

giocatore

Infrastruttura Costruzione appartenente a ID, livello, dataora ID

un villaggio

TipoInfrastruttura Tipologie di infrastruttura Nome, g_up, a_up, f_up, Nome

l_up

Magazzino Infrastruttura dedicata a ID, livello, dataora, ID

contenere risorse grano, argilla, ferro,

legno

TipoTruppa Tipologie di unità militare Tipo, attacco, difesa, Tipo

g_up, a_up, f_up, l_up

Combattimento Attacco militare da un ID, dataora ID

villaggio ad un altro

RELAZIONE DESCRIZIONE ENTITA' COINVOLTE ATTRIBUTI

Proprietà Associa uno o più villaggi a Giocatore (0,N),

un giocatore Villaggio (1,1)

Composizione Associa un’infrastruttura a Villaggio (1,N),

un villaggio Infrastruttura (1,1)

Funzione Associa una tipologia ad Infrastruttura (1,1),

un’infrastruttura TipoInfrastruttura (0,N)

Attaccante Associa il villaggio che sferra Villaggio (0,N), Impiegate, perse

l'attacco al combattimento Combattimento (1,1),

corrispondente TipoTruppa (0,N)

Difensore Associa il villaggio che Villaggio (0,N), Impiegate, perse

subisce l'attacco al Combattimento (1,1),

combattimento TipoTruppa (0,N)

corrispondente

Truppe Associa truppe ad un TipoTruppa (0,N), Quantità

villaggio Villaggio(0,N)

Villaggio (1,N),

Riserve Associa un magazzino ad un

villaggio Magazzino (1,1)

Requisiti Associa un magazzino Magazzino (1,1),

all'entità creata per TipoInfrastruttura (0,N)

conservare le informazioni

sulle infrastrutture

Schema logico dei vincoli di integrità referenziale

Schema relazionale

Giocatore {

Nickname,

Nome,

Password,

Residenza,

Sesso,

Data di Nascita

}

Villaggio {

Nome,

Abitanti,

X,

Y,

Proprietario (referenza Giocatore(Nick))

}

Combattimento {

Id,

DataOra,

Attaccante, (referenza Villaggio(Nome))

Tipo_a, (referenza TipoTruppa(Nome))

Impiegate_a,

Perse_a,

Difensore, (referenza Villaggio(Nome))

Tipo_d, (referenza TipoTruppa(Nome))

Impiegate_d,

Perse_d

}

Truppe {

Tipo, (referenza TipoTruppa(Nome))

Villaggio, (referenza Villaggio(Nome))

Quantità

}

TipoTruppa {

Nome,

Attacco,

Difesa,

G_up,

A_up,

F_up,

L_up

}

Magazzino {

Id,

Livello,

DataOra,

Argilla,

Ferro,

Grano,

Legno,

Villaggio (referenza Villaggio(Nome))

}

Infrastruttura {

Id,

Tipo (referenza TipoInfrastruttura(Nome))

Livello,

DataOra,

Villaggio, (referenza Villaggio(Nome))

}

TipoInfrastruttura {

Nome,

G_up,

A_up,

F_up,

L_up

} CODICE SQL

Per tutte le operazioni con il codice SQL è stata utilizzata la piattaforma MySQL.

Query per la creazione del database

CREATE TABLE giocatore

(

nick VARCHAR(30) NOT NULL,

nome VARCHAR(30) NOT NULL,

password VARCHAR(20) NOT NULL,

residenza VARCHAR(255) NOT NULL,

sesso CHAR(1) NOT NULL check (sesso = 'm' or sesso = 'f'),

data_nascita DATE NOT NULL,

PRIMARY KEY (nick)

);

CREATE TABLE villaggio

(

nome VARCHAR(20) NOT NULL,

abitanti INTEGER DEFAULT 95 NOT NULL,

x INTEGER(3) NOT NULL check (x >= -375 or x <= 375),

y INTEGER(3) NOT NULL check (y >= -375 or y <= 375),

proprietario VARCHAR(30) NOT NULL REFERENCES giocatore(nick) ON UPDATE

CASCADE,

PRIMARY KEY (nome),

CONSTRAINT posizione unique(x,y)

);

CREATE TABLE combattimento

(

id INTEGER NOT NULL AUTO_INCREMENT,

dataora TIMESTAMP DEFAULT NOW(),

attaccante VARCHAR(20) NOT NULL REFERENCES villaggio(nome) ON UPDATE CASCADE,

tipo_a VARCHAR(255) NOT NULL REFERENCES tipotruppa(nome) ON UPDATE CASCADE,

impiegate_a INTEGER NOT NULL check (impiegate_a >= 0),

perse_a INTEGER NOT NULL check (perse_a <= impiegate_a),

difensore VARCHAR(20) NOT NULL REFERENCES villaggio(nome) ON UPDATE CASCADE,

tipo_d VARCHAR(255) NOT NULL REFERENCES tipotruppa(nome) ON UPDATE CASCADE,

impiegate_d INTEGER NOT NULL check (impiegate_d >= 0),

perse_d INTEGER NOT NULL check (perse_d <= impiegate_d),

PRIMARY KEY (id)

);

CREATE TABLE magazzino

(

id INTEGER NOT NULL AUTO_INCREMENT,

livello INTEGER NOT NULL DEFAULT 1,

dataora TIMESTAMP DEFAULT NOW(),

argilla INTEGER NOT NULL check (argilla >= 0),

ferro INTEGER NOT NULL check (ferro >= 0),

grano INTEGER NOT NULL check (grano >= 0),

legno INTEGER NOT NULL check (legno >= 0),

villaggio VARCHAR(20) NOT NULL REFERENCES villaggio(nome) ON UPDATE CASCADE,

PRIMARY KEY (id)

);

CREATE TABLE tipotruppa

(

nome VARCHAR(255) NOT NULL,

attacco INTEGER NOT NULL,

difesa INTEGER NOT NULL,

a_up INTEGER NOT NULL,

f_up INTEGER NOT NULL,

g_up INTEGER NOT NULL,

l_up INTEGER NOT NULL,

PRIMARY KEY (nome)

);

CREATE TABLE tipoinfrastruttura

(

nome VARCHAR(255) NOT NULL,

a_up INTEGER NOT NULL,

f_up INTEGER NOT NULL,

g_up INTEGER NOT NULL,

l_up INTEGER NOT NULL,

PRIMARY KEY (nome)

);

CREATE TABLE infrastruttura

(

id INTEGER NOT NULL AUTO_INCREMENT,

livello INTEGER NOT NULL DEFAULT 1,

dataora TIMESTAMP DEFAULT NOW(),

villaggio VARCHAR(20) NOT NULL REFERENCES villaggio(nome) ON UPDATE CASCADE,

tipo VARCHAR(255) NOT NULL REFERENCES tipoinfrastruttura(nome) ON UPDATE

CASCADE,

PRIMARY KEY (id)

);

CREATE TABLE truppe

(

villaggio VARCHAR(20) NOT NULL REFERENCES villaggio(nome) ON UPDATE CASCADE,

quantità INTEGER NOT NULL check (quantità >= 0),

tipo VARCHAR(255) REFERENCES truppa(tipo) ON UPDATE CASCADE,

PRIMARY KEY (villaggio,tipo)

);

Query di inizializzazione

INSERT INTO tipoinfrastruttura (nome,a_up,g_up,f_up,l_up) VALUES

('centro_città',100,200,400,400),

('municipio',100,400,200,400),

('granaio',200,200,200,400),

('magazzino',200,200,200,500),

('forno',100,200,400,400),

('fabbro',100,200,200,200),

('mercato',50,100,100,200),

('campo_grano',100,100,100,100),

('miniera_argilla',100,0,400,100),

('miniera_ferro',100,0,400,200),

('foresta',100,50,0,100),

('caserma',200,200,400,400),

('scuderia',100,50,200,400),

('armeria',100,50,300,300),

('arena',100,50,300,500),

('castello',300,200,500,500);

INSERT INTO tipotruppa (nome,attacco,difesa,a_up,f_up,g_up,l_up) VALUES


PAGINE

15

PESO

104.57 KB

AUTORE

flaviael

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in informatica
SSD:
A.A.: 2010-2011

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher flaviael di informazioni apprese con la frequenza delle lezioni di Laboratorio di basi di dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università La Sapienza - Uniroma1 o del prof Fontana Flavio.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Corso di laurea in informatica

Fondamenti di informatica 1 - Esercizi
Esercitazione
Informatica di base - nozioni generali
Appunto
Informatica di base - Appunti
Appunto
Algebra lineare e geometria - Appunti
Appunto