Sei sulla pagina 1di 18

URI - Universidade Regional Integrada - Campus Frederico Westphalen

Curso de Informtica, Nvel III Disciplina: Banco de Dados I Prof. Valmor Jos Prevedello

Frederico Westphalen, Julho de 1998

Nota aos leitores Com o objetivo de auxiliar no aprendizado sobre informtica, mais especificamente sobre banco de dados, elaboramos esta apostila, que servir como uma das fontes introdutrias de pesquisa sobre o assunto. importante lembrar, que este material no abrange todos os tpicos da disciplina, devendo o aluno utilizar-se de bibliografia complementar.

BREVE REVISO (Para refletir) 1-Como o funcionamento bsico de qualquer computador? 2-O que um software? 3-O que um programa? 4-Qual a tarefa mais difcil de se controlar ou obter de um computador? 5-De que modo podemos amenizar os impactos da entrada do computador em nossas vidas? Alguns Conceitos Banco de Dados (BD): "Sistema de armazenamento de dados baseado em computador, isto , um sistema cujo objetivo global registrar e manter informao". Um Banco de Dados pode ser considerado como um depsito de um conjunto de arquivos controlados pr computador que oferece ao usurio vrios recursos, possibilitando entre outros, a adio, insero, recuperao, atualizao e eliminao de dados em arquivos, alm de possibilitar a renovao permanente dos arquivos existentes ou de novos arquivos. Tambm podemos dizer que um BD uma coleo de dados operacionais armazenados, usados pelos sistemas de aplicaes de uma empresa especfica,(Dados operacionais so diferentes dos dados de entrada e/ou sada). Componentes de um BD: 1-Dados: Repartidos em um ou mais banco de dados, Isto falando-se fisicamente. Ex: Rede de Computadores Compartilhados(Usados por diferentes usurios) ou Integrados(Unificao de diversos arquivos). 2-Hardware: Volumes de memria secundria, canais, unidades de controle. 3-Software: Entre o BD Fsico e os usurios do sistema encontra-se uma camada de software, chamada de "Sistema de Gerenciamento do Banco de Dados"(DBMS ou SGBD). Este Software isola os usurios dos detalhes do Hardware. 4-Usurios: quem efetivamente utiliza o BD. (programador de aplicaes, usurio final ou operador de terminal, e o DBA(Administrador de Banco de Dados) que responsvel pela coordenao da base de dados. Porque Banco de Dados? Porque temos um controle centralizado dos dados operacionais, sendo que o responsvel por este controle o DBA que deve possuir um alto grau de capacitao tcnica e capaz de interpretar necessidades de gerncias. Organizao de Arquivos: A Organizao de Arquivos, tm como objetivo gerar arquivos que tero de preservar as relaes lgicas existentes entre os dados e permitir que os mesmos sejam acessados e atualizados de uma forma rpida e eficiente. Atualizao do arquivo significa eliminao, alterao ou incluso de dados. Os arquivos ou tabelas, agrupam os dados em sub-unidades chamadas registros, que so um conjunto de dados coorelacionados que s tm significado se forem acessados conjuntamente. Os itens de dados ou campos pedem ser simples ou compostos. Alguns destes campos so chamados de chaves, porque o acesso determinado registro feito normalmente atravs destes campos. Se a chave identifica unicamente uma ocorrncia de registro no arquivo, ento temos 1 chave

primria. Se a chave identifica 1 conjunto de registros correlacionados ento temos uma chave secundria. A estrutura de um arquivo a viso que o programador tm dos dados estruturados. Na estrutura fsica de um arquivo, o enfoque a forma que os dados esto armazenados nos dispositivos de memria secundria. Para um acesso mais rpido a determinado registro, importante a utilizao de ndices(Tabelas pequenas talvez no seja necessrio ndice, porque ocupam espao e podem demorar mais do que o acesso sequencial).

Sistema de Arquivos MODELO DE BANCO DE DADOS RELACIONAL: -Os dados so tratados como tabelas bidimencionais ou relaes. Programa de1 Programa tabela tm um nmero fixo de colunas, chamados atributos, e um nmero dinmico de -Cada Aplicao 1 Descrio de Dados Arquivo 1 linhas que variam com1o tempo, chamados de tuplas. (Com semntica dos Dados) -Outras caractersticas: -O nmero de atributos de uma relao chamdo de grau. O nmero de tuplas Programa 2 Descrio dos dados chamado cardinalidade. Descrio Aplicao Programa de de Dados 22 Arquivo 2 -------------------------------------- chamado de domnio. -O conjunto de valores possveis para dado atributo Manipulao do Dados -O nome da nome dos atributos que aparecem nela Banco de Dados recebem o nome de (Com semntica dos Dados) relao e o-------------------------------------esquema da relao. Programa 3 Controle de Acesso -No existe uma ordem definida para as tuplas. Arquivo 3 Descrio de Dados 3 -------------------------------------EX: Esquema da relao FUNCIONRIO Codigo Nome Data_Nascimento (Com semntica dos Dados) 2 Joo da Silva 14/08/1966 7 Pedro de Alcantara 17/03/1982 4 Maria da Cruz 02/12/1988 3 Roberto Dias 25/02/1974 5 Jos de Souza 13/08/1974 Observao: -Atributos: codigo, nome, data_nascimento e departamento -Grau: 4 -Cardinalidade/Tuplas: 5
Programa de Aplicao 3 Etc.

Gerenciamento de Banco de Dados

Departamento 02 01 05 01 03

Definio formal do modlo relacional -O conjunto dos valores possveis para um dado atributo de uma relao chamado domnio deste atributo. Por exemplo o atributo DEPARTAMENTO da tabela FUNCIONARIO tm seus valores definidos no domnio da quantidade de departamentos da empresa, constitudo por valores inteiros de 01 a 99 (por exemplo). -Uma importante propriedade dde alguns atributos que eles so uma chave da relao (tabela). Chaves so subconjuntos de atributos de um esquema de tabelas em que os valores so nicos dentro da relao, e assim podem ser usados para identificar univocamente tuplas de uma relao ou tabela. Por exemplo, na relao FUNCIONARIO o atributo CODIGO uma chave apropriada para FUNCIONARIO (pois a identificao do cdigo dos funcionrios nica). Situaes exemplo: Tabela FUNCIONARIO CODIGO NOME 14 Pedro 23 Jos 02 Tereza 05 Luiz 01 Maria Tabela DEPARTAMENTO DTNASC 08/07/64 23/02/59 14/08/69 15/03/72 28/11/62 RG 4321320789 5400564606 9841036466 8410365468 9894600664 DEPARTAMENTO 02 03 01 02 01

CODDEP 01 03 02

DESCRICAO Pessoal Compras Vendas

* Selecione o nome, o codigo e o departamento de todos os funcionrios onde o departamento for igual a 02. NOME CODIGO DEPARTAMENTO Pedro 14 02 Luiz 05 02 * Selecione o nome, o codigo e a descrio do departamento de todos os funcionrios onde o departamento for igual a 02. NOME CODIGO DEPARTAMENTO Pedro 14 Vendas Luiz 05 Vendas * Apague todos os funcionrios onde o cdigo for igual a 01. Tabela FUNCIONARIO CODIGO NOME DTNASC RG 14 Pedro 08/07/64 4321320789 23 Jos 23/02/59 5400564606 02 Tereza 14/08/69 9841036466 05 Luiz 15/03/72 8410365468

DEPARTAMENTO 02 03 01 02

* Altere para 04 o nmero do departamento onde o nome do funcionrio for igual a "Pedro". Tabela FUNCIONARIO CODIGO NOME DTNASC RG DEPARTAMENTO 14 Pedro 08/07/1964 4321320789 04 23 Jos 23/02/1959 5400564606 03 02 Tereza 14/08/1969 9841036466 01 05 Luiz 15/03/1972 8410365468 02 01 Maria 28/11/1962 9894600664 01 Exerccios: Converta para texto estruturado, como nos exemplos acima, os seguintes resultados: RG 9841036466 9894600664 R: CODIGO 14 R: CODIGO 23 05 01 14 02 NOME Pedro DTNASC 08/07/1964 RG 4321320789 DEPARTAMENTO 04 DEPARTAMENTO 01 01

NOME Jos Luiz Maria Pedro Tereza

DTNASC 23/02/1959 15/03/1972 28/11/1962 08/07/1964 14/08/1969

RG 5400564606 8410365468 9894600664 4321320789 9841036466

DEPARTAMENTO 03 02 01 04 01

R:

Vantagens/Desvantagens em usar um SGBD


Vantagens: Uma das principais justificativas para se usar um Banco de Dados, a centralizao dos dados operacionais ou dos arquivos. A seguir descrevemos algumas das vantagens que resultam em usarmos um controle centralizado: A redundncia de dados pode ser reduzida, no eliminada. As vezes existem algumas razes para se manter cpias mltiplas do mesmo dado, por isso a redundncia deve ser cuidadosamente controlada. A inconsistncia pode ser reduzida(at certo ponto). Digamos que um mesmo cliente seja cadastrado duas vezes no mesmo banco de dados mas com codificao diferente, ento dizemos que a duplicidade de informao, acarretando redundncia e inconsistncia. Dados podem ser compartilhados(em aplicaes existentes ou na criao de novas aplicaes). Padres podem ser reforados. A padronizao dos formatos dos dados facilitam o intercmbio de dados ou migrao entre sistemas. Podem ser aplicadas restries de segurana. Um mesmo nvel de segurana, pode ser aplicado uma quantidade maior de dados/arquivos. A integridade dos dados pode ser mantida. Isto garante uma maior preciso dos dados. Necessidades conflitantes podem ser balanceadas.(rpido acesso s aplicaes mais importantes X desempenho pior para algumas outras aplicaes). A utilizao do SQL como linguagem, refora o conceito de padronizao. Desvantagens: Operaes bem sucedidas so cruciais(a empresa pode ser muito vulnervel a falhas). O sistema pode ser complexo e tal complexidade deve ser dissimulada ao usurio. A integridade e segurana dos dados podem ser comprometidas, se no forem empregados bons controles.

Nveis de abstrao para um Banco de Dados


*Nvel Interno: o mais prximo do armazenamento fsico. *Nvel Externo: o mais prximo dos usurios. *Nvel Conceitual: o nvel de simulao entre os nveis anteriores. Define a Viso da comunidade. -Muitas vises externas(representao mais ou Externo, abstrata cada usurio poro do BD). Nvel menos Viso de de alguma -Uma nica viso conceitual(representao abstrata do BD na sua totalidade). -Uma nica viso interna(representando o total do BD como ele est realmente armazenado).
Nvel Conceitual

Nvel Interno, Viso de armazenamento

Estruturas de Armazenamento: -O que o SGBD ou DBMS sabe: a-Que arquivos existem; b-Para cada arquivo qual a estrutura do registro; c-Os campos pelos quais feita a sequnciao(se existe); d-Os campos que podem ser usados como armazenamento de pesquisa para acesso direto. -O que o SGBD ou DBMS no sabe: a-Nada sobre os registros fsicos; b-Como os campos esto associados; c-Como foi feito o sequenciamento; d-Como executado o acesso direto. -Quando uma nova ocorrncia do registro armazenado criada e colocada dentro do BD, o mtodo de acesso responsvel por designar a ele um nico endereo de registro armazenado(SRA) (este valor distingue esta ocorrncia de todas as outras). -O SRA informado pelo mtodo de acesso ao DBMS quando da criao e pode ser usado pelo DBMS para acesso direto. Representaes Possveis para Dados de Teste Coleo simples de dados de exemplo e vrias formas de armazenamento(ao nnel de interface do registro armazenado). Fornecedor F# F1 F2 F2 F4 F5 FNOME Pedro Jos Andr Paulo Lo STATUS 20 10 30 20 30 CIDADE So Paulo Rio Rio So Paulo Curitiba

-H informaes sobre 5 fornecedores. -Cada fornecedor possui um nico nmero(F#) -Cada arquivo est sequenciado pelo mtodo de acesso por sua chave primria (campo que identifica unicamente o registro armazenado).

-A representao mais simples: existem 5 registros armazenados (vantagem a simplicidade; e a desvantagem a quantidade de memria necessria. Ex: 10.000 fornecedores com 10 cidades diferentes. -A saida seria usar indicadores de localizao para substituir o nome da cidade. Fornecedor F# F1 F2 F2 F4 F5 FNOME STATUS
IND. DE LOCALIZAO CURITIBA

Pedro 20 . .S. PAULO Jos 10 . .RIO Andr 30 . . Paulo 20 . . Lo 30 . . -2 arquivos armazenados com indicadores de localizao do 1 para o 2 (estes indicadores de localizao so os SRAs). -nica vantagem: Economia de espao. -Desvantagem: Diversos acessos adicionais; Todas as propriedades de um fornecedor (um acesso a mais); Todos os fornecedores de uma cidade (diversos acessos); - o DBMS que mantm os ndices de localizao. -> Se for importante encontrar todos os fornecedores de uma cidade, o DBA pode escolher a representao: Cidade CIDADE CURITIBA S. PAULO RIO IND. LOCALIZ. . . . Fornecedor F# F1 F2 F3 F4 F5 FNOME PEDRO JOS ANDR PAULO LO STATUS 10 30 20 30

-O arquivo de cidade serve como um ndice para o arquivo de fornecedor (o arquivo fornecedor est indexado pelo arquivo de cidade). -Objetivo do ndice: Prover um caminho de acesso ao arquivo que ele est indexando ( a maneira de alcanar os registros no arquivo indexado). -Um arquivo pode ter vrios caminhos de acesso associados. -A vantagem da indexao a rapidez na recuperao da informao. -A desvantagem que a indexao pode tornar mais lenta a atualizao. Ex: O Fornecedor F2 se muda do Rio para So Paulo. -O arquivo cidade da ltima representao, um ndice controlado pelo DBMS. um ndice secundrio. Poderamos usar uma representao de dados que combinasse as 2 anteriores com suas vantagens (uso de ndices secundrios). As desvantagens seria a atualizao que necessitaria um pouco mais de memria e a cada ocorrncia de registro armazenado no ndice, tm que conter um nmero imprevisvel de ndice de localizao. Funes de um Administrador de Banco de Dados (DBA/ABD) Decidir qual o contedo de informaes do BD. -Identificar as entidades que interessam empresa e a informao a ser registrada sobre estas entidades.

-Escrever o Esquema Conceitual. Decidir qual a estrutura de armazenamento e a estratgia de acesso(como os dados sero representados->especificar esta representao). -Especficar mapeamentos associados entre a definio da estrutura de dados e o esquema conceitual. Ser o elo de ligao com os usurios: Para garantir a disponibilidade dos dados de que estes necessitam; Para preparar os esquemas externos; Para especificar mapeamentos entre esquemas externos e o esquema conceitual. Definir as verificaes de autorizao e os procedimentos de validao (extenses lgicas do esquema conceitual. Definir estratgia para Backup e recuperao. A empresa depende de forma crtica da operao bem sucedida desse sistema; Qualquer avaria do BD (erro humano, falha no hardware ou no S.O. de suporte) essencial a recuperao imediata, bem como, afetar o mnimo possvel o resto do sistema. O DBA tem que implementar estratgia de recuperao (Backup peridico, procedimentos para recarregar pores do BD). Monitorar o desempenho e responder a mudanas de necessidades (visando o melhor para a empresa). Qualquer mudana nos detalhes de armazenamento e acesso tm que ser seguidos por mudanas na definio do mapeamento do armazenamento, de tal forma que o esquema conceitual possa permanecer o mesmo. Para fazer o monitoramento o DBA far uso de programas utilitrios que lhe auxiliaro nas diversas tarefas: -Rotinas de carga(criar verso inicial do BD). -Rotinas de reorganizao (reutilizar espao ocupado por dados obsoletos). -Rotinas de controle de uso (anotar cada operao feita no BD com informaes sobre usurio que a realizou). -Rotinas de recuperao (para restaurar o BD a um estado anterior, depois de uma falha de hardware ou de programao). -Rotinas de anlise estatstica ( para ajudar na monitorao do desempenho). -Ferramenta importante para o BD : Dicionrio de Dados-> um BD que contm dados sobre os dados (descries de outros objetos no sistema ao invs de simplesmente dados em bruto).

Modelo Relacional - Linguagem SQL (Structured Query Language) O Modelo Relacional usa tabelas que usam partes de outras tabelas necessrias pra preenchlas, s ocupa espao quando inserir um registro. O Modelo Relacional visto pelo usurio como um conjunto de tabelas. Para que estes relacionamento existam, os SGBD's relacionais utilizam o ramo da matemtica que trata da algebra relacional (Veremos mais detalhadamente sobre o assunto na prxima disciplina de banco de dados). A linguagem SQL ou Linguagem de Pesquisa Estruturada, foi criada para ser a linguagem padro dos SGBD's relacionais. Seus comandos alm de poderosos, procuram trazer para o mais alto nvel a forma de interagir com o BD. Outra caractertica da SQL, que ela nos permite agir de forma interativa com a base dados, habilitando a utilizao dos comandos bsicos de CRIAO, INSERO, DELEO, ALTERAO e SELEO de objetos. Entende-se por objetos as tabelas, colunas, views, ndices, gatilhos e outros. -Abordagem Relacional: * BD teste ----> Fornecedores (S) Produtos (P) Embarque ou pedido (SP)

S# S1 S2 S3

FORNECEDOR (S) SNAME STATUS SCITY SMITH 20 LONDON JONES 10 PARIS BLAKE 30 PARIS EMBARQUE (SP) S# S1 S1 S1 S2 S2 S3

P# P1 P2 P3 P4

PRODUTO (P) PNAME COLOR WEIGHT NUT RED 12 BOLT GREEN 17 SCREW BLUE 17 SCREW RED 14

PCITY LONDON PARIS ROME LONDON

* Cada linha da tabela uma tupla (registros). P# QTD * A colunas so os atributos ou os campos de cada tupla. P1 300 * O domnio de P# de 0 a 9, porque P 200 seguido de um P2 nmero. P3 400 P1 300 P2 400 P2 200

Exemplo de seleo: Select SP where S#=S1 giving T1 Este comando seleciona no arquivo SP todos os S1 e armazena em T1. Comandos: Com o objetivo de introduzir alguns comandos e operadores relacionais do SQL, listamos a seguir alguns comandos com uma breve descrio. Create table: Cria tabelas fsicas. Create View: Cria tabelas virtuais. Create Index: Cria tabela de ndices. Ex: Create table S (S# char(5) not null, SNAME char(20), STATUS smallint, CITY char(15)); Drop table: Apaga tabelas. Drop view: Elimina tabela de views. Drop index: Elimina tabela de ndices. Select: Constri uma nova tabela usando um subconjunto horizontal de uma tabela existente, isto , todas as linhas que satisfaam a uma condio. update: Altera campos/registros. delete: Apaga registros. insert: Insere registros. grant: Permite o privilgio de acessibilidade a um usurio em relao a outro. JEx: grant select on table P to public Encontre PNAME das peas fornecidas por S1. SP P S# P# QTD P# PNAME PNAME S1 P1 300 + P1 NUT ===>> NUT S1 P2 200 P2 BOLT BOLT S1 P3 400 P3 SCREW SCREW Para cada pea fornecida encontre P# e os nomes de todas as cidades que fornecem a pea. SP S S# P# QTD S# ..... CITY P# CITY S1 P1 S1 ..... ..... P1 LONDON S1 P1 + S2 ..... ..... ===>> P2 LONDON P3 LONDON

P1 P2 Obs: No aparece P2 paris do S3, porque j est na tabela. Encontre a city para o fornecedor S1: SELECT S WHERE S#=S1 GIVING T1 S# SNAME S1 SMITH

PARIS PARIS

STATUS 20

SCITY LONDON

Exerccio: Um BD contm informaes sobre produtos manufaturados e seus componentes (matriaprima). Em certo momento os seguintes produtos esto representados no BD, juntamente com a matria-prima utilizada, como indicado abaixo: Produto porta janela estante cabides Componentes (Matria-prima) ferro, fechadura, parafuso ferro, parafuso, puxador ferro, parafuso ferro Fornecedor Gerdau, Cosipa, Ciemens Gerdau, Ciemens, Canal Gerdau, Ciemens Gerdau

Para cada um destes produtos o BD contm vrios detalhes tais como, preo, unidade, cdigo do cliente. Para cada componente, ele contm o fornecedor do mesmo e outras informaes. A) Crie as tabelas necessrias para representar estes dados. B) Esboce a estrutura relacional para estes dados. C) Monte os comandos bsicos em SQL para: 1) Encontrar o nome de todos os produtos que contm o componente "ferro". 2) Encontrar o nome de todos os Fornecedores que vendem o produto que possui o componente "puxador". VIEWS (padro SQL): *VIEWS so tabelas virtuais, isto , uma tabela que no existe por si , mas que parece ao usurio como se existisse. Na verdade uma View, apenas uma definio de uma ou mais tabelas. Ao contrrio das tabelas fsicas que esto realmente armazenadas. As operaes nas tabelas fsicas refletem nas vises. Quando executamos o comando para criar uma view, este comando no executa a criao fsica desta view, mas sim armazena sua definio no catlogo interno do SGBD. Vejamos abaixo um exemplo de manipulao de dados, utilizando views: CREATE VIEW FORNECEDORES AS SELECT S#,STATUS,SCITY FROM S WHERE STATUS>15; S S# S1 S2 S3 S4 S5 SNAME SMITH JONES BLAKE CLARK ADAMS STATUS 20 10 30 20 30 SCITY LONDON PARIS PARIS LONDON ATHENS
Na verdade, o que o SGBD faz, armazenar em fornecedores o comando select ao lado.

