Está en la página 1de 75

Banco de

Sumrio
Prefcio............................................................................................................................. 7 Lio 01 ............................................................................................................................ 8 Conceitos Bsicos............................................................................................................. 8 1. 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.8. 1.8.1. 1.8.2. 1.8.3. 1.9. 1.9.1. 1.9.2. 1.10. 1.11. 1.12. Objetivo ................................................................................................................ 8 O que Banco de Dados?................................................................................. 8 Objetivos dos Sistemas de Banco de Dados..................................................... 9 Componentes de um Sistema de Banco de Dados.......................................... 10 Abstrao de Dados ........................................................................................ 12 Esquema ......................................................................................................... 13 Instncia.......................................................................................................... 13 Independncia de Dados................................................................................. 13 Modelo de Dados............................................................................................ 14 Modelos lgicos baseados em Objetos....................................................... 14 Modelos lgicos baseados em Registros .................................................... 15 Modelos Fsicos.......................................................................................... 16 Linguagens de Banco de Dados ..................................................................... 16 Linguagens de Definio de Dados ............................................................ 16 Linguagens de Manipulao dos Dados ..................................................... 16 Gerenciamento de Transaes .................................................................... 17 Administrao de Memria ........................................................................ 17 Estrutura Geral do Sistema ......................................................................... 18

Lio 02 .......................................................................................................................... 21 Modelo Relacional.......................................................................................................... 21 2. Objetivo .................................................................................................................. 21 2.1. Estrutura dos Bancos de Dados Relacionais........................................................ 21 2.2.1. Estrutura Bsica................................................................................................ 21 2.2.2. Esquema de Banco de Dados............................................................................ 22 2.2.3. Chaves .............................................................................................................. 23 2.2.4. Linguagens de Consulta ................................................................................... 23 2.3. A lgebra Relacional .......................................................................................... 23 2

2.3.1. Operaes Fundamentais.................................................................................. 24 2.3.1.1. A Operao Select ......................................................................................... 24 2.3.1.2. A Operao Project........................................................................................ 24 2.3.1.3. A Operao Relacional de Comparao........................................................ 25 2.3.1.4. A Operao Union ......................................................................................... 25 2.3.1.5. A Operao Diferena entre Conjuntos......................................................... 26 2.3.1.6. A Operao Produto Cartesiano .................................................................... 26 2.3.1.7. A Operao Rename...................................................................................... 26 2.3.2. Definio Formal da lgebra Relacional ......................................................... 27 2.3.3. Operaes Adicionais ....................................................................................... 27 2.3.3.1. A Operaes de Interseo de Conjuntos ...................................................... 28 2.3.3.2. A Operaes de Juno Natural .................................................................... 28 2.3.3.3. A Operaes de Diviso ................................................................................ 28 2.3.3.4. A Operaes de Designao (Assignment Operation) .................................. 29 2.4. Clculo Relacional de Tupla ............................................................................... 29 2.5. Clculo Relacional de Domnio........................................................................... 29 2.6. Operaes de lgebra Relacional Estendida....................................................... 30 2.7. Modificaes no Banco de Dados ....................................................................... 30 2.7.1. Excluso ........................................................................................................... 30 2.7.2. Insero............................................................................................................. 31 2.7.3. Atualizao ....................................................................................................... 31 2.8. Vises .................................................................................................................. 31 Lio 03 .......................................................................................................................... 33 Arquiteturas de SBD....................................................................................................... 33 3.1. Objetivo ............................................................................................................... 33 3.2. Arquiteturas ......................................................................................................... 33 3.3. Sistemas Centralizados ........................................................................................ 34 3.4. Sistemas Cliente/Servidor ................................................................................... 35 3.5. Sistemas Paralelos ............................................................................................... 36 3.6. Sistemas Distribudos .......................................................................................... 37 Lio 04 .......................................................................................................................... 38 Banco de Dados Cliente/Servidor................................................................................... 38 4.1. Objetivo ............................................................................................................... 38 3

4.2. Sistema Cliente/Servidor ..................................................................................... 38 4.2.1. Servidor de Transaes..................................................................................... 40 4.2.2. Servidores de Dados ......................................................................................... 40 Lio 05 .......................................................................................................................... 42 Banco de Dados Distribudos ......................................................................................... 42 5.1. Objetivo ............................................................................................................... 42 5.2. Distribudos ......................................................................................................... 42 5.2.1. Armazenamento Distribudo dos Dados........................................................... 42 5.2.2. Transparncia de Rede...................................................................................... 43 5.2.3. Processamento de Consultas Distribudas ........................................................ 43 5.2.4. Modelo de Transaes Distribudas ................................................................. 43 5.2.5. Coordenador ..................................................................................................... 43 Lio 06 .......................................................................................................................... 45 Modelagem de Dados ..................................................................................................... 45 6.1. Objetivo ............................................................................................................... 45 6.2. O que Modelo de Dados? ................................................................................. 45 6.3. Componentes do Modelo de Dados..................................................................... 46 6.3.1. Entidade ............................................................................................................ 46 6.3.2. Atributo............................................................................................................. 46 6.3.3. Chave de Identificao ..................................................................................... 47 6.3.4. Lista de Entidades............................................................................................. 47 6.3.5. Domnio ............................................................................................................ 47 6.3.6. Relacionamento ................................................................................................ 48 6.3.7. Grau do Relacionamento .................................................................................. 48 6.4. Tipos de Entidade ................................................................................................ 49 6.4.1. Entidade Primria ............................................................................................. 49 6.4.2. Entidade Dependente........................................................................................ 49 6.4.3. Entidade Associativa ........................................................................................ 50 6.5. Tipos de Relacionamento .................................................................................... 50 6.5.1. Relacionamento de Dependncia (D) ............................................................... 50 6.5.2. Relacionamento Associativo (A)...................................................................... 50 6.5.3. Categoria (C) .................................................................................................... 51 6.5.4. Partio (P) ....................................................................................................... 51 4

6.5.5. Relacionamento Normal ................................................................................... 52 6.5.6. Auto-Relacionamento....................................................................................... 52 6.5.7. Mltiplos Relacionamentos .............................................................................. 52 6.5.8. Relacionamento Mutuamente Exclusivo .......................................................... 52 6.6. Tipos de Chave .................................................................................................... 52 6.6.1. Chaves Candidatas............................................................................................ 52 6.6.2. Chave Primria ................................................................................................. 53 6.6.3. Chaves Estrangeira ........................................................................................... 53 6.7. Consolidao de Modelos de Dados.................................................................... 53 6.7.1. O que Consolidao? ..................................................................................... 53 6.7.2. Trabalhos Executados na Consolidao ........................................................... 53 Lio 07 .......................................................................................................................... 55 Normalizao dos Dados ................................................................................................ 55 7.1. Objetivo ............................................................................................................... 55 7.2. O que Normalizao ......................................................................................... 55 7.3. Anomalias de Atualizao ................................................................................... 55 7.4. Dependncia Funcional ....................................................................................... 56 7.5. Dependncia Funcional Composta ou Completa................................................. 56 7.6. Dependncia Transitiva ....................................................................................... 57 7.7. Primeira Forma Normal (1FN) ............................................................................ 57 7.8. Segunda Forma Normal (2FN) ............................................................................ 58 7.9. Terceira Forma Normal (3FN) ............................................................................ 59 7.10. Simplificao do Processo de Normalizao..................................................... 61 7.11. Regras Prticas .................................................................................................. 61 Lio 08 .......................................................................................................................... 63 Novas Aplicaes ........................................................................................................... 63 8.1. Objetivo ............................................................................................................... 63 8.2. Sistemas de Suporte Deciso ............................................................................ 63 8.3. Banco de Dados Espaciais................................................................................... 63 8.4. Banco de Dados Multimdia................................................................................ 64 8.5. Bancos de Dados Mveis .................................................................................... 64 Apndice A ..................................................................................................................... 65 Estudo de Caso 01 .......................................................................................................... 65 5

Apndice B ..................................................................................................................... 68 Estudo de Caso 02 .......................................................................................................... 68 Apndice C ..................................................................................................................... 71 Estudo de Caso 03 .......................................................................................................... 71 Apndice D ..................................................................................................................... 72 Estudo de Caso 04 .......................................................................................................... 72 Apndice E ..................................................................................................................... 73 Estudo de Caso 05 .......................................................................................................... 73 Bibliografia..................................................................................................................... 75

Prefcio
Esta apostila tem como objetivo introduzir o aluno no mundo dos Bancos de Dados. A maior parte do texto existente nesta apostila no de nossa autoria, na verdade, o texto aqui contido uma sntese de vrios autores renomeados na rea de Banco de Dados. Porm, de grande importncia destacarmos, que esta apostila no substitui o valor presente nos livros de autores consagrados, ela uma ferramenta para o aluno iniciar seus estudos. Por causa da grande quantidade de trechos extrados de alguns livros, fica impraticvel referenciar todos eles, porm, todos os livros utilizados para compor esta apostila esto citados na bibliografia.

Lio 01 Conceitos Bsicos


S sei que nada sei Scrates

1. Objetivo
Como primeira lio, daremos aqueles conceitos necessrios para se entender Banco de Dados. Mostraremos a importncia dos Bancos de Dados e para aqueles mais leigos explicaremos o que um Banco de Dados. Ao final desta lio esperamos ter o domnio dos conceitos bsicos de Banco de Dados, tais como, abstrao, instncia, esquema, estrutura, modelo de dados, entre outros.

1.1. O que Banco de Dados?


Se voc no fez j deve ter pensado em fazer esta pergunta: O que Banco de Dados?, poderamos te responder: um conjunto de dados. Note que o conceito relativamente simples, mas a importncia de um Banco de Dados enorme, agora cada vez mais, j que estamos na era da informao. Todo mundo possui alguma informao que deseja guardar, seja esta informao relativa a clientes, a produtos, a eleitores ou simplesmente a telefones de amigos, um conjunto de informao que possui alguma relao entre si formar o que chamamos de Banco de Dados. Num computador o conjunto de dados associado a um conjunto de programas para acessar estes dados, chamamos este sistema de Sistema Gerenciador de Banco de Dados (SGBD), note que o SGBD no apenas o conjunto de dados, nem apenas o conjunto de programas, ele os dois. O principal objetivo de um SGBD proporcionar um ambiente tanto conveniente quanto eficiente para a recuperao e armazenamento das informaes.

1.2. Objetivos dos Sistemas de Banco de Dados


Um modo, que j foi muito utilizado, de guardar as informaes no computador foi armazen-las em sistemas de arquivos permanentes. Estes sistemas eram criados para satisfazer as necessidades atuais de uma empresa, com o passar do tempo eram adicionados novos mdulos sobre os j existentes. Muitas vezes os novos mdulos eram escritos por outros programadores, que por sua vez no utilizavam as mesmas linguagens. Com todas estas divergncias aconteciam diversos problemas, que variavam desde redundncia at isolamento de dados. O Sistema de Banco de Dados veio evitar estes problemas. Os principais objetivos de um Sistema de Banco de Dados so: Gerenciar grande quantidade de informao: um Sistema de Banco de Dados pode armazenar simplesmente dados referentes a uma agenda de amigos, como tambm pode armazenar as informaes relativas a uma usina nuclear. Em ambos os casos o Sistema de Banco de Dados tem que nos dar segurana e confiabilidade, independente se ele guardar 10 Megabytes ou 900 Gigabytes de informao. Evitar redundncia de dados e inconsistncia: redundncia manter a mesma informao em lugares diferentes, isto acontecia muito nos Sistemas de Arquivos, visto que novos programadores poderiam criar novos arquivos que conteriam um determinado dado que j est sendo armazenado em outro arquivo. Um dos problemas da redundncia que podemos atualizar um determinado dado de um arquivo e esta atualizao no ser feita em todo o sistema, este problema chamado de inconsistncia. Um Sistema de Banco de Dados tenta evitar ao mximo estes erros, vendo ainda que a redundncia causa desperdcio de memria secundria e tempo computacional. Facilitar o acesso: um Sistema de Banco de Dados facilita ao mximo o acesso aos dados, vistos que estes dados estaro no mesmo formato, o mesmo no acontecia no Sistema de Arquivos, onde os dados poderiam estar em diversos formatos e o acesso poderia at ser impossvel. Outro ponto que um Sistema de Banco de Dados facilita o acesso concorrente, onde podemos ter a mesma informao sendo compartilhada por diversos usurios. 9

