quarta-feira, 2 de outubro de 2013

Atributos | Chaves - Primária, Secundária e Estrangeira

É um atributos utilizado para indexar dados. Há três tipos de chaves:

  • Primária
  • Estrangeira;
  • Secundária;

Chave primária
É o atributo que permite identificar uma única ocorrência de uma tupla em uma Entidade. Dessa forma, seu conteúdo deve ser único, exclusivo e imutável para cada linha dessa Entidade. Todos os demais atributos da entidade devem depender unicamente desse atributo.

Caso não exista um atributo que possa assumir a posição de chave primária, é preciso criá-lo. Veja que nem todos campos é uma boa chave. Normalmente utilizamos campos numéricos por serem localizados mais rapidamente pelos bancos de dados. Valores alfanuméricos grandes têm acesso mais lento.

Dessa forma, fica claro que toda tabela deve conter uma chave primária. Muitas vezes encontramos o termo super-chave para identificar a chave primária. Trata-se apenas de um nome diferente para designar a mesma coisa, e, portanto não é preciso se preocupar com isso.

Eventualmente uma chave primária pode conter mais de um atributo. Nesse caso, a chave conterá mais de um atributo, mas será considerada a chave da tabela. A união dos dois atributos é que deve garantir o acesso a uma única linha da entidade. Esse caso de chave primária é chamado de Chave Concatenada.

Chave estrangeira
É o atributo que estabelece a relação de uma Entidade com a Chave Primária de outra Entidade e permite uma relação entre entidades. Isto ocorre quando uma Entidade dependente herda a chave da Entidade Fundamental exatamente para estabelecer o relacionamento entre elas.


Chave Secundária
Esta chave é utilizada como meio de classificação e pesquisas em entidades. Sempre que houver a necessidade de buscar informações semelhantes, em ordem crescente ou decrescente, em função de datas, valores ou status predefinidos, criam-se chaves secundárias.
Podem também ser concatenadas a outras chaves secundárias para extrair a informação desejada.

terça-feira, 1 de outubro de 2013

O que são Atributos? | Modelagem de Dados

Os atributos são informações básicas que qualificam uma entidade e descrevem seus elementos ou características. Quando transpostos ao modelo físico (ao banco de dados), chamamos os atributos de campos ou colunas.

Note que todas as entidades devem possuir os atributos necessários ao andamento das operações da empresa, do contrário a entidade não será necessária para o sistema. Esses atributos devem representar o objeto na sua totalidade.

Há uma tendência a confundir Entidade e Atributo. Tenha sempre em mente que um Atributo é uma característica, logo não contém um grupo de informações. Por sua vez, uma Entidade sempre é um grupo. No mínimo são necessários dois atributos para criar uma entidade. Uma entidade com um único atributo normalmente será agregada a outra entidade existente ao modelo.

Exemplos de atributos as entidades:
- Entidade Pessoa: nome, endereço, documento, data de nascimento, telefone, e-mail;
- Entidade Nota Fiscal: série, número, data e emissão e cliente;

Nota-se, portanto, que ao utilizarmos o conceito de atributos em entidades estamos querendo qualificar ao máximo aquele objeto do mundo real. Essas informações muitas vezes não correspondem a todas as informações possíveis daquele objeto, mas sim às informações relevantes para o funcionamento do sistema.

No exemplo do catálogo de CDs, não teremos cada um dos CDs armazenados no banco de dados, mas sim as características que nos permitirão identificar qual CD o cliente quer comprar, quais músicas há naquele CD, autores, gravadoras etc. Não importa se há várias unidades do mesmo CD disponíveis para venda na loja (a menos que se esteja desenvolvendo um sistema que controle o estoque cd CDs). Esta deve ser uma preocupação quando estivermos desenvolvendo um novo sistema – até onde exatamente queremos
chegar com o sistema.


