Anda di halaman 1dari 9

Os modelos mais conhecidos e utilizados so: Modelo de dados hierrquico Este modelo utiliza rvores para a representao lgica

dos dados. Esta rvore esta composta de uns elementos chamados ns. O nvel mais alto da rvore denomina-se raiz. Cada n representa um registro com seus correspondentes campos. A representao grfica deste modelo se realiza mediante a criao de uma rvore invertida, os diferentes nveis ficam unidos mediante relaes.

Neste modelo s se podem representar relaes 1:M, por isso apresenta vrios inconvenientes: No se admitem relaes N:M Um segmento filho no pode ter mais de um pai. No se permitem mais de uma relao entre dois segmentos. Para acessar a qualquer segmento necessrio comear pelo segmento raiz A rvore se deve percorrer na ordem designada.

Modelo de dados em rede Neste modelo as entidades se representam como ns e suas relaes so as linhas que os unem. Nesta estrutura qualquer componente pode se relacionar com qualquer outro. Diferentemente do modelo hierrquico, neste modelo, um filho pode ter vrios pais. Os conceitos bsicos no modelo em rede so: O tipo de registro, que representa um n. Elemento, que um campo de dados. Agregado de dados, que define um conjunto de dados com nome.

Este modelo de dados permite representar relaes N:M Modelo de dados relacional Este modelo o mais utilizado atualmente j que utiliza tabelas bidimensionais para a representao lgica dos dados e suas relaes. Algumas de suas principais caractersticas so: Pode ser entendido e usado por qualquer usurio. Permite ampliar o esquema conceitual sem modificar as aplicaes de gerenciamento. Os usurios no necessitam saber onde se encontram os dados fisicamente.

O elemento principal deste modelo a relao que se representa mediante uma tabela.

Banco de Dados Conhecimento Bsico 11 de setembro de 2012 By Jonathan

Descrio da aula Em praticamente todo sistema de informao existente no mundo atual existe um banco de dados que armazena e gerencia estas informaes. Esta aula contm os conhecimentos bsicos necessrios que envolvem os bancos de dados e os sistemas gerenciadores de bancos de dados (SGBD).

Introduo Segundo Date um banco de dados basicamente apenas um sistema computadoriz ado de manuteno de registros. O banco de dados, por si s, pode ser considerado como o equivalente eletrnico de um armrio de arquivamento; ou seja, ele um repositrio ou recipiente para uma coleo de arquivos de dados computadorizados. Seguindo esta definio podemos dizer que o banco de dados sem um gerenciador somente um sistema que armazena dados com uma classificao simples. Simplicidade a chave do funcionamento de um banco de dados, pois quanto mais simples est o acesso informao pelo sistema mais rpido e eficiente o banco de dados. Um banco de dados sem um gerenciador apesar de ser possvel invivel nos dias de hoje, pois o gerenciamento deste banco ficaria por conta da aplicao do sistema, criando muita inconsistncia (erros de informao) e conflitos por todo o banco. Por exemplo, se duas pessoas esto interagindo o sistema e querem modificar o mesmo dado. Certamente o sistema destas duas pessoas iria travar no houvesse um SGBD controlando a prioridade de quem vai modificar o dado. Ou pior, o banco de dados se corromperia e literalmente destruiria toda a estrutura do banco. Nos prximos tpicos, vamos aprender alguns conceitos de bancos de dados e de sistemas gerenciadores de banco de dados.

Modelos de banco de dados Os modelos de banco de dados foram se atualizando conforme o tempo e hoje o mais usado o relacional, mas para fins de estudo, h uma breve explicao dos seus antecessores.

Hierrquico representado por um diagrama com estrutura em rvore onde h uma raiz que simboliza a origem do banco e ns que contm os registros ligados entre si por relaes um para um e N para N. H uma grande taxa de replicao de dados neste modelo, tornando-o invivel nos dias de hoje.

Rede Sucessor do modelo hierrquico, este modelo retirou o conceito de hierarquia, permitindo desta maneira que qualquer registro pudesse ser associado a outro registro. Porm ainda ficou com as limitaes de permisso e somente um registro poderia ser alterado por vez para no houver corrupo na base de dados. utilizado em sistemas de grande porte onde a rapidez mais importante que a estrutura.

