Apostila Banco de dados

Apostila Banco de dados

(Parte 1 de 23)

Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 4

10.3.2 Conceitos da modelagem95
10.3.2.1 A granularidade das inform ações96
10.3.2.2 As dim ensões97
10.3.2.3 Os fato s98
10.3.3 Os três tipos de métricas98
10.3.4 Outros elementos da tabela fato9
10.4 OS ESQUEMAS BÁSICOS E SUAS VARIAÇÕES101
10.4.1 O es quema Star cláss ico101
10.4.1.1 As variações do esquema Star105
10.4.1.2 O esquema S nowflak e109
10.4.1.3 As variações do esquema Snowflake109
10.5 AGREGAÇÕ ES DAS INFO RMAÇÕ ES115
10.5.1 Definindo os agregad os115
10.5.2 Im plem entando os agregados117
10.6.1 O proc ess o de c arga119
Introdução a Banco de DadosO.K. Takai; I.C.Italiano; J.E. Ferreira.

10.6 UTILIZANDO OS AGREGADOS COM UM NOVO COMPONENTE: O NAVEGADOR DE AGREGADOS 119 1

Osvaldo Kotaro Takai Isabel Cristina Italiano João Eduardo Ferreira DCC-IME-USP – Fevereiro - 2005

Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 2

1 INTR OD UÇÃ O6
1.1 MODE LOS DE DADO S6
1.1.1 Modelo Hier árqui co6
1.1.2 Modelo em Rede7
1.1.3 Modelo Rela cional8
1.1.4 Modelo Orientado a Objetos8
1.1.5 Sis temas Objeto-Relac ionais9
1.2 ARQUI TET URA S DE BANCO DADO S9
1.2.1 Introduç ão9
1.2.2 Arquitetu ras10
1.2.3 Resumo das arquiteturas de SGBDs1
1.3 AMBIENTE DE IMPLEMENTAÇÃ O CLIENTE -S ERVIDOR12
2 DEFINIÇÃ O GERAL14
2.1 PROPRIE DADE S:14

Índice 2.2 CARACTERÍSTICAS DA ABORDAGEM DE BASE DE DADOS X PROCESSAMENTO TRADICIONAL

ARQUIVOS15
2.3 CAPACIDADES DO SGBD16
2.4 VANTAGENS ADICIONAIS DA ABORDAGEM DA BASE DE DADOS17
2.5 QUANDO NÃO UTILIZAR UM SGBD18
2.6 PROFISSIONAIS E ATIVIDADES ENVOLVIDAS EM UM SGBD18
3 CONCEITOS E ARQUITETURAS DE SGBD’S19
3.1 MODELOS DE DADOS, ESQUEMAS E INSTÂNCIAS19
3.1.1 Categorias de Modelos de Dados19
3.1.2 Esquem as e In stâncias19
3.2 ARQUITETURA E INDEPENDÊNCIA DE DADOS DE SGBD’S20
3.3 LINGUAGENS DE BASE DE DADOS21

4 MODELAGEM DE DADOS USANDO O MODELO ENTIDADE-RELACIONAMENTO (MER) 2