Segurana aos Dados: nem todos os usurios de banco de dados esto autorizados ao acesso a todos os dados. Imagine, se numa empresa todos funcionrios tivessem acesso folha de pagamento. O Sistema de Banco de Dados garante a segurana implementando senhas de acessos. Garantir a Integridade: fazer com que os valores dos dados atribudos e armazenados em um banco de dados devam satisfazer certas restries para manuteno da consistncia e coerncia. Por exemplo, no podemos permitir a entrada de nmeros onde para entrar a sigla do Estado. Facilitar Migrao se necessrio: s vezes por motivos de velocidade ou de atualizao precisamos mudar todo o Sistema Computacional, e os dados sero armazenados em um outro Banco de Dados. O ato de Transferir as informaes de um Banco de Dados para outro Banco de Dados chamado de Migrao, e facilitar esta Migrao um dos objetivos de um Sistema de Banco de Dados.

1.3. Componentes de um Sistema de Banco de Dados


Podemos dizer que um Sistema de Banco de Dados envolve 4 componentes bsicos: Dados, Software, Hardware e Usurio. Sobre o Dado, j falamos de maneira indireta, que o componente principal, ele as informaes que sero armazenadas. Hardware toda a parte fsica, a mquina em si. Alguns o resumem apenas ao computador, mas um erro, visto que mesmo um celular pode enviar e receber dados. Um ponto que sempre temos que destacar que o Hardware deve se adaptar ao BD e no o contrrio. Software toda a parte lgica, os programas aplicativos, os programas de acesso aos dados, at mesmo o sistema operacional. Sobre os Usurios, alguns livros os dividiram em trs tipos: o Administrador de Banco de Dados, o Programador de Aplicativos e o Usurio Final. Apesar desta diviso esta totalmente correta, mais interessante fazer uma diviso mais minuciosa, sendo cada tipo, diferenciado por suas expectativa de interao com o sistema. Assim podemos dizer que existem cinco tipos:

10

Programadores de Aplicaes: so profissionais em computao que interagem com o sistema por meio de chamadas DML (veremos mais frente seu significado), as quais so envolvidas por programas escritos na linguagem hospedeira (por exemplo, C ou Delphi). Este usurio cria programas que acessam de alguma forma a base de dados. Uma vez que a sintaxe da DML , em geral, completamente diferente da sintaxe da linguagem hospedeira, as chamadas DML so, normalmente, precedidas por um caractere especial antes que o cdigo apropriado possa ser gerado. Um prprocessamento, chamado pr-compilador DML, converte os comandos DML para as chamadas normais em procedimentos da linguagem hospedeira. O programa resultante , ento, submetido ao compilador da linguagem hospedeira, a qual gera o cdigo de objeto apropriado. Usurios sofisticados: so aqueles que fazem solicitaes ao Banco de Dados, sem fazer programas. Estas solicitaes so feitas atravs de linguagens de consultas. Um exemplo deste tipo de usurio so os analistas que submetem consultas para explorar dados no Banco de Dados. Usurios especialistas: so usurios sofisticados que escrevem aplicaes especializadas de Banco de Dados que no podem ser classificadas como aplicaes tradicionais em processamento de dados. Estas aplicaes incluem desde udio at modelagem de ambientes. Usurios navegantes: tambm chamados de usurios ingnuos, so aqueles que interagem com o Banco de Dados utilizando um dos programas aplicativos. Administrador de Banco de Dados (ABD ou DBA): o responsvel por todo o Banco de Dados, entre suas funes podemos destacar: Definio do Esquema: O ABD cria o esquema do banco de dados original escrevendo um conjunto de definies que so transformadas pelo compilador DDL em um conjunto de tabelas armazenadas de modo permanente no dicionrio de dados. Definio da estrutura de dados e mtodo de acesso: apropriados so escritos pelo ABD atravs de um conjunto de definies, as quais so traduzidas pelo compilador de armazenamento de dados e pelo compilador de linguagem de definio de dados.

11

Esquema e modificaes na organizao fsica: os programadores realizam poucas alteraes no esquema do Banco de Dados ou na descrio da organizao fsica

Fornecer autorizao de acesso ao sistema: o ABD fornece a cada usurio um acesso restrito, permitindo melhor controle. Especificao de regras de integridade: o ABD especfica restries para manuteno de integridade dos dados.

1.4. Abstrao de Dados


Num sistema de Banco de Dados o usurio v uma viso abstrata, o sistema esconde certos detalhes de como os dados so armazenados ou mantidos. Isto porque, a preocupao com a eficincia de um Banco de Dados, leva a concepo de estruturas de dados complexas para a representao dos dados no Banco de Dados. Porm, uma vez que o Sistema de Banco de Dados so freqentemente usados por leigos na rea de algoritmo da computao, esta complexidade precisa ser escondida dos usurios; conseguimos isto com diferentes nveis de abstrao: Nvel Fsico, Nvel Conceitual e Nvel Viso. Nvel Fsico: o nvel mais baixo de abstrao, no qual se descreve como os dados so realmente armazenados no disco. Neste Nvel estruturas complexas, de baixo nvel, so descritas em detalhes. Nvel Conceitual: tambm chamado de Nvel Lgico, considerado o nvel secundrio de abstrao, no qual se descreve quais dados so realmente armazenados no BD e quais os relacionamentos entre eles. Nvel Viso: o mais alto nvel de abstrao, no qual se expem s a parte do Banco de Dados que um determinado usurio necessita. O sistema pode proporcionar diversas vises do mesmo Banco de Dados. O inter-relacionamento entre esses trs nveis de abstrao est ilustrado na prxima figura:

12

1.5. Esquema
Esquema a estrutura de um Banco de Dados. O Sistema de Banco de Dados apresentam diversos esquemas, referentes aos nveis de abstrao que discutimos. No nvel mais baixo h o esquema fsico; no nvel intermedirio, o esquema lgico; e no nvel mais alto, os sub-esquemas.

1.6. Instncia
So os valores contidos no Banco de Dados em um determinado momento, isto , o conjunto de informaes contidas num Banco de Dados em um determinado instante.

1.7. Independncia de Dados


A habilidade de modificar a definio de um esquema em um nvel sem afetar a definio de esquema num nvel mais alto chamado de independncia de dados. Existem dois nveis de independncia de dados: Independncia fsica de dados a habilidade de modificar o esquema fsico sem a necessidade de reescrever os programas aplicativos. As modificaes no nvel fsico so ocasionalmente necessrias para aprimorar o desempenho. Independncia lgica de dados a habilidade de modificar o esquema conceitual sem a necessidade de reescrever os programas aplicativos. As 13

modificaes no nvel conceitual so necessrias quando a estrutura lgica do banco de dados alterada (por exemplo, a adio de contas de bolsas de mercado num sistema bancrio). A independncia lgica de dados mais difcil de ser alcanada do que a independncia fsica, pois os programas so bastante dependentes da estrutura lgica dos dados que eles acessam. O conceito de independncia de dados similar em muitos aspectos ao conceito de tipos abstratos de dados em modernas linguagens de programao. Ambos escondem detalhes de implementao do usurio. Isto permite ao usurio concentrar-se na estrutura geral em vez de em detalhes de baixo nvel de implementao.

1.8. Modelo de Dados


De forma a descrever a estrutura de um Banco de Dados, necessitamos definir o conceito de modelo de dados. Modelo de dados uma coleo de ferramentas conceituais para a descrio dos dados, relacionamento entre os dados e restries dos dados. Diversos modelos de dados foram propostos e esto divididos em trs diferentes grupos: modelos lgicos baseados em objetos; modelos lgicos baseados em registro; modelos fsico.

1.8.1. Modelos lgicos baseados em Objetos Usados na descrio de dados nos nveis conceitual e viso, proporcionam ampla e flexvel capacidade de estruturao e permitem a especificao de restries de dados de forma explicita. Na ltima contagem, levantamos pelo menos 30 modelos diferentes e mais modelos logo surgiro. Entre os modelos mais conhecidos esto: Modelo Entidade-Relacionamento; Modelo orientado a objeto; Modelo semntica de dados; Modelo funcional de dados.

O modelo Entidade-Relacionamento esta sendo largamente utilizado na prtica, ele se baseia numa percepo do mundo real e consiste numa coleo de objetos bsicos chamados de entidades e de relacionamento entre estes objetos. 14

1.8.2. Modelos lgicos baseados em Registros So usados na descrio de dados nos nveis conceitual e viso, especificam tanto a estrutura global, como uma descrio em auto-nvel da implementao, dividemse em: Modelo Hierrquico, Modelo Rede e Modelo Relacional. Modelo Hierrquico: neste modelo os dados so representados por registros e os relacionamentos por ligaes (ponteiros). Os dados so organizados em uma estrutura de rvore que se origina a partir de uma raiz, e se ramifica em ns (coleo de atributos que descreve uma entidade ou registro). Os relacionamentos so de pai-parafilho, o n que no possui filho chamado de folha. Vantagem do Modelo Hierrquico: implementao simples e eficiente, maturidade, confiana. Desvantagem do Modelo Hierrquico: no se consegue modelar estruturas que so de M-para-M, ao excluir um elemento temos que remontar toda estrutura do banco. Modelo Rede: apesar dos conceitos que existem por trs do modelo Rede serem originrios dos anos 60. As primeiras especificaes escritas foram feitas em 1971 pela Conference on Data System Languagens (codasyl), por este motivo, comum vermos o Modelo Rede ser chamado de Modelo Codasyl. Este modelo descreve os Banco de Dados nos quais existem relaes de M-para-M, as ligaes entre os registros so ponteiros. Vantagem do Modelo Rede: seu triunfo permitir relacionamentos de Mpara-M, alm de no precisarmos alterar toda a estrutura numa excluso ou incluso. Desvantagem do Modelo Rede: o mapeamento pode se tornar complexo. Modelo Relacional: os dados e os relacionamentos entre os dados so representados por uma coleo de tabelas, cada qual com mltiplas colunas e nome nico. Vantagem do Modelo Relacional: simplicidade do uso, o relacionamento feito por campo chave e independncia dos dados. Desvantagem do Modelo Relacional: desempenho ainda esta em evoluo.

15

1.8.3. Modelos Fsicos So aqueles que se preocupam com a descrio dos dados no nvel mais baixo, se preocupam com detalhes de como so armazenados os dados. Ao contrrio dos modelos lgicos, h poucos modelos fsicos em uso. Dois deles so amplamente conhecidos: o modelo unificado (unifying model) e o modelo de partio de memria (frame memory model).

1.9. Linguagens de Banco de Dados


Um sistema de Banco de Dados proporciona dois tipos de linguagens: uma especfica para os esquemas do Banco de Dados e outra para expressar consultas e atualizaes.

