Introduzione al linguaggio SQL con riferimento allo standard Mysql.
Creazione e modifica tabelle, inserimento istanze, funzioni di manipolazione, funzioni di aggregazione.
Semplice introduzione ai DBMS e al linguaggio SQL (con attenzione verso pgsql). Ispirato da Appunti di Informatica Libera - http://informaticalibera.net/
Introduzione al linguaggio SQL con riferimento allo standard Mysql.
Creazione e modifica tabelle, inserimento istanze, funzioni di manipolazione, funzioni di aggregazione.
Semplice introduzione ai DBMS e al linguaggio SQL (con attenzione verso pgsql). Ispirato da Appunti di Informatica Libera - http://informaticalibera.net/
The Abstract Factory pattern provides an interface for creating families of related or dependent objects without specifying their concrete classes. In the example code, abstract factories like ContinentFactory define interfaces for creating herbivores and carnivores, while concrete factories like AfricaFactory and AmericaFactory implement the interfaces and produce animal objects appropriate for their continent. A client like AnimalWorld uses the factories to populate ecosystems with different sets of animals.
Procedures and functions are subprograms in PL/SQL. Functions return a value while procedures do not return a value. Functions are called and return a value, like sales_for_1995 := tot_sales (1504, 'C'). Procedures are called by name and can pass parameters, like apply_discount( new_company_id, 0.15 ). Parameters can be passed into functions and procedures as IN, OUT or IN OUT parameters. An example shows a function that returns the number of days in a month based on the month number and year passed in as parameters.
The Abstract Factory pattern provides an interface for creating families of related or dependent objects without specifying their concrete classes. In the example code, abstract factories like ContinentFactory define interfaces for creating herbivores and carnivores, while concrete factories like AfricaFactory and AmericaFactory implement the interfaces and produce animal objects appropriate for their continent. A client like AnimalWorld uses the factories to populate ecosystems with different sets of animals.
Procedures and functions are subprograms in PL/SQL. Functions return a value while procedures do not return a value. Functions are called and return a value, like sales_for_1995 := tot_sales (1504, 'C'). Procedures are called by name and can pass parameters, like apply_discount( new_company_id, 0.15 ). Parameters can be passed into functions and procedures as IN, OUT or IN OUT parameters. An example shows a function that returns the number of days in a month based on the month number and year passed in as parameters.
Youtube: https://www.youtube.com/watch?v=jh3CJ1ns0JQ
Il Query Processor è uno dei componenti più sofisticati di un RDBMS, quello di SQL Server non fa eccezione e sono state introdotte molte novità per risolvere le Query in modo più efficiente. In questa sessione affronteremo l'argomento ripercorrendo le varie funzionalità a partire dal nuovo modello del "Cardinality Estimator", introdotto nella versione 2014, per arrivare a tutto ciò che ricade sotto il nome di "Intelligent Query Processor" tra cui le funzionalità di "Adaptive Query Processing", introdotte nella versione 2017, e le novità introdotte nella versione 2019. Il tutto senza dimenticare le funzionalità per aiutare a gestire eventuali problematiche di regressione e coadiuvato da dimostrazioni pratiche.
Il seminario presenta le nuove soluzioni di archiviazione e gestione dei dati disponibili oggi sul mercato, basate su database denominati “noSQL”. Dopo una breve introduzione sui concetti fondamentali dei database relazionali (RDBMS), sarà effettuato un confronto con database basati sui documenti (MongoDB) e Key Value Storage (Redis)
Il documento si propone di analizzare le tecniche di base per effettuare il reverse engineering. Verranno inoltre prese in esame le caratteristiche principali di alcuni dei tool utilizzati nel reverse engineering .
In questa breve presentazione sono descritte le istruzioni Sql per creare un database e le relative tabelle sul Dbms MySql, comprensive di chiavi primarie, chiavi esterne e vincoli check.
C# is entering its third decade of life. And it is consistently evolving over the years with lot of new features. Let's recap the recent 7.x evolution and what we expect for the 8.0 features.
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Massimo Cenci
La naming convention è una componente fondamentale di ogni progetto informatico.
L’obiettivo di questo articolo è quello di suggerire uno standard di nomenclatura pratico ed efficace per un progetto di Data Warehouse.
(parte 2)
Azure Stream Analytics è un motore serverless che permette l'analisi dei dati in tempo reale di più flussi simultanei. Durante la sessione vedremo un esempio di come sia possibile determinare situazioni di allarme e notificarle via email.
The document discusses PL/SQL triggers. It provides an example of creating a trigger on a books table to log changes to a books_hist table. The trigger checks for insert, update, or delete events on the books table and inserts corresponding records into the books_hist table. It also discusses trigger events, the ability to apply triggers at the row level or with a condition, and data dictionary views for viewing trigger information.
1. 22/07/04 Ing. Ronchi Sergio 1
SQL (Structured Query language)
SELECT Data retrieving
INSERT
UPDATE
DELETE
MERGE
DML
Data manipulation Language
CREATE
ALTER
DROP
RENAME
TRUNCATE
DDL
Data Definition Language
COMMIT
ROLLBACK
SAVEPOINT
Gestione delle transazioni
GRANT
REVOKE
DCL
Data Control Language
2. 22/07/04 Ing. Ronchi Sergio 2
Oggetti di un DB Oracle
Tabelle: Strutture base per memorizzare i dati
Viste: Estrapolazione logica dei dati delle tabelle
Sequenze: Generatori di sequenze numeriche
Indici: Elementi utili ad aumentare la performance delle query
Sinonimi: nomi alternativi per gli oggetti
I nomi degli oggetti devono iniziare con una lettera e al massimo possono essere lunghi 30
caratteri: alcuni nomi sono riservati a oggetti di sistema Oracle o sono parole chiave. I nomi
devono essere il più possibile descrittivi del contenuto.
Oracle 9i è case insensitive (alcuni database come MySQL invece sono case sensitive)
Per usare le istruzioni CREATE bisogna avere l’autorizzazione, assegnata dal DBA tramite
istruzioni DCL, di creazione in una certa storage area. Le tabelle di un certo utente finiscono in
un dato schema del database. Ogni utente ha un suo schema le tabelle appartenenti ad uno
schema non proprio vanno precedute con il nome dello schema:
SCOTT.EMP è la tabella EMP dello schema SCOTT
3. 22/07/04 Ing. Ronchi Sergio 3
Creazione di una tabella
CREATE TABLE dept
( deptno NUMBER(2),
dname VARCHAR2(14),
loc VARCHAR2(13)
);
Una volta creata la tabella è possibile vedere il risultato dell’operazione con
DESCRIBE dept
4. 22/07/04 Ing. Ronchi Sergio 4
TIPI DI DATI ORACLE
NUMERI
•NUMBER Numeri reali Corrispondente a tipi standard DOUBLE, FLOAT
•NUMBER(38) Numeri interi, corrisponde ai tipi standard INTEGER, SMALLINT
•NUMBER(p,s) Numeri decimali di precisione p (da 1 a 38) e scala s (da –84 a +127)
corrisponde al tipo standard DECIMAL
la scala negativa consente degli arrotondamenti ad esempio
7456123,89 come NUMBER(9,-2) viene memorizzato 7456100
5. 22/07/04 Ing. Ronchi Sergio 5
TIPI DI DATI
DATA E ORA
• DATE data: formato standard YYYY-MM-DD
• TIMESTAMP(p) assume la data e l'ora dell'ultima operazione fatta sulla riga
p (da 1 a 9 di default 6) è la precisione come frazione di secondo
tale tipo può avere le seguenti due specifiche
WITH TIME ZONE
WITH LOCAL TIME ZONE
• INTERVAL (yp) YEAR TO MONTH periodo di tempo in anni e mesi.
• INTERVAL (dp) DAY TO SECOND(sp) periodo di tempo in giorni, ore, min, sec.
•
6. 22/07/04 Ing. Ronchi Sergio 6
TIPI DI DATI
STRINGHE
•CHAR stringa di dimensione fissa 1 carattere
•CHAR(size) stringa di dimensione fissa (max 2000 bytes)
•NCHAR(size) stringa di dimensione fissa (max 2000 bytes)
•VARCHAR2(size) stringa di dimensione variabile (max 4000 bytes)
•NVARCHAR2(size) stringa di dimensione variabile (max 4000 bytes) usando come
base la codifica nazionale dei caratteri (Unicode)
CHAR e VARCHAR possono avere la specifica BYTE o CHAR
STRINGHE DI GRANDI DIMENSIONI
•LONG campo di testo al massimo di 2 Gbytes
•CLOB campo di testo al massimo di 4 Gbytes
•NCLOB campo di testo al massimo di 4 Gbytes Caratteri Nazionali
7. 22/07/04 Ing. Ronchi Sergio 7
TIPI DI DATI
ALTRI TIPI DI DATI
•RAW(size) campo binario puro al massimo di 2000 bytes
•LONG RAW campo binario puro al massimo di 2 GBytes
•BLOB campo binario di 4 GByte
•BFILE file binario di 4GByte
•ROWID stringa che rappresenta l’indirizzo di una riga in una tabella in
base 64
•UROWID indirizzo logico di una riga di una tabella in base a un indice
9. 22/07/04 Ing. Ronchi Sergio 9
Constraint (Foreign key)
CREATE TABLE dept_20
(employee_id NUMBER(4) PRIMARY KEY, last_name VARCHAR2(10),
job_id VARCHAR2(9), manager_id NUMBER(4),
hire_date DATE, salary NUMBER(7,2), commission_pct
NUMBER(7,2),
department_id NUMBER(6),
CONSTRAINT fk_deptno FOREIGN KEY (department_id)
REFERENCES departments(department_id) ON DELETE CASCADE,
CONSTRAINT fk_mgr FOREIGN KEY (manager_id )
REFERENCES employees(manager_id ) ON DELETE SET NULL
);
Non precisando ON DELETE la Delete Rule sarà Restict cioè non
sarà possibile eliminare un record padre se non avendo
eliminato prima tutti i record figli.
11. 22/07/04 Ing. Ronchi Sergio 11
Creazione di una tabella tramite una query
CREATE TABLE dept_80
AS
SELECT emp_id, emp_name, salary, hire_date
FROM employees
WHERE departmet_id=80;
In questo caso viene creata una nuova tabella in base alla query, conservando i nomi
e i tipi di dati.
12. 22/07/04 Ing. Ronchi Sergio 12
DDL (data definition language)
Eliminazione e rinomina di tabelle:
DROP TABLE PRODOTTI;
DROP TABLE PRODOTTI CASCADE CONSTRAINTS;
RENAME dept TO detail_dept;
modifica
ALTER TABLE CLIENTI ADD (INDIRIZZO VARCHAR2(50));
ALTER TABLE CLIENTI DROP COLUMN DESCRIZIONE;
ALTER TABLE CLIENTI SET UNUSED (TELEFAX);
ALTER TABLE CLIENTI DROP UNUSED COLUMNS;
ALTER TABLE CLIENTI MODIFY (NOME VARCHAR(50));
Aggiunta vincoli:
ALTER TABLE CLIENTI ADD CONSTRAINT
pk PRIMARY KEY(client_ID)
Troncamento: eliminazione di tutte le righe con impaccamento dello
spazio disco
TRUNCATE TABLE detail_dept;
Commentare una tabella o un campo
COMMENT ON TABLE Employee IS ‘Informazioni Impiegati’;
13. 22/07/04 Ing. Ronchi Sergio 13
DDL (data definition language)
Modifica vincoli:
ALTER TABLE CLIENTI ADD CONSTRAINT
pk PRIMARY KEY(client_ID)
ALTER TABLE CLIENTI DROP CONSTRAINT unic_key;
ALTER TABLE CLIENTI DROP CONSTRAINT PK CASCADE;
(CASCADE permette l’eliminazione di tutti i vincoli collegati)
ALTER TABLE CLIENTI DISABLE CONSTRAINT PK
CASCADE;
ALTER TABLE CLIENTI ENABLE CONSTRAINT PK
CASCADE;
14. 22/07/04 Ing. Ronchi Sergio 14
Visualizzare le tabelle e i vincoli creati
In Oracle esistono delle viste dette “Data Dictionary” che contengono
informazioni sugli oggetti del database:
USER_TABLES
USER_CONSTRAINTS
USER_TAB_COMMENTS
USER_COL_COMMENTS
……
Su queste viste è possibile eseguire delle query di SELECT per vederne il
contenuto informativo