Você está na página 1de 37

CURSO TCNICO

DE

INFORMTICA

MODELAGEM DE DADOS 1

Primeira Etapa

______________________________________________________Modelagem de Dados 1

CAPITULO I VISO GERAL DO GERENCIAMENTO DE BANCO DE DADOS

O computador uma mquina como muitas outras, mas que possui algumas caractersticas que a distinguem das demais, como a velocidade do processamento e a capacidade de armazenamento. um equipamento que, com o passar dos anos, se tornou de uso pessoal e profissional, podendo ser utilizado no lazer e no dia-a-dia, nas mais variadas tarefas. Olhando por um prisma mais direto, o computador possui trs tarefas bsicas: entrada, processamento e sada de dados. A entrada de dados responsvel pela importao das informaes para o computador e est relacionada diretamente interao com o usurio, pois na maioria das vezes depende da informao digitada por ele atravs da forma mais simples de interao: o teclado. J a sada de dados representa os dados informados na entrada, mas que, de alguma forma, foram transformados atendendo as expectativas do usurio, sendo apresentados por meio de algum dispositivo de sada, como impressora ou monitor. O processo de transformao dos dados de entrada em dados de sada chama-se processamento. Com o passar dos anos, uma nova tarefa to importante quanto s outras foi adicionada a esse ambiente: o armazenamento dos dados. To importante quanto informar os dados, process-los e apresent-los, a sua organizao e armazenamento no computador passou a ser uma tarefa essencial, principalmente pelo grande nmero de usurios que podem interagir com o equipamento ao mesmo tempo. Com o passar dos anos, o nmero de dados processados cresceu de forma assustadora e, de forma inversamente proporcional, o computador tem diminudo em dimenses fsicas e aumentado em capacidade de armazenamento e processamento de dados. Gerenciar e armazenar dados tornou-se uma tarefa complexa, que envolve muitas ferramentas e tecnologias. Com a grande evoluo da computao ou da informtica em geral, os equipamentos tm evoludo muito, o que tem tornado o seu custo mais acessvel. Com isso, o uso do computador tem atingido os mais variados perfis de usurios. A principal finalidade do computador armazenar dados, que possam ser acessados a qualquer momento e em qualquer lugar do mundo. Quanto maior o nmero de computadores, maior o nmero de dados a serem gerenciados e processados. Como a tendncia que esse nmero aumente a cada ano, a complexidade dos dados armazenados dever ser um grande problema na rea de informtica. Em paralelo a esse grande nmero de novos usurios de computadores, bem como expanso na facilidade de acesso aos computadores e s novas tecnologias em hardware, h tambm uma grande evoluo na rea de softwares, principalmente os que se destinam ao gerenciamento dos dados armazenados no computador. Esses softwares Pgina 2 de 37

______________________________________________________Modelagem de Dados 1
ou aplicativos se destinam a uma rea especfica da informtica, que se chama banco de dados.

A rea de banco de dados inclui ferramentas e principalmente pessoas especializadas, capazes de compreender as diferentes tecnologias do mercado, escolher a que melhor atende as suas expectativas e propor e modelar solues aos diversos problemas que faro parte de suas atividades profissionais.

1.1- SISTEMA DE BANCO DE DADOS


Um Sistema de Banco de Dados basicamente um sistema computadorizado de manuteno de registros; em outras palavras, um sistema computadorizado cuja finalidade, geral armazenar informaes e permitir que os usurios busquem e atualizem essas informaes quando as solicitar. As informaes em questo podem ser qualquer coisa que tenha algum significado ao indivduo ou organizao a que o sistema deve servir ou seja, qualquer coisa que seja necessria para auxiliar no processo das atividades desse indivduo ou dessa organizao.

O Sistema de Banco de Dados envolve quatro componentes principais: dados, hardware, software e usurios. Dados Um banco de dados nada mais do que um repositrio de dados, que pode ser classificado como integrado ou compartilhado. O banco de dados integrado visa ao controle de total eliminao da redundncia de dados geralmnete encontrada em sistemas de arquivos comuns (gerenciadores de arquivos); o compartilhado visa ao acesso de vrios usurios a uma mesma parte dos dados, com finalidades distintas. Hardware Os componentes de hardware do sistema consistem em:

Pgina 3 de 37

______________________________________________________Modelagem de Dados 1
Volumes de aramazenamento secundrio normalmente, discos magnticos -, que so usados para manter os dados armazenados, juntamente com os dispositivos de E/S associados (unidades de discos, etc.), controladores de dispositivos, canais de E/s e assim por diante.

Processador(es) de hardware e memria principal associada, que so usados para dar suporte execuo do software do Sistema de Banco de Dados. Software Entre o banco de dados fsico ou seja, os dados fisicamente armazenados e os usurios do sistema existe uma camada de software, conhecida como gerenciador de banco de dados ou servidor de bando de dados ou, mais frequentemente, como sistema gerenciador de banco de dados (SGBD). Todas as requisies de acesso ao banco de dados so tratadas pelo SGBD; os recursos para acrescentar e remover arquivos (ou tabelas), buscar dados e atualizar dados em tais arquivos ou tabelas, e assim por diante, so facilidades fornecidas pelo SGBD O SGBD , de longe, o componente de software mais importante de todo o sistema mas no o nico. Outros componentes incluem utilitrios, ferramentas de desenvolvimento de aplicaes, recursos para auxiliar no projeto, geradores de relatrios e o gerenciador de transaes. O termo SGBD tambm usado para se referir, genericamente, a algum produto especfico de algum fornecedor em particular. Usurios Consideramos trs classes gerais de usurios: Os programadores de aplicaes, responsveis pela escrita de programas de aplicaes de banco de dados em alguma linguagem de programao. Esses programas acessam o banco de dados emitindo a requisio apropriada ao SGBD. Os usurios finais acessam ao banco de dados interativamente. Os profissionais da rea de banco de dados, saber: Administrador de Dados que a pessoa responsvel pelos dados da empresa. Os dados constituem um dos bens mais valiosos da empresa, imperativo que deva existir alguma pessoa que entenda esses dados e as necessidades da empresa com relao a esses dados, em um nvel mais elevado da administrao. seus trabalho decidir que dados devem ser armazenados no banco de dados, alm de estabelecer normas para manter e tratar esses dados, uma vez que venham a ser armazenados. Administrador de Banco de Dados (DBA) o tcnico responsvel pela implementao das decises do Administrador de Dados. um profissional de tecnologia da informao. Seu trabalho criar o banco de dados propriamente dito e implementar os controles tcnicos necessrios para por em prtica as diversas decises sobre normas tomadas pelo Administrador de Dados. Tambm responsvel por assegurar que o sistema operar com desempenho adequado e por oferecer vrios outros servios tcnicos.

1.2- O QUE UM BANCO DE DADOS?


Pgina 4 de 37

______________________________________________________Modelagem de Dados 1
No vasto mundo da tecnologia da informao, h poucas coisas to fascinantes quanto forma de armazenamento, controle e recuperao dos dados referentes a sistemas de informao. A anlise de um sistema de informao comea pela definio do objetivo a ser atingindo e das informaes que se pretende armazenar a respeito do assunto que define o sistema. A primeira providncia a tomar o contato direto com os dados pertinentes s informaes de que se deseja tratar. A utilizao prtica dessas informaes, mesmo sabendo que parecem ser complexas, de domnio relativamente fcil a partir do momento em que se decide sobre as configuraes bsicas para guardar, controlar e recuperar em tempo hbil os dados especficos que apiam as informaes desejadas. Quando se abordam os conceitos de dados e informaes, deve-se ter presente que dado um conjunto de smbolos arrumados de forma a representar uma informao, e que a informao propriamente dita compreende os dados que foram inseridos e processados por um computador, relativos a um assunto determinado, vrios assuntos, ramos de atividades, produtos ou servios, que se tornam disponveis a quem os requisitou. A informao, portanto, um dado ao qual se agrega valor e que afeta as empresas de forma efetiva, o que a transforma num bem to precioso quanto o seu patrimnio. Para que o crescimento de uma empresa no mercado seja alcanado e para que ela consiga tratar as novas tecnologias apresentadas, ter que se preocupar muito em como organizar e recuperar suas informaes. Nos mais elementares campos do conhecimento humano, existem repositrios gigantescos de dados que permitem a recuperao de informaes cruciais para o atendimento das necessidades das pessoas e das organizaes. Documentos de identidade, registros de nascimento e de casamento, ttulos eleitorais, carteiras de motoristas, entre outros, so exemplos conhecidos desses gigantescos repositrios. Todas as vezes que algum realiza uma transao num caixa eletrnico do seu banco, deseja obter informaes que sejam geradas de forma rpida e restrita, sem redundncia e, principalmente, ntegras. A dificuldade em se manipular e controlar os imensos repositrios de dados existentes leva a estudos cada vez mais apurados das tecnologias aplicadas aos mtodos de armazenamento de informaes e seus impactos no uso de computadores. Quando se estudam as formas de armazenamento, controle e recuperao de dados, necessrio fazer referncia aos computadores envolvidos e aos relacionamentos existentes entre eles para a determinao dos tipos e da representao desses tipos por meio de modelos ou esquemas fceis de serem tratados. Uma coleo de informaes relacionadas entre si, referentes a um mesmo assunto, e organizadas com o propsito de servir de base para que o usurio as recupere, tire concluses e tome decises, o que define um banco de dados. 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. Os usurios de um sistema podem Pgina 5 de 37