1.9.1. Linguagens de Definio de Dados Um esquema de dados especificado por um conjunto de definies expressas por uma linguagem especial chamada linguagem de definio de dados (datadefinition language DDL). O resultado da compilao dos parmetros DDLs armazenado em um conjunto de tabelas que constituem um arquivo especial chamado dicionrio de dados ou diretrio de dados. Um dicionrio de dados um arquivo de metadados isto , dados a respeito de dados. Em um sistema de banco de dados, esse arquivo ou diretrio consultado antes que o dado real seja modificado. A estrutura de memria e o mtodo de acesso usados pelo banco de dados so especificados por um conjunto de definies em um tipo especial de DDL chamado linguagem de definio e armazenamento de dados (data storage and definition language). O resultado da compilao dessas definies um conjunto de instrues para especificar os detalhes de implementao dos esquemas do banco de dados os detalhes normalmente so ocultados dos usurios.

1.9.2. Linguagens de Manipulao dos Dados Os nveis de abstrao que foram discutidos no se aplicam apenas definio ou estrutura dos dados, mas tambm a sua manipulao. Por manipulao de dados entendemos: 16

A recuperao das informaes armazenadas no banco de dados; Insero de novas informaes no banco de dados; A remoo de informaes do banco de dados; A modificao das informaes do banco de dados.

A linguagem de manipulao de dados (DML) a linguagem que viabiliza o acesso ou a manipulao dos dados de forma compatvel ao modelo de dados apropriado. So basicamente dois tipos: DMLs procedurais: exigem que o usurio especifique quais dados so necessrios, e como obt-los. DMLs no procedurais: exigem que o usurio especifique quais dados so necessrio sem especificar como obt-los. Uma consulta uma solicitao para recuperao de informaes. A parte de uma DML responsvel pela recuperao de informaes chamada linguagem de consultas (query language). Embora tecnicamente incorreto, comum o uso do termo linguagem de consultas como sinnimo de linguagem de manipulao de dados.

1.10. Gerenciamento de Transaes


Freqentemente, muitas operaes em um Banco de Dados constituem uma nica unidade lgica de trabalho. Uma transao uma coleo de operaes que desempenham uma funo lgica nica dentro de uma aplicao do sistema de Banco de Dados. Cada transao uma unidade de atomicidade (ou tudo ou nada) e consistncia (exigncia de corretismo). Assim o Banco de Dados permanece consistente aps a transao, mas durante ela ser necessrio aceitar inconsistncias temporrias, que podem gerar problemas caso ocorra uma falha. responsabilidade do programador definir, de modo apropriado, as diversas transaes, tais que cada uma preserve a consistncia do Banco de Dados. Caso ocorra alguma falha na transao, o Banco de Dados ter que assumir a ltima forma consistente dele.

1.11. Administrao de Memria


Normalmente, os Bancos de Dados exigem um grande volume de memria. Um banco de Dados corporativo usualmente medido em gigabytes ou para Banco de Dados de grande porte (largest database), terabytes. Isto tudo de informao no pode 17

ficar na memria principal, necessitando ser armazenada em disco. Ento, os dados so transferidos do disco para a memria principal quando necessrio. Esta transferncia muito lenta, fazendo com que seja imperativo estruturar o Banco de Dados para minimizar este movimento. Um gerenciamento de memria um mdulo de programas para interface entre o armazenamento de dados em um nvel baixo e consultas e programas de aplicao submetidos ao sistema. O gerenciamento de memria responsvel pela interao com o gerenciamento de arquivos. O gerenciador de memria traduz os diversos comandos DML em comandos de baixo nvel de sistema de arquivos. Assim, o gerenciador de memria responsvel pelo armazenamento, recuperao e atualizao de dados no banco de dados.

1.12. Estrutura Geral do Sistema


Um sistema de bancos de dados dividido em mdulos que tratam de cada uma das responsabilidades do sistema geral. Na maioria dos casos, o sistema operacional do computador fornece apenas os servios mais bsicos, e o sistema de bancos de dados precisa ser construdo sobre essa base. Ento, o projeto do sistema de bancos de dados precisa incluir consideraes sobre a interface entre o sistema de bancos de dados e o sistema operacional. Os componentes funcionais de um sistema de bancos de dados podem ser divididos pelos componentes de processamento de consultas e pelos componentes de administrao de memria. Os componentes de processamento de consultas incluem: Compilador DML, que traduz comandos DML da linguagem de consulta em instrues de baixo nvel, inteligveis ao componente de execuo de consultas. Alm disso, o compilador DML tenta transformar a solicitao do usurio em uma solicitao equivalente, mas mais eficiente, buscando, assim, uma boa estratgia para a execuo da consulta. Pr-compilador DML que converte comandos DML embutidos em um aplicativo para chamadas de procedimento normal na linguagem hospedeira. O pr-compilador precisa interagir com o processador de consultas para gerar o cdigo apropriado.

18

Interpretador DDL que interpreta os comandos DDL em um conjunto de tabelas contendo metadados, ou seja, dados sobre dados. Componentes para o tratamento de consultas, que executam instrues de baixo nvel geradas pelo compilador DML.

Os componentes para administrao do armazenamento de dados proporcionam a interface entre os dados de baixo nvel, armazenados no Banco de Dados, os programas de aplicaes e as consultas submetidas ao sistema. Os componentes de administrao de armazenamento de dados incluem: Gerenciamento de autorizaes e integridade, que testam o cumprimento das regras de integridade e a permisso ao usurio no acesso ao dado. Gerenciamento de transaes, que garante que o Banco de Dados permanecer em estado consistente a despeito de falhas no sistema e que transaes concorrentes sero executadas sem conflitos em seus procedimentos. Administrador de arquivos, que gerencia a alocao do espao na armazenagem do disco e as estruturas de dados usadas para representar a informao armazenada no disco. Administrao de buffer, responsvel pela intermediao de dados do disco para a memria principal e pela deciso de quais dados colocar em memria cache. Adicionalmente, diversas estruturas de dados so requisitadas como parte da implementao do sistema fsico, incluindo: Arquivos de dados que armazenam banco de dados por si mesmos. Dicionrio de dados que armazenam metadados sobre a estrutura do banco de dados. O dicionrio de dados bastante usado. Assim, deve-se dar grande nfase ao desenvolvimento de um bom projeto e eficiente implementao ao dicionrio. ndices que fornecem acesso rpido aos itens de dados guardando dados particulares. Estatsticas de dados, armazenam informaes estatsticas relativas aos dados contidos no Banco de Dados. Essas informaes so usadas pelo

19

processador de consultas para seleo de meios eficientes para execuo de uma consulta. A figura na prxima pgina representa, de forma resumida, todo o sistema de Banco de Dados.

20

Lio 02 Modelo Relacional


Penso, logo existo! Descartes

2. Objetivo
O Modelo Relacional, em nvel comercial, esta em primeiro lugar entre os modelos de dados. Esta Lio tem como objetivo mostrar a estrutura dos Bancos de Dados Relacionais, bem como, introduzir o aluno aos conceitos e teorias relacionadas ao Modelo Relacional.

2.1. Estrutura dos Bancos de Dados Relacionais


Um Banco de Dados Relacional consiste em uma coleo de tabelas, cada uma das quais com um nome nico. Representamos em tabelas o banco de Dados E-R (que veremos mais a frente). Uma linha em uma tabela representa um relacionamento entre um conjunto de valores. Uma vez que essa tabela uma coleo de tais relacionamentos, h uma estreita correspondncia entre o conceito de tabela e o conceito matemtico de relao, a partir das quais se origina o nome desse modelo de dados.

2.2.1. Estrutura Bsica Observe a tabela cliente: Cdigo 011 012 013 014 Nome Ana Fernanda Joseph Marcos Tlio Mariana Cidade Sorocaba Laguna Capivari de Baixo Blumenau

Ela possui trs colunas: Cdigo, Nome e Cidade. Os nomes das colunas so chamados de atributos. Para cada atributo, h um conjunto de valores permitidos, chamado domnio do atributo em questo. Para o atributo Cidade, por exemplo, o domnio o conjunto de todos os nomes de cidades. Suponha que D3 denote esse 21

conjunto, D2 denota o conjunto de todos os nomes de clientes e D1, o conjunto de todos os cdigos. Qualquer linha de cliente consiste necessariamente de uma 3-tupla (v1,v2,v3), em que v1 um cdigo de cliente (isto , v1 est no domnio D1), v2 um nome de cliente (isto , v2 est no domnio D2) e v3 uma cidade (isto , v3 est no domnio D3). Em geral, a tabela cliente um subconjunto de: D1 x D2 x D3 Em geral, uma tabela de n atributos deve ser um subconjunto de: D1 x D2 x ... x Dn-1 x Dn Matematicamente, define-se uma relao como um subconjunto de um produto cartesiano de uma lista de domnios. Essa relao corresponde quase exatamente definio de uma tabela. A nica diferena que designamos nomes aos atributos, ao passo que, matematicamente, se usam apenas nomes numricos. Podemos ento, utilizar os termos matemticos relao e tupla no lugar de tabela e linhas. Na relao cliente existem quatro tuplas. Suponha que a tupla varivel t se refira primeira tupla da relao. Usamos a notao t[cdigo] para denotar o valor de t no atributo cdigo. Assim, t[cdigo]=011 e t[nome]=Ana Fernanda. Alternativamente podemos escrever t[1] para denotar os valores da tupla t no primeiro atributo, t[2] para denotar nome e assim por diante. J que uma relao um conjunto de tuplas podemos usar a notao matemtica t r para denotar que a tupla t est na relao r. Exigimos que, para todas as relaes r, os domnios de todos os atributos de r sejam atmicos. Um domnio atmico se elementos desse domnio so considerados unidades indivisveis. Um valor de domnio que pertena a qualquer domnio possvel o valor nulo, que indica que um valor desconhecido ou no existe.

2.2.2. Esquema de Banco de Dados O conceito de esquema de relao corresponde, em linguagem de programao, noo de definio de tipos. conveniente dar um nome ao esquema de relao, assim como damos nomes aos tipos em linguagem de programao. Adotamos convencionar o uso de letras minsculas para nomes de relaes e nomes iniciados com

22

uma letra maiscula para esquemas de relaes. Seguindo essa notao, usamos o nome Esquema_cliente para denotar o esquema de relao para a relao cliente. Assim, Esquema_cliente = (cdigo, nome, cidade) Denotamos o fato de cliente ser uma relao em Esquema_cliente por: cliente(Esquema_cliente) O conceito de instncia de relao corresponde, em linguagem de programao, ao valor de uma varivel. O contedo de uma instncia pode mudar ao longo do tempo, quando esta relao atualizada. Muitas vezes, usamos simplesmente relao, quando na realidade nos referimos instncia de relao.

2.2.3. Chaves As noes de chave primria, chave candidata, chave secundria, que sero discutidos na lio sobre Modelagem de Dados, se aplicam tambm ao modelo relacional. Por enquanto importante sabermos que, se um esquema de banco de dados relacional tem por base tabelas derivadas de um esquema E-R, possvel determinar a chave primria para um esquema de relao das chaves primrias dos conjuntos de relacionamentos ou entidades dos quais os esquemas so derivados.

2.2.4. Linguagens de Consulta Uma linguagem de consulta a linguagem por meio da qual os usurios obtm informaes do banco de dados. Os sistemas de banco de dados comerciais oferecem linguagem de consulta de alto nvel, uma das mais populares a SQL, veremos nesta lio linguagens puras: a lgebra relacional, clculo relacional de um tupla e o clculo relacional de um domnio. Essas linguagens de consulta so concisas e formais, sem o acar sinttico das linguagens comerciais, mas ilustram as tcnicas fundamentais para a extrao de dados do banco de dados.

