30
Jorge Ávila Banco de Dados

Aula 10 banco de dados

Embed Size (px)

DESCRIPTION

SQL (Structured Query Language)

Citation preview

Page 1: Aula 10   banco de dados

Jorge Ávila

Banco de Dados

Page 2: Aula 10   banco de dados

Antes de mais nada Normalização:

Primeira Forma Normal: Uma tabela está na 1FN, se e somente se, não possuir atributos

multivalorados.

Uma relação está na 1FN quando todos os atributos da relação estiverem baseados em um domínio simples, não contendo grupos ou valores repetidos

Exemplo Projetos(codp, tipo, descrição, code, nome, categ, salário, data_início,

tempo_aloc)

Outra forma de identificar se a tabela não está na 1FN é verificando se existe tabela aninhadas, ou seja, mais de um registro para uma chave primária

Page 3: Aula 10   banco de dados

Antes de mais nada

Normalização:

Segunda Forma Normal

Uma relação está na 2FN se, e somente se, estiver na 1FN e cada atributo

não-chave for dependente da chave primária inteira, isto é, cada atributo

não-chave não poderá ser dependente de apenas parte da chave.

No caso de tabelas com chave primária composta, se um atributo depende

apenas de uma parte da chave primária, então esse atributo deve ser

colocado em outra tabela.

Exemplo:

Projetos(codp, tipo, descrição)

Empregados(code, nome, categ, salário)

ProjEmp(codp, code, data_início, tempo_aloc)

Page 4: Aula 10   banco de dados

Antes de mais nada

Normalização:

Terceira Forma Normal

Uma relação R está na 3FN, se estiver na 2FN e cada atributo

não-chave de R não possuir dependência transitiva, para cada

chave candidata de R.

Projetos(codp, tipo, descrição)

Empregados(code, nome, categ)

Categorias(categ, salário)

ProjEmp(codp, code, data_início, tempo_aloc)

Page 5: Aula 10   banco de dados

BANCOS DE DADOS RELACIONAIS

Os Bancos de Dados Relacionais foram desenvolvidos para

facilitar o acesso aos dados. Pois enquanto em um banco de

dados hierárquico os usuários precisam definir as questões de

maneira mais específica, iniciando pela raiz, nos Bancos de

Dados Relacionais os usuários podem fazer perguntas

relacionadas através de vários pontos.

A arquitetura de um banco de dados relacional pode ser

descrita usando os termos tabela, linha e coluna. Veja um

exemplo;

Page 6: Aula 10   banco de dados

BANCOS DE DADOS RELACIONAIS

Temos a “Tabela Clientes” que contém duas colunas que são o

“Código do Cliente” e o “Nome”, Cada linha é formada por

uma lista ordenada de colunas representando um registro.

Então um registro é uma instância de uma tabela, ou

entidade. Uma entidade é uma representação de um conjunto

de informações sobre determinado conceito do sistema. Toda

entidade possui atributos, que são as informações que

referenciam a entidade.

Page 7: Aula 10   banco de dados

BANCOS DE DADOS RELACIONAIS

Se houverem informações a serem armazenadas, você tem

uma entidade. Exemplificando: Eu desejo armazenar os

seguintes dados do livro:

Título, Autor, Editora, Ano, Edição e Volume. Temos então a

entidade Livro.

No exemplo acima “Antônio Silva” é uma instância (registro)

da “Tabela Clientes”. As colunas de uma tabela são também

chamadas de atributos. Então a coluna “Nome” é um atributo

da “Tabela Clientes”.

Page 8: Aula 10   banco de dados

BANCOS DE DADOS RELACIONAIS

As tabelas relacionam-se umas as outras através de chaves.

Uma chave é um conjunto de um ou mais atributos que

determinam a unicidade de cada registro. No nosso caso a

chave da “Tabela Clientes” é o “Código do Cliente”, pois ele é

único para cada registro.

Page 9: Aula 10   banco de dados

História

A primeira versão da linguagem SQL, chamada SEQUEL

(Structured Query English Language), surgiu em 1974 nos

laboratórios da IBM (Califórnia). Entre 1976 e 1977 ela foi

revisada e ampliada, tendo então o seu nome alterado para

SQL.

Devido ao sucesso da nova forma de consulta e manipulação

de dados dentro de um ambiente de banco de dados, sua

utilização tornou-se cada vez maior. Vários SGBD’s atuais

utilizam o SQL como a linguagem padrão para o acesso às

bases de dados.