______________________________________________________Modelagem de Dados 1
realizar (ou melhor, solicitar) que o sistema realize diversas operaes envolvendo tais arquivos por exemplo: Acrescentar novos arquivos ao banco de dados; Inserir dados em arquivos existentes; Buscar dados de arquivos existentes; Excluir dados de arquivos existentes; Alterar dados em arquivos existentes; Remover arquivos existentes do banco de dados.

De uma forma acadmica pode-se definir um banco de dados como uma coleo de dados persistentes, usada pelos sistemas de aplicao de uma determinada empresa.

O termo empresa, aqui, simplesmente um termo genrico para qualquer organizao comercial, cientfica, tcnica ou outra organizao razoavelmente autnoma. Uma empresa poderia ser um nico indivduo (com um pequeno banco de dados pessoal) ou uma corporao ou grande empresa completa (com um enorme banco de dados compartilhado), ou qualquer coisa entre esses extremos (uma fbrica, uma universidade, um banco, um hospital, uma unidade do governo, etc.). Qualquer empresa precisa necessariamente manter muitos dados sobre a sua operao. Esses dados so persistentes. As empresas que mencionamos, anteriormente, normalmente incluiriam os seguintes itens (respectivamente) entre seus dados persistentes: sobre produtos, sobre alunos, sobre pacientes, sobre planejamento, etc. difcil assinalar a real importncia de um banco de dados sem o estudo e a prtica dos conceitos relacionados, mas, em sntese, um banco de dados prev a manuteno dos dados organizados, permitindo atualizao, incluso e excluso de dados, garantindo consistncia, integridade, acessos mltiplos, recuperao em caso de falhas e retornos tempestivos. Essas so caractersticas mais apreciadas e desejadas na utilizao de um banco de dados. Um banco de dados deve conter dados dispostos numa ordem determinada por um esquema ou modelo, sempre atendendo a um propsito definido. Podem ser citados como exemplos a lista telefnica, a lista de cdigos de endereamento postal e outros.

1.3- SISTEMAS GERENCIADORES DE BANCO DE DADOS (SGBD)


Hoje em dia, a grande maioria dos programas comunica-se com os usurios utilizando interfaces grficas de janelas. Entretanto, normalmente, os programas no contm todo o cdigo referente a exibio dos dados da interface, mas utilizam gerenciadores de interface de usurio. Da mesma forma, para comunicar-se com processos remotos, usam gerenciadores de comunicao. Para manter grandes repositrios compartilhados de dados, ou seja, para manter banco de dados, so usados Sistemas de Gerncia de Bancos de Dados (SGBD). No SGBD, existe um gerenciador entre as aplicaes e a base de dados comum a estas aplicaes. Ento reduz a redundncia, evita a inconsistncia, mantm a integridade e a transparncia de dados, utiliza vises do usurio, atende as exigncias Pgina 6 de 37

______________________________________________________Modelagem de Dados 1
de informaes de todas as aplicaes, facilita o desenvolvimento de novas aplicaes e a aplicao das restries de segurana.
Aplicao 1 Aplicao 2 Aplicao 3

o software que trata de todo o acesso ao banco de dados. Conceitualmente, o que ocorre o seguinte: Um usurio faz um pedido usando uma determinada sublinguagem de dados (geralmente SQL); O SGBD intercepta o pedido e o analisa; O SGBD, por sua vez, inspeciona o esquema externo, para esse usurio; O SGBD executa as operaes necessrias sobre o banco de dados armazenado.

Um SGBD uma coleo de programas que permitem ao usurio definir, construir e manipular Bases de Dados para as mais diversas finalidades. Existem algumas regras bsicas e claras para que um sistema de manipulao de dados possa ser considerado um SGBD. Fica implcito que se ao menos uma das caractersticas abaixo no estiver presente no nosso "candidato" a SGBD, este poder ser um Gerenciador de Arquivo de altssima qualidade, "quase" um SGBD, mas no um SGBD. Regra
Auto-Conteno

Explicao
Um SGBD no contm apenas os dados em si, mas armazena completamente toda a descrio dos dados, seus relacionamentos e formas de acesso. Normalmente esta regra chamada de Meta-Base de Dados. Quando as aplicaes estiverem realmente imunes a mudanas na estrutura de armazenamento ou na estratgia de acesso aos dados, podemos dizer que esta regra foi atingida. Portanto, nenhuma definio dos dados dever estar contida nos programas da aplicao. Quando voc resolve criar uma nova forma de acesso, um novo ndice, se precisar alterar o cdigo de seu aplicativo, voc no est lidando com um SGBD. Em um SGBD real fornecida ao usurio somente uma representao conceitual dos dados, o que no inclui maiores detalhes sobre sua forma de armazenamento real. O chamado Modelo de Dados um tipo de abstrao utilizada para fornecer esta representao conceitual. Neste modelo, um esquema das tabelas, seus relacionamentos e suas chaves de acesso so exibidas ao usurio, porm nada afirmado sobre a criao dos ndices, ou como sero mantidos, ou qual a relao existente entre as tabelas que dever ser mantida ntegra. Assim se voc desejar inserir um pedido em um cliente inexistente e esta entrada no for automaticamente rejeitada, voc no est lidando com um SGBD. Um SGBD deve permitir que cada usurio visualize os dados de forma diferente daquela existente previamente no Banco de Dados. Uma viso consiste de um subconjunto de dados do Banco de Dados, necessariamente derivados dos existentes no Banco de Dados. Um SGBD deve gerenciar completamente a integridade referencial definida em seu esquema, sem precisar em tempo algum, do auxlio do programa aplicativo. Desta forma exige-se que o banco de dados tenha ao menos uma instruo que permita a gravao de uma srie

Independncia Dados

dos

Abstrao dos Dados

Vises

Transaes

Pgina 7 de 37

______________________________________________________Modelagem de Dados 1
modificaes simultneas e uma instruo capaz de cancelar uma srie modificaes. Por exemplo, imaginemos que estejamos cadastrando um pedido para um cliente, que este deseje reservar 5 itens de nosso estoque, que esto disponveis e portanto so reservados, porm existe um bloqueio financeiro (duplicatas em atraso) que impede a venda. A transao dever ser desfeita com apenas uma instruo ao Banco de Dados, sem qualquer modificao suplementares nos dados. Caso voc se obrigue a corrigir as reservas, atravs de acessos complementares, voc no est lidando com um SGBD. Em um Gerenciador de Arquivos uma situao tpica o chamado DeadLock, o abrao mortal. Esta situao indesejvel pode ocorrer toda vez que um usurio travou um registro em uma tabela e seu prximo passo ser travar um registro em uma tabela relacionada primeira, porm se este registro estiver previamente travado por outro usurio, o primeiro usurio ficar paralisado, pois, estar esperando o segundo usurio liberar o registro em uso, para que ento possa trav-lo e prosseguir sua tarefa. Se por hiptese o segundo usurio necessitar travar o registro travado pelo primeiro usurio, afirmamos que ocorreu um abrao mortal, pois cada usurio travou um registro e precisa travar um outro, justamente o registro anteriormente travado pelo outro. Imaginemos um caso onde o responsvel pelos pedidos acabou de travar o Registro Item de Pedido, e, necessita travar um registro no Cadastro de Produtos, para indicar uma nova reserva. Se concomitantemente estiver sendo realizada uma tarefa de atualizao de pendncias na Tabela de Itens, e para tanto, previamente este segundo usurio travou a Tabela de Produtos, temos a ocorrncia do abrao mortal. Se a responsabilidade de evitar esta ocorrncia for responsabilidade da aplicao, voc no est lidando com um SGBD.

Acesso Automtico

As funes do SGBD devem incluir o suporte a, pelo menos, todos os itens a seguir: Definio de Dados: o SGBD deve ser capaz de aceitar definies de dados em formato fonte e convert-los para o formato objeto adequado. Manipulao de Dados: O SGBD deve ser capaz de lidar com as requisies do usurio para buscar atualizar ou excluir dados existentes no banco de dados, ou para acrescentar novos dados ao banco de dados. Otimizao e Execuo: O SGBD deve ser capaz de determinar um modo eficiente de implementar a requisio. Segurana e Integridade de Dados: O SGBD, ou algum subsistema chamado, pelo SGBD, deve monitorar requisies de usurios e rejeitar toda a tentativa de violar as restries de segurana e integridade definidas pelo DBA. Recuperao de Dados e Concorrncia: O SGBD deve impor certos controles de recuperao e concorrncia. Dicionrio de Dados: Pode ser considerado um banco de dados isolado (mas um banco de dados do sistema, no um banco de dados do usurio); ele contm dados sobre os dados ou seja, definies de outros objetos do sistema, em vez de somente dados crus. Desempenho: irrelevante dizer que o SGBD deve realizar todas as funes identificadas anteriormente de forma to eficiente quanto possvel.

1.3.1- ABSTRAO DE DADOS

Pgina 8 de 37

