banco de dados. revisão vimos na aula passada como criar diagramas e modelos utilizando a...

36
Banco de dados

Upload: internet

Post on 21-Apr-2015

112 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

Banco de dados

Page 2: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

Revisão• Vimos na aula passada como criar diagramas e

modelos utilizando a ferramenta BrModelo.

Cliente deposita Conta

DataCódigo

Saldo

(1,1) (1,1)

ValorCPF

Nome

Page 3: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL• SQL é a linguagem padrão para se lidar com bancos de dados

relacionais, e é aceita por quase todos os produtos existentes no mercado.

Page 4: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Domínio• char(n): Cadeia de caracteres de tamanho fixo.• varchar(n): Cadeia de caracteres de tamanho

variável com comprimento máximo especificado.• int: Inteiro• smallint: Inteiro pequeno (ocupa metade do

espaço do int).• numeric(p, d): Número de ponto fixo, com

definição da precisão e número de casas decimais.

Page 5: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Domínio• Real: Números de ponto flutuante.• float(n): Número de ponto flutuante com

precisão de no mínimo n dígitos.• Date: Datas, contendo ano, mês e dia.• Time: Hora do dia, em horas, minutos e segundos.

Page 6: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL – Criar BD• Comando utilizado para criar um determinado

banco de dados no SGBD:• Sintaxe:

create database nome_do_db;• Exemplo:

create database teste;

Criem um banco de dados com seu nome!

Page 7: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL – Remover o BD• Comando utilizado para remover determinado BD

existente no SGBD:• Sintaxe:

drop database nome_do_banco;

Remova o BD com seu nome!

Liste os bancos existentes!

Page 8: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL – Remover o BD• Crie novamente o banco de dados com seu

nome!• Liste os bancos existentes!

Page 9: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL – Utilizar BD• Como em determinado SGBD podem existir

diversos bancos, de diferentes características, com diferentes relações, etc.• É necessário selecionar o banco de dados que se

deseja trabalhar, ou seja, é necessário se “conectar” ao banco desejado.

Page 10: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL – Utilizar BD• Comando utilizado para se “conectar” a um

determinado banco de dados existente no SGBD:• Sintaxe:

use nome_do_db;• Exemplo:

use teste;

Se conecte ao banco criado com seu nome!

Page 11: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL – Listar as tabelas do BD• Comando utilizado para listar as tabelas

existentes em um determinado banco de dados do SGBD:• Sintaxe quando está conectado a um BD:

show tables;• Sintaxe quando não está conectado a um BD:

show tables from nome_do_BD;

Page 12: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL – Criação de tabela• Uma relação é definida usando comando CREATE TABLE.• Sintaxe:

CREATE TABLE <relação> (<atributo> <domínio><regra do atributo>,..., <atributo> <domínio><regra do atributo>, <regras da tabela>);

CREATE TABLE CLIENTE (nome varchar(255), rg int,

uf char(2),nascimento date, tefefone char(8),sex varchar(255)

);

Crie esta tabela no banco de dados com seu nome!

Page 13: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL – Descrição de tabela• Sintaxe:

describe nome_tabela;• Exemplo:

describe cliente;

Page 14: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL – Alteração de tabela• Sintaxe:

ALTER TABLE <relação> ADD <atributo> <definição>;ALTER TABLE <relação> CHANGE <atributo_antigo> <novo_atributo> <definição>ALTER TABLE <relação> DROP <atributo>;

• Exemplo: ALTER TABLE cliente ADD codigo int FIRST;ALTER TABLE cliente ADD cpf int;ALTER TABLE cliente DROP rg;ALTER TABLE cliente DROP uf;ALTER TABLE cliente CHANGE sex sexo char(1);

Realize as modificações abaixo e veja como a tabela ficou!

Page 15: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL – Remoção de tabela• Uma relação é apagada através do comando

DROP TABLE• Sintaxe:

DROP TABLE <relação>;• Exemplo:

DROP TABLE CLIENTE;

Page 16: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL – Regras para criação de tabelas• Podemos colocar restrições de integridade nas

relações criadas:• Assegurar que alterações feitas no banco de dados não

resultem em perda da consistência dos dados.• Utilizaremos as seguintes regras de integridade:• Restrição de nulo;• Restrição de integridade de entidade;• Restrições de chave;• Restrição de integridade referencial.

Page 17: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Regras• Restrição de nulo• Pode ser especificado se valor nulo pode ou não ser

permitido.• No SQL, devemos colocar NOT NULL após o tipo do

atributo.• Exemplo:

CREATE TABLE CLIENTE (codigo int NOT NULL, ....

);

Page 18: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Regras• Restrição de integridade de entidade• Nenhum valor de chave primária pode ser nulo.

• Restrições de chave• Por definição, todos os elementos de um conjunto são

distintos;• Conseqüentemente, todas as tuplas em uma relação

devem também serem distintas;• Isto significa que não deve existir duas tuplas com a

mesma combinação de valores para todos os atributos.

Page 19: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Regras• Quando definimos uma chave primária já

garantimos que só haverá tuplas distintas na relação:• Logo garantimos a restrição de chave ao definirmos

uma chave primária.• No SQL, definimos chave primária da seguinte

forma:codigo int NOT NULL PRIMARY KEY

É definido desta forma apenas na criação da tabela!

