Pesquisar no blog:

Mostrando postagens com marcador Banco de dados. Mostrar todas as postagens
Mostrando postagens com marcador Banco de dados. Mostrar todas as postagens

segunda-feira, 26 de agosto de 2013

Rodando scripts SQL no Oracle

·         Salve o script com a extensão .sql
·         Abra o Home Page de Banco de Dados do Oracle
·         Vá em SQL / Scripts SQL / Upload


·         Em Upload informe o local do Script e um nome


·         Em Script / Scripts SQL podemos agora visualizar o script


·         Clicando sobre o Script você poderá edita-lo o executa-lo
·         Ao executar o Script clique sobre o botão Exibir Resultados para verificar o status da execução.


terça-feira, 2 de abril de 2013

Cardinalidade

Cardinalidade, em banco de dados, está ligado as relações entre suas tabelas e quantos dados de uma entidade (tabela) estão presentes na outra entidade.
Da matemática o conceito de cardinalidade, de modo simples, vem de elementos de um determinado conjunto que estão em outro conjunto.
Exemplo:
Dados os conjuntos A = {1,2,3,4,5} e B = {1,3,5}
Podemos afirmar que o conjunto de B é um subconjunto de A. Podemos afirmar também que B está contido em A ou que A contém B. Podemos assim concluir que A e B tem uma relação.
Se você entendeu esse conceito, imagine agora um banco de dados com esses conjuntos A e B, sendo eles entidades (tabelas) do banco de dados e seus números  A = {1,2,3,4,5} e B = {1,3,5} são considerados como os atributos do banco de dados.
Simplificando ainda mais:
Ao invés de A vamos substituir por um conjunto chamado Clientes e ao invés de {1,2,3,4,5} vamos usar os atributos {Código,Nome,Sobrenome,Idade,CPF}.
Agora da mesma forma substituiremos B pela entidade Identificação_Clientes e seus atributos serão derivados de Clientes, sendo: {Código,Sobrenome,CPF}
Nesse exemplo temos a entidade Identificação_Clientes sendo derivada de atributos da entidade Clientes.
Na matemática esses conjuntos A = {1,2,3,4,5} e B = {1,3,5} são considerados como uma Função Injetora, pois todos os elementos de B (domínio) se relacionam com um elemento de A (contra domínio).
Na matemática temos 3 tipos de função:
Função Injetora: todos os elementos do domínio se relacionam com apenas um elemento do contra domínio, podendo sobrar elementos no domínio. 
Função Sobrejetora: todos os elementos do contra domínio se relacionam a um elemento do domínio.
Função Bijetora: a função é ao mesmo tempo injetora e sobrejetora. Ou seja, tem a quantidade de elementos iguais e todos se relacionam.

Tipos de relacionamento
Ao criar um relacionamento entre tabelas de um banco de dados podemos utilizar das cardinalidades:
1:1: um-para-um; o mais simples do relacionamentos o relacionamento de A para B permite apenas 1 valor de A para 1 de B.

1:N: um-para-muitos; 1 valor de A se relaciona com muitos de B.

N:1: muitos-para-um; muitos valores de A se relacionam com 1 de B. Observe que apenas mudamos o ponto de vista. a relação é a mesma da anterior.

Obs.: na cardinalidade 1:N e N:1 a chave primária (Primary Key) da entidade é levada do UM para o N. Observe as setas. (Se você não sabe oque é uma chave primária, entre aqui).

N:N: muitos-para-muitos; muitos valores de A se relacionam com muitos de B. Neste caso há a necessidade do uso de outra entidade (tabela), chamamos isso de entidade associativa.

SQL - DML, DDL, DCL e TCL

SQL (Structured Query Language) é a uma linguagem utilizada em Sistemas Gerenciadores de Banco de Dados (SGBD). E, diferente de linguagens de programação, nos SGBDs sempre usamos a linguagem SQL, tendo pouquíssimas diferenças entre eles.
O SQL pode ser dividido em três categorias diferentes:

DML (Data Manipulation Language)
Linguagem de Manipulação de Dados: o significado do seu acrônimo é auto explicativo. São os comandos usados com as instâncias do banco de dados. Aqui vão alguns exemplos de comandos DML do SQL:

DDL (Data Definition Language)
Linguagem de Definição de Dados: são os comandos usados para definir o esquema (Estrutura) de um bando de dados. Exemplo de comandos DDL do SQL:
DCL (Data Control Language)
Linguagem de Controle de Dados: são comandos que sedem ou retiram privilégios de acesso a dados. Exemplos de comandos DCL do SQL:
  • GRANT
  • REVOKE
TCL (Transaction Controle Language)
Linguagem de Controle de Transações: são usadas para controlar mudanças feitas pelos comandos DML, podendo, por exemplo, voltar as instâncias ao modo que eram antes de um comando DML. Exemplo de comandos TCL do SQL:
  • COMMIT
  • SAVEPOINT
  • ROLLBACK