FORNECEDORES S# STATUS S1 20 S3 30 S4 20 S5 30

SCITY LONDON PARIS LONDON ATHENS

Exemplo de recuperao sobre a view FORNECEDORES SELECT * FROM FORNECEDORES

WHERE SCITY ~ = LONDON; S# S3 S5 STATUS 30 30 SCITY PARIS ATHENS

Tal SELECT se parece e se comporta como um SELECT normal numa tabela bsica convencional. O sistema (na realidade, o tradutor) trata da operao convertendo-a na operao equivalente da tabela bsica fundamental. Neste exemplo, a operao equivalente : SELECT S#,STATUS,SCITY FROM S WHERE SCITY ~ = LONDON AND STATUS > 15; Esta nova instruo pode ento ser traduzida (compilada) e executada da forma normal. A converso feita, pela fuso do SELECT emitido pelo usurio com o SELECT armazenado no catlogo quando foi definida a view. A partir do catlogo, o sistema sabe que tal FROM FORNECEDORES realmente significa FROM S; sabe tambm que qualquer seleo a partir do FORNECEDORES deve ser qualificada pela condio WHERE, onde STATUS>15; e sabe, ainda, que SELECT * de FORNECEDORES realmente significa SELECT S#,STATUS,SCITY de S. Isto uma equivalncia da execuo do SELECT na tabela real S. como se existisse realmente uma tabela bsica chamada FORNECEDORES e o SELECT original fosse executado na mesma. As operaes de atualizao so tratadas de forma similar. Por exemplo a operao abaixo: UPDATE FORNECEDORES SET STATUS = STATUS + 10 WHERE SCITY = PARIS; Ser convertida pelo tradutor em UPDATE S SET STATUS = STATUS + 10 WHERE SCITY = PARIS AND STATUS > 15; Para se definir uma view em SQL deve-se usar a seguinte sintaxe: CREATE VIEW view_name (column_name, column_name, ...) AS subquery; Para excluir uma view em SQL a sintaxe DROP VIEW view_name;
PROJETO LGICO DE BANCO DE DADOS-ENTIDADE x RELACIONAMENTO (E x R):

