relacionais e sql sistemas de bancos de dados de bancos de da… · sql dml: linguagem de...

34
Sistemas de Bancos de Dados Relacionais e SQL Professor: André Avelino da Silva Neto FCT Faculdade de Computação e Telecomunicações

Upload: others

Post on 13-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

Sistemas de Bancos de Dados Relacionais e SQL

Professor: André Avelino da Silva Neto

FCTFaculdade de Computação e Telecomunicações

Page 2: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

Conteúdo1. Introdução;

2. Sistemas de banco de dados relacionais;

3. SQL:a. Operações DDL;b. Operações DML;

4. Considerações finais.

Page 3: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

Introdução● Banco de dados: coleção de dados relacionados:

○ Registro de dados persistentes para determinado sistema de informações;

● SGBD: Sistema Gerenciador de Banco de Dados:○ Software responsável pela definição, armazenamento, manipulação e

compartilhamento dos dados

Page 4: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

Introdução

Page 5: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

Introdução● Projeto de banco dados:

○ Identificar e implementar um modelo consistente com os requisitos do sistema.

■ Modelo Conceitual■ Modelo Lógico■ Modelo Físico

Page 6: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

Sistemas de Banco de dados Relacionais● Baseados no uso de tabelas (relações):

○ Para muitos autores um padrão para utilização de banco de dados.

Page 7: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

Sistemas de Banco de dados Relacionais● Tabela: definição sobre a qual deseja-se armazenar dados.

Aluno

Disciplina

Page 8: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

Sistemas de Banco de dados Relacionais● Tabela: definição sobre a qual deseja-se armazenar dados:

○ Atributos → Colunas.

Matrícula Nome Nascimento Sexo

Aluno

Page 9: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

Sistemas de Banco de dados Relacionais● Tabela: definição sobre a qual deseja-se armazenar dados:

○ Registros → Linhas.

Matrícula Nome Idade Sexo

21477 João S. 19 M

21478 Gizelly M 23 F

21478 Aline P. 25 F

Aluno

Page 10: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

Sistemas de Banco de dados Relacionais● Tabela: definição sobre a qual deseja-se armazenar dados:

○ Chave primária (PK) → Atributo que identifica unicamente registro.

Matrícula Nome Idade Sexo

21477 João S. 19 M

21478 Gizelly M 23 F

21478 Aline P. 25 F

Aluno

Page 11: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

Sistemas de Banco de dados Relacionais● Tabela: definição sobre a qual deseja-se armazenar dados:

○ Chave estrangeira (FK) → Referencia outra tabela.

Matrícula Nome Idade Sexo

21477 João S. 19 M

21478 Gizelly M 23 F

21479 Aline P. 25 F

Aluno

Matricula_aluno

Cod_disciplina

21478 12

21479 14

Disciplina Aluno

Page 12: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● Structured Query Language: linguagem padrão para

manipulação de SGBD relacionais comerciais:○ Conjunto de comandos e cláusulas específicos:

■ DDL;■ DML.

Page 13: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DDL: Linguagem de Definição de Dados:

○ Trata das definições e gerenciamento das tabelas:

Page 14: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DDL: Linguagem de Definição de Dados:

○ Trata das definições e gerenciamento das tabelas:■ Criação de tabelas

CREATE TABLE nome_tabela (atributo1 domínio() contraints,atributo2 domínio() contraints,atributo3 domínio() contraints,…

);

Page 15: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DDL: Linguagem de Definição de Dados:

○ Trata das definições e gerenciamento das tabelas:■ Criação de tabelas

➔ Atributos:◆ Nome do atributo◆ Domínio: conjunto de dados aceitáveis

● Integer, Varchar, date◆ Restrição de integridade: NULL / NOT NULL◆ Outras limitações

● UNIQUE, INDEX, PRIMARY KEY, FOREIGN KEY, DEFAULT

Page 16: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DDL: Linguagem de Definição de Dados:

○ Trata das definições e gerenciamento das tabelas:■ Alteração de tabelas

ALTER TABLE nome_tabela ADD atributo1 domínio() contraints;

ALTER TABLE nome_tabela DROP COLUMN atributo1;

