Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROJETO DE BANCO DE DADOS Sandra Rovena Frigeri 2PROJETO DE BANCO DE DADOS SUMÁRIO CENTRO UNIVERSITÁRIO UNIFTEC Rua Gustavo Ramos Sehbe n.º 107. Caxias do Sul/ RS REITOR Claudino José Meneguzzi Júnior PRÓ-REITORA ACADÊMICA Débora Frizzo PRÓ-REITOR ADMINISTRATIVO Altair Ruzzarin DIRETORA DE EDUCAÇÃO A DISTÂNCIA (NEAD) Lígia Futterleib Desenvolvido pelo Núcleo de Educação a Distância (NEAD) Designer Instrucional Sabrina Maciel Diagramação, Ilustração e Alteração de Imagem Igor Zattera Revisora Ana Clara Garcia PERSPECTIVA HISTÓRICA DOS BANCOS DE DADOS 6 PRIMEIROS TEMPOS 7 DÉCADA DE 70 11 DÉCADA DE 80 13 DÉCADA DE 90 14 SITUAÇÃO ATUAL E FUTURO 15 FUNDAMENTOS E CONCEITOS DE BANCO DE DADOS 18 A EVOLUÇÃO DO DADO 19 SISTEMA DE GERÊNCIA DE BANCO DE DADOS 20 POR QUE USAR SGBD? 22 ARQUITETURA DO SGBD 23 LINGUAGEM PADRÃO DOS SGBD 27 MODELAGEM DE DADOS 28 MODELO ENTIDADE-RELACIONAMENTO 34 CONCEITOS CENTRAIS DO MODELO ER 35 MODELO RELACIONAL 50 CHAVES 51 RESTRIÇÕES DE INTEGRIDADE 52 ESPECIFICAÇÃO RESUMIDA DE UM ESQUEMA RELACIONAL 55 NORMALIZAÇÃO DE BANCO DE DADOS 55 MAPEAMENTO ER → RELACIONAL 58 MAPEAMENTO DE ENTIDADES 59 MAPEAMENTO DE RELACIONAMENTOS DO TIPO (N:N) 59 MAPEAMENTO DE RELACIONAMENTOS DO TIPO (1:N) 62 MAPEAMENTO DE RELACIONAMENTOS DO TIPO (1:1) 62 MAPEAMENTO DE AUTORRELACIONAMENTOS 63 MAPEAMENTO DE RELACIONAMENTOS IDENTIFICADORES 65 MAPEAMENTO DE GENERALIZAÇÃO/ESPECIALIZAÇÃO 65 3PROJETO DE BANCO DE DADOS APRESENTAÇÃO Informações são essenciais para a tomada de decisões e para a gestão das organizações, contudo o volume de dados/ informações cresce a cada dia, tornando complexa a atividade de recuperá-las e relacioná-las. Assim, os Sistemas Geren- ciadores de Banco de Dados tornam-se importante ferramenta, pois possibilitam o armazenamento e recuperação eficiente de dados/informações. O objetivo deste material é oferecer uma introdução aos conceitos de Banco de Dados, sua história e evolução, demonstrar a relevância da modelagem de dados e estudar técnicas de modelagem, e, finalmente, apresentar algumas perspectivas para o futuro dos bancos de dados. 4PROJETO DE BANCO DE DADOS INTRODUÇÃO Você já se questionou sobre a importância da informação? Peter Drucker já defendia, em 1993, que a informação é a base para a gestão, afirma que estamos na sociedade do conhecimento e, assim, a informação passa a suplantar o valor do capital financeiro e de seu adequado uso depende o sucesso empresarial. Nesse sentido, o acesso à informação aliado à capacidade de extração de conhecimentos é vital para a ampliação do potencial competitivo, pois pode pro- porcionar a eficiência na utilização dos recursos, maximizando resultados. A organização dos dados, as es- truturas que identificam seus elementos relevantes e como estão relacionados, o ciclo de vida da informação, mudanças que ocorrem ao longo do tempo e recursos para facilitar as pesquisas, são aspectos muito importantes para que tenhamos as infor- mações que precisamos, quando forem necessárias, com a precisão e qualidades adequadas. Saiba, que na história, esses registros eram feitos em papel, separados em pastas/ caixas/gavetas/estantes, com guias de con- “Who has good quality information, reliable, the correct amount at the right time, get competitive advantage, but the lack of information gaps gives the errors and missed opportunities.”1 Peter Drucker 1“Quem dispõe de informações de boa qualidade, fidedignas, em quan- tidade adequada e no momento certo, adquire vantagens competitivas, mas a falta de informação dá brechas a erros e à perda de oportunidades.” Peter Ferdinand Drucker (19/11/1909 – 11/11/2005) 5PROJETO DE BANCO DE DADOS sulta que indexavam os dados, permitindo buscas limitadas por determinados termos pré-definidos. A evolução da informática trouxe alternativas para realização do re- gistro e recuperação de dados, trazendo eficiência ao processo, apresentando pos- sibilidades de cruzamentos e permitindo a dedução de novas informações. Inicial- mente, os registros informatizados eram bastante rudimentares e o potencial de buscas bastante restrito, mas atualmente a capacidade dos Sistemas Gerenciadores de Banco de Dados é muito grande, per- mitindo o armazenamento e recuperação eficientes1 e eficazes2 de grandes volumes de dados. O gmail tem mais de 60 milhões de usuários, o Google Earth e Google Maps armazenam imagens do mundo todo, es- truturas de vias, roteiros, etc. Além disso, a Google guarda informações de todas as páginas do mundo e recebe mais de 100 milhões de consultas por dia. Estima-se que a Google armazene muitos petabytes de dados (1 petabyte = 1024 terabytes). Tudo isso somente é possível com a utilização de SGBD (Sistemas Gerencia- dores de Bancos de Dados)! A história dos Sistemas Gerenciado- res de Banco de Dados inicia na década de 60 (século XX), nos laboratórios da IBM, onde faziam pesquisas para automação de escritórios, pois já percebiam a impor- tância da informação e o alto custo, em termos de pessoas e espaço, necessário para gerenciá-la. Desde essa época, até hoje, muito mudou e juntos analisaremos sua 1Ser eficiente é uma qualidade que indica a rapidez de realização de uma atividade, é agilizar os processos para chegar ao objetivo no menor tempo possível. 2Ser eficaz é uma qualidade que tem relação com a ideia de efeito, assim, a partir de uma determinada ação, segue sempre um resultado esperado/desejável. perspectiva histórica, no primeiro capítulo. Banco de dados é uma área de pes- quisa e desenvolvimento no contexto de Ciência da Computação. Dessa forma, possui conceitos fundamentais e termino- logias específicas, que precisam ser conhe- cidos e compreendidos para o adequado uso dessa tecnologia, assim no segundo capítulo nos focaremos nesse objetivo. Para que possamos recuperar infor- mações, elas precisam ser adequadamente armazenadas. Assim, surge a necessidade da modelagem de dados que definirá a organização dos bancos de dados. Dessa forma, no terceiro capítulo, estudaremos os fundamentos da modelagem entidade- -relacionamento (DER), que é conside- rado um dos mais importantes modelos de banco de dados. E na sequência, no quarto capítulo estudaremos o Modelo Relacional. Por último, no quinto capítulo, aprenderemos a transformar um diagrama ER e um esquema de dados relacional. Tenho certeza que você irá gos- tar muito de aprender sobre Bancos de Dados! Você já pensou sobre como a Google armazena e recupera informações? 6PROJETO DE BANCO DE DADOS PERSPECTIVA HISTÓRICA DOS BANCOS DE DADOS Você já pensou sobre como armazenamos as informações que precisamos consultar? Como foi a evolução deste recurso tão importante para todos os sistemas? Para iniciarmos o nosso estudo, é importante conhecer o início dos bancos de dados, tão importante para as organi- zações empresariais, como para nós. Vamos compreender a sua evolução, seus marcos históricos e tecnológicos, além de entender as suas perspectivas futuras. A história dos bancos de dados está ligada ao desenvolvimento da ciência da com- putação, suas transformações tecnológicas e sua inf luência sobre forma como os profissionais de informática pensam a estruturação da informação. As práticas, frameworks e usos 7PROJETO DE BANCO DE DADOS de bancos de dados, tão pioneiros nos pri- mórdios, tornaram-se intrínsecos ao modo como as organizações gerenciam os dados. A atual velocidade da produção de dados é impulsionada pela demanda e acessibilidade que aumentam, constan- temente, à medida que as bases de dados se tornam cada vez mais essenciais para aspectos de nossas vidas diárias. Deve-se ter em conta, que o volume de dados em muitos períodos excedeu a capacidade de processamento (humana e computacional) e isso sempre impulsionou a busca por al- ternativas mais eficientes, impulsionando a evolução dos bancos de dados3. PRIMEIROS TEMPOS A IBM (International Business Ma- chine) está ligada àsorigens de muitos desenvolvimentos tecnológicos computa- cionais e não podia ser diferente com os 3 Herman Hollerith, ao ver a crescente quantidade de dados recolhidos pelo Censo dos EUA de 1880 (que levou 8 anos para ser tabulada), inventou “Hollerith cartões”, classificador e máquinas de tabulação, com o propósito de tabular dados, representados por buracos nos cartões de perfurados. A Hollerith’s Tabulating Machine Company foi posteriormente fundida com outras três empresas em International Business Machines (IBM). banco de dados. Na década de 1960 foram desenvol- vidas pesquisas para automação de escri- tórios, que visavam otimizar os proces- sos realizados, organizar as informações e facilitar o trabalho. Nesse período, os dados eram organizados em arquivos ge- renciados pelo sistema operacional, era uma maneira rudimentar de armazená-los, mas que oferecia vantagens em relação ao armazenamento físico em papel. Por outro lado, os sistemas de arquivos apresentavam alguns inconvenientes: Redundâncias e Inconsistências Frequentemente a mesma informa- ção estava em diversos arquivos (repetida), ou seja, havia redundância. Esta caracte- rística pode levar a um grave problema que é a inconsistência, pois com a mesma informação repetida em dois ou mais ar- quivos, ela poderia ser atualizada em um deles e não ser em outro, assim passa a ter dois (ou mais) valores diferentes, inconsis- tentes e, muitas vezes, não se sabe qual o correto. Exemplo: Um arquivo com dados dos funcionários, onde se tem o endereço. Outro arquivo com dados de voluntários, onde também se tem o endereço. Agora, suponha que uma pessoa que é funcioná- rio e também voluntário, teria seus dados redundantes, repetidos em ambos os ar- quivos. Se ela mudar de endereço e este for somente alterado no arquivo de funcioná- rios. A partir dessa alteração, como saber qual o endereço correto, pois seu endereço estará diferente em cada um dos arquivos. Esse é um problema grave e denomina-se inconsistência (a mesma informação com valores diferentes em lugares diferentes). Dificuldade de Acesso O acesso ás informações organi- zadas em arquivos, devem ser feitas pelo sistema (softwares/aplicação) que a gerou, assim para acessar as informações de um arquivo, também é necessário saber como foi gerada (linguagem de programação e/ ou sistema) e sua estrutura, caso contrário, na maioria das vezes o acesso fica inviável. 8PROJETO DE BANCO DE DADOS Falta de Integridade Lógica e Isolamento de dados Um dos principais objetivos do ar- mazenamento de informações é realizar o cruzamento de diversos dados, identi- ficando suas relações, porém a organiza- ção da informação em arquivos isola as informações, pois cada arquivo pode ter sido gerado por sistemas e/ou linguagens diferentes, que normalmente não possuem meios de intercomunicação, dificultando a realização de cruzamentos e reduzindo a capacidade de análise dos dados. Arquivos de dados não possuem integridade lógica, ou seja, não há relações entre os dados de um arquivo com os dados de outro arquivo, estão isolados. Falta de Atomicidade nas Transações Transações são processos realizados em sistemas computacionais, com o obje- tivo de realizar alguma tarefa dentro do contexto de uma aplicação. Normalmente, as transações envolvem um conjunto de atividades que somente são coerentes e corretas, se consideradas como uma uni- dade atômica (indivisível), ou seja, todas as operações da transação devem ser exe- cutadas, caso contrário o resultado será indesejável. Sistemas que trabalham com arquivos convencionais não possuem ferra- mentas que possam, efetivamente, garantir a atomicidade das transações, esse controle deve ser implementado em cada aplicação pelos programadores, que caso se esque- çam ou não dos testes, adequadamente a implementação poderá compromete-la. Considere o seguinte exemplo: de- seja-se fazer uma transferência bancária, sacando R$ 100,00 da conta do cliente A e depositando este valor na conta do cliente B. Isso é uma transação e envolve as seguintes atividades: iniciar o processo de transferência; consultar o saldo da conta do cliente A; informar o valor a ser sacado; registrar a retirada da conta do cliente A do valor sacado; atualizar o saldo da conta do cliente A; consultar o saldo da conta do cliente B; registrar p depósito na conta do cliente B; alterar o saldo na conta do cliente B; finalizar a transação. Perceba que todas as atividades dessa transação precisam ser realizadas, não se pode parar no meio (por uma falha técnica ou por qualquer outro motivo), pois isso com- prometeria a qualidade e consistência das informações do sistema, além de reclama- ções dos clientes! Problemas de Acesso Concorrente As informações dos arquivos de- vem refletir as atualizações mais recentes. Porém, o que ocorre quando mais de um sistema ou pessoa deseja atualizar a mesma informação ao mesmo tempo? De quem deve ser a prioridade? Como garantir que a informação fique correta? Ness e caso, o procedimento a ser desenvolvido é sempre que for consultada uma informação com a intenção de alterá-la o seu acesso deve ficar bloqueado aos outros usuários até que libere a informação. A responsabilidade deste controle nos sistemas de arquivos convencionais é do programador de cada aplicação, que pode estar sujeito a falhas. Agora, suponha que quase no mes- 9PROJETO DE BANCO DE DADOS mo instante estão sendo realizadas duas transferências bancárias, portanto duas transações concorrentes. Considere ainda, os seguintes saldos dos clientes: Cliente A: R$ 200,00; Cliente B: R$ 50,00; e Cliente C: R$ 100,00. Assim, hipoteticamente, se o banco tivesse apenas esses três clientes o total em depósitos seria R$ 350,00. A tabela a seguir exemplifica o problema da execução concorrente destas transações, sendo T0 o tempo inicial e Tx a sequencial temporal de realização das atividades. Atividade Transação 1: transferir R$ 100,00 do cliente A para o cliente B Transação 2: transferir R$ 200,00 do cliente A para o cliente C Iniciar o processo de transferência T0 T1 Consultar o saldo da conta do cliente A T2: saldo=R$ 200,00 T3: saldo=R$ 200,00 Informar o valor a ser sacado T4: R$ 100,00 T5: R$ 200,00 Registrar a retirada da conta do cliente A do valor sacado T6: saldo = 200 - 100 T7: saldo = 200 - 200 Atualizar o saldo da conta do cliente A T8: saldo = 100 (gravar) (cliente A) T9: saldo = 0 (gravar) (cliente A) Consultar o saldo da conta do cliente que recebe a transferência T10: saldo = 50 (cliente B) T11: saldo = 100 (cliente C) Registrar o depósito na conta do cliente T12: saldo = 50 + 100 (cliente B) T13: saldo = 100 + 200 (cliente C) Alterar o saldo na conta do cliente T14: saldo = 150 (gravar)(cliente B) T15: saldo = 300 (gravar) (cliente C) Finalizar a transação T16 T17 Demonstração do Problema de Acesso Concorrente Portanto, o saldo final das contas é: Cliente A: R$ 0,00; Cliente B: R$ 150,00; e Cliente C: R$ 300,00. Assim, novamente hipoteticamente, se o banco tivesse apenas esses três clientes o total em depósitos, agora seria R$ 450,00. Perceba que após o processo, com problemas de concorrência, o saldo total de depósitos foi alterado e deveria se manter o mesmo! O problema é que essas duas transações não poderiam ser executadas simultaneamente, visto que consultam e alteram a mesma informação que é o saldo do cliente A. Para correta execução concorrente, a segunda transa- ção somente poderia ser liberada após o término da primeira e neste caso o saldo consultado já teria sido alterado. Problemas de Segurança As informações das corporações e nossas informações pessoais, entre ou- tras, muitas vezes não devem ser acessadas por pessoas não autorizadas, portanto é necessário implementar mecanismos que as protejam. Nos primórdios, utilizando arquivos para o armazenamento, pois o 10PROJETO DE BANCO DE DADOS controle da segurança também precisavaser implementado pelos programadores em cada aplicação, porém sem essa, os dados ficavam vulneráveis e abertos para acessos indevidos. Portanto, os sistemas de arquivos tinham problemas de segurança. CODASYL E IMS Nesta época, os computadores pro- gressivamente passam a se tornar parte do custo das empresas, evidenciando as necessidades de ampliação das capacidades de armazenamento e recuperação de dados. O resultado deste interesse foi o desen- volvimento dos dois primeiros modelos de dados: modelo em rede (CODASYL - Comitee for Data Systems Language) e o modelo hierárquico (IMS – Information Management System). Eram modelos em que a estrutura lógica de acesso à infor- mação estava intrinsecamente ligada à or- ganização física e aos recursos da lingua- gem para acesso aos dados. Assim, eram utilizados links (ligações) entre os dados/ registros que eram implementados através de ponteiros de baixo nível (referência ao endereço do dispositivo de armazenamen- to). Qualquer alteração na estrutura dos dados implicava na reescrita dos programas para realização do armazenamento e das consultas, também era necessário conhecer toda a estrutura física para todo o desen- volvimento. A diferença básica entre esses modelos é a forma como as ligações podem ser estruturadas. No modelo hierárquico é necessário ter uma origem da hierarquia e as outras informações são relacionadas abaixo desta, formando a hierarquia, de onde vem a denominação do modelo. Já, no modelo em rede não há a limitação da estrutura hierárquica, permitindo que as informações sejam relacionadas sem uma origem. A IBM lançou um dos primeiros sistemas de banco de dados no final da década de 60, que foi o IMS (Information Management System). Na mesma época, o comitê da CODASYL lança o sistema de banco de dados em rede integrado a linguagem COBOL4 . Esses modelos foram uma evolução em relação a utilização de arquivos para gerenciamento de informações, permitiam que os dados que seriam armazenados fos- sem organizados e relacionados, diminuin- do os problemas de acesso aos dados, falta de integridade e isolamento dos mesmos. Mas ainda era necessário evoluir! 4 COBOL é a sigla de COmmon Business Oriented Language (Linguagem Comum Orientada para os Negócios) é uma linguagem de programação criada com foco para o processamento de banco de dados comerciais, desenvolvida no final da década de 50, integrada a sistemas de banco de dados no final da década de 60, tornou-se a linguagem mais utilizada durante as décadas de 70 e 80 para o desenvolvimento de aplicações comerciais. Ainda foi amplamente utilizada na década de 90 e começou sua decadência no início do século XXI. Ainda é possível encontrar aplicações em uso desenvolvidas em COBOL. Agora, vamos refletir! Arquivos ainda são utilizados? Com certeza sim! Você e muitas organizações utilizam arquivos de editores de textos, planilhas eletrônicas, anotações, imagens/fotos, etc. O gerenciamento destes arquivos apresenta alguns dos inconvenientes dos arquivos utilizados nos primórdios dos bancos de dados? 11PROJETO DE BANCO DE DADOS DÉCADA DE 70 E.F. Codd foi um matemático in- glês que trabalhava na IBM, que em 1972 publicou um artigo chamado “Relational Model of Data for Large Shared Data Banks”. Esse artigo apresentou os fundamentos do Modelo de Banco de dados Relacio- nal, baseado na Teoria de Conjuntos5 , lançando as bases para que informações interligadas fossem definidas como rela- ções (conjuntos) e adaptando essa teoria matemática para a área de banco de dados. Também apresentou o cálculo e a álgebra relacional que consistem em conjunto de operações matemáticas para manipulação das informações. A proposta de Codd era comple- xa e não foi prontamente aceita e imple- mentada, mas ele conseguiu que a IBM permitisse a implantação de um grupo de pesquisa denominado System R (Sistema 5 Ramo da matemática, a Teoria dos conjuntos estuda as coleções de elementos (conjuntos). A linguagem da teoria dos conjuntos inclui definições que especificam relações entre elementos e conjuntos, possui operadores que determinam essas relações (contém e está contido) e pos- sibilita operações entre conjuntos, tais como: união, intersecção, diferença e produto cartesiano. Esta teoria inclui a especificações do cálculo e da álgebra para os conjuntos. R - Relacional), que acabou por dar nome ao Sistema Relacional. Este sistema evo- lui e finalmente passou a ser chamado de DB2, o principal e mais conhecido sistema de banco de dados da IBM. Com o System R foi desenvolvida uma linguagem conhecida por Structured Query Language6 (SQL) . O Modelo de Banco de Dados Relacional e os Sistemas de Banco de Dados Relacionais tornaram- -se padrão para a indústria de banco de dados e é um padrão ISO7 (International Organization for Standardization) . Sistemas de Banco de Dados Rela- cionais separam os dados da aplicação da sua estrutura de armazenamento e pos- sibilitam a manipulação das informações através de uma linguagem de consulta que implementa as operações matemáticas especificadas no modelo relacional. O protótipo do System R foi lan- çado pela IBM, em 1974, que somente 4 Linguagem de Consulta Estruturada, hoje também conhecida como Linguagem de Consulta Padrão (Standard Query Language). 7 Organização Internacional de Padronização. Edgar Frank Codd (23/8/1923 – 18/4/2003) 12PROJETO DE BANCO DE DADOS disponibilizou sua versão comercial em 1981. O primeiro Sistema Gerenciador de Banco de Dados Relacional comercia- lizado, foi desenvolvido pela Honeywell Information Systems Inc. em 1976, mas não existe mais. Ainda antes da IBM, em 1979 a ORACLE Corporation lança o ORACLE DataBase System e torna-se o SGBD Relacional mais conhecido e uma das maiores corporações reconhecidas até os dias de hoje. Outra grande contribuição para evo- lução dos Sistemas de Banco de Dados foi o Modelo Entidade-Relacional proposto por Peter Chen em seu artigo “The Enti- ty-Relationship Model--Toward a Unified View of Data” publicado na ACM Tran- sactions on Database Systems, em 1976. Esse artigo é um dos mais importantes para a área de banco de dados e para a ciência da computação, além de ser um dos trabalhos mais citados. A inovação da proposta de Chen, foi a especificação de um modelo independente da implemen- tação do Sistema Gerenciador de Banco de Dados, iniciando o que chamamos de modelagem conceitual de banco de dados. O Modelo ER8, como é conhecido, tornou-se base para diversas metodologias de análise e projeto de sistemas, para o desenvolvimento de ferramentas de mo- delagem e de apoio ao desenvolvimento de software (ferramentas CASE9), projetos de dicionários e repositórios de dados. Esse modelo ainda é utilizado atualmen- te, diversas extensões foram agregadas à proposta original, além de ser a base para outros modelos como o diagrama de clas- ses do paradigma orientado a objetos. Em 1979 ocorreu a primeira conferência de modelagem conceitual10, conhecida como ER Conference. Entre os dias 14 e 17 de novembro de 2016 ocorreu a 35º ER Con- ference, demonstrando a atual relevância do trabalho realizado por Peter Chen e as ramificações desse no contexto da mode- lagem conceitual de banco de dados. As contribuições de Codd e Chen foram determinantes para evolução dos Sistemas Gerenciadores de Banco de Da- 8 Modelo ER (Modelo Entidade-Relacionamento), também conhecido simplesmente por Diagrama ER (DER). 9 CASE: Computer Aided Software Engineer (Engenharia de Software Auxiliada por Computador) 10 International Conference on Conceptual Modeling (http:// www.conceptualmodeling.org/) Peter Chen (Nasceu em 3/1/1947) 13PROJETO DE BANCO DE DADOS dos, mas ainda havia muito trabalho a ser feito em termos de desenvolvimento das ferramentas e superação das limitações do hardware (principalmente em relação aos dispositivos de armazenamento). Ao final dessa década, tem-se as bases para o armazenamentoe recuperação de dados baseados no modelo relacional, mas as aplicações ainda não apresentam eficiência adequada e muitos desenvolvedores ainda preferem utilizar a linguagem COBOL com os sistemas de banco de dados base- ados nos modelos hierárquico e em rede. DÉCADA DE 80 Nesta década ocorreu um grande desenvolvimento dos bancos de dados e muitas melhorias foram implementadas nos SGBDs, possibilitando que seu uso comercial fosse ampliando. A ORACLE lançou o ORACLE 2 e a IBM lançou o SQL/DS (que depois tornou-se o DB2), utilizado como repositório de dados por muitas aplicações. Em paralelo com a evolução de siste- mas baseados no modelo relacional, inicia- ram os estudos que levaram ao desenvol- vimento de Sistemas de Banco de Dados Orientados a Objetos para manipularem informações que não eram passíveis de serem modeladas através do Modelo Re- lacional, tais como aplicações de medicina, multimídia e física, as quais precisavam de mais f lexibilidade para a especificação e gerenciamento de suas informações. Os primeiros SGBDOO (Sistemas Gerencia- dores de Banco de Dados Orientados a Objetos) foram: O2 [1988]; Exodus [1986]; e ORION [1986]. A partir desses estudos, começaram a surgir Sistemas Gerenciadores de Banco de Dados Relacionais, os quais agregavam características dos Banco de Dados Orien- tados a Objetos: POSTGRES [1986]; e STARBURST [1988]. A performance e ferramentas de apoio, ao desenvolvimento, são ampla- mente difundidas no final desta década e se amplia a confiança para o desenvolvi- mento de aplicações baseadas em banco de dados. Contribui para isso, a padronização da linguagem SQL, que define que todo SGBD Relacional deve utilizar a mesma linguagem a SQL ANSI11 [1986, 1989], assim uma aplicação desenvolvida para um banco de dados relacional utilizará a mesma linguagem para manipulação das informações, tornando as aplicações por- táveis12, conferindo certa independência do SGBD. Nesse período, já se tem diversos SGBDs a disposição, entre eles se pode destacar os seguintes: DB2; Ingres; Oracle; Sybase; e Informix. 11 American National Standards Institute. 12 Portabilidade de uma aplicação em relação ao Sistema Geren- ciador de Banco de Dados, indica que esta pode ser desenvolvida para um SGBD específico e pode ser utilizada em outro, realizando apenas poucos ajustes. 14PROJETO DE BANCO DE DADOS DÉCADA DE 90 Nesse período, os Sistemas Ge- renciadores de Banco de Dados se po- pularizaram e a maioria das aplicações já passaram a ser desenvolvidas, utilizando essa tecnologia para armazenamento e re- cuperação de informações. Diversos recur- sos e ferramentas foram incorporados aos SGBDs disponibilizados comercialmente e as melhorias no hardware e sistemas operacionais também contribuíram para melhoria de sua eficiência. Já, o uso dos sistemas baseados nos modelos hierárquico e em rede passou a se restringir aos siste- mas legados13. 13 Sistemas Legados são aqueles baseados em tecnologias obsoletas ou em obsolescência, que já estão em desuso. Há também muitos avanços na área de banco de dados, alguns relacionados a estruturação das informações e tipos de informações que podem ser manipu- ladas, outros para melhorar a forma de processamento das informações ou ainda interfaces entre aplicações e para os di- versos tipos de usuários. Assim surgem comercialmente, a partir de pesquisas já realizadas, SGBDs paralelos, SGBDs de tempo real, SGBD Orientados e Objetos, SGBDs multimídia além de SGBDs para arquiteturas cliente-servidor, alinhados à evolução dos sistemas operacionais. Além disso, são funções aplicadas, que eram, até o momento, baseadas no registro e recuperação de dados ligados à área operacional das organizações. Assim, começam a ser amplamente utilizados Sis- temas de Apoio a Tomada de Decisões, Sistemas Especialistas, Sistemas para Des- coberta de Conhecimento em Bases de Dados, Mineração de Dados, Sistemas para gerenciamento de mídias, multimí- dias e hipermídia, além de aplicações que integram bases de dados de fontes diver- sificadas (Datawarehouse). Acrescenta-se a isso, os desenvolvimentos de sistemas de banco de dados para gerenciamento de páginas e informações da internet. Os SGBDs chegaram a sua matu- ridade, possuem distribuições comerciais estáveis e confiáveis, mas ainda existem desafios a serem superados, como por exemplo o crescimento do volume de da- dos. 15PROJETO DE BANCO DE DADOS SITUAÇÃO ATUAL E FUTURO No século XXI, amplia-se o uso dos bancos de dados XML14 , que são um tipo de banco de dados estruturado orientado a documentos e que permite consultas com base em atributos de documentos XML. Os bancos de dados XML são utiliza- dos como padrão de interoperabilidade de dados máquina-a-máquina. Também surgem os bancos de dados NoSQL que, geralmente, são muito rápidos, não re- querem esquemas de tabela fixa, evitam operações de junção, armazenando dados desnormalizados e são projetados para trabalhar com escalonamento horizontal. É desenvolvido também o NewS- QL, o qual é uma classe de Banco de Da- dos Relacionais modernos, que tem como objetivo fornecer o mesmo desempenho 14 XML (eXtensible Markup Language) é um padrão recomendado pela da W3C para produzir arquivos com objetivos específicos. A XML deriva da SGML (acrônimo de Standard Generalized Markup Language ou Linguagem Padronizada de Marcação Genérica) e possibilita a descrição de diversos tipos de dados. O objetivo principal é facilitar o compartilhamento de informações pela internet. O Consórcio World Wide Web (W3C) é um consórcio internacional no qual organizações filiadas, uma equipe em tempo integral e o público trabalham juntos para desenvolver padrões para a Web. (https://www.w3.org/ ) escalável de sistemas NoSQL para pro- cessamento on-line de transações (leitura e gravação), enquanto ainda usa o SQL. Esses bancos de dados incluem ScaleBa- se, Clustrix, EnterpriseDB, MemSQL, NuoDB e VoltDB. A história dos SGBDs está ligada a necessidade de armazenar grandes volumes de informações para que possam ser recu- peradas, de forma eficiente e convenien- te. Estima-se que em 2020 serão gerados mais de 40 zetabytes de dados (mais de 40 trilhões de gigabytes), de fontes de dados diversificadas: sistemas empresariais, sis- temas de instituições de pesquisa, sistemas de monitoramento, dados climáticos, redes sociais, fotos, etc. Constitui-se ainda um desafio organizar todas essas informações de maneira a torná-las úteis e significati- vas, permitindo que sejam correlacionadas e que possibilitem a tomada de decisões ou o seu simples acesso, quando forem necessárias e relevantes. Esse grande vo- lume de informações constitui o Big Data. O Big Data sinaliza o princípio de uma grande transformação na sociedade, assim como o telescópio alterou a forma de compreensão do universo e o microscópio nos permitiu ver o que parecia invisível. Big Data mudará a forma de como per- cebemos o mundo, pois deixamos de ter problemas para coletar dados, não temos mais escassez de dados, contudo, agora, temos abundância de dados. Com isso, surge um novo problema, pois temos uma capacidade limitada para lidar com gran- des volumes de dados e torna-se cada vez mais difícil filtrar o que nos interessa ou não. O impacto do Big Data supera a invenção da imprensa (1430), que nos pri- meiros 50 anos publicou mais conteúdos que em toda a história anterior. Desde 2010, a cada 2 dias são gerados mais dados do que em toda a história da humanida- de (anterior à internet) e estima-se que a cada 2 anos o volume de informações seja duplicado. Assim, muitas pesquisas tem sido realizadas para trabalhar com o Big Data, essas visam a integração de diversas ferra- mentas e desenvolvimento de novas com o 16PROJETO DE BANCO DE DADOS intuito de facilitar o acesso as mais variadas informações, minimizando os problemas do excesso de informações disponíveis. No entanto, ainda há muito aser feito nesse sentido. Outro foco, são os bancos de dados para dispositivos móveis, onde quase em oposição ao Big Data, tem-se diversas res- trições, principalmente, em relação ao es- paço para armazenamento de informações e custo de transmissão de dados. Assim, é necessário, ao mesmo tempo, otimizar as informações de maneira a ocuparem o menor espaço possível e manter a quali- dade e relevância do que é apresentado. A área de Banco de Dados ainda é fonte de muitas pesquisas, inovações sem- pre são necessárias e, com certeza, todo profissional de informática precisa ter, no mínimo, noções sobre o armazenamento e recuperação de informações. Amplie seus conhecimentos ! Pesquise para conhecer mais sobre a vida e o trabalho de Edgar Frank Codd e Peter Chen, personalidades que tanto contribuíram para o desenvolvimento da área de banco de dados. FAZENDO UM AUTOESTUDO! 1. Qual a importância da informação em nossa sociedade? 2. Quais são os problemas dos arquivos convencionais? 3. O que são SGBDs? 4. Quando começaram as ser desenvolvidos os SGBDs? 5. Qual a importância de E.F. Codd para a área de Banco de Dados? 6. Quem definiu o Modelo Entidade-Relacionamento? 7. Qual a importância do Modelo ER? 8. Quais desafios os Sistemas Gerenciadores de Banco de Dados Relacionais enfrentaram desde o seu surgimento até a sua estabilização? 9. Enumere algumas aplicações que utilizam Sistemas de Banco de Dados? 10. O que é o Big Data e quais seus desafios? 18PROJETO DE BANCO DE DADOS FUNDAMENTOS E CONCEITOS DE BANCO DE DADOS Para conversamos com alguém precisamos conhecer seu idioma e gírias! Para trabalhar com Banco de Dados precisamos conhecer seu vocabulário! Agora, vamos conhecer alguns conceitos relacionados com a área de Banco de Dados, pois estes são importantes para que entendamos os principais elementos relacionados com o seu uso. 19PROJETO DE BANCO DE DADOS A EVOLUÇÃO DO DADO É possível definir o Banco de Dados como um conjunto de dados relaciona- dos, que possibilitam a identificação de informações. Dessa forma, precisamos entender, e diferenciar, o que são dados, informações, o que podem ser e transfor- mar no que é conhecimento. Dados são registros numéricos ou textuais, de operações, ocorrências, situ- ações, características, ou ainda, resultados obtidos, que isolados e sem contexto, po- dem não ter significado próprio. Assim, dados podem ser definidos como fatos em sua forma primária, como observamos no mundo. Por exemplo, considere o dado 10, podemos dizer que é um número inteiro, mas o que significa? Qual informação representa? É uma nota? Nota 10. É um dia? Dia 10. É um mês? Mês de outubro. É uma duração de tempo? 10 minutos ou 10 horas. Quando os dados são colocados em um contexto e são interligados passam a ter significado. Assim, informação é uma mensagem significativa e contextualizada, resultado da análise realizada sobre os dados. Pode- mos dizer que informação é o significado que as pessoas associam aos dados através de convenções usadas em sua interpreta- ção. Dessa maneira, quando os dados são organizados em conjunto, acrescenta-se a eles valor, tornam-se úteis, então se tor- nam informação. Assim, quando o dado 10 é vinculado a temperatura, associado ao dia e hora em que foi observada, tor- na-se uma informação, principalmente se vinculado a um conjunto de temperaturas, por exemplo, coletadas ao longo de um período de tempo. Chegamos ao topo da pirâmide, onde o conhecimento irá refletir os estados mentais que estão em constante transfor- mação, representando a experiência. Na produção do conhecimento as informações são selecionadas, organizadas, sintetizadas, relacionadas com outras e mobilizadas para realização de algo prático e possibilitam a tomada de decisões ou a realização de alguma tarefa específica. O conhecimento é, portanto, a in- formação em movimento. Por exemplo, quando se tem a informação que está 10°, sabe-se que está frio e toma-se a decisão de fechar as janelas, colocar roupas quentes, etc. Para informação se transformar em conhecimento ela precisa ser compreen- dida, seu conteúdo deve ser reconhecido e fazer parte da memória e experiência de um indivíduo, e assim possa ser utilizado para orientar as ações. 20PROJETO DE BANCO DE DADOS SISTEMA DE GERÊNCIA DE BANCO DE DADOS Os SGBD (Sistemas de Gerência de Banco de Dados ou Sistemas de Gerencia- mento de Banco de Dados) possibilitam a definição, construção e manipulação de bancos de dados para as mais diversas aplicações. Vamos entender melhor o que isso significa: • Definição do Banco de Dados: é a descrição das estruturas que serão armazenadas no banco de dados, engloba a modelagem conceitual e especificação física dos dados e suas relações. • Construção do Banco de Dados: é o processo de criação das estruturas físicas e configurações do Banco de Dados. • Manipulação do Banco de Dados: são os processos de armazenamen- to de dados (inclusão, alteração e exclusão de dados) e execução de consultas e relatórios. Vamos aprender a definir Banco de Dados!! Há várias formas de definir o que é um banco de dados: conjunto de arquivos relacionados, coleção de dados operacio- nais armazenados e usados por sistemas, coleção de dados relacionais. Enfim, um banco de dados é uma estrutura armazena- da em um dispositivo físico composta por dados relacionados e que são gerenciados por um sistema de gerência de banco de dados. Dessa forma, o SGBD constitui-se em um conjunto de softwares especializa- dos com funções específicas, interligados com os programas de aplicações e com o banco de dados. Vamos conhecer alguns destes softwares que fazem parte de um SGBD ou trabalham em conjunto com ele: Programas de Aplicação: são pro- gramas desenvolvidos para as organiza- ções e usuários com os mais diversos fins: gestão empresarial, cálculos de impostos, gestão de estoques, cálculos de custos, catalogação de livros, etc. Gerenciador de Arquivos: software especializado em fazer a gestão dos arqui- 21PROJETO DE BANCO DE DADOS vos gerenciados pelo SGBD, que englobam arquivos de dados, arquivos de índices, arquivos de dicionários de dados, arquivos de recuperação, arquivos de usuários, etc. Suas principais funções são: alocar espaço nos dispositivos de armazenamento, criar e gerenciar estruturas de indexação, criar e gerenciar estruturas de recuperação em caso de falhas, criar e gerenciar estruturas de memória para otimizar o acesso aos registros dos arquivos. É um dos mais importantes módulos de um SGBD e deve funcionar de forma autônoma em relação aos outros módulos, pois isso permite que seja atualizado de forma independente, visando a otimização de seus processos ou adequação a atualizações dos sistemas operacionais. Gerenciador de Banco de Dados: fornece uma interface para o administrador do banco de dados (DBA1 ) para acessar o gerenciador de arquivos, os aplicativos de definição de dados e de consulta. Interpretador DDL: o processa- dor de expressões DDL (Data Definition 1 DBA: DataBase Administrator Language) é parte da SQL e constitui-se em uma linguagem de definição de dados, que é utilizada para criação de estruturas (tabelas, objetos, funções, etc.) no banco de dados. Dicionário de Dados: é o componente responsável pelos metadados do banco de dados. Os metadados são uma estrutura que possui as informações sobre a estrutura do banco de dados. Metadados são dados que tem as explicações dos dados que serão armazenados no banco de dados. Assim os metadados tornam possível transformar os dados em informações. Processador e Otimizador de Consultas: responsável por analisar comandos de consultas SQL e transformá-las em um plano de execução otimizado, para a efi- ciente recuperação de dados. Pré-compilador DML e Compilador DML: converte comandos DML (Da- taManipulation Language) em instruções para manipulação dos dados. A DML é parte da linguagemSQL e constitui-se por comandos de manipulação de dados (inclusão, alteração e exclusão). Gerenciador de Transações: inclui os módulos de controle de con- corrência e subsistema de recuperação, responsáveis pela correta execução das transações. A figura a seguir demonstra a relação entre esses e alguns outros ele- mentos de um SGBD: 22PROJETO DE BANCO DE DADOS POR QUE USAR SGBD? Os SGBDs proporcionam às orga- nizações o controle centralizado de seus dados e isto apresenta diversos benefícios: • Separação entre o Banco de Dados e Programas: um dos principais be- nefícios dos SGBDs é oferecer uma solução de gerenciamento de dados que possui uma separação entre o armazenamento dos dados e os pro- gramas que gerenciam e manipulam. • Redução da Redundância e Evi- tar a Inconsistência: ao definir um banco de dados é criada uma estru- tura integrada e esta é mapeada nos metadados, que ficam no dicionário de dados. Assim, evita-se a repeti- ção da mesma informação em mais de um lugar do sistema, evitando a redundância e mesmo, que ela ne- cessariamente precise ocorrer, por condições especificadas da aplica- ção, será claramente identificada e poderá ser evitado o grave problema da inconsistência de dados2 . • Compartilhamento dos Dados: os dados armazenados nos Bancos de Dados gerenciados pelos SGBD Re- lacionais são manipulados através da linguagem SQL. Assim, é simples construir aplicações para acesso aos dados de qualquer SGBD e inclusive integrando informações de mais de um Banco de Dados. • Padronização e Portabilidade: para serem armazenados no SGBD os dados devem ser organizados e se- guem um padrão de modelagem e especificação, esse padrão é compar- tilhado pelos diversos fabricantes de SGBD Relacionais. Dessa forma, as bases de dados podem ser facilmente portadas de um SGBD para outro. Essa portabilidade não é absoluta, exige algum esforço, mas é possível. 2 Lembres que a Inconsistência de Dados refere-se a mesma informação registrada em mais de um lugar no sistema e em cada lugar com valores diferentes, impedindo que se saiba qual o correto, portanto são valores inconsistentes. • Restrições de Segurança: os con- troles de acesso e operações válidas para cada usuário são definidas pelo administrador do banco de dados (DBA) e garantidas pelo SGBD, isso permite que os programadores de aplicações não precisam ter essa preocupação em cada programa de- senvolvido. • Gestão das Transações (Atomici- dade das Transações e Controle da Concorrência): as transações (con- juntos de comandos que realizam um processo consistente em relação a aplicação) devem ser consideradas como unidades atômicas e que não devem usar dados que estão sendo manipulados por outras transações. Os SGBD possuem controle próprio para que cada transação seja executa inteiramente (todos os seus coman- dos), garantindo que caso ocorram falhas no meio do processo, as ações já realizadas sejam desfeitas. Por ou- tro lado, quando transações estão manipulando determinados dados estes se tornam automaticamente 23PROJETO DE BANCO DE DADOS inacessíveis para outras transações, garantindo a correta execução con- corrente das transações, mantendo a integridade dos dados do banco de dados. • Tolerância a Falhas: o SGBD for- nece recursos que possibilitam a re- cuperação em caso de falhas. Que falhas podem ocorrer? Faltar luz durante a execução de uma transa- ção, neste caso quando a luz voltar o sistema deve saber onde parou e desfazer/refazer atividades para ga- rantir a correção do banco de dados. Outra falha, pode ser um problema no dispositivo de armazenamento, assim o SGBD deve ser configura- do, trabalhar com o espalhamento e permitir a continuidade do trabalho a partir desta base de dados. • Abstração de Dados: o SGBD for- nece aos usuários uma visão abstrata dos dados, ou seja, dependendo da necessidade, cada tipo de usuário terá acesso as informações que pre- cisa, sem ser necessário compreender toda a estrutura do SGBD para utilizá-lo. Assim, por exemplo, um progra- mador de uma aplicação que consulta apenas o nome e o endereço de pessoas armazenadas no Banco de Dados, precisa apenas conhecer essas informações e não precisa saber outros detalhes do esquema de dados e nem precisa saber as configurações físicas do SGBD. Esta é uma das grandes vantagens dos SGBD. ARQUITETURA DO SGBD A arquitetura do SGBD é dividida em três níveis que proveem diferentes visões da estrutura do sistema de banco de dados, ela é conhecida como arquitetura ANSI/ SPARC3 . Esta organização em níveis, efetiva a visão abstrata dos dados, reduzindo a complexidade do sistema conforme o nível em que o usuário trabalha. Os níveis da arquitetura do SGBD são: nível interno ou físico; nível conceitual ou lógico; e nível externo ou de visão. Através dessa arquitetura em níveis, cada usuário terá percepções diferentes e independentes do sistema, mesmo acessando os mesmos dados, pois a visão é per- sonalizada. Essas visões possibilitam que determinadas alterações em um nível não afetem os outros níveis. O Administrador do Banco de Dados trabalha e conhece todos os níveis, mas os outros usuários não precisam ter esse amplo conhecimento. A figura, a seguir, apresenta a relação entre os níveis. 3 American National Standards Institute, Standards Planning And Requirements Committee 24PROJETO DE BANCO DE DADOS • NÍVEL INTERNO: O nível in- terno também é denominado nível físico, pois relaciona-se com as es- truturas física de armazenamento dos dados e com o gerenciamento dessas. Nesse nível, são realizadas definições de localização dos arqui- vos físicos, blocos de leitura/escrita, tamanho e quantidade de arquivos de log, tamanho e quantidade de arquivos de recuperação, estruturas e métodos de indexação e ordenação de dados, configurações de segu- rança e protocolos de acesso, além de outras configurações específicas de cada SGBD. Nesse nível traba- lham o Administrador de Redes de Computadores em conjunto com o Administrador de Banco de Dados. • NÍVEL CONCEITUAL: O ní- vel conceitual é também conhecido como nível lógico. Nesse nível é des- crita a estrutura conceitual completa do banco de dados, tal que engloba a definição do esquema do banco de dados (que é construído utilizando- -se dos modelos de dados), a defi- nição das restrições de integridade4, 4 Restrições de Integridade: são regras que devem ser seguidas para garantir a correção das informações. a definição das restrições de acesso, enfim toda a especificação concei- tual das informações que o sistema de banco de dados deve gerenciar. Assim é especificado o dicionário de dados5 do banco de dados. Nesse nível trabalha o Administrador de Banco de Dados sob as orientações dos analistas e projetistas de siste- mas. • NÍVEL EXTERNO: O nível ex- terno é o mais próximo dos usuários finais e também recebe o nome de nível de visão, pois especifica visões parciais dos dados conforme as ne- cessidades de cada usuário ou aplica- ção. Assim, são definidos esquemas externos que são visões do esquema conceitual global, permitindo uma redução da complexidade e simpli- ficando o acesso às informações, 5 Um dicionário de dados é uma coleção de metadados (informa- ções sobre os dados) que contêm definições e representações de elementos de dados. Dentro do contexto de sistemas gerenciadores de bancos de dados, um dicionário de dados é um grupo de tabelas, habilitadas apenas para leitura ou consulta, ou seja, é uma base de dados, propriamente dita, que entre outras coisas, mantém as seguintes informações: Definição precisa sobre elementos de dados; Perfis de usuários, papéis e privilégios; Descrição de objetos; Integridade de restrições; procedimentos e funções; Estrutura geral da base de dados; Informações de verificação; Alocações de espaço. 25PROJETO DE BANCO DE DADOS direcionando-as apenas para quem as precisa. Nesse nível trabalham os programadores de aplicações queas desenvolvem para os usuários finais. Por meio desta arquitetura é possí- vel cumprir duas importantes regras dos SGBD, as quais são garantir a abstração de dados e a independência de dados. • ABSTR AÇÃO DE DADOS: Cada usuário, dependendo de suas funções no sistema de banco de da- dos, precisará conhecer e trabalhar com as informações que são perti- nentes a sua atividade, trabalhando em um nível de abstração. • INDEPENDÊNCIA DE DA- DOS: Refere-se à capacidade do SGBD de permitir que sejam rea- lizadas alterações em determinado nível da abstração, sem que essa tenha impacto nos outros níveis. A independência de dados divide-se em dois tipos: • INDEPENDÊNCIA DE DA- DOS FÍSICA: refere-se a con- dição do SGBD que permite que sejam realizadas alterações no ní- vel interno (físico) sem que estas gerem alterações nos outros níveis (conceitual e externo). Assim, é possível atualizar o sistema que faz o gerenciamento dos arquivos, reorganizar a estrutura de arma- zenamento, redefinir arquivos de recuperação e de log, entre outras configurações físicas e isso não deve provocar alterações, nem no esquema conceitual e nem nas vi- sões. Essa independência é obri- gatória, ou seja, todo o SGBD deve cumprir essa regra. • INDEPENDÊNCIA DE DA- DOS LÓGICA: refere-se a ha- bilidade do SGBD possibilitar que sejam realizadas alterações no nível conceitual (lógico) e essas não devem provocar alterações no nível externo (visões). Assim, é possível fazer complementações no esquema conceitual (adicionar um novo campo em uma tabela, 26PROJETO DE BANCO DE DADOS por exemplo), definição de novas regras de integridade e acesso, e isso não implicará em alterações nos programas de aplicações e vi- sões já desenvolvidas, com exceção daqueles que sejam diretamente afetados pela alteração realizada. Essa independência tem peso de uma obrigatoriedade parcial, ou seja, os SGBD devem cumprir essa regra, mas visto que algumas aplicações/visões serão afetadas pela alteração, considera-se que a regra de independência de dados lógica é parcialmente cumprida. Assim, percebe-se que é importante entender quais são os principais tipos de usuários que utilizam (trabalham com) os Sistemas de Banco de Dados e seus papéis/ responsabilidades neste contexto: • Usuários Finais: são pessoas que utilizam programas de aplicação, especificamente, construídos com alguma finalidade (administrativa, científica, etc.). Esses usuários não precisam ter conhecimentos sobre SGBD para utilizá-los, apenas usam as aplicações que lhes fornecem uma visão abstrata dos dados que contêm apenas as informações que precisam para realização de seu trabalho. • Desenvolvedores de Aplicações: são profissionais da área de infor- mática que desenvolvem aplicações, para isso precisam conhecer parte do esquema conceitual do banco de dados, necessários para o desenvol- vimento das aplicações e precisam interagir com o Administrador do Banco de Dados para permissões. • Analistas e Projetistas de Siste- mas: são profissionais da área de informática que analisam e proje- tam aplicações, definindo o esquema conceitual do banco de dados e suas restrições de integridade e acesso, estes são passados ao Administrador do Banco de Dados para que faça as integrações e configurações no nível conceitual do SGBD. • Administrador de Redes de Com- putadores: profissional da área de informática, responsável pela insta- lação, configuração e gerenciamento das redes de computadores e siste- mas nela instalados. Logo, o SGBD é um desses sistemas e portanto é o Administrador de Rede junto com o Administrador de Banco de Dados, o qual faz as configurações no nível interno (físico) do SGBD, além de monitorar questões de performance e realizar procedimentos de segu- rança. • Administrador do Banco de Dados (DBA – Database Administrator): profissional da área de informáti- ca responsável pelo gerenciamento dos Sistemas de Banco de Dados e engloba as seguintes funções: par- ticipar da instalação e configura- ção do SGBD e Bancos de Dados; participar da definição do esquema conceitual; criar e gerenciar o esque- ma conceitual no Banco de Dados, realizando integração de novas es- truturas quando necessário; criar as restrições de integridade e restrições 27PROJETO DE BANCO DE DADOS de acesso, gerenciando-as; definir e gerenciar as possíveis visões e seus modos de acesso; conceder acesso aos Bancos de Dados; monitorar a performance do SGBD e das aplica- ções que usam os Banco de Dados, de maneira, a perceber problemas e realizar ou solicitar os ajustes neces- sários. Enfim, o DBA é uma peça central em um ambiente que utilize SGBDs. LINGUAGEM PADRÃO DOS SGBD Para trabalhar com os SGBDs disponíveis, atualmente, tem-se diversas interfaces gráficas, mas para o desenvol- vimento de aplicações é ainda necessário conhecer a linguagem que permita criar e administrar o esquema do banco de da- dos. Além disso, criar e administrar todo tipo de estruturas, criar e administrar as restrições de integridade, configurar e ge- renciar o acesso, criar e gerenciar funções e trabalhar com a base de dados, realizando as operações de inclusão, alteração e exclu- são de dados, além do objetivo principal de uma banco de dados, que é recuperar as informações, o que se expressa através de consultas. A linguagem padrão para trabalhar com os Sistemas Gerenciadores de Banco de Dados Relacionais é a SQL (Structured Query Language – Linguagem de Con- sulta Estruturada). A SQL se originou do trabalho de E.F. Codd que desenvolveu na IBM a linguagem SEQUEL (Strutucred English Query Language - Linguagem de Consulta em Inglês Estruturado). Os fornecedores de banco de dados relacio- nais buscaram um método padronizado para gerenciar os dados dos bancos de dados relacionais, assim a linguagem SQL tornou-se popular e foi padronizada pelo ANSI (American National Standards Ins- titute) que lançou os padrões para SQL em 1986, 1989, 1992, 1999, 2003 e 2006. Cada um agregando novos elementos que foram tornando a linguagem mais po- derosa e, atualmente, atende ao padrão objeto-relacional, gerencia dados multimí- dia e hipermídia e incorpora recursos de inteligência artificial para gestão de bases de conhecimento, mineração de dados e outros tipos de análises. Embora padro- nizado pela ANSI e ISO, a SQL possui muitas variações e extensões produzidas pelos fabricantes de SGBDs, mesmo assim mantém diversas estruturas comuns, o que permite que seja migrada de uma plata- forma para outra sem grandes mudanças estruturais. O conjunto de comandos da lingua- gem SQL pode ser agrupado conforme a função que possui e assim se define a estrutura básica dessa linguagem: Linguagem de Definição de Da- dos (DDL – Data Definition Language): Subconjunto de comandos para criação, alteração e remoção de estruturas no Ban- co de Dados, principalmente a estrutura base desse, que são as tabelas. Assim a DDL possui comandos para criar, alterar e remover tabelas (CREATE TABLE, ALTER TABLE E DROP TABLE). Os comandos DDL são diretamente efetiva- dos no Banco de Dados, não podem ser desfeitos, apenas podem ser compensados pela execução de comando inverso. 28PROJETO DE BANCO DE DADOS Linguagem de Manipulação de Dados (DML – Data Manipulation Lan- guage): Subconjunto de comandos para in- serir, remover e modificar informações em um esquema de banco de dados (INSERT, UPDATE E DELETE). Os comandos DML não são diretamente efetivados no Banco de Dados, pois dependem da con- clusão com sucesso da transação em que estão, assim podem ser desfeitos. Linguagem de Consulta de Dados (DQL – Data Query Language) – é a parte da SQL que é mais utilizada e embora seja formada por apenas um comando (SELECT) e um dos mais importantes, permite a extração de dados/informações do Banco de Dados. Linguagem de Controle de Da- dos (DCL – Data Control Language): Subconjunto de comandos para controlar as autorizaçõesde acesso e manipulação das estruturas do SGBD. Isso é realizado por comando que concedem ou revogam as permissões (GRANT E REVOKE). Linguagem de Transação de Da- dos (DTL – Data Transaction Language): Subconjunto de comandos que possibili- tam o controle de transações e engloba os seguintes comandos: BEGIN TRAN- SACTION, que define o início de uma transação; COMMIT, que finaliza uma transação com sucesso e efetiva todas as operações realizadas no Banco de Dados; e ROLLBACK, que interrompe uma tran- sação e desfaz todas as operações realizadas desde o início da transação. MODELAGEM DE DADOS Saiba que a Modelagem de Dados é uma etapa essencial do desenvolvimento de um sistema! Modelar é um processo que utiliza um modelo de dados para construir um esquema que explicita as características de informações, funcionamento e compor- tamento de uma realidade para a cons- trução de um software. Nesse sentido, o esquema de dados é uma abstração da realidade que especifica as propriedades dos dados, informações e restrições que serão utilizados para construção da base de dados do sistema. Por que é importante MODE- LAR? A modelagem é uma etapa que faz parte do processo de análise de um sis- tema, de forma que quando é realizada a interação com os usuários, para compreen- der adequadamente suas necessidades; as informações das quais precisa; as relações entre as informações; as transformações que as informações podem sofrer; as regras de funcionamento das atividades que o usuário realiza; os controles que precisam ser feitos; os resultados esperados; a forma de apresentação das informações; as aná- lises de dados que devem ser realizadas; quais os tipos de usuários que devem ter acesso às informações; as restrições de acesso a essas informações; enfim entender todo o contexto para o qual a aplicação será desenvolvida. A partir dessa compreensão é pos- sível construir o esquema de dados e fa- zer toda a especificação do sistema, que 29PROJETO DE BANCO DE DADOS depois passará para etapas de projeto e desenvolvimento (programação). Quando a análise e a modelagem de dados não são feitas, ou quando ocorrem falhas nesta etapa diversos problemas podem ocorrer: • O sistema desenvolvido pode não atender às necessidades dos usuários; • O sistema desenvolvido pode ter erros em relação aos requisitos; • A base de dados pode não conter todas as informações que os usuários precisam; • A base de dados pode ter relaciona- mentos incorretos entre os dados, ou falta de relações adequadas; • A base de dados pode ter regras de integridade incorretas ou inadequa- das para o contexto da aplicação; • A base de dados pode não ter a f le- xibilidade adequada para a evolução do sistema desenvolvido; • A manutenção do sistema será di- fícil. Para realizar a modelagem de dados é necessário utilizar modelos de dados! MODELOS DE DADOS O que são modelos de dados?? Os modelos de dados são ferramen- tas conceituais que possuem um conjunto de estruturas para especificação de ele- mentos de uma realidade, suas relações e suas restrições que permitem construir esquemas de dados. Ferramentas conceituais são recursos textuais ou gráficos, que através de regras orientam o trabalho do analista para a construção dos esquemas. Assim, para compreender um modelo de dados é ne- cessário compreender as suas ferramentas conceituais e regras. Os modelos de dados podem ser classificados em: • Modelos conceituais: que permi- tem a especificação de alto nível do banco de dados, mais próxima do usuário e independe do tipo de SGBD que será utilizado. Os principais modelos conceituais são: modelo entidade-relacionamento; e modelo de classes (orientado a ob- jetos). • Modelos lógicos: dependem da classe de SGBD que será utilizado, mas não de um SGBD específico. O modelo lógico é construído a partir do modelo conceitual. Os principais modelos lógicos são: modelo rela- cional; modelo orientado a objetos; e modelo objeto-relacional. • Modelos físicos: descrevem as es- truturas e métodos de acesso de um SGBD específico e é construído a partir do modelo lógico. Relaciona- do com a linguagem de programação do SGBD. Para construção da base de dados é necessário seguir as seguinte etapas: 30PROJETO DE BANCO DE DADOS 1. Análise de Requisitos: quando se interage com os usuários e especi- fica os requisitos do sistema. Isto é realizado através de entrevistas com os usuários, observação do seu trabalho e análise de documentos. 2. Projeto Conceitual: com base nos requisitos é construído o esquema conceitual do sistema e se utiliza para isso um modelo conceitual. Este esquema deve ser validado com o usuário, visando eliminar dúvidas e garantindo que atende as expecta- tivas do sistema a ser desenvolvido. 3. Projeto Lógico: realizamos o ma- peamento do esquema de dados conceitual para um esquema lógico, utilizando o modelo lógico da classe de banco de dados escolhido. 4. Projeto Físico: fazemos as espe- cificações da base de dados para um SGBD específico, definindo a organização física dos dados que englobam estruturas, tipos e outros elementos, conforme o SGBD esco- lhido e toma-se por base o esquema lógico construído na fase anterior. A tabela a seguir resume, em forma de esquema, as etapas de construção de um banco de dados: MUNDO REAL Requisitos da aplicação Interação com os usuários Compreensão da aplicação MODELO CONCEITUAL (Modelo Abstrato dos Dados) Independente do SGBD (Especificação mais próxima dos usuários) MODELO LÓGICO (Estrutura dos Dados) Dependente do tipo de SGBD mas não de um SGBD específico Derivado do Esquema Conceitual Modelo Relacional Modelo Orientado a Objetos Modelo Objeto Relacional MODELO FÍSICO (Organização Física dos Dados) Derivado do Esquema Lógico Dependente do SGBD escolhido - Estruturas de armazenamento de dados - Índices de acesso - Restrições de integridade e segurança 31PROJETO DE BANCO DE DADOS Assim, podemos considerar um exemplo de uso bastante comum destas etapas: 1. Análise de Requisitos: etapa de en- trevistas e interação com o usuário, análise dos processos que o usuário realiza e estudo de documentos/re- latórios, visando a compreensão do sistema a ser desenvolvido e gerando a especificação dos requisitos. 2. Projeto Conceitual: utilização do Modelo Entidade-Relacionamento para a construção do esquema de dados conceitual. 3. Projeto Lógico: realiza-se o mape- amento do esquema de dados con- ceitual para um esquema de dados relacional, utilizando o modelo re- lacional, que é a classe de banco de dados escolhido. 4. Projeto Físico: realiza-se o mape- amento do esquema de dados re- lacional para os comandos SQL para criar a base de dados, tabelas, restrições de integridade e acesso no SGBD Oracle (um SGBD es- pecífico). Dessa forma, para o uso regular des- se processo precisamos estudar o Modelo Entidade-Relacionamento e o Modelo Relacional. Ampliando nosso conhecimento! Pesquise sobre alguns dos SGBDs utilizados comercialmente nos dias de hoje. FAZENDO UM AUTOESTUDO! 1. Conceitue e diferencie dado, informação e conhecimento. 2. Sistemas de Gerência de Banco de dados possibilitam a definição, construção e manipulação de bancos de dados. Explique o que esses sistemas realizam? 3. O que é um banco de dados? 4. Quais são os principais softwares que devem fazer parte de um SGBD? 5. Explique os benefícios que se obtém ao utilizar SGBDs? 6. Explique como é a arquitetura dos SGBD co- nhecida como ANSI/SPARC? 7. Explique o que é abstração de dados?Explique o que é independência de dados, independência de dados física e independência de dados lógica? 8. Descreva os principais tipos de usuários que uti- lizam SGBDs? 9. O que é a linguagem SQL? E qual o significado das siglas DDL e DML? 10. Por que é importante fazer a modelagem dos dados? 11. Quais informações são coletas dos usuários durante a etapa de modelagem? 12. O queé um esquema de dados? 13. Quais são as etapas para a construção de uma base de dados? 14. Quais os principais modelos utilizados para fazer o projeto de uma base de dados? 34PROJETO DE BANCO DE DADOS MODELO ENTIDADE- RELACIONAMENTO Você deve estar se perguntando: Como construir um modelo conceitual? O Modelo Entidade-Relacionamento é uma ferramenta conceitual que permite construir uma abstração do mundo real através de um esquema de dados conceitual, denomi- nado diagrama entidade-relacionamento (DER), com as estruturas fundamentais para construção do banco de dados. Esse modelo possibilita que informações semânticas sejam modeladas através de uma técnica diagramática (representação gráfica). Foi construído com o intuito de ser simples e de que os diagramas pudessem ser compreendidos pelos usuários, para que pudessem participar de sua construção e validação. Peter Pin-Shan Chen, em 1976, publicou na ACM Transactions on Database Systems o artigo “The Entity-Re- lationship Model--Toward a Unified View of Data”1 , no qual 1 Chen,P.S. “The Entity-Relationship Model--Toward a Unified View of Data”, ACM Transactions on Database System, Volume 1 Número 1, 1976. (http://bit.csc.lsu.edu/~chen/pdf/erd-5-pages.pdf ) 35PROJETO DE BANCO DE DADOS CONCEITOS CENTRAIS DO MODELO ER Para construção de diagramas entidade-relacionamento (DER) é necessário conhecer as suas ferramentas conceituais que são os conceitos centrais do Modelo ER: • Entidades • Relacionamentos • Atributos • Cardinalidade • Generalização/Especialização ENTIDADES As entidades representam coleções de objetos (concretos ou abstratos) da reali- dade modelada, que são úteis e relevantes para o sistema a ser desenvolvido, possuem propriedades através das quais são descritas e permitem que seus exemplos (ocorrên- cias) sejam diferenciados e identificados. A representação gráfica de entidades é feita através de um retângulo e o nome da entidade é colocado dentro deste. Normalmente se utiliza um substantivo no singular para nomear a entidade. apresenta as bases desse modelo conceitual, independente de um Sistema Gerenciador de Banco de Dados, e descreve as fer- ramentas conceituais do modelo que se constituem de entidades, objetos concretos ou abstratos da realidade considerada, e de relacionamentos que se estabelecem entre elas. Dessa estrutura deriva a denomina- ção do modelo: entidade-relacionamento (Entity-Relationship Model). Atualmen- te, o Modelo ER ainda é a técnica mais difundida e utilizada na etapa de projeto conceitual. Esse modelo é uma orientação siste- mática, utilizada para descrever e definir um processo de negócio com ênfase nas suas informações. O foco da modelagem são os componentes (entidades), que pos- suem ligações explicitadas por relaciona- mentos, que expressam as dependências e exigências entre elas. Assim, através da utilização desse modelo é possível deter- minar os recursos de dados fundamentais para uma organização, catalogando-os em termos de entidades e relacionamentos. 36PROJETO DE BANCO DE DADOS Vejas a seguir alguns exemplos de entidades: CONCRETAS ABSTRATAS PESSOA CARRO LIVRO MATRÍCULA CURSO PROJETO ENTIDADE Uma habilidade importante para modelagem de dados é saber identificar as entidades dentro do contexto de uma aplicação/sistema! Considere o contexto acadêmico, a seguir estão listadas as principais entidades que podem ser identificadas: ALUNO CURSO CURRÍCULO INSTITUIÇÃO DE ENSINO MATRÍCULA TURMA DISCIPLINA PRÉDIO SALA PROFESSOR 37PROJETO DE BANCO DE DADOS ATRIBUTOS Os atributos são propriedades asso- ciadas às entidades (ou aos relacionamen- tos) usados para descreve-los, ou seja, são as informações relevantes no contexto da aplicação e que esta precisa ter. Pode-se, também, definir atributos como caracte- rísticas que são usadas para descrever as ocorrências de uma entidade. Por exemplo, considere a entidade Pessoa que pode ter as seguintes proprie- dades: nome, data de nascimento e email; assim, uma ocorrência da entidade Pessoa será descrita por essas propriedades: Nome = Fulano Apelido, Data de Nascimento = 01/01/1990, email = fulanoapelido@ gmail.com. A representação gráfica dos atri- butos é feita com um segmento de reta, utilizando um pequeno círculo como ter- minal, junto a esse se coloca o nome do atributo. Os atributos podem ser classificados em: atributos comuns, ou simplesmente atributos, e atributos identificadores. Os atributos identificadores são aqueles que permitem diferenciar uma ocorrência da entidade das outras ocorrências, ou seja, são um código único para cada ocorrência, cada valor deste atributo, somente pode es- tar vinculado a uma única ocorrência. Por exemplo, uma pessoa pode ser identificada por seu CPF e não há duas pessoas com o mesmo CPF. Toda a entidade deve ter um atributo identificador. A grande maioria dos atributos são atributos comuns, ou seja, não tem a responsabilidade de identificar as ocorrências e podem ter seus valores repetidos em diferentes ocorrências da mesma entidade. Por exemplo, a data de nascimento, mais de uma pessoa pode ter nascido no mesmo dia e, portanto, terão o mesmo valor neste atributo. Os atributos de uma entidade não são, necessariamente, constituídos por todas as características que objeto possui na realidade, mas sim, devem ser o sub- conjunto dessas que são relevantes para o contexto da aplicação. Por exemplo, ao pensarmos na entidade Pessoa, se o sistema considerado for um sistema acadêmico, as informações relevantes podem ser nome, data de nascimento, CPF, email, telefo- ne, por outro lado, se o contexto for um sistema de uma academia, poderíamos acrescentar peso e altura, mas se o con- texto for um sistema de relacionamentos Atividade: Considere alguns contextos de sistemas e Enumere as principais entidades destes. Sugestões de Contextos: gestão de DVDs, controle de gastos, controle de compras, etc. MATRÍCULA ATRIBUTO INDETIFICADOR ATRIBUTO 38PROJETO DE BANCO DE DADOS poderíamos acrescentar cor dos olhos e cor dos cabelos. A seguir, veja os diagramas ER da entidade Pessoa nestes diferentes contextos de sistemas: Contexto de um Sistema Acadêmico Contexto de um Sistema de uma Academia Contexto de um Sistema de Relacionamentos PESSOA NOME DATA DE NASCIMENTO CPF EMAIL TELEFONE PESSOA NOME TELEFONE CPF EMAIL DATA DE NASCIMENTO PESSOA PESO ALTURA NOME CPF DATA DE NASCIMENTO PESO ALTURA COR DOS OLHOS COR DOS CABELOS EMAIL TELEFONE Assim, os atributos (características) não são inerentes à entidade considerada, mas dependem da aplicação em que a en- tidade está sendo modelada. RELACIONAMENTOS Os relacionamentos representam as associações que ocorrem entre as entida- des da realidade considerada, ou seja, as relações que existem entre os objetos do mundo real. Por exemplo: pessoas fazem Atividade: Considere alguns contextos de sistemas e Defina os atributos das principais entidades. Sugestões de Contextos: gestão de DVDs, controle de gastos, controle de compras, etc. 39PROJETO DE BANCO DE DADOS cursos; cursos são formados por disci- plinas; livros tem autores; pessoas prati- cam esportes; produtos são constituídos de componentes; professores ministram disciplinas. Perceba que as associações são expressas por verbos que ligam as entida- des e determinam o tipo de relação que há entre elas. A representação gráfica dos relacio- namentos é feita com um losango ligado por segmentos de reta às entidades ligadas pelo relacionamento. Normalmente, uti- liza-se um verbo no infinitivo para repre- sentar a função do relacionamento. Vamos ver alguns exemplos de re- lacionamentos entre entidades: RELACIONAR RELACIONARENTIDADE A ENTIDADE B FAZERPESSOA CURSO FORMARDISCIPLINA CURSO Pessoas fazem cursos: Cursos são formados por disciplinas: TERLIVRO AUTOR Livros tem autores: PRATICARPESSOA ESPORTE Pessoas praticam esportes: COMPORPRODUTO COMPONENTEProdutos são compostos por componentes: MINISTRARPROFESSOR DISCIPLINA Professores ministram disciplinas: 40PROJETO DE BANCO DE DADOS Logo, a partir da especificação do sistema, juntamente feita, com os usuários é possível identificar as entidades e as relações que existem entre elas, gerando um diagrama ER e validando com os usuários a correção dessas associações e inclusive verificar se todas foram mapeadas. Os relacionamentos também podem ter atributos, que são informações que derivam da associação entre as entidades e que caracterizam o relacionamento. Considere que precisa ser construído um sistema para registrar as receitas de um chefe de cozinha. As principais entidades desse sistema são: Receita e Ingrediente, além disso quando um ingrediente é associado à receita em que é utilizado, também é necessário informar a quantidade necessária desse ingrediente, assim quantidade é um atributo do relacionamento entre Receita e Ingrediente: Os relacionamentos também podem ter atributos identificadores que permitem diferenciar uma ocorrência do relacionamento das outras ocorrências. Vamos analisar um exemplo para entender essa situação. Considere que em um sistema administrativo deseja-se registrar os administradores das empresas, mantendo o histórico de todos os administradores e sabendo que a mesma pessoa pode admi- nistrar a empresa mais de uma vez em diferentes mandatos. Como resultado desta especificação, foi construído o seguinte diagrama ER: UTILIZARRECEITA INGREDIENTE QUANTIDADE 41PROJETO DE BANCO DE DADOS ADMINISTRARPESSOA EMPRESA DATA INÍCIO MANDATO DATA FIM MANDATO CÓDIGO EMPRESA RAZÃO SOCIAL CÓDIGO PESSOA NOME Nesse diagrama apenas foram especificados os atributos essenciais para a compreensão do exemplo. Para um melhor entendimento, vamos verificar alguns exemplos de ocorrências das entidades e dos relacionamentos. As tabelas a seguir apresentam alguns exemplos (ocorrências) fictícios para as entidades, Pessoa e Empresa. Perceba que os atributos identificadores Código Pessoa e Código Empresa são informações que não podem ter ser valores repetidos em ocorrências diferentes. CÓDIGO PESSOA NOME 1 RUY BARBOSA 2 FERREIRA GOULART 3 MACHADO DE ASSIS CÓDIGO EMPRESA RAZÃO SOCIAL 100 LITERATURA S.A. 200 HISTÓRIA LTDA 300 EMPREENDIMENTOS Agora, vamos demonstrar como ficam as ocorrências do relacionamento Administrar. Para especificar essas ocor- rências precisamos utilizar os atributos identificadores de cada uma das entida- des que participam do relacionamento e, além disso, adicionamos os atributos do relacionamento. Toda ocorrência de relacionamento é identificada pela composição dos atributos identificadores das entidades relaciona- das. Nesse caso, código pessoa e código empresa, não se pode ter nessa situação CÓDIGO PESSOA CÓDIGO EMPRESA DATA INÍCIO MANDATO DATA FIM MANDATO 1 100 30/03/2010 29/03/2012 2 100 30/03/2012 29/03/2014 3 200 01/04/2013 31/03/2015 3 200 01/04/2015 31/03/2017 42PROJETO DE BANCO DE DADOS convencional mais de um relacionamento entre as mesmas entidades. Perceba no exemplo, que a mesma pessoa (código pes- soa = 3) está relacionada duas vezes com a mesma empresa (código empresa = 200), logo em um relacionamento simples isso não seria possível! Porém, ao adicionar no relacionamento o atributo identificador Data Início Mandato, o relacionamento passa a ser identificado pela composição dos três campos (Código Pessoa + Código Empresa + Data Início Mandato) e assim, permite que a mesma pessoa administre a mesma empresa mais de uma vez, des- de que a data de início do mandato seja diferente. CARDINALIDADES As cardinalidades especificam a forma como as ocorrências das entidades se relacionam com as ocorrências das outras entidades. Assim, é possível definir se as ocorrências de uma entidade são obrigadas a se relacionar com no mínimo uma ocorrência da outra entidade que participa do relacionamento, e também definir se há um limite de ocorrências com que pode estar ligada. Temos dois tipos de cardinalidades: Cardinalidade Mínima e Cardinalidade Máxima. Que são definidas no relacionamento e são especificadas juntas (Cardina- lidade Mínima, Cardinalidade Máxima). CARDINALIDADE MÍNIMA Especifica, se as ocorrências de uma entidade são obrigadas a participar do re- lacionamento, ou seja, ter relação com no mínimo uma ocorrência da outra entidade, ou não, nesse caso não precisam participar do relacionamento. Os valores possíveis para a cardinalidade mínima são: • 1 – que indica obrigatoriedade (restrição). • 0 – que indica a não obrigatoriedade. Atividade: Considere alguns contextos de sistemas e Defina os relacionamento entre as principais entidades. Sugestões de Contextos: gestão de DVDs, controle de gastos, controle de compras, etc. RELACIONARENTIDADE A ENTIDADE B (minima, máxima) (minima, máxima) 43PROJETO DE BANCO DE DADOS CARDINALIDADE MÁXIMA Especifica a proporção que as ocor- rências de uma entidade podem se relacio- nar com as ocorrências da outra entidade. Na prática, indica se uma ocorrência pode se relacionar com no máximo uma ocor- rência da outra entidade ou se pode se relacionar com duas ou mais ocorrências. Os valores possíveis para a cardinalidade máxima são: • 1 – que indica a relação com no má- ximo 1 ocorrência (restrição) • N – que indica que pode ter relação com várias ocorrências Na prática, conforme o contexto, pode-se ter qualquer combinação de car- dinalidades mínimas e máximas. As car- dinalidades serão definidas a partir das regras da aplicação. Vamos analisar alguns exemplos! Exemplo 1: O seguinte diagrama ER apresenta a relação entre pessoas que fazem cursos. A cardinalidade foi especifi- cada apenas em uma das extremidades do relacionamento, a fim de facilitar a com- preensão. Foi definida como (1,1), ou seja, cardinalidade mínima = 1, e cardinalidade máxima = 1. Explicando a interpretação desta especificação: cada ocorrência de pessoa é obrigada a se relacionar como no mínimo um curso (cardinalidade míni- ma = 1), isso é uma restrição e deverá ser garantida pelo SGBD. Além disso, cada pessoa pode se relacionar com no máximo um curso (cardinalidade máxima = 1), isso também é uma restrição que deverá ser controlada pelo SGBD. A leitura desse relacionamento é a seguinte: uma pessoa é obrigada a fazer exatamente um curso. Exemplo 2: A cardinalidade foi de- finida como (0,1), ou seja, cardinalidade mínima = 0, e cardinalidade máxima = 1. Explicando a interpretação desta espe- cificação: cada ocorrência de pessoa não é obrigada a se relacionar com um curso (cardinalidade mínima = 0), ou seja, po- derão existir pessoas que não tem relação com cursos. Além disso, cada pessoa pode se relacionar com no máximo um curso (cardinalidade máxima = 1), isso é uma restrição que deverá ser controlada pelo SGBD. A leitura desse relacionamento é a seguinte: uma pessoa não é obrigada a fazer um curso e pode fazer no máximo um curso. Exemplo 3: A cardinalidade foi de- finida como (1,n), ou seja, cardinalidade mínima = 1, e cardinalidade máxima = n. Explicando a interpretação desta es- pecificação: cada ocorrência de pessoa é obrigada a se relacionar como no mínimo um curso (cardinalidade mínima = 1), isso é uma restrição e deverá ser garantida pelo SGBD. Além disso, cada pessoa pode se relacionar com diversos cursos (cardina- lidade máxima = n). A leitura deste re- lacionamento é a seguinte: uma pessoa é FAZERPESSOA CURSO (1, 1) FAZERPESSOA CURSO (0, 1) 44PROJETO DE BANCO DE DADOS obrigada a fazer no mínimo um curso e pode fazer vários cursos. Exemplo 4: A cardinalidade foi de- finida como (0,n), ou seja, cardinalidade mínima = 0, e cardinalidade máxima = n. Explicando a interpretação desta espe- cificação: cada ocorrência de pessoa não é obrigada a se relacionar com um curso (cardinalidade mínima = 0), ou seja, po- derão existir pessoas que não tem relação com cursos. Além disso, cada pessoa
Compartilhar