Apostila Bd v-2.Odt_0

download Apostila Bd v-2.Odt_0

If you can't read please download the document

Transcript of Apostila Bd v-2.Odt_0

FIEP CIEP SESI SENAI IEL

SENAI - SERVIO NACIONAL DE APRENDIZAGEM INDUSTRIAL C.F.P. DE PONTA GROSSA

CURSO TCNICO EM INFORMTICA BANCO DE DADOS I

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

_______________________________________________________________________________________________________________

1. CURSO TCNICO EM INFORMTICA............................................................................1 2. BANCO DE DADOS I........................................................................................................1Vantagens dos SGDB............................................................................................................3Atributos....................................................................................................................................................11

ndice geral

Chaves.................................................................................................................................11Relaciomento.............................................................................................................................................12

Restries de Mapeamento..................................................................................................12Cardinalidade..............................................................................................................................................................................12 Tipos de Cardinalidade:..............................................................................................................................................................12 Dependncia Existencial.............................................................................................................................................................13 Entidades Fortes e Fracas..........................................................................................................................................................13

Diagrama Entidade-Relacionamento (DER)..............................................................................................14

3. O Modelo Relacional.....................................................................................................19Domnios, Tuplas, Atributos e Relaes....................................................................................................19 Esquema de comparao entre o DER de Nvel Conceitual e Fsico.......................................................19 Mapeamento para o Modelo Fsico (Modelo Entidade Relacionamento para o Modelo Relacional)........20 Dependncias Funcionais..........................................................................................................................22Dependente funcional parcial:.....................................................................................................................................................23 Dependncia Funcional Transitiva: .............................................................................................................................................23

Normalizao.............................................................................................................................................23

1a. Forma Normal:................................................................................................................24 2a. Forma Normal:................................................................................................................25 3a. Forma Normal:................................................................................................................26 Tabelas Dependentes..........................................................................................................27

4. A Linguagem SQL..........................................................................................................29Histrico - Introduo.................................................................................................................................29 Comandos DDL.........................................................................................................................................29

Create Database..................................................................................................................29 Create Table.........................................................................................................................30 Tipos de dados mais comuns (Padro ANSI)......................................................................31 Tipos de Dados Interbase....................................................................................................32 Alter Table............................................................................................................................34 Drop Table............................................................................................................................35 Create Index.........................................................................................................................35 Drop Index............................................................................................................................35Comandos DML ........................................................................................................................................36

Insert.....................................................................................................................................36 Update..................................................................................................................................36 Delete...................................................................................................................................37 Select....................................................................................................................................37

5. Exerccios.......................................................................................................................41 6. ANEXO A.........................................................................................................................46

Select Bsico..............................................................................................................................................................................37 Select utilizando Join (Juno)....................................................................................................................................................38

Diagrama Entidade Relacionamento.........................................................................................................46 Tabelas (Modelo Fsico)............................................................................................................................47 Exemplo de Valores das Tabelas..............................................................................................................50

7. ndice de Figuras...........................................................................................................55 8. ndice de Tabelas...........................................................................................................56 9. Bibliografia.....................................................................................................................57

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Introduo - 3_______________________________________________________________________________________________________________

Introduo e Conceitos GeraisConceitosUm banco de dados pode ser definido como um conjunto de dados devidamente relacionados. Por dados podemos compreender como fatos conhecidos que podem ser armazenados e que possuem um significado implcito. Porm, o significado do termo banco de dados mais restrito que simplesmente a definio dada acima. Um banco de dados possui as seguintes propriedades: um banco de dados uma coleo lgica coerente de dados com um significado inerente; uma disposio desordenada dos dados no pode ser referenciada como um banco de dados; um banco de dados projetado, construdo e populado com dados para um propsito especfico; um banco de dados possui um conjunto pr definido de usurios e aplicaes; um banco de dados representa algum aspecto do mundo real, o qual chamado de mini-mundo ; qualquer alterao efetuada no mini-mundo automaticamente refletida no banco de dados. Um banco de dados pode ser criado e mantido por um conjunto de aplicaes desenvolvidas especialmente para esta tarefa ou por um Sistema Gerenciador de Banco de Dados (SGBD). Um SGBD permite aos usurios criarem e manipularem bancos de dados de propsito geral. O conjunto formado por um banco de dados mais as aplicaes que manipulam o mesmo chamado de Sistema de Banco de Dados. Um SGBD uma coleo de programas que permitem ao usurio definir, construir e manipular Bases de Dados para as mais diversas finalidades

Banco de Dados X Processamento Tradicional de ArquivosAuto InformaoUma caracterstica importante da abordagem Banco de Dados que o SGBD mantm no somente os dados mas tambm a forma como os mesmos so armazenados, contendo uma descrio completa do banco de dados. Estas informaes so armazenadas no catlogo do SGBD, o qual contm informaes como a estrutura de cada arquivo, o tipo e o formato de armazenamento de cada tipo de dado, restries, etc. No processamento tradicional de arquivos, o programa que ir manipular os dados deve conter este tipo de informao, ficando limitado a manipular as informaes que o mesmo conhece. Utilizando a abordagem banco de dados, a aplicao pode manipular diversas bases de dados diferentes.

Vantagens dos SGDB

Consistncia e Eliminao da Redundncia de Dados - Evitam que os dados estejam duplicados em diversos arquivos diferentes, e cada arquivo correndo o risco de estar com as estruturas diferentes entre si, em decorrncia do uso de linguagens diferentes entre os sistemas que manipulam estes arquivos. Integridade - Mantm os valores dos dados satisfazendo as exigncias das regras de negcio que esto armazenadas no banco de dados. Por exemplo, considere que o balano de uma conta bancria no possa ser menor que R$ 25,00. Usando bancos de dados podemos colocar estas restries direto no banco de dados, no sendo necessrio alterar os sistemas sempre que uma nova restrio surgir.Ademir Mazer Jr - http://www.winponta.com.br

_______________________________________________________________________________________________________________

Apostila de Banco de Dados - Introduo - 4_______________________________________________________________________________________________________________

Controle de concorrncia - O banco de dados garante o controle ao acesso aos dados, quando vrios usurios esto tentando acessar os mesmos dados ao mesmo tempo. Por exemplo, dois usurios esto pagando saques de uma mesma conta bancria, ao mesmo tempo. Esta conta esta com saldo de R$ 400,00. O usurio A paga o valor de R$ 50,00, e o usurio B paga o valor de R$ 100,00. Se o controle no for correto, o saldo poder ficar igual a R$ 350,00 ou R$ 300,00, quando deveria ser de R$ 250,00. Controle de Segurana - Garantem o acesso ao banco de dados, com mecanismos de senhas, hierarquias e permisses de acesso e execuo, por usurio e grupos de usurios. Recuperao e Backup - Garantem que os dados sejam recuperados de forma adequada, se algo ocorre ao sistema de computadores ou de arquivos, a partir de backups (cpias de segurana) feitas pelo mesmo banco de dados, enquanto esto sendo utilizados.

UsuriosPara um grande banco de dados, existe um grande nmero de pessoas envolvidas, desde o projeto, uso at manuteno.

Administrador de Dados (DA)Desenvolve e administra centralizadamente estratgias, procedimentos, prticas e planos capazes de disponibilizar os dados corporativos necessrios, quando necessrios, com integridade, privacidade, documentao e compartilhamento. Participa dos levantamentos de dados, e regras de negcio da empresa. Elabora e/ou acompanha a confeco de modelos. Participa da compatibilizao do planejamento de sistemas com os modelos lgicos. Participa de pesquisa de softwares de apoio, relacionados a rea de AD, assim como SGBD.

Administrador de Banco de Dados (DBA)Em um ambiente de banco de dados, o recurso primrio o banco de dados por si s e o recurso secundrio o SGBD e os softwares relacionados. A administrao destes recursos cabe ao Administrador de Banco de Dados, o qual responsvel pela autorizao de acesso ao banco de dados e pela coordenao e monitorao de seu uso, bem como da criao das estruturas, restries e integridades, definidas no projeto.

Usurios FinaisExistem basicamente trs categorias de usurios finais que so os usurios finais do banco de dados, fazendo consultas, atualizaes e gerando documentos: usurios casuais: acessam o banco de dados casualmente, mas que podem necessitar de diferentes informaes a cada acesso; utilizam sofisticadas linguagens de consulta para especificar suas necessidades; usurios novatos ou paramtricos: utilizam pores pr-definidas do banco de dados, utilizando consultas preestabelecidas que j foram exaustivamente testadas (programas); usurios sofisticados: so usurios que esto familiarizados com o SGBD e realizam consultas complexas.

Analistas de Sistemas e Programadores de AplicaesOs analistas determinam os requisitos dos usurios finais e desenvolvem especificaes para transaes que atendam estes requisitos, e os programadores implementam estas especificaes como programas, testando, depurando, documentando e dando manuteno no mesmo. importante que, tanto analistas quanto programadores, estejam a par dos recursos oferecidos pelo SGBD.

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Introduo - 5_______________________________________________________________________________________________________________

Linguagens de Manipulao de DadosPara que possamos criar a estrutura de um banco de dados, e manipular seu contedo, necessrio que exista uma ou mais linguagens que trabalhem com estas situaes. Existem duas definies para estas linguagens:

DDL (Data Definition Language - Linguagem de Definio de Dados) - a linguagem que permite a definio e manipulao de toda a estrutura de um banco de dados (campos, tipos, arquivos, etc). Estas definies de dados devem ser armazenadas em algum lugar no banco de dados. Desta forma, estas definies so mantidas no DD (Data Dictionary - Dicionrio de Dados). O DD um arquivo que contm metadados; isto , dados acerca de dados. Este arquivo consultado antes de dados reais serem lidos ou modificados no sistema de banco de dados DML (Data Manipulation Language - Linguagem de Manipulao de Dados) - a linguagem que permite aos usurios do banco de dados manipularem os dados. Com esta linguagem possvel inserir, alterar e excluir os dados nas estruturas criadas. Existem dois tipos bsicos de DML:

