DBMS. DataBase Management System. L. Vigliano
|
|
|
- Gianmarco Antonino Baroni
- 8 anni fa
- Просмотров:
Транскрипт
1 DBMS DataBase Management System
2 DBMS Un DataBase Management System è un sistema di gestione il cui obiettivo generale è mantenere le informazioni (ovvero qualsiasi cosa sia ritenuta interessante da un individuo o da una organizzazione a cui il sistema è rivolto) e renderle disponibili su richiesta. J. Date
3 DBMS Caratteristiche Un DBMS deve garantire : Condivisione dei dati Database persistenti Affidabilità Privatezza Efficienza Efficacia
4 DBMS (2) MYSQL sistema relazionale di gestione per basi di dati (DBMS) SQL linguaggio per l interrogazione e la manipolazione dei dati
5 MYSQL Basato su routine ISAM, scritto in C e C++ Interfacciabile da C, C++, Perl, PHP, Eiffel, Java, Python, TC1API Gestisce fino a tabelle e fino a 50 milioni di record DDL Data Definition Language DML Data Manipulation Language SQL Structured Query Language
6 Primi Comandi Show databases ; Use <nomedb>; Create database <nomedb>; Exit; ATTENZIONE AL ;
7 Creare e cancellare database (con molta attenzione!!!) Create database <nomedb>; Drop database <nomedb>;
8 Usare un database Use <nomedb>;
9 Tipi di Dati Numerici Interi Tinyint piccolissimo intero da 128 a 127 unsigned Smallint piccolo intero da a unsigned Int intero da a unsigned più altri intermedi opzione AUTO_INCREMENT
10 Tipi di dati (2) Numerici decimali Float(M,D) dove M numero cifre parte intera e D numero cifre parte decimale Double(M,D) più ampio (doppia precisione)
11 Tipi di dati (3) Alfanumerici Char(x) Varchar(x) Stringa di max 255 char di lunghezza fissa Stringa di max 255 char di lunghezza variabile Text file byte Blob file o immagine (Binary Large Object) più altri intermedi NON CREARE MAI INDICI SUGLI ULTIMI DUE!
12 Tipi di dati (3) Temporali TIPO Datetime Date Time Year Timestamp(x) FORMATO aaaa-mm-gg hh:mm:ss aaaa-mm-gg hh:mm:ss aaaa Variabile a seconda di x che varia da 2 a 14
13 emp DATABASE IMPIEGATI dept Empno Ename Job Date Sal deptn o 7369 Smith Clerck Allen Salesman Ward Salesman Jones Manager Martin Salesman Blake Manager Clarck Manager Scott Analyst King President Turner Salesman Adams Clerck James Clerck Ford Analyst Miller Clerck Dptno Dname Loc 10 Accounting New York 20 Reseaech Dallas 30 Sales Chicago 40 Operations Boston
14 Creare e Cancellare Tabelle Create table <nometabella>( <nome attributo> tipodato opzioni, <nome attributo> tipodato opzioni..)opzioni; Drop table <nometabella>;
15 Creare e Cancellare Tabelle Create table emp( empno int not null primary key auto_increment, ename varchar(30) not null,. sal float(4,2).); Drop table emp;
16 Creare Tabelle con Reference Create table emp( empno int not null primary key auto_increment, deptno char(2) not null, foreign key (deptno) references dept (dptno) on update cascade on delete no action, ename varchar(30) not null,. sal float(4,2).) Engine=InnoDB;
17 Gestione Tabelle Create table empvip(ename,sal) as select ename, sal from emp where job = manager ; Modificare una tabella già esistente alter table emp add projno int; Rinominare una tabella alter table emp rename impiegati; Creare tabella solo se non esiste già create table if not exist emp(..);
18 Indici Create index indexname on tablename(columnnamelist); Esempio create index indnome on emp(ename); Drop index indexname on tablename;
19 DML Data Manipulation Language
20 Insert Insert into <nometabella> (<nome attributo>, <nome attributo>, ) values(<valore>,<valore>,..);
21 Insert Insert into emp values(7954, Carter, clerk,7698, ,1000,NULL,30); Insert into emp(empno,ename,deptno) values(7955, Wilson,30);
22 Insert esterno Load data infile nomefile.txt into table tablename (campo1, campo2,.,campon);
23 Update Update <nome tabella> set <nome attributo> = <valore>, <nome attributo>=<valore>,. where <condizioni>;
24 Update Update emp set job = salesman, sal=1,1* sal where ename = Wilson ; Update emp set sal = (select 2*avg(sal) from emp where job= salesman ) where job= salesman ;
25 Delete Delete from <nome tabella> where <condizioni>;
26 Delete Delete from emp where ename = Wilson ; Delete from emp where job in (select..);
27 SQL Structured Query Language
28 Select Select nomicampi from tabelle where condizioni ; Esempio select job from emp; (quali compaiono) select * from emp;
29 Select Opzione Distinct select distinct job from emp; (quali sono) select distinct autore from arau;
30 Select Opzione Alias select empno codice from emp;
31 Operatori per la clausola WHERE =!= <> > >= < <= uguale diverso diverso maggiore maggiore o uguale minore minore o uguale
32 Operatori per la clausola WHERE (2) Between... and. in like is NULL compreso tra. e appartenente a del tipo è un valore assente NOT AND OR Negazione Congiunzione Disgiunzione
33 Select con clausola Where esempi Confronto select * from emp where job = clerck ; Appartenenza select ename, job, sal from emp where sal between 1200 and 5000; Somiglianza ortografica select autore, qualific from au where autore like A% ;
34 Select con Join (Theta-style) Select ename, loc from emp, dept where ename = Allen and emp.deptno=dept.deptno; Dove lavora Allen?
35 Select con Join (Ansi-style) Select ename, loc from emp join dept on emp.deptno=dept.deptno and ename = Allen ; Dove lavora Allen?
36 Select con Funzioni Funzioni di insieme AVG media COUNT contatore MAX massimo MIN minimo SUM sommatoria Funzioni aritmetiche + - * / ABS ROUND TRUNC
37 Select con Funzioni esempi Conta tutti gli articoli di Moscarini select count(*) from arau where autore = Moscarini ; select max(sal), min(sal), from emp; max(sal)-min(sal)
38 Select Aggregate opzioni ORDER BY GROUP BY.. HAVING
39 Select Aggregate esempi select sal, job, ename from emp where deptno = 30 order by sal desc; select deptno, 12*avg(sal) from emp where job not in ( manager, president ) group by deptno; select job, count(*), avg(sal) from emp group by job having count(*) >1 ;
40 Select Nidificate Selezionare tutti gli impiegati che lavorano nello stesso dipartimento di Allen Select ename from emp where deptno= (select deptno from emp where ename = Allen );
41 Select Nidificate versione con alias Selezionare tutti gli impiegati che lavorano nello stesso dipartimento di Allen Select x.ename from emp x, emp y where x.deptno=y.deptno and y.ename = Allen ;
42 Algebra su Select Si possono effettuare UNION INTERSECT MINUS di select
43 Viste o Tabelle Virtuali
44 View o Tabelle Virtuali Le view non memorizzano alcun dato Table, e View da essa derivata, condividono lo stesso spazio Per questo se aggiorno una view, aggiorno anche la tabella A meno che la view sia frutto di una funzione aggregata Se uso l algoritmo Temptable non è aggiornabile
45 View Create view <nome vista> as select <nomi attributi> from <nome tabella> where <condizioni>;
46 View esempi Create view emp10 as select empno, ename, job from emp where deptno = 10; Select * from emp10; ATTENZIONE ALLE MODIFICHE!!!!!!
47 View in MySql PREVISTE SOLO DALLA 5.0 in poi
48 Vantaggi View o Tabelle Virtuali - non occupano memoria - sicurezza (si possono non far vedere certi campi) - convenienza : si creano view anche per eseguire query più semplici, spesso con ottimizzazione dei tempi di risposta
49 View o Tabelle Virtuali Svantaggi - update e delete sulle view diventano azioni pericolose per le tabelle. - Possibilità di inconsistenza tabelle e DB L opzione check controlla la consistenza del database.
50 View opzione check Es. : create view Oceania as select * from Country where continent= Australia with check option; L opzione check non permetterà di aggiornare il campo continent.
51 Merge Table Tabelle MySQL che sono tabelle MyIsam combinate in una singola tabella virtuale Contenitore di tabelle definite in modo simile solo con Merge Storage Engine
52 Merge Table Es. : create table Autore_Libro(nome varchar(30),.) Engine=MyISAM; create table Autore_Articolo(nome varchar(30),.) Engine=MyISAM; insert..; create table mergeautori(nome varchar(30),..) Engine=Merge union(autore_libro, Autore_Articolo) insert_method=last;
53 Partitioned Table Tabelle MySQL con speciali istruzioni che indicano dove fisicamente sono memorizzate le righe. Basate su una Partinioning Function ancora sperimentale sulla versione 5.1
54 Partitioned Table Es. : alter table Vendite partition by range(year(day))( partition p_2008 values less than(2009), partition p_2009 values less than(2010), partition p_catchall values less than maxvalue);
55 Sicurezza
56 Sicurezza in MySQL Sicurezza di tipo non standard MySQL si basa su un sistema di privilegi e permessi MySQL controlla i privilegi prima di ogni accesso a qualsiasi oggetto Privilegi globali = shutdown, show, flush, Privilegi su un oggetto = DB, table,.
57 Sicurezza in MySQL Sistema di privilegi e permessi Autenticazione Chi sei? Autorizzazione Cosa sei autorizzato a fare? Controllo di accesso Quali dati puoi vedere o gestire?
58 Sicurezza in Mysql Sistema di privilegi e permessi I privilegi sono garantiti dalle Grant Tables I comandi principali sono Grant, Revoke e Drop user
59 Sicurezza in Mysql Grant Tables I privilegi sono controllati gerarchicamentte nel seguente ordine : User Db Host Table_priv Columns_priv Procs_priv
60 Sicurezza in Mysql Grant Grant tipo privilegio on oggetto(db,tabelle) to nome_utente identified by password; Dove tipo privilegio può essere : Select, Insert, Update, Delete, Alter, Index
61 Sicurezza in Mysql Grant (esempio) Grant select on DB10.emp to DB10; Grant all privileges on *.* to DB ;
62 Sicurezza in Mysql Revoke Revoke tipo privilegio on oggetto from nome utente; Esempio: Revoke all privileges on DB10.* from
63 Sicurezza in Mysql Drop user Drop user nome utente;
64 Sicurezza in Mysql Esempi per figure aziendali System Administrator Grant all privileges on *.* to localhost identified by password with grant option; Database Administrator Grant all privileges on *.* to localhost identified by p4ssword with grant option; Pre-employee Grant insert,update privileges on magazzino.orders to magazzino.example.com identified by password ;
65 Sicurezza in Mysql In generale. E meglio costruire delle view con solo le colonne che possono essere viste e dare accesso a queste, piuttosto che dare accesso alle singole colonne delle tabelle. Troppi privilegi, o troppi privilegi a grana fine, o troppi privilegi separati sulle colonne possono creare problemi di performance.
66 Sicurezza in Mysql Crittografia MySQL supporta la tecnologia SSL (Secure Socket Layer) tramite la libreria OpenSSL. MySQL mette a disposizione funzioni per criptare dati : encrypt(), sha1() e MD5().
DBMS. DataBase Management System. L. Vigliano
DBMS DataBase Management System DBMS Un DataBase Management System è un sistema di gestione il cui obiettivo generale è mantenere le informazioni (ovvero qualsiasi cosa sia ritenuta interessante da un
SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)
SQL quick reference piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) I tipi dei dati di SQL sono: delimitatori delle costanti: TEXT(n) stringa di caratteri
SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini
SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA 3. Panoramica su SQL Prof. Mauro Giacomini Sommario Introduzione Istruzione SELECT Tipi di Join Subquery Comandi DML Creazione delle tabelle Introduzione
PROGETTAZIONE DI DATABASE Linguaggio SQL
PROGETTAZIONE DI DATABASE Linguaggio SQL Modello Concettuale (Modellazione del mondo reale) Modello Logico (Definizione del tipo e del formato dei dati) Modello Fisico (Implementazione fisica su supporti
Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati
Basi di Dati Matteo Longhi Structured Query Language Introduzione Standard creato nel 1976 da IBM Aggiornato (versione 2 nel 1992 (ANSI X3.135 e ISO 9075 Consente di: DDL: definire la struttura del DB
Caratteristiche dei linguaggi per Database
IL LINGUAGGIO Caratteristiche dei linguaggi per Database I linguaggi per basi di dati relazionali possiedono i comandi per: definizione del data base; manipolazione dei dati; associazione tra tabelle diverse;
Structured Query Language
IL LINGUAGGIO SQL Structured Query Language Contiene sia il DDL sia il DML, quindi consente di: Definire e creare il database Effettuare l inserimento, la cancellazione, l aggiornamento dei record di un
SQL - Structured Query Language
SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente
Manuale SQL. Manuale SQL - 1 -
Manuale SQL - 1 - Istruzioni DDL Creazione di una tabella : CREATE TABLE Il comando CREATE TABLE consente di definire una tabella del database specificandone le colonne, con il tipo di dati ad esse associate,
SQL (STRUCTURED QUERY LANGUAGE)
SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura
SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:
SQL SQL (pronunciato anche come l inglese sequel): acronimo di Structured Query Language (linguaggio di interrogazione strutturato) Linguaggio completo che presenta anche proprietà di: DDL (Data Definition
SQL (STRUCTURED QUERY LANGUAGE)
SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura
Il linguaggio SQL: autorizzazioni
Il linguaggio SQL: autorizzazioni Sistemi Informativi T Versione elettronica: 04.6.SQL.autorizzazioni.pdf Autorità e privilegi Nei DBMS SQL ogni operazione deve essere autorizzata, ovvero l utente che
SQL DDL. Create database. Alter database. Drop database
SQL In informatica, SQL (Structured Query Language) è un linguaggio standardizzato per database basati sul modello relazionale (RDBMS), progettato per le seguenti operazioni: creare e modificare schemi
DBMS: MySQL CORSO DI BASI DI DATI 2014/2015
DBMS: MySQL CORSO DI BASI DI DATI 2014/2015 MySQL La pronuncia ufficiale è MY- S- Q- L ma si può leggere anche MY- Sequel. MySQL è il secondo RDBMS più diffuso al mondo. OpenSource sono licenza GPL Scelto
Fondamenti di Informatica e Programmazione
Fondamenti di Informatica e Programmazione Prof. G ianni D Angelo Email: [email protected] A. A. 2018/ 19 Le Origini di SQL Principali Versioni Anni 70 1986 SEQUEL Structured English QUEry Language Sviluppato
SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)
1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2017/2018 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2017-18.htm Prof.ssa Francesca A. Lisi [email protected]
Interrogazioni nidificate
Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,
Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL
Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,
Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor
Interrogare una base di dati: algebra relazionale e SQL Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Contesto didattico Il seguente materiale didattico è
DATABASE PER IL WEB. Programmazione Web 1
DATABASE PER IL WEB Programmazione Web 1 Archite3ura web con database Client Tier Web/App Tier DB Tier Client Web / App Server Database Il server web comunica con un altro server che con8ene il la banca
ESERCITAZIONE: Fornitore-Fornisce-Articolo
ESERCITAZIONE: Fornitore--Articolo PROGETTAZIONE CONCETTUALE Sia dato il diagramma ER rappresentativo di una certa realtà di interesse Cognome CodF Nome DataN CodA Descrizione Prezzo Fornitore N N E Fornito
Esempio di database relazionale con l utilizzo del prodotto MySQL
Esempio di database relazionale con l utilizzo del prodotto MySQL Marco Liverani Aprile 2015 In queste pagine viene riportato in sintesi il progetto di un database relazionale esemplificativo con cui viene
SQL: DDL, VI, Aggiornamenti e Viste
SQL: DDL, VI, Aggiornamenti e Viste 1 SQL è più di un semplice linguaggio di interrogazione v Linguaggio di definizione dati (Data-definition language, DDL): Crea/distrugge/modifica relazioni e viste Definisce
MODULO 2. Query normali e parametriche Query di:
MODULO 2 TITOLO DBMS e SQL In questo Modulo si affronta lo studio dei DBMS Access e MySQL. In particolare per Access, si descrive come progettare, impostare e modificare gli strumenti di lavoro (tabelle,
Tecnologia delle Basi di Dati Esercitazione #4 Definizione dei trigger in Oracle
Tecnologia delle Basi di Dati Esercitazione #4 Definizione dei trigger in Oracle 1 Materiale disponibile Gli script e il testo delle esercitazioni sono disponibili nel direttorio della propria home, nella
Il linguaggio SQL: DDL di base
Il linguaggio SQL: DDL di base Sistemi Informativi T Versione elettronica: 04.1.SQL.DDLbase.pdf SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS
Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.
Appunti di MySql Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Indice generale avviare la shell mysql...2 comandi SQL per la gestione del database (DDL)...2 visualizzare l'elenco
----------------------------------------------------------------------------
APPUNTI DI SQL Gli appunti qui forniti vogliono essere un riferimento scritto di alcuni degli argomenti trattati a lezione per gli studenti a cui vengono messi a disposizione. Non viene fornita alcuna
SQL: le funzioni di aggregazione
SQL: le funzioni di aggregazione funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della tabella: Conteggi Somme Medie Massimi, minimi Funzione Count La funzione COUNT conta il
Basi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 3 Raffaella Gentilini 1 / 52 Sommario 1 Il DML di SQL: Interrogazione di una BD 2 / 52 Data Manipulation Language (DML) Istruzioni del DML Le istruzioni del DML
I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1
I.I.S. G. COSSALI - ORZINUOVI DATABASE Marzo 2017 Prof. Dario Tomasoni 1 IMPOSTAZIONE 60 min = Database concetti + Esercizi; 10 min = pausa; 30 min = Linguaggio SQL; 30 min = Database prove LibreOffice
OBIETTIVI DELL'ESERCITAZIONE
Laurea in Ingegneria Informatica - Università di Roma "La Sapienza" Corso di Basi di Dati - A.A. 2005/2006 Esercitazione su SQL Giuseppe De Giacomo Domenico Lembo OBIETTIVI DELL'ESERCITAZIONE Creare schema
Istruzioni DCL di SQL. Pag. 119 par.5
Istruzioni DCL di SQL Pag. 119 par.5 Comando: GRANT (Per concedere diritti su tabelle a nuovi o vecchi utenti) Dato un determinato DB è necessario predisporre e concedere i relativi diritti d accesso a
SQL. Lezione 1. Docente: Alberto Belussi
LaboratoriodiBasidiDatieWeb Docente: Alberto Belussi Lezione 1 SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali Il linguaggio SQL è
Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.
(Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System
Introduzione a MySQL
Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da