2.3. A lgebra Relacional


A lgebra relacional uma linguagem de consultas procedural. Consiste em um conjunto de operaes tendo como entrada uma ou duas relaes e produzindo, como resultado, uma nova relao. As operaes fundamentais na lgebra relacional so select, project, union, set, difference, cartesian product e rename. Alm dessas operaes fundamentais, existem algumas outras operaes namely, set intersection, 23

natural join, division e assignment. Essas operaes so definidas em termos das operaes fundamentais.

2.3.1. Operaes Fundamentais As operaes select, project e rename so chamadas de operaes primrias, pois operam uma nica relao. As outras trs relaes operam um par de relaes e so, portanto, chamadas de operaes binrias.

2.3.1.1. A Operao Select A operao select seleciona tuplas que satisfaam um determinado predicado. Usamos a letra minscula sigma () para denotar seleo. O predicado aparece subscrito a . O argumento de relao dado entre parnteses, seguindo o . Assim, para selecionar aquelas tuplas da relao cliente, cuja cidade Tubaro, escrevemos: cidade = SOROCABA(cliente) Podemos usar comparaes do tipo =, , <, , > e . Alm de combinar vrios predicados em um grande predicado usando os conectivos e () e ou (). Por exemplo, queremos todos clientes de So Paulo que tenham cdigo superior a 012: cidade = So Paulo
cdigo>012 (cliente)

A seleo do predicado pode ter comparao entre dois atributos.

2.3.1.2. A Operao Project A operao project permite que listamos apenas um subconjunto dos atributos. Por exemplo, permite que faamos uma lista apenas com o nome e a cidade do cliente. J que a relao um conjunto, quaisquer linhas em duplicidade so eliminadas. A projeo denotada pela letra grega pi(). Listamos, subscrito em , os atributos que desejamos na consulta. O argumento da relao vem entre parnteses, a seguir. Para exemplificar, faremos uma projeo com os atributos nome e cidade:
nome, cidade

(cliente)

A relao resultante dessa consulta :

24

Nome Ana Fernanda Joseph Marcos Tlio Mariana

Cidade Tubaro Laguna Capivari de Baixo Blumenau

2.3.1.3. A Operao Relacional de Comparao O fato de o resultado de uma operao relacional ser uma relao importante, pois poderemos combinar as operaes. Em vez de dar o nome da relao como argumento, podemos dar uma outra operao que evolui para uma relao. Por exemplo: nome ( cidade = Capivari (cliente)) Com a consulta acima, teremos uma lista com nomes de cliente que moram em Capivari. Em geral, desde que o resultado de uma operao em lgebra relacional seja do mesmo tipo que sua entrada(relao), as operaes em lgebra relacional podem ser compostas juntas em uma expresso em lgebra relacional. A composio de operaes em lgebra relacional em expresses similar composio de operaes aritmticas em expresses aritmticas.

2.3.1.4. A Operao Union A operao union utilizado quando necessitamos uma relao que ser gerada por relaes que sero criadas por mais de uma operao. Por exemplo queremos os nomes de clientes e fornecedores: nome(cliente) nome(fornecedor) Em geral, precisamos que unies sejam feitas entre relaes compatveis, sendo assim: as relaes devem possuir o mesmo nmero de atributos e os domnios do i-simo atributo de uma relao e o i-simo atributo de outra devem ser os mesmos, para to i. Lembrando que as relaes podem ser temporrias, resultados de uma expresso em lgebra relacional. Outro ponto a destacar, que como as relaes so conjuntos, valores duplicados so eliminados.

25

2.3.1.5. A Operao Diferena entre Conjuntos A operao diferena entre conjuntos, denotada por -, permite-nos encontrar as tuplas que esto em uma relao, mas no em outra. A expresso r - s resulta na relao que contm as tuplas que esto em r, mas no em s. Por exemplo, se quisermos os nomes dos clientes que no so fornecedores: nome(cliente) - nome(fornecedor) Como na operao de unio, precisamos assegurar que o conjunto diferena seja feito entre relaes compatveis.

2.3.1.6. A Operao Produto Cartesiano A operao produto cartesiano, representada por x, permite-nos combinar informaes de duas relaes quaisquer. Representamos o produto das relaes r1 e r2 por r1 x r2. Observe a relao fornecedor: Cdigo 001 002 Nome Joo Lucas Cidade Tubaro Laguna

A expresso: cliente x fornecedor, vai gerar a seguinte relao: Cdigo 011 011 012 012 013 013 014 014 Nome Ana Fernanda Ana Fernanda Joseph Joseph Marcos Tlio Marcos Tlio Mariana Mariana Cidade Sorocaba Sorocaba Laguna Laguna Capivari de Baixo Capivari de Baixo Blumenau Blumenau Cdigo 001 002 001 002 001 002 001 002 Nome Joo Lucas Joo Lucas Joo Lucas Joo Lucas Cidade Sorocaba Laguna Sorocaba Laguna Sorocaba Laguna Sorocaba Laguna

Podemos misturar as operaes para gerar uma relao que precisarmos. Como pode existir atributos com mesmo nome, utilizamos para se referenciar a um atributo (deste tipo) a seguinte notao: nome da relao seguido por ponto(.) e por ltimo o nome do atributo.

2.3.1.7. A Operao Rename O resultado de uma expresso em lgebra relacional no possui um nome que possa ser usado para referenci-la. O operador rename, representado pela letra 26

minscula rho (), permite executar esse tipo de tarefa. Dada a expresso em lgebra relacional E, a expresso: x(E) tem por resultado a expresso E sob o nome x. Uma relao r considerada como uma expresso (trivial) de lgebra relacional. Assim, podemos tambm aplicar a operao rename relao r para obter a mesma relao sob um novo nome. A segunda forma de usar a operao rename a que se segue. Assuma que uma expresso E em lgebra relacional seja de ordem primria. Ento a expresso:
x(A1, A2, ...Na)(E)

retorna o resultado da expresso E sob o nome x, com os atributos recebendo novos nomes, A1, A2, ..., An.

2.3.2. Definio Formal da lgebra Relacional Uma expresso bsica na lgebra relacional pode ser uma das duas a seguir: Uma relao do banco de dados. Uma relao constante

Uma expresso genrica em lgebra relacional pode dar origem a subexpresses menores. Seja E1 e E2 uma expresso em lgebra relacional. Ento as expresses a seguir so todas expresses em lgebra relacional:
-

E1 E2 E1 - E2 E1 x E2 P(E1), em que P um predicado dos atributos em E1. S(E1), em que S uma lista consistindo de alguns atributos em E1. x(E1), em que x um novo nome para o resultado de E1.

2.3.3. Operaes Adicionais As operaes adicionais na lgebra relacional so suficientes para expressar qualquer consulta em lgebra relacional. Entretanto, se nos restringirmos s operaes fundamentais, certas consultas comuns tornam-se extensas. Portanto, definiremos operaes adicionais que no conferem maior poder lgebra relacional, mas 27

simplificam bastante consultas comuns. Para cada nova operao, daremos uma expresso equivalente usando somente operaes fundamentais.

2.3.3.1. A Operaes de Interseo de Conjuntos A Operao de interseo, representada pelo caracter , ela retorna uma relao formada pelas tuplas que duas relaes possuem em comum. Suponhamos duas relaes r e s, a expresso r s, retornar uma relao com apenas as tuplas que existem em r e tambm existem em s. A operao fundamental de r s, seria r (r - s).

2.3.3.2. A Operaes de Juno Natural A juno natural (natural join) uma operao binria que nos permite combinar certas selees e um produto cartesiano dentro de uma operao. As operaes de juno natural formam um produto cartesiano de seus dois argumentos, promovem uma seleo obedecendo equivalncia dos atributos que aparecem em ambos os esquemas de relao e, finalmente, removem os atributos em duplicidade. O caracter que representa a juno |><| (join). Uma juno pode ser escrita com operaes fundamentais: r |><| s = R S (
r.A1= s.A1^r.A2=s.A2^...^r.Na=s.An

r x s)

2.3.3.3. A Operaes de Diviso

A operao de diviso, simbolizada pelo smbolo , usada nas consultas nas quais se emprega a frase para todos. Suponha que tenhamos duas relaes, a r: nome_cliente Jones Smith Hayes Turner Williams Lindsay Johnson Jones e a s: 28 nome_agncia Downtown Mianus Perryridge Round Hill Perryridge Redwood Brighton Brighton

nome_agncia Brighton Downtown Desejamos encontrar todos os clientes que tenham conta em todas as agncias: r s, o resultado para essa expresso uma relao que possui o esquema (nome_cliente) e que contm a tupla (Jones). Usando operaes fundamentais: r s = R S (r) (( R S (r) x s) - R S,S (r))

2.3.3.4. A Operaes de Designao (Assignment Operation) conveniente, s vezes, escrever expresses em lgebra relacional com uma designao para a relao, de modo a us-la como uma varivel temporria. A operao de designao para a relao, denotada por , trabalha de maneira similar designao (assignment) em linguagens de programao. Observe o exemplo: temp1 R S (r) temp2 R S (r) ((temp1 x s) r) resultado = temp1 temp2

2.4. Clculo Relacional de Tupla


O clculo de uma tupla relacional uma linguagem de consultas noprocedural. Ela permite a descrio da consulta desejada sem especificar os procedimentos para obteno dessas informaes. Uma consulta em clculo relacional de tupla expressa como: {t | P(t)} que significa o conjunto de todas as tuplas t tal que o predicado P verdadeiro para t. Seguindo nossa notao anterior, usamos t[A] para denotar os valores das tuplas t sobre os atributos A, e usamos t r para denotar que a tupla t uma relao r. Na definio temos que P uma frmula, algumas variveis tuplas podem aparecer na frmula.

2.5. Clculo Relacional de Domnio


Existe uma Segunda forma de clculo relacional chamada clculo relacional de domnio. Essa forma usa variveis de domnio que tomam valores do domnio de um 29

atributo, em vez de valores da tupla inteira. O clculo relacional de domnio, entretanto, est intimamente relacionado ao clculo da tupla relacional. Uma expresso no clculo relacional de domnio da forma: {< x1,x2,...,xn > | P(x1,x2,...,xn)} em que x1,x2,...,xn representam variveis de domnio e P representa uma frmula tal e qual como no clculo relacional de tuplas.

2.6. Operaes de lgebra Relacional Estendida


As operaes bsicas de lgebra relacional foram estendidas de diversas formas. Uma extenso simples permitir operaes aritmticas como parte da projeo. Uma extenso importante so as operaes agregadas, como as que computam a soma de elementos de um conjunto ou sua mdia. Outra importante extenso so as operaes de juno externa (outer-join), as quais permitem expresses em lgebra relacional para o tratamento de valores nulos, como modelo de informaes omitidas.

2.7. Modificaes no Banco de Dados


Podemos consultar, adicionar, remover e alterar informaes do Banco de Dados, at esse momento vimos somente a consulta. Expressamos as modificaes no Banco de Dados usando as operaes de designao.

2.7.1. Excluso A solicitao de uma excluso muitas vezes expressa do mesmo modo que uma consulta. Entretanto, em vez de mostrar as tuplas ao usurio, removemos as tuplas selecionadas do Banco de Dados. Podemos excluir somente tuplas inteiras, no podemos eliminar valores de um atributo em particular. Na lgebra relacional, a excluso expressa por: rr E em que r uma relao e E, uma consulta lgebra relacional.

30

2.7.2. Insero Para inserir dados em uma relao, podemos especificar uma tupla para insero ou escrever uma consulta que resulte em um conjunto de tuplas a inserir. Obviamente, os valores dos atributos das tuplas a inserir devem ser membros do domnio dos atributos. Uma insero expressa por rr E em que r uma relao e E, uma expresso em lgebra relacional.