Instâncias: são os dados de um banco de dados em um determinados momentos (registros). As instâncias são modificadas com frequência.
Esquema: é a estrutura de um banco de dados. Exemplo: qual é a chave primária de uma tabela, quantos atributos uma determinada tabela tem, se é permitido valores nulos em um determinado atributo, etc.

terça-feira, 19 de fevereiro de 2013

Chave Primária (Primary Key)

Nos SGBD podemos definir um determinado campo de uma tabela como chave primária (primary key), a chave primaria indica que este campo nunca poderá se repetir. Dessa forma podemos usar este campo como índice para o restante dos campos da tabela.
Esses campos são utilizados quase sempre como um identificador. Tornando as consultas realizadas mais simples de serem filtradas, usando este identificador como parâmetro.
Exemplo:
fun_codigo
fun_nome
fun_endereco
fun_cidade
1
George Wurthmann
Rua Um
Campinas
2
Kerolen Catarina
Rua Dois
São Paulo
3
João Silva
Rua Três
Hortolândia

Na tabela acima o campo "fun_codigo" é único para qualquer cliente, podemos definir então este campo como uma chave primária.
Para definir este campo como uma chave primária devemos utilizar o parâmetro primary key () informando dentro do parenteses o nome do campo que será a chave primária.
Então, o comando SQL completo para se montar a tabela acima seria:
create table funcionarios
(
 fun_codigo integer not null,
 fun_nome varchar(30) not null,
 fun_endereco varchar(20) not null,
 fun_cidade varchar(15) not null,
 primary key (fun_codigo)
);
O parâmetro not null que inseri a frente de todos os campos impede que o campo seja aceito vazio (nulo), importante para impedir que o usuário de determinado sistema omita campos importantes.
Agora utilizando o comando describe funcionarios; observe as características da tabela:

Observamos que o campo fun_codigo tem agora o status "PRI" dentro da coluna "Key" identificando-o como a chave primária da tabela. Podemos observar ainda na coluna "Null" todos os campos com o status "NO" indicando que esses campos não podem ser nulos.

segunda-feira, 21 de janeiro de 2013

Alterar valores das tabelas

Drop
Drop é o comando utilizado para eliminar uma tabela inteira de seus banco de dados, então utilize-a com cuidado.
Exemplo:
DROP table funcionarios;

Alter
Com o comando Alter podemos inserir novas colunas em nossas tabelas já existentes e também modifica-las ou excluí-las.
Inserir coluna:
ALTER table funcionarios ADD fun_cep varchar(8);
Alterar coluna:
ALTER table funcionarios modify fun_cep varchar(9);
Excluir coluna:
ALTER table funcionarios DROP fun_cep;

Obs.: em outros SGBD os comandos para inserir, modificar e excluir podem ser diferente.

Describe
Este comando nos da a descrição de todas as colunas da tabela:
describe clientes;
Na imagem acima podemos observar o resultado: é mostrada uma tabela que informa, respectivamente, todos os nossos campos, os tipos dos campos, se podem ser nulos (vazio), se são chave primária, e extra (outras características).

Update
O update altera os valores de um determinado registro ou coluna.
Exemplo:
UPDATE clientes SET cli_estado = "SP";
Neste exemplo acima todos os registros da coluna cli_estado são alterados para "SP".
Para alterarmos apenas um desses valores devemos usar a clausula WHERE.
Exemplo:
UPDATE clientes SET cli_estado = "SP" WHERE cli_codigo = 1;
Neste segundo exemplo definimos que será alterado para "SP" apenas o registro em que o cli_codigo for 1.

Delete
Com o comando delete podemos excluir registros de uma tabela.
Exemplo:
DELETE from clientes;
Essa é a forma mais simples de se usar, e todos os registros da tabela são excluídos. Porém, podemos usar com o DELETE a clausula WHERE da mesma forma que usamos no exemplo do UPDATE:
DELETE from clientes WHERE cli_codigo = 1;

quinta-feira, 17 de janeiro de 2013

Insert into - Manipulando dados das tabelas

Neste tutorial vou explicar como inserir dados em uma tabela.
Usamos o comando INSERT INTO para inserir dados em nossas tabelas.
Sua estrutura é:
INSERT INTO NOME_TABELA (dados_1, dados_2, ... dados_n);
Vamos antes, criar uma tabela onde armazenaremos os dados de clientes de uma empresa fictícia. Se você ainda não sabe como criar seu banco de dados e suas tabelas acesse: Criando um banco de dados no MySQL.
CREATE TABLE CLIENTES
(
cli_codigo integer,
cli_nome varchar(40),
cli_endereco varchar(40),
cli_cidade varchar(15),
cli_estado varchar(2),
cli_cpf varchar(11),
cli_sexo char(1),
cli_data_cadastro date
);