Page 20: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - RegrasCREATE TABLE CLIENTE (

codigo int NOT NULL PRIMARY KEY,nome varchar(255), cpf int,

nascimento date, tefefone char(8),sexo char(1)

);

Page 21: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Regras• Para chave primária normalmente utilizamos um

parâmetro de auto incremento.

CREATE TABLE alunos (id_alu INT NOT NULL AUTO_INCREMENT,nome_alu VARCHAR( 100 ) NOT NULL,idade_alu INT NOT NULL,data_alu DATE NOT NULL,sexo CHAR(1) NOT NULL,PRIMARY KEY ( id_alu )

)

Page 22: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Regras• Para colocar um atributo como chave primária de

uma tabela já existente utiliza-se o comando Alter table.

• Sintaxe:ALTER TABLE tabela ADD PRIMARY KEY(atributo);

Insira uma chave primária na tabela cliente

Page 23: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Regras• Para remover a chave primária de uma relação

utiliza-se o comando Alter table.• Sintaxe:

ALTER TABLE tabela DROP PRIMARY KEY;

Remova a chave primária na tabela cliente

Insira novamente a chave primária na tabela cliente

Page 24: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Regras• Chave candidata• UNIQUE

cpf int NOT NULL UNIQUEouUNIQUE (cpf)• Os atributos podem ser nulos.

É definido desta forma apenas na criação da tabela!

Page 25: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - RegrasCREATE TABLE CLIENTE (

codigo int NOT NULL PRIMARY KEY,nome varchar(255), cpf int NOT NULL UNIQUE,

nascimento date, tefefone char(8),sexo char(1)

);

Page 26: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - RegrasCREATE TABLE CLIENTE (

codigo int NOT NULL PRIMARY KEY,nome varchar(255), cpf int NOT NULL,

nascimento date, tefefone char(8),sexo char(1),UNIQUE (cpf)

);

Page 27: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Exemplo

CREATE TABLE CLIENTE (codigo int NOT NULL PRIMARY KEY, nome varchar(30) NOT NULL, cpf int UNIQUE,nascimento date default ’0000-00-00’, tefefone char(8) default null,sexo char(1)

);

Page 28: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Regras• Restrição de integridade referencial:• é especificada entre duas relações e é usada para

manter a consistência entre tuplas das duas relações;• Informalmente, a restrição de integridade referencial

diz que uma tupla da relação (R1), que refere-se a outra relação (R2), deve referir-se a uma tupla existente em R2 (chave estrangeira).

Page 29: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Regras• Restrição de integridade referencial• No SQL, definimos chave estrangeira da seguinte

forma:• Sintaxe:FOREIGN KEY (atributo) REFERENCES

tabela(atributo)

É definido desta forma apenas na criação da tabela!

Page 30: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - RegrasCREATE TABLE COMPRA(

codigo int NOT NULL PRIMARY KEY, cod_cliente int, data date, FOREIGN KEY (cod_cliente) REFERENCES cliente(codigo)

);

Crie esta relação!Visualize a descrição desta relação!

Page 31: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Regras• ON DELETE• RESTRICT:• Exclusão de T1 falha se existem linhas em T2 combinando

(padrão do SQL).

• CASCADE:• Exclusão de T1 exclusão de todas as linhas de T2 que

combinam.

• SET NULL:• Exclusão de T1 colocar nulo nos atributos da chave

estrangeira de cada tupla de T2 que combina.

• SET DEFAULT:• Exclusão de T1 colocar valores default nos atributos da

chave estrangeira de cada tupla de T2 que combina.

Page 32: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Regras• ON UPDATE• RESTRICT:• Alteração de T1 falha se existem linhas em T2 combinando

(padrão do SQL).

• CASCADE:• Alteração de T1 linhas que combinam em T2 também serão

atualizadas.

• SET NULL:• Alteração de T1 colocar nulo nos atributos da chave

estrangeira de cada tupla de T2 que combina.

• SET DEFAULT:• Alteração de T1 colocar valores default nos atributos da

chave estrangeira de cada tupla de T2 que combina.

Page 33: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Regras

CREATE TABLE PEDIDO(cod_pedido int NOT NULL PRIMARY KEY,cod_cliente int,FOREIGN KEY (cod_cliente) REFERENCES cliente (codigo)ON DELETE SET NULLON UPDATE CASCADE

);

Remover a tabela compra!Criar a tabela pedido!

Page 34: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Regras• Para alterar as restrições impostas a uma tabela devemos

fazer o seguinte comando:• Sintaxe:

ALTER TABLE <tabela> ADD (<regra>);• Exemplo:

ALTER TABLE cliente ADD PRIMARY KEY(cpf);

Page 35: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Regras• Caso já sido definido o mesmo tipo de restrições que

queremos inserir na tabela, então devemos remover primeiro essas restrições• Sintaxe:

ALTER TABLE <tabela> DROP <regra>;• Exemplo:

ALTER TABLE cliente DROP PRIMARY KEY;

Page 36: Banco de dados. Revisão Vimos na aula passada como criar diagramas e modelos utilizando a ferramenta BrModelo. Cliente deposita Conta Data Código Saldo

SQL - Regras• Para alterar as restrições impostas a uma coluna

devemos fazer o seguinte comando:• Sintaxe:

Alter table <tabela> MODIFY <nome_da_coluna> <tipo> <regra>• Exemplo:

ALTER TABLE cliente MODIFY cpf int NOT NULL UNIQUE;