2.7.3. Atualizao Em certas situaes, podemos desejar mudar o valor de uma tupla sem mudar todos os seus valores. Podemos usar um operador de projeo generalizada para essa tarefa, aqui no entraremos em detalhes, mais informaes sobre projeo generalizada pode ser pesquisadas em livros que tratam de lgebra Relacional Estendida.

2.8. Vises
At agora usamos operadores no nvel lgico. Isto , assumimos que a coleo de relaes dadas sejam, na verdade, relaes armazenadas no Banco de Dados. Muitas vezes porm, por questo de segurana, necessitamos criar vises e deixar que o usurio s trabalhe com estas vises. Para se definir uma viso usamos o comando create view. Para definir uma viso, precisamos dar um nome a ela e definir a consulta que criar essa viso. A forma do comando create view : create view v as <expresso de consulta> onde v o nome da viso, <expresso de consulta> a expressa que criar a viso. Uma vez definida a viso, podemos usar o nome da viso para nos referirmos relao virtual gerada por essa viso. Embora vises sejam ferramentas teis para consultas, criam problemas significativos se atualizaes, inseres ou excluses so expressas sobre elas. A dificuldade que uma modificao no Banco de Dados, expressa em termos de viso,

31

dever se transformar em uma modificao nas relaes reais do modelo lgico do Banco de Dados. Um ponto a destacar, que a partir de vises podemos criar outra vises.

32

Lio 03 Arquiteturas de SBD


Saber poder! Bacon

3. Objetivo
Nesta lio, o aluno ter uma descrio de algumas Arquiteturas de Banco de Dados, alm claro, de receber noes do que Arquitetura de Banco de Dados e o que a influenciam. Esta lio essencial para podermos compreender melhor as lies 04 e 05.

3.1. Arquiteturas
A arquitetura de um Sistema de Banco de Dados fortemente influenciada pelo sistema bsico computacional sobre o qual o sistema de dados executado. Aspectos da arquitetura de computadores como rede, paralelismo e distribuio tm influncia na arquitetura do Banco de Dados. Rede de computadores permite que algumas tarefas sejam executadas no servidor do sistema e outras sejam executadas no cliente. Essa diviso de trabalho tem levado ao desenvolvimento de sistemas de dados cliente-servidor. Processamento paralelo em um sistema de computadores permite que atividades do Sistema de Banco de Dados sejam realizadas com mais rapidez, reduzindo o tempo de resposta das transaes e, assim, aumentando o nmero de transaes processadas por segundo. Consultas podem ser processadas de forma a explorar o paralelismo oferecido pelo sistema operacional. A necessidade de processamento paralelo de 33

consultas tem levado ao desenvolvimento de sistemas de banco de dados paralelos. A distribuio de dados pelos ns da rede ou pelos diversos departamentos de uma organizao permitem que esses dados residam onde so gerados ou mais utilizados, mas, ainda assim, estejam acessveis para outros ns de outros departamentos. Dispor de diversas cpias de um Banco de Dados em diferentes ns tambm permite a organizaes de grande porte manter operaes em seus Bancos de Dados mesmo quando um n afetado por um desastre natural, como inundaes, incndios ou terremotos. Sistemas de Banco de Dados distribudos tm se desenvolvido para tratar dados distribudos geogrfica ou administrativamente por diversos sistemas de Banco de Dados. Estudaremos a arquitetura dos sistemas de banco de dados, comeando com os sistemas centralizados tradicionais e passando por sistemas de Banco de Dados cliente-servidor (mais detalhes na lio 04), paralelos e distribudos (mais detalhes na lio 05).

3.2. Sistemas Centralizados


Sistemas de banco de dados centralizados so aqueles executados sobre um nico sistema computacional que no interagem com outros sistemas. Tais sistemas podem ter a envergadura de um sistema de Banco de Dados de um s usurio executado em um computador pessoal at sistemas de alto desempenho em sistemas de grande porte. Um sistema computacional genrico moderno consiste em uma ou poucas CPUs e dispositivos de controle que so conectados por meio de um bus comum que proporciona acesso memria compartilhada. As CPUs tm memrias cache locais que armazenam cpias de partes da memria para acesso rpido aos dados. Cada dispositivo de controle atende a um tipo especfico de dispositivo. A CPU e os dispositivos de controle podem trabalhar concorrentemente, competindo pelo acesso memria. A memria cache parcialmente reduz a conteno de acesso memria, uma vez que reduz o nmero de tentativas de acesso da CPU memria compartilhada. 34

3.3. Sistemas Cliente/Servidor


As aplicaes baseadas no acesso a banco de dados podem ser implementadas de duas maneiras. Na primeira, utilizamos um sistema gerenciador de bancos de dados (SGBD) executando no cliente, que usar um servidor de arquivos para armazenar os arquivos do banco de dados, observe:

Essa soluo alm de tornar muito difcil a manuteno da integridade da base de dados, acessada por vrios clientes, ainda pode degradar o desempenho da rede. Em contrapartida aos problemas da primeira forma de acesso a banco de dados, poderamos pensar em uma soluo, onde parte das funes do SGBD fosse executada no servidor, que agora assumiria no apenas as funes de armazenamento de um servidor de arquivos, mas tambm funes de processamento de consultas, sendo por isso denominado servidor de bancos de dados. A utilizao de servidores de bancos de dados permite a centralizao de funes como controle de concorrncia e manuteno de consistncia dos bancos de dados, viabilizadas pelo processamento orientado a transaes implementado nesses servidores. Utilizando um servidor de Banco de Dados a um grande aumento do desempenho das aplicaes da rede, s para termos uma pequena noo, imagine uma Base de Dados com 1000 cadastros, e o usurio (cliente) quer uma consulta de todos os cadastros que possuem cidade igual a Tubaro. Se utilizarmos o servidor de arquivo, teremos que transferir todos os 1000 cadastros pela rede. J se utilizarmos o servidor de

35

Banco de Dados, ns s mandamos (do cliente para o servidor) um pedido em SQL, o servidor faz a filtragem e manda apenas para o cliente os cadastros exigidos.

Dois aspectos explicam o aumento do desempenho da aplicao quando utilizado um servidor de banco de dados. O primeiro deles a utilizao da rede, que no segundo caso s transporta registros que efetivamente iro compor o relatrio. Nesse caso, o ganho no desempenho no se restringe aplicao em questo, mas estende-se a todas as aplicaes que estejam utilizando a rede para intercambiar dados. O Segundo aspecto a ser observado, a possibilidade de concentrar os investimentos no hardware do servidor (processador, memria cache, etc.), implicando em uma velocidade de processamento maior do que no caso onde a seleo dos registros realizada no cliente, usualmente uma mquina de menor capacidade de processamento que o servidor. O custo extra do software e hardware do servidor pode ser facilmente justificado pelo seu compartilhamento.

3.4. Sistemas Paralelos


Sistemas paralelos imprimem velocidade ao processamento e I/O por meio do uso em paralelo de diversas CPUs e discos. Equipamentos paralelos esto se tornando bastante comuns. No processamento paralelo, muitas operaes so realizadas simultaneamente, ao contrrio do processamento serial. Um equipamento paralelo de granulao-grossa consiste em poucos e poderosos processadores; um paralelismo intensivo ou de granulao-fina usa milhares de pequenos processadores 36

3.5. Sistemas Distribudos


Em um Sistema de Banco de Dados Distribudo, o banco de dados armazenado em diversos computadores. Os computadores de um Sistema de Banco de Dados distribudo comunicam-se com outros por intermdio de vrios meios de comunicao. Eles compartilham memria principal ou discos. Os computadores em um Sistema Distribudo podem variar, quanto ao tamanho e funes, desde estaes de trabalhos at sistemas de grande porte.

37

Lio 04 Banco de Dados Cliente/Servidor


A razo Deus, e Deus racional Malebranche

4. Objetivo
O objetivo desta lio bem simples: entender o Banco de Dados Cliente/Servidor.

4.1. Sistema Cliente/Servidor


Como os computadores pessoais tm se tornado mais rpidos, mais poderosos e baratos, h uma tendncia do seu uso nos sistemas centralizados. Terminais conectados a sistemas centralizados esto sendo substitudos por computadores pessoais. Simultaneamente, interfaces com o usurio usadas funcionalmente para manuseio direto com sistemas centralizados esto sendo adequadas ao trato com computadores pessoais. Como resultado, sistemas centralizados atualmente agem como sistemas servidores que atendem a solicitaes de sistemas clientes. A estrutura geral:

As funcionalidades de um banco de dados cliente/servidor podem ser superficialmente divididas em duas categorias:

38

back-end : gerencia as estruturas de acesso, desenvolvimento e otimizao de consultas, controle de concorrncia e recuperao. front-end : consiste em ferramentas como formulrios, gerador de relatrios e recursos de interface grfica.

A interface entre o front-end e o back-end feita por meio da SQL ou de um programa aplicativo.

Sistemas servidores podem ser caracterizados, de modo geral, como servidores de transaes e servidores de dados. Sistemas servidores de transaes, tambm chamados sistemas servidores de consulta (query-server), proporcionam uma interface por meio da qual os clientes podem enviar pedidos para determinada ao e, em reposta, eles executam a ao e mandam de volta os resultados ao cliente. Usurios podem especificar pedidos por SQL ou por meio de um programa de aplicao usando um mecanismo de chamada de procedimento remota (remote-procedure-call). Sistemas servidores de dados, permitem que os servidores interajam com clientes que fazem solicitaes de leitura e atualizao de dados em unidades como arquivos ou pginas. Por exemplo, servidores de arquivos proporcionam uma interface sistema-arquivo na qual os clientes podem criar, atualizar, ler e remover arquivos. Servidores de dados para sistemas de banco de dados oferecem muito mais recursos: do suporte a unidade de disco como pginas, tuplas ou objetos menores que um arquivo. Proporcionam meios para indexao de dados e transaes, tal que os dados nunca se tornem inconsistentes se um equipamento cliente ou processo falhar.

39

4.1.1. Servidor de Transaes Em sistemas centralizados, o front-end e o back-end so ambos executados dentro de um nico sistema. Porm, a arquitetura de servidores de transaes segue a diviso funcional entre front-end e back-end. Normalmente, o front-end fica em computadores pessoais, os quais fazem pedidos ao servidor (back-end), onde est localizado os dados; o back-end retorna a resposta e de responsabilidade do front-end exibir estas respostas. Inicialmente, precisvamos que o back-end e o front-end fossem do mesmo fabricantes, pois no tinha um padro. Hoje, utilizamos o ODBC (open database connectivity), que so programas de aplicao de interface que permite ao cliente criar uma consulta SQL e enviar ao servidor, que retornar uma resposta. Qualquer cliente que utilize uma interface ODBC, pode se conectar a um servidor que de suporte a ODBC. Com a difuso dos padres foram criados diversos aplicativos independentes, tais como o Gupta SQL e PowerBuilder que so ferramentas de frontend independentes das back-ends; ainda foram criados aplicativos front-end especficos, tais como, planilhas. Outra forma de fazer um pedido enviando uma chamada de procedimento transacional remota (transactional remote procedure call), esta chamada encapsulada enviada ao servidor tratada como uma chamada qualquer, assim se ocorrer alguma falha o servidor reverte toda a chamada. As vantagens dos bancos de dados cliente/servidor so a maior funcionalidade e o menor custo, maior flexibilidade na disseminao, expanso e alocao dos recursos, melhores interfaces com os usurios e manuteno mais fcil.