4.1 MODELO DE DADOS CONCEITUAL DE ALTO-NÍVEL E PROJETO DE BASE DADOS2
4.2 UM EXEMPLO2
4.3 CONCEIT OS D O MODELO ENTIDAD E-R ELACIO NAMENTO23
4.3.1 Entidades e At ributos23
4.3.2 Tipos de Entidades, Conjunto de Valores e Atributos-Chaves24
4.3.3 Relacionamentos, Papéis e Restrições Estruturais25
4.3.4 Tipo de Entid ade-Fraca30
4.3.5 Projeto da Base de Dados COMPANHIA utilizando o MER31
4.4 DIAG RAMA ENTIDAD E-R ELACIO NAMENTO (DER)31
4.5 TIPOS DE RELACIONAMENTOS DE GRAU MAIOR QUE DOIS3
4.6 QUESTÕ ES PA RA A SÍNTESE37
5 O MODELO DE DADOS RELACIONAL38
5.1 CONCEIT OS D O MODELO REL ACIONAL38
5.1.1 Notação do Model o Relaci onal39
5.1.2 Atributos-chav es de uma Relaç ão40
5.1.3 Esquemas de Bases de Dados Relacionais e Restrições de Integridade41
5.1.4 Operações de Atualizações sobre Relações4
Introdução a Banco de DadosO.K. Takai; I.C.Italiano; J.E. Ferreira.
6 MAPEAMENTO DO MER PARA O MODELO DE DADOS RELACIONAL45
7 LING UAGEN S FORMAIS DE CO NSU LTA49
7.1 ÁLG EBRA REL ACIO NAL49
7.1.1 Operações SELECT e PROJ ECT49
7.1.1.1 O Operador SELECT49
7.1.1.2 O Operador P ROJECT50
7.1.2 Seqüência de O perações51
7.1.3 Renom eando At ributos52
7.1.4 Operações da Teoria dos Conjuntos52
7.1.5 A Operaç ão JOIN5
7.1.6 Conjunto completo de Operações da Álgebra Relacional57
7.1.7 A Operaç ão DIVISION57
7.1.8 Operações Relaci onai s Adicio nais58
7.1.9 Funções de Agregação58
7.1.10 Operações de Claus ura Rec ursiv a60
7.2 EXEMPLOS DE CONSULTAS NA ÁLGEBRA RELACIONAL60
7.3 QUESTÕ ES DE REVISÃO62
7.4 CÁLCULO RELACIO NAL63
7.4.1 Cálc ulo Relac ion al de Tu plas63
7.4.2 Cálc ulo Relac ional de Domínio65
8 A LINGUAGE M SQL67
8.1 ESTRU TURA BÁSICA67
8.1.1 A operação RENAME68
8.1.2 Operações com Strings68
8.1.3 Ordenação e Apresentação de Tuplas68
8.1.4 Operações com Conjuntos68
8.1.5 Funções Ag regadas69
8.1.6 Subconsultas Aninhadas69
8.1.7 Vis ões70
8.1.8 Ins erç ão70
8.1.9 Atualiz aç ão71
8.1.10 Remoç ão71
8.1.1 SQL D L71
RELACIO NAIS75
9.1 DIRETRIZES PARA O PROJETO INFORMAL DE ESQUEMAS DE RELAÇÕES75
9.1.1 Semântica de atributos de relação75
Informação redundante em tuplas e anomalias de atualizações76
9.2 ANOMALIA DE INSERÇÃO7
9.2.1 Anomalia de remoç ão7
9.2.2 Anomalia de m odific ação7
9.2.3 Disc uss ão78
9.2.4 Valores null em tuplas78
9.2.5 Tuplas es púrias78
9.3 DEPENDÊNCIAS FUNCIONAIS80
9.3.1 Definiç ão de Depend ênc ia Func ional80
9.3.2 Formas Normais Determinados pelas Chaves Primárias82
9.2.1.1Primeira Forma Normal (1 FN) ................................................................................... 82
9.2.1.2Segunda Forma No rmal (2FN ).................................................................................. 82
9.2.1.3Terceira Forma Normal (3 FN) ................................................................................... 83
10 DATA WAREHOUSE – UMA VISÃO GERAL89
10.1 O QUE É O DATA WAREHOUSE89
10.2 O MODELO DIMENSIONAL E SUAS IMPLEMENTAÇÕES90
10.2.1 O modelo formal da base de dados multidimensional93
10.3 ASPECTO S DA MODELA GEM DIMENSIO NAL95

9 DEPENDÊNCIAS FUNCIONAIS E NORMALIZAÇÃO DE BASE DE DADOS 10.3.1 Carac terís ticas .................................................................................................. 95

Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 8