Relacional Representado pelo modelo relacional o modelo mais utilizado nos dias atuais, por conter uma estrutura simples e diferente dos outros anteriores, no preciso criar os registros para depois construir a aplicao.

Outra vantagem deste modelo sua engenharia reversa, isto , voc pode tanto passar da estrutura do banco para o MER quanto passar do MER para a DDL.

Administrao de dados Muitas vezes confundida com administrao de bancos de dados, o administrador de dados, tambm chamado de DA (Data Administrator) trabalha no planejamento da organizao e distribuio dos dados de uma empresa. Este cargo geralmente o mais alto na hierarquia dos dados de uma empresa e certamente de grande responsabilidade. ele que determina: Quais os dados sero vistos ou manipulados Quem ver estes dados De que maneira os dados sero gravados Quais dados sero gravados e quais sero descartados Quem pode ver a organizao dos dados e quem no pode.

Com o nome semelhante porm com uma funo diferente, o administrador de banco de dados realiza no banco de dados o que foi decidido pelo administrador de dados. Note que o administrador de banco de dados trabalha atravs do SGBD enquanto o administrador de dados trabalha com a organizao e estrutura dos dados em si. Geralmente o administrador de dados o Gerente da rea enquanto o administrador de banco de dados uma equipe de TI, que por convenincia chamada como um nico DBA (Data base Administrator).

Dado e informao As pessoas geralmente confundem dado com informao, o que compreensvel pois na lngua cotidiana estas duas palavras so consideradas sinnimos. Porm em banco de dados ou em qualquer outra rea da computao so dois termos muito distintos. Podemos considerar dado como uma informao sem significado, um registro sem nenhum sentido. Por exemplo, se anotarmos em um papel a seguinte frase Ricardo, 404-42 e colocarmos na parede da geladeira, ningum vai entender o porqu destas duas palavras. Ento podemos dizer que Ricardo e 404 -42 so dados. Um banco de dados armazena estes tipos de registros, porm se visualizarmos somente o dado no entenderemos o sentido para qual ele foi gravado. Porm seu amigo resolveu dar um sentido frase pois sabia do que se tratava. Ento pegou o seu papel e adicionou a seguinte frase Ligar para o encanador Ricardo, Telefone: 404 -2222. Desta forma conseguimos entender o significado de Ricardo e 404-42. Ento podemos dizer que o seu amigo processou os dados que voc escreveu, resultando em uma informao. Informao so dados processados. Todo dado que passa por um processo se torna uma informao ou outro tipo de dado que ser usado por outro processo at se tornar algo relevante para o ser humano. Dados que contm um significado so informaes. Na aula O que informao? existem outros exemplos para contextualizar de dados e informaes.

Independncia de dados Independncia de dados pode ser considerada como a capacidade de alterao de um campo no banco de dados sem prejudicar as aplicaes que dependem deste banco. Isto significa que um administrador de dados pode modificar a natureza, a ordem e at mesmo o tipo de dado sem que o usurio sequer perceba na aplicao.

Por exemplo, em um sistema de pedidos existe campo status do pedido que pode conter dois valores 1 para aprovado e 2 para negado. Supomos que o cliente deseja poder criar seus prprios status como processando pedido por exemplo. Em banco de dados isto no ser problema pois o administrador do banco de dados altera a tabela para receber mais tipos de status e d permisso para o usurio alterar na aplicao. Resumindo, independncia de dados o poder de alterar um dado no banco de dados sem que o cliente sequer perceba. Existem dois tipos de independncia de dados, listadas a seguir. Independncia Fsica A estrutura dos dados podem ser alteradas sem que haja impacto na aplicao.

Independncia Lgica As sadas dos dados para uma aplicao continuam as mesmas independente das mudanas feitas na estrutura dos dados.