4.1.2. Servidores de Dados Os Servidores de Dados esto em redes de alta velocidade, em que os computadores clientes e servidor tem mesmo potencial. Em tal ambiente, h grande trfego do servidor para o cliente e do cliente para o servidor. Note que essa arquitetura exige ampla funcionalidade back-end nos clientes. Esta arquitetura esta ganhando espao nos sistemas de banco de dados orientados a objetos. 40

O interesse neste tipo de arquitetura vantajosa quando a transferncia alta em ralao ao consumo de memria principal.

41

Lio 05 Banco de Dados Distribudos


O poeta o criador da nao em sua volta. Herder

5. Objetivo
Como na lio anterior, o objetivo desta lio bem simples: entender o Banco de Dados Distribudos.

5.1. Distribudos
Como j falamos, em um Sistema de Banco de Dados Distribudo, o banco de dados armazenado em diversos computadores. Os computadores de um Sistema de Banco de Dados distribudo comunicam-se com outros por intermdio de vrios meios de comunicao. Eles compartilham memria principal ou discos. Os computadores em um Sistema Distribudo podem variar, quanto ao tamanho e funes, desde estaes de trabalhos at sistemas de grande porte. Os sites ou ns, como so chamados os computadores, so fracamente acoplados. Alm disso, os sistemas de banco de banco de dados em cada site podem possuir um alto grau de independncia mtua. 5.1.1. Armazenamento Distribudo dos Dados Considere uma relao r armazenada em um banco de dados. H diversos enfoques para o armazenamento dessas relaes em um banco de dados distribudo: Replicao. O sistema mantm rplicas idnticas da relao. Cada rplica armazenadas em diferentes sites, resultando na replicao dos dados. A alternativa para replicao armazenar somente uma cpia da relao r.

42

Fragmentao. A relao particionada em vrios fragmentos. cada fragmento armazenado em um site diferente. Replicao e fragmentao. A relao particionada em vrios segmentos. O sistema mantm diversas rplicas de cada fragmento.

5.1.2. Transparncia de Rede essencial que o sistema esconda do usurio, detalhes relativos distribuio dos dados na rede, chamamos isto de transparncia de rede. Consideramos os objetivos da transparncia do ponto de vista da: Denominao dos dados; Replicao dos itens de dados; Fragmentao dos itens de dados; Locao das rplicas e fragmentos.

5.1.3. Processamento de Consultas Distribudas Nos sistemas distribudos devemos considerar diversos problemas em relao ao processamento de consultas: O custo de transmisso de dados na rede; O ganho potencial de desempenho diante do fato de que diversos sites podem processar partes da consulta em paralelo. O custo relativo de transferncia de dados na rede e de transferncia de dados entre discos varia significativamente, dependendo do tipo de rede e da velocidade dos discos.

5.1.4. Modelo de Transaes Distribudas H dois tipos de transaes que devemos considerar: locais: acessam somente a base de dados local; globais: acessam a base de dados localizados em outros computadores, precisando se preocupar com atualizaes nesta base.

5.1.5. Coordenador

43

Alguns algoritmos utilizados nos Sistemas Distribudos necessita de um coordenador. Se o coordenador falha devido a uma falha no site no qual est sendo executado, o sistema poder continuar a execuo somente reiniciando um novo coordenador em um outro site. Isso poder ser feito por meio da manuteno de um backup do coordenador, que estar pronto a assumir a responsabilidade do coordenador se este falhar. Ou o sistema poder escolher um novo coordenador depois que o original falhou. O algoritmo que determina onde a cpia do coordenador ser reiniciada chamada de algoritmo de eleio.

44

Lio 06 Modelagem de Dados


O nico lugar onde o sucesso vem antes do trabalho no dicionrio. Albert Einstein

6. Objetivo
O objetivo desta lio mostrar o que e como fazer a modelagem de dados. O conceito de Modelagem de Dados simples, Modelagem de Dados uma tcnica de representao da realidade que mostra o conjunto de dados de um determinado ambiente, atravs de suas entidades e dos relacionamentos existentes entre as mesmas. Nos Apndices A, B, C, D e E o aluno encontrar estudos de casos, para treinar.

6.1. O que Modelo de Dados?


Tambm conhecido como Diagrama E-R (Entidade -Relacionamento). uma forma de representao grfica do conhecimento que se tem sobre o ambiente (realidade) qualquer. Mostra uma viso esttica das informaes (entidades) de interesse e dos vnculos (relacionamentos) existentes entre elas. Define Realidade Descreve Modelo de Dados

O modelo de dados uma nova forma de comunicao entre o tcnico de processamento de dados e o usurio. Essa nova forma de comunicao assegurar que : O modelo de dados conter todos os dados necessrios para suportar os processos de responsabilidade do usurio. 45

O modelo de dados conter os dados para suportar processos que sero modificados ou introduzidos em um futuro prximo.

6.2. Componentes do Modelo de Dados


6.2.1. Entidade algo, real ou abstrato, percebido no ambiente e sobre o qual nos interessa armazenar dados. Exemplos: Um objeto real (concreto) Uma pessoa Um conceito abstrato Um evento Um relacionamento atravs de um retngulo. - Um equipamento, Material - Fornecedor Empregado - rgo, Cargo, Curso - Recebimento de Material - Casamento

Representao grfica: Uma entidade representada num modelo de dados

FORNECEDOR

FATURA

MATERIAL

6.2.2. Atributo um dos itens de dados que armazenamos sobre uma entidade. Caracteriza ou qualifica uma determinada propriedade de uma entidade. Exemplo: So atributos da entidade EMPREGADO: - MATRICULA - NOME - ENDERECO - CPF - DATA NASCIMENTO

46

6.2.3. Chave de Identificao A chave de identificao de uma entidade definida por um atributo, ou conjunto de atributos, cujos valores individualizam uma nica ocorrncia dessa entidade. Exemplo: A chave de identificao da entidade EMPREGADO o atributo MATRICULA.

6.2.4. Lista de Entidades uma relao de entidades com seus respectivos atributos, utilizada para documentar os trabalhos de anlise de dados. Formada pelo nome da entidade seguida da relao de atributos que compem entre parnteses, e seguindo a conveno abaixo: Cada atributo separado do outro pelo sinal de adio ( + ) ; O(s) atributo(s) que identificam a entidade devem estar no incio da relao e sublinhados; O(s) atributo(s) que ocorrem mais de uma vez (repetitivos) so identificados por uma incluso entre parnteses. Exemplo: FATURA ( NUMERO_FATURA +(NUMERO_ITEM_FATURA PRECO_TOTAL_FATURA). Obs.: Podem haver mltiplos nveis de repetio. + + CODIGO_FORNECEDOR + CODIGO_MATERIAL

QUANTIDADE_MATERIAL + PRECO_UNITARIO + PRECO_ITEM_FATURA) +

6.2.5. Domnio So os possveis valores que um atributo pode assumir. Exemplo: SEXO = [ M | F ] Sexo pode assumir dois valores M (Masculino) ou F (Feminino); Nome = literal, cadeia de caracteres Numero_Fatura = nmero inteiro

47

6.2.6. Relacionamento uma ligao (vnculo) existente entre duas entidades, que define como uma descreve a outra. Os relacionamentos so representados por uma linha ligando as entidades inter-relacionadas.

Duas entidades estaro relacionadas entre si, se possurem, atributos comuns.

6.2.7. Grau do Relacionamento So as restries identificadas na quantidade de ocorrncias de uma entidade, que pode estar relacionada a uma ocorrncia de outra entidade. Representao Grfica: smbolos especiais colocados nas extremidades da linha que representa um relacionamento.

Uma ocorrncia ou nenhuma Uma e somente uma ocorrncia Vrias, Uma ou nenhuma ocorrncia Pelo menos uma ocorrncia DEPENDENTE EMPREGADO

Exemplo:

AREA LOTACAO

EMPREGADO

NIVEL SALARIAL

GERENTE 48

Uma REA LOTAO tem obrigatoriamente pelo menos 1 empregado; Um EMPREGADO est vinculado obrigatoriamente a uma rea de LOTAO; Um EMPREGADO pode ter vrios, um ou nenhum DEPENDENTE; Um DEPENDENTE (se existir) est obrigatoriamente vinculado a um EMPREGADO. Um EMPREGADO pode ser GERENTE. Um GERENTE um EMPREGADO Um EMPREGADO tem obrigatoriamente um NVEL SALARIAL; Em um mesmo NVEL SALARIAL podemos ter vrios, um ou nenhum EMPREGADO.

6.3. Tipos de Entidade


6.3.1. Entidade Primria aquela cuja chave de identificao feita exclusivamente atravs de seus atributos. Exemplo: Exemplo:

FATURA(Nmero_Fatura + Cod_Fornecedor+...) FORNECEDOR(Cod_Fornecedor + Nome_Fornecedor + ...)

6.3.2. Entidade Dependente aquela cuja existncia depende de outra, ou seja, parte da chave de identificao da entidade est condicionada a da entidade da qual ela depende. Exemplo:

49

BANCO (Cod_Banco + Nome_Banco) AGNCIA(Cod_Banco + Cod_Agncia + Nome_Agncia) 6.3.3. Entidade Associativa aquela cuja chave de identificao obtida atravs da concatenao das chaves de identificao das entidades que ela associa. Exemplo:

DEPOSITO (Cod_Deposito + Localizao + ... ) MATERIAL (Cod_Material + Nome_Material + Unidade + ...) MATERIAL_DEPOSITO (Cod_Deposito + Cod_Material +Quantidade+...)

6.4. Tipos de Relacionamento


6.4.1. Relacionamento de Dependncia (D) aquele feito entre uma entidade e outra que dela seja dependente. Exemplo:

BANCO (Cod_Banco + Nome_Banco) AGNCIA(Cod_Banco + Cod_Agncia + Nome_Agncia)

6.4.2. Relacionamento Associativo (A) aquele que ocorre entre uma entidade associativa e a cada uma das entidades que participam da associao. Exemplo:

DEPOSITO (Cod_Deposito + Localizao + ... ) MATERIAL (Cod_Material + Nome_Material + Unidade + ...) 50

MATERIAL_DEPOSITO (Cod_Deposito + Cod_Material +Quantidade+...)

6.4.3. Categoria (C) Uma categoria uma ligao entre uma entidade e suas espcies (tipos), sendo estas mutuamente excludentes. Exemplo:

Uma

USINA

uma

USINA

ELTRICA,

ou

uma

USINA

TERMOELTRICA ou uma USINA NUCLEAR. Nota: Apesar de constiturem um nico tipo de coisa e apresentarem atributos comuns, podem existir atributos especficos para cada espcie. 6.4.4. Partio (P) um caso particular de categoria, na qual as espcies (tipos) de uma entidade, no so mutuamente excludentes. Exemplo:

Um EMPREGADO pode ser um Lder Projeto, e/ou um Gerente, e/ou um Concursado, ou nenhum deles. 51

6.4.5. Relacionamento Normal aquele que no pode ser enquadrado em um dos tipos abaixo: Associativo Dependncia Categoria Partio

6.4.6. Auto-Relacionamento aquele que ocorre entre uma mesma entidade.

6.4.7. Mltiplos Relacionamentos Casos em que ocorre mais de um relacionamento entre duas mesmas entidades.

6.4.8. Relacionamento Mutuamente Exclusivo Ocorre quando temos um relacionamento, por exemplo, entre as entidades A e C e tambm entre as entidades B e C, porm nunca ao mesmo tempo.

6.5. Tipos de Chave


6.5.1. Chaves Candidatas So as possveis chaves de identificao de uma nica ocorrncia de uma entidade. Exemplo: EMPREGADO (MATRICULA + NOME + CPF + ENDERECO +... ) So chaves candidatas os atributos: MATRICULA CPF 52

