Você está na página 1de 7

11/30/2022

• Unidade de Ensino: 1

Programação e • Competência da Unidade: Conhecer e compreender a


linguagem de consulta estruturada e a criação de um
Desenvolvimento banco de dados.
de Banco de Dados • Resumo: Saber elaborar script SQL para criação de um
banco de dados e suas tabelas
Repositório de Dados
• Palavras-chave: SQL, banco de dados, tabela

Prof. Dr. Gilberto Fernandes Jr. • Título da Teleaula: Repositório de dados

• Teleaula nº: 1

1 2

Contextualização
• Modelagem física
• Linguagem de consulta estruturada (SQL)
• Criação de banco de dados
Linguagem de
• Criação de tabelas consulta estruturada
(SQL)

3 4

Introdução Relembrando a representação de um banco


• Assuntos importantes em programação em Bancos de
Dados
• Programação
• Bancos de Dados Relacionais (manipulação por meio
do SQL).

Fonte: livro texto

5 6

1
11/30/2022

A Linguagem SQL A Linguagem SQL


• Linguagem padrão dos SGBD. • Nos seus estudos, você utilizará o SGBD MySQL.
• SQL, do inglês Structured Query Language • Trabalha com várias plataformas, tendo sido escrito em
• É a forma de tratarmos os vários aspectos de um C e C++
banco de dados: • Definir instruções SQL incorporadas de maneira
• Definir esquemas de relacionamento; embutida ou dinâmica em linguagens, como por
• Criar restrições em relacionamentos; exemplo, Node.js, PHP, C#, C++, Java, Android, Swift,
• Realizar consultas interativas; etc.
• Segurança e controle de atualizações.

7 8

A Linguagem SQL A Linguagem SQL


• Na linguagem SQL, destacam-se cinco subconjuntos • Linguagem de Consulta a Dados (DQL)
de instruções: SELECT, SHOW, HELP
• Linguagem de Controle de Dados (DCL)
• Linguagem de Definição de Dados (DDL) GRANT, REVOKE
CREATE, DROP, ALTER, TRUNCATE Fonte: livro texto • Linguagem de Transação de Dados (DTL) Fonte: livro texto

• Linguagem de Manipulação dos Dados (DML) START TRANSACTION, COMMIT, SAVEPOINT,


INSERT, UPDATE, DELETE ROLLBACK

9 10

Estrutura básicas de consulta em SQL As Cláusulas SELECT e FROM


“Em um SGBD relacional, teremos repositórios de dados • SELECT – identificação dos campos desejados.
armazenados, mas com um conjunto de tabelas que • FROM – lista as tabelas que deverão ser lidas.
podem ser identificadas unicamente” (CARDOSO, 2013)
SELECT Nome SELECT *
FROM cidade; FROM cidade;
• Consultas são resultados de um produto cartesiano das
tabelas especificadas SELECT Nome, Populacao / 2
• Estabelecer condições precisas para evitar FROM cidade;
apresentar resultados enormes e imprecisos!
SELECT DISTINCT Nome
FROM cidade;

11 12

2
11/30/2022

A Cláusula WHERE Operação de renomeação e variáveis do registro


• WHERE - Consiste em expressões lógicas envolvendo • Os campos podem ser renomeados com a cláusula AS
os campos das tabelas da cláusula FROM. • nome-antigo AS nome-novo Não é permanente!
Renomeia apenas no

!
resultado da
SELECT Nome, Populacao SELECT Nome, Populacao AS PopulacaoDaCidade consulta
FROM cidade FROM cidade;
WHERE Populacao < 100000;
SELECT C.Nome, C.Populacao, P.população
SELECT Nome, Populacao FROM cidade as C, pais as P
FROM cidade
WHERE Populacao BETWEEN 90000 AND 100000;

13 14

Operações de String e ordenação


• O operador LIKE determina a correspondência de
padrões usando caracteres especiais: % ou _

SELECT Nome FROM cidade WHERE Nome LIKE ‘Sor%’;


Conhecendo o MySQL
• Operador ORDER BY para ordenação (ASC ou DESC)
Community Server
SELECT Nome FROM cidade ORDER BY Nome;

SELECT Nome FROM cidade ORDER BY Nome DESC;

15 16

MySQL Server Explorando um banco de dados


• O MySQL Server é um sistema gerenciador de banco • Vamos explorar um banco de dados no software
de dados (SGBD) relacional de código aberto. MySQL Workbench.
• O serviço utiliza a linguagem SQL (Structure Query • Usar o banco de dados world (pré-instalado)
Language – Linguagem de Consulta Estruturada). • Utilizar as instruções SQL para:
• Entender sua estrutura de tabelas
• MySQL Workbench: ferramenta gráfica de • Identificar suas chaves primárias e estrangeiras
gerenciamento do banco de dados MySQL. • Determinar quais os relacionamentos
• Estabelecer instruções de consultas.

17 18

3
11/30/2022

Planejamento de um banco de dados


Para planejar um banco de dados, entendemos que há
cinco passos principais:

Criação de um banco 1. Coletar informações.


2. Identificar suas principais estruturas.
de dados e suas 3. Modelar a estrutura.

tabelas 4. Identificar nas estruturas os tipos de dados (brutos, de


categorização, de identificação, de referência).
5. Identificar quais são seus relacionamentos.

19 20

Internacionalização de um banco de dados Internacionalização de um banco de dados


• Devemos prestar atenção na abrangência de utilização • CHARSET: designa um conjunto de símbolos e
do banco codificações e como eles são representados
• Respeitar as regras de escrita e gramática ou binariamente.
representação de cada país • COLLATION: conjunto de regras para comparação de
• MySQL possui as cláusulas CHARSET e COLLATION. caracteres em um CHARSET.

