Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Angelo Chianese,
Chianese, Vincenzo Moscato, Antonio
Picariello,
Picariello, Lucio Sansone
Basi di dati per la gestione dell'informazione
2/ed
McGrawMcGraw-Hill
Capitolo 2
Appunti dalle lezioni
Sistemi informativi
e basi di dati
La Progettazione
Concettuale
Il modello relazionale
La Progettazione
Logica
Utilizzo di un
DBMS Reale
La Progettazione
Fisica
Strumenti CASE
Forme normali
Programmazione
Transazioni e
tecnologie di supporto
Basi di dati
direzionali
Basi di dati
distribuite
SQL
Lo standard SQL
SQLSQL-2
SQLSQL-3
In SQL:
Create
Alter
Drop
Database vs Schema
MySQL
DB1
DB1
DB2
DB3
DB3
SCHEMA1
DB2
SCHEMAN
Domini Elementari
Specificare il tipo di un dato significa gi
gi imporre un vincolo
BIT
bit [varying
[varying]
varying] [(lunghezza)]
Varbit(12)
Varbit(12)
Carattere
stringhe
ghe possono essere a
Permette di rappresentare singoli caratteri o stringhe. Le strin
lunghezza fissa oppure variabile.
character [varying]
varying] [(lunghezza)] [character
[character set famiglia]
Character character(12)
character(12) char(12)
char(12)
character varying(12)
varying(12) - Varchar(12)
Varchar(12)
Vincoli di dominio
Domini Elementari
Numeric [(Precisione[,Scala])]
numeric(6,3)
(6,3) [numeric
[-999.999,999.999]
Decimal [(Precisione[,Scala])]
Integer
Smallint
Domini Elementari
Tipi numerici approssimati:
float [(Precisione)]
double precision
real
Data e Ora:
9
date
time
timestamp
Domini Elementari
Intervalli temporali:
interval PrimaUnita
PrimaUnitadiTempo [to UltimaUnita
UltimaUnitadiTempo]
diTempo]
interval year to month
SQLSQL-99 ha introdotto
Boolean
10
Create Domain
11
Creazione di Tabelle
create table nome (
NAttr Dom [ValoreDef
[ValoreDef]
ValoreDef] [vincoli
[vincoli]
vincoli]
{,NAttr
{,NAttr Dom [ValoreDef
[ValoreDef]
ValoreDef] [vincoli
[vincoli]}
vincoli]}
[Altri Vincoli]
Vincoli] )
Notazione .
AZIENDA.DIP.Nome
Primary Key
Indica che l
lattributo (o gli attributi) rapprsenta una chiave
primaria per la tabella.
13
Primary Key
14
Unique
15
Indica nella tabella non possono esistere due righe con valori
identici su tale attributo.
Create table Impiegato (
cognome varchar(20)
varchar(20) unique,
unique,
nome varchar(20))
varchar(20))
Create table Impiegato (
cognome varchar(20),
varchar(20),
nome varchar(20),
varchar(20),
unique(Cognome,Nome))
unique(Cognome,Nome))
Create table Impiegato (
cognome varchar(20)
varchar(20) ,
nome varchar(20),
varchar(20),
constraint UNQ_Cog_Nome unique(Cognome,Nome))
unique(Cognome,Nome))
AA 2010-2011, Basi di Dati, Prof. Antonio dAcierno, dacierno.a@isa.cnr.it
Not Null
16
indica che l
lattributo non pu assumere valore NULL.
create table Dip (
Nome varchar(20) Not Null,
Citta varchar(20))
create table Dip (
Nome varchar(20),
Citta varchar(20),
Not Null(Nome))
Null(Nome))
create table Dip (
Nome varchar(20),
Citta varchar(20),
CONSTRAINT NN_Nome Not Null(Nome))
Null(Nome))
AA 2010-2011, Basi di Dati, Prof. Antonio dAcierno, dacierno.a@isa.cnr.it
Vincoli Intrarelazionali
17
18
CHECK:
Vincoli Interrelazionali
19
Vincoli Integrit
Integrit Referenziale
Dipartimento (Nome
(Nome,
Nome,Citta)
Citta)
Impiegato(Matricola
Matricola,Cognome,
Impiegato(
Matricola,Cognome, Dipartimento)
Dipartimento (Nome
(Nome,
Nome,Citta)
Citta)
Impiegato(Matricola
Matricola,Cognome,
Impiegato(
Matricola,Cognome, Dipartimento : Dipartimento.Nome)
Dipartimento.Nome)
La
20
Vincoli Integrit
Integrit Referenziale
21
Vincoli Integrit
Integrit Referenziale
22
Indici
Gli indici rappresentano uno strumento prezioso per
velocizzare l
laccesso ai dati.
create [unique
[unique]
unique] index NomIdx on NomeTable (ListaAttributi)
ListaAttributi)
unique indica che nella tabella non sono possibili righe che
assumono lo stesso valore su ListaAttributi (che quindi
una chiave eventualmente non minimale)
Lordine in cui sono dati gli attributi importante.
23
Altri CREATE
24
INDEX
VIEW
ASSERTION (non implementato da molti DB)
TRIGGER
Modifica
alter domain nome <set default ..
drop default
add constraint
drop constraint >
alter table nome <alter column
set default
drop default
add constraint
drop constraint
add column
drop column>
column>
25
Modifica
Drop:
Drop: Permette di rimuovere schemi, tabelle etc.
drop <schema | domain |table | view | assertion | >
[restrict | cascade]
cascade]
restrict:
restrict:
cascade
26
Cataloghi Relazionali
27
Esempio
create table DIPARTIMENTO (
CODICE CHAR(4) not null,
NOME VARCHAR(20) null,
constraint PK_DIPARTIMENTO primary key (CODICE));
Esempio
create table IMPIEGATO (
CF CHAR(16),
CAPO_CF CHAR(16) null,
DIPARTIMENTO CHAR(4) null,
COGNOME VARCHAR(20) null,
NOME VARCHAR(20) null,
DATA_N DATE null,
STIPENDIO INTEGER not null
constraint CKC_STIPENDIO_IMPIEGAT check (STIPENDIO between '800' and '3000'),
constraint PK_IMPIEGATO primary key (CF),
constraint FK_CAPO_IS_IMPIEGATO foreign key (CAPO_CF)
references IMPIEGATO (CF)
on delete restrict on update restrict,
constraint FK_IMPIEGATO_ESISTE_DIPARTIMENTO foreign key (DIPARTIMENTO)
references DIPARTIMENTO (CODICE)
on delete restrict on update restrict);
29
Esempio
30
Esempio
31
Esempio
32