Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila de Modelagem de Dados
Apostila de Modelagem de Dados
DE
INFORMTICA
MODELAGEM DE DADOS 1
Primeira Etapa
______________________________________________________Modelagem de Dados 1
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.
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.
______________________________________________________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.
______________________________________________________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
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.
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 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.
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.
______________________________________________________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.
Pgina 14 de 37
______________________________________________________Modelagem de Dados 1
______________________________________________________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.
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;
Sexo M M
Departamen to TI Operaes TI
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.
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
Ana Luiza Magalhes Pedro Sergio Doto Larissa Silva Roberto Fernandes Sergio Nogueira
12 29 01 15 10
01 01 06 06 10
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
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.
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.
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).
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
Fabrican te 2 4 1 6 5 3
Unidad e 1 2 1 1 6 1
______________________________________________________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.
______________________________________________________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
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.
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
Sexo M M M M
CdCargo C4 C5 Nulo C2
CodDep to D6 D1 D3 D4
______________________________________________________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.
______________________________________________________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
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
n P oa ess
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 P rojeto
n P aciente
n P ea C apacidade
n F ornecedor
P roduto
com posto n
______________________________________________________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.
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
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.
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)
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.
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.
______________________________________________________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