Algoritmos de manipulação de estruturas elementares de dados
Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de...
Transcript of Relacionais e SQL Sistemas de Bancos de Dados de Bancos de Da… · SQL DML: Linguagem de...
Sistemas de Bancos de Dados Relacionais e SQL
Professor: André Avelino da Silva Neto
FCTFaculdade de Computação e Telecomunicações
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.
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
Introduçã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
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.
Sistemas de Banco de dados Relacionais● Tabela: definição sobre a qual deseja-se armazenar dados.
Aluno
Disciplina
Sistemas de Banco de dados Relacionais● Tabela: definição sobre a qual deseja-se armazenar dados:
○ Atributos → Colunas.
Matrícula Nome Nascimento Sexo
Aluno
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
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
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
SQL● Structured Query Language: linguagem padrão para
manipulação de SGBD relacionais comerciais:○ Conjunto de comandos e cláusulas específicos:
■ DDL;■ DML.
SQL● DDL: Linguagem de Definição de Dados:
○ Trata das definições e gerenciamento das tabelas:
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,…
);
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
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;
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;
SQL● DML: Linguagem de Manipulação de Dados:
○ Trata da manipulação dos registros no Banco de Dados.
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!
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;
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;
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;
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.
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;
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;
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
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;
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
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;
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
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;
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;
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;
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.