BANCO DE DADOS – WILLIAM ZACARIOTTO 4- ABSTRAÇÃO DE DADOS MODULO I- CONCEITOS BÁSICOS VISÃO 1 VISÃO 2 VISÃO 3 1- SISTEMAS DE PROCESSAMENTO DE ARQUIVOS - Redundância e inconsistência Problema de integração Associação a aplicações Dificuldade de acesso ( solicitações não usuais ) Isolamento dos dados Múltiplos usuários ( atualização simultâneas ) Segurança de acesso NÍVEL CONCEITUAL NÍVEL FÍSICO Quais dados são armazenados e quais os relacionamentos Como os dados são armazenados 2- BANCO DE DADOS - CONCEITUAÇÃO Date : Sistemas de armazenamento de dados baseado em computador Korth : Coleção de dados que contém informação sobre um empreendimento particular DADO : Valor fisicamente registrado INFORMAÇÃO : Significado de um valor para um usuário 5- MODELOS DE DADOS Coleção de ferramentas conceituais para descrição, relacionamento, semântica e restrições dos dados GRUPOS DE MODELOS DE DADOS: a) 3- SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS ( SGBD ) DATA BASE MANAGEMENT SYSTEM ( DBMS ) Coleção de arquivos inter-relacionados e um conjunto de programas, que permitem a diversos usuários acessar e modificar esses arquivos. b) MODELOS DE DADOS BASEADOS EM REGISTROS Modelo Relacional Modelo de Rede Modelo Hierárquico c) PROGRAMA usuário SGBD PROGRAMA BANCO DE DADOS MODELOS LÓGICOS BASEADOS EM OBJETOS: Modelo Entidade-Relacionamento Modelo Binário Modelo Semântico de Dados Modelo Infológico E vários outros. . . MODELOS DE DADOS FÍSICOS Modelo unificador Memória em "Frames" 6- INDEPENDÊNCIA DE DADOS - INDEPENDÊNCIA FÍSICA: Capacidade de se modificar o esquema físico sem alterar os programas de aplicação - INDEPENDÊNCIA LÓGICA: Capacidade de se modificar o esquema conceitual sem alterar os programas de aplicação usuário 7- LINGUAGEM DE DEFINIÇÃO DADOS ( LDD) DATA DEFINITION ( DDL ) - DE dicionário de Dados ( ou Diretório ) 8- LINGUAGEM DE MANIPULAÇÃO DE DADOS ( LMD ) DATA MANIPULATION LANGUAGE ( DML ) - PROCEDIMENTAL: Específica quais dados são desejados e como chegar a eles - NÃO PROCEDIMENTAL: Especifica quais dados são desejados, sem especificar como chegar a eles 9- USUÁRIOS DO BANCO DE DADOS - Programadores de aplicação Usuários simples Usuários ocasionais Usuários especializados Data Base Administrador ( DBA ) USUÁRIOS Programas de Aplicação Banco de Dados PROGRAMADORES DE APLICAÇÃO Chamadas de Rotina 10- FUNÇÕES DO DBA - Definição do esquema Definição da estrutura de armazenamento e do método de acesso Modificação da organização física e do esquema Concessão de autorização para acesso Especificação de restrições de integridade 11- SISTEMA GERENCIADOR DE BANCO DE DADOS OBJETIVO: Proporcionar um ambiente que seja conveniente e eficiente na inserção e na recuparação de informações do banco de dados. TAREFAS EXECUTADAS: - Integração com o gerenciados de arquivos. - Garantia de integridade. - Garantia de segurança de acesso. - Garantia de recuperação. - Controle de concorrência. MODULO II METOLOGIAS DESENVOLVIMENTO DE SISTEMAS DE 1- ENFOQUES PARA DESENVOLVIMENTO DE UM SISTEMA 2- A NECESSIDADE DE METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O "PROBLEMA" DO SISTEMA: - Tecnicamente ruim - De difícil manutenção - Tecnicamente bom, mas. . . "Não era bem isso eu eu queria. . ." - Custos crescentes - Obsolecência AS CAUSAS: - Pouca interação usuário-analista - Usuário não sabe P.D - Analista não conhece a área da aplicação - Documento que especifica o sistemas não é facíl de ser entendido - Grande ênfase no "como fazer", pouca no "que fazer" - Não existe uma maneira sistemática de se registrar as necessidades e preferências do usuário. 3- ANÁLISE DE DADOS UTILIDADE: - Para prover um melhor conhecimento do problema. - Para evitar os problemas causados pela redundância - Para permitir a administração dos dados como recurso da empresa - Para permitir o compartilhamento dos dados por vários sistemas ABRANGÊNCIA: Pode ser usada para obter um modelo de dados de: - Toda a empresa - Da parte da empresa - De um grupo de sistemas - De um sistemas QUEM FAZ A ANÁLISE DE DADOS: - O analista, durante o projeto lógico ( proposta de Gane ) - Os usuários, orientados por ( proposta de Marlin e Finkelstein ) O administrador de dados TÉCNICAS DE ANÁLISE DE DADOS: - Modelo Entidade-Relacionamento - Normalização de relações analista COMPLEMENTO DA DEFINIÇÃO: . . . e, para o qual, há necessidade de serem armazenados dados MODULO III - MODELO ENTIDADE RELACIONAMENTO 1- MOTIVOS DA ESCOLHA DO MODELO Modelo simples Abrangente Amplamente utulizado Introduzido por: Chen, Peter - The Entity-Relationship Model 1976 Extensão do Diagrama de Estrutura de Dados de: Bachman, C. W. - Data Structure, Diagrams 1969 2- SERVENTIA DO MODELO Serve para a representação das estruturas de informações, não contendo uma linguagem para representação das manipulações. - 4- CONJUNTO DE ENTIDADES Kort: É um grupo de entidades do mesmo tipo. Setzer: É um grupo de entidades que têm características semelhantes. EXEMPLOS: Conjunto de funcionários Conjunto de clientes Conjunto de contas SIMBOLOGIA NO M.E.R.: DENOMINAÇÃO: Normalmente um substantivo no plural,às vezes acompanhado de uma palavra modificadora. Por costume, a inicial é maiúscula. Representação gráfica: 3- ENTIDADE Setzer: "Uma entidade é uma representação abstrata de um objeto do mundo real um ser, um fato, uma coisa, um organismo social, etc)." Korth: Uma entidade é um objeto que existe e é distinguível de outros objetos. Furtado: Uma entidade é um objeto que tem existência própria, quando-considerado no ontexto das atividades de uma empresa. EXEMPLOS: Funcionário Cliente Peça Produto Aluno Professor Pedido Recibo de caixa Conjunto de pontos, um ponto para cada funcionário. PARA EVITAR REDUNCANCIA; Cada "objeto" do mundo real deve ser representado por uma única entidade de um único conjunto de entidades. 5- ATRIBUTOS Chen: "Funções que levam um ponto de um conjunto de entidades a um ponto de um conjunto - de valores ( ou seja, registram o que se deseja descrever sobre uma entidade". Korth: "Atributo é uma funçào que mapeia um conjunto de entidades em um domínio". DOMÍNIO: Conjunto de valores permissíveis de um determinado atributo. entidades e elementos de outro conjunto de entidades". EXEMPLO: 6- DESCRIÇÃO DE ENTIDADES 11- CONJUNTO DE RELACIONAMENTOS Cada entidade é descrita por um conjunto de pares ( atributo, valor ), um par para cada atributo do conjunto de entidades. EXEMPLO: Cliente = { ( nome, JOSÉ ), ( número - RG, 10128243 ), ( rua, FLORES ), ( cidade, SÃO PAULO ) } 7- COMPOSIÇÃO DE ATRIBUTOS Korth: "É um grupo de relacionamentos do mesmo tipo ". Tendo E1, E2, . . . , En conjuntos de entidades, então, um conjunto de relacionamentos R é um subconjunto de ( e1, e2, . . . , en ) E1 e E2 e E2, . . , en e En Nde e1, e2, . . . en é um relacionamento Betzer: Conjunto de pares ordenados que indicam que um elemento de um conjunto de entidades está relacionado com um elemento de outro conjunto de entidades. Um atributo pode ser composto de um ou mais sub-atributos. EXEMPLO: Endereço - concatenação dos valores dos atributos - folha. 8- ATRIBUTO MULTIVALORADO: É um atributo que é representado poruma função multivalente. Conjunto de relacionamentos LOTAÇÕES: É o conjunto de pares ( f,d ) onde f Funcionários e d E Departamentos e tal que o par represente o fato de f estar lotado em d 12- RESTRIÇÕES DE MAPEAMENTO FUNÇÕES MULTIVALENTES: Funções que levam um ponto de um conjunto de entidades a um subconjunto qualquer do conjunto de valores. CARDINALIDADE DE MAPEAMENTO, ou CLASSE DO RELACIONAMENTO, ou GRAU DO RELACIONAMENTO É o número de entidades ao qual outra entidade pode estar associada via um relacionamento. 9- ATRÍBUTO DETERMINANTE Um atributo que é uma função biunívoca. Seja um atributo determinante. Então, para um elemento de um conjunto de entidades E, t ( d ) assume um só valor v do conjunto de valores e, dado v há um só d de E tal que t ( d ) = v UM PARA UM ( 1: 1 ) UM PARA MUITOS ( 1: N ) MUITOS PARA MUITOS ( M : N ) MUITOS PARA UM ( M : 1 ) 13-DEPENDÊNCIA EXISTENCIAL 10- RELACIONAMENTO Korth: "É uma associação entre entidades ". Betzer: "É uma estrutura abstrata que indica as associações entre elementos de um conjunto de Se X depende de Y, então X é existencialmente dependente de Y. Y- entidade dominante X - entidade subordinada 14- CONCEITO DE CHAVES SUPERCHAVES: Conjunto de um ou mais atributos que, tomados em conjunto, permite identificar unicamente uma entidade no conjunto de entidades. CHAVES CANDIDATAS: Superchaves menores possíveis, em que nenhum subconjunto próprio é superchave. CHAVE PRIMÁRIA: Chave candidata escolhida pelo projetista do banco de dados como mecanismoprincipal para a identificação de entidades no conjunto de entidades. ENTIDADE FORTE ( DOMINANTE ): Aquela que possui chave primária. ENTIDADE FRACA ( SUBORDINADA ): Aquela que não possui chave primária. DISCRIMINADOR: Conjunto de atributos que permite a distinção entre entidades fracas. 19- GENERALIZAÇÃO E ESPECIALIZAÇÃO GENERALIZAÇÃO: Resultado da união de dois ou mais conjuntos de entidades de nível mais baixo, produzindo um conjunto de entidades de nível mais alto. ESPECIALIZAÇÃO: Resultado da separação de um sub-conjunto de entidades de nível mais alto, formando um conjunto de entidades de nível mais baixo. 15- RELACIONAMENTOS PARCIAIS E TOTAIS Se um elemento E deve estar obrigatoriamente em uma relação R, diz-se que R é total em E. Caso contrário, diz - se que R é parcial em E. Relacionamento Lotações Lotações Gerenciamentos Gerenciamentos Participações Participações Restrições Total Parcial Total Parcial Total Parcial Em relação a Funcionários Deptos. Deptos. Funcionários Projetos Funcionários Os atributos da entidade de nível mais altos são herdados pelas entidades de nível mais baixos, às quais podem ser gregados outros atributos. 16- ATRIBUTOS DE RELACIONAMENTOS 20- AGREGAÇÕES 17- AUTO-RELACIONAMENTO ( PAPEL ) 18- RELACIONAMENTOS MULTIPLOS Agregação é uma abstração através da qual relacionamentos são tratados como entidades de nível mais alto. 21- REDUÇÃO DE DIAGRAMAS E-R A TABELAS 22- SEQUÊNCIA DE PASSOS DA ANÁLISE DE DADOS - Identificar as entidades Identificar os relacionamentos Construir o gráfico E-R Identificar e representar as cardinalidades Identificar os atributos das entidades e dos relacionamentos Determinar os atributos identificadores Descrever os elementos identificados no Dicionário de Dados 23- ABRANGÊNCIA DA ANÁLISE DE DADOS ( AD ) - QUANDO O SISTEMA NÃO COMPARTILHA DADOS: Pode ser aplicada nos limites definidos na "Análise de Contexto" - QUANDO O SISTEMA COMPARTILHAR DADOS: A AD deve ser adotada num nível mais abrangente, envolvendo todos sistemas que atuam no ambiente de dados compartilhados. A AD pode se restringir aos limites do sistemas e seu modelo deve ser incorporado ao modelo global. 24- INTERAÇÃO COM O DICIONÁRIO DE DADOS DOCUMENTAÇÃO DE ENTIDADES: - Descrição - Restrições de integridade - Volume - Evento de inclusão - Evento de exclusão - Responsável - Atributos - Atributos identificadores DOCUMENTAÇÃO DE RELACIONAMENTO: - Descrição - Responsável - Entidade e cardinalidade - Atributos - Atributos identificadores - Permitem elos implícitos ou explícitos Permitem elos 1:N ( maioria ) Permitem elos M:N ( alguns ) Não só diretamente implementáveis: - Relacionamentos de grau variável - Auto - relacionamentos - Tipos diferentes de entidades exercendo o mesmo papel MODULO IV- INTRODUÇÃO AOS SGBDs CONCEITOS DE COMPUTAÇÃO vs. MER - Arquivo ( - ) Conjunto de Entidades Registro ( - ) Entidade Tipo ( - ) Atributo ORGANIZAÇÃO DE ITENS ( CAMPOS ) Alguns SGBDs admitem: Itens estruturados ( atributos compostos ) Itens repetitivs ( atributos multivalorados ) 7- SUPORTE BÁSICO PARA MANIPULAÇÃO DE BDs - Estruturas - Operações primitivas ESTRUTURAS: - Arquivos de dados - Arquivos de elos - Arquivos de inversões OPÇÕES COMPLEXAS NÃO ADMITIDAS Registros heterogêneos ( atributos específicos de generalização / especialização ) Itens heterogêneos ( natureza dos atributos ) RELACIONAMENTO Encontram soluções diferentes nos BDs Realizam - se as soluções com o contato de: - Ligação entre dois registros de um mesmo arquivo ou de arquivos diferentes. MODALIDADES DE ELOS LÍCITOS: Ndo há um item ou grupo de itens os valores são comparavéis ao item grupo de itens do outro registro. EXPLÍCITOS: Ligações efetivas entre registros ( o elo explícito é dito "elo essencial" - é o único portador da informação de relacionamento ) Quais empregados estão lotados em "Vendas" Acessar "Vendas" em Departamentos Operação primitiva de seleção Acesso por valor ( "nome" é chave ) Localizar a classe de registros r Acessar todos registros de empregados referenciados na classe obtida Foi usado acesso por relacionamento Quais empregados são engenheiros? Utilizar arquivos de inversões Tipos de acesso: por valor Por relacionamento Serial OPERAÇÕES PRIMITIVAS: 6- DIFERENÇAS ENTRE SGBDs Manuseio de arquivos / elos / inversões: - criação - cancelamento duplicação classificação - Manuseio de registros: - Inserção Seleção Remoção Alteração - Apoio - Ativar BD Desativar BD Copiar BD Restaurar BD 8- PARA UTILIZAR O BD - Linguagem de Manipulação de Dados (LMD), ou Linguagem, hospedeira, com operações primitivas MODULO V- MODELO HIERÁRQUICO Ordem de acesso: A, B, F, G, H, C, I, D, E, J, K 1- INTRODUÇÃO Um usuário vê um banco de dados hierárquico como um conjunto de árvores. 6- RELACIONAMENTOS INDIVIDUAIS DIAGRAMA E-R Quando dois registros são unidos por um elo, um dos registros é coinsiderado descendente ( pai ) e o outro descendente ( filho ) 2- TERMINOLOGIA NÃO PADRONIZADA Arquivo / registro / item Conjunto de dados / segmento / campo DIAGRAMA DE ESTRUTURA DE ARVORE 3- CARACTERÍSTICAS DO MODELO - Os pelos são, obrigatoriamente, 1:N As ligações não tem nome As raízes são os únicos registros que não tem pai Nenhum nível de ascendentes pode faltar A rede não pode Ter ciclos Um registros só pode ser do tipo detalhe em uma única ligação Dependendo dos tipos de consultas possíveis, é necessário criar-se outra estrutura: 4- SITUAÇÕES NÃO PERMITIDAS 7- REPRESENTAÇÃO DE ESTRUTURAS NÃO HIERÁRQUICAS 5- ESTRUTURAS HIERÁRQUICA Observações: a) Fornecedores é "pai físico" de fornecimentos. Materiais é "pai lógico "de Fornecimentos ( cada ri liga-se apenas com um mj, Ao passo que cada mj temos vários ri ligação 1:N de Materiais para Fornecimentos ) b) Como as cadeias não se fecham, há a necessidade de se Ter um apontador de cada ri para seu pai. RESOLUÇÃO DO PROBLEMA DO IMS: Através da colocação de características de rede no modelo hierárquico, como uma estrutura denominada "pairing" ( emparelhamento ) EMPARELHAMENTO FÍSICO: - São introduzidos apontadores de Rb para A de Ra para B - As chaves podem permanecer nos B ( chaves físicas ) ou não ( chaves virtuais ) EXEMPLO: Fornecedores e Materiais Pares a ser representados: ( f1.m1 ) ( f1.m2 ) ( f2.m1 ) ( f2.m3 ) ( f2.m4 ) ( f3.m2 ) ( f3.m3 ) Duplicação de representação de pares: M1=rf1, rm2=rf3, etc EMPARELHAMENTO VIRTUAL: Evita a redundância da representação dos atributos do relacionamento Combinam - se ligações hierárquicas com ligações feitas com cadeias de apontadores c) Nos elementos ri há espaço para os atributos de relacionamento (não há mais redundância) d) Como navegações hierárquicas são mais eficientes que navegações em rede, pode ser mais interessante fixar Materiais como "pai físico"se as consultas partirem mais de Materiais que de Fornecedores. e) O usuário tem, sempre, uma visão hierárquica dos dados 8- MEIOS PARA RECUPERAÇÃO DE DADOS ÁREAS DE PROGRAMA - Gabaritos de registros Um para cada tipo de registro acessado - Ponteiros correntes Um para cada árvores, contendo o endereço do registro mais recentemente acessado, não importando o tipo - Status Flag Indica o resultado da última operação. Se = 0, a operação foi bem realizada. COMANDOS DE LEITURA - Get First - Get Unique - Get Next - Get next within parent SINTAXE ( APROXIMADA ) GET UNIQUE ( árvore ) WHERE ( condição ) GET UNIQUE FORNECEDORES WHERE CIDADE= "BRASILIA" Pesquisa em sub-árvore A raiz da sub-árvore á ultimo registro que foi localizado com o comando GET FIRST ou com o comando GET NEXT GET NEXT WITHIN PARENT < tipo registro > [ WHERE <condição> ] d) Imprimir o saldo total de todas contas pertencentes a " GOUVEIA": e) COMA = 0; Dada a hierarquia: GET FIRST CLIENTE WHERE CLIENTE.NOME = "GOUVEIA"; GET NEXT WITHIN PARENT CONTA; WHILE DB - STATUS = O DO BEGIN SOMA = SOMA + CONTA.SALDO; GET NEXT WITHIN PARENT CONTA; END; PRINT SOMA; a) CRIAÇÃO DE NOVOS REGISTROS Imprimir o endereço do cliente "OLIVEIRA" GET FIRST CLIENTE WHERE CLIENTE.NOME = "OLIVEIRA" PRINT CLIENTE. ENDEREÇO b) Imprimir o número da conta de "FERREIRA", cujo saldo seja maior que $10.000 ( se existir ): GET FIRST CONTA WHERE CLIENTE. NOME = "FERREIRA" AND CONTA.SALDO> - 10000; IF DB-STATUS = 0 THEN PRINT CONTA.NUMERO; 1- Montar os valores apropriados no gabarito correspondente 2- Adicionar o registro à árvore do banco: INSERT < tipo registro > [ WHERE < condição > ] a ) Incluir ao cliente "JOAQUIM" na agência "IMIRIM" CLIENTE.NOME = "JOAQUIM" CLIENTE.RUA = "AVANHANDAVA" CLIENTE.CIDADE = "SÃO PAULO"; INSERT CLIENTE WHERE NOME.AGÊNCIA= "IMIRIM" Para localizar outros registros: GET NEXT ( tipo registro ) [ WHERE ( condição ) ] c) Imprimir o número de todas as contas com saldo > = 50000 GET FIRST CONTA WHERE CONTA.SALDO > = 50000; WHILE DB-STATUS = O DO BEGIN PRINT CONTA.NUMERO; GET NEXT CONTA WHERE CONTA.SALDO > =50000; END; b) Incluir a conta número "655"para o cliente "JOAQUIM" CONTA.NUMERO = 655; CONTA.SALDO = 100; INSERT CONTA WHERE CLIENTE.NOME = "JOAQUIM" MODIFICAÇÃO DE REGISTRO EXISTENTE REPLACE ( GET HOLD ) a) Trocar o endereço do cliente "BORGES" para "R ANTILHAS": GET HOLD FIRST CLIENTE WHERE CLIENTE.NOME = "BORGES"; CLIENTE.RUA = "R ANTILHAS"; REPLACE; REMOÇÃO DE UM REGISTRO DELETE a) - DIAGRAMA DE OCORRÊNCIAS Ou Instância do Banco de Dados Remover a conta 561: GET HOLD FIRST CONTA WHERE CONTA.NUMERO = 561; DELETE; MODULO VII 1- INTRODUÇÃO Referência a um determinado modelo. Proposto por um gurpo de estudos formados para estabelecer um padrão de estruturas e linguagem para GBDs. Grupo formado pela comissão COBOL da CODASYL ( "Conferente on Data Systems Language" ), conhecido por DBTG ( "Data Base Task Group"). Assim, o modelo de redes é conhecido como: MODELO CODASYL, ou MODELO DBTG. No modelo de rede os elos podem ser M:N. 2- CARACTERÍSTICAS DO MODELO - - As ligações entre conjuntos de dados são físicas ( implementadas através de cadeias de apontadores ) As ligações são binárias As ligações são de classes 1:N ( Donos e Membros ) As ligações não tem atributos As ligações não tem nome Donos e membros devem ser registros de tipos diferentes Um mesmo registro pode aparecer em mais de um conjunto ( como dono ou mambro ) Os SGBDs CODASYL permitem mais apontadores Apontadores mínimos do DBTG Permitem percursos e inserções eficientes Apontadores dos detalhes para seus mestres 4- ATRIBUTOS MULTIVALORADOS Em diagrama de esquema: 3- DIAGRAMA PARA REPRESENTAÇÃO DAS LIGAÇÕES - DIAGRAMA DO ESQUEMA Ou Diagrama de Estruturas de Dados Especifica a tonalidade da estrutura lógica do Banco de Dados 5- AUTO RELACIONAMENTOS 8- GENERALIZAÇÃO E ESPECIALIZAÇÃO 6- RELACIONAMENTOS MÚLTIPLOS 7- AGREGAÇÕES 9- MODELOS DE REDES RESTRITAS ( TOTAL ) Além das características do modelo de Rede, este modelo possui mais uma restrição fundamental: Se um conjunto de dados é mestre em uma ligação qualquer, ele deve ser mestre em todas outras ligações em que ocorre, e, similarmente, se for detalhe. A rede, então, passa a Ter somente dois níveis Usando-se os nomes para referência às colunas, a ordem destas é é irrevelante; Cada relação recebe um nome, distinto do nome de qualquer outra relação; Os valores de uma coluna são retirados todos um mesmo conjunto, denominado domínio; Duas ou mais colunas distintas podem ser definidas sobre o mesmo domínio. 3- ESQUEMA DE UMA RELAÇÃO É descrito pelo identificador da relação e pelo conjunto de nomes de suas colunas, conforme: R ( C1, C2, . . . , Cn ) MODULO VII - MODELO RELACIONAL 1- O MODELO RELACIONAL Proposto por E.F.Codd. em 1970. Divisão do Modelo Relacional: O Modelo Relacional Normalizado ( MRN ) O Modelo Relacional Não Normalizado (MRNN) 4- CARACTERÍSTICAS ESSENCIAL DO MODELO RELACIONAL ITENS DE BUSCA: - Uma relação pode Ter vários itens de busca; - Um item de busca pode ser composto ( englobar várias colunas concatenadas numa ordem especificada pelo projetista ). . MODELO RELACIONAL NORMALIZADO DEFINIÇÕES BÁSICAS: MRN pode ser definido como um modelo de dados no qual: Os conjuntos de dados são representados por TABELAS DE VALORES; Cada tabela é denominada RELAÇÃO; Cada tabela é organizada em linhas e colunas; O número de colunas é denominado GRAU DA RELAÇÃO; Cada linha ( registro ) é denominada TUPLA; O conjunto de valores do qual são retirados os elementos das células de uma coluna é denominada DOMÍNIO. 2- PROPRIEDADES DO MRN Cada célula só pode conter, no máximo, um único valor ( podendo ser vazia ); do ponto de vista do usuário, a ordem das linhas é irrevelante; Não há duas linhas iguais; Cada coluna tem um nome; Duas colunas distintas devem Ter nomes diferentes; 5- CHAVES Dada uma relação R, dizemos que uma coluna D, ou uma concatenação D de colunas de R é uma chave R se D satisfazer as seguintes restrições: a- D é um item de busca; b- D não é vazio para nenhuma linha de R; c- Dado um valor de D, existe apenas uma linha de R com esse valor em D. ( restrições 2 e 3: restrição de integridade de identidade ) 6- INDICAÇÃO DE CHAVES NOS ESQUEMAS Sublinham -se colunas que as compõe. Se a chave é composta de mais de uma coluna, indica - se a ordem de concatenação ( se não for da esquerda para a direita ), e unem - se os grifos. CHAVE: Item de busca, acrescido da estrição de integridade de identidade. ITEM DE BUSCA: Produz uma organização interna especial dos arquivos, de forma a se obter maior eficiência na busca segundo valores ou condições sobre valores dessas colunas. Seleção Projeção Produtos cartesiano União Diferença Seleção e projeção são chamadas operações UNÁRIAS, uma vez que operam em uma relação. Produto cartesiano, união e diferença são chamadas operações BINÁRIAS, uma vez que operam em pares de relações. - 7- LIGAÇÕES Sejam duas relações R1 e R2 do MRN. Diz - se que existe uma ligação entre R1 e R2 através das colunas ( ou sequência de colunas ) C1 de R1 e C2 de R2 se: a- C1 e C2 têm os mesmos domínios; b- Existem, em alguns instantes, valores comuns em C1 e C2. Operações adicionais ( não acrescentam qualquer poder à álgebra relacional, porém simplificam consultas comuns ): Intersecção Junção theta Junção natural Divisão 10- SELEÇÃO 11- Seleciona tuplas que satisfazem um dado predicado. Se uma linha L1 de R1 tem em C1 o mesmo valor que uma linha L2 de R2 em C2, diz - se que L1 e L2 são LINHAS LIGADAS. Korth: Predicado ( Relação Argumento ) 8- LINGUAGENS DE MANIPULAÇÃO 12- PROJEÇÃO ALGEBRA RELACIONAL As operações com os dados são expressas por meio de expressões algébricas cujos operandos são relações. O resultado T é uma relação que contém apenas as colunas indicadas. CÁLCULO RELACIONAL Definem - se às relações usando - se predicados da lógica, na mesma linha das definições usuais de conjuntos. Furtado: Relação Argumento [ atributos ] 9- ÁLGEBRA RELACIONAL Furtado: Relação Argumento ( predicado ) Korth: atributos ( Relação Argumento ) As tuplas em duplicata que seriam criadas, por não serem considerados os outros domínios, são eliminadas. Resultado de uma operação de álgebra relacional é sempre uma nova relação. 13- PRODUTO CARTESIANO OPERAÇÕES DE ALGEBRA RELACIONAL A relação T conterá todas as tuplas de R1 concatenadas com todas as tuplas de R2. Operações fundamentais (suficientes para expressar qualquer consulta em álgebra relacional): A resultante nem sempre apresenta combinações reais. Na expressão de álgebra relacional de use a operação intersecção pode ser substituída por um par de operações de diferença, como segue: 17- JUNÇÃO 14- UNIÃO O resultado T é uma relação que contém todas as tuplas de R1 e R2, sem repetição (isto é, todas as tuplas que aparecem em uma ou nas duas relações) O resultado T é uma relação que contém, concatenadas, as tuplas de R1 e R2 que satisfazem uma comparação sobre os domínios indicados. As repetições ou duplicatas ( na mesma relação ) são proibidas no modelo relacional porque uma relação ) é definida como conjunto de tuplas e, em conjuntos, cada elemento só pode aparecer uma vez. 18- DIVISÃO Para uma operação R U S ser legal, é necessário que duas condições sejam asseguradas: - As relações R e S devem ser do mesmo grau, isto é, devem possuir o mesmo número de atributos. - Os domínios de cada atributo devem ser os mesmos. O resultado T é uma relação que contém apenas as tuplas da relação dividendo que contenham todo o domínio da coluna indicada da relação divisor. A relação resultante conterá apenas as colunas complementares à coluna dividendo. ESQUEMA DA OPERAÇÃO: - 15- DIFERENÇA O resultado T é uma relação que contém as tuplas que aparecem em R1 mas em R2 ( as relações devem ser união - compatíveis ) - - 16- INTERSECÇÃO O resultado T é uma relação que contém apenas as tuplas que aparecem em R1 e R2. As relações devem ser união - compatíveis. Agrupam -se as tuplas de N que têm o mesmo valor para as colunas complementares à coluna dividendo ( cn ). Cria-se a projeção DCcd]. Verificam - se quais os grupos de tuplas de N que que contenham todos os valores de cd na coluna cn. Copia -se na resultante T as colunas complementares da tupla que satisfaz a condição anterior. UNITÁRIO, PREÇO TOTAL ), TOTAL DO PEDIDO ) Para que a relação "PEDIDO" esteja na 1FN é necessário desmembra-la em duas relações. PEDIDO ( NÚMERO DO PEDIDO, DATA DO PEDIDO, DATA DA ENTREGA, CGC DO CLIENTE, NOME DO CLIENTE, ENDEREÇO DO CLIENTE, TOTAL DO PEDIDO ) LINHA DO PEDIDO ( NÚMERO DO PEDIDO, CÓDIGO DO ITEM, QUANTIDADE, PREÇO UNITÁRIO, PREÇO TOTAL ) MODULO VIII - NORMALIZAÇÃO DE RELAÇÕES 1- NORMALIZAÇÃO DE RELAÇÕES Técnica para simplificação de relações com o fito de evitar as anomalias de atualização. 4- DEPENDÊNCIA FUNCIONAL Um domínio ( ou sequência de domínios B depende funcionalmente de um domínio ( ou sequência de domínios ) A se para cada valor a de A só existe um valor que possa aparecer junto com a nas tuplas da relação sendo considerada. 2- ANOMALIAS DE ATUALIZAÇÃO NOTAÇÃO: NA INCLUSÃO: Repetição da informação. F:A-B B é funcionalmente dependente de A, ou A determina funcionalmente B NA ALTERAÇÃO: Alteração de várias tuplas. GENERALIZAÇÃO: NA EXCLUSÃO: Perda de informações. F : A1, . . . , Na - B Um conjunto de domínios A1, . . . , Na determina funcionalmente B 3- PRIMEIRA FORMA NORMAL Diz-se que B é parcialmente dependente de A1, . . . , An se nem todos os domínios A1, . . . , Na são necessários para determinar B Uma relação está na primeira forma normal (1FN) se não possuir grupos de repetição ( ou seja, se todos atributos na relação estiveram baseados em domínios simples ). SOLUÇÃO: Desmembrar a relação em uma ou mais relações sem grupos de repetição. Exemplo: PEDIDO ( NÚMERO DO PEIDO, DATA DO PEDIDO, DATA DA ENTREGA, CGC DO CLIENTE, NOME DO CLIENTE, ENDEREÇO DO CLIENTE, ( CÓDIGO DO ITEM, NOME DO ITEM, QUANTIDADE, PREÇO 5- SEGUNDA FORMA NORMAL Uma relação está na Segunda forma normal (2FN) se: a) Estiver na 1FN, e, b) Se todos atributos que não existe são chaves são dependentes de toda a chave e não apenas de parte dela. SOLUÇÃO: Desmembrar a relação de modo que não haja atributo não chave dependente de apenas parte da chave. LINHA DO PEDIDO ( NÚMERO DO PEDIDO, CÓDIGO DO ITEM, QUANTIDADE, PREÇO TOTAL ) ITEM ( CÓDIGO DO ITEM, NOME DO ITEM, PREÇO UNITÁRIO ) 6- DEPENDÊNCIA TRANSITIVA Se A, B e C são domínios, diz - se que C é transitivamente dependente de A se: A - B, B - C e B- A 7- TERCEIRA FORMA NORMAL Uma relação está na terceira forma normal ( 3FN ) se: a) Estiver na 2FN, e, b) Nenhum atributo não - principal está com dependência transitiva em relação a alguma chave ( ou seja , se todos atributos não-chaves são independentes entre si ) SOLUÇÃO: PEDIDO ( NÚMERO DO PEDIDO, DATA DO PEDIDO, DATA DA ENTREGA, CGC DO CLIENTE, TOTAL DO PEDIDO ) CLIENTE ( CGC DO CLIENTE, NOME DO CLIENTE, ENDEREÇO DO CLIENTE ) LINHA DO PEDIDO ( NÚMERO DO PEDIDO, CÓDIGO DO ITEM, QUANTIDADE, PREÇO TOTAL )