A idia chave do mtodo ExR acrescentar um estgio intermedirio ao projeto lgico de banco de dados. O projetista de banco de dados primeiro identifica as entidades e relacionamentos que so de interesse para a empresa usando a tcnica diagramtica Entidade -Relacionamento(ExR). Nesse estgio, o projetista deve examinar os dados do ponto de vista da empresa como um todo (no a viso de um programador de aplicao especfico). Portanto, vamos chamar a descrio da viso da empresa quanto aos dados de esquema da empresa. O esquema da empresa deve ser uma representao pura do mundo real e deve ser independente de consideraes sobre armazenamento e eficincia. O projetista de banco de dados primeiro projeta o esquema da empresa e ento o traduz a um esquema do usurio para seu sistema de banco de dados.

VANTAGENS DO MTODO ENTIDADE-RELACIONAMENTO(ExR) Os mtodos convencionais de projeto lgico de bancos de dados usualmente apresentam uma nica fase: mapeamento de informaes sobre objetos do mundo real diretamente em um esquema do usurio. O mtodo E-R para projeto lgico de bancos de dados consiste em duas fases principais: (1) Definio do esquema da empresa usando o diagrama de Entidade-Relacionamento; e (2) traduo do esquema da empresa em um esquema do usurio. As vantagens do mtodo E-R so: 1. A diviso da funcionalidade e trabalho em duas fases torna o processo de projeto de banco de dados mais simples e mais bem organizado. 2. O esquema da empresa mais fcil de ser projetado do que o esquema do usurio, uma vez que no precisa ser restrito pelas caractersticas do sistema de banco de dados e independente de consideraes sobre armazenamento e eficincia. 3. O esquema da empresa mais estvel do que o esquema do usurio. Se uma pessoa quiser mudar de um sistema de banco de dados para outro, provavelmente ter de alterar o esquema do usurio, mas no o esquema da empresa, uma vez que este independente dos sistemas de banco de dados usados. O que precisa ser feito remapeamento do esquema da empresa para um esquema do usurio compatvel com o novo sistema de banco de dados. De forma semelhante, se uma pessoa quiser mudar o esquema do usurio para otimizar um novo programa de aplicao, no necessrio alterar o esquema da empresa, mas apenas remape-lo para um novo esquema do usurio. 4. O esquema da empresa expresso pelo diagrama de entidade-relacionamento mais facilmente compreendido por pessoas no ligadas ao processamento eletrnico de dados. TIPOS DE RELACIONAMENTO