______________________________________________________Modelagem de Dados 1
Um SGBD composto de uma coleo de arquivos inter-relacionados e de um conjunto de programas que permitem aos usurios fazer acesso e modificar esses arquivos. O grande objetivo de um sistema de bancos de dados prover os usurios uma viso abstrata dos dados, isto , o sistema omite certos detalhes de como os dados so armazenados e mantidos. Entretanto, para que o sistema possa ser utilizado, os dados devem ser buscados eficientemente. Este conceito de abstrao de dados tem direcionado o projeto de estruturas de dados complexos para a representao de dados em banco de dados. Uma vez que muitos dos usurios de banco de dados no so treinados em computao, a complexidade est escondida deles atravs de diversos nveis de abstrao que simplificam a interao dos usurios com o sistema. Nvel fsico. O nvel mais baixo de abstrao descreve como os dados esto realmente armazenados. No nvel fsico so descritas a estrutura fsica de armazenamento do banco de dados, sua organizao de arquivos e seus mtodos de acesso. Nvel conceitual. Neste nvel de abstrao descreve quais dados esto armazenados de fato no banco de dados e as relaes que existem entre eles. O nvel conceitual a viso do conjunto de usurios, portanto a viso geral do banco de dados. Nvel de vises. O mais alto nvel de abstrao descreve apenas parte do banco de dados. O nvel de vises o mais prximo dos usurios. Voltado para a forma como os dados so vistos pelos usurios individuais. Um determinado usurio, tanto pode ser um programador de aplicaes como um usurio de terminal on-line ou um usurio final de qualquer grau de sofisticao. Descreve as partes do banco de dados que so do interesse de um ou vrios usurios, escondendo as demais partes que no so do seu interesse.

Nvel de Vises (Viso do usurio individual)

Nvel Conceitual

Nvel Fsico

1.3.2- CLASSIFICAO
Pgina 9 de 37

______________________________________________________Modelagem de Dados 1
Os sistemas gerenciadores de banco de dados podem ser classificados de diversas maneiras, como por modelo de dados, por nmero de usurios, por localizao, entre outros. Por Modelo de Dados Modelo
Modelo Hierrquico

Descrio
Este modelo de banco de dados descrito por um diagrama de estrutura de rvore, com dois componentes bsicos: as caixas correspondentes aos tipos de registro e as linhas que representam as ligaes entre os tipos de registro. Pode ser representado diretamente quando os dados so definidos com relacionamentos hierrquicos, isto , um segmento raiz, localizado no topo da estrutura, que se relaciona com outros segmentos de cima para baixo, da esquerda para a direita, denominado de diagrama de estrutura de dados ou de rvore (relacionamento do topo para baixo e das folhas para dentro). Este modelo se tornou vivel quando a estrutura dos discos de armazenamento se tornou enderevel, possibilitando a representao hierrquica das informaes coma utilizao do endereamento fsico daqueles dispositivos. Todos os bancos de dados apresentam vantagens e desvantagens em sua utilizao, e com o banco de dados modelo hierrquico no diferente. Ele um modelo bastante simplificado, representa naturalmente sistemas que possuem uma hierarquia bem definida, no representando sistemas que no possuem tais caractersticas, alm de aumentar os ndices de redundncia (duplicidade), possuir tempos de consulta e processamento reconhecidamente altos. Pode ser visto como uma extenso mais completa do modelo hierrquico, apenas livre das dificuldades encontradas no modelo anterior. Os controles existentes quanto aos recursos de armazenamento, estrutura e caminhos utilizados para navegar de um registro a outro tornam o modelo de rede mais completo. O banco de dados em rede composto de uma estrutura mais completa, possui as propriedades bsicas de registros, conjuntos e ocorrncias, e utiliza a linguagem de definio de banco de dados (DDL) e a linguagem de manipulao de dados (DML), alm de permitir uma evoluo mais eficiente do modelo. A estrutura formada de entidade (registros), atributos (itens de dados), tipos de registros e ocorrncia do registro. Tanto no modelo hierrquico quanto o de rede so chamados de sistemas de navegao, pois as aplicaes devem ser construdas para atravessar um conjunto de registros interligados previamente. A maior vantagem do modelo de rede frente ao hierrquico um melhor controle sobre a redundncia de dados. O banco de dados mais utilizado atualmente o banco de dados relacional, principalmente pelas suas fortes caractersticas de seguranas, compartilhamento e integridade dos dados, fatores primordiais para uma administrao eficaz da informao de qualquer empresa. Com o prprio nome diz, esse tipo de banco de dados composto de relaes entre entidades, denominadas tabelas, seguindo o mesmo conceito matemtico de relao. As tabelas se relacionam por meio de chaves denominadas estrangeiras, que podem ser simples, formadas por apenas um atributo, ou compostas, formadas por vrios atributos. Por atributo compreende-se a representao de um tipo de informao. Para que um modelo seja considerado relacional, os dados devem ser armazenados em tabelas, nenhum ponteiro ou ligao deve ser visvel ao usurio, a linguagem de consulta deve ser relacionalmente completa e as consultas podem ser expressas sem uso de iteraes ou recurses. Cada linha da tabela, formada por um conjunto de colunas, representa um registro (ou tupla). Os registros no precisam necessariamente conter dados em todas as colunas, ou seja, seus valores podem ser nulos. As colunas de uma tabela so tambm chamadas de campos. Os campos possuem caractersticas que definem o dado que ser armazenado. Os sistemas de banco de dados possuem normas que iro reger os dados que so armazenados. Em um banco de dados pode existir uma ou centenas de tabelas. O limitador imposto exclusivamente pela ferramenta computacional ou SGBD utilizado. Cada coluna de uma tabela obedece s regras definidas na sua criao. Cada coluna recebe um tipo de dado, que representa o conjunto de valores que podem ser armazenados em cada uma das colunas. Basicamente, cada coluna representa o tipo de cada dado, ou seja, as regras de entrada dos dados, evitando a incompatibilidade. J as linhas representam todos os dados cadastrados, ou seja, um conjunto de colunas ou campos. As linhas representam o nmero de registros cadastrados na tabela e as colunas representam os tipos de dados ou campos cadastrados. Alguns campos da tabela, alm do tipo de dados, possuem uma propriedade adicional. Esses campos recebem o nome de chave. Existem dois tipos de chaves: chave primria ( a chave que identifica cada registro, dando-lhe unicidade. Essa chave nunca de se repetir dentro da estrutura da tabela) e chave estrangeira ( a chave formada pela chave primria de outra tabela e a chave de um campo da tabela externa que recebe o relacionamento. Essa chave, de forma resumida, define um relacionamento entre as tabelas e pode ocorrer repetidas vezes). Trata-se basicamente de um sistema em que a unidade de armazenamento vista como um objeto, ou seja, ela tem propriedades e no campos. A principal

Modelo de Rede

Modelo Relacional

Modelo Objetos

Orientado

Pgina 10 de 37

______________________________________________________Modelagem de Dados 1
Modelo Descrio
caracterstica desse tipo de banco de dados a abstrao dos dados. Combina os benefcios e conceitos da programao orientada a objetos com a funcionalidade dos banco de dados. A vantagem a lgica contida no objeto e a possibilidade de ser reutilizado vrias vezes em diversas aplicaes.

Por Nmero de Usurios Monousurios o tipo de banco de dados, construdo para utilizao de apenas um usurio de cada vez, diferentemente dos bancos multiusurios, que garantem a utilizao dos dados de forma compartilhada por vrios usurios ao mesmo tempo. Por Localizao Banco de dados distribudo uma estrutura com dois ou mais arquivos armazenados em diferentes locais, em uma rede de computadores, responsvel pelo armazenamento e recuperao das informaes de forma transparente para os usurios. As caractersticas principais que um banco de dados distribudo deve possuir so descritas a seguir: Tolerncia a falhas; Independncia em relao ao site central; Autonomia para as transaes locais; Independncia de localizao; Independncia de replicao; Independncia de hardware e de rede; Processamento distribudo de consultas; Independncia do sistema operacional; Gerenciamento de transaes distribudas; Controle de consistncia.

A implementao de um banco de dados distribudo no constitui tarefa fcil, cabendo uma anlise bem-feita sobre as necessidades de se usar ou no essa estrutura, optando-se, em muitos casos, pela utilizao de banco de dados centralizado, onde todos os programas e processamentos ocorrem no computador hospedeiro, que traz como maior vantagem a segurana da centralizao. As vantagens apresentadas pelo banco de dados em relao arquitetura tradicional de arquivos so: Reduo e eliminao de redundncias. Na arquitetura tradicional de arquivos, cada sistema possui seus prprios arquivos, provocando desperdcio de espao de armazenamento quando as informaes so duplicadas. Com a utilizao de banco de dados, os dados comuns a mais de um sistema podem ser compartilhados, o que permite o acesso a uma nica fonte da informao. Eliminao de inconsistncias. Como a informao est armazenada em um nico local, compartilhada por vrios sistemas, e atualizada por apenas uma fonte, os usurios utilizam informaes mais confiveis. Compartilhamento de dados. Permite que mais de uma aplicao ou usurio, independentemente da operao que est sendo realizada, tenha acesso aos dados simultaneamente e de uma forma mais segura. O compartilhamento tambm diminui os custos quando da implementao de novas aplicaes ou sistemas. Pgina 11 de 37