Um atributo chave é um dos atributos de um CE especialmente projetado para identificar de forma única qualquer entidade do CE.`É importante enfatizar a expressão acima especialmente projetado, porque a unicidade do valor do atributo determinante deve ser garantida para qualquer conteúdo futuro do CE e não apenas para a instancia atual do CE. Resumindo: um CE fica especificado no modelo entidade-relacionamento, dado o nome do CE, os nomes dos atributos do CE, os nomes do CE e dentre esses o nome do atributo chave. Uma forma textual de definir um CE poderia ser, por exemplo:

Funcionário (numf, RG, CPF, nome, end, salário)

Tupla
É uma estrutura de atributos intimamente relacionados e interdependentes que residem em
uma entidade. Quando transposta ao modelo físico, uma tupla equivale a um registro ou linha da tabela.

segunda-feira, 30 de setembro de 2013

O que é Entidade? | Modelagem de Dados

Entidade é um agrupamento lógico de informações inter-relacionadas necessárias para a execução das atividades do sistema. Uma entidade normalmente apresenta um objeto do mundo real ou, quando não é, contém informações relevantes às operações da empresa. Quando transposta ao modelo físico (ao banco de dados), chamamos a entidade de tabela. Uma entidade é entendida como um objeto concreto ou abstrato do sistema. São informações necessárias e que, portanto, devem ser armazenadas.

Ao transpor o Modelo Relacional a um modelo Orientado a Objeto, a Entidade passa a ser uma Classe ou categoria do objeto ao qual agregaremos os respectivos métodos. Ao transpor o Modelo Relacional a um modelo Orientado a Objeto, a Entidade passa a ser uma Classe ou categoria do objeto ao qual agregaremos os respectivos métodos. Cada entidade deve conter múltiplas ocorrências ou instâncias do objeto que representa. Isso não permitirá incorrer no erro de confundir a Entidade com a Instância. A entidade é a classe ou categoria (CD), e a instância é um objeto específico (no exemplo: Mais do Mesmo
ou Bate-Boca).

Em resumo, podemos dizer que uma entidade é tudo aquilo que pode ser individualizado e que possui existência própria (física ou abstrata). As entidades são caracterizadas por algumas propriedades específicas denominadas atributos. Cada atributo possui um nome e um valor específico para a entidade.

Um conjunto de entidades (CE) é um conjunto matemático no sentido de que todos os seus elementos são distintos, e não existe nenhuma ordem intrínseca entre eles. Isto implica que valores correspondentes dos atributos de duas entidades não podem ser todos iguais. Em outras palavras, a lista de atributos de um CE deve ser suficiente para caracterizar completamente qualquer entidade do conjunto.

Exemplo: Suponhamos que queremos registrar para um conjunto de pérolas as seguintes informações: cor, diâmetro, peso, lote; elas podem não ser suficiente para distinguir duas pérolas que podem ter os mesmos valores para cor, diâmetro, peso e lote. Se quisermos que essas pérolas façam parte de um conjunto de entidades, algumas propriedades teriam que ser incluídas, como local da extração, empresa, pescador etc. Um exemplo mais realista é o caso de itens fabricados em série cujos atributos mensuráveis são idênticos; nessa caso é comum distingui-los através de um número de série impresso no item – um atributo chave
(chave primária).

Exemplos de Entidade:


Entidades Associativas
Há um caso específico para as Entidades Associativas: sempre que, além do simples relacionamento entre as duas entidades fundamentais, houver outras informações específicas da nova entidade criada (como, por exemplo, a quantidade e o valor entre pedido x produto ou bimestre, nota e faltas do aluno x matéria), ela será chamada de entidade Associativa Atributiva.

No catálogo de CD dado como exemplo, podemos identificar facilmente duas entidades: CD e Música. Observando com mais cuidado, vê-se que Gravadora e Autor também possuem uma estrutura independente. Isso porque há outras informações que, apesar de não estarem descritas na planilha, são de fato apenas da Gravadora e do Autor. Exemplo: endereço, data de nascimento, telefone etc. Para isso é importante entender o que são os atributos (características) de uma Entidade.

sexta-feira, 27 de setembro de 2013

Objetivos da Modelagem de Dados

O principal objetivo da Modelagem de Dados é desenvolver um modelo que, contendo entidades e relacionamentos, seja capaz de representar os requerimentos das informações do negócio. Veja o que poderia ser um exemplo de catálogo de CDs:


Um dos principais problemas relacionados com bancos de dados é redundância (repetição) de informações. Sempre que houver duas informações, nunca se saberá em qual delas pode confiar.

Imagine que na tabela exemplo alguém altere o nome do CD apenas na linha 2 para “Mais ou Menos”. Qual dos nomes estaria correto? É por isso que devemos criar um banco de dados com um mínimo de redundância, evitando esse problema.

Exatamente para evitar a redundância é que se cria uma série de tabelas no banco de dados, e não apenas uma. Naturalmente isso aumenta a complexidade da operação, mas traz uma enorme vantagem ao evitar a redundância.

Um outro objetivo é a economia de espaço. Quando se admite a redundância, é muito comum ter que repetir nomes, descrições, datas etc. Ao isolarmos essas informações em tabelas distintas e ao relacionarmos as tabelas por um código comum estamos economizando espaço de armazenamento.

No exemplo anterior, identificamos que há diversos dados redundantes: Código do CD, Nome do CD, Nome da Gravadora, preço, autor. Além do mais, a simples repetição desses campos representa um espaço gasto sem necessidade. Podemos separar as informações em mais de uma tabela, armazenando apenas uma vez cada informação distinta e relacionando as tabelas.

Exemplo: podemos criar uma tabela para armazenar os dados dos CDs (Codigo do CD, Nome do CD, Nome da gravadora e preço) e outra para armazenar as Musicas (Número da faixa, Nome, Autor e Tempo). Basta acrescentar o código do CD em Músicas e teríamos uma relação entre Música e CD. Contudo, somente isso não é suficiente.

quinta-feira, 26 de setembro de 2013

Abordagem Relacional: o Modelo de Entidade x Relacionamento (MER)

A Abordagem Relacional é a utilização de conceitos de Entidade e Relacionamento para criar as estruturas que irão compor o banco de dados. Partindo sempre da necessidade do usuário ou grupo de usuários do sistema, iniciamos a pesquisa das necessidades de informações desses usuários.

A definição do escopo do sistema é, portanto, importante para o início do trabalho de análise de dados.

É comum no início do desenvolvimento de um sistema que não tenhamos a noção exata da tarefa a ser realizada. O maior erro nessa fase é admitir que já sabemos o que deve ser feito, seja por experiência anterior, seja por falta de tempo para conversar com os usuários do sistema.

Para minimizar esse problema, devemos criar uma estrutura gráfica que permita identificar as Entidades de um sistema e como estas se relacionam.

Nessa fase é importante saber quais informações são importantes para o sistema e que deve ser armazenado. A esta representação gráfica dá-se o nome de Modelo de Dados.

Devemos notar que o Modelo de Dados dará suporte a toda a empresa, incorporando as informações necessárias para o andamento dos negócios. Ele será composto de Entidades e Relacionamentos, daí ser conhecido por Modelo de Entidade x Relacionamento (MER).

Vantagens na utilização do Modelo de Entidade x Relacionamento:

  • Sintaxe mais robusta: o modelo documenta as necessidades de informação da empresa de maneira precisa e clara;
  • Comunicação com usuário: os usuários podem, com pouco esforço, entender o modelo;
  • Facilidade de criação: os analistas podem criar e manter um modelo facilmente;
  • Integração com várias aplicações: diversos projetos podem ser inter-relacionados utilizando-se o modelo de dados de cada um deles.
  • Utilização universal: o modelo não está vinculado a um banco de dados espedífico, mas sim ao modelo da empresa, o que garante sua independência de implementação.

quarta-feira, 25 de setembro de 2013

Introdução ao Banco de Dados Relacional

Dados relacionados entre si. É uma característica fundamental dos bancos de dados modernos, ou seja,
permite o inter-relacionamento existente entre os dados e a aplicação de regras de consistências, outra característica fundamental é a atomicidade – requisito de que certas operações sobre os dados devem ser feitas de forma conjunta e indivisível a fim de preservar a consistência da base de dados mesmo na presença de falhas no equipamento ou na comunicação com a base de dados.

Bases de dados usualmente requerem o acesso simultâneo ou concorrente por vários usuários, cujas operações podem interagir gerando inconsistências, como por exemplo, a aquisição de uma passagem aérea para dois passageiros distintos.

Tabelas

Tabelas são depósitos de informações, que podem ser entendidas como um conjunto de linhas e colunas. As colunas de uma tabela qualificam cada elemento (no caso, a linha) com informações relacionadas ao objeto. As tabelas são organizadas de modo a receber e manter as informações de determinadas entidades. Devemos manter em tabelas todos os atributos da entidade em questão.

terça-feira, 24 de setembro de 2013

Banco de Dados Livres vs Banco de Dados Proprietários

Quando estamos implantando um banco de dados, às vezes, nos deparamos com a dificuldade de escolher um banco de dados correto para a nossa empresa. É difícil, de uma hora para outra saber qual o melhor banco a ser adotado. Temos que considerar diretamente o quanto (valor) a empresa está disposta a investir em no sistema de informação, qual o número de usuários que irão se conectar simultaneamente, a possibilidade de expansão da empresa para outros sites, quantas filiais a empresa possui, se o banco de dados vai ser centralizado ou distribuído, quantidade de dados armazenado em um determinado período etc.


Não tem como julgar simplesmente que um banco de dados é melhor que o outro antes de analisar qual a verdadeira necessidade da empresa. Dentro dos banco de dados comerciais, os mais conhecidos e utilizados são Oracle, MS SQL Server, UDB IBM DB2, MS Access, Informix etc. Já os banco de dados livres encontram-se o MySQL, Firebird e PostgreSQL.

Hoje, por causa da grande perda de mercado para os bancos de dados livres, os fabricantes de banco de dados comerciais resolveram criar a versão “EXPRESS” dos seus bancos de dados comerciais, que geralmente são limitados pelo número de processadores suportados, pela quantidade de memória suportada e pelo tamanho em disco do banco de dados, porém, com custo “ZERO” dessas versões.

Geralmente, as versões expressas são totalmente compatíveis com as versões comerciais, sendo muito fácil sua migração para a versão comercial.

Detalhes e características do SQL Server 2005 Express podem ser encontradas em:
http://www.microsoft.com/sql/prodinfo/features/compare-features.mspx

Detalhes e caracteristicas do DB2 Express podem ser encontradas em:
http://www.ibm.com/br/businesscenter/catalogo/db2_express-c.phtml

Detalhes e características do SQL Servwe 2008 Express podem ser encontradas em:
http://msdn.microsoft.com/pt-br/library/ms143685(v=sql.100).aspx
http://blogs.msdn.com/b/sqlexpress/archive/2010/04/21/database-size-limit-increased-to-10gb-in-sql-server-2008-r2-express.aspx

segunda-feira, 23 de setembro de 2013

Aplicações em Quatro Camadas - Banco de Dados

Esse modelo é uma atualização do modelo de três camadas, tendo a principal ideia de tirar a camada de apresentação do cliente e centralizá-la em um determinado ponto, sendo a grande maioria dos casos um servidor web (iis, apache, etc). Para isso, o acesso aos programas não são mais instalados nos clientes e sim acessados através de browsers, como o internet explorer, o firefox, o netscape navegator etc. Com isso, os clientes não precisam ser instalados maquina a maquina. As camadas são: cliente, que são os browsers; a camada de apresentação, que geralmente está alocada no servidor web, podendo ser composta de páginas HTML, ASP, PHP etc; camada lógica, que são alocadas as regras de negócio e a camada de dados, onde temos o servidor de banco de dados.

Aplicações em Três Camadas - Banco de Dados

A principal ideia desse modelo é a retirada das regras de negócio do cliente e centralizá-la em um determinado ponto, o qual é chamado de servidor de aplicação. O acesso ao banco de dados é feito por esse servidor de aplicação. A grande vantagem desse modelo em relação ao modelo Cliente/Servidor é a atualização do servidor de aplicação em um único ponto, não necessitando trocar os executáveis de todas as estações. Com isso, a camada de apresentação continua nos clientes, a camada de lógica (regras de negócio) ficam em um servidor e a camada de dados (banco de dados) ficam em outro ponto, facilitando uma boa parte da manutenção.

sexta-feira, 20 de setembro de 2013

Processamento distribuído

Processamento distribuído significa que máquinas diferentes podem estar conectadas entre si em uma rede de computadores como a internet, de tal modo que uma única tarefa de processamento de dados possa se estender a várias máquinas na rede. A comunicação entre as várias máquinas é efetuada por algum tipo de software de gerenciamento de rede.

Segundo o Wikipedia, um sistema de processamento distribuído ou paralelo é um sistema que interliga vários nós de processamento (computadores individuais, não necessariamente homogéneos) de maneira que um processo de grande consumo seja executado no nó "mais disponível", ou mesmo subdividido por vários nós. Conseguindo-se, portanto, ganhos óbvios nestas soluções: uma tarefa qualquer, se divisível em várias subtarefas pode ser realizada em paralelo.