Procedimental ou Procedural: requer do usurio a especificao de quais dados so desejados e como chegar at eles (EX: lgebra Relacional). No-Procedimental ou No-Procedural: requer do usurio a especificao de quais dados so desejados, sem especificar como chegar at eles (EX: Clculo Relacional)

Estrutura Geral de um SGDBComponentes funcionais:

Gerenciador de Arquivos: gerencia a alocao de espao e armazenamento em disco e estruturas de dados. Gerenciador do Banco de Dados: proporciona interface entre os dados de baixo nvel e os programas de aplicao e consultas. Processador de Consultas: traduz comandos de uma linguagem de consulta em instrues de baixo nvel para que o GBD entenda. Tenta otimizar os pedidos de consulta dos usurios. Pr-Compilador DML: compila comandos DML em rotinas da linguagem do host. Precisa interagir com o processador de consultas para gerar cdigo apropriado. Compilador DDL: converte comandos DDL em um conjunto de tabelas contendo metadados, que so armazenados no DD.

Estruturas de Dados

Arquivo de Dados: armazenam os dados propriamente ditos. Dicionrio de Dados: armazena informaes sobre a estrutura do banco de dados. ndices: proporcionam acesso rpido aos itens de dados com valores especficos. Definem restries e garantem a integridade referencial.

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Introduo - 6_______________________________________________________________________________________________________________

Figura 1 - Estrutura de um SGBD

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Nveis de Abstrao de Informao - 7_______________________________________________________________________________________________________________

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Nveis de Abstrao de Informao - 8_______________________________________________________________________________________________________________

Nveis de Abstrao de InformaoConceitoHabilidade mental que permite aos seres humanos visualizarem os problemas do mundo real com vrios graus de detalhe, dependendo do contexto do problema. (J.Rumbaum - Modelagem e ProjetosBaseados em Objetos)

Nveis de Abstrao

Figura 3 - Passos de Modelagem e Projeto das Informaes

Figura 2 - Nveis de Abstrao de Dados(Waldemar Setzer)

MUNDO REAL: Viso que se tem do mundo real. Primeiro nvel de abstrao das informaes que estaro contidas no banco de dados. Seres, objetos, organismos, fatos. Organizao, alteraes; MODELO DESCRITIVO: Segundo nvel de abstrao, nesta etapa, o projetista deve colocar as informaes obtidas no mundo real, em um modelo descritivo, com suas prprias palavras, como se estivisse escrevendo um livro sobre o que est aprendendo. Informaes informais. Descries das estruturas e das transaes; MODELO CONCEITUAL: Neste nvel so usadas ferramentas grficas, e mtodos formais para demonstrar o modelo descritivo. Neste nivel ainda no devemos nos preocupar com as ferramentas que sero usadas para implementar o banco de dados e sistemas (linguagens de programao, marca de SGDB, etc). Informaes formais. Descrio das estruturas, especificaes de manipulao; MODELO OPERACIONAL: Com base no modelo conceitual, este modelo se preocupa em como implementar as estruturas criadas no nvel anterior, de acordo com as ferramentas escolhidas para desenvolver o banco de dados e sistmas. Estruturas externas de dados, especificaes e programas de manipulao; MODELO FSICO: Nvel mais complexo da abstrao, que se preocupa em como os dadosAdemir Mazer Jr - http://www.winponta.com.br

_______________________________________________________________________________________________________________

Apostila de Banco de Dados - Nveis de Abstrao de Informao - 9_______________________________________________________________________________________________________________

sero armazenados no disco rgido. Cadeia de bits e bytes. Estruturas internas de arquivos e tabelas, programas interpretveis ou executveis.

VISES: Nvel mais alto da abstrao, no aparece no grfico de Setzer. o nvel de abstrao que os usurios mais simples tm, so vises de partes do banco de dados. Ex: Cadastro de clientes, consulta no estoque, etc.

Modelo de DadosColeo de ferramentas conceituais para descrio de dados, relacionamento entre os dados, semntica e restries de dados. (Henry F. Korth) Antes de iniciar a construo de um banco de dados, essencialmente necessrio que se faa o seu projeto. Devemos comparar a construo de bancos de dados (bem como de sistemas), com a construo de uma casa. Se uma casa est para ser construda, e no existe um projeto, um planejamento correto, com certeza existiro alteraes no decorrer da construo, o que implica em um aumento considervel no tempo de execuo e principalmente no custo. Portanto, para evitar este tipo de problema na construo de bancos de dados, deveremos estudar o problema, analisa-lo e projeta-lo, antes do incio da sua implementao. Para isto, utilizaremos modelos que nos ajudam a demonstrar graficamente o banco de dados que ser construdo. importante fazer a distino entre a descrio do banco de dados e o banco de dados em si. Para isto utilizamos vrios nveis de abstrao para o projeto de banco de dados, com o auxlio de ferramentas prprias a cada nvel.

Arquitetura em Trs CamadasA principal meta da arquitetura trs camadas (figura 2) separar as aplicaes do usurio do banco de dados fsico. Os esquemas podem ser definidos como: nvel interno ou fsico: o qual descreve a estrutura de armazenamento fsico do banco de dados; utiliza um modelo de dados e descreve detalhadamente os dados armazenados e os caminhos de acesso ao banco de dados. Descreve como os dados esto armazenados; nvel conceitual ou lgico: o qual descreve a estrutura do banco de dados como um todo; uma descrio global do banco de dados, que no fornece detalhes do modo como os dados esto fisicamente armazenados. Descreve os relacionamentos entre os esquemas e dados e as restries. Neste nvel o usurio no se preocupa com quais ferramentas de banco de dados dever trabalhar. Os usurios deste nvel so os administradores de dados e analistas de sistema; nvel externo ou de viso: o qual descreve as vises do banco de dados para um grupo de usurios; cada viso descreve quais pores do banco de dados um grupo de usurios ter acesso. Os usurios deste nvel no precisam se preocupar com a complexidade do banco de dados.

Instncias e EsquemasEsquemaConcepo global do banco de dados. Definio das estruturas, a forma como sero armazenados os dados. Definio, modelo

InstnciaColeo de informaes armazenadas no banco de dados em um instante particular. Cada ocorrncia de um esquema. So os valores atribudos a um esquema. Valor, contedo._______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Nveis de Abstrao de Informao - 10_______________________________________________________________________________________________________________

O SGBD responsvel por garantir que toda instncia do banco de dados satisfaa ao esquema, respeitando sua estrutura e suas restries.EX:

Figura 4 - Ex. Esquemas e Instncias

Independncia de DadosA independncia de dadospode ser definida como a capacidade de se alterar um esquema em um nvel em um banco de dados sem ter que alterar um nvel superior. Existem dois tipos de independncia de dados: independncia de dados lgica: a capacidade de alterar o esquema conceitual sem ter que alterar a aplicao ou o modelo fsico; independncia de dados fsica: a capacidade de alterar o esquema fsico sem ter que alterar o as aplicaes do usurio.

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - MER (Modelo Entidade Relacionamento) - 11______________________________________________________________________________________________________________

MER - MODELO ENTIDADE RELACIONAMENTOO modelo Entidade-Relacionamento um modelo de dados conceitual de alto nvel, cujos conceitos foram projetados para estar o mais prximo possvel da viso que o usurio tem dos dados, no se preocupando em representar como estes dados estaro realmente armazenados. O modelo ER utilizado principalmente durante o processo de projeto de banco de dados. Ele representa um esquema de empreendimento, tal esquema a demonstrao lgica global do banco de dados. Atravs do MER possvel demonstrar graficamente as regras de negcio de uma empresa.

EntidadesO objeto bsico tratado pelo modelo ER a entidade, que pode ser definida como um objeto do mundo real, concreto ou abstrato e que possui existncia independente. Cada entidade possui um conjunto particular de propriedades que a descreve chamado atributos Exemplos de entidades: Aluno, Conta Bancaria, Cliente, Nota Fiscal, etc. Entidade: objeto que existe e distinguvel de outros objetos. Conjunto de Entidades: grupo de entidades do mesmo tipo.

AtributosComo j foi dito, as propriedades que caracterizam uma entidade so chamadas de atributos. Exemplos de atributos: Para entidade Aluno: Idade, Nome, Data Nascimento, Endereo Para entidade Conta: Numero, Cliente, Saldo

Domnio de Atributos: conjunto de valores permitidos aos atributos. Ex: O atributo Data de Nascimento somente pode conter valores no padro dd/mm/aaaa (dia/ms/ano). O atributo Idade somente pode conter nmeros inteiros positivos. Atributos Compostos: Um atributo composto formado por vrios atributos da entidade. Ex: Endereo pode ser formado por Rua + Numero + Bairro + Cidade + Estado + CEP Atributos Monovalorados: atributos que somente contm um valor para cada instncia. Ex: Idade Atributos Multivalorados: atributos que podem conter mais de um valor para cada instncia. Ex: Nome_Dependente em uma entidade Funcionrio. Atributos Derivados: atributos que podem ser obtidos a partir de clculo sobre o valor de outros atributos. Ex: Idade pode ser obtida a partir do atributo Data_Nascimento. Exemplos: Cliente Nome Joo Maria Carlos Endereo Cidade Rua B Rua C Rua H Ponta Grossa Curitiba CuritibaTabela 2 - Exemplo Tabela Conta Tabela 1 - Exemplo Tabela Cliente

Conta Nmero Cliente 342 Joo 443 Carlos Saldo 499 3838

ChavesAdemir Mazer Jr - http://www.winponta.com.br

_______________________________________________________________________________________________________________