PROJGER.

PESSOA
1

PROJ

FUNC.

m
PROJFUNC.

Casamento

de vital importncia identificar as verdadeiras Entidades e Relacionamentos, para que o diagrama ExR cumpra sua funo, que , mapear as informaes de determinada empresa de forma clara ao usurio e aos desenvolvedores das aplicaes. Os nomes atribudos as Entidades e Relacionamentos, identificam seus papis dentro do B.D. Considere a seguinte situao: Um administrador de empresas, contrata um analista de sistemas, para informatizar sua empresa. A empresa CONCERTATUDO especializada em consertar equipamentos de informtica. Cada cliente pode trazer um ou mais equipamentos de uma s vez para consertar. O valor dos consertos, variam de acordo com o preo das peas e o tempo empreendido no conserto. Cada tcnico recebe comisso de acordo com o percentual de comisso que tm direito. Utilizando a tcnica do ExR para Banco de Dados, construa as estruturas (Entidades) e seus relacionamentos, bem como o Dicionrio de Dados para a informatizao da empresa CONCERTATUDO. Utilizando o SQL faa: -Selecione, todos os clientes que esto em dbito. -Liste todos os equipamentos que esto em concerto, que iro necessitar a pea Winchester. -Liste todos os clientes em ordem alfabtica. -Remova todos os servios j realizados e pagos a mais de um ano. -Quanto recebeu de comisso o tcnico Bastio no ms de agosto do ano passado. Mapeamentos das ocorrncias de registros armazenados UM UM (1-1): Quando apenas um registro de uma entidade se relaciona com apenas outro registro em outra entidade. EX: Pela religio Catlica, o casamento deve ocorrer apenas uma vez entre um homem e uma mulher. UM MUITOS (1-N): Quando um registro de uma entidade se relaciona com um ou mais registros de outra entidade. EX: Um pai pode mais de um filho. MUITOS MUITOS (M-N): Quando um ou mais registros de uma entidade se relaciona com um ou mais registros de outra entidade. Neste caso a letra M representa pelo menos 1. Tipos Especiais de Entidades e Relacionamentos Existncia-Dependente: A existncia de uma entidade pode depender da existncia de um outro tipo de entidade. Por exemplo, a existncia de entidades FILHOS no banco de dados depende da existncia dos funcionrios associados. possvel que o relacionamento existncia-dependente seja um mapeamento muitos-paramuitos. Por exemplo, se o pai deixa a companhia, as entidades FILHOS podem ainda existir se a me continuar sendo uma funcionria da companhia.