Agora como inserir dados nos registros que criamos?
Pois já temos nossa tabela, mais não há nada cadastrado dentro dela.
Acompanhe então o código para inserir um novo cliente em nossa tabela 'clientes':
INSERT INTO CLIENTES
(
cli_codigo, 
cli_nome, 
cli_endereco, 
cli_cidade, 
cli_estado, 
cli_cpf, 
cli_sexo, 
cli_data_cadastro
) VALUES 
(
1, 
'George Henrique Wurthmann', 
'Rua Anakin Skywalker', 
'Campinas', 
'SP', 
'33621522522', 
'M', 
'2012-01-17'
);

Depois do comando INSERT INTO CLIENTES informamos entre parenteses os registros onde serão armazenados os dados que vamos inserir nessa tabela. Em seguida, após o comando VALUES informamos entre os parenteses o dados a serem inseridos na tabela. Observe que os dados do tipo texto (varchar) e também o de data (date) são colocados entre aspas simples (').

segunda-feira, 14 de janeiro de 2013

Tipos de dados de um SGBD

Durante o armazenamento de informações em um banco de dados, deve-se analisar cuidadosamente qual o tipo do dado que sera armazenado.
Segue uma tabela com os tipos de dados básicos de um SGBD.

Tipo de dado
Descrição
char
 Uma string de caracteres com tamanho definido pelo usuário. Podemos usar a forma completa character no lugar de char.
varchar
 String de tamanho variável com o tamanho máximo especificado pelo usuário. Podemos usar a forma completa character varying no lugar de varchar.
int
Um número inteiro. Podemos usar em seu lugar a forma completa: integer.
smallint
Um número inteiro pequeno.
numeric
Um número de ponto flutuante (real) com precisão especificada pelo usuário. Exemplo: numeric(3,1) sendo um dos dígitos a esquerda reservado para o sinal.
double
Números de ponto flutuante (real) de precisão dupla.
float
Número de ponto flutuante (real).
date
Uma data de calendário contendo um ano (quatro dígitos), mês e dia do mês. Exemplo: ‘2013-01-14’
time
Hora do dia: Horas, minutos e segundos. Exemplo: ’21:43:00’
timestamp
Combinação de date e time. Exemplo: ‘2013-01-14 ’21:43:00’

fontes de pesquisa:
SILBERSCHATZ, Abraham. KORTH, Henry F.. SUDARXHAN, S.. Sistema de Banco de Dados. 5ª Ed.

sábado, 22 de dezembro de 2012

Criando um banco de dados no MySQL

O MySQL é um SGBD com licença GPL. O que quer dizer que ele é totalmente gratuito.
Por esse e outros motivos ele é um dos banco de dados mais utilizados.
Apesar disso veremos aqui a linguagem SQL que é também utilizada nos outros bancos de dados. Sendo assim esses comandos também serão válidos para outros bancos de dados.
Download MySQL para Windows.
Depois de instalar o MySQL você deve criar seu banco de dados através do Command Line Cliente.
Existem vários programa do tipo Front-end para manipular os seus banco de dados. Mais antes de conhece-los é interessante você usar as linhas de comandos para atividades mais simples. Isso fará com que você entenda melhor qualquer SGBD que você vá utilizar.
Com SQL utilizamos o comando create database bd01; para criar um banco de dados.
Sendo bd01 o nome que dei ao meu banco de dados.
Para ver seus databases use o comando show databases;

Observe na imagem que nosso banco de dados bd01 já foi criado. Vamos então acessa-lo com o comando use bd01;
Ainda não há nada dentro de nosso banco de dados. Se utilizarmos o comando show tables; recebemos a mensagem Empty set.
Para criar tabelas dentro do nosso banco de dados usamos o comando:
CREATE TABLE NOME
(
campo1 tipo,
campo2 tipo
...
);

Exemplo:
CREATE TABLE FUNCIONARIOS
(
fun_codigo integer,
fun_nome varchar(40),
fun_endereco varchar(40),
fun_cargo varchar(15),
fun_salario numeric(5,2),
fun_sexo char(1)
);


Neste comando criamos uma tabela com o nome FUNCIONARIOS e definimos 6 campos para ela:
fun_codigo: campo do código do funcionário do tipo inteiro (integer).
fun_nome: campo para armazenar o nome do funcionário. Seu tipo é de texto com até 40 caracteres.
fun_endereco: campo para armazenar o endereço do funcionário. Seu tipo é de texto com até 40 caracteres.
fun_cargo: campo para armazenar o cargo do funcionário. Seu tipo é de texto com até 15 caracteres.
fun_salario: campo para armazenar o salário do funcionário. Seu tipo é numérico com 5 casas a esquerda (antes de vírgula) e 2 a direita (depois da vírgula).
fun_sexo: campo para armazenar o sexo do funcionário. Seu tipo é de caractere. Podemos armazenar F (feminino) e M (masculino).
Existem diversas outras regras que podemos adicionar a estes campos. Nesse caso criamos uma tabela simples apenas para exemplificar melhor a criação de uma novo banco de dados.
Antes de criar seu banco de dados analise oque você realmente deve armazenar para não criar campos ou tabelas que não tenham real utilidade.