Estes dois modelos: Hierárquico e Rede são Orientados a Registros, isto é, qualquer acesso à base de dados – inserção, consulta, alteração ou remoção – é feito em um registro de cada vez.

1.1.3 Modelo Relacional

O modelo relacional apareceu devido às seguintes necessidades: aumentar a independência de dados nos sistemas gerenciadores de banco de dados; prover um conjunto de funções apoiadas em álgebra relacional para armazenamento e recuperação de dados; permitir processamento ad hoc 1 . O modelo relacional, tendo por base a teoria dos conjuntos e álgebra relacional, foi resultado de um estudo teórico realizado por CODD[1]2 . O Modelo relacional revelou-se ser o mais flexível e adequado ao solucionar os vários problemas que se colocam no nível da concepção e implementação da base de dados. A estrutura fundamental do modelo relacional é a relação (tabela). Uma relação é constituída por um ou mais atributos (campos) que traduzem o tipo de dados a armazenar. Cada instância do esquema (linha) é chamada de tupla (registro). O modelo relacional não tem caminhos pré-definidos para se fazer acesso aos dados como nos modelos que o precederam. O modelo relacional implementa estruturas de dados organizadas em relações. Porém, para trabalhar com essas tabelas, algumas restrições precisaram ser impostas para evitar aspectos indesejáveis, como: Repetição de informação, incapacidade de representar parte da informação e perda de informação. Essas restrições são: integridade referencial, chaves e integridade de junções de relações. A Figura 1.3, abaixo, traz exemplos de tabelas sob o modelo relacional.

Figura 1.3 Tabelas do modelo relacional Cliente - Conta Corrente

1.1.4 Modelo Orientado a Objetos

Os bancos de dados orientados a objeto começaram a se tornar comercialmente viáveis em meados de 1980. A motivação para seu surgimento está em função dos limites de armazenamento e representação semântica impostas no modelo relacional. Alguns exemplos são os sistemas de informações geográficas (SIG), os sistemas CAD e CAM, que são mais facilmente construídos usando tipos complexos de dados. A habilidade para criar os tipos de dados necessários é uma característica das linguagens de programação orientadas a objetos. Contudo, estes sistemas necessitam guardar representações das estruturas de dados que utilizam no armazenamento permanente. A estrutura padrão para os bancos de dados orientados a objetos foi feita pelo Object Database Management Group (ODMG). Esse grupo é

1 Processamento dedicado, exclusivo.

2 Codd era investigador da IBM. O modelo foi apresentado num artigo publicado em 1970, mas só nos anos 80 o modelo foi implementado.

Introdução a Banco de DadosO.K. Takai; I.C.Italiano; J.E. Ferreira.

Prefácio

Esta apostila foi escrita para apoiar a aprendizagem dos alunos nas disciplinas de introdução a Sistemas Banco de Dados do IME-USP. Seu conteúdo é uma pesquisa de vários autores, sendo em partes transcrições e traduções dos mesmos. Os capítulos de 1 a 9 foram baseados nas referências [1], [2], [3], [4], [5], [6] e [7]. O Capítulo 10 foi baseado nas demais referências que constam no final deste documento. O Apêndice A foi baseado em [5].

Esta apostila tem como objetivo ser uma primeira leitura para os alunos iniciantes no curso de banco de dados e tenta sempre mostrar os temas abordados de forma simples e clara, propiciando subsídios para aprofundar-se nos temas tratados utilizando outras bibliografias.

No intuito de ser didática, esta apostila está estruturada da seguinte forma:

O Capítulo 1 apresenta uma introdução aos modelos e arquiteturas de banco de dados.

O Capítulo 2 traz os conceitos básicos de sistemas de banco de dados, necessários à compreensão do restante deste material.

No Capítulo 3, as arquiteturas de banco de dados são apresentadas. O Capítulo 4 trata de modelagem de banco de dados usando o paradigma entidade relacionamento.