ALTER TABLE nome_tabela ALTER/MODIFY COLUMN atributo1 domínio() contraints;

Page 17: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DDL: Linguagem de Definição de Dados:

○ Trata das definições e gerenciamento das tabelas:■ Exclusão de tabelas

DROP TABLE nome_tabela;

TRUNCATE TABLE nome_tabela;

Page 18: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.

Page 19: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.■ Inserção de dados

INSERT INTO nome_tabela (atributo1, atributo2, atributo3)

VALUES (valor1, valor2, valor3);

Importante que a inserção respeite a definição da tabela!

Page 20: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.■ Atualização de dados

UPDATE nome_tabelaSET atributo1 = valor1, atributo2 = valor2)WHERE condições;

Page 21: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.■ Exclusão de dados

DELETE FROM nome_tabela WHERE condições;

Page 22: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)

SELECT _______ FROM nome_tabela WHERE condições;

Page 23: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)

● Cláusula SELECT:○ Retorna uma tabela com o resultado○ Resultado: organizado de acordo com os atributos definidos.

Page 24: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)

SELECT atributo1, atributo2 FROM nome_tabela WHERE condições;

Page 25: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)

● Cláusula SELECT:○ Retorna uma tabela com o resultado○ Resultado: organizado de acordo com os atributos definidos○ Valores aceitos:

■ * → Todos os atributos das tabelas consultadas;■ COUNT() → Total de registros de determinado atributo;■ DISTINCT() → Retorna somente registros cujo determinado valor seja único;■ MAX() → Retorna valor máximo de determinado atributo;■ MIN() → Retorna valor mínimo de determinado atributo;

Page 26: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)

● Cláusula FROM:○ Indica a tabela (ou tabelas) que serão consultadas;○ Delimita universo de atributos possíveis para retorno e definição de condições

Page 27: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)

SELECT t1.atributo1, t2.atributo2 FROM nome_tabela1 AS t1, nome_tabela2 AS t2 WHERE condições;

Page 28: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)

● Cláusula WHERE:○ Realiza filtragem dos dados para o resultado;○ Aceita operadores lógicos: AND, OR, NOT;○ Aceita operadores de comparação: =, >=, <=, <>○ Utilizado também nas operações de Exclusão e Atualização de dados

Page 29: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)

SELECT * FROM Aluno WHERE Sexo = ‘M’;

SELECT nome, matricula FROM Aluno WHERE Idade >= 22 AND Idade <= 30;

Page 30: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)

● Cláusula WHERE:○ Realiza filtragem dos dados para o resultado;○ Aceita operadores lógicos: AND, OR, NOT;○ Aceita operadores de comparação: =, >=, <=, <>○ Utilizado também nas operações de Exclusão e Atualização de dados○ Outros operadores:

■ LIKE (%, _) / BETWEEN / IN

Page 31: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)

● Outras cláusulas, declarações e palavras-chave:○ ORDER BY … ASC|DESC

SELECT * FROM Alunos ORDER BY Idade DESC;

Page 32: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)

● Outras cláusulas, declarações e palavras-chave:○ JOIN → Combina duas ou mais tabelas de acordo com uma relação

SELECT * FROM Alunos JOIN DisciplinaAluno ON Alunos.Matricula;

Page 33: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

SQL● DML: Linguagem de Manipulação de Dados:

○ Trata da manipulação dos registros no Banco de Dados.■ Seleção de dados (consulta)

● Outras cláusulas, declarações e palavras-chave:○ GROUP BY → Agrupa linhas com o mesmo valor para determinado atributo (geralmente

utilizado para contagens)

SELECT COUNT(matricula), Nome FROM Alunos GROUP BY Idade;

Page 34: Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de Manipulação de Dados: Trata da manipulação dos registros no Banco de Dados. Inserção

Considerações Finais● Sistemas de bancos de dados relacionais exigem gerenciamento de uma

quantidade cada vez maior de dados;

● Evidencia a necessidade de conhecer e dominar tecnologias de utilização;

● SQL → ferramenta extremamente ampla que permite consultas complexas;

● Conhecimento adequado permite definições de dados consistentes e consultas mais eficientes.