Dependncia de Identificador (ID): quando uma entidade no pode ser identificada por seus prprios atributos e deve ser identificada por seus relacionamentos com outras entidades. Por exemplo, rua s especifica dentro de uma cidade, uma cidade s especificada dentro de seu estado, e assim por diante.

PRINCIPAIS ETAPAS NO PROJETO LGICO DE BANCO DE DADOS: -Identificar tipos de entidades; -Identificar tipos de relacionamentos; -Desenhar um diagrama E-R com tipos de entidades e relacionamentos; -Identificar tipos de valor e atributos(fields); -Projetar formatos de registros. Exerccios: Considerando o sistema da empresa CONCERTATUDO, -1) Faa o lay-out do cadastro de clientes (tela) ,servios e peas. -2) Faa o lay-out do relatrio de equipamentos em concerto e clientes em dbito. -3) Faa um algoritmo em mais alto nvel do cadastro de servios. Arquitetura Client/Server Um sistema Client/Server, catacteriza-se da seguinte forma: -O cliente utiliza os recursos de sua mquina para rodar a aplicao, ou seja, o desempenho do sistema est muito relacionado com as caractersticas da mquina cliente. -As configuraes do software no cliente, geralmente valem somente para este cliente.

-Mudanas na configurao do software no server ou da mquina servidora, afetam diretamente os clientes. -Se um cliente parar ou falhar por qualquer motivo, o resto do sistema e/ou clientes continuam normalmente. -O que trafega na rede so os dados que esto no servidor e as requisies e respostas, solicitadas pelos clientes ou enviadas para eles. -O software do BD, geralmente est instalado no cliente. O software de aplicao, geralmente est instalado no servidor. Vantagens: -Diviso de trabalho mais eficiente -Melhor relao preo/desempenho em mquinas cliente -Habilidade para usar ferramentas familiares em mquinas cliente -Acesso de clientes a dados remotos(via meios padronizados) -Toda funcionalidade do SGBD provida para as workstations clientes -Em geral melhor relao preo/desempenho do sistema Desvantagens: -Formao de congestionamento no servidor -O servidor um ponto nico de falha (se falhar o Banco de dados fica inoperante) -O crescimento escalar do sistema difcil BD Hierrquico Um BD Hierrquico compe-se de um conjunto ordenado de rvores, isto , um conjunto ordenado de ocorrncias mltiplas de um tipo nico de arvore. O tipo rvore compe-se de um nico tipo de registro "raiz" junto com um conjunto ordenado de zero ou mais ( nvel inferior) tipos de sub-rvores dependentes. Um tipo de sub-rvore, por sua vez, tambm se compe de um nico tipo de registro. Todo tipo de rvore compe-se de um ordenamento hierrquico dos tipos de registro, e os tipos de registro compe-se de tipos de campo de forma usual. A representao dos relacionamentos, representada na razo de um-para-muitos. EX:

