Possui material de apoio
Sistemas de Banco de Dados P R O J E T O , I M P L E M E N TA Ç Ã O E A D M I N I S T R A Ç Ã O
tradução da 8a edição norte-americana
Peter Rob e Carlos Coronel
Peter Rob • Carlos Coronel
SISTEMAS DE BANCO DE DADOS Projeto, implementação e gerenciamento
SUMÁRIO
PARTE I
CONCEITOS DE BANCOS DE DADOS
Descrição de aplicação: a revolução relacional
3
Capítulo 1
4
Sistemas de banco de dados
Dados versus Informações Introdução aos bancos de dados e ao SGBD Por que o projeto do banco de dados é importante Raízes históricas: arquivos e sistemas de arquivos Problemas de gerenciamento de dados do sistema de arquivos Sistemas de banco de dados Resumo Questões de revisão Problemas
4 6 11 11 15 20 28 28 29
Capítulo 2
31
Modelos de dados
Modelagem e modelos de dados Importância dos modelos de dados Blocos básicos de construção de modelos de dados Regras de negócio Evolução dos modelos de dados Graus de abstração de dados Resumo Questões de revisão Problemas PARTE II
31 32 33 34 36 51 57 57 58
CONCEITOS DE PROJETOS
Descrição de aplicação: A modelagem de bancos de dados ajuda as comunidades
65
Capítulo 3
66
Modelo de banco de dados relacional
Uma perspectiva lógica dos dados Chaves Regras de integridade Operadores do conjunto relacional Dicionário de dados e catálogo de sistemas Relacionamentos dentro do banco de dados relacional Nova abordagem à redundância de dados Índices Regras de Codd para bancos de dados relacionais Resumo
67 70 76 78 84 86 94 97 98 100 VII
SISTEMAS DE BANCO DE DADOS
Questões de revisão Problemas
100 102
Capítulo 4
112
Modelagem entidade-relacionamento (ER)
Modelo entidade-relacionamento (ER) Desenvolvimento de um diagrama ER Desafios de projetos de banco de dados: conflito de objetivos Resumo Questões de revisão Problemas
112 136 145 148 149 151
Capítulo 5
162
Normalização das tabelas de banco de dados
Tabelas de banco de dados e normalização Necessidade de normalização Processo de normalização Aprimoramento do projeto Considerações sobre chaves surrogates Formas normais de nível superior Normalização e projeto do banco de dados Desnormalização Resumo Questões de revisão Problemas
162 163 166 175 179 181 186 190 194 196 197
Capítulo 6
207
Modelagem de dados avançada
O Modelo entidade-relacionamento estendido Agrupamento de entidades Integridade de entidades: seleção de chaves primárias Casos de projetos: banco de dados flexível Lista de verificação de modelagem de dados Resumo Questões de revisão Problemas
VIII
207 214 215 220 226 228 228 229
SUMÁRIO
PARTE III
PROJETO E IMPLEMENTAÇÃO AVANÇADOS
Descrição de aplicação: utilização de consultas para marcar pontos
239
Capítulo 7
240
Introdução à linguagem SQL
Introdução à SQL Comandos de definição de dados Comandos de manipulação de dados Consultas de seleção Comandos avançados de definição de dados Consultas de seleção avançadas Tabelas virtuais: criando uma visualização Junção de tabelas de banco de dados Resumo Problemas
240 243 258 265 276 284 294 296 302 303
Capítulo 8
314
SQL Avançada
Operadores do conjunto relacional Operadores de junção de SQL Subconsultas e consultas correlacionadas Funções da SQL Sequências Oracle Visualizações atualizáveis SQL procedural SQL embutida Resumo Questões de revisão Problemas
314 321 331 344 352 356 359 383 389 390 391
Capítulo 9
396
Projeto de banco de dados
Sistema de informação Ciclo de vida do desenvolvimento de sistemas (CVDS) Ciclo de vida do banco de dados (CVBD) Estratégias de projetos de banco de dados Projeto centralizado vs. descentralizado Resumo Questões de revisão Problemas
396 398 402 429 430 433 433 434
IX
SISTEMAS DE BANCO DE DADOS
PARTE IV
CONCEITOS AVANÇADOS DE BANCO DE DADOS
Descrição de aplicação: crise do banco de dados da JetBlue Capítulo 10
Gerenciamento de transações e controle de concorrência
O que é uma transação? Controle de concorrência Controle de concorrência com métodos de bloqueio Controle de concorrência com métodos de time stamping Controle de concorrência com métodos otimistas Gerenciamento de recuperação de banco de dados Resumo Questões de revisão Problemas Capítulo 11
Sintonização (tuning) de desempenho de banco de dados e otimização de consultas
Conceitos de sintonização de desempenho de banco de dados Processamento de consultas Índices e otimização de consultas Escolhas de otimizadores Sintonização de desempenho de SQL Formulação de consultas Sintonização de desempenho de SGBD Resumo Questões de revisão Problemas Capítulo 12
Sistemas de gerenciamento de banco de dados distribuídos
A evolução dos sistemas de gerenciamento de bancos de dados distribuídos Vantagens e desvantagens do SGBDD Processamento distribuído e bancos de dados distribuídos Características dos sistemas de gerenciamento de bancos de dados distribuídos Componentes dos SGBDD Níveis de dados e distribuição de processos Recursos de transparência de banco de dados distribuídos Transparência de distribuição Transparência de transação Transparência de desempenho e otimização de consultas X
437 438 438 446 451 459 460 461 466 467 467 470 470 476 480 482 485 489 490 493 494 494 499 499 502 503 505 506 508 511 512 515 520
SUMÁRIO
Projeto de banco de dados distribuídos Cliente/servidor versus SGBDD Os doze mandamentos de C. J Date para banco de dados distribuídos Resumo Questões de revisão Problemas
522 529 530 531 532 532
Capítulo 13
535
Business intelligence e data warehouses
Necessidade da análise de dados Business intelligence Arquitetura de business intelligence Dados de suporte a decisões Data warehouse Processamento analítico on-line Esquema estrela Implementação de um data warehouse Mineração de Dados (Data Mining) Extensões de SQL para OLAP Resumo Questões de revisão PARTE V
535 536 538 542 548 552 567 577 580 583 591 592
BANCO DE DADOS E INTERNET
Descrição de aplicação: A Casio aprimora a experiência do cliente na web Capítulo 14
Conectividade de banco de dados e tecnologias da web
Conectividade de bancos de dados Banco de dados da internet Linguagem XML (Extensible Markup Language) Resumo Questões de revisão
595 596 596 608 615 626 627
XI
SISTEMAS DE BANCO DE DADOS
PARTE VI
ADMINISTRAÇÃO DE BANCO DE DADOS
Descrição de aplicação: Oreck revisa plano de recuperação desastroso após o furacão Katrina
629
Capítulo 15
630
Administração e segurança de banco de dados
Dados como um bem corporativo A necessidade e a função do banco de dados em uma organização Introdução de um banco de dados: considerações especiais Evolução da função de administração de bancos de dados Componente humano do ambiente do banco de dados Segurança Ferramentas de administração de banco de dados Desenvolvimento de estratégia de administração de dados DBA em ação: utilização de Oracle para a administração de banco de dados Resumo Questões de revisão
630 631 633 634 637 652 657 662 664 682 683
Glossário
685
XII
PREFÁCIO
Por diversos motivos, poucos livros sobrevivem até sua oitava edição. Autores e editoras que se acomodam com o sucesso de seu trabalho inicial geralmente pagam o preço de ver o mercado desmontar suas criações. Esta obra sobre sistemas de banco de dados foi bem-sucedida por sete edições porque nós – autores e editora – demos atenção ao impacto da tecnologia às questões e sugestões dos leitores. Acreditamos que esta oitava edição reflete com êxito a mesma atenção a esses estímulos. Em vários aspectos, reescrever um livro é mais difícil do que escrevê-lo pela primeira vez. Se o título for bem-sucedido, como este, uma preocupação importante é que as atualizações, inserções e exclusões afetem adversamente o estilo de escrita e a continuidade do conteúdo. Vem à mente o princípio de orientação da profissão médica: em primeiro lugar, não cause danos. Naturalmente, nossa própria experiência é um bom ponto de partida, mas também sabemos que os autores podem desenvolver uma atitude de orgulho que os impedem de detectar fraquezas ou oportunidades de aprimoramento. Felizmente, os esforços combinados de revisores e editores extraordinários, além de um valioso feedback das edições anteriores, proveniente de professores e alunos, ajudaram a fornecer a orientação e avaliação adequada para o reescrevermos. Acreditamos ter incorporado novos materiais e mantido o fluxo, a integridade e o estilo de escrita que tornaram bem-sucedidas as sete edições anteriores. ALTERAÇÕES NA 8 a EDIÇÃO Nesta 8a edição adicionamos alguns novos recursos e reorganizamos parte do conteúdo para fornecer um fluxo melhor do material. Além de aprimorar a cobertura dos projetos de banco de dados, que já eram fortes, fizemos outras melhorias na abordagem dos assuntos. A seguir estão alguns destaques: • Descrições de aplicações novas e atualizadas, que mostram o impacto das tecnologias de bancos de dados no mundo real; • Exemplos adicionais de UML (Unified Modeling Language); • Ampliação da cobertura das funções de Servidor SQL; • Cobertura adicional dos tipos de índices utilizados por SGBD; • Nova cobertura sobre business intelligence; • Adição de cobertura de JDBC (Conectividade de bancos de dados em Java); • Cobertura adicional de segurança de dados, incluindo vulnerabilidades e medidas de segurança. Esta 8a edição continua a fornecer um fundamento sólido e prático para projeto, implementação e gerenciamento de sistemas de bancos de dados. Esses fundamentos são construídos a partir da noção de que, embora os bancos de dados sejam muito práticos, o êxito de sua criação depende da compreensão de conceitos importantes que os definem. Não é fácil chegar à combinação adequada de teoria e prática, mas ficamos contentes em saber que o feedback mencionado anteriormente sugere que fomos amplamente bem-sucedidos em nossa busca por manter o equilíbrio correto. ABORDAGEM: ÊNFASE CONTÍNUA NO PROJETO Como sugere seu título, Sistemas de banco de dados: projeto, implementação e gerenciamento cobre três amplos aspectos dos sistemas de bancos de dados. No entanto, por vários motivos importantes, damos atenção especial ao projeto. XIII
SISTEMAS DE BANCO DE DADOS
• A disponibilidade de excelentes softwares de banco de dados permite que mesmo as pessoas sem experiência na área criem bancos de dados e aplicações. Infelizmente, a abordagem “criação sem projeto” costuma pavimentar a estrada para vários desastres de bancos de dados. Em nossa experiência, muitas falhas de sistemas, se não a maioria, são atribuíveis a projetos ruins e não podem ser resolvidas nem com a ajuda dos melhores gerentes e programadores. Também é provável que os melhores softwares de SGBD não sejam capazes de superar os problemas criados ou amplificados por falhas de projeto. Utilizando uma analogia, até os melhores pedreiros e carpinteiros não conseguem criar uma boa edificação a partir de uma planta ruim. • A maioria dos problemas que afetam o gerenciamento parece ser ativada por bancos de dados mal projetados. Provavelmente não vale a pena utilizar recursos escassos para desenvolver habilidades de gerenciamento excelentes e amplas e utilizá-las apenas em crises induzidas por projetos ruins. • O projeto proporciona um excelente meio de comunicação. É mais provável que os clientes consigam o que precisam quando o projeto do sistema de banco de dados for abordado com muito cuidado e atenção. Na verdade, os clientes podem descobrir como suas organizações realmente funcionam quando um bom projeto de banco de dados é completo. A familiaridade com técnicas de projeto de bancos de dados promove a compreensão a respeito das tecnologias atuais. Por exemplo, como muitos dados em warehouses provêm de bancos de dados operacionais, os conceitos, estruturas e procedimentos do primeiro farão mais sentido mediante a compreensão da estrutura e implementação do segundo. Como damos ênfase aos aspectos práticos do projeto de bancos de dados, seus conceitos e procedimentos são cobertos em detalhes, assegurando que os vários problemas do fim dos capítulos sejam desafiadores o suficiente para que os alunos possam desenvolver habilidades reais e úteis de projeto. Também asseguramos que os alunos compreendam os conflitos potenciais e reais entre a elegância do projeto, as exigências de informações e a velocidade de processamento de transações. Por exemplo, não faz muito sentido projetar bancos de dados que atendam a padrões de elegância do projeto, mas que falhem em suprir as exigências de informação dos usuários finais. Portanto, exploramos a utilização de dilemas cuidadosamente definidos para assegurar que os bancos sejam capazes de atender às necessidades dos usuários finais, ao mesmo tempo em que observamos altos padrões de projeto. COBERTURA DE ASSUNTOS
Visão de sistemas
O título do livro começa com Sistemas de banco de dados. Portanto, examinamos os conceitos de projetos e de bancos de dados cobertos nos Capítulos 1-6 como parte de um todo maior, situando-os dentro do modelo de análise de sistemas do Capítulo 9. Acreditamos que os projetistas de bancos de dados que não compreendem que estes fazem parte de um sistema maior provavelmente negligenciarão exigências importantes do projeto. Na verdade, o Capítulo 9, “Projeto de banco de dados”, fornece um mapa para o projeto de banco de dados avançado. Em um grande modelo de sistemas, podemos também explorar questões como gerenciamento de transações e controle de concorrência (Capítulo 10), sistemas de gerenciamento de banco de dados XIV
PARTE
1
CONCEITOS DE BANCOS DE DADOS
SISTEMAS DE BANCOS DE DADOS
1
MODELOS DE DADOS
2
PREFÁCIO
distribuídos (Capítulo 12), business intelligence e dados warehouses (Capítulo 13), conectividade de banco de dados e tecnologias da web (Capítulo 14) e administração e segurança de bancos de dados (Capítulo 15).
Projeto de bancos de dados
O primeiro termo do subtítulo do livro é Projeto e nossa abordagem do projeto de bancos de dados é abrangente. Por exemplo, os Capítulos 1 e 2 examinam o desenvolvimento de bancos e modelos de dados e ilustram a necessidade do projeto. O Capítulo 3 aponta os detalhes do modelo de banco de dados relacional. O Capítulo 4 proporciona uma abordagem extensiva, profunda e prática de projetos, e o Capítulo 5 dedica-se às questões críticas de normalização que afetam a eficiência e a efetividade dos bancos de dados. O Capítulo 6 explora assuntos de projetos avançados. Os Capítulos 7 e 8 abordam questões de implementação de banco de dados e o modo como os dados são acessados por meio de SQL (Structured Query Language). O Capítulo 9 analisa o projeto de banco de dados dentro dos modelos de sistemas e mapeia as atividades necessárias para projetar e implementar com sucesso um banco de dados no mundo real. Como o projeto de banco de dados é afetado pelas transações reais, pelo modo como os dados são distribuídos e pelas crescen9 tes exigências de informações, examinamos os principais recursos que devem ser suportados por bancos e modelos da geração atual. Por exemplo, o Capítulo 10, “Gerenciamento de transações e controle de concorrência”, foca nas características de transações dos bancos de dados e o modo como afetam sua integridade e consistência. O Capítulo 11, “Sintonização (Tuning) de desempenho de banco de dados e otimização de consultas”, ilustra a necessidade de eficiência de pesquisa no mundo real, que constantemente gera e utiliza bancos de dados com terabytes de dados e tabelas com milhões de registros. O Capítulo 12, “Sistemas de gerenciamento de banco de dados distribuídos”, enfatiza a distribuição, replicação e alocação de dados. No Capítulo 13, “Businesses intelligence e data warehouses”, exploramos as características dos bancos de dados utilizados no suporte a decisões e no processamento analítico on-line. O Capítulo 14, “Conectividade de banco de dados e tecnologias da web”, cobre as questões básicas de conectividade encontradas no mundo de dados com base na web e mostra o desenvolvimento dos front ends desse tipo de banco. projeto de bancos de dados
NOVE
Neste capítulo, você aprenderá:
Que projetos bem-sucedidos de bancos de dados devem refletir o sistema de informação do qual o banco faz parte Que sistemas de informação bem-sucedidos são desenvolvidos dentro de um modelo conhecido como ciclo de vida do desenvolvimento de sistemas (CVDS) A que sistemas de informação, a maioria dos bancos de dados bem-sucedidos está frequentemente sujeita a avaliações e revisões dentro de um modelo conhecido como ciclo de vida de bancos de dados (CVBD) Como conduzir avaliações e revisões em modelos de CVDS e CVBD Sobre estratégias de projeto de bancos de dados: projeto top-down vs. bottom-up e projeto centralizado vs. descentralizado
SISTEMA DE INFORMAÇÃO
Basicamente, um banco de dados é um depósito de fatos cuidadosamente projetado e estruturado. Ele faz parte de um todo maior conhecido como sistema de informação, que fornece para a coleta de dados o armazenamento e recuperação dos mesmos. Esses sistemas também facilitam a transformação de dados em informações e permitem o seu gerenciamento e dos dados. Assim, um sistema de informação completo é composto de pessoas, hardware, software, bancos de dados, aplicativos e procedimentos. A análise de sistemas é um processo que estabelece a necessidade e a extensão de um sistema de informações. O processo de criação de sistemas de informação é conhecido como desenvolvimento de sistemas. Uma característica essencial dos sistemas atuais é o valor estratégico das informações na presente era de negócios globais. Portanto, devem sempre estar alinhados às metas estratégicas de negócios. A perspectiva de sistemas isolados e independentes não é mais válida. Os novos sistemas de informação sempre devem estar integrados à arquitetura de sistemas de toda a empresa.
N OTA
Este capítulo não tem por objetivo cobrir todos os aspectos de análise e desenvolvimento de sistemas. Eles normalmente são tratados em um curso ou livro distinto. No entanto, deve ajudar a desenvolver uma melhor compreensão das questões associadas a projeto, implementação e gerenciamento de bancos de dados afetadas pelo sistema de informação do qual o banco de dados é um componente fundamental.
No modelo de desenvolvimento de sistemas, as aplicações transformam os dados em informações, que constituem a base da tomada de decisões.
Implementação
A segunda parte do subtítulo é Implementação. Utilizamos SQL (Structured Query Language) nos Capítulos 7 e 8 para mostrar como os bancos de dados são implementados e gerenciados. As questões especiais encontradas em um ambiente de banco de dados da internet são tratadas no Capítulo 14, “Conectividade de banco de dados e tecnologias da web”.
PARTE
3
PROJETO E IMPLEMENTAÇÃO AVANÇADOS
INTRODUÇÃO À LINGUAGEM SQL (STRUCTURED QUERY LANGUAGE)
7
SQL AVANÇADA
8
PROJETO DE BANCOS DE DADOS
9
XV
PARTE
1
CONCEITOS DE BANCO DE DADOS
SISTEMAS DE BANCO DE DADOS
1
MODELOS DE DADOS
2
A revolução relacional Hoje em dia, podemos contar com os benefícios trazidos pelos bancos de dados relacionais a capacidade de armazenar, acessar e alterar dados de forma rápida e fácil em computadores de baixo custo. Mas, até o fim da década de 1970, os bancos de dados armazenavam grandes quantidades de dados em uma estrutura hierárquica que era inflexível e difícil de navegar. Os programadores precisavam saber o que os clientes queriam fazer com os dados antes que o banco fosse projetado. Incrementar ou alterar o modo como os dados eram analisados constituía um processo caro e demorado. Como consequência, as pesquisas eram realizadas por meio de extensas fichas catalográficas para encontrar um livro na biblioteca, utilizavam-se mapas rodoviários que não mostravam as mudanças ocorridas no último ano e era necessário comprar jornais para conseguir informações sobre preços de ações. Em 1970, Edgar “Ted” Codd, matemático funcionário da IBM, escreveu um artigo que viria a mudar tudo isso. Na época, ninguém percebeu que as teorias obscuras de Codd desencadeariam uma revolução tecnológica comparável ao desenvolvimento dos computadores pessoais e da internet. Don Chamberlin, coinventor da SQL, a mais popular linguagem de computador utilizada pelos sistemas de bancos de dados de hoje, explica: “Havia aquele cara, Ted Codd, que usava um tipo de notação matemática estranha, mas ninguém a levava muito a sério”. Então, Ted Codd organizou um simpósio e Chamberlin ouviu como ele conseguiu resumir cinco páginas de programas complicados em uma única linha. “E eu disse: ‘Uau!’”, relembra Chamberlin. O simpósio convenceu a IBM a fundar o Sistema R, um projeto de pesquisa que construiu um protótipo de um banco de dados relacional e que levaria à criação da SQL e do DB2. A IBM, no entanto, manteve o Sistema R em segundo plano por vários e decisivos anos. O interesse da empresa voltava-se para o IMS, um sistema de banco de dados confiável, de alta tecnologia, que havia surgido em 1968. Sem perceber o potencial de mercado daquela pesquisa, a IBM permitiu que sua equipe publicasse seus trabalhos. Entre os leitores estava Larry Ellison, que havia acabado de fundar uma pequena empresa. Recrutando programadores do Sistema R e da Universidade da Califórnia, Ellison conseguiu colocar no mercado o primeiro banco de dados relacional com base em SQL em 1979, bem antes da IBM. Em 1983, a empresa lançou uma versão portátil do banco de dados, teve um faturamento bruto anual de US$ 5.000.000 e mudou seu nome para Oracle. Impelida pela concorrência, a IBM finalmente lançou o SQL/DS, seu primeiro banco de dados relacional, em 1980. Em 2007, as vendas globais de sistemas de gerenciamento de banco de dados chegaram ao pico de US$ 15 bilhões com a Oracle detendo uma participação de praticamente metade do mercado, seguida pela IBM, com menos de um quarto. A participação do SQL Server da Microsoft cresceu mais rápido do que a de seus competidores, chegando a 14%.
Descrição de Aplicação
1
Sistemas de banco de dados
UM
Neste capítulo, você aprenderá: A diferença entre dados e informações O que é um banco de dados, os diferentes tipos e por que constituem recursos valiosos para a tomada de decisões A importância do projeto de bancos de dados Como os bancos de dados modernos evoluíram a partir de sistemas de arquivos Falhas de gerenciamento de dados em sistemas de arquivos Quais são os principais componentes dos sistemas de bancos de dados e como diferem dos sistemas de arquivos As principais funções de um sistema de gerenciamento de banco de dados (SGBD)
DADOS VERSUS INFORMAÇÕES Para compreender o que deve orientar o projeto de bancos de dados, você deve entender a diferença entre dados e informações. Os dados são fatos brutos. A palavra bruto indica que os fatos ainda não foram processados para revelar seu significado. Por exemplo, suponha que queira saber o que os usuários de um laboratório de informática pensam desse serviço. Normalmente, você começaria entrevistando os usuários para avaliar o desempenho do laboratório. A Figura 1.1a mostra o formulário de entrevista por web que permite que os usuários respondam a suas questões. Quando o formulário estiver preenchido, os dados brutos são salvos em um depósito de dados, como apresentado na Figura 1.1b. Embora você já tenha os fatos em mãos, eles não têm nenhuma utilidade particular nesse formato – ler páginas e mais páginas de zeros e uns provavelmente não trará muitas ideias. Portanto, é preciso transformar os dados brutos em um resumo de dados, assim como na Figura 1.1c. Agora, é possível obter respostas rápidas a questões como: “Qual é a composição da base de clientes de nosso laboratório?”. Nesse caso, de forma rápida, é possível determinar que a maioria de nossos clientes são estudantes do penúltimo (24,59%) e do último (53,01%) ano da graduação. A rapidez com que os gráficos podem melhorar nossa capacidade de extrair os significados dos dados pode ser constatada no gráfico de barras dos resumos dos dados na Figura 1.1d. As informações são o resultado do processamento de dados brutos para revelar seu significado. Esse processamento pode ser simples, como a organização dos dados para revelar padrões, ou complexos, como a realização de previsões ou a extração de inferências utilizando modelagem estatística. Para revelar seu significado, as informações exigem um contexto. Por exemplo, uma leitura de temperatura média de 105o não tem muito significado, a menos que saibamos seu contexto: está em graus Fahrenheit ou Celsius? Trata-se da temperatura de uma máquina, de um corpo ou atmosférica? As informações podem ser utilizadas como o fundamento para a tomada de decisões. Por exemplo, o resumo de dados de cada questão do formulário de entrevista pode apontar os pontos fortes e fracos do laboratório, ajudando-o a tomar decisões confiáveis para melhor atender às necessidades de seus clientes.
SISTEMAS DE BANCO DE DADOS
),*85$
7UDQVIRUPDomR GH GDGRV EUXWRV HP LQIRUPDo}HV
D 7HOD GH SHVTXLVD LQLFLDO
F ,QIRUPDo}HV HP IRUPDWR UHVXPLGR
E 'DGRV EUXWR
G ,QIRUPDo}HV HP IRUPDWR GH JUiILFRV
Tenha em mente que os dados brutos devem ser formatados adequadamente para o armazenamento, o processamento e a apresentação. Por exemplo, na Figura 1.1c, a classificação do aluno é formatada com o intuito de mostrar os resultados com base nas classificações de calouro (Freshman), segundo anista (Sophomore), terceiro anista (Júnior), quarto anista (Sênior) e graduado (Graduate Student). Pode ser necessário converter as respostas sim/não dos entrevistados para um formato S/N de armazenamento. Uma formatação mais complexa será necessária ao trabalharmos com tipos de dados complexos, tais como: sons, vídeos ou imagens. Na atual “era da informação”, a produção de informações precisas, relevantes e rápidas é a chave para uma boa tomada de decisão. Por sua vez, uma boa tomada de decisão é a chave para a sobrevivência comercial no mercado global. Dizem que estamos entrando na “era do conhecimento”.1 Os dados são o Peter Drucker cunhou a expressão “trabalhador do conhecimento” em 1959, em seu livro Landmarks of Tomorrow. Em 1994, Esther Dyson, George Gilder, Dr. George Keyworth e Dr. Alvin Toffler introduziram o conceito de “era do conhecimento”.
1
5
6
SISTEMAS DE BANCO DE DADOS
fundamento das informações, que é a base do conhecimento, ou seja, do corpo de informações e fatos sobre um assunto específico. O conhecimento implica familiaridade, consciência e compreensão das informações conforme se apliquem a um ambiente. Uma característica fundamental do conhecimento é que o “novo” conhecimento pode ser obtido a partir do “antigo”. Vamos resumir alguns pontos fundamentais: • • • • •
Os dados constituem os blocos de construção das informações. As informações são produzidas pelo processamento de dados. Elas são utilizadas para revelar o significado dos dados. Informações precisas, relevantes e rápidas são a chave para a boa tomada de decisões. A boa tomada de decisão é a chave para a sobrevivência de uma organização no ambiente global.
Informações rápidas e úteis exigem dados precisos. Esses dados devem ser gerados de forma adequada e armazenados em um formato de fácil acesso e processo. E, como qualquer recurso básico, o ambiente de dados deve ser gerenciado com cuidado. O gerenciamento de dados é uma disciplina que foca na geração, no armazenamento e na recuperação adequada dos dados. Diante do papel crucial executado pelos dados, você não deve estar surpreso que o gerenciamento de dados seja uma atividade central para qualquer negócio, agência governamental, organizações de serviços ou filantrópicas. INTRODUÇÃO AOS BANCOS DE DADOS E AO SGBD Em geral, o gerenciamento eficiente de dados exige a utilização de um banco de dados computacional. Um banco de dados (ou base de dados2) é uma estrutura computacional compartilhada e integrada que armazena um conjunto de: • Dados do usuário final, ou seja, fatos brutos de interesse para esse usuário. • Metadados, ou dados sobre dados, por meio dos quais os dados do usuário final são integrados e gerenciados. Os metadados fornecem uma descrição das características dos dados e do conjunto de relacionamentos que ligam os dados encontrados no banco de dados. Por exemplo, o componente de metadados armazena informações como o nome da cada elemento de dados, o tipo de valor (numérico, datas ou texto) armazenado, a possibilidade ou não de deixar esse elemento vazio, e assim por diante. Portanto, os metadados fornecem informações que complementam e expandem o valor e a utilização dos dados. Em resumo, os metadados trazem uma representação mais completa dos dados no banco. Dadas as características dos metadados, é possível ouvir a definição de um banco de dados como “um conjunto de dados autodescritivos”. O sistema de gerenciamento de bancos de dados (SGBD) é um conjunto de programas que gerenciam a estrutura do banco de dados e controlam o acesso aos dados armazenados. Até certo ponto, o banco de dados se assemelha a um arquivo eletrônico com conteúdo muito bem organizado com a ajuda de um software poderoso, conhecido como sistema de gerenciamento de banco de dados.
Apesar de em inglês o termo “database” poder ser traduzido tanto para banco de dados como base de dados, o termo base de dados usualmente é utilizado para se referir aos dados armazenados no sistema de banco de dados enquanto o banco de dados, muitas vezes, se refere ao sistema de banco de dados. (N.R.T.) 2
SISTEMAS DE BANCO DE DADOS
F UNÇÃO E VANTAGENS DO SGBD O SGBD serve como intermediário entre o usuário e o banco de dados. Sua estrutura é armazenada como um conjunto de arquivos e o único modo de acessar os dados nesses arquivos é por meio do SGBD. A Figura 1.2 enfatiza o fato de o SGBD apresentar ao usuário final (ou aplicativo) uma visualização única e integrada dos dados no banco. O SGBD recebe todas as solicitações de aplicações e as traduz nas operações complexas necessárias para atendê-las. O SGBD oculta, dos aplicativos e usuários, boa parte da complexidade interna do banco de dados. O aplicativo pode ser escrito por um programador utilizando linguagens como Visual Basic. NET, Java ou C++, ou criado por meio de um utilitário do SGBD. ),*85$
2 6*%' JHUHQFLD D LQWHUDomR HQWUH R XVXiULR ILQDO H R EDQFR GH GDGRV
8VXiULRV ILQDLV (VWUXWXUD GR EDQFR GH GDGRV
'DGRV
0HWDGDGRV
6ROLFLWDomR GD DSOLFDomR ÔQLFD
KWWS
6*%' 6LVWHPD GH *HUHQFLDPHQWR 9LVXDOL]DomR GRV GDGRV GH %DQFR GH 'DGRV
8VXiULRV ILQDLV
,QWHJUDGD 6ROLFLWDomR GD DSOLFDomR
'DGRV
&OLHQWHV )DWXUDV
'DGRV GR XVXiULR ILQDO
3URGXWRV
A presença de um SGBD entre as aplicações do usuário final e o banco de dados oferece algumas vantagens importantes. Em primeiro lugar, o SGBD permite que os dados no banco sejam compartilhados por diversas aplicações e usuários. Em segundo lugar, integra visualizações muito diferentes dos usuários sobre os dados em um único repositório de dados que engloba tudo. Como os dados constituem um material bruto fundamental a partir do qual as informações são obtidas, é necessário um bom método para gerenciá-los. Você descobrirá neste livro que o SGBD ajuda a tornar o gerenciamento de dados mais eficiente e eficaz. Por exemplo, fornece vantagens como: • Aprimoramento do compartilhamento de dados. O SGBD ajuda a criar um ambiente em que os usuários finais tenham melhor acesso a dados em maior quantidade e mais bem gerenciados. Esse acesso possibilita que os usuários finais respondam rapidamente a mudanças em seu meio. • Aprimoramento da segurança de dados. Quanto mais usuários acessam os dados, maiores são os riscos de falhas de segurança. As empresas investem consideráveis quantidades de tempo, esforços e dinheiro para garantir que seus dados sejam utilizados adequadamente. O SGBD fornece um modelo para melhor aplicar as políticas de privacidade e segurança de dados. • Melhoria na integração dos dados. O acesso mais amplo a dados bem gerenciados promove uma perspectiva integrada das operações da organização e uma visualização mais clara do panorama geral. Facilita muito a visualização de como as ações de um segmento da empresa afetam outros segmentos.
7
Visite a página deste livro na Cengage Learning Brasil e conheça também todo o nosso catálogo
Sistemas de Banco de Dados P R O J E T O , I M P L E M E N TA Ç Ã O E A D M I N I S T R A Ç Ã O tradução da 8a edição norte-americana
Esta tradução da 8a edição de Sistemas de Banco de Dados: Projeto, Implementação e Administração, referência entre os títulos sobre banco de dados, apresenta aos leitores uma base sólida para a prática de design e implementação de bancos de dados. Esta obra oferece uma cobertura aprofundada sobre o design de banco de dados, demonstrando que a chave para o êxito em sua implementação é um design apropriado, que se ajuste em uma amplo e estratégico ambiente de dados. As atualizações desta edição incluem uma abordagem ampliada sobre a aplicação das funções do SQL Server, cobertura renovada sobre inteligência de negócios e segurança de dados. Com foco no componente prático, incluindo exemplos reais e exercícios, este livro ajuda estudantes a desenvolverem valiosas e significativas habilidades em design de banco de dados, que serão praticadas no mundo real.
Aplicações Obra fundamental para disciplinas introdutórias à prática da computação, análise e desenvolvimento de sistemas de bancos de dados nos cursos de Ciência da Computação, Engenharia da Computação, Análise de Sistemas, Tecnologia em Processamento de Dados, além de poder ser utilizada em cursos técnicos de Processamento de Dados e Informática do Ensino Médio.
Possui material de apoio
ISBN 13 978-85-221-0786-5 ISBN 10 85-221-0786-6
Para suas soluções de curso e aprendizado, visite www.cengage.com.br
9 788522 107865