Bancos de dados relacionais o tipo de arquitetura mais popular na atualidade, por possuir em grandes volumes de dados uma maior eficincia no armazenamento e indexao dos registros se comparado com outras arquiteturas. Esta arquitetura consiste em um conjunto de colunas que possuem um determinado domnio. Trocando em midos parece muito com uma tabela, onde o nome da tabela se chama entidade, as colunas so os atributos da entidade e os domnios so o tipo de valor que ser gravado nas colunas (texto, nmero etc). Os principais componentes de um banco de dados relacional esto descritos abaixo. Tabela ou Entidade Todos os dados so armazenados em tabelas, que podem ter relaes com outras tabelas, trocando chaves entre elas. um mecanismo simples porm extremamente eficiente. Por este motivo que o banco de dados relacional tem este nome. Coluna ou Atributo o local lgico onde so colocados os dados, que podem variar de tipo dependendo do atributo. Por exemplo, no atributo nome tero somente textos e no atributo valor podero ter nmeros inteiros e decimais. Os tipos de atributos recebem nomes conforme o que eles armazenam, por exemplo, integer tem o formato de nmeros inteiros, char somente um caractere, varchar so vrios caracteres, decimal so decimais e assim por diante. Registro ou Tupla uma instncia do banco de dados, que traduzindo para um exemplo mais simples uma linha da tabela do banco de dados. Por exemplo, na tabela pessoa no banco de dados temos duas colunas: nome e idade. Esta tabela possui trs registros. Ento podemos dizer que o primeiro registro Carla, 22 o segundo Joo, 33 e o terceiro Paulo, 11. Chave a maneira pela qual as entidades se relacionam. Por exemplo, temos a tabela pedido que precisa ter os dados da tabela cliente. Fazemos uma ligao entre as duas onde a tabela pedido ter uma chave estrangeira de cliente chamada de fkcodCliente. Ento toda vez que na tabela pedido na chave estrangeira fkcodCliente estiver o valor 1, estar se referindo ao registro da tabela cliente que possui a chave codCliente no valor 1. A modelagem de dados baseada em entidade e relacionamentos podem ser convertidas em linguagem DDL para criao de banco de dados relacionais, ou seja, voc pode diagramar o banco de dados em uma ferramenta grfica e depois converter diretamente do grfico para o banco.

Banco de dados distribudos Bancos de dados distribudos tem as caractersticas principais de um banco de dados relacional, porm as colunas e registros so divididos em vrios servidores (separados fisicamente) e agregados novamente em esquemas lgicos (juntos logicamente). Podem ser aplicados os conceitos de fragmentao vertical ou fragmentao horizontal ou ambos, dependendo do acesso aos dados. Este tipo de arquitetura visa uma maior rapidez de acessos aos dados distribudos geograficamente. Existem dois tipos de bancos de dados distribudos, os heterogneos que compe vrios bancos de dados na rede e os homogneos que compe o mesmo banco de dado dividido na rede. O Grande desafio destas redes manter os dados atualizados, pois eles podem estar replicados em vrios locais e todos devem possuir o mesmo valor para garantir a integridade do banco.

Banco de dados orientados a objetos Diferente da arquitetura dos bancos de dados relacionais, os bancos de dados orientados a objetos seguem as caractersticas da orientao a objeto, ou seja, esta arquitetura possui conceitos de herana, polimorfismo e encapsulamento. A explicao destes termos podem ser encontrados na seguinte aula Anlise de sistemas conhecimento bsico. Possuem uma melhor flexibilidade no armazenamento de dados por apresentar os mesmos conceitos de aplicaes orientadas objeto, porm ainda no so utilizadas em bancos de dados de grandes volumes de armazenamento. Diferente tambm da arquitetura tradicional, o modelo de banco de dados orientados a objetos se assemelha muito mais com um diagrama de classe, pois contm os mesmo conceitos e aplicaes. Neste ponto de vista esta arquitetura muito melhor que a sua antecessora, pois no h necessidade dos programadores adaptarem a estrutura da aplicao orientada a objetos com o banco. Infelizmente esta arquitetura no muito utilizada nas empresas pois o mercado tem por padro consolidado a arquitetura de banco de dados relacional , custo de migrao das aplicaes para este novo conceito ainda invivel e alguns aspectos da arquitetura ainda precisam de muito amadurecimento para se equipararem sua antecessora.