O Capítulo 5 aborda o modelo relacional. O Capítulo 6 ilustra como efetuar o mapeamento de um diagrama entidade relacionamento para o modelo relacional, de forma intuitiva.

O Capítulo 7 traz uma discussão e exemplos de linguagens de consultas formais, quais sejam: Álgebra relacional, Cálculo relacional de Tuplas e Cálculo Relacional de Domínio.

No Capítulo 8, a linguagem SQL – linguagem de consulta comercial mais difundida para o modelo relacional – é introduzida, por meio de sua teoria e exemplos práticos.

O Capítulo 9 trata de projeto de banco de dados, normalização e dependências funcionais entre os dados.

No Capítulo 10 uma visão geral sobre Data warehouse é fornecida ao leitor. Finalmente, o Apêndice A traz exemplos de consultas nas linguagens de consultas vistas anteriormente.

Os autores agradecem imensamente aos alunos: Bianka M.M.T.

Gonçalves, Clodis Boscarioli, Rodolpho Iemini Atoji e Fernando Henrique Ferraz P. da Rosa, pelas valorosas correções, edições e sugestões do texto em questão.

Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 6

Base de Dados

1 Introdução

O primeiro Sistema Gerenciador de Banco de Dados (SGBD) comercial surgiu no final de 1960 com base nos primitivos sistemas de arquivos disponíveis na época, os quais não controlavam o acesso concorrente por vários usuários ou processos. Os SGBDs evoluíram desses sistemas de arquivos de armazenamento em disco, criando novas estruturas de dados com o objetivo de armazenar informações. Com o tempo, os SGBD’s passaram a utilizar diferentes formas de representação, ou modelos de dados, para descrever a estrutura das informações contidas em seus bancos de dados. Atualmente, os seguintes modelos de dados são normalmente utilizados pelos SGBD’s: modelo hierárquico, modelo em redes, modelo relacional (amplamente usado) e o modelo orientado a objetos.

1.1 Modelos de Dados

1.1.1 Modelo Hierárquico

O modelo hierárquico foi o primeiro a ser reconhecido como um modelo de dados. Seu desenvolvimento somente foi possível devido à consolidação dos discos de armazenamento endereçáveis, pois esses discos possibilitaram a exploração de sua estrutura de endereçamento físico para viabilizar a representação hierárquica das informações. Nesse modelo de dados, os dados são estruturados em hierarquias ou árvores. Os nós das hierarquias contêm ocorrências de registros, onde cada registro é uma coleção de campos (atributos), cada um contendo apenas uma informação. O registro da hierarquia que precede a outros é o registro-pai, os outros são chamados de registros-filhos.

Uma ligação é uma associação entre dois registros. O relacionamento entre um registro-pai e vários registros-filhos possui cardinalidade 1:N. Os dados organizados segundo este modelo podem ser acessados segundo uma seqüência hierárquica com uma navegação do topo para as folhas e da esquerda para a direita. Um registro pode estar associado a vários registros diferentes, desde que seja replicado. A replicação possui duas grandes desvantagens: pode causar inconsistência de dados quando houver atualização e o desperdício de espaço é inevitável. O sistema comercial mais divulgado no modelo hierárquico foi o Information Management System da IBM Corp(IMS). Grande parte das restrições e consistências de dados estava contida dentro dos programas escritos para as aplicações. Era necessário escrever programas na ordem para acessar o banco de dados. Um diagrama de estrutura de árvore descreve o esquema de um banco de dados hierárquico. Tal diagrama consiste em dois componentes básicos: Caixas, as quais correspondem aos tipos de registros e Linhas, que correspondem às ligações entre os tipos de registros. Como exemplo do modelo hierárquico, considere a Figura 1.1 abaixo.

Introdução a Banco de DadosO.K. Takai; I.C.Italiano; J.E. Ferreira.

Figura 1.1 - Diagrama de estrutura de árvore Cliente - Conta Corrente