Apostila de Banco de Dados - MER (Modelo Entidade Relacionamento) - 12______________________________________________________________________________________________________________

Uma entidade deve ter a capacidade de identificar cada uma de suas instncias separadamente em um banco de dados. Para fazer isto utilizamos o conceito de chaves.

Superchave: Conjunto de um ou mais atributos que permite identificar unicamente uma entidade no conjunto de entidades. Ex: Cliente (Nome, CPF, RG, Endereo). Na entidade cliente, os conjuntos de atributos [Nome, CPF] e [RG] so superchaves. Chaves Candidatas: Conjuntos com o menor nmero possvel de atributos que permite identificar unicamente uma entidade no conjunto de entidades. Ex: Na entidade cliente do exemplo anterior, o conjunto de atributos [CPF] e [RG] so chaves canidatas. Chaves Primrias: Chave candidata escolhida como identificao de entidades no conjunto de entidades. Cada entidade pode ter apenas uma chave primria, mas vrias canditadas. A chave primria de uma entidade no poder ter valores nulos ou duplicados. Ex: Na entidade cliente do exemplo anterior, o conjunto de atributos [CPF] pode ser o escolhido para ser o conjunto de chave primria. Chaves Estrangeiras: Conjunto de atributos de uma entidade que chave primria da entidade com a qual possui relacionamento. Ex: Funcionrio(Nome, Cod, CodDep) , se relaciona com Depto(CodDep, Nome)

RelaciomentoAssociao entre uma ou mais entidades.

Restries de MapeamentoCardinalidadeRestrio que expressa o nmero de entidades ao qual outra entidade pode estar associada via um relacionamento.

Tipos de Cardinalidade:

Um-para-um (1:1): uma entidade em A est associada a no mximo uma entidade em B, e uma entidade em B est associada a no mximo uma entidade em A. EX: Considere um relacionamento entre Fincionrio e Dependente, onde somente permitido um Dependente por Funcionrio

Figura 5 - Cada Funcionrio para UM Dependente Cada Dependente para UM Funcionrio

Figura 6 - Principais smbolos do DER

Um-para-muitos (1:N): uma entidade em A est associada a qualquer nmero de entidadesAdemir Mazer Jr - http://www.winponta.com.br

_______________________________________________________________________________________________________________

Apostila de Banco de Dados - MER (Modelo Entidade Relacionamento) - 13______________________________________________________________________________________________________________

em B, entretanto uma entidade em B est associada a no mximo uma entidade em A. Ex: Considere um relacionamento entre Funcionrio e Depto, onde cada funcionrio somente pode estar lotado em um Depto, mas cada Depto pode ter vrios funcionrios:

Figura 7 - Cada Funcionrio para UM Depto Cada Depto para N Funcionrios

Muitos-para-muitos (N:N): uma entidade em A est associada a qualquer nmero de entidades em B, e uma entidade em B est associada a qualquer nmero de entidades em A. Ex: Considere um relacionamento entre Funcionrio e Projeto, onde cada funcionrio pode participar de vrios projetos e cada Projeto pode ter vrios funcionrios trabalhando:

Figura 8 - Cada Funcionrio para N Projetos Cada Projeto para N Funcionrios

Dependncia ExistencialSe a existncia da entidade x depende da existncia da entidade y, ento diz-se que x existencialmente dependente de y. A entidade y chamada dominante e x chamada subordinada. Este conceito importante para manter a integridade dos dados contidos em um Banco de Dados. Suponha a existncia de uma entidade NF (Notas Fiscais) em um Banco de Dados. Esta entidade se relaciona com a entidade Cliente (cada NF esta relacionada ao Cliente que efetuou determinada compra). A entidade NF subordinada a entidade Cliente, pois no possvel emitir uma Nota Fiscal sem a existncia de um Cliente. Desta forma, quando informamos ao Banco de Dados esta Dependncia Existencial, aplica mecanismos que garantem que uma NF no conter (por exemplo) o Cdigo de Cliente igual a 5, pois o Cliente 5 no existe em nosso Banco de Dados. Da mesma forma que garante que o Cliente com Cdigo igual a 2 no ser excludo de nosso Banco de Dados, se existir um ou mais NF relacionadas a ele.

Entidades Fortes e Fracas

Entidade Forte: uma entidade que possui chave primria, por definio uma entidade dominante. Entidade Fraca: uma entidade que no possui chave primria, por definio uma entidade subordinada. Para formarmos a chave primria de uma entidade fraca, utilizamos a chave primria da entidade forte da qual ela existencialmente dependente, mais o conjunto mnimo de atributos que possa identificar uma entidade em um conjunto de entidades fracas. Ex: O relacionamento entre as entidades Funcionrio e Histrico de Pagamento podem ser modeladas respectivamente como entidades Forte e Fraca. Isto porque a entidade Funcionrio (Nome, Num.Matruicula, CPF, RG, Endereco) tem, por natureza, atributos que so chaves candidatas, e por consequncia, possui uma chave primria. J a entidade Histrico de Pagamento (Data, Vlr Pago) no possui um conjunto de atributos que possa identificar cada uma de suas instncias. Desta forma, para montarmos a chave primria de Histrico de Pagamento, usamos a chave primria da entidade Funcionrio. Definindo assim a entidade Histrico de Pagamento (Num Matricula, Data, Vlr Pago).

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - MER (Modelo Entidade Relacionamento) - 14______________________________________________________________________________________________________________

Diagrama Entidade-Relacionamento (DER)O DER composto por um conjunto de objetos grficos que visa representar todos os objetos do modelo Entidade Relacionamento, tais como: entidades, atributos, atributos chaves, relacionamentos, restries estruturais, etc. O DER fornece uma viso lgica do banco de dados, fornecendo um conceito mais generalizado de como esto estruturados os dados de um sistema. Ao desenhar o DER, estaremos na fase Conceitual da Modelagem de um Banco de Dados. Esta fase nos d, atravs do DER, uma "leitura visual" da estrutura do Banco de Dados. Isto extremamente importante, pois facilita o entendimento da estrutura e regras de negcio1. Os principais smbolos de objetos do MER so:

Entidade: representada por retngulos. Atributos: representados por crculos ou elipses, ligados as entidades por linhas. Relacionamentos: representados por losangos ligados s entidades por linhas. Atributos Determinantes (Chave Primria): sublinhado ou bola que acompanha preenchida Atributos Compostos: Linhas a partir do nome principal Atributos Multivalorados: * ao lado do nome

Cardinalidade: Indica-se a cardinalidade sempre ao lado oposto da entidade que a possui. Usamos os literais: "1": para permisso de relacionamento com no mximo uma instncia da entidade que se relaciona; "N": para permisso de vrios relacionamentos com instncias da entidade que se relaciona, sem limites; "3": ou qualquer outro nmero, para permisso de relacionamento com no mximo "3" (ou outro nmero que seja usado) instncias da entidade que se relaciona;

Figura 9 - Cardinalidade 1 para 1

Figura 10 - Cardinalidade 1 para Vrios

Figura 11 - Cardinalidade Vrios para Vrios Para se definir a cardinalidade, fazemos as seguintes perguntas: P: "Um Funcionrio pode estar lotado em, no mximo, quantos Departamentos?" - R: 1 (um) P: "Um Departamento pode ter lotado, no mximo, quantos Funcionrios?" - R: N (vrios)1 Regras de Negcio- funcionamento da empresa, regras de como a empresa trabalha. Ex: a afirmativa de que "Cada projeto deve ser gerenciado por apenas um funcionrio" uma regra de negcio de uma empresa, e deve ser representado na modelagem do Banco de Dados. _______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - MER (Modelo Entidade Relacionamento) - 15______________________________________________________________________________________________________________

Entidade Fraca: representada por um retngulo com borda dupla

Figura 12 - Representao de Entidade Fraca Note que a entidade Dependente no posui chave primria. Desta forma, pegamos a chave primria de Funcionrio mais o conjunto mnimo de atributos de Dependente, para formar a chave primria.

Papis: Cada tipo entidade que participa de um relacionamento desempenha um papel (tem uma funo) particular. O nome do papel representa esta funo. Relaciomento Recursivo ou Auto-Relacionamento: O auto-relacionamento ocorre quando uma instncia de uma entidade se relaciona com uma ou mais instncias da mesma entidade. Considere o caso em que cada Funcionrio em uma empresa tem um Supervisor. Sendo o Supervisor tambm um Funcionrio. Para demonstrarmos que um Supervisor supervisiona vrios Funcionrios, temos:

Figura 13 - Papis e Auto-Relacionamento

Grau do Relaciomento: O grau do relaciomento determinado pela quantidade de entidades que fazem parte deste relaciomento.

Figura 14 - Relacionamento Unrio_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - MER (Modelo Entidade Relacionamento) - 16______________________________________________________________________________________________________________

Figura 15 - Relacionamento Binrio

Figura 16 - Relacionamento Ternrio Acima esto exemplificados relacionamentos degraus unrio, binrio e ternrio. Podemos ter relaciomentos com graus maiores, mas estes dificilmente ocorrem. Note que a cardinalidade no relacionamento ternrio torna-se mais complexa de se expressar. Para podermos trabalhar nesta apostila, seguimos o seguinte padro: Iniciamos com a entidade mais a esquerda, e seguimos no sentido horrio. Desta forma: P - Um Cliente pode se relacionar com quantas Agncias? R - 1 P - Um Cliente pode se relacionar com quantas Contas? R-N P - Uma Agncia pode se relacionar com quantos Clientes? R - N P - Uma Agncia pode se relacionar com quantas Contas? R - N P - Uma Conta pode se relacionar com quantos Clientes? R-1 P - Uma Conta pode se relacionar com quantas Agncias? R - 1