Sistemas de gerncia de banco de dados: SGBD Como j citado anteriormente, os primeiros bancos de dados no possuam um SGBD integrado, implicando ao desenvolvedor da aplicao que controlasse todas as entradas e sadas do banco. Este fato ocasionava problemas srios como perda de dados e dados corrompidos, que consequentemente deixavam o sistema em colapso. Para resolver este problema criou-se os sistemas gerenciadores de banco de dados (ou SGBD) que controlam todas as operaes feitas no banco de dados (BD). O SGBD e o BD possuem uma ligao muito forte e por este motivo frequente a confuso que se faz com estes dois termos. Para deixar claro que os dois so diferentes h uma sucinta definio destes dois termos abaixo. BD Banco de dados. Local onde armazenado os dados. SGBD Sistema Gerenciador de Banco de Dados. Cria, modifica e deleta dados do BD.

Atualmente existem milhares de SGBDs, os mais populares esto citados na lista abaixo. MySQL Gratuito. PostgreSQL Gratuito. TinySQL Gratuito. Firebird Gratuito. HSQLDB Gratuito. DB2 pago e Gratuito. SQL-Server pago e Gratuito. Oracle Pago e gratuito. Interbase Pago.

Os SGBDs que so pagos e gratuitos possuem verses diferentes para cada tipo de licena onde as pagas so muito mais robustas que as free, que normalmente servem somente para estudo do SGBD. Os SGBDs so operados pela linguagem SQL que uma abreviao de SEQUEL que so as iniciais deStructured Query Language que na traduo ao portugus fica Linguagem de Consulta Estruturada. Criada para trabalhar com banco de dados relacionais (o tipo mais utilizado na atualidade) vem se atualizando desde os anos 70 para manter sua facilidade e simplicidade de uso.

Porm apesar de ser uma linguagem simples tambm uma linguagem enorme, com milhares de opes e definies diferentes. Como a linguagem padro da maioria dos SGBDs seu conhecimento se torna obrigatrio para qualquer um que deseja trabalhar na rea.

Linguagem de definio de dados Os campos e tabelas em um banco de dados so criados atravs de um compilador da linguagem SQL conhecido como DDL. Nos bancos de dados relacionais, a tabela o principal componente que deve ser criado, seguido dos campos dentro dela. Na linguagem DDL, criamos alm da tabela e os campos, os metadados destes dois componentes, como por exemplo a natureza do campo, se ele um campo do tipo texto, inteiro, ponto flutuante etc. Tambm definimos quais sero as chaves primrias (PK) e chaves secundrias (FK) da tabela. Abaixo est um exemplo utilizado na aula Criar um CRUD em CakePHP passo-a-passo onde a estrutura da tabela criada descrita com mais detalhes. CREATE TABLE IF NOT EXISTS usuarios ( id int(10) NOT NULL AUTO_INCREMENT, nome varchar(32) NOT NULL, sobrenome varchar(32) NOT NULL, email varchar(32) NOT NULL, login varchar(10) NOT NULL, senha varchar(10) NOT NULL, modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id) )

Resumindo em uma frase, DDL o tipo de comando SQL feito para criar tabelas.

Linguagem de manipulao de dados Diferente da DDL onde so criadas as estruturas que vo armazenar os dados, a DML (data manipulation language) a linguagem que vai inserir, atualizar, ler e apagar os dados. Podemos dizer que a DDL a linguagem que monta uma caixa e a DML a linguagem que coloca e tira as coisas de dentro da caixa. chamada de CRUD (create, read, update e delete) as operaes bsicas das DML. Abaixo um exemplo de insero de dados utilizando esta linguagem. SELECT * FROM alunos; SELECT nome, sobrenome, data_nascimento FROM alunos; INSERT INTO alunos (codigo, nome, data_nascimento, observacao ) VALUES (1,Fernando,13/07/1979,Apelido: capin); SELECT * FROM alunos WHERE codigo = 1; UPDATE alunos SET observacao = CONCAT(observacao, String 2);

INSERT INTO alunos (codigo, nome, data_nascimento, observacao ) VALUES (2,Alice Vitria,25/01/2010,NULL); DELETE FROM alunos WHERE codigo = 2; DELETE FROM alunos;