Page 10: Aula 10   banco de dados

Linguagem SQL Linguagem de definição de dados (DDL) Permite ao usuário a definição da estrutura e organização dos dados

armazenados, e das relações existentes entre eles. Alguns sistemas de banco de dados usam o comando ALTER, que

permite ao usuário alterar um objeto, por exemplo, adicionando uma coluna a uma tabela existente.

Outros comandos DDL: CREATE DATABASE

CREATE TABLE

CREATE INDEX

CREATE VIEW

ALTER TABLE

ALTER INDEX

DROP INDEX

DROP VIEW

Page 11: Aula 10   banco de dados

Linguagem SQL

Linguagem de manipulação de dados (DML) Permite a um usuário, ou a um programa de aplicação, a

execução de operações de inclusão, remoção, seleção ou atualização de dados previamente armazenados na base de dados.

Os comandos que realizam respectivamente as funções acima referidas são:

Insert;

Select;

Update;

Delete.

Page 12: Aula 10   banco de dados

função comandos SQL descrição do

comando

exemplo

inclusões Insert é usada para inserir um

registro (formalmente

uma tupla) a uma tabela

existente

Insert into Pessoa (id,

nome, sexo) value;

consultas Select O Select é o principal

comando usado em SQL

para realizar consultas a

dados pertencentes a

uma tabela.

Select * From Pessoa;

alterações Update para mudar os valores

de dados em uma ou

mais linhas da tabela

existente.

UPDATE Pessoa SET

data_nascimento =

'11/09/1985' WHERE

id_pessoa = 7

exclusões Delet permite remover linhas

existentes de uma

tabela.

DELETE FROM pessoa

WHERE id_pessoa = 7

Page 13: Aula 10   banco de dados

Linguagem SQL

DCL - Linguagem de Controle de Dados

O DCL (Data Control Language - Linguagem de Controle de

Dados).

DCL controla os aspectos de autorização de dados e licenças de

usuários para controlar quem tem acesso para ver ou manipular

dados dentro do banco de dados.

Duas palavras-chaves da DCL:

GRANT - autoriza ao usuário executar ou setar operações.

REVOKE - remove ou restringe a capacidade de um usuário de executar

operações.

Page 14: Aula 10   banco de dados

Linguagem SQL DTL - Linguagem de Transação de Dados

BEGIN WORK (ou START TRANSACTION, dependendo do

dialeto SQL) pode ser usado para marcar o começo de uma transação

de banco de dados que pode ser completada ou não.

COMMIT finaliza uma transação dentro de um sistema de

gerenciamento de banco de dados.

ROLLBACK faz com que as mudanças nos dados existentes desde o

último COMMIT ou ROLLBACK sejam descartadas.

DQL - Linguagem de Consulta de Dados

Embora tenha apenas um comando, a DQL é a parte da SQL mais

utilizada. O comando SELECT permite ao usuário especificar uma

consulta ("query") como uma descrição do resultado desejado

Page 15: Aula 10   banco de dados

Vantagens e Desvantagens da

Linguagem SQL

Vantagens: Independência de fabricante

Portabilidade entre plataformas de hardware e software

Redução dos custos com treinamento

Usa inglês estruturado de alto nível

Permite consultas interativas

Múltiplas visões dos dados

Definição dinâmica dos dados

Page 16: Aula 10   banco de dados

Vantagens e Desvantagens da

Linguagem SQL

Desvantagens: Falta de ortogonalidade nas expressões, funções embutidas,

variáveis indicadoras, referência a dados correntes, constante

NULL, conjuntos vazios, e etc;

Definição formal da linguagem após sua criação;

Discordância com as linguagens hospedeiras (geralmente

procedurais e orientadas para registros e não para conjuntos);

Falta de algumas funções;

Não dá suporte a alguns aspectos do modelo relacional (join

explícito, domínios, e etc.)

Críticas (segundo C.J. Date)

Page 17: Aula 10   banco de dados

Tabelas dos Exemplos

As tabelas a seguir serão usadas nos exemplos que se seguem:

CLIENTE (cod_cli, nome_cli, endereco, cidade, cep, uf)

VENDEDOR (cod_vend, nome_vend, sal_fixo, faixa_comiss)

PEDIDO ( num_ped, prazo_entr, cd_cli, cd_vend)

ITEM_PEDIDO (no_ped, cd_prod, qtd_ped)

PRODUTO (cod_prod, unid_prod, desc_prod, val_unit)

Page 18: Aula 10   banco de dados