Dependncia Existncial ou Relacionamento Total: Dizemos que uma entidade total em um relacionamento, quando todas as suas instncias, obrigatoriamente, se relacionam com uma instncia da outra entidade. Ex: Uma Conta Corrente em um banco somente pode existir se estiver relacionada a pelo menos um Cliente.

Figura 17 - ContaCorrente TOTAL no relacionamento Para podermos expressar que uma entidade total no relacionamento, colocamos uma bola com o centro preenchido, prximo ao relacionamento, do lado de quem faz a pergunta: P - Para cada Cliente, quantoa ContaCorrente no mnimo deve haver relacionamento? R 0 P - Para cada ContaCorrente, quantos Clientes no mnimo deve haver relacionamento? R 1

Figura 18 - Representao de Totalidade em relacionamento ternrio_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - MER (Modelo Entidade Relacionamento) - 17______________________________________________________________________________________________________________

Note que a representao com bolinhas, em relacionamentos com grau maior que 2, no aconselhvel, pois no teramos como saber a qual par de entidades pertence a Totalidade. Desta forma, colocamos o numero 1 separando por um trao ("-") a cardinalidade deste relacionamento. Assim: Cada Cliente deve no mnimo se relacionar com 1 Agncia. Cada ContaCorrente deve se relacionar no mnimo com 1 Cliente. Cada ContaCorrente deve se relacionar no mnimo com 1 Agncia.

Atributos de Relacionamento: Em relacionamentos com cardinalidade N:N, devemos ento "exportar" as chaves primrias das entidades que participam do relaciomento, e coloca-las como atributos (que formaro a chave primria) no relacionamento. Outros atributos tambm podem fazer parte do relacionamento, como no exemplo abaixo, onde cada loja tem vrios produtos, e cada produto esta em vrias lojas. Como saber ento a qtde em estoque de cada loja do produto Ma, por exemplo? Simles, colocamos o atributo QtdeEstoque no relacionamento.

Figura 19 - Atributos de Relacionamento

Especializao e Generalizao: Atravs do conceito de especializao, podemos aproveitar entidades j criadas, para definir novas entidades em menos tempo de trabalho. Isto verdade para entidades de tipo semelhante. Por exemplo, um banco possui dois tipos de contas: corrrente e poupana. As contas possuem nmero, data de abertura e saldo. Contas corrente possuem saldo limite e as contas poupana possuem data de rendimento. Para evitarmos a criao de duas entidades separadas, com praticamente todos os atributos iguais, e de espcie semelhante, generalizamos as duas entidades, criando uma terceira chamada superclasse, com os atributos comuns entre as duas entidades. A superclasse tambm chamada de classe me, e as subclasses so chamadas classes filho. As subclasses herdam todos os atributos, relacionamentos, cardinalidade e totalidade da superclasse. Se alguma destas caractersticas for diferente para alguma das subclasses, deve ser explicitamente demonstradad no diagrama. A especializao demonstrada atravs de um tringulo. Tambm chamamos de Relacionamento ISA (is a), ou " UM" em portugus. Desta forma, a ContaCorrente uma Conta, e a Poupana uma Conta.

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - MER (Modelo Entidade Relacionamento) - 18______________________________________________________________________________________________________________

Figura 20 - Especializao

Agregao: Usamos agregao para simplificar o diagrama. Lembre-se que no so permitidos relacionamentos entre relacionamentos.

Figura 21 - Der no demonstra bem o relacionamento

Figura 22 - Agregao

Atributos Globais: Esto associados a uma Entidade ou a um Relacionamento. Seu valor CONSTANTEpara todo o conjunto ao qual pertence. Exemplo: numa biblioteca considere que a MULTA por dia de atraso de um exemplar seja constante, desta forma:

Figura 23 - Atributo Global_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Modelo Relacional - 19______________________________________________________________________________________________________________

O Modelo RelacionalO modelo relacional foi criado por Codd em 1970 e tem por finalidade representar os dados como uma coleo de relaes (entidades), onde cada relao representada por uma tabela.Quando uma relao pensada como uma tabela de valores, cada linha nesta tabela representa uma coleo de dados relacionados. Estes valores podem ser interpretados como fatos descrevendo uma instncia de uma entidade ou de um relacionamento. O nome da tabela e das colunas desta tabela so utilizados para facilitar a interpretao dos valores armazenados em cada linha da tabela. Todos os valores em uma coluna so necessariamente do mesmo tipo. Na terminologia do modelo relacional, cada tabela chamada de relao; uma linha de uma tabela chamada de tupla (registro) ; o nome de cada coluna chamado de campo (atributo) ; o tipo de dado que descreve cada coluna chamado de domnio .

Domnios, Tuplas, Atributos e RelaesUm domnio D um conjunto de valores atmicos, sendo que por atmico, podemos compreender que cada valor do domnio indivisvel. Durante a especificao do domnio importante destacar o tipo, o tamanho e a faixa do atributo que est sendo especificado. Por exemplo:

Coluna RG Nome Salrio

Tipo Numrico Caracter Numrico

Tamanho 10 30 5.2

Faixa 03000000-25999999 a-z, A-Z 00100,00-12999,99

Tabela 3 - Exemplo de Tabela Funcionrio

Esquema de comparao entre o DER de Nvel Conceitual e Fsico

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Modelo Relacional - 20______________________________________________________________________________________________________________

Nvel ConceitualENTIDADE ATRIBUTO INSTNCIA RELACIONAMENTO

Nvel FsicoTABELA (Relao) CAMPO / COLUNA LINHA / TUPLA / REGISTRO Ser feito atravs da criao estrangeira na tabela Filha da chave

Entidades que no digam respeito a Regras Entidades que no digam respeito a Regras de de Negcio, ou que venham a ter somente Negcio (ex. Parmetros, Valores Globais, etc), uma instncia no so demonstradas ou que venham a ter somente uma instncia (ex. Empresa) so demonstradas. Isto ocorre porque temos que guardar estes valores no banco de dados. Por exemplo, como saberemos qual o endereo da empresa, na hora de imprimir uma carta a um cliente, se no o temos guardado em lugar algum?Tabela 4 - Caractersticas dos Nveis Conceitual e Fsico

Mapeamento para o Modelo Fsico (Modelo Entidade Relacionamento para o Modelo Relacional)O mapeamento do modelo entidade relacionamento para o Modelo Relacional segue oito passos bsicos a saber: 1. Para cada entidade E no modelo ER criada uma tabela T1 no Modelo Relacional que inclua todos os atributos simples de E; para cada atributo composto, so inseridos apenas os componentes simples de cada um; um dos atributos chaves de E deve ser escolhida como a chave primria de T1; 2. Para cada entidade fraca EF com entidade proprietria E no modelo ER, criada uma tabela T1 no Modelo Relacional incluindo todos os atributos simples de EF; para cada atributo composto , so inseridos apenas os componentes simples de cada um; a chave primria desta relao T1 ser composta pela chave parcial da entidade fraca EF mais a chave primria da entidade proprietria E; 3. Para cada relacionamento regular com cardinalidade 1:1 entre entidades E1 e E2 que geraram as tabelas T1 e T2 respectivamente, devemos escolher a chave primria de uma das relaes (T1, T2)e inser-la como chave estrangeira na outra relao; se um dos lados do relacionamento tiver participao total e outro parcial, ento interessante que a chave do lado com participao parcial seja inserido como chave estrangeira no lado que tem participao total; 4. Para cada relacionamento regular com cardinalidade 1:N entre entidades E1 e E2 respectivamente e que geraram as tabelas T1 e T2 respectivamente, deve-se inserir a chave primria de T1 como chave estrangeira em T2; 5. Para cada relacionamento regular com cardinalidade N:N entre entidades E1 e E2, cria-se uma nova tabela T1, contendo todos os atributos do relacionamento mais o atributo chave de E1 e o atributo chave de E2; a chave primria de T1 ser composta pelos atributos chave de E 1 e E 2;_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Modelo Relacional - 21______________________________________________________________________________________________________________

6. Para cada atributo multivalorado A1, cria-se uma tabela T1, contendo o atributo multivalorado A1, mais o atributo chave C da tabela que representa a entidade ou relacionamento que contm A1; a chave primria de T1 ser composta por A1 mais C; se A1 for composto, ento a tabela T1 dever conter todos os atributos de A1; 7. Para cada relacionamento n-rio, n > 2, cria-se uma tabela T1, contendo todos os atributos do relacionamento; a chave primria de T1 ser composta pelos atributos chaves das entidades participantes do relacionamento; 8. Converta cada especializao com m subclasses {S1, S2, ..., Sm} e superclasse SC, onde os atributos de SC so {c, a1, a2, ..., an} onde c a chave primria de SC, em tabelas utilizando uma das seguintes opes: 1. Crie uma tabela T para SC (Super Chave) com os atributos A(T) = {c, a1, a2, ..., an} e chave C(T) = c; crie uma tabela Ti para cada subclasse Si , 1 i m, com os atributos A(Ti) = {c} A(Si), onde C(T) = c; 2. Crie uma tabela Ti para cada subclasse Si, 1 i m, com os atributos A(Ti) = A(Si) {c, a1, a2, ..., an} e C(Ti) = c; 3. Crie uma tabela T com os atributos A(T) = {c, a1, a2, ..., an} A(S1) ... A(Sm) {t} e C(T) = c, onde t um atributo tipo que indica a subclasse qual cada tupla pertence, caso isto venha a ocorrer; 4. Crie uma tabela T com atributos A(T) = {c, a1, a2, ..., an} A(S1) ... A(Sm) {t1, t2, ..., tm} e C(T) = c; esta opo para generalizaes com overlapping, e cada ti, 1 i m, um atributo booleano indicando se a tupla pertence ou no subclasse Si; embora funcional, esta opo pode gerar uma quantidade muito grande de valores nulos;

Figura 24 - Relacionamento Funcionrio - Depto

