Pesquisar no blog:

Mostrando postagens com marcador Primary key. Mostrar todas as postagens
Mostrando postagens com marcador Primary key. Mostrar todas as postagens

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.

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;