Fonte: livro texto

21 22

Internacionalização de um banco de dados Criar um banco de dados


• Como verificar CHARSET/COLLATION instalados no seu • Deveremos utilizar as instruções da classe da
MySQL: linguagem de definição de dados (DDL).
• SHOW CHARACTER SET;
• SHOW COLLATION;
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_nome
[create_specification] ...
Exemplos: create_specification:
• CHARSET: latin1 , COLLATION: latin1_swedish_ci [DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
• CHARSET: utf8 , COLLATION: utf8_general_ci

23 24

4
11/30/2022

Criar um banco de dados Modelo de dados


Exemplos: • Diagrama Entidade-Relacionamento (DER)
• Certeza de que todos os dados existentes em um
CREATE DATABASE IF NOT EXISTS mundo determinado contexto estão completamente
DEFAULT CHARSET = utf8 representados.
DEFAULT COLLATE = utf8_general_ci;
• Administrador de banco de dados (DBA) utiliza o
SHOW DATABASES; modelo para gerar o BD físico

ALTER DATABASE mundo CHARSET = latin1;

DROP DATABASE IF EXISTS mundo;

25 26

Modelo de dados Modelo de dados


• MER • DER

Fonte: livro texto


Fonte: livro texto

27 28

Criação de tabelas Tipos de Dados


Sintaxe da estrutura CREATE TABLE: Nomenclatura:

CREATE TABLE [IF NOT EXISTS] nome_tabela ( M: tamanho do dado


Lista_campos Seu valor máximo está relacionado ao tipo de dado
); D: quantidade de dígitos “depois da vírgula”.
Valor máximo é 30 (ou M-2)
nome_campo tipo_campo[tamanho] [NOT NULL|NULL]
[ ]: partes opcionais na definição dos tipos.
[DEFAULT valor] [AUTO_INCREMENT] [PRIMARY KEY]
UNSIGNED: não aceita números negativos
ZEROFILL: preencher com zeros à esquerda. E recebe o
atributo UNSIGNED

29 30

5
11/30/2022

Tipos Numéricos Tipos numéricos


• SMALLINT [(M)] [UNSIGNED] [ZEROFILL] • FLOAT [(M, D)] [UNSIGNED] [ZEROFILL]
• inteiro no intervalo de -32768 a 32767. O intervalo sem • ponto flutuante, de precisão simples. Os valores
sinal é de 0 a 65535. admissíveis são -3,402823466E+38 a -1,175494351E-
• INT [(M)] [UNSIGNED] [ZEROFILL] 38, 0 e 1,175494351E-38 a 3,402823466E+38.

• Inteiro no intervalo de -2147483648 a 2147483647. O • DOUBLE [(M, D)] [UNSIGNED] [ZEROFILL]


intervalo sem sinal é de 0 a 4294967295. • ponto flutuante de precisão dupla.
• BIGINT [(M)] [UNSIGNED] [ZEROFILL] • -1,7976931348623157E+308 a -2,2250738585072014E-
• intervalo de -9223372036854775808 a 308,0
9223372036854775807. • Sinônimo: DOUBLE PRECISION.

31 32

Tipo Data e hora Tipo Texto


• DATE
• MySQL exibe no formato 'YYYY-MM-DD'
!fsp: representa a
quantidade de
• VARCHAR (M) [CHARACTER SET charset_name]
[COLLATE collation_name]
dígitos das “frações
• Permite números ou strings • cadeia de comprimento variável.
de segundo” que
• DATETIME [(fsp)] será armazenada. • ENUM ('valor1', 'valor2', ...) [CHARACTER SET
• Combinação de data e hora charset_name] [COLLATE collation_name]
• formato 'AAAA-MM-DD HH: MM: SS [fracao]' • objeto de string que pode ter apenas um valor,
escolhido na lista de valores 'valor1', 'valor2', [...],
• TIME [(fsp)] -> 'HH: MM: SS [fração]'
NULO, ou vazio.
• YEAR [4] -> 'YYYY'
• Armazenado como inteiro pelo banco

33 34

Descrição da SP
• Você está desenvolvendo um aplicativo para o serviço
Criando um banco de de um Guia Turístico.

dados para um • Fator técnico que caracteriza nossa linguagem:


• O banco de dados deve utilizar caracteres acentuados
sistema de guia • Estar preparado para a internacionalização
turístico
• Primeira tarefa: criação do banco de dados
• UTF-8 - abrangência de caracteres internacionais.
• utf8_general_ci - regras comuns de comparação

35 36

6
11/30/2022

Descrição da SP Descrição da SP
• Em seguida, sua responsabilidade no projeto é a de • Os pontos de interesse turístico devem ser
implantar, sob forma de tabelas, a estrutura do classificados como atrativos, serviços, equipamentos,
repositório de dados do projeto infraestrutura de apoio e instituições ou organizações.
• Estrutura básica do banco: • Para cada elemento turístico haverá uma coordenada
• Países – armazenar os dados sobre nome, continente, (latitude e longitude).
área, ano de independência, população, expectativa de • Tabela adicional
vida, forma de governo, capital, moeda. • O elemento turístico deve ter um campo para mostrar
• Estados – armazenar os dados sobre nome, sigla, se está publicado ou não.
região, capital.
• Seu valor padrão é falso.
• Cidades – nome, população, data de criação.
• Pontos de interesses turístico

37 38

Resolvendo a SP
• Vamos construir o banco de dados com o SQL!

Recapitulando

39 40

Recapitulando
• Linguagem de consulta estruturada
• SELECT, FROM, WHERE
• Criação de banco de dados
• Criação de tabelas
• Tipos de dados

41

Você também pode gostar