TABELA FUNCIONRIO Nome Campo Tipo NumMatricula Inteiro Longo Nome Endereco Fone String String String 30 50 13 Tam No Nulo X X X (99)#9999999 Mscara 999.999.999 OBS

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Modelo Relacional - 22______________________________________________________________________________________________________________

Salario NumDepto

Monetario Inteiro X

999.999.999, 99 999 Ch. Estrangeira

INDICES E CHAVES Nome ndice funPK FunNome Campos NumMatricula Nome Primari Estrangeir Tab.Refere o o X X Depto NumDepto Campo Tab.Ref. na Ordem Asc Asc Asc

funFKdepto NumDeptoTabela 5 - Modelo Fsico Tabela Funcionrio

TABELA DEPTO Nome Campo Tipo NumDepto Nome Inteiro String 30 Tam No Nulo X X Mscara 999 OBS

INDICES E CHAVES Nome ndice deptoPK Campos NumDepto Primari Estrangeir Tab.Refere o o X Campo na Ordem Tab.Ref. Asc

Tabela 6 - Modelo Fsico Tabela DEPTO

Dependncias FuncionaisSntese 1: Generalizao de dependncias de chave. Elas requerem que um valor em um certo conjunto de atributos determine univocamente o valor em outro conjunto de atributos.

Sntese 2: Uma dependncia funcional uma restrio entre dois conjuntos de atributos de uma base de dados.Suponha que o esquema de uma base de dados R possua n atributos A1, A2, ..., An; pense em R = { A1, A2, ... , An } como a representao universal da base de dados. Uma dependncia funcional, representada por X Y entre dois conjuntos de atributos X e Y que so subconjuntos de R especificam uma restrio nas tuplas que podem compor uma instncia relao r de R. A restrio estabelece que para qualquer par de tuplas t1 e t2 em r de forma que t1.[X] = t2.[X], obrigado a existir t1.[Y] = t2.[Y]. Isto significa que os valores do componente Y em uma tupla em r depende de, ou determinada pelos valores do componente X. Para X Y l-se: Y funcionalmente dependente de X, ou X infere sobre Y.

Sntese 3: Se repetirmos um valor para um atributo A, (ou um conjunto de atributos) e outro(s) atributo(s) B tambm se repetirem (redundantemente), dizemos que existe uma dependncia de B em relao a A, ou que A determina B, escreve-se: A -> B. Se uma coluna ou conjunto de colunas no D.F. de uma coluna ou conjunto de colunas A, escreve-se: A -/-> B. (A no determina B)_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Modelo Relacional - 23______________________________________________________________________________________________________________

Sntese 4: Dada uma relao R, dizemos que uma coluna ou conjunto de colunas B de R dependente funcional de uma coluna ou um conjunto de colunas A de R, denotado A -> B, se a cada valor Va de A existir nas linhas e R em que aparece Va um nico valor Vb. Em outros palavras, se Va ocorrer em duas linhas diferentes, o mesmo Vb deve ocorrer em ambas

Exemplo de dependncias funcionais: Funcionrio (RG, Nome, CIC, Depto, RG_Supervisor, Salrio) RG { Nome, CIC, Depto., RG_Supervisor, Salrio } CIC { Nome, RG, Depto., RG_Supervisor, Salrio } Projeto (Nmero_Projeto, Nome_Projto, Localizao) Nmero_Projeto { Nome_Projeto, Localizao } Funcionrio_Projeto (RG_Empregado, Nmero_Projeto, Horas) { RG_Empregado, Nmero_Projeto } Horas Item-Venda (NrVenda, CodProd, Qtde, DescrProd, QtdeEst) { NrVenda, CodProd } -> Qtde { NrVenda, CodProd } -> QtdeEst{ CodProd } -> DescrProd

Dependente funcional parcial:Sejam X, Y e Z conjuntos de colunas de uma relao. Se (X,Y) -> Z e X->Z dizemos que Z dependente funcional parcial de (x,y). Se (X,Y) -> Z e X-/->Z e Y-/-> Z ento dizemos que Z dependente funcional completo de (X,Y) ex de DFP: Item-Venda (NrVenda,CodProd,Qtde,descrProd,qtdeEst) NrVenda+CodProd -> Qtde, descrProd, qtdeEst CodProd -> QtdeEstCodProd ->DescrProd

Dependncia Funcional Transitiva:Dada uma relao R(A,B,C) onde A,B,C so colunas ou conjuntos de colunas, dizemos que existe uma depndncia funcional transitiva se A->B, A->C, B->C, e B-/-> A. Ex: A B C D E

Aluguel (RegCasa, Endereco, ValorAluguel, R.G., NomeInq) RegCasa -> Endereco, valorAluguel, R.G., NomeInqRegCasa -> R.G , RegCasa -> NomeInq A -> D , A -> E , R.G. -> NomeInq porm RG -/-> RegCasa , D -> E D -/-> A

NormalizaoO processo de normalizao pode ser visto como o processo no qual so eliminados esquemas de relaes (tabelas) no satisfatrios, decompondo-os, atravs da separao de seus atributos em esquemas de relaes menos complexas mas que satisfaam as propriedades desejadas._______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Modelo Relacional - 24______________________________________________________________________________________________________________

O processo de normalizao como foi proposto inicialmente por Codd conduz um esquema de relao atravs de um bateria de testes para certificar se o mesmo est na 1a, 2a e 3a Formas Normais . Estas trs Formas Normais so baseadas em dependncias funcionais dos atributos do esquema de relao.

1a. Forma Normal: Uma relao no deve conter outras relaes. Todos seus atributos devem ser monovalorados, isto , no deve conter atributos multivalorados. A relao entre a chave primria de uma tabela e cada uma de suas colunas tem que ser umpara-um, nesta direo.

Procedimentos para colocar uma relao na 1a FN: 1. Identificar a chave primria da relao; 2. Identificar o grupo repetitivo e remove-lo da entidade; 3. Criar uma nova entidade com a chave primria da entidade anterior e o grupo repetitivo. 4. A chave primria da nova entidade ser obtida pela concatenao da chave primria da entidade inicial e a do grupo repetitivo. Ex: Em um sistema de estoque necessrio obter-se o preo mdio de cada item em estoque (produto), como o sistema permite devoluo de produtos em garantia (90 dias) necessrio registrar cada quantidade entrada com respectiva data e valor para posterior reprocessamento. O desenvolvedor chegou a algumas solues: Exemplo de valores para Produto Cdigo Descri Quantidade Datas o s 001 Monitor 110 500 300 210 Tabela Produto Cdigo Descrio Quantidade s Data Preos numrico Alfa [30] Array [1..10] Array [1..10] Array [1..10] Preo

01/03/95 100,00 10/04/95 97,00 15/05/95 103,00 12/06/95 99,00

Quais os Problemas?? possvel incluir at quantas entradas? H simples entrada de dados!? R: No R: 10 no mximo

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Modelo Relacional - 25______________________________________________________________________________________________________________

A soluo simples (e at intuitiva): Tabela Produto Cdigo 001 Descri o Monitor

Tabela Entradas Cdigo Quantidad Data e 001 001 001 001 110 500 300 210 01/03/95 10/04/95 15/05/95 12/06/95 Preo 100,00 97,00 103,00 99 R: Quantas forem necessriasR: Sim

possvel incluir at quantas entradas? H simples entrada de dados?

Ex: Considere a relao Cliente (Cod, Nome, Endereco, Fone), onde o cliente pode ter mais de um telefone. Qual seria a soluo para colocar a relao na 1FN? Cliente (Cod, Nome, Endereco) ClienteFone (Cod, Fone)

2a. Forma Normal:

Uma relao est na 2. FN se estiver na 1. FN e qualquer atributo da(s) chave(s) (candidatas) for DF completo em relao a cada CHAVE. Em outras palavras no h atributos fora da(s) chaves que seja DF parcial em relao a cada chave. Uma tabela T est na 2a Forma Normal se estiver na 1a Forma Normal e todo atributo que no compem a chave primria C for totalmente funcionalmente dependente da chave primria C. Se uma tabela no est na 2a Forma Normal a mesma pode ser normalizada gerando outras tabelas cujos atributos que no faam parte da chave primria sejam totalmente funcionalmente dependente da mesma, ficando a tabela na 2a Forma Normal.

Procedimentos para colocar uma relao na 2a FN: 1. Identificar os atributos que no so funcionalmente dependentes de toda a chave primria. 2. Remover da relao todos esses atributos identificados e criar uma nova relao com eles. 3. A chave primria da nova relao ser o atributo do qual os atributos removidos so funcionalmente dependentes. EX: Relao fora da 2. FN.: Item-Venda (NrVenda, CodProd, Qtde, DescrProd, qtdeEst) chaves candidatas: NrVenda+CodProd._______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Modelo Relacional - 26______________________________________________________________________________________________________________

NrVenda+CodProd ->Qtde CodProd -> QtdeEst CodProd ->DescrProd Colocando na 2. FN: Item-Venda (NrVenda, CodProd, Qtde, descrProd, qtdeEst) chaves candidatas: NrVenda+CodProd. - Dependncia total: NrVenda+CodProd ->Qtde ento: Item-Venda (NrVenda,codprod,Qtde) CodProd -> QtdeEst CodProd -> DescrProd ento: Produto (CodProd,DescrProd,QtdeEst)

3a. Forma Normal:Uma relao est na 3a. FN se est em 2a. FN e qualquer coluna fora de qualquer chave candidata no dependente transitiva desta (cada atributo for funcionalmente dependente apenas dos atributos componentes da chave primria ou se todos os seus atributos no chave forem independentes entre si).Procedimentos para colocar uma relao na 3a FN:

1. Identificar todos os atributos que so funcionalmente dependentes de outros atributos no chave; 2. Remove-los e criar uma nova relao com os mesmos. 3. A chave primria da nova relao ser o atributo do qual os atributos removidos so funcionalmente dependentes. Ex: Fora da 3. FN: Aluguel (RegCasa, Endereco, ValorAluguel, R.G.,NomeInq) chaves candidatas: RegCasa, Endereco RegCasa -> valorAluguel, R.G., NomeInq {Endereco} Endereco -> valorAluguel, R.G., NomeInq {RegCasa} RegCasa -> R.G. e R.G. -> NomeInq porm RG -/-> RegCasa Normalizando (3a. F.N.): Aluguel (RegCasa, Endereco, ValorAluguel, RG)Inquilino (R.G., NomeInq)

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Modelo Relacional - 27______________________________________________________________________________________________________________

Tabelas DependentesUma tabela Dependente uma tabela no primria que tem, pelo menos, um componente de chave primria que no chave estrangeira ou componente de chave estrangeira.

Ex: Bloco L M L

Bloco-Sala Bloco L L M Nmero Sala 108 109 108

Regras:

Objetos (entidade) dependentes no existem sem o objeto pai Objetos (entidade) dependentes no podem pertencer a mais que um objeto pai Objetos (entidade) dependentes no podem ser movidos de um para outro objeto pai.As tabelas dependentes sempre modelam coisas que esto verdadeiramente dependente de uma entidade ou dependente de nvel superior:

Ex: Universidad e UEPG UEL Bloco-Sala Bloco L L M Nmero Sala 108 109 108 Universidade-Bloco-Sala Universidad e UEPG UEPG UEL Bloco L L M Nmero Sala 108 109 108

A chave-primria composta de uma tab.dependente pode vir a ser uma chave estrangeira composta em algum relacionamento.

Ex: Acadmico Ra 9100 9200 9300 Nome Joo Pedro Gabriel Bloco L L M Nmero Sala 108 109 108

Como as tabelas dependentes afetam o projeto do Banco de Dados? muito importante diferenciar tabelas verdadeiramente dependentes de tabelas primrias modeladas erroneamente e as anomalias verificadas na formao da chave primria destas_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - Modelo Relacional - 28______________________________________________________________________________________________________________

tabelas. Na tabela abaixo: avalie as 3 primeiras formas normais e possveis anomalias de manuteno.

Departamento-Funcionario

* Codigo * Cdigo Depto Funcionrio VEN VEN VEN COM 001 002 003 001

do Nome Empregado Joao Miguel Maria Gabriel

1. Se transferirmos o funcionrio Joo para o Departamento COM (Compras)?2. Quantos funcionrios podemos ter no mximo em cada departamento?

Isto conseqncia de Departamento-Funcionrio no ser um tabela dependente ela uma tabela primria. Um funcionrio pode ser movido e at mesmo existir (ser recrutado) antes de determinarmos seu departamento. Esta anomalia de formao de chave-primria denominada SUPER-CHAVE ou CHAVE INTELIGENTE pois era usada comumente em sistemas para facilitar o processamento da informao, como saber pelo ltimo cdigo de cada departamento quantos funcionrio existem neste, obviamente antes da facilidade das linguagens de consulta. Devido a sistemtica manual de muitos usurios e at exigncia comum manter-se este tipo de composio, porm no como chave primria (para no prejudicar o projeto do BD) mas apenas como atributos que no se permite duplicao.

Ex:Fucionrio

* Cdigo Funcionrio 001 002 003 004

do Nome Empregado Joao Miguel Maria Gabriel

Codigo Depto VEN VEN VEN COM

Seqnci a 1 2 3 1

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - SQL - 29______________________________________________________________________________________________________________

A Linguagem SQLLinguagem para definio e manipulao largamente utilizada em SGBD's relacionais.

Histrico - IntroduoQuando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas sua manipulao. O Departamento de Pesquisas da IBM, desenvolveu a Sequel como forma de interface para o sistema de BD relacional denominado SYSTEM R, incio dos anos 70. Esta linguagem foi evoluindo e seu nome foi mudado para SQL (Structured Query Language Linguagem de Consulta Estruturada). Em 1986 o American National Standards Institute (ANSI) e a International Standards Organozation (ISO) publicaram os padres para a SQL, chamado SQL-86. Em 1989 foi publicada uma extenso chamada SQL-89. Atualmente os sistemas que do suporte a SQL esto baseados pelo menos nos recursos do SQL-89. A verso mais amplamente suportada a SQL92. A ultima publicao define o SQL-3. SQL apresenta uma srie de comandos que permitem a definio de estruturas de dados, manipulao dos dados, definio de restries e segurana. As diversas partes da SQL so: DDL (Data Definition Language) Linguagem de Definio de Dados. DML (Data Manipulation Language) Linguagem de Manipulao de Dados. Embedded DML ( Incorporao DML) comandos SQL para serem usados em linguagens gerais (C, Cobol, Pascal, etc) Definio de vises Autorizao Integridade Controle de Transaes

A Linguagem SQL tem como grandes virtudes sua capacidade de gerenciar ndices, sem a necessidade de controle individualizado de ndice corrente, algo muito comum nas linguagens de manipulao de dados do tipo registro a registro. Outra caracterstica muito importante disponvel em SQL sua capacidade de construo de vises, que so formas de visualizarmos os dados na forma de listagens independente das tabelas e organizao lgica dos dados. Outra caracterstica interessante na linguagem SQL a capacidade que dispomos de cancelar uma srie de manipulaes de dados, permitindo a implementao do conceito de transaes.Devemos notar que a linguagem SQL consegue implementar estas solues, somente pelo fato de estar baseada em Banco de Dados, que garantem por si mesmo a integridade das relaes existentes entre as tabelas e seus ndices, bem como mecanismos de segurana e implementao de transaes.

Comandos DDLCreate DatabaseCria o "banco de dados" (arquivo ou diretrio). Sintaxe: CREATE DATABASE Esta a sintaxe bsica para a criao de um banco de dados. Cada SGBD pode implementar caractersticas extras de acordo com a estrutura interna e tcnicas utilizadas para manipular os bancos de dados._______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - SQL - 30______________________________________________________________________________________________________________

Exemplos de SGBD: Oracle, Interbase, MS-SQL Server, Sybase SQL Server, PostgreSQL. Exemplo: Create Database LOJAEXEMPLO

Create TableCria a estrutura de uma tabela(arquivo) definindo as colunas (campos), chaves primrias, chaves estrangeiras, ndices alternativos e restries. Sintaxe: CREATE TABLE ( { [DEFAULT {literal | NULL USER}] , | COMPUTED BY (expressao)} [NOT NULL]

CONSTRAINT PRIMARY KEY (nome-coluna-chave) , CONSTRAINT FOREIGN KEY (nome-coluna-chave-estrangeira) REFERENCES (nome-coluna-chabe-estrangeira-tabela-pai) ON DELETE [RESTRICT] [CASCADE] [SET NULL] [SET DEFAULT] ON UPDATE [RESTRICT] [CASCADE] [SET NULL] [SET DEFAULT] CONSTRAINT UNIQUE (nome-coluna-chave) , CONSTRAINT CHECK (condio) ) onde:

nome-tabela - Representa o nome da tabela que ser criada. nome-coluna - Representa o nome da coluna que ser criada. A definio das colunas de uma tabela feita relacionando-as uma aps a outra. tipo-do-dado - Clusula que define o tipo e tamanho dos campos definidos para a tabela. Os tipos de dados mais comuns so definidos abaixo. COMPUTED BY Podemos definir campos calculados, onde o valor obtido atravs de uma expresso que pode envolver outras colunas das tabelas. Note que se isto ocorrer, as colunas devem ser definidas antes da coluna calculada. Ex: criar um campo de bnus anual baseado no salrio do funcionrio: BonusAnual COMPUTED BY (salario * 0.2) O contedo de um campo calculado no armazenado, e sim resolvido quando se pede ao SGBD.

NOT NULL - Exige o preenchimento do campo, ou seja, no momento da incluso obrigatrio que possua um contedo. Alguns SGBD colocam esta opo como padro, sendo somente necessrio definir explicitamente os campos nulos com a opo NULL. Na maioria dos SGBDAdemir Mazer Jr - http://www.winponta.com.br

_______________________________________________________________________________________________________________

Apostila de Banco de Dados - SQL - 31______________________________________________________________________________________________________________

esta opo padro pode ser alterada.

DEFAULT - Preenche o campo com valores pr-definidos, de acordo com o tipo do campo, caso no seja especificado o seu contedo no momento da incluso do registro. Os valores pr-definidos so:

Campos numricos - Valor zero. Campos alfanumricos - Caracter branco. Campo formato Date - Data corrente. Campo formato Time - Horrio no momento da operao. A opo NULL preenche com valores nulos A opo USER preenche com o nome do usurio que est alterando o registro

CONSTRAINT (restio) Define o nome para a retrio (Chaves Primrias, Estrangeiras, ndices nicos, Checks) PRIMARY KEY (nome-coluna-chave) - Definir para o banco de dados a coluna que ser a chave primria da tabela. Caso ela tenha mais de um coluna como chave, elas devero ser relacionadas entre os parnteses. FOREIGN KEY (nome-coluna-chave-estrangeira) REFERENCES nome-tabela-pai (nomecoluna-chave-primria-tabela-pai) - Definir para o banco de dados as colunas que so chaves estrangeiras, ou seja, os campos que so chaves primrias de outras tabelas. Na opo REFERENCES deve ser especificado a tabela na qual a coluna a chave primria e o nome da chave nesta tabela. ON DELETE - Esta opo especifica os procedimentos que devem ser feitos pelo SGBD quando houver uma excluso de um registro na tabela pai quando existe um registro correspondente nas tabelas filhas. As opes disponveis so:

