José Adriano Adriano@ipb.pt Página 1
Sumário 5. A Linguagem SQL 5.1 Comandos DDL 5.2 Comandos DML 5. A Linguagem SQL A linguagem SQL apresenta duas variantes, DDL Data Definition Language e DML Data Manupulation Language. Este tipo de linguagem, unicamente destinada ao tratamento de dados armazenados num esquema de base de dados, apoia-se nos conceitos da álgebra, mais propriamente na teoria dos conjuntos. Álgebra Relacional Qualquer tabela de dados não é mais do que um conjunto, que poderá sujeitar-se a uma série de operações algébricas tais como: o Projecção o Selecção o Produto cartesiano o União o Junção o Diferença As operações de álgebra relacional constituem os mecanismos básicos que permitem o tratamento e a extracção de dados de uma BD José Adriano Adriano@ipb.pt Página 2
A implementação física das operações de álgebra no contexto dos modelos de dados relacionais é conseguida por intermédio da linguagem SQL Structured Query Language José Adriano Adriano@ipb.pt Página 3
José Adriano Adriano@ipb.pt Página 4
José Adriano Adriano@ipb.pt Página 5
José Adriano Adriano@ipb.pt Página 6
José Adriano Adriano@ipb.pt Página 7
José Adriano Adriano@ipb.pt Página 8
José Adriano Adriano@ipb.pt Página 9
José Adriano Adriano@ipb.pt Página 10
Exercício de Álgebra Relacional Seja A = (a1, a2, a3) e a1 Pk.A B = ( b1, b2, b3, a1, c1) e b1 Pk.B a1 Fk.A c1 Fk.C C = (c1, c2, c3) e c1 Pk.C Com os seguintes conteúdos: A1 A2 A3 B1 B2 B3 A1 C1 C1 C2 C3 a11 a21 a31 b11 b21 b31 a11 c11 c11 c21 c31 a12 a22 a32 b12 b22 b32 a11 c12 c12 c22 c32 a13 a23 a33 b13 b23 b33 a12 c13 c23 c33 b14 b24 b34 José Adriano Adriano@ipb.pt Página 11
Pede-se: 1. Desenhe o diagrama E-R correspondente 2. Escreva uma script SQL que permita conhecer os registos de A que não têm correspondência em B. Desenhe a respectiva tabela resultado. 3. Escreva uma script SQL que permita conhecer os registos de C que não têm correspondência em B Desenhe a respectiva tabela resultado. 4. Escreva uma script SQL que permita conhecer apenas os registos de A, que têm correspondência em B. Desenhe a respectiva tabela resultado. 5. Escreva uma script SQL que permita conhecer os registos de A que têm correspondência em C Desenhe a respectiva tabela resultado. 6. Escreva uma script SQL que permita conhecer a totalidade dos conteúdos existente em A1, B1 e C1 Desenhe a respectiva tabela resultado. José Adriano Adriano@ipb.pt Página 12
5.1 Comandos DDL Linguagem de Definição de Dados : Conjunto de comandos utilizados para implementar o esquema de uma base de dados; O resultado dos comandos DDL, resultam numa série de tabelas que constituem a base de dados; As tabelas resultantes da compilação dos comandos DDL são armazenadas num arquivo especial denominado Dicionário de Dados ; Acções Standard DDL: Criação Tabelas; Inserção conteúdos; Remoção de tabelas. Exemplo da estrutura DDL: CREATE TABLE Nome_da_Tabela (Campo_1 Tipo, Campo_2 Tipo); DROP TABLE Nome_da_Tabela; José Adriano Adriano@ipb.pt Página 13
5.2 DML Linguagem de Manipulação de Dados As linguagens do Tipo DML tem por objectivo permitirem a consulta e a actualização dos conteúdos da base de dados. Existem dois tipos de Linguagens DML: DML Procedimentais: Requerem especificações relacionadas com os dados a aceder e a forma de acesso; Típicas do Modelo Hierárquico e em Rede. DML Não Procedimentais: Requerem apenas especificações relacionadas com os dados a aceder; Actuam sobre os conteúdos das tabelas, produzindo novas tabelas; Típicas do Modelo Relacional. Tipos de linguagens DML: Linguagens hospedeiras: C, Cobol, Pascal, etc; Linguagens de Interrogação: Query SQL Exemplo da estrutura DML: SELECT <Lista de campos> FROM <lista das tabelas> WHERE <Operação algébrica>; José Adriano Adriano@ipb.pt Página 14