Beruflich Dokumente
Kultur Dokumente
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.
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.
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.
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.
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.
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.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.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.
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.
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
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.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.
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)
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)
24
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)
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
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.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
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).
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.
37
4. Objetivo
O objetivo desta lio bem simples: entender o Banco de Dados Cliente/Servidor.
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
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
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.
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.
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
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.
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.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.2. Relacionamento Associativo (A) aquele que ocorre entre uma entidade associativa e a cada uma das entidades que participam da associao. Exemplo:
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.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.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
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.
Adio de novos atributos a entidades j existentes, desde que possuam chaves primrias idnticas;
54
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.
Os produtos ou as quantidades pedidas pelo cliente forem mudadas e o cliente esqueceu o nmero do pedido?
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
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
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
- Valor nulo; - Valor para o qual exista uma ocorrncia da entidade da qual ela chave primria.
62
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.
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.
64
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
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
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
70
71
72
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