RESTRICT - Opo default. Esta opo no permite a excluso na tabela pai de um registro cuja chave primria exista em alguma tabela filha. CASCADE - Esta opo realiza a excluso em todas as tabelas filhas que possua o valor da chave que ser excluda na tabela pai. SET NULL - Esta opo atribui o valor NULO nas colunas das tabelas filhas que contenha o valor da chave que ser excluda na tabela pai. SET DEFAULT - Esta opo atribui o valor DEFAULT nas colunas das tabelas filhas que contenha o valor da chave que ser excluda na tabela pai.

ON UPDATE - Esta opo especifica os procedimentos que devem ser feitos pelo SGBD quando houver uma alterao de um registro na tabela pai quando existe um registro correspondente nas tabelas filhas. As opes disponveis so as mesmas do ONDELETE. CHECK Esta opo permite criar uma restrio de linha. Isto , uma restrio que verifica a validade de uma expresso a cada tentativa de incluso ou alterao de um registro. Ex, em uma tabela Funcionrio, colocaramos um Check para testar o valor do salrio: CONSTRAINT Salario_OK CHECK (salario > 150).

Tipos de dados mais comuns (Padro ANSI)

Smallint - Armazena valores numricos, em dois bytes binrios, compreendidos entre o intervalo -32768 a +32767. Integer - Armazena valores numricos, em quatro bytes binrios, compreendidos entre o intervalo -2147483648 a +2147483647 Float Armazena valores numricos com ponto flutuante, em oito bytes binrios, compreendido entre o intervalo 1.79769313486232E308 a 4.94065645841247E-324Ademir Mazer Jr - http://www.winponta.com.br

_______________________________________________________________________________________________________________

Apostila de Banco de Dados - SQL - 32______________________________________________________________________________________________________________

para valores negativos, 4.94065645841247E-324 a 1.79769313486232E308 para valores positivos.

Decimal(n,m) - Armazena valores numricos com no mximo 15 dgitos. Nesta opo deve ser definida a quantidade de dgitos inteiros (n) e casas decimais (m) existentes no campo. Varchar (n) - Definir um campo alfanumrico de at n caracteres, onde n deve ser menor ou igual a 254 caracteres. Char (n) - Definir um campo alfanumrico de n caracteres, onde n deve ser menor ou igual a 254 caracteres. Long Varchar - Definir um campo alfanumricos de comprimento maior que 254 caracteres. Date - Definir um campo que ir armazenar datas. Time - Definir um campo que ir armazenar horas.

Tipos de Dados Interbase

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - SQL - 33______________________________________________________________________________________________________________

Nome BLOB

Tamanho Varivel

Abrangncia/Preciso O tamanho do segmento de um tipo BLOB limitado a 64 k

Descrio Tamanho ajustado dinamicamente para armazenar dados grandes como grficos, texto e voz digitalizada Unidade bsica da estrutura o segmento Texto de tamnho fixo Palavra chave CHARACTER alternativa:

CHAR(n)

n 1 a 32.767 bytes caracteres N determina a quantidade exata de caracteres armazenados pelo campo, at 32k 64 bits

DATE DECIMAL(p,s)

1 Jan 100 at 29 Fev 32768 Nmero com dgitos escalares direita do ponto decimal. Ex: DECIMAL (10,3) = ppppppp.sss

16, 32, 64 (p)reciso = 1 a 18; bits especifica pelo menos p dgitos de preciso a armazenar

(s)cale = 1 a 18; especifica o nmeros de casas decimais a armazenar, deve ser menor ou igual a p 2,225 x 10-308 a 1,797 x 10308

DOUBLE PRECISION

64 bits

IEEE Double Precision: 15 dgitos Dependente de plataforma, hoje a maioria das plataformas suporta 64 bits IEEE Single dgitos Inteiro longo (longword) precision: com 7

FLOAT INTEGER NUMERIC(p,s)

32 bits 32 bits

1,175 x 10-38 a 3,402 x 1038 -2.147.483.648 2.147.483.647

a

sinal

16, 32, 64 (p)reciso = 1 a 18; bits especifica exatamente p dgitos de preciso a armazenar

Nmero com dgitos escalares direita do ponto decimal. Ex: NUMERIC (10,3) = ppppppp.sss

(s)cale = 1 a 18; especifica o nmeros de casas decimais a armazenar, deve ser menor ou igual a p -32.768 a 32.768 0:00 AM a 23:59.9999 PM 1 Jan 100 at 29 Fev 32768 Tambm inclui informao de hora

SMALLINT TIME TIMESTAMP

16 bits 64 bits 64 bits

Inteiro curto com sinal (word)

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - SQL - 34______________________________________________________________________________________________________________

Nome VARCHAR(n)

Tamanho

Abrangncia/Preciso

Descrio Tipo string tamanho varivel Palavras alternativas: VARYING, VARYING chaves CHAR CHARACTER

N 1 a 32.765 caracteres. N caracteres determina a quantidade mxima de caracteres armazenados pelo campo.

Tabela 7 - Tipos de Dados Interbase

Exemplo Create Table: Create Table Filial ( Cod Nome Endereco Cidade CNPJ SmalInt Char(50) Char(50) Char(25) Char(20) Not Null, Not Null, Not Null, Not Null, Not Null,

Constraint filPK Primary Key (Cod), Constraint filCNPJ Unique (CNPJ) )