O tipo de rvore do BD proposto tm como tipo de registro-raiz e tem dois tipos de subrvores, enraizadas nos tipos de registros pretendido e oferecido, respectivamente. O tipo de subrvore enraizada em pretendido somente raiz, ao contrrio, o tipo sub-rvore enraizada em oferecido tem dois tipos de sub-rvores no nvel inferior, ambos somente raiz, enraizados, respectivamente nos tipos de registro professor e estudante. Note que novamente os tipos de sub-rvores so ordenadas. O tipo de registro curso do tipo raiz ou tambm chamado de pai e os tipos de registros pretendido e oferecido so do tipo dependente ou filhos. Todas as ocorrncias de um tipo filho que compartilham uma ocorrncia de pai comum so chamadas de gmeas. O modelo hierrquico inclui suporte "automtico" para certas formas de integridade referencial, devido a seguinte regra: Nenhum filho tem permisso de existir sem pai. ( A regra referese as ocorrncias, naturalmente, e no ao tipo). EX: Se um dado pai eliminado, o sistema eliminar

automaticamente toda a sub-rvore que enraizada no mesmo. Da mesma forma um filho no pode ser inserido antes da existncia do pai. Em termos de regra, podemos dizer que a estrutura de dados hierrquico executa automaticamente as seguintes regras: DELETE .... CASCADES UPDATE .... CASCADES As operaes podem ser a nvel de registros ou a nvel de conjuntos, porm, o tratamento a nvel de conjuntos foge da regra de BD hierrquico. O IMS "Information Management System", foi um dos primeiros BD Hierrquicos a se tornarem comercialmente disponveis. Construdo pela IBM, um dos melhores BD utilizados em computadores de grande porte. Portanto, no existe uma distino clara entre on nveis lgicos e fsicos do sistema. As operaes podem ser extremamente complexas, gerando inconsistncia e as vezes invalidando certas partes da aplicao( devido utilizao de operaes em cascata). SISTEMAS DISTRIBUDOS: Um sistema Distribudo, qualquer sistema que envolve mltiplas localidades conectadas em uma espcie de redes de comunicaes, nas quais o usurio (usurio final ou programador de aplicao) de qualquer localidade pode acessar os dados armazenados em outro local. Cada localidade por sua vez, pode ser considerada como um sistema de banco de dados em si: tem seu prprio banco de dados e sua prpria funo de DBA, seus prprios terminais e usurios, e seu prprio armazenamento local e o seu prprio CPU, rodando o prprio SGBD local. Como exemplo, citamos duas localidades (Frederico e Passo Fundo), ligados entre si por alguma forma de comunicao, ambos formam um BD distribudo Global. Vantagens: Transparncia de posio: Significa que os usurios no precisam saber em que localidade armazenada a pea de dados, mas devem ser capazes de proceder como se todo o BD estivesse armazenado na sua prpria localidade. Fragmentao de Dados: Podemos armazenar informaes pertinentes a determinado cliente em localidade diferentes. Estes partes de informaes seriam chamadas de fragmentos. Transparncia de Fragmentao: quando o usurio tm uma viso dos dados atravs da combinao dos fragmentos usando operaes de unio e juno. Os Sistemas Distribudos, so invariavelmente relacionais, devido as operaes de juno e unio. Transparncia de Repetio: A idia que um determinado registro seja representado ao nvel fsico por muitas cpias distintas do mesmo objeto armazenado, em muitas localidades distintas. Uma vantagem que as recuperaes podem ser direcionadas rplica mais prxima. A correspondente desvantagem certamente que as atualizaes devem ser direcionadas todas s rplicas. Idia de Centralizao: O Sistema Distribudo deve parecer ao usurio como se fosse um sistema centralizado. Autonomia Local: possvel um controle local de seus prprios dados. Capacidade e Crescimento Incremental: Caso necessrio a implantao de um novo sistema, este pode ser includo como uma nova localidade. Confiana e Disponibilidade: Em caso de quebra ou falha numa localidade, pode-se trabalhar parcialmente com as outras (melhor de existem as rplicas de informaes). Problemas no Sistema Distribudo: O ponto bsico, que as redes, pelo menos as redes de longa distncia, so vagarosas. Enquanto um disco transmite milhes de bytes por segundo, uma transmisso atinge apenas milhares de bytes por segundo. Portanto, o objetivo principal nos sistemas distribudos minimizar o nmero e o volume de mensagens. Este objetivo, por sua vez, levanta problemas em vrias reas:

Processamento de Consulta: A otimizao nas consultas crtica, j que as localidades so, geralmente, a longa distncia. As operaes relacionais so otimizveis, enquanto que as operaes um registro-a-cada-vez no o so. Propagao de atualizao: Alm do problema da comunicao a distncia, temos por exemplo, o problema de querermos atualizar localidades (cpias de dados) e uma ou mais destas localidades est fora do ar por algum motivo. Concorrncia: Novamente temos o problema da comunicao distncia, e alm disso, podemos chegar a um impasse global. Por exemplo, uma localidade tem que atualizar os dados de uma outra e esta outra depende destes dados para atualizar outra, e assim por diante. Recuperao: Neste caso podemos depender de alguma localidade para recuperar dados que iro juntar-se com dados de outra localidade, e uma destas localidades no pode ser consultada. Gerenciamento de Catlogo: J que o Catlogo armazena informaes como relaes, ndices, usurios, etc..., difcil saber em qual localidade ele deve ser armazenado. Recuperao e Concorrncia Para entendermos o que recuperao e concorrncia, antes devemos entender o que um processamento de transaes. Transao ma unidade de trabalho lgica, e para exemplificar, suponha que vamos modificar o nmero do fornecedor F1 da entidade FORNECEDOR para F3. Modificar o fornecedor F1 para F3 envolve duas atualizaes no BD, e o mesmo provavelmente no ser consistente entre estas duas atualizaes. Para se mais especfico, o BD conter temporariamente alguns registros referentes as entidades que armazenam informaes dos fornecedores, diferentes do registro na entidade FORNECEDOR. procedure altera() on error goto REFAZ endif change all compra where cocodfor=F1 let cocodfor=F3 change all nota where nocodfor=F1 let nocodfor=F3 exec commit goto FIM REFAZ: exec rollback FIM: return end procedure Esta transao, no necessariamente uma nica operao de BD, mas sim uma sequncia de diversas operaes, que transforma um estado consistente do BD em outro estado consistente, sem que a consistncia de todos os pontos intermedirios seja necessariamente preservada. Por isso fica claro, como no exemplo acima, que quando apenas uma das atualizaes acima for executada e a outra no, o BD se torna inconsistente (imagine que durante as atualizaes o sistema para por algum motivo). Ento, o ideal seria que tivssemos uma garantia que ambas as atualizaes seriam executadas. Um sistema que suporta o processamento de transao, garante que se a transao executar algumas atualizaes e ento ocorrer uma falha antes que esta alcance seu trmino normal, aquelas atualizaes no sero feitas. Consequentemente a atualizao executada na sua totalidade ou

