Tipi di Dati in SQL
10 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quale caratteristica ha il tipo di dato NUMBER(p,s) in Oracle?

  • È utilizzato solo per memorizzare date
  • Può memorizzare solo valori interi
  • Ha una lunghezza variabile
  • Ha una precisione e una scala fisse (correct)
  • Quale tipo di dato è utilizzato per memorizzare date in Oracle?

  • FLOAT
  • NUMBER
  • DATE (correct)
  • VARCHAR2
  • Quale comando è utilizzato per creare un tipo di dato personalizzato in Oracle?

  • CREATE TABLE
  • CREATE TYPE (correct)
  • CREATE INDEX
  • CREATE VIEW
  • Quale differenza c'è tra il tipo di dato FLOAT e NUMBER?

    <p>FLOAT è utilizzato per memorizzare valori decimali, mentre NUMBER è utilizzato per memorizzare valori interi</p> Signup and view all the answers

    Quale tipo di dato è utilizzato per memorizzare stringhe a lunghezza variabile in Oracle?

    <p>VARCHAR2</p> Signup and view all the answers

    Quale tipo di problema può verificarsi in una transazione se non viene utilizzato il livello di isolamento SERIALIZABLE?

    <p>Non-repeatable read e phantom row</p> Signup and view all the answers

    Cosa accade se una transazione abortisce a causa di una deadlock?

    <p>Nessuna perdita di dati</p> Signup and view all the answers

    Quale livello di isolamento garantisce che le query leggano solo dati committed?

    <p>READ COMMITTED</p> Signup and view all the answers

    Cosa è il phantom row?

    <p>Un problema di inserimento di nuove righe in una tabella</p> Signup and view all the answers

    Quale comando viene utilizzato per cambiare il livello di isolamento di una transazione?

    <p>SET TRANSACTION ISOLATION LEVEL SERIALIZABLE</p> Signup and view all the answers

    Study Notes

    Tipi di dati in SQL

    • I tipi di dati sono essenziali in SQL perché ogni valore deve essere associato a un tipo di dato che ne specifica le caratteristiche.

    Tipo di dato DATE

    • Il tipo di dato DATE memorizza le informazioni relative a data e orario fino al secondo.
    • Se l'orario non viene specificato, il default è 12:00:00 AM.
    • Se la data non viene specificata, il default è SYSDATE (la data corrente).
    • Il formato standard utilizzato per la data è specificato nella variabile di sistema NLS_DATE_FORMAT.

    Funzioni per la gestione di valori di tipo DATE

    • TO_DATE(stringa[,formato]): converte un campo di testo (CHAR o VARCHAR2) contenente una data espressa nel formato formato in un dato di tipo DATE.
    • TO_CHAR(data[,formato]): converte un campo data contenente una data espressa nel formato formato in una stringa di tipo VARCHAR2.
    • SYSDATE: restituisce la data corrente.

    Conversioni di tipi

    • Una espressione ORACLE deve essere svolta su operatori con lo stesso tipo di dato.
    • Nel caso in cui i tipi di dati siano diversi, è necessario effettuare una conversione che può essere implicita o esplicita.
    • Conversioni implicite: effettuate automaticamente da Oracle in certi casi, come ad esempio nelle operazioni di INSERT e UPDATE.
    • Conversioni esplicite: TO_DATE, TO_NUMBER, TO_CHAR.

    SQL Data Definition Language

    • La porzione di SQL che permette la creazione/eliminazione degli oggetti dello schema.
    • Creazione di tabelle: CREATE TABLE con PRIMARY KEY e FOREIGN KEY.
    • Eliminazione di tabelle: DROP TABLE.
    • Creazione di sequenze: CREATE SEQUENCE con START WITH e INCREMENT BY.

    Utilizzo di sequenze

    • nomesequenza.NEXTVAL: utilizzato per ottenere il prossimo valore di una sequenza.
    • nomesequenza.EXP_FULL_DATABASE: utilizzato per importare ed esportare database.
    • GATHER_SYSTEM_STATISTICS: utilizzato per aggiornare le statistiche di sistema.

    Tipi di dati built-in

    • CHAR(size): stringa a lunghezza fissa definita da size < 2000.
    • VARCHAR2(size): stringa a lunghezza variabile definita da size < 4000.
    • NUMBER(p,s): a virgola fissa con scale cifre decimali e precision-scale cifre intere.
    • FLOAT(p): p indica il numero di cifre binarie significative.
    • DATE: utilizzato per memorizzare le informazioni relative a data e orario.
    • ROWID: stringa esadecimale che contiene l'indirizzo univoco di una tupla all'interno di una tabella.

    Problemi di Concorrenza tra Transazioni

    • Il problema del Phantom Row si presenta quando una transazione inserisce o cancella tuple che un'altra transazione dovrebbe logicamente considerare
    • Il Phantom Row è un caso particolare di Dirty Read
    • Un esempio di Phantom Row è la tupla t4 che non viene vista da T1

    Dirty Read e Cascading Abort

    • Il problema del Dirty Read si verifica quando una transazione legge dati scritti da un'altra transazione non ancora conclusa
    • Il Recovery Manager deve eliminare gli effetti delle transazioni che hanno eseguito "dirty read"
    • Il fenomeno detto cascading abort si verifica quando una transazione fallisce e le transazioni che hanno letto i suoi dati anche loro falliscono

    Strict 2PL: No Dirty Read

    • In questo caso l'esecuzione corretta richiede che T2 aspetti la terminazione di T1 prima di poter leggere il valore di X
    • T2 viene messa in attesa finché T1 non ha terminato di lavorare sul valore di X

    Strict 2PL: Repeatable Read

    • Anche in questo caso T2 viene messa in attesa, e T1 ha quindi la garanzia di poter leggere sempre lo stesso valore di X
    • T1 legge sempre lo stesso valore di X perché T2 non può leggere il valore di X finché T1 non ha terminato di lavorare su di esso

    Assenza di Phantom Row

    • Il problema dell'assenza di Phantom Row è il più difficile da risolvere
    • Non possono presentarsi né non-repeatable read né phantom row
    • Il comando SQL per cambiare il livello di isolamento è: SET TRANSACTION ISOLATION LEVEL SERIALIZABLE | READ COMMITTED

    Livello di isolamento Read Committed

    • Non sono possibili dirty read poiché le query leggono solo dati committed
    • Sono possibili non-repeatable read e phantom row perché le query di una stessa transazione possono leggere diverse versioni dello stesso dato in istanti diversi

    Protezione da Guasti

    • L'atomicity e la durability sono fondamentali per la gestione delle transazioni
    • I tipi di malfunzionamenti sono essenzialmente 3:
      • Transaction failure: è il caso in cui una transazione abortisce
      • Deadlock: è il caso in cui due o più transazioni si bloccano a vicenda
      • Guasti hardware: è il caso in cui un guasto hardware impedisce il corretto funzionamento delle transazioni

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Description

    Scopri i tipi di dati in SQL, inclusi il tipo di dato DATE che memorizza informazioni relative a data e orario.

    More Like This

    SQL Data Types Quiz
    47 questions

    SQL Data Types Quiz

    CapableAmethyst avatar
    CapableAmethyst
    SQL Data Types Quiz
    47 questions

    SQL Data Types Quiz

    CapableAmethyst avatar
    CapableAmethyst
    SQL Basics and Data Types
    8 questions
    SQL Data Definition and Data Types
    22 questions
    Use Quizgecko on...
    Browser
    Browser