Com a independncia de dados possvel usar a mesma SQL em qualquer aplicao e em qualquer plataforma. Alguns frameworks de desenvolvimento chegam at a esconder a DDL e DML, deixando o programador vontade para manipular os dados focando-se somente no desenvolvimento na aplicao.

Propriedades e operaes das relaes A lgebra Relacional um conjunto de operaes e relaes que fazem parte da manipulao de dados. Cada operao pode usar uma ou mais relaes para obter os dados desejados. As principais relaes esto listadas abaixo. Seleo Seleciona registros que obedecem uma certa condio. Projeo Mostra todos ou certos registros de uma tabela. Unio Junta duas tabelas e mostra todos os registros que obedecem uma certa condio. Diferena Junta duas tabelas e mostras todos os registros que no fazem parte de uma condio.

Produto Cartesiano Mostra todos os registros de uma tabela que correspondem ao registro de outra tabela. Interseco Mostra todos os registros que possuem um mesmo atributo em duas tabelas. Juno Faz um produto cartesiano e na relao criada por ele faz uma seleo.

Juno natural Faz uma juno porm s mostra os atributos que possuem nomes iguais entre as duas tabelas. Juno externa Faz uma juno porm mostra todos os atributos dos registros da seleo. Sum Soma os valores de uma coluna da tabela. Avg Faz a mdia de valores de uma coluna da tabela. Count Conta quantos registros existem em determinada coluna. Count-Distinct Conta os registros diferentes em uma determinada coluna.

Estes s so algumas das operaes que so possveis de se fazer em um SGBD. Existem muitas outras e por isto existem milhares de solues disponveis para um determinado problema. Porm recomendado sempre se comece a fazer as operaes da tabela que contm mais registros para a tabela que contm menos registros. Isto evita que os registros passem por vrias leituras, aumentando assim a rapidez da execuo da operao.

Conceitos de transao Uma transao uma unidade lgica de trabalho. Trocando em midos, so todos os passos necessrios para fazer qualquer tipo de coisa em um banco de dados. Por exemplo, se voc alterou um dado de uma tabela, voc fez uma transao. E se caso voc tentar deletar um campo e no conseguir, a transao foi cancelada. preciso ter um controle nas transaes para garantir a integridade de um banco de dados. Por exemplo, voc vai um banco sacar uma quantia de dinheiro. Chegando ao caixa eletrnico, fez todos os passos e s est

esperando o dinheiro cair. Porm de repente acontece uma queda de energia. Voc no ficou com o dinheiro porm foi descontado no banco de dados. O que fazer para garantir que no seja retirado o dinheiro da sua conta no banco de dados? Simples, uma confirmao. Neste tipo de transao, s confirmada transao quando o cliente efetivamente retirou o dinheiro. Se acontecer alguma falha ou interrupo no processo, a transao cancelada e todos os valores voltam como era antes. RollBack o termo usado para a ao que um banco de dados faz quando retorna os valores de campos de uma transao mal sucedida. E Commit o termo usado quando uma transao bem sucedida. Podemos usar uma explicao mais simples. COMMIT Deu tudo certo. A transao foi realizada com sucesso e os valores que ela criou ou modificou so gravados no banco. ROLLBACK Houve um erro. A transao foi cancelada. Os valores do banco permanecem os mesmos como se a transao nunca tivesse existido. muito importante usar estas duas instrues com prudncia, pois dependendo de qual se utilizar o comportamento do SGBD no banco completamente diferente.

Projeto lgico de modelagem de dados Antes de gerar e administrar um banco de dados, preciso planejar, refinar e normalizar este banco para que ele funcione da melhor maneira possvel, mantendo sua consistncia e sempre apresentando dados vlidos. Existem ferramentas gratuitas que auxiliam o planejamento e construo de um banco de dados, algumas esto listadas nos tpicos seguintes.