______________________________________________________Modelagem de Dados 1
Restrio de segurana. Permite definir perfis de utilizao dos dados, a partir de nveis de acesso definidos pelo gestor da informao, impedindo que pessoas no autorizadas utilizem ou atualizem determinada informao. Reforo de padres. Garante que os dados armazenados sigam um padro definido no que tange a nomenclatura e formato de armazenamento, facilitando a utilizao dos dados por vrios sistemas. Independncia dos dados. O armazenamento dos dados facilitado por possuir definies diferentes para cada tabela do banco. Integridade dos dados. Permite que a integridade dos dados seja mantida por regras predefinidas, impedindo que uma chave de uma tabela no tenha correspondncia em outra. Restaurao dos dados. Possibilita um controle da restaurao dos dados em caso de falha de ambiente ou de um aplicativo, mantendo a integridade dos dados. Reorganizao dos dados. Permite que os dados sejam reorganizados de forma a eliminar espaos inutilizados, redimensionando as tabelas e, por conseqncia, melhorando a performance de acesso. Relacionamentos. Ocorre a implementao de relacionamentos complexos entre os dados.

CAPITULO II MODELOS DE BANCO DE DADOS


Um modelo de (banco de) dados uma descrio dos tipos de informaes que esto armazenadas em um banco de dados.
Modelo de Dados

Pgina 12 de 37 =
Descrio formal da estrutura de um banco de dados

______________________________________________________Modelagem de Dados 1

Para construir um modelo de dados usa-se uma linguagem de modelagem de dados. Estas linguagens podem ser classificadas de acordo com a forma de apresentar modelos, em linguagens textuais ou linguagens grficas. Existem linguagens de modelagem para descrever modelos de dados em diferentes nveis de abstrao e com diferentes objetivos. Cada representao de um modelo de dados atravs de uma linguagem de modelagem de dados recebe a denominao de esquema de banco de dados. De acordo com a inteno do modelador, um banco de dados pode ser modelado (descrito) em vrios nveis de abstrao. Um modelo de dados que servir para explicar a um usurios leigo em informtica qual a organizao de um banco de dados provavelmente no conter detalhes sobre a representao em meio fsico, das informaes. J um modelo de dados usado por um tcnico para otimizar a performance de acesso ao banco de dados conter mais detalhes de como as informaes esto organizadas internamente e, portanto, ser menos abstrato. Assim como possvel, construir modelos de dados em vrios nveis de abstrao , tambm, possvel usar diferentes tcnicas, aplicando diferentes conceitos aos construir modelos. Ao conjunto de conceitos usados na construo de um modelo denominamos de abordagem de modelagem.

2.1- MODELO CONCEITUAL


Representa e descreve a realidade do ambiente do problema, constituindo-se em uma viso global dos principais dados e seus relacionamentos (estruturas de informao), completamente independente dos aspectos de sua implementao tecnolgica. Quando falamos em modelo conceitual, estamos nos referindo aquela que deve ser a primeira etapa de um projeto de um banco de dados. Pgina 13 de 37

______________________________________________________Modelagem de Dados 1
O objetivo do modelo conceitual descrever de forma simples e facilmente compreendida pelo usurio final as informaes de um contexto de negcios, as quais devem ser armazenadas em um banco de dados. uma descrio de alto nvel, mas que tem a preocupao de captar e retratar a realidade de uma organizao, processo de negcio, setor, repartio, departamento, etc. Devemos destacar que o modelo conceitual no retrata nem vinculado aos aspectos ligados a abordagem de banco de dados que ser utilizado e tampouco se preocupa com as formas de acesso ou estruturas fsicas implementadas por SGBD especfico. O resultado de um modelo conceitual um esquema grfico que representa a realidade das informaes existentes em um determinado contexto de negcios, assim como as estruturas de dados em que esto organizadas essas informaes. O modelo conceitual nunca deve ser construdo com consideraes sobre processos de negcios. O foco deve ser dirigido sempre ao entendimento e representao de uma realidade de um contexto.

2.2- MODELO LGICO


Ele somente tem o seu incio aps a criao do modelo conceitual. A partir deste ponto vamos considerar uma das abordagens possveis da tecnologia de SGBDs (relacional, hierrquico, rede e orientado a objetos) para a estruturao e estabelecimento da lgica dos relacionamentos existentes entre os dados definidos no modelo conceitual. O modelo lgico descreve em formato as estruturas que estaro no banco de dados de acordo com as possibilidades permitidas pela sua abordagem, mas sem considerar, ainda, nenhuma caracterstica especfica de SGBD. Isso resulta em um esquema lgico de dados sob a ptica de uma das abordagens citadas, atravs do emprego de uma tcnica de modelagem de dados orientada s restries de cada abordagem.

2.3- MODELO FSICO


O modelo fsico ser construdo a partir do modelo lgico e descreve as estruturas fsicas de armazenamento de dados, tais como: Tipo e tamanho de campos; ndices; Domnio de preenchimento desses campos; Nomenclaturas; Exigncia de contedo; Gatilhos; etc. Estas so projetadas de acordo com os requisitos de processamento e uso mais econmico dos recursos computacionais. Esse modelo detalha o estudo dos mtodos de acesso ao SGBD para a criao dos ndices necessrios para cada informao colocada nos modelos conceitual e lgico.

Pgina 14 de 37

______________________________________________________Modelagem de Dados 1

2.4- PROJETO DE BANCO DE DADOS


O projeto de um novo banco de dados d-se em trs fases: Modelagem Conceitual Nesta primeira fase, construdo um modelo conceitual, na forma de um diagrama entidade-relacionamento. Este modelo independe da implementao. Projeto Lgico Objetiva transformar o modelo conceitual obtido na primeira fase em um modelo lgico. O modelo lgico define como o banco de dados ser implementado em um SGBD especfico. Projeto Fsico Nesta etapa, o modelo de BD enriquecido com detalhes que influenciam no desempenho do BD, mas no interferem em sua funcionalidade. Alteraes neste modelo no afetam as aplicaes que usam o BD.

CAPITULO III BANCO DE DADOS RELACIONAL


Pgina 15 de 37

______________________________________________________Modelagem de Dados 1
Criado por Edgar F. Codd, nos anos 70, comeou a ser realmente utilizado nas empresas a partir de 1987. A abordagem relacional est baseada no principio de que as informaes em uma base de dados podem ser consideradas relaes matemticas e que esto representadas de maneira uniforme com o uso de tabelas bidimensionais. Este princpio coloca os dados direcionados a estruturas mais simples de armazenamento de dados, que so as tabelas, e nas quais a viso do usurio privilegiada.

3.1- TEORIA RELACIONAL


A abordagem relacional representa uma forma de descrever um banco de dados atravs de conceitos matemticos simples: a teoria dos conjuntos. Voltada, principalmente, a melhorar a viso dos dados pelos usurios, a abordagem relacional faz com que os usurios vejam o banco de dados como um conjunto de tabelas bidimensionais, originadas em linhas e colunas.

So conjuntos de dados vistos segundo um conjunto de TABELAS, e as operaes que as utilizam so feitas por linguagens que o manipulam, no sendo procedurais, ou seja, manipulando conjuntos de uma s vez.

O conceito principal vem da tria dos conjuntos atrelado concepo de que no relevante ao usurio saber onde os dados esto nem como os dados esto (transparncia). Os usurios manipulam estes objetos dispostos em linhas e colunas das tabelas que possuem informaes sobre o mesmo assunto de forma estruturada e organizada. Para lidar com estes objetos, o usurio conta com um conjunto de operadores e funes de alto nvel, constantes na lgebra relacional. A Teoria Relacional possui premissas que definem uma tabela de dados: Cada uma das tabelas chamada de relao; O conjunto de uma linha e suas colunas chamado tupla; Cada coluna dessa tabela tem um nome e representa um domnio da tabela; No h duas linhas iguais; Usamos nomes para fazer referncia s colunas; Cada tabela tem um nome prprio, distinto de qualquer outra tabela no banco de dados.

Exemplo 1 Tabela de CDs N do CD Dt da Gravao Ttulo do Contedo Responsvel Local onde est guardado

Pgina 16 de 37

______________________________________________________Modelagem de Dados 1
1 3 2 4 24/01/2001 13/02/2000 14/12/2000 25/01/2000 Clipart IRRF 2000 Backup Textos Fotos Gramado Samir Felipe Felipe Samir Estojo Verde Caixa de Documentos Estojo Azul Caixa de lbum 3

Podemos observar a tabela de CDs que os conceitos listados anteriormente em relao s tabelas relacionais esto destacados: A ordem das linhas irrelevante, pois o CD de nmero 2 vem aps o CD de nmero 3. Se observarmos mais detalhadamente, veremos que o CD nmero 3 tem uma data inclusive menor que o CD de nmero 2; Nenhuma linha se repete nesta tabela; A ordem das colunas tambm no tem nenhum destaque, ou importncia, pois no esto em nenhuma ordem lgica; Todas as colunas tm um nome, que identifica o seu contedo, ou melhor, o significado do valor de seu contedo.

Exemplo 2 Tabela Funcionrios Nome Joo Carlos Carlos Brito Silvia Morais Claudia Tereza Pedro Julio Pedro Julio Sexo M M F F M M Matrcul a 373 872 963 161 292 574 Departame nto TI Operaes TI Programao TI Anlise TI Gerncia RH TI Anlise Cargo Operador Programador I Analista Sistemas II Secretaria Diretor Analista Sistemas I Salrio 3.000,00 3.500,00 5.500,00 1.500,00 6.000,00 4.500,00