6.5.2. Chave Primria uma das chaves candidatas, selecionada por melhor convenincia (facilidade de utilizao, menor possibilidade de erros, etc. ...).Exemplo: EMPREGADO (MATRICULA + NOME + CPF + ENDERECO +... ) Chaves candidatas: MATRICULA CPF

Chave Primria escolhida -> MATRICULA

6.5.3. Chaves Estrangeira Conjunto de um ou mais atributos de uma entidade que so chave primria em outra entidade. Exemplo: EMPREGADO
DEPARTAMENTO

EMPREGADO ( MATRICULA + NOME + CPF + COD_DEPTO) DEPARTAMENTO (COD_DEPTO + NOME_DEPTO) Na entidade EMPREGADO o atributo COD_DEPTO chave estrangeira.

6.6. Consolidao de Modelos de Dados


6.7.1. O que Consolidao? Termo utilizado para representar os trabalhos de integrao de um modelo de dados a outro ou, integrao de modelos parciais a um modelo global de dados (empresa, assunto ou sistema). 6.6.2. Trabalhos Executados na Consolidao Os Trabalhos da consolidao basicamente so os seguintes: Adio de entidades ainda inexistentes no modelo global de dados, relacionando-as s demais; 53

Adio de novos atributos a entidades j existentes, desde que possuam chaves primrias idnticas;

Identificao das entidades j implementadas; Eliminao de relacionamentos redundantes.

54

Lio 07 Normalizao dos Dados


Deus , sobretudo, um artista(...) Pablo Picasso

7. Objetivo
Esta lio tem como objetivo mostrar o que e como fazer a Normalizao dos Dados, bem como, mostrar a importncia deste processo. Nos Apndices A, B, C, D e E o aluno encontrar estudos de casos, para treinar as tcnicas de Normalizao.

7.1. O que Normalizao


Normalizao o processo formal que consiste em substituir um conjunto de entidades por outro conjunto capaz de comportar melhor as mudanas futuras. Entidades normalizadas no possuem redundncias (duplicao de dados) acidental. Cada atributo est relacionado com sua prpria entidade e no se mistura com atributos relativos entidades diferentes. A normalizao corresponde na realidade formalizao de regras baseadas no fato que as entidades possuem anomalias de atualizao.

7.2. Anomalias de Atualizao


Dada a entidade: PEDIDO (numero_pedido + data_pedido + numero_cliente + endereco_cliente + ( numero_produto + preco_produto + total_produto) + total_pedido) Quais as anomalias de atualizao que acontecero se: Um produto for descontinuado por seu fornecedor? O nome do produto for mudado? O cliente mudar de endereo? 55 nome_cliente + nome_produto + qtde_pedida +

Os produtos ou as quantidades pedidas pelo cliente forem mudadas e o cliente esqueceu o nmero do pedido?

7.3. Dependncia Funcional


Dados os atributos A e B de uma entidade, diz-se que B funcionalmente dependente de A se e somente se, a cada valor de A est associado um nico valor de B. Em outras palavras, se conhecermos o valor de A ento podemos encontrar o valor de B associado a ele. DIAGRAMA DE DEPENDNCIA FUNCIONAL A B Nota - a seta parte de quem identifica. Exemplo: DEPARTAMENTO CODIGO_DEPARTAMENTO NOME_DEPARTAMENTO SIGLA_DEPARTAMENTO Nota - O exame das relaes existentes entre os atributos de uma entidade deve ser feito a partir do conhecimento (conceitual) que se tem sobre o mundo real (ambiente modelado).

7.4. Dependncia Funcional Composta ou Completa


Dado um atributo ou um conjunto de atributos B de uma entidade, sendo a chave primria composta por um conjunto de atributos A, diz-se que B completamente dependente funcional da chave primria, se e somente se, a cada valor da chave (e no a parte dele), est associado um valor para cada atributo do conjunto B. DIAGRAMA DE DEPENDNCIA FUNCIONAL A1 A2 B1 56

B2 B3 Exemplo: PRODUTO_FATURA NUMERO_PEDIDO CODIGO_PRODUTO QTDE_PEDIDA PRECO_TOTAL_PRODUTO

7.5. Dependncia Transitiva


Dados os atributos A, B e C de uma entidade, sendo A a chave primria, diz-se que B e C so dependentes transitivos se e somente se, forem funcionalmente dependente de A alm de existir uma dependncia funcional entre eles. DIAGRAMA DE DEPENDNCIA FUNCIONAL A B C Exemplo: DEPARTAMENTO CODIGO_DEPARTAMENTO NOME_DEPARTAMENTO SIGLA_DEPARTAMENTO MATRICULA_GERENTE NOME_GERENTE

7.6. Primeira Forma Normal (1FN)


Uma entidade est na 1FN se ela no contm grupos de atributos repetitivos (multivalorados). Exemplo: Entidade no normalizada: 57

PEDIDO (NUMERO_PEDIDO + DATA_PEDIDO + NUMERO_CLIENTE + NOME_CLIENTE + ENDERECO_CLIENTE + ( NUMERO_PRODUTO + NOME_PRODUTO + QTDE_PEDIDA + PRECO_PRODUTO + TOTAL_PRODUTO) + TOTAL_PEDIDO) - Remoo dos grupos de atributos repetitivos (1FN):
NUMERO_PEDIDO DATA_PEDIDO NUMERO_CLIENTE NOME_CLIENTE ENDERECO_CLIENTE NUMERO_PRODUTO NOME_PRODUTO QTDE_PEDIDA PRECO_PRODUTO TOTAL_PRODUTO TOTAL_PEDIDO

- Entidades da 1FN PEDIDO (NUMERO_PEDIDO + DATA_PEDIDO + NUMERO_CLIENTE + NOME_CLIENTE + ENDERENCO_CLIENTE + TOTAL_PEDIDO) PRODUTO_PEDIDO (NUMERO_PEDIDO + NUMERO_PRODUTO + NOME_PRODUTO + QTDE_PEDIDA + PRECO_PRODUTO + TOTAL_PRODUTO) - Modelo de Dados PEDIDO PRODUTO_PEDIDO

7.7. Segunda Forma Normal (2FN)


Uma entidade est na 2FN se ela est na 1FN e seus atributos so funcionalmente dependentes de sua chave (primria) completa. Exemplo: - Entidades da 1FN 58

PEDIDO (NUMERO_PEDIDO + DATA_PEDIDO + NUMERO_CLIENTE + NOME_CLIENTE + ENDERENCO_CLIENTE + TOTAL_PEDIDO) PRODUTO_PEDIDO(NUMERO_PEDIDO + NUMERO_PRODUTO + NOME_PRODUTO + QTDE_PEDIDA + PRECO_PRODUTO + TOTAL_PRODUTO) - Remoo dos atributos no funcionalmente dependentes de toda uma chave primria (2FN): PEDIDO
NUMERO_PEDIDO DATA_PEDIDO NUMERO_CLIENTE NOME_CLIENTE ENDERENCO_CLIENTE TOTAL_PEDIDO

PRODUTO_PEDIDO
NUMERO_PEDIDO NUMERO_PRODUTO NOME_PRODUTO QTDE_PEDIDA PRECO_PRODUTO TOTAL_PRODUTO

- Entidade na 2FN: PEDIDO (NUMERO_PEDIDO + DATA_PEDIDO + NUMERO_CLIENTE + NOME_CLIENTE + ENDERECO_CLIENTE + TOTAL_PEDIDO) PRODUTO_PEDIDO (NUMERO_PEDIDO + NUMERO_PRODUTO + QTDE_PEDIDA + TOTAL_PRODUTO) PRODUTO (NUMERO_PRODUTO + NOME_PRODUTO + PRECO_PRODUTO) - Modelo de Dados:

PEDIDO

PRODUTO_PEDIDO

PRODUTO

7.8. Terceira Forma Normal (3FN)


Uma entidade est na 3FN se ela est na 2FN e no possui dependncias transitivas. Uma entidade que est na 2FN pode ter um atributo que no uma chave mas que por si identifica outros atributos. Refere-se a isto como uma dependncia transitiva. Exemplo: - Entidade na 2FN: 59

PEDIDO (NUMERO_PEDIDO + DATA_PEDIDO + NUMERO_CLIENTE + NOME_CLIENTE + ENDERECO_CLIENTE + TOTAL_PEDIDO) PRODUTO_PEDIDO (NUMERO_PEDIDO + NUMERO_PRODUTO + QTDE_PEDIDA + TOTAL_PRODUTO) PRODUTO (NUMERO_PRODUTO + NOME_PRODUTO + PRECO_PRODUTO) - Remoo das dependncias transitivas PEDIDO
NUMERO_PEDIDO DATA_PEDIDO NUMERO_CLIENTE NOME_CLIENTE ENDERENCO_CLIENTE TOTAL_PEDIDO PRODUTO NUMERO_PRODUTO NOME_PRODUTO PRECO_PRODUTO

PRODUTO_PEDIDO
NUMERO_PEDIDO NUMERO_PRODUTO QTDE_PEDIDA TOTAL_PRODUTO

- Entidades na 3FN PEDIDO (NUMERO_PEDIDO + DATA_PEDIDO + TOTAL_PEDIDO) CLIENTE (NUMERO_CLIENTE + NOME_CLIENTE + ENDERECO_CLIENTE) PRODUTO_PEDIDO (NUMERO_PEDIDO + NUMERO_PRODUTO+ QTDE_PEDIDA + TOTAL_PRODUTO) PRODUTO (NUMERO_PRODUTO + NOME_PRODUTO + PRECO_PRODUTO) - Modelo de Dados.

PEDIDO

PRODUTO_PEDIDO

CLIENTE

PRODUTO 60

7.9. Simplificao do Processo de Normalizao


A partir do diagrama de dependncias funcionais podemos obter diretamente as entidades na terceira forma normal. Para isso, devemos especificar uma entidade para cada conjunto de setas que o diagrama mostrar. A chave primria ser formada pelos atributos dos quais partem as setas. Exemplo:
NUMERO_PEDIDO DATA_PEDIDO NUMERO_CLIENTE NOME_CLIENTE ENDERECO_CLIENTE NUMERO_PRODUTO NOME_PRODUTO QTDE_PEDIDA PRECO_PRODUTO TOTAL_PRODUTO TOTAL_PEDIDO

7.10. Regras Prticas


Se duas entidades possurem a mesma chave de identificao: - Elas so a mesma entidade; - Seus atributos se complementam; - As suas ocorrncias se complementam; Quando um atributo ou um conjunto de atributos identificadores de uma determinada entidade, for(em) tambm atributo(s) de uma outra entidade, deve haver um relacionamento do tipo 1:N entre elas. Atributos comuns a mais de uma entidade, devem ser, obrigatoriamente, chaves de identificao em uma das entidades; caso contrrio ser uma simples redundncia. Nenhum atributo componente de uma chave primria deve poder assumir um valor nulo. Decorre do fato de que todos os objetos que se quer representar devam ser distinguveis entre si. Um atributo que seja chave estrangeira s pode assumir: 61

- Valor nulo; - Valor para o qual exista uma ocorrncia da entidade da qual ela chave primria.

62

Lio 08 Novas Aplicaes


Os chineses inventaram - e tudo que bobo repete - que uma imagem vale mais que mil palavras. Diz isso sem palavra! Millr

