Este documento apresenta os principais conceitos de bancos de dados relacionais e o Sistema Gerenciador de Banco de Dados (SGBD) SQL. Ele discute a modelagem de dados, tipos de chaves e dados, e fornece exemplos dos principais comandos SQL como CREATE DATABASE, CREATE TABLE, ALTER TABLE e DROP TABLE. O documento visa ensinar os fundamentos teóricos e práticos de bancos de dados relacionais e SGBDs para estudantes.
Aula 04 - Injeção de código (Cross-Site Scripting)
SGBD SQL Aula
1. Banco de dados: teoria, organização e comandos de umBanco de dados: teoria, organização e comandos de um
SGBD relacionalSGBD relacional
Prof. Alex Camargo
alexcamargoweb@gmail.com
UNIVERSIDADE FEDERAL DO PAMPA
CURSO DE ENGENHARIA DE COMPUTAÇÃO
DISCIPLINA DE ENGENHARIA DE SOFTWARE
AULA 01 DE 02
Maio/2018
2. 2
I. Organização da aula
Esta aula está organizada da seguinte maneira:
Conceitos gerais de SGBDs
Modelagem de dados relacional
Linguagem SQL
Exercícios
Referências
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
3. 3
II. Apresentação do professor
Formação acadêmica:
Bacharel em Sistemas de Informação (URCAMP, 2011)
TCC: Web sistema integrado a uma rede social para
academias de ginástica.
Orientador: Prof. Abner Guedes
Especialista em Sistemas Distribuídos com Ênfase em
Banco de Dados (UNIPAMPA, 2013)
TCC: Interligando bases de dados do sistema Controle de
Marcas e Sinais utilizando o MySQL Cluster.
Orientador: Prof. Érico Amaral
Coorientador: Prof. Rafael Bastos (IDEAU)
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
4. 4
II. Apresentação do professor
Formação acadêmica:
Mestre em Engenharia de Computação (FURG, 2017)
Dissertação: EN-MUTATE: predição do impacto de mutações
pontuais em proteínas utilizando Ensemble Learning.
Orientadora: Profa. Karina Machado
Coorientador: Prof. Adriano Werhli
Doutorando em Ciência da Computação (UFPEL)
Tese: Em definição.
Orientador: Aluno especial
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
5. 5
II. Apresentação do professor
Principais projetos acadêmicos:
Bioinformática Estrutural de Proteínas: modelos,
algoritmos e aplicações biotecnológicas.
Universidade: FURG/UFMG/UFPB
Área: Bioinformática
Algo+: um portal para o apoio ao ensino de Algoritmos.
Universidade: UNIPAMPA
Área: Informática na educação
Revisor do periódicos ICCEEg (ISSN 2236-0093) e CCEI
(ISSN 2356-6635)
Universidades: FURG/URCAMP
Área: Multidisciplinar
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
6. 6
II. Apresentação do professor
Principal atividade profissional:
Sócio-proprietário da APUS Digital.
Projeto: Aplicativo Gás Connect
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
7. 7
II. Apresentação do professor
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
8. 8
II. Apresentação do professor
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
9. 9
II. Apresentação do professor
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
10. 10
III. Objetivos da aula
Dentre os principais objetivos, podem ser elencados:
Apresentar a teoria concernente a SGBDs, tabelas e seus
relacionamentos.
Executar instruções DDL (definição de dados) na linguagem
SQL.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
11. 11
1. CONCEITOS GERAIS DE SGBDs
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
12. 12
1.1 Introdução
Um Banco de Dados (BD, em inglês DB, database) são conjuntos de
dados com uma estrutura regular que tem como objetivo organizar
uma informação.
Normalmente agrupa informações utilizadas para um mesmo
fim.
Podem ser organizados em diferentes arquiteturas.
Se tornou um dos principais componentes dos sistemas de
informação.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
13. 13
1.2 O modelo relacional
O modelo relacional é uma teoria matemática criada por Edgar
Frank Codd em 1970 para descrever como as bases de dados
deveriam funcionar.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Modelo Conceitual versus Modelo Relacional
14. 14
1.2 O modelo relacional
De acordo com o Princípio de Informação, toda informação tem de
ser representada como dados; qualquer tipo de atributo representa
relações entre conjuntos de dados.
A estrutura fundamental do modelo relacional são as tabelas.
Uma tabela é constituída por um ou mais atributos (colunas)
que traduzem o tipo de dado a armazenar.
Cada instância (linha) é chamada de tupla (registro).
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
15. 15
1.2 O modelo relacional
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Exemplos de tabelas sob o modelo relacional.
16. 16
1.3 SGBDs
Um banco de dados informatizado é usualmente mantido e
acessado por meio de um software conhecido como Sistema
Gerenciador de Banco de Dados (SGBD).
SGBDs: programas que permitem ao usuário definir, construir
e manipular bases de dados.
Muitas vezes o termo banco de dados é usado como sinônimo
de SGDB (afirmativa errada).
Os SGBDs estão disponíveis em diferentes tipos:
relacionais, orientados a objetos, objeto relacional, etc.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
17. 17
1.3 SGBDs
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Exemplos de SGBDs.
18. 18
1.4 Arquiteturas tradicionais
Alguns aspectos relevantes devem ser considerados para atingir
eficiência e eficácia nos sistemas desenvolvidos, a fim de atender
usuários nos mais variados domínios de aplicação.
Centralizados
Cliente-servidor
Paralelos
Distribuídos
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
19. 19
2. MODELAGEM DE DADOS RELACIONAL
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
20. 20
2.1 Introdução
Para que seja possível implementar de forma correta um BD
utilizando algum SGBD, é preciso realizar a modelagem dos dados
basicamente em 3 etapas:
1. Entendimento do problema;
2. Construção do modelo ER (entidade e relacionamento);
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
21. 21
2.1 Introdução
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Diagrama ER (Cliente x Telefone).
22. 22
2.1 Introdução
Para que seja possível implementar de forma correta um BD
utilizando algum SGBD, é preciso realizar a modelagem dos dados
basicamente em 3 etapas:
1. Entendimento do problema;
2. Construção do modelo ER (entidade e relacionamento);
3. Implementação (SGBD).
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
23. 23
2.1 Introdução
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Diagrama Relacional.
24. 24
2.2 Tipos de chaves
No modelo relacional íntegro a única forma de relacionar dados que
existem em uma tabela com dados que existem em outra tabela é
através de atributos comuns.
Chave primária (Primary key - PK): uma coluna ou um
grupo de colunas que assegura a unicidade das linhas dentro
de uma tabela.
Chave estrangeira (Foreign key - FK): estabelece a
restrição de integridade referencial entre duas tabelas.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
25. 25
2.2 Tipos de chaves
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Diagrama Relacional com destaque para chave primária (PK) e estrangeira (FK)
PK
FK
26. 26
2.3 Tipos de dados
Em SGBDs*, cada campo (coluna) de uma tabela deverá possuir
um nome e um tipo de dado
CHAR(n): aceita qualquer valor. O texto tem comprimento fixo.
Ex.: `Cpf` CHAR(14)
VARCHAR(n): aceita qualquer valor. O texto é de comprimento
variável.
Ex.: `Nome` VARCHAR(50)
TEXT: aceita qualquer valor. O texto é de comprimento
variável em cada configuração de SGBD.
Ex.: `Observacoes` TEXT
INT: aceita valores numéricos inteiros.
Ex.: `QuantidadeFilhos` INT
* principais tipos de dados do SGBD MySQL¹
27. 27
2.3 Tipos de dados
Em SGBDs*, cada campo (coluna) de uma tabela deverá possuir
um nome e um tipo de dado.
FLOAT: número de ponto flutuante de precisão simples.
Ex.: `Peso` FLOAT
DATE: armazena valores de data.
Ex.: `DataNascimento` DATE
TIME: armazena valores de hora.
Ex.: `Chegada` TIME
* principais tipos de dados do SGBD MySQL¹
28. 28
3. LINGUAGEM SQL
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
29. 29
3.1 Introdução
Structured Query Language (SQL) é a linguagem padrão dos
os bancos de dados relacionais. Seus comandos são divididos em:
DDL (Data Definition Language): destinada a criação do
banco de dados, tabelas, além das relações existentes.
Ex.: CREATE, ALTER e DROP.
DML (Data Manipulation Language): destinados a
consultas, inserções, exclusões e alterações em um ou mais
registros de uma ou mais tabelas.
Ex.: SELECT, INSERT, UPDATE e DELETE.
DCL (Data Control Language): dispõe de comandos de
controle.
Ex.: GRANTE e REVOKE.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
30. 30
3.2 Comando CREATE DATABASE
Utilizado para criar um novo banco de dados.
CREATE DATABASE Nome_do_Banco;
Exibe os bancos de dados:
SHOW DATABASES;
Seleciona um banco de dados:
USE Nome_do_Banco;
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
31. 31
3.2. Comando CREATE DATABASE
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Comando CREATE DATABASE.
32. 32
3.3 Comando DROP DATABASE/SCHEMA
Utilizado para excluir um banco de dados.
DROP SCHEMA Nome_do_Banco;
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
33. 33
3.3. Comando DROP DATABASE/SCHEMA
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Comando DROP DATABASE/SCHEMA.
34. 34
3.4 Comando CREATE TABLE
Utilizado para criar uma nova tabela.
CREATE TABLE Nome_da_Tabela (
Atributo1 Tipo,
Atributo2 Tipo,
AtributoN Tipo,
PRIMARY KEY (Atributo1)
);
Exibe as tabelas de um determinado banco de dados.
SHOW TABLES;
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
35. 35
3.4. Comando CREATE TABLE
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Comando CREATE TABLE.
36. 36
3.5 Comando CREATE TABLE (com FK)
Utilizado para criar uma nova tabela que contenha chaves
estrangeiras.
CREATE TABLE Nome_da_Tabela (
Atributo1 Tipo,
Atributo2 Tipo,
AtributoN Tipo,
PRIMARY KEY (Atributo1),
CONSTRAINT Nome_da_Relação
FOREIGN KEY (Atributo2)
REFERENCES Nome_da_Tabela_Referenciada (Atributo_Ref)
);
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
37. 37
3.5. Comando CREATE TABLE
(com chave estrangeira)
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Comando CREATE TABLE (com chave estrangeira).
38. 38
3.6 Comando ALTER TABLE
Utilizado para modificar (adicionar, alterar ou eliminar) colunas (ou
parâmetros) da estrutura de uma tabela.
ALTER TABLE Nome_da_Tabela [ADD][CHANGE][DROP
COLUMN];
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
39. 39
3.6. Comando ALTER TABLE
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Comando ALTER TABLE.
40. 40
3.7 Comando DROP TABLE
Utilizado para excluir uma tabela.
DROP TABLE Nome_da_Tabela;
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
41. 41
3.7 Comando DROP TABLE
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Comando DROP TABLE.
42. 42
4. EXERCÍCIOS
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
43. 43
4.1 Atividade 1
Utilize comandos SQL para as seguintes situações (baseado na
figura e configuração de servidor dos slides subsequentes):
a) Criar um banco de dados;
b) Criar uma tabela;
c) Adicionar uma nova coluna chamada "Valor";
d) Alterar a coluna "Empresa" para "Parceiro";
e) Eliminar a coluna "Valor";
f) Eliminar a tabela criada;
g) Eliminar o banco de dados criado.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
44. 44
4.1. Atividade 1
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
Figura. Exemplo de planilha de uma agência web.
45. 45
4.1 Atividade 1
Passos para configurar o servidor remoto APUS Digital:
a) Abra a ferramenta MySQL Workbench;
b) Clicar no ícone “+” para adicionar uma nova conexão;
c) Dados de conexão:
Connection name: Unipampa
Hostname: apus.digital
Port: 3306
Username: bifljuup_[6 primeiros caracteres do nome]
Password: e-mail cadastrado na Universidade
d) Clicar em Test Connection;
e) Clicar em Ok;
f) Selecionar a conexão criada.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
46. 46
4.2 Atividade 2 (via Moodle)
Implementar um banco de dados (relacional) para o "Atendimento
acadêmico" docente/discente utilizando comandos SQL.
A implementação deve apresentar 3 tabelas que atendam as
seguintes necessidades: cadastro de aluno, cadastro de professor e
agendamento. A implementação deve conter, obrigatoriamente,
pelo menos:
a) 3 colunas (atributos) por tabela;
b) 1 Chave primária;
c) 1 Chave estrangeira;
d) 3 tipos de dados diferentes.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo
47. 47
Referências
DAMAS, Luís. SQL, Structured query language. Tradução Elvira Maria Antunes
Uchôa. 6a Edição, Rio de Janeiro: LTC, 2007.
MEIRA, Regilan. Banco de Dados (Apostila). Instituto Federal da Bahia -
Campus Ilhéus, 2013.
Banco de dados: teoria, organização e comandos de um SGBD relacional Prof. Alex Camargo