Modelo entidade relacionamento: MER O modelo de entidade e relacionamento (MER) um tipo de diagrama usado para modelar a estrutura de tabelas, relacionamentos e atributos em um banco de dados. Ele um modelo conceitual, ou seja, no diretamente aplicvel no banco, porm pode-se derivar deste um modelo relacional que mostra exatamente como vai ficar estruturado no banco. No existe um padro definindo do MER, porm existem conceitos dos quais se originam a maioria das suas variantes. Os principais conceitos deste modelo esto listados a seguir. Entidade um objeto que existe no mundo real e que possui dados que vo ser utilizados dentro do sistema. Por exemplo, a entidade camisa provavelmente teria os atributos tamanho, cor, marca, valor etc. Atributo So caractersticas de uma determinada entidade. Se compararmos com o banco de dados, uma entidade uma tabela do banco de dados enquanto um atributo uma coluna desta tabela. Chave Atributo identificador de registros de uma entidade. Os valores da chave devem ser nicos, isto , no se podem repetir em uma tabela do banco de dados. Por exemplo, se criarmos a tabela Pessoa, a chave provavelmente seria o atributo RG ou CPF, pois nenhuma pessoa possui estes documentos com o mesmo nmero. Geralmente as chaves possuem a palavra cod seguida pelo nome da tabela, na tabela bola seria codBola. Relacionamento So as ligaes entre as entidades, o que elas possuem uma com a outra. Por exemplo, a tabela aluno possui a chave estrangeira fk-cod-turma pois um aluno pertence uma turma. Quanto ao quesito da definio da quantidade, temos o conceito de cardinalidade. Cardinalidade Define quem de quem nos relacionamentos. No exemplo acima a enti dade aluno teria uma cardinalidade 1 para 1 em turma, pois um aluno pertence a uma nica turma. Porm a entidade turma possui uma cardinalidade 1 para N em aluno pois uma turma pode ter vrios alunos. Agregao Quando duas entidades distintas comportam-se como somente uma nica entidade. aconselhado que esta entidade seja expandida em outras entidades para no criar gargalos no banco de dados, isto , um fluxo muito alto de dados em somente uma entidade.

Generalizao/Especializao Uma entidade genrica como o prprio nome diz uma entidade que tem um sentido muito amplo, onde normalmente entidades denominadas especializadas acabam herdando os campos e associaes da entidade genrica.

Dicionrio de dados Um dicionrio de dados simplesmente um documento que contm os meta -dados do banco de dados, que nada mais so que informaes sobre cada tabela, campo, valores possveis, tipos de valores, etc. H uma explicao deste item na aula Anlise de sistemas conhecimento bsico.

Normalizao Para garantir um banco de dados ntegro e consistente possvel adotar as formas normais na etapa do planejamento da estrutura do banco de dados. Estas formas nada mais so que diretrizes usadas para retirar erros e ms interpretaes feitas em uma estrutura do banco de dados. Existem trs nveis de formas normais que falaremos sucintamente abaixo. 1FN Tabelas no aninhadas, ou seja, todos os campos devem estar no lugares corretos.

2FN Deve estar na 1FN e tambm no ter dependncias parciais, isto , os atributos no podem se duplicar nas tabelas. 3FN Deve estar na 2FN e tambm no ter dependncias transitivas, isto , nenhuma coluna que no chave deve depender de outra coluna no-chave.

Concluso Os bancos de dados so a alma de qualquer aplicativo, servio e sistema. Por isto conhecer um pouco sobre banco de dados ajuda a entender como as aplicaes funcionam, como a distribuio de dados em um sistema empresarial feita e principalmente o porque do DBA s pode trabalhar em horrios que no h fluxo de dados no sistema. Alterar uma estrutura de um sistema grande pode ocasionar danos catastrficos, como por exemplo, somar um valor por mais um zero. Assim 100 vira 1.000 e 1000 vira 10.000 e assim por diante. Se precisar de mais informaes sobre determinado assunto visite as referncias pois h muitos assuntos que foram resumidos o mximo possvel deixando somente o aprendizado bsico. Dvidas No deixe de comentar! Seu comentrio vale mais que 1.000 acessos! Se houver alguma informao errada na aula por favor, comente para aumentar a qualidade da aula e se voc estiver com uma pergunta na cabea, no deixe de perguntar, porque quem pergunta aprende com a resposta. Esta aula fica por aqui, obrigado pela visita!

Referncias Esta aula gerou muitas referncias e por este fato elas foram divididas em categorias para melhorar a pesquisa de contedos.

Modelos de bancos de dados

Anda mungkin juga menyukai