8. Objetivo
Esta lio se preocupa em mostrar, ao aluno, o que h de novo na rea de Banco de Dados. Quais so os novos termos utilizados, tambm sero mostrados nesta seo. Os Bancos de Dados Relacionais so aplicados, em grande quantidade, na rea comercial, mas quando precisamos de algo fora desta rea? Estudaremos aqui aplicaes novas que vm se tornando cada vez mais importantes.

8.1. Sistemas de Suporte Deciso


Como a disponibilidade de dados on-line tem crescido, os administradores tm explorado essa fonte de informaes para melhorar a tomada de deciso, do tipo: quais itens devem permanecer em estoque e como atender melhor a seus usurios para incrementar as vendas. Podemos extrair a maioria dessas informaes de suporte deciso usando pesquisas simples em SQL. Recentemente, entretanto, esses administradores vm sentindo a necessidade de um suporte deciso mais amplo, baseado na anlise e extrao de dados (data mining), ou na descoberta de conhecimento, utilizando dados de diversas fontes.

8.2. Banco de Dados Espaciais

63

Banco de Dados Espaciais, tambm conhecido como Sistema de Informao Geogrfica (SIG), so aqueles que nos permitem a captura, modelagem, manipulao, recuperao, anlise e apresentao de dados referenciados geograficamente (ou dados georreferenciados). De forma geral, um software de SIG um sistema composto de quatro grandes componentes: componente de captura de dados, componente de armazenamento, componente de anlise e componente de apresentao dos dados.

8.3. Banco de Dados Multimdia


So Banco de Dados que manuseiam vdeos, imagens e sons. A principal particularidade desse tipo de banco de dados que os recursos de vdeo e udio exigem, para exibio dos dados, taxas de resgate de dados estveis e predefinidas, por isto, so chamados de dados de mdia-contnuos.

8.4. Bancos de Dados Mveis


Muito conhecido pelo termo em ingls mobile databases, os hardwares utilizados variam desde notebooks at celulares, sempre usando wireless. Os computadores devem operar mesmo desconectados da rede, ao contrrio dos sistemas de banco de dados distribudos. Alm disso, possuem limites de capacidade de memria e exigem tcnicas especiais para seu gerenciamento.

64

Apndice A Estudo de Caso 01


Descrio: Trata-se de um sistema para uma rede hospitalar que atualmente servida por um sistema manual e desintegrado (pouco provvel nos dias de hoje). Feito um levantamento inicial criou-se um modelo de dados preliminar e intuitivo, anexo 01, que serviu de base ao primeiro levantamento. Os dados provenientes deste primeiro levantamento foram organizados nos anexos 02 04, de acordo com o modelo de dados preliminar. Roteiro: Obter o modelo de dados normalizado at a terceira forma normal, fazendo: a) b) c) d) diagrama de dependncia funcionais; lista de entidades; consolidar lista de entidades; confeccionar o modelo lgico de dados E-R;

Orientaes: - Desenhar um diagrama de dependncias funcionais para cada anexo. Isto significa que o diagrama no dever ultrapassar os limites de um anexo. - Lembrar que um diagrama de dependncias funcionais identifica entidades. Destacar os conjuntos de setas que correspondem a cada uma. - Evitar sempre consideraes que possam corresponder a etapa de desenho fsico do banco de dados, tais como: eficincia de acesso e armazenamento, como farei para acessar os dados, etc. Anexo 01 Modelo de Dados Preliminar Rede Hospitalar

Anexo 02 Dados da Entidade Paciente Nome_Paciente 65

Endereco_Paciente Identidade_Paciente Sexo_Paciente Data_Nasc_Paciente Consultas_Marcadas Data_Consulta Hora_Consulta Endereo_Atendimento (local de atendimento ou consultrio mdico) CRM_Mdico Consultas_Realizadas Data_Consulta Hora_Consulta Endereo_Atendimento (local de atendimento ou consultrio mdico) CRM_Mdico Obs.: no h junta mdica. Anexo 03 Dados da Entidade Mdico Nome_Mdico CRM_Mdico Endereo_Mdico Cod_Espec (Cdigo de especializao) Nome_Espec Cod_Clinica Agenda_do_Mdico Data_Consulta Hora_Consulta Endereco_Atendimento Consultas_Realizadas Data_Consulta Hora_Consulta Endereco_Atendimento Identidade_Paciente Anexo 04 Dados da Entidade Clnica Cod_Clnica 66

Nome_Clnica Endereo_Clinica CGC_Clnica Locais_de_Atendimento (Grupo que registra os consultrios da clnica) Endereo_Atend Cod_Espec Obs.: Uma clnica, em determinado endereo de atendimento, atende somente uma especialidade; Em locais diferentes, uma clnica pode Ter mais de uma especialidade (ou a mesma); Um nico local pode, por meio de um convnio, ser compartilhado por duas ou mais clnicas.

67

Apndice B Estudo de Caso 02


Entrevista com a diretoria de produo: A diretoria de produo a responsvel pela atividade fim da empresa. Suas preocupaes se resumem em controlar a qualidade dos carros que saem da linha de produo e controlar a produtividade dos operrios. O controle de qualidade se faz por amostragem ao longo da linha de produo. Os carros so inspecionados e o resultado da inspeo registrado num relatrio (Anexo 01). Em mdia, a cada 1000 carros inspecionados, s 10 apresentam defeitos. O controle da produtividade dos operrios comea pela viglia sobre o carto de ponto (Anexo 02). Atrasos dirios superiores a 15 minutos ou mensais superiores a 6 horas so anotados em sua ficha cadastral, para efeito de anlise da validade de futuras promoes. Uma contagem de produo (nmero de peas produzidas em determinado perodo) feita por grupo de operrios (anexo 06). Cada grupo produz uma nica pea e todos operrios, a ele pertencentes, trabalham no mesmo turno. Cada carro sado da linha de produo registrado conforme Anexo 03. Entrevista com a diretoria comercial: Com base nos registros de vendas enviados pelas concessionrias (Anexo 04), a diretoria escalona o encaminhamento dos carros sados da linha de produo. Atravs do Registro de vendas e do registro de manuteno (Anexo 05), a fbrica acompanha a vida de cada carro durante o perodo de garantia (1 ano). Cada carro revisto at trs vezes durante o perodo da Garantia (Manuteno). Anexo 01 Relatrio de Inspeo Cod_Turno_Trabalho Data_Inspeo_Fab Num_Chassi Itens_Inspecionados Cod_Item_Inspecionado Cod_Status_Inspeo

Anexo 02 Irregularidade de Freqncia Ms_Irregularidade 68

Matrcula_Func Cod_Grupo_Trab Nome_Funcionario Cod_Turno_trabalho Irregularidades_Freqncia Data_Irregularidade Tipo_Irregularidade Minutos_de_Atraso Anexo 03 Registro de Produo Num_Chassi Data_Fabricao Modelo_Carro Ano_Carro Cor_Carro Anexo 04 Registro de Vendas das concessionrias Num_Chassi Modelo_Carro Ano_Carro Cor_Carro Cod_Concessionaria Nome_Prop_Carro Forma_Venda Data_Venda Anexo 05 Contagem da Produo Data_Contagem_Prod Contagem_Produo Cod_Grupo_Trab Cod_Pea Quant_Pea

Anexo 06 Registro de Manuteno Num_Chassi 69

Data_Manuteno Cod_Concessionaria Itens_Inspecionados_Manuteno Cod_Item_Inspecionado Cod_Status_Inspeo Peas_Substituio_Manuteno Cod_Pea Cod_Defeito_Pea Cod_Motivo_Defeito_Pea

70

Apndice C Estudo de Caso 03


Projetar uma base de dados - modelo relacional - nvel conceitual - para atender a rea de compras de uma empresa. Em levantamentos efetuados com o pessoal responsvel pelo setor de compras, foram identificados os seguintes informaes: E identificar as chaves de cada entidade. ORDEM DE COMPRA Cdigo-Ordem-Compra Data-Emisso Cdigo-Fornecedor Nome-Fornecedor Endereo-Fornecedor %Materiais da ordem de Compra codigo-item (n) descrio-item(n) valor-unitario-item (n) quantidade-comprada-item (n) valor-total-item (n) valor-total-compra Procure obter um modelo de dados sem redundncias, desenhando o diagrama ER.

71

Apndice D Estudo de Caso 04


Projetar uma base de dados - modelo relacional - nvel conceitual - para atender a rea de recursos humanos de uma empresa. Em levantamentos efetuados foram identificados os seguintes dados: DADOS FUNCIONRIOS Matricula - Funcionrio Nome - Funcionrio Endereo - Funcionrio Data - Funcionrio Cdigo - Cargo Valor - Salrio Numero - total - dependentes Cdigo - departamento %Habilidades (grupo multivalorado) Cdigo - Habilidade (n) Descrio - Habilidade (n) Data - Formao - Habilidade (n) % dependentes (grupo multivalorado) Cdigo - Dependente Nome - Dependente Data - nascimento - Dependente (n) DADOS DEPARTAMENTO Cdigo - Departamento Nome - Departamento Localizao - Departamento Procure definir um modelo de dados sem redundncias.

72

Apndice E Estudo de Caso 05


Projetar uma base de dados - modelo relacional - nvel conceitual - para atender necessidades de um candidato ao governo do estado. Foram identificados os seguintes informaes: CIDADES Cdigo-Cidade(CEP) Nome-Cidade Populao-Cidade Prefeito-Atual-Cidade Partido-Prefeito-Atual %Zonas (n) Numero-Zona (n) Local-Zona (n) Nmero-Eleitores-Zona (n) Cabo-Eleitoral-Principal(n)

VEREADORES Cdigo-Vereador Nome-Vereador Cdigo-Cidade Nome-Cidade Partido-Vereador Voto-Ultima-Eleio Mandato-Vereador(periodo)

DEPUTADOS 73

Cdigo-Deputado Nome- Deputado Cdigo-Cidade Nome-Cidade Voto-Ultima-Eleio Partido-Deputado Mandato-Deputado(periodo) Categoria-Deputado(Estadual-Federal) PRINCIPAIS SOLICITAES CIDADES Cdigo-Cidade Nome-Cidade %Solicitaes Nmero-Solicitao (n) Descrio-Solicitao(n) Data-Solicitao (n) Viabilidade-Atendimento(n) Orgos-Envolvidos(n) Proposta: Obter E-R normalizado at a 3a forma normal. Demonstrar as normalizaes efetuadas via esquema de dependncias funcionais Listar suposies que julgar necessrias sobre a semntica das dependncias envolvidas Explicar campos de relacionamentos Se julgar necessrio inclua novos campos e justifique a incluso.

74

Bibliografia
KORTH, Henry F. Sistema de bancos de dados / Henry F. Korth, Abraham Silberschatz; traduo Maurcio Heihachrio Galvan Abe; reviso tcnica Slvio Carmo Palmieri 2 ed. So Paulo: Makron Books, 1993. KORTH, Henry F. Sistema de bancos de dados / Henry F. Korth, Abraham Silberschatz, S. Sudarshan; traduo Marlia Guimares Pinheiro, Cludio Csar Canhette; reviso tcnica Luis Ricardo de Figueiredo 3 ed. So Paulo: Makron Books, 1999. VIESCAS, John. SQL: a linguagem padro de Banco de Dados relacionais: Quick Reference / John Viescos; Traduo de Dalton Conde de Alencar Rio de Janeiro: Campus, 1989. BYRNE, Jeffry. Microsoft Access 97-Rpido e Fcil para Iniciantes / Jeffry Byrne; Traduo de Elisa M Ferreira Rio de Janeiro: Campus, 1997. Escola de Informtica da SBC Sul. Livro Texto./editado por Raul Ceretta Nunes Santa Maria: Departamento de Eletrnica e Computao da UFSM, 2000. ERI 200, 2000.

75