cancelada. Desta maneira, uma sequncia de operaes que seja fundamentalmente no-atmica pode ser feita de modo que parea realmente atmica do ponto de vista do usurio final. As operaes COMMIT e ROLLBACK (em SQL) so as chaves que proporcionam esta atomicidade. A operao COMMIT sinaliza o final da transao bem sucedida e a operao ROLLBACK, ao contrrio, assinala um final de transao mal sucedida. Para que as operaes COMMIT e ROLLBACK sejam executadas, necessrio estabelecer o ponto de sincronizao. O ponto de sincronizao representa a ligao entre duas transaes consecutivas. Corresponde assim, ao final de uma transao e, conseqentemente, ao ponto onde o BD est (ou deveria estar) em estado consistente. Toda recuperao de dados deve ser feita da melhor maneira possvel, j que o BD no pode ser inconsistente. No haveria necessidade de recuperao de dados, se no existissem as falhas. Estas falhas dividem-se em duas categorias: -Falhas de sistema, que afetam todas as transaes que se encontram em desenvolvimento, mas que no danificam fisicamente o bd (falta de energia). -Falhas de meios, que danificam o BD, ou parte do mesmo, e afeta pelo menos, transaes que esto utilizando aquela parcela.( Defeito na cabea do disco). O controle de concorrncia de v assegurar que as transaes concorrentes no interfiram em outra operao, sem tal mecanismo podem surgir vrios problemas. Para evitar estes problemas utiliza-se um mecanismo chamado bloqueio. Existem trs maneiras nas quais uma transao, ainda que correta, pode produzir uma resposta errada, devido interferncia por parte de outra transao. a intercalao de operaes de duas transaes corretas que produz um mecanismo global incorreto. Os trs problemas so: -O problema da perda de atualizaes; -O problema da dependncia de uma transao no confirmada; -O problema da anlise inconsistente. J que o bloqueio garante a resoluo dos trs problemas acima, ele gera outro, o impasse. O impasse uma situao na qual duas ou mais transaes se encontram em estado de espera simultneo, cada um esperando pela outra para liberar um bloqueio antes que possa prosseguir. TRANSACTION - Bloqueia para atualizaes. ENDTRANSACTION - Aceita as atualizaces e libera os dados. QUITTRANSACTION - Desfaz as atualizaes e libera os dados.

Bibliografia:
1- Machado, Felipe Nery R. e Abreu, Mauricio - PROJETO DE BANCO DE DADOS - 2 edio 2 -Date, C. J. - INTRODUO A SISTEMAS DE BANCOS DE DADOS - 4 edio 3 -Yong, Chu Shao - BANCO DE DADOS 4 -Camargo, Murilo S. - BANCO DE DADOS (Distribudo), 03/2000. 5 -M.T. Ozsu and P. Valduriez, Principles of Distributed Database Systems. Prentice-Hall, 1999. 6 -Artigos diversos e WWW.

Potrebbero piacerti anche