37
Linguagem SQL - ORACLE

Linguagem SQL

Embed Size (px)

Citation preview

  • Linguagem SQL - ORACLE

  • SQLDenominao:Structured Query Language (SQL)Definio: uma linguagem utilizada para a definio, manipulao e controle de um Banco de Dados Relacional e que incorpora os princpios da lgebra Relacional.

  • SQLSQL INTERATIVALinguagem de Definio de Dados (LDD/DDL)Linguagem de Manipulao de Dados (LMD/DML)Linguagem de Controle de Dados (LCD/DCL)SQL PROGRAMADA (EMBUTIDA)

  • SQLSQL INTERATIVALinguagem de Definio de Dados (LDD/DDL)Linguagem de Manipulao de Dados (LMD/DML)Linguagem de Controle de Dados (LCD/DCL)SQL PROGRAMADA (EMBUTIDA)

  • Linguagem de Definio de Dados (LDD/DDL)Propsito: Representar o aspecto estrutural do mundo real.Comandos para definio de TabelasCREATE TABLEALTER TABLEDROP TABLEComandos para definio de ndicesCREATE INDEXDROP INDEXComandos para definio de VisesCREATE VIEWDROP VIEW

  • Linguagem de Manipulao de Dados (LMD/DML)Propsito: Representar o aspecto comportamental do mundo real.Comandos para recuperao de dadosSELECTUNIONComandos para atualizao de dadosINSERTUPDATEDELETE

  • Linguagem de Controle de Dados (LCD/DCL)Propsito: representar as restries de integridade, as restries de segurana, ...Comandos para controle de segurana de dadosGRANTREVOKEComandos para controle de integridadeCREATE TRIGGERCREATE STORED PROCEDUREComandos para controle de transaesBEGIN TRANSACTIONEND TRANSACTIONCOMITTROLLBACK

  • Linguagem de Definio de Dados (LDD/DDL)

  • Linguagem de Definio de Dados (LDD/DDL)

  • Estrutura do Banco de Dados ORACLEA Estrutura de um Banco de Dados ORACLE pode ser definida em termos de Estrutura Lgica:Tabela; ee Viso.e Estrutura Fsica:de Armazenamento :Data Base;Table Space;Arquivo Fsico do Sistema Operacional - bits e bytes armazenados em disco.De Acesso:ndice (Index).De Armazenamento e de Acesso:Cluster;

  • Estrutura do Banco de Dados ORACLE

    Independncia de Dados:A Estrutura Lgica de um Banco de Dados ORACLE independente da Estrutura Fsica.FLEXIBILIDADESIMPLICIDADE

  • TABELA

  • TABELAUma Tabela ou Relao possui:um nmero finito (fixo) de colunas (atributos, campos).um nmero infinito (varivel) de linhas (tuplas, registros).uma interseo de uma linha com uma coluna armazena um valor (dado) e esse valor deve ser atmico (no pode ser decomposto).Uma Tabela pode implementar uma ou mais Entidades-Tipo, um ou mais Relacionamentos-Tipo, com seus respectivos Atributos.As colunas de uma Tabela implementam os Atributos das Estidades-Tipo ou dos Relacionamentos-Tipo.Cada coluna deve ter um Tipo-de-Dado especfico.

  • TABELACREATE TABLE nome_da_tabela( nome_da_coluna_1 tipo_de_dado (tamanho) [DEFAULT valor] [restries de coluna], nome_da_coluna_2 tipo_de_dado (tamanho) [DEFAULT valor] [restries de coluna], nome_da_coluna_3 tipo_de_dado (tamanho) [DEFAULT valor] [restries de coluna],... nome_da_coluna_n tipo_de_dado (tamanho) [DEFAULT valor] [restries de coluna],[restries de tabela]);

  • VISO

  • VISOViso (VIEW) um mecanismo (mscara) que permite enchergar as Tabelas de Banco de Dados segundo diferentes pontos de vista.Uma viso uma tabela virtual, no sentido de que no possuem dados armazenados ao passo que as tabelas reais (tabelas base) possuem.

  • VISOLimitaesImpossibilidade de realizao de operaes de atualizao quando a viso utiliza:GROUP BYUNIONou quando na viso no existe a chave primria da(s) respectiva(s) tabela(s).

  • VISOCREATE VIEW nome_da_viso[(nome_da_coluna_1, nome_da_coluna_2, ... nome_da_coluna_n )]AS sub_query;

    sub_query = comando SELECT ... FROM ... WHERE

  • DATABASE

  • DATABASECREATE DATABASE nome_do_banco_de_dadosDATAFILE especificao_do_data_fileMAXDATAFILES parmetroLOG FILE especificao_do_log_fileMAXLOG FILE parmetroMAXLOGMEMBERS parmetroCHARACTER SET especificao_do_character_set;

  • DATABASEDATAFILE: especifica o(s) arquivo(s) de dados inicial(is) para o TABLESPACE SYSTEM (Dicionrio de Dados) do Banco de Dados.MAXDATAFILES:determina o nmero mximo de Arquivos de Dados que podem ser alocados para o Banco de Dados.LOG FILE:especifica os grupos e membros de LOG DE TRANSAES, iniciais, do Banco de Dados.MAXLOG FILE:determina o nmero mximo de GRUPOS DE LOG para o Banco de Dados.MAXLOGMEMBERS:determina o nmero mximo de MEMBROS para cada GRUPO DE LOG.CHARACTER SETespecifica o conjunto de caracteres que o ORACLE utilizar para armazenar os Dados no Banco de Dados.

  • TABLE SPACE

  • TABLE SPACEUm Table Space define uma rea alocada para as Estruturas de Armazenamento (Tabela e Cluster) e Estruturas de Acesso (Index).Cada Table Space corresponde a um ou mais Arquivos Fsicos do Sistema Operacional.

  • TABLE SPACE

    ARQUIVOFSICO 1

    TABLE SPACE 1

    BANCO DE DADOSTABLE SPACE 2

    TABLE SPACE n

    ARQUIVOFSICO 1ARQUIVOFSICO 2ARQUIVOFSICO 4ARQUIVOFSICO 5ARQUIVOFSICO 3ARQUIVOFSICO n-1ARQUIVOFSICO n

  • TABLE SPACETodo Banco de Dados ORACLE tem pelo menus um Table Space, o SYSTEM.O ORACLE utiliza o Table Space SYSTEM para armazenar o Dicionrio de Dados.O Dicionrio de Dados um conjunto de Tabelas internas ao SGBD que garda todas as informaes sobre a Estrutura e o Comportamento do Banco de Dados.

  • TABLE SPACE SYSTEM

    TABLE SPACE 1 (SYSTEM) - DICIONRIO DE DADOS

    TABELA DETABLE SPACETABELA DEARQUIVOSFSICOSTABELA DETABELASTABELA DECOLUNASTABELA DECLUSTER

  • TABLE SPACE SYSTEMCREATE TABLESPACE nome_do_table_spaceDATAFILE nome_do_arquivo_fsico;

  • CLUSTER

  • CLUSTERDEFINIO:Mecanismo que permite, com algumas restries, reunir fisicamente Linhas de Tabelas relacionadas, visando melhorar a performance no acesso a essas Linhas.

  • CLUSTER

    001 | DISQUETE 3 1/2001 | 05/03/96 | E105 | 10001 | 05/03/96 | E225 | 5001 | 06/03/96 | E005 | 20001 | 01/03/96 | F054 | NF05432 | 100001 | 01/02/96 | F0235 | NF00434 | 50REGISTRO FSICO

    PGINA

    BLOCO

  • CLUSTER

    ARQUIVO FSICO

    TABELA 1TABELA 2TABELA nTABELA 3

  • CLUSTER

    ENTIDADETIPO 1ENTIDADETIPO nENTIDADETIPO 3ENTIDADETIPO 2

  • CLUSTERCREATE CLUSTER NOME_CLUSTER (CHAVE_CLUSTER TIPO_DADO(TAMANHO));

    CREATE TABLE NOME_TABELA_1(DEFINIO DAS COLUNAS E RESTRIES DE INTEGRIDADE)CLUSTER NOME_CLUSTER(CHAVE_CLUSTER)

    CREATE TABLE NOME_TABELA_2(DEFINIO DAS COLUNAS E RESTRIES DE INTEGRIDADE)CLUSTER NOME_CLUSTER(CHAVE_CLUSTER)

    ...

  • NDICE

  • NDICEDEFINIO:Mecanismo utilizado para localizar com rapidez Linhas de uma Tabela.

  • NDICEUm ndice no ORACLE uma rvore Ordenada de Blocos de Dados, ou Ns.

    51143362735 - A.001.0110 - A.001.1210 - A.001.14141831334043515859737486626772SELECT * FROM PESSOAWHERE IDADE = 10;

  • NDICECREATE [UNIQUE] INDEX NOME_DO_NDICEON NOME_DA_TABELA( NOME DA COLUNA1 [ORDER], NOME DA COLUNA2 [ORDER], ... NOME DA COLUNAn [ORDER]);

    ORDER = { ASC, DESC }