1.1.2 Modelo em Rede

O modelo em redes surgiu como uma extensão ao modelo hierárquico, eliminando o conceito de hierarquia e permitindo que um mesmo registro estivesse envolvido em várias associações. No modelo em rede, os registros são organizados em grafos onde aparece um único tipo de associação (set) que define uma relação 1:N entre 2 tipos de registros: proprietário e membro. Desta maneira, dados dois relacionamentos 1:N entre os registros A e D e entre os registros C e D é possível construir um relacionamento M:N entre A e D. O gerenciador Data Base Task Group (DBTG) da CODASYL (Committee on Data Systems and Languages) estabeleceu uma norma para este modelo de banco de dados, com linguagem própria para definição e manipulação de dados. Os dados tinham uma forma limitada de independência física. A única garantia era que o sistema deveria recuperar os dados para as aplicações como se eles estivessem armazenados na maneira indicada nos esquemas. Os geradores de relatórios da CODASYL também definiram sintaxes para dois aspectos chaves dos sistemas gerenciadores de dados: concorrência e segurança. O mecanismo de segurança fornecia uma facilidade na qual parte do banco de dados (ou área) pudesse ser bloqueada para prevenir acessos simultâneos, quando necessário. A sintaxe da segurança permitia que uma senha fosse associada a cada objeto descrito no esquema. Ao contrário do Modelo Hierárquico, em que qualquer acesso aos dados passa pela raiz, o modelo em rede possibilita acesso a qualquer nó da rede sem passar pela raiz. No Modelo em Rede o sistema comercial mais divulgado é o CAIDMS da Computer Associates. O diagrama para representar os conceitos do modelo em redes consiste em dois componentes básicos: Caixas, que correspondem aos registros e Linhas, que correspondem às associações. A Figura 1.2 ilustra um exemplo de diagrama do modelo em rede.

Figura 1.2 - Diagrama de estrutura de dados Cliente - Conta Corrente

Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 12

Figura 1.5 - Arquitetura Distribuída N camadas 1.3 Ambiente de Implementação Cliente-Servidor

Introdução a Banco de DadosO.K. Takai; I.C.Italiano; J.E. Ferreira.

formado por representantes dos principais fabricantes de banco de dados orientados a objeto disponíveis comercialmente. Membros do grupo têm o compromisso de incorporar o padrão em seus produtos. O termo Modelo Orientado a Objetos é usado para documentar o padrão que contém a descrição geral das facilidades de um conjunto de linguagens de programação orientadas a objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados. Quando os bancos de dados orientados a objetos foram introduzidos, algumas das falhas perceptíveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e acreditava-se que tais bancos de dados ganhariam grande parcela do mercado. Hoje, porém, acredita-se que os Bancos de Dados Orientados a Objetos serão usados em aplicações especializadas, enquanto os sistemas relacionais continuarão a sustentar os negócios tradicionais, onde as estruturas de dados baseadas em relações são suficientes. O diagrama de classes UML serve geralmente como o esquema para o modelo de dados orientado a objetos. Observe o exemplo da Figura 1.4, e compare as diferenças com o modelo anterior.

Figura 1.4 - Diagrama UML Cliente - Conta Corrente

1.1.5 Sistemas Objeto-Relacionais

A área de atuação dos sistemas Objeto-Relacional tenta suprir a dificuldade dos sistemas relacionais convencionais, que é o de representar e manipular dados complexos, visando ser mais representativos em semântica e construções de modelagens. A solução proposta é a adição de facilidades para manusear tais dados utilizando-se das facilidades SQL (Structured Query Language) existentes. Para isso, foi necessário adicionar: extensões dos tipos básicos no contexto SQL; representações para objetos complexos no contexto SQL; herança no contexto SQL e sistema para produção de regras.

1.2 Arquiteturas de Banco Dados

1.2.1 Introdução

(Parte 1 de 23)

Comentários