Vamos analisar a tabela acima: A coluna matrcula no indica nenhuma ordem para as linhas, confirmando o conceito de que a ordem das linhas irrelevante; Todas as colunas tm um nome que significa algo sobre o assunto, o que bem evidente; A disposio das colunas no tem nenhuma finalidade de classificao, tampouco indica ordem de leitura dos dados; A modificao da ordem das colunas no acarreta prejuzo nenhum do assunto ou da representatividade da tabela;

Salrio 3.000,00 3.500,00

Nome Joo Carlos Carlos Brito

Sexo M M

Matrcu la 373 872

Departamen to TI Operaes TI

Cargo Operador Programador I

Pgina 17 de 37

______________________________________________________Modelagem de Dados 1
5.500,00 1.500,00 6.000,00 4.500,00 Silvia Morais Claudia Tereza Pedro Julio Pedro Julio F F M M 963 161 292 574 Programao TI Anlise TI Gerncia RH TI Anlise Analista Sistemas II Secretaria Diretor Analista Sistemas I

O importante que toda vez que nos referimos tabela funcionrios visualizemos os dados que ela contm, e simbolizando valores possveis, pois assim vamos mentalizando e nos abstraindo em algum objeto que a tabela representa.

3.2CARACTERSTICAS RELAO (TABELA)


NumR eg 101 104 134 121 25 NomeFunc Luis Sampaio Carlos Pereira Jos Alves Luiz Paulo Souza Marta Silveira

PRINCIPAIS

DE

UMA

Vamos definir a concepo tcnica de uma relao (tabela). DtAdmisso Dia Ms Ano 10 08 2 003 02 08 2 004 23 03 2 002 10 05 2 001 05 12 2 002 Se xo M M M M F Fone 25658974 313314649 23868897 22415896 26935521 25948523 25948522 45458899 24968855 42899675 26858132 25943122 CodDep to D5 D6 D1 D5 D5

139 123 148 115 22

Ana Luiza Magalhes Pedro Sergio Doto Larissa Silva Roberto Fernandes Sergio Nogueira

12 29 01 15 10

01 01 06 06 10

2 003 2 003 2 002 2 003 2 000

F M F M M

D6 D3 D6 D5 D4

Atributo Composto

Atributo Multivalorado

Todos os atributos (colunas) de uma relao devem ser atmicos, isto , indivisveis em termos de valores e componentes. Isso quer dizer que no existem colunas do tipo subgrupo, todas so itens elementares no subdivididos em nenhuma hiptese. E, tambm, no permitida a Pgina 18 de 37

______________________________________________________Modelagem de Dados 1
existncia da mltipla ocorrncia de valores (multivalorados) em nenhum de seus atributos (colunas). importante a compreenso de que cada linha de uma tabela representa um objeto, um assunto que descrito pelos valores de cada uma dessas colunas. O esquema de uma relao, ou seja, a sua definio pode ser interpretada como uma declarao, ou um tipo de afirmao.

O exemplo de uma tabela funcionrio apresenta: Nmero de registro (NumReg), nome de funcionrio (NomeFunc), data de admisso (DtAdmisso), sexo (Sexo), telefone (Fone) e departamento (CodDepto); Cada tupla (linha) da relao (tabela) deve ser interpretada como fato ou uma ocorrncia particular dessa afirmao; NomeFunc Luis Sampaio Carlos Pereira Jos Alves Luiz Paulo Souza Marta Silveira Ana Luiza Magalhes Pedro Sergio Doto Larissa Silva Roberto Fernandes Sergio Nogueira DtAdmiss o 10/08/2003 02/08/2004 23/03/2002 10/05/2001 05/12/2002 12/01/2003 29/01/2003 01/06/2003 15/06/2002 10/10/2000 Sexo M M M M F F M F M M Fone 25658974 313314649 23868897 22415896 26935521 45458899 24968855 42899675 26858132 25943122 CodDep to D5 D6 D1 D5 D5 D6 D3 D6 D5 D4

NumReg 101 104 134 121 25 139 123 148 115 22

3.3- DOMNIO
Representa o conjunto de valores atmicos admissveis de um componente (coluna) de uma relao (tabela). Exemplo Telefone: conjunto de 10 dgitos; Idade_Empregado: 16 idade 70; Departamentos: conjunto de departamentos de uma empresa.

Pgina 19 de 37

______________________________________________________Modelagem de Dados 1
A cada domnio est associado um tipo de dados ou formato. Exemplo Telefone: (ddd) dddd-ddddd, onde d={0,1,2,3,4,5,6,7,8,9} Idade_Empregado: nmero inteiro entre 16 e 70

Restries de domnio so estabelecidas determinando-se domnios de valores para cada coluna de uma tabela. Normalmente so estabelecidos e definidos os valores que uma coluna de uma tabela pode ter, isto , o domnio da coluna. Permitem, por exemplo: Verificar os valores inseridos em um banco de dados; Testar consultas para garantir que as comparaes tinham sentido; Em geral, o domnio especificado por tipos primitivos de dados, tais como: interger, float, char, date, Money, time, etc.

Tambm, podem ser descritos pela definio de subconjuntos de tipos primitivos ou de listas enumeradas, ou seja, listas de valores possveis de existir na coluna.

3.4- CHAVE PRIMRIA


Em toda e qualquer tabela existente em um banco de dados relacional haver sempre uma coluna ou um conjunto de colunas concatenadas, cujos valores so nicos na tabela, isto , nunca se repete aquele valor em nenhuma outra linha da tabela. Essa coluna ou conjunto de colunas concatenadas identifica uma nica linha da tabela. Ento dizemos que essa coluna ou conjunto de colunas forma a chave primria da tabela. NumReg 101 104 134 121 25 139 123 148 115 22 NomeFunc Luis Sampaio Carlos Pereira Jos Alves Luiz Paulo Souza Marta Silveira Ana Luiza Magalhes Pedro Sergio Doto Larissa Silva Roberto Fernandes Sergio Nogueira DtAdmiss o 10/08/2003 02/08/2004 23/03/2002 10/05/2001 05/12/2002 12/01/2003 29/01/2003 01/06/2003 15/06/2002 10/10/2000 Sexo M M M M F F M F M M Fone 25658974 313314649 23868897 22415896 26935521 45458899 24968855 42899675 26858132 25943122 CodDep to D5 D6 D1 D5 D5 D6 D3 D6 D5 D4

Na tabela acima, qual coluna ou qual conjunto de colunas que concatenadas formam um identificador nico para cada linha desta tabela?

Pgina 20 de 37

______________________________________________________Modelagem de Dados 1
Analisando a referida tabela, podemos ver que existe somente um valor de matrcula para cada linha, que no se repete, logo podemos determinar que matrcula a chave primria da tabela funcionrios.

3.5- VALORES NULOS


Por definio, todas as linhas de uma tabela tm de ser distinguveis umas das outras, devem possuir um identificador nico. Um identificador de chave primria nulo significa dizer que existe uma ocorrncia (linha) na tabela sem identificao nica, ou no distinguvel. Se uma tabela relacional tem uma chave primria, que um valor nico para cada linha da tabela, logo esse valor no pode em hiptese alguma estar nulo, ou seja, ser desconhecido. Estendendo este conceito, destacamos que nenhuma das colunas que participam da composio da chave primria pode ter valor nulo, pois o resultado da concatenao seria nulo, em uma operao de concatenao de valores.

3.6- REGRA DE INTEGRIDADE DE IDENTIDADE


A identificao de uma linha de uma tabela no pode ser feita por um valor desconhecido, motivo pelo qual a chave primria de uma tabela no pode possuir nenhum elemento de sua composio com valor nulo.

3.6.1- CHAVE PRIMRIA


Coluna ou concatenao de colunas; Valor nico na tabela; Cada linha tem um valor diferente na chave primria; No existem valores nulos na chave primria.

Atributos cujos valores no mundo real podem ser duplicados no devem ser definidos como chaves primrias de uma tabela (Nome, por exemplo). Em geral, uma tabela pode ter mais de uma chave que possua a capacidade de identificao nica das linhas da tabela. Nesse caso, cada uma dessas chaves da tabela chamada de CHAVE CANDIDATA. Uma das chaves ser definida como primria e as outras ficam como chaves alternativas chave primria. Em geral, entre todas as chaves candidatas, escolhe-se para chave primria aquela com o menor nmero de atributos ou mais significativa conceitualmente na identificao de cada fato ou ocorrncia (linha) de uma tabela. Esquema de uma Tabela Pgina 21 de 37

______________________________________________________Modelagem de Dados 1
A definio de uma tabela realizada por um formato denominada esquema da tabela; Esse formato destaca a chave primria por um sublinhado no nome da coluna: para a tabela de funcionrios que apresentamos o esquema seria Funcionrio (NumReg, NomeFunc, DtAdmissao, Sexo, Fone, CodDepto).

3.6.2- CHAVE ESTRANGEIRA


Uma tabela relacional uma estruturao dos dados por assunto, organizada em tabelas com linhas e colunas, e cada linha a representao de uma ocorrncia de um objeto, um assunto, descrita por valores em cada coluna. Dessas colunas j sabemos que uma ou um conjunto delas forma o que definimos como o identificados nico de cada linha que a chave primria da tabela. Exemplo Vamos analisar as propriedades que as colunas de uma tabela relacional podem ter e as regras dessas propriedades Existem trs tabelas nesse pequeno banco de dados. So as tabelas referentes aos produtos de nossa cozinha, neste caso somente os alimentos. Uma que chamaremos de tabela de Estoque de alimentos, uma de Fornecedores e uma de Unidade de armazenamento. Uma caracterstica importante nas tabelas relacionais que elas tm muitas vezes colunas comuns.