Alter TableAlterar a estrutura de uma tabela(arquivo) acrescentando, alterando, retirando e alterando nomes, formatos das colunas e a integridade referencial definidas em uma determinada tabela. Sintaxe: ALTER TABLE | COMPUTED BY (expressao)} [NOT TO TYPE POSITION DROP [NOT NULL] [NOT NULL WITH DEFAULT] ADD PRIMARY KEY DROP PRIMARY KEY ADD FOREIGN KEY (nome-coluna-chave-estrangeira) REFERENCES (nome-tabela-pai) ON DELETE [RESTRICT] [CASCADE] [SET NULL]_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

ADD { NULL] [DEFAULT {literal | NULL USER}] , ALTER [COLUMN]

MODIFY [NULL]

Apostila de Banco de Dados - SQL - 35______________________________________________________________________________________________________________

DROP FOREIGN KEY (nome-coluna-chave-estrangeira) REFERENCES (nome-tabela-pai) onde: As opes so semelhantes s encontradas no comando CREATE TABLE.

DROP - Realiza a retirada da coluna ou constraint especificada na estrutura da tabela. ADD - Realiza a incluso de nova coluna ou constraint ALTER - Realiza a troca do nome da coluna, troca do tipo de dado e da posio.

Drop TableDeletar a estrutura e os dados existentes em uma tabela. Aps a execuo deste comando estaro deletados todos dados, estrutura e ndices de acessos que estejam a ela associados. Sintaxe: DROP TABLE onde: nome-tabela - Representa o nome da tabela que ser deletada.

Create IndexCriar uma estrutura de ndice de acesso para uma determinada coluna em uma tabela. Um ndice de acesso permite um acesso mais rpido aos dados em uma operao de seleo. Os ndices podem ser criados a partir de um ou mais campos de uma tabela. Sintaxe: CREATE [UNIQUE] [ASC[ENDING] | DESC[ENDING]] INDEX ON (, [ ]) onde:

nome-ndice - Representa o nome da estrutura de ndice que ser criada. nome-tabela - Representa o nome da tabela que contem a coluna na qual ser criada o ndice de acesso. nome-coluna - Representa o nome da coluna que ser criada. Opo ASC/DESC - Representa a criao do ndice ordenada crescentemente (ASC) ou decrescentemente (DESC). ASC default. EX: CREATE INDEX cliNome ON Cliente (Nome)

Drop IndexDeletar uma estrutura de ndice de acesso para uma determinada coluna em uma tabela. Sintaxe: DROP INDEX _______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - SQL - 36______________________________________________________________________________________________________________

onde:

nome-ndice - Representa o nome da estrutura de ndice que ser deletada.

Comandos DMLInsertIncluir um novo registro em uma tabela do Banco de Dados. Sintaxe: INSERT INTO [(, [])] VALUES () onde:

nome-tabela - Representa o nome da tabela onde ser includa o registro. nome-coluna - Representa o nome da(s) coluna(s) tero contedo no momento da operao de incluso. Obs.: Este comando pode ser executado de duas maneiras:

Quando todos os campos da tabela tero contedo - Neste caso no necessrio especificar as colunas, entretanto a relao dos valores a serem includos devero obedecer a mesma seqncia da definio da tabela. Quando apenas parte dos campos da tabela tero contedo - Neste caso devem ser especificadas todas as colunas que tero contedo e os valores relacionados devero obedecer esta seqncia. Para os campos que no tem contedo especificado ser preenchido o valor NULL.

EX: INSERT INTO Filial (1, "MATRIZ", "R.CARLOS CAVALCANTI, 1000", "PONTA GROSSA", "9290209")

UpdateAtualiza os dados de um ou um grupo de registros em uma tabela do Banco de Dados. Sintaxe: UPDATE SET = [, = ] WHERE onde:

nome-tabela - Representa o nome da tabela cujo contedo ser alterado. nome-coluna - Representa o nome da(s) coluna(s) tero seus contedos alterados com o novo valor especificado. condio - Representa a condio para a seleo dos registros que sero atualizados. Este seleo podera resultar em um ou vrios registros. Neste caso a alterao ir ocorrer em todos os registros selecionados. Alterar o Salrio de todos os FuncionriosAdemir Mazer Jr - http://www.winponta.com.br

Ex:

_______________________________________________________________________________________________________________

Apostila de Banco de Dados - SQL - 37______________________________________________________________________________________________________________

UPDATE Funcionario SET Salario = Salario * 1.10 Alterar o Salrio de todos os Funcionrios na cidade da Filial 2 UPDATE Funcionario SET Salario = Salario * 1.10 WHERE filCod = 2

DeleteDeletar um ou um grupo de registros em uma tabela do Banco de Dados. Sintaxe: DELETE FROM WHERE onde:

nome-tabela - Representa o nome da tabela cujos registros sero deletados. condio - Representa a condio para a deleo dos registros. Este seleo poder resultar em um ou vrios registros. Neste caso a operao ir ocorrer em todos os registros selecionados. Deletar todos os Funcionrios DELETE FROM Funcionario Deletar o Funcionario Carlos da Silva DELETE Funcionario WHERE Nome = "Carlos da Silva"

Ex:

SelectSelecionar um conjunto de registros em uma ou mais tabelas que atenda a uma determinada condio definida pelo comando. Retorna o resultado da seleo na forma de registros. Select Bsico Sintaxe: SELECT {ALL | DISTINCT} {* | [, ]} tabela> [, ] WHERE ORDER BY {ASC | DESC} onde:

FROM = 0 Tab.Ref. Campos Tab.Ref. Duplica do Orde m A AAdemir Mazer Jr - http://www.winponta.com.br

Tipo

Tam

Nulo

Obs

_______________________________________________________________________________________________________________

Apostila de Banco de Dados Anexo A - 48______________________________________________________________________________________________________________

Nome cliCidade PRODUTO Nome Cod Descricao Preco Unidade Nome proPk

Campos Cidade

Pri m

Es t

Tab.Ref.

Campos Tab.Ref.

Duplica do X

Orde m

Tipo Int Varchar Float Char Campos Cod Pri m X

Tam 100

Nulo

Obs

>0 3 Es t Tab.Ref. Campos Tab.Ref. Duplica do Orde m A A

proDescricao Descricao

FUNCIONARIO Nome Cod Nome Endereco Comissao filCod Nome funPK Tipo SmallInt Char Char Float SmalInt Campos Cod Pri m X Es t Tab.Ref. Campos Tab.Ref. Duplica do Orde m A 50 50 >0 Tam Nulo Obs

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados Anexo A - 49______________________________________________________________________________________________________________

Nome funNome funFKfil

Campos Nome filCod

Pri m

Es t X Filial

Tab.Ref.

Campos Tab.Ref. Cod

Duplica do X

Orde m A A

DEPENDENTE Nome funCod Nome Nome depPK depFKfun Tipo SmallInt Char Campos FunCod,Nome funCod Pri m X X Funcionario Cod X Es t 50 Tab.Ref. Campos Tab.Ref. Duplica do Orde m A A Tam Nulo Obs

NF Nome Num Data cliCod funCod filCod Nome nfPK nfFKcli nfFKfil nfFKfun nfData Int Date Int SmalInt SmalInt Campos Num cliCod filCod funCod Data Pri m X X Cliente X Filial X Funcionario Cod Cod Cod X X X X Es t Tab.Ref. Campos Tab.Ref. Duplica do Orde m A A A A A Tipo Tam Nulo Obs

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados Anexo A - 50______________________________________________________________________________________________________________

ITEMNF Nome nfNum proCod Qtde Nome infPK infFKnf infFKpro Int Int Float Campos NfNum, proCod nfNum proCod Pri m X X NF X Produto Num Cod X X Es t Tab.Ref. Campos Tab.Ref. Duplica do Orde m A A A Tipo Tam Nulo Obs

EstFilial Nome proCod filCod Qtde Nome estPK estFKfil estFKpro Int SmalInt Float Campos Fil|Cod,proCod filCod proCod Pri m X X Filial X Produto Cod Cod X X Es t Tab.Ref. Campos Tab.Ref. Duplica do Orde m A A A Tipo Tam Nulo Obs

Exemplo de Valores das TabelasFILIAL

Cod

Nome 1 Matriz

Endereco R. Carlos Cavalcanti, 1000

Cidade Ponta Grossa

CNPJ 9290209

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados Anexo A - 51______________________________________________________________________________________________________________

Cod

Nome FILIAL 2 OESTE 3 FILIAL SUL

Endereco R. Palmeiras, 3333 R. Altas Ondas, 2878

Cidade Londrina

CNPJ 3939992

Florianopolis

3778111

FUNCIONARIO Cod Nome Endereco Comissao 10 7 10 10 5 filCod 1 3 2 2 3

1 Antonio Pereira R. Carlos Cavalcanti, 444 2 Antonio Pereira Av. das Palmeiras, 2312 3 Carlos da Silva 4 Maria Costa Severino 5 Jesus R. XV, 8383 R. 7 de Setembro, 221 de R. da Seca, 2222

DEPENDENTE funCod 1 Calos Pereira 1 Maria Pereira 2 Carlos Pereira 3 Maria da Silva 4 Jose da Costa 4 Carlos da Costa 4 Manoel da Costa Nome

CLIENTE Co d 1 2 Marina Lima Chico Buarque 3 Nome Antonio Pereira Endereco Cidade CPF 9848734 2 234333 Fone CreditoLim ite 1000 2400 1300

R. Carlos Cavalcanti, Ponta 444 Grossa R. da Flores, 222 R. Holanda, 1111 Londrina Ponta Grossa

377388 234232

3289328 2908432 9 89

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados Anexo A - 52______________________________________________________________________________________________________________

Co d 4

Nome Milton Nascimento Gal Costa

Endereco R. Cutelinho, 2221 R. Xv, 222 R. Bandolins, 299 Av. Central, 21232 R. do Breque, 333

Cidade Florianopoli s Florianopoli s Londrina

CPF

Fone

CreditoLim ite 3300 2000 1700 2100 1200

378378 2387327 3278327 8 293299 232879 83888 2398898 9 893289

5 Oswaldo 6 Montenegro Fernanda 7 Montenegro Marisa Monte 8

Londrina 2382398 Florianopoli s 3838

PRODUTO Cod 1 Ma 2 Laranja 3 Pra 4 Jaca Descricao Preco 1.2 KG 3 SC 1.5 KG 5 UND Unidade

ESTFILIAL filCod 1 1 1 1 2 2 3 3 3 proCod 1 2 3 4 1 3 1 2 4 Qtde 500 200 900 550 1000 400 1300 250 200

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados Anexo A - 53______________________________________________________________________________________________________________

NF Num 1000 1001 1002 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 Data 01/05/00 12:00 AM 01/10/00 12:00 AM 02/10/00 12:00 AM 03/03/00 12:00 AM 04/15/00 12:00 AM 04/15/00 12:00 AM 07/17/00 12:00 AM 07/18/00 12:00 AM 08/01/00 12:00 AM 08/10/00 12:00 AM 09/10/00 12:00 AM 09/10/00 12:00 AM 09/20/00 12:00 AM cliCod 3 5 5 3 8 6 6 1 8 7 5 1 6 funCod 1 2 5 1 5 3 3 1 2 4 2 1 3 filCod 1 3 3 1 3 2 2 1 3 2 3 1 2

ITEMNF nfNum 1000 1000 1001 1002 1002 1002 1005 1006 1007 proCod 1 3 2 3 1 4 4 1 2 Qtde 100 230 200 300 300 300 100 400 200Ademir Mazer Jr - http://www.winponta.com.br

_______________________________________________________________________________________________________________

Apostila de Banco de Dados Anexo A - 54______________________________________________________________________________________________________________

nfNum 1008 1008 1009 1010 1010 1010 1011 1011 1012 1012 1013 1013

proCod 3 2 4 1 3 4 2 1 1 3 2 3

Qtde 600 200 100 200 300 100 400 300 400 400 400 500

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - ndice de Figuras - 55______________________________________________________________________________________________________________

ndice de FigurasFigura 1 - Estrutura de um SGBD....................................................................................................6 Figura 2 - Nveis de Abstrao de Dados........................................................................................7 Figura 3 - Passos de Modelagem e Projeto das Informaes.........................................................8 Figura 4 - Ex. Esquemas e Instncias.............................................................................................9 Figura 5 - Cada Funcionrio para UM Dependente Cada Dependente para UM Funcionrio.......................................................................................11 Figura 6 - Cada Funcionrio para UM Depto Cada Depto para N Funcionrios .................................................................................................11 Figura 7 - Cada Funcionrio para N Projetos Cada Projeto para N Funcionrios.................................................................................................11 Figura 8 - Principais smbolos do DER..........................................................................................12 Figura 9 - Cardinalidade 1 para 1..................................................................................................13 Figura 10 - Cardinalidade 1 para Vrios........................................................................................13 Figura 11 - Cardinalidade Vrios para Vrios................................................................................13 Figura 12 - Representao de Entidade Fraca..............................................................................13 Figura 13 - Papis e Auto-Relacionamento...................................................................................14 Figura 14 - Relacionamento Unrio...............................................................................................14 Figura 15 - Relacionamento Binrio...............................................................................................14 Figura 16 - Relacionamento Ternrio............................................................................................14 Figura 17 - ContaCorrente TOTAL no relacionamento...............................................................14 Figura 18 - Representao de Totalidade em relacionamento ternrio.........................................15 Figura 19 - Atributos de Relacionamento......................................................................................15 Figura 20 - Especializao.............................................................................................................16 Figura 21 - Der no demonstra bem o relacionamento.................................................................16 Figura 22 - Agregao...................................................................................................................16 Figura 23 - Atributo Global.............................................................................................................16 Figura 24 - Relacionamento Funcionrio - Depto..........................................................................19 Figura 25 - DER Anexo A - Base para SQL...................................................................................38

_______________________________________________________________________________________________________________ Ademir Mazer Jr - http://www.winponta.com.br

Apostila de Banco de Dados - ndice de Tabelas - 56_______________________________________________________________________________________________________________

ndice de TabelasTabela Tabela Tabela Tabela Tabela Tabela Tabela Tabela Tabela Tabela Tabela 1 - Exemplo Tabela Cliente................................................................................................10 2 - Exemplo Tabela Conta.................................................................................................10 3 - Exemplo de Tabela Funcionrio...................................................................................17 4 - Caractersticas