Criação de um Bando de Dados SQL

Para a criação de um banco de dados em SQL temos os

seguintes comandos:

Creat Data Base;

Para conhecer quais os bancos de dados existentes dentro do

MySQL basta usar o comando SHOW DATABASES. SHOW

significa mostrar, apresentar, exibir e DATABASES significa

bases de dados ou bancos de dados, ou seja, manda mostrar

os bancos de dados existentes.

Page 19: Aula 10   banco de dados

Criação e Destruição de Tabelas O comando CREATE TABLE é usado para criar uma tabela. A sua

forma geral é:

CREATE TABLE <nome_tabela> (<descrição das colunas>,

<descrição das chaves>);

onde:

<nome_tabela> dever ser substituído pelo nome da tabela a ser criada.

<descrição das colunas> deve ser substituída pela relação das colunas da tabela e seus respectivos tipos de dados (por exemplo, smallint, char, varchar, integer, number, float e etc). <descrição das chaves> deve ser substituída pela lista das colunas que são tratadas como chaves estrangeiras.

Page 20: Aula 10   banco de dados

Script de Criação das Tabelas dos

Exemplos

Algumas colunas podem receber o valor NULL (nulo), e a

coluna definida como chave primária, além de não poder

receber NULL.

Page 21: Aula 10   banco de dados

Script de Criação das Tabelas dos

Exemplos

Page 22: Aula 10   banco de dados

Criação e Destruição de Tabelas Para excluirmos uma tabela existente devemos usar o comando

DROP

TABLE. A sua forma geral é:

DROP TABLE <nome_tabela>;

onde:

<nome_tabela> dever ser substituído pelo nome da tabela a ser excluída.

Exemplos drop table item_pedido;

drop table pedido;

drop table vendedor;

drop table produto;

drop table cliente;

Page 23: Aula 10   banco de dados

Executando Consultas sobre as

Tabelas

Selecionando Colunas Específicas de uma Tabela

Problema:

Listar todos os produtos com as respectivas descrições, unidades

e valores unitários.

Page 24: Aula 10   banco de dados

Executando Consultas sobre as

Tabelas

Problema:

Listar os nomes dos clientes, as cidade e os estados onde eles

estão localizados.

Page 25: Aula 10   banco de dados

EXERCICIO1. Com base no que você já aprendeu sobre banco de dados faça uma produção

textual de no mínimo 5 linhas descrevendo o diagrama abaixo:

Page 26: Aula 10   banco de dados

EXERCICIO2. Marque V para verdadeiro e F para falso:

( ) CREATE, DROP, ALTER são comandos da Linguagem de Definição de

Dados (DDL);

( ) É possível usarmos o comando CREATE para alterar estruturas da base de dados.

( ) O comando UPDATE realiza a exclusão de registros em uma tabela;

( ) Para apagar linhas da tabela tanto faz usar o comando DROP como o DELETE.

( ) O comando INSERT realiza a inclusão de um ou mais registros em uma tabela;

A sequência correta seria:

a) V -V - F –V - F;

b) V - F - F –V -V;

c) F -V -V – F - F;

d) V - F - F – F -V;

Page 27: Aula 10   banco de dados

EXERCICIO3. Relacione a primeira coluna com a segunda e no final, indique a resposta

correta:

1 - CREATE ( ) Comando responsável por inserir valores em uma tabela;

2 – INSERT ( ) - Responsável por retornar registros de uma tabela;

3 – DROP ( ) - Remove registros de uma tabela;

4 – SELECT ( ) -Tem o poder de remover estruturas do banco de dados;

5 – DELETE ( ) - Responsável por criar estruturas no banco de dados;

A sequência correta seria:

a) 4 - 2 - 1 - 3 - 5;

b) 2 - 4 - 5 - 3 - 1;

c) 3 - 5 - 4 - 2 - 1;

d) 2 - 1 - 3 - 4 - 5;

Page 28: Aula 10   banco de dados

INTRODUÇÃO AO MySQL1º Passo:

Após a Instalação do MySQL no seu computador, abra o MySQL Command LineClient. No meu caso eu baixei a versão 5.5 e sempre deixo fixado no Menu Iniciar, mas qualquer coisa é só você seguir o caminho (Iniciar-> Todos os Programas-> MySQL-> MySQL Server).

Page 29: Aula 10   banco de dados

jorgeavila11.wordpress.com

Page 30: Aula 10   banco de dados

Gostou ?

Compartilha...