Estoque de Alimentos Alimento Quantida de Feijo 2 Leite 3 Acar 5 Arroz 3 Azeite 2 Caf 1 Fornecedores Fabrica NomeFab nte 2 Coral 4 CCPL 1 Unio 6 Tio Joo 5 Galo 3 Pilo

Data Validade 20/08/2004 12/07/2004 12/08/2004 10/10/2004 12/03/2004 12/12/2004

Fabrican te 2 4 1 6 5 3

Unidad e 1 2 1 1 6 1

Unidades de Armazenamento Unidad Descrio e Pgina 22 de 37

______________________________________________________Modelagem de Dados 1
1 2 3 4 5 6 Kg Litro Pea Envelope Pote 500g Vidro 500g

Esquema do Banco de Dados Estoque de Alimentos {Alimento, Quantidade, Data Validade, Fabricante, Unidade} Fornecedores {Fabricante, NomeFabricante} Unidades de Armazenamento {Unidade, Descrio} Observe que a tabela de Estoque de Alimentos tem as colunas Nmero do Fabricante e Cdigo da Unidade, que tambm existem respectivamente nas tabelas Fornecedores e Unidade de Armazenamento. Esta uma caracterstica que em primeiro lugar tem como objetivo inicial evitar que sejam inseridos na tabela de alimentos, por exemplo, valores relativos a um mesmo fornecedor de duas maneiras: Tio Joo e T. Joo, fazendo com que apresentssemos o mesmo produto como sendo de dois fornecedores diferentes. Isso ajuda a eliminar ou diminuir erros de entrada de dados nos sistemas, e manter a consistncia do banco de dados, pois utilizamos o nmero do fornecedor em lugar de, talvez, digitar o seu nome. O que significa uma tabela ter coluna ou colunas que existem em outra tabela? Analisando as tabelas e o esquema do banco de dados, observamos que cada tabela tem uma chave primria. A tabela Estoque de Alimentos tem como chave primria a coluna Alimento. A tabela Fornecedores tem como chave primria a coluna Fabricante, e a tabela Unidade de Armazenamento tem como chave primria a coluna Unidade. O que significa quando temos um campo que chave primria de uma tabela que faz parte dos campos de outra tabela? Isso o que denominamos de chave estrangeira. uma referncia de um elemento de uma tabela a um elemento de outra tabela, uma relao entre as tabelas, uma ligao lgica entre elas. Ento, no exemplo, a coluna Fabricante na tabela Estoque de Alimentos uma chave estrangeira, assim como Unidade tambm outra chave estrangeira nesta tabela. Uma tabela pode ter tantas chaves estrangeiras quantas forem as suas associaes a outras tabelas. Uma tabela pode ter um conjunto de atributos que contm valores com o mesmo domnio de um conjunto de atributos que formam a chave primria de uma outra tabela.

3.7- INTEGRIDADE REFERENCIAL


Pgina 23 de 37

______________________________________________________Modelagem de Dados 1
Quando colocamos uma coluna como chave estrangeira em uma tabela, assumimos responsabilidade com o banco de dados por assim dizer. As colunas pertencentes chave estrangeira da tabela A devem ter o mesmo domnio das colunas pertencentes chave primria da tabela B. O valor de uma chave estrangeira em uma tabela A deve ser um valor de chave primria da tabela B, ou ento ser nulo. Sintetizando: chave s pode ser: uma tabela contm uma chave estrangeira, ento o valor dessa

Nulo neste caso pode, pois representa a inexistncia de referncia para uma linha da tabela. Igual ao valor de alguma chave primria na tabela referenciada. Como seria ter uma tabela com chave estrangeira nula? Vejamos: NomeFunc Luis Sampaio Carlos Pereira Jos Alves Luiz Paulo Souza Pedro Sergio Doto Roberto Fernandes Sergio Nogueira DtAdmiss o 10/08/2003 02/08/2004 23/03/2002 10/05/2001 29/01/2003 15/06/2002 10/10/2000 Sexo M M M M M M M CdCargo C3 C4 C5 C3 C1 C3 C2 CodDep to D5 D6 D1 D5 Nulo D5 D4

NumReg 101 104 134 121 123 115 22

Na linha DE Pedro Sergio Doto o valor para CodDepto est nulo, o que pode significar que ele ainda no est alocado a nenhum departamento, ou foi deslocado de algum departamento. O que importa que ele no tem departamento assinalado, o que uma situao vlida. O que no pode haver um valor de chave estrangeira que no exista como chave primria de nenhuma linha da tabela referenciada, no caso a tabela Departamento. Na definio de uma chave estrangeira somente podemos nos referenciar a uma chave primria de uma outra tabela? Nem sempre isso verdade. Na criao de uma tabela estrangeira, alm de podemos nos referenciar a um campo chave primria de outra tabela, tambm podemos nos referenciar a uma coluna que tenha sido definida como nica, uma chave candidata. Qual a razo da integridade referencial? O que ela implica? Existe um conjunto de regras de operao para um banco de dados que coloca restries, regras de atualizao das tabelas do banco de dados, de forma a garantir e manter a integridade referencial. So elas: Regra Deleo Restrita Definio Ao excluir (deletar) a tabela pai , se ela possuir filhos relacionados (ou seja, se o departamento tiver funcionrios), a excluso impedida. Isso evita que o bando de dados fique inconsistente, ou seja, linhas de Funcionrio com valor de chave estrangeira inexistente como chave primria na tabela associada. Outras opes para garantir a integridade Pgina 24 de 37

______________________________________________________Modelagem de Dados 1
de referncias do banco de dados seriam excluir todos os filhos em cascata, fazendo com que todos os funcionrios referenciem um departamento-padro ou fazer com que todos os funcionrios fiquem sem departamento. Ao inserir um funcionrio, caso seja obrigatrio que ele j possua departamento associado, verifica se ele est relacionado a um departamento existente na tabela Departamento, seno impede a operao. Ao atualizar a chave estrangeira de uma tabela, verifica se existe uma linha da tabela associada que possua como chave primria o novo valor da chave estrangeira, seno impede essa operao. A opo cascata sempre perigosa de ser utilizada em banco de dados, pois existe o risco de perder todos os dados existentes em uma determinada tabela se optar por apagar as suas linhas que esto associadas a uma determinada linha que ser deletada da tabela que possui a chave primria referenciada.

Incluso e Linha Restrita

Atualizao Restrita

Linha

Exemplo Vamos fazer uma simulao de tabelas. Suponha que nossa tabela tenha somente os funcionrios do departamento de vendas (D5). Funcionrio NumReg 101 104 134 121 123 115 22 NomeFunc DtAdmiss o 10/08/2003 02/08/2004 23/03/2002 10/05/2001 29/01/2003 15/06/2002 10/10/2000 Sexo M M M M M M M CdCargo C3 C4 C5 C3 Nulo C3 C2 CodDep to D5 D6 D1 D5 D3 D5 D4

Luis Sampaio Carlos Pereira Jos Alves Luiz Paulo Souza Pedro Sergio Doto Roberto Fernandes Sergio Nogueira RamalT el 2246 2589 2772 1810 2599 2688

Departamento CodDep NumDepto to D1 Assist. Tcnica D2 Estoque D3 Administra o D4 Segurana D5 Vendas D6 Cobrana

Se estabelecemos para a tabela Departamento a regra de cascata, ento se apagarmos (deletar) a linha cuja chave primria =D5, o resultado ser a tabela funcionrio como apresentada em seguida: NumReg NomeFunc DtAdmiss o Sexo CdCargo CodDep to

Vazia, completamente sem linhas. A regra de cascata provoca que todas as linhas de tabelas associadas a essa chave primria sejam deletadas, apagadas para evitar que fiquem existindo no banco de dados referncias s linhas inexistentes em uma tabela. Pgina 25 de 37

______________________________________________________Modelagem de Dados 1
Mas no somente o caso de deleo completa da tabela que preocupa, pois trabalhamos com nossa tabela original de funcionrios: NumReg 101 104 134 121 123 115 22 NomeFunc Luis Sampaio Carlos Pereira Jos Alves Luiz Paulo Souza Pedro Sergio Doto Roberto Fernandes Sergio Nogueira DtAdmiss o 10/08/2003 02/08/2004 23/03/2002 10/05/2001 29/01/2003 15/06/2002 10/10/2000 Sexo M M M M M M M CdCargo C3 C4 C5 C3 Nulo C3 C2 CodDep to D5 D6 D1 D5 D3 D5 D4

Se executarmos a mesma operao de deleo da linha relativa a Departamento de Vendas (D5). Essa tabela perder todas as linhas que estavam associadas pelo valor de chave estrangeira =D5, perdendo os dados de alguns funcionrios: Funcionrio NumReg 104 134 123 22

NomeFunc

Carlos Pereira Jos Alves Pedro Sergio Doto Sergio Nogueira

DtAdmiss o 02/08/2004 23/03/2002 29/01/2003 10/10/2000

Sexo M M M M

CdCargo C4 C5 Nulo C2

CodDep to D6 D1 D3 D4

CAPITULO IV ABORDAGEM ENTIDADE-RELACIONAMENTO


A tcnica de modelagem de dados mais difundida e utilizada a abordagem entidade-relacionamento (ER). Nesta tcnica, o modelo de dados representado graficamente atravs de um diagrama de entidade-relacionamento (DER). A abordagem ER foi criada por Peter Chen em 1976, podendo se considerada como um padro de fato para a modelagem conceitual. Mesmo as tcnicas de modelagem orientada a objetos, Pgina 26 de 37

______________________________________________________Modelagem de Dados 1
que tm surgido nos ltimos anos, como a UML, baseiam-se nos conceitos da abordagem ER.

4.1- ENTIDADE
O conceito fundamental da abordagem ER o conceito de entidade. ENTIDADE = Conjunto de objetos da realidade modelada sobre os quais deseja-se manter informaes no banco de dados. Uma entidade representa um conjunto de objetos da realidade modelada. Como o objetivo de um modelo ER modelar de forma abstrata um banco de dados, interessamnos os objetos sobre os quais deseja-se manter informaes. A entidade pode representar objetos concretos da realidade (uma pessoa, um automvel, etc) quanto objetos abstratos (um departamento, um endereo, etc). Em um DER, uma entidade representada atravs de um retngulo que contm o nome da entidade. Alguns exemplos so mostrados abaixo:

Pessoa

Departamen to

Como dito acima, cada retngulo, cada entidade representa um conjunto de objetos sobre os quais deseja-se guardar informaes. Assim, no exemplo acima, o primeiro retngulo designa o conjunto de todas as pessoas sobre as quais se deseja manter informaes do banco de dados, enquanto o segundo retngulo designa o conjunto de todos os departamentos sobre os quais se deseja manter informaes. Caso seja necessrio referir um objeto particular (uma determinada pessoa ou um determinado departamento) fala-se em ocorrncia de entidade. Mas recentemente, por influncia da programao orientada a objetos, usa-se instncia. Da forma como est apresentado, o modelo do exemplo acima indica apenas quais os conjuntos de objetos sobre os quais deseja-se manter informaes, mas no quais as informaes que devem ser mantidas para cada objeto. Estas informaes so definidas pelas propriedades das entidades, dadas pelos relacionamentos, atributos e generalizaes/especializaes (este ltimo s veremos na disciplina Modelagem de Dados 2).

4.2- RELACIONAMENTO
4.2.1- CONCEITUAO
Uma das propriedades sobre as quais pode ser desejvel informaes a associao entre objetos. Exemplificando, pode ser desejvel saber quais pessoas esto associadas a quais departamentos em uma organizao. A propriedade de entidade que especfica as associaes entre objetos o relacionamento. RELACIONAMENTO = Conjunto de associaes entre ocorrncias de Pgina 27 de 37 entidades

______________________________________________________Modelagem de Dados 1

Em um DER, um relacionamento representado atravs de um losngulo, ligado por linhas aos retngulos representativos das entidades que participam do relacionamento. O exemplo abaixo, apresenta um DER contendo duas entidades, PESSOA e DEPARTAMENTO, e um relacionamento, LOTAO.

D epartam ento

L otao

P oa ess

Este modelo expressa que o bando de dados mantm informaes sobre: Um conjunto de objetos classificados como pessoas (entidade PESSOA); Um conjunto de objetos classificados como departamento (entidade DEPARTAMENTO); e, Um conjunto de associaes, cada uma ligando um departamento a uma pessoa (relacionamento LOTAO).

Da mesma forma que fizemos com entidades, quando quisermos nos referir a ocorrncias ou instncias de relacionamentos. No caso do relacionamento LOTAO, uma ocorrncia da entidade PESSOA e por uma determinada ocorrncia da entidade DEPARTAMENTO. No necessariamente um relacionamento associa entidades diferentes. O exemplo abaixo mostra um DER que contm, um auto-relacionamento, devido a isto, necessrio um conceito adicional, o de papel da entidade no relacionamento. PAPEL DA ENTIDADE EM RELACIONAMENTO = Funo que uma instncia da entidade cumpre dentro de uma instncia do relacionamento

P essoa

m arido

esposa

Casam ento

No caso do relacionamento de casamento, uma ocorrncia de pessoa exerce o papel de marido e a outra ocorrncia de pessoa exerce o papel de esposa. Papis so anotados no DER como mostrado no exemplo anterior. No caso de relacionamentos entre entidades diferentes, no caso de LOTAO, no necessrio indicar papis das entidades, j que eles so bvios.

4.2.2- CARDINALIDADE DE RELACIONAMENTOS


Pgina 28 de 37

______________________________________________________Modelagem de Dados 1
Para fins de projeto de banco de dados, uma propriedade importante de um relacionamento a quantas ocorrncias de uma entidade podem estar associadas a uma determinada ocorrncia atravs do relacionamento. Esta propriedade chamada de cardinalidade de uma entidade em um relacionamento. H duas cardinalidades a considerar: a cardinalidade mxima e a cardinalidade mnima.

Cardinalidade (mnima,mxima) de entidade em relacionamento = Nmero(mnimo,mximo) de ocorrncias de entidade associadas a uma ocorrncia da entidade

4.2.3- CARDINALIDADE MXIMA


Para exemplificar o conceito de cardinalidade, vamos considerar as cardinalidades mximas do exemplo abaixo:
1 D epartam ento L otao 120 P oa ess

Entidade EMPREGADO tem cardinalidade, mxima 1 no relacionamento LOTAO. Isso significa que uma ocorrncia de EMPREGADO pode estar associado a no mximo uma ocorrncia de DEPARTAMENTO ou, em outros termos, que um empregado pode estar lotado em no mximo um departamento. Entidade DEPARTAMENTO tem cardinalidade mxima 120 no relacionamento LOTAO. Isso significa que uma ocorrncia de DEPARTAMENTO pode estar associado a no mximo 120 ocorrncias de EMPREGADO ou, em outros termos, que um departamento pode ter nele lotado no mximo 120 empregados.

Para o projeto de banco de dados, especialmente de banco de dados relacionais, no necessrio distinguir entre diferentes cardinalidades mximas maiores que um. Por este motivo, apenas duas cardinalidades mximas so geralmente consideradas: A cardinalidade mxima um (1) e; A cardinalidade mxima ilimitada, usualmente chamada de cardinalidade mxima muitos e referida pela letra n.

Assim no exemplo acima, diz-se que a cardinalidade mxima da entidade DEPARTAMENTO no relacionamento LOTAO n. Em um DER, a cardinalidade mxima representada conforme o exemplo anterior modificado. Observe a conveno usada. primeira vista, ela pode parecer pouco natural, j que a cardinalidade vai anotada do outro lado do relacionamento ao qual se refere. Exemplificando, a cardinalidade mxima da entidade EMPREGADO no relacionamento lotao anotada junto ao smbolo da entidade DEPARTAMENTO. Expressa que a uma ocorrncia de Departamento (entidade do lado oposto da anotao) podem estar associadas muitas (n) ocorrncias de Empregado Pgina 29 de 37

______________________________________________________Modelagem de Dados 1

1 D epartam ento L otao

n P oa ess

Classificao de Relacionamentos Binrios


A cardinalidade mxima pode ser usada para classificar relacionamentos binrios. Uma relacionamento binrio aquele cujas ocorrncias contm duas ocorrncias de entidade como todos vistos at aqui. Podemos classificar os relacionamentos binrios em n:n, 1:n e 1:1. A seguir apresentamos alguns exemplos de relacionamentos binrios.

Expressa que a uma ocorrncia de Empregado (entidade do lado oposto da anotao) podem estar associada a no mximo uma (1) ocorrncia de Empregado Pessoa m arido 1 Casam ento es posa 1
1 Em preg ado Alocao 1 Mes a n Aluno Ins crio 1 C o urs 1 Em preg ado Ins crio n D ependente

Pgina 30 de 37

______________________________________________________Modelagem de Dados 1
E preg m ado

supervisor 1 S upervisiona

supervisionado n

n Eng enheiro Alocao

n P rojeto

n Mdico C ulta ons

n P aciente

n P ea C apacidade

n F ornecedor

P roduto

com ponente n Com posio

com posto n

4.2.5- CARDINALIDADE MNIMA


Alm da cardinalidade mxima, outra informao que pode ser representada p um modelo ER o nmero mnimo de ocorrncias de entidades associadas a uma ocorrncia de uma entidade atravs de um relacionamento. Para fins de projeto de banco de dados, consideram-se apenas duas cardinalidades mnimas: a cardinalidade mnima 0 e a cardinalidade mnima 1. A cardinalidade mnima 1 tambm recebe a denominao de associao obrigatria, j que ela indica que o relacionamento deve obrigatoriamente associar uma ocorrncia da entidade em questo. Com base na mesma linha da raciocnio, a cardinalidade mnima, o recebe a denominao associao opcional. Pgina 31 de 37

______________________________________________________Modelagem de Dados 1
A cardinalidade mnima anotada no diagrama junto a cardinalidade mxima, conforme o exemplo abaixo. Nesta figura, aparece novamente o exemplo da alocao de empregados a mesas. Aqui, a cardinalidade mnima usada para especificar que cada empregado deve ter a ele alocada obrigatoriamente uma mesa (cardinalidade mnima 1) e que uma mesa pode existir sem que a ela esteja alocado um empregado (cardinalidade 0).
(0,1) E preg m ado Alocao (1,1) Mes a

4.4- ATRIBUTO
O modelo ER permite a especificao de propriedades de entidades. Uma propriedade participar de um relacionamento. Outra propriedade ter um atributo. O conceito de atributo serve para associar informaes a ocorrncias de entidades ou de relacionamentos. ATRIBUTO = Dado que associado a cada ocorrncia de uma entidade ou de um relacionamento Atributos so representados graficamente conforme o exemplo abaixo. A figura expressa que cada ocorrncia de PROJETO tem associado exatamente um nome, um cdigo e um tipo.

nom e Projeto cdig o tipo

Na prtica, muitas vezes os atributos no so representados graficamente, para no sobrecarregar os diagramas, j que entidades podem possuir um grande nmero de atributos. Prefere-se usar uma representao textual que aparece separadamente do diagrama ER. Um atributo pode possuir uma cardinalidade, de maneira anloga, a uma entidade em um relacionamento. A cardinalidade de um atributo define quantos valores deste atributo podem estar associados a uma ocorrncia de entidade/relacionamento a qual ele pertence. A representao grfica da cardinalidade de atributos derivada da representao da cardinalidade de entidades em relacionamentos, conforme o exemplo abaixo. nom e Cliente cdig o telefone(0,n)

No caso de a cardinalidade ser (1,1), ela pode ser omitida do diagrama. Assim, o exemplo acima expressa que nome e cdigo so atributos obrigatrios (cardinalidade mnima 1 cada entidade possui no mnimo um valor associado) e monovalorados Pgina 32 de 37

______________________________________________________Modelagem de Dados 1
(cardinalidade mxima 1 cada entidade possui no mximo um valor associado). J o atributo telefone, um atributo opcional (cardinalidade mnima 0) e multivalorado (cardinalidade mxima n). Assim como entidades tambm relacionamentos podem possuir atributos. O exemplo abaixo, mostra um DER no qual um relacionamento, ATUAO, possui um atributo, a funo que um engenheiro exerce dentro de um projeto.
(0,n) E enheiro ng Atuao (0,n) P rojeto

cdig o nom e

funo

ttulo cdig o

Esta funo no pode ser considerada atributo de ENGENHEIRO, j que um engenheiro pode atuar em diversos projetos, exercendo diferentes funes. Tambm, no atributo de PROJETO, j que, em um projeto, podem atuar diversos engenheiros com funes diferentes. Outro exemplo de atributo em relacionamento, agora em um relacionamento 1:n, mostrado abaixo. Este diagrama modela vendas a prazo que so relacionadas a uma financeira, atravs do relacionamento FINANCIAMENTO. Os atributos nmero de parcelas e taxa de juros so atributos do relacionamento. Estes dois atributos poderiam ter sido includos na entidade VENDA. Neste caso, seriam atributos opcionais, j que nem toda venda a prazo e possui estes atributos. Assim, preferiu-se usar o modelo do exemplo, exatamente para explicar o fato de os atributos nmero de parcelas e taxa de juros pertencerem somente a vendas a prazo.
(0,1) F inanceira F inanciam ento (0,n) Venda

taxa de juros

4.4.1- IDENTIFICANDO ENTIDADES


Cada entidade deve possuir um identificador. Identificador de entidade = Conjunto de um ou mais atributos e relacionamentos cujos valores servem para distinguir uma ocorrncia da nico atributo como O caso mais simples o da entidade que possui um entidade das demais identificadores so representados identificador. No DER, atributos ocorrncias da mesma entidadepor um crculo preto. No exemplo abaixo, o atributo cdigo identificador. Isso significa que cada pessoa possui um cdigo diferente. J os atributos nome e endereo no so identificadores o mesmo nome (ou o mesmo endereo) pode ser associado a pessoas diferentes.

Pgina 33 de 37

______________________________________________________Modelagem de Dados 1

Pessoa

cdig o endereo

O exemplo abaixo apresenta o identificador da entidade composto por dois atributos. Considera-se um almoxarifado de uma empresa de ferragens organizado como segue. Os produtos ficam armazenados em prateleiras. Estas prateleiras encontram-se em armrios organizados em corredores. Os corredores so numerados sequencialmente a partir de um e as prateleiras so numeradas sequencialmente a partir de um, dentro de um corredor. Assim, para identificar uma prateleira necessrio conhecer seu nmero e o nmero do corredor em que se encontra. Para cada prateleira deseja-se saber sua capacidade em metros cbicos.

nm do corredor ero Pess oa nm da prateleira ero capacidade

Finalmente, h casos em que o identificador de uma entidade composto no somente por atributos da prpria entidade, mas tambm por relacionamentos dos quais a entidade participa (relacionamento identificador). Um exemplo deste caso mostrado abaixo. Este modelo envolve empregados de uma organizao, relacionados com seus dependentes para fins de imposto de renda. Cada dependente est relacionado a exatamente um empregado. Um dependente identificado pelo empregado ao qual ele est relacionado e por um nmero de sequncia que distingue os diferentes dependentes de um mesmo empregado. No DER, o relacionamento usado como identificador indicado por uma linha mais densa.
(1,1) E preg m ado (0,n) D ependente

Nesse caso, alguns autores dizem que a entidade DEPENDENTE uma entidade fraca. O termo fraca deriva do fato de a entidade somente existir quando relacionada a outra entidade e de usar, como parte de seu indicador, entidades relacionadas. Outro exemplo de relacionamento identificador apresentado no exemplo abaixo, que contm um fragmento de um DER sobre empresas. No exemplo, representada a diviso de grupos de empresas em empresas e de empresas em filiais de empresas. Para identificar um grupo de empresas usando um cdigo. J uma empresa identificada pelo grupo ao qual est relacionada e por um nmero da empresa dentro do grupo. Finalmente, uma filial identificada pela empresa a qual est vinculada e por um nmero de filial dentro da empresa.

Pgina 34 de 37

______________________________________________________Modelagem de Dados 1
Grupo cdig o

(1,1)

(0,n) (1,1) Em presa (0,n) F ilial

cdig o-em presa

O identificador de uma entidade, seja ele simples, composto por diversos atributos ou composto por identificadores externos, deve obedecer a duas propriedades: O identificador dever mnimo. Isso significa que o identificador de uma entidade deve ser composto de tal forma que retirando um dos atributos ou relacionamentos que o compes, ele deixa de ser identificador na entidade PESSOA, do exemplo abaixo, o par cdigo e nome poderia ser usado para distinguir uma ocorrncia de PESSOA das demais. Entretanto, estes atributos no formam um identificador mnimo, j que cdigo suficiente para distinguir as ocorrncias de PESSOA.

nom e Pessoa cdig o endereo

Para fins de projeto de bando de dados relacional, cada entidade deve possuir um nico identificador. Em alguns casos, diferentes conjuntos de atributos podem servir para distinguir as ocorrncias da entidade. Exemplificando, a entidade EMPREGADO no exemplo abaixo poderia possuir como identificador tanto o atributo cdigo, quanto o atributo CPF. Cabe ao modelador decidir qual dos dois atributos ser usado como identificador na entidade.

nom e Pess oa cdig o C PF

4.4.2- IDENTIFICANDO RELACIONAMENTO


Em princpio, uma ocorrncia de relacionamento diferencia-se das demais ocorrncias do mesmo relacionamento pelas ocorrncias de entidades que dela participam. Exemplificando, uma ocorrncia de ALOCAO (exemplo abaixo) identificada pela ocorrncia de ENGENHEIRO e pela ocorrncia de PROJETO que ela relaciona. Em outros termos, para cada par (engenheiro, projeto) h no mximo um relacionamento de alocao. Pgina 35 de 37

______________________________________________________Modelagem de Dados 1
n E enheiro ng Alocao n P rojeto

Entretanto, h casos nos quais entre as mesmas ocorrncias de entidade podem existir diversas ocorrncias de relacionamentos. Um exemplo o relacionamento CONSULTA entre as entidades MDICO e PACIENTE, abaixo. Para um determinado mdico e um determinado paciente pode haver diversas consultas. Neste caso, necessrio algo que distinga uma consulta entre um mdico e seu paciente das demais consultas entre este mdico e este paciente. A diferenciao ocorre atravs de atributos identificadores de relacionamentos. No caso do relacionamento pode ser data/hora.
n Mdico C ulta ons n P aciente

data/hora

Assim, um relacionamento identificado pelas entidades dele participantes, bem como pelos atributos identificadores eventualmente definidos.

BIBLIOGRAFIA
Pgina 36 de 37

______________________________________________________Modelagem de Dados 1

Date, C. J. Introduo a Sistemas de Banco de Dados. Editora Campus, 8 edio, 2004, RJ HEUSER, Carlos Alberto. Projeto de Banco de Dados. Editora Bookman, 6 edio, 2009, SP. MACHADO, Felipe Nery Rodrigues. Banco de Dados: Projeto e Implementao. Editora rica, 2 edio, 2008, SP. MEDEIROS, Marcelo. Banco de Dados para Sistemas de Informao. Editora Visual Books, 1 edio, 2006, SC. MECENAS, Ivan & OLIVEIRA, Viviane de. Banco de Dados: do modelo conceitual implementao. Editora Alta Books, 1 edio, 2005, RJ.

Pgina 37 de 37

Você também pode gostar