Disciplina de Banco de Dados Prof. Caio Sandro 9/19/2014 3:57 PM Suporte Informatica 2 1.1.Conceito Habilidade mental que permite aos seres humanos visualizarem os problemas do mundo real com vrios graus de detalhe, dependendo do contexto do problema. (J.Rumbaugh - Modelagem e Projetos Baseados em Objetos) 1.Nveis de Abstrao de Informao 9/19/2014 3:57 PM Suporte Informatica 3 1.Nveis de Abstrao de Informao 1.1.Conceito (Valdemar W. Setzer) mundo real seres, objetos, organismos, fatos organizao; alteraes modelo descritivo informaes informais descries das estruturas e das transaes modelo conceitual informaes formais estruturas de informaes; especificaes de manipulao modelo operacional dados estruturas externas de dados; especificaes e programas de manipulao modelo interno cadeia de bits e bytes estruturas internas de arquivos e tabelas; programas interpretveis ou executveis 9/19/2014 3:57 PM Suporte Informatica 4 1.Nveis de Abstrao de Informao 1.1.Conceito (Henry F. Korth) Viso 1 Viso 2 ... Viso 3 Nvel Conceitual Nvel Fsico 9/19/2014 3:57 PM Suporte Informatica 5 1.Nveis de Abstrao de Informao 1.2.Modelos de Dados Coleo de ferramentas conceituais para descrio de dados, relacionamento entre os dados, semntica e restries de dados. (Henry F. Korth) 9/19/2014 3:57 PM Suporte Informatica 6 1.Nveis de Abstrao de Informao 1.2.Modelos de Dados Modelos lgicos baseados em objetos Modelo Entidade-Relacionamento Modelo Binrio Modelo de Semntica de Dados Modelo Infolgico Modelos lgicos baseados em registros Modelo Relacional Modelo de Rede Modelo Hierrquico Modelos de dados fsicos. DIVISO EM 3 GRUPOS: 9/19/2014 3:57 PM Suporte Informatica 7 1.Nveis de Abstrao de Informao 1.3.Instncias e Esquemas Instncia: coleo de informaes armazenadas no banco de dados em um instante particular. Esquema: concepo global do banco de dados. Esquema = Definio, Modelo Instncia = Valor, Contedo Cliente (Saldo, Idade) Ana (1200.00, 29) Joo (500.00, 35) 9/19/2014 3:57 PM Suporte Informatica 8 1.Nveis de Abstrao de Informao 1.4.Independncia de Dados a capacidade de modificar uma definio de esquema em um nvel, sem afetar a definio de esquema em um nvel mais alto Independncia de dados FSICA: capacidade de modificar o esquema fsico sem precisar reescrever os programas de aplicao Independncia de dados LGICA: capacidade de modificar o esquema conceitual sem a necessidade de reescrever os programas de aplicao 9/19/2014 3:57 PM Suporte Informatica 9 1.Nveis de Abstrao de Informao 1.5.Linguagem de Definio de Dados (Data Definition Language - DDL) Linguagem que define as aplicaes, arquivos e campos que iro compor o banco de dados (comandos de criao e atualizao da estrutura dos campos dos arquivos). EX: Create Table (comando SQL que cria tabela) Create Index (comando SQL que cria ndice em uma tabela) 9/19/2014 3:57 PM Suporte Informatica 10 1.Nveis de Abstrao de Informao 1.5.Linguagem de Definio de Dados (Data Definition Language - DDL) Onde ficam armazenadas estas definies? Dicionrio de Dados (Data Dictionary - DD): 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. 9/19/2014 3:57 PM Suporte Informatica 11 1.Nveis de Abstrao de Informao 1.6.Linguagem de Manipulao de Dados (Data Manipulation Language - DML) Linguagem que permite aos usurios acessar ou manipular dados organizados por um modelo de dados apropriado. 9/19/2014 3:57 PM Suporte Informatica 12 1.Nveis de Abstrao de Informao 1.6.Linguagem de Manipulao de Dados (Data Manipulation Language - DML) O que a manipulao de dados? A recuperao da informao armazenada no banco de dados. A insero de novas informaes no banco de dados. A remoo de informaes do banco de dados. 9/19/2014 3:57 PM Suporte Informatica 13 1.Nveis de Abstrao de Informao 1.6.Linguagem de Manipulao de Dados (Data Manipulation Language - DML) Existem dois tipo bsicos e 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). 9/19/2014 3:57 PM Suporte Informatica 14 1.Nveis de Abstrao de Informao 1.7.Sistema Gerenciador de Banco de Dados (SGBD) Um SGBD uma coleo de programas que permitem ao usurio definir, construir e manipular Bases de Dados para as mais diversas finalidades. Um conceito que dever ficar bastante claro inicialmente o que envolve a separao clara entre os Gerenciadores de Base de Dados dos Gerenciadores de Arquivo. Sistemas baseados em "Banco de Dados" baseados em Btrieve e dBase (Fox e Clipper), podem no mximo simular as caractersticas tpicas de um ambiente de Banco de Dados. As linguagens Delphi (utiliza opcionalmente o padro dBase) e o VB (que utiliza o Access), recomendam a utilizao de Banco de Dados reais, porm utilizam queles "Banco de Dados" que possuem algumas caractersticas de Bancos de Dados, mas possuem caractersticas tpicas de Gerenciadores de Arquivo. 9/19/2014 3:57 PM Suporte Informatica 15 1.Nveis de Abstrao de Informao 1.7.Sistema Gerenciador de Banco de Dados (SGBD) Caractersticas Gerais de um SGBD: Interao com o gerenciador de arquivos Garantia de Integridade Garantia de Segurana Recuperao e Backup Controle de Concorrncia Interface de Manipulao 9/19/2014 3:57 PM Suporte Informatica 16 1.Nveis de Abstrao de Informao 1.8.Administradores e Usurios de Banco de Dados Administrador de Dados: Desenvolve e administra centralizadamente estratgias, procedimentos, prticas e planos capazes de disponibilizar os dados corporativos necessarios, quando necessrios, com integridade, privacidade, documentao e compartilhamento. Participa dos levantamentos de dados, e regras de negcio da empresa. Elabora e/ou acompanha a confeo 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. 9/19/2014 3:57 PM Suporte Informatica 17 1.Nveis de Abstrao de Informao 1.8.Administradores e Usurios de Banco de Dados Administrador de Banco de Dados: Define a criao do esquema original do banco de dados, a partir dos modelos lgicos. Definio da estrutura de armazenamentoe do mtodo de acesso. Modificao da organizao fsica e do esquema. Concesso de autorizao para acesso a dados. Especificao de restries e integridades. 9/19/2014 3:57 PM Suporte Informatica 18 1.Nveis de Abstrao de Informao 1.8.Administradores e Usurios de Banco de Dados Usurios: Programadores de Aplicao Usurios Ocasionais Usurios Simples Usurios Especializados 9/19/2014 3:57 PM Suporte Informatica 19 1.Nveis de Abstrao de Informao 1.9.Estrutura Geral de Sistema Componentes Funcionais de um SGBD: 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. 9/19/2014 3:57 PM Suporte Informatica 20 1.Nveis de Abstrao de Informao 1.9.Estrutura Geral de Sistema 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. Estruturas de Dados de um SGBD: 9/19/2014 3:57 PM Suporte Informatica 21 1.Nveis de Abstrao de Informao 1.10.Vantagens dos Bancos de Dados Reduo ou Eliminao de Redundncias Eliminao de Inconsistncias Compartilhamento dos Dados Restries de Segurana Padronizao dos Dados Independncia dos Dados Manuteno da Integridade 9/19/2014 3:57 PM Suporte Informatica 22 2.Modelo Entidade-Relacionamento O modelo de dados entidade-relacionamento baseia-se na percepo de um universo constitudo por um grupo bsico de objetos chamados entidades e por relacionamentos entre estes objetos. Ele foi desenvolvido a fim de facilitar o projeto de banco de dados permitindo a especificao de um esquema de empreendimento. Tal esquema representa a estrutura lgica global do banco de dados. 9/19/2014 3:57 PM Suporte Informatica 23 2.Modelo Entidade-Relacionamento 2.1.Entidades e Conjuntos de Entidades Entidade um objeto que existe e distinguvel de outros objetos. Conjunto de Entidades um grupo de entidades do mesmo tipo. Atributo Um conjunto de diferentes atributos caracteriza uma entidade. Domnio dos Atributos Conjunto de valores permitidos ao atributo. 9/19/2014 3:57 PM Suporte Informatica 24 2.Modelo Entidade-Relacionamento 2.1.Entidades e Conjuntos de Entidades Joo Rua B Ponta grossa Maria Rua H Ponta Grossa Carlos Rua S Curitiba Ana Rua T Ponta Grossa CLIENTE 4234 500 2234 1200 654 5000 55 4500 CC 9/19/2014 3:57 PM Suporte Informatica 25 2.Modelo Entidade-Relacionamento 2.2.Relacionamentos e Conjuntos de Relacionamentos Relacionamento uma associao entre vrias entidades. Conjunto de Relacionamentos um grupo de relacionamentos do mesmo tipo. 9/19/2014 3:57 PM Suporte Informatica 26 2.Modelo Entidade-Relacionamento 2.3.Restries de Mapeamento Cardinalidade Restrio que expressa o nmero de entidades ao qual outra entidade pode estar associada via um relacionamento. 9/19/2014 3:57 PM Suporte Informatica 27 2.Modelo Entidade-Relacionamento 2.3.Restries de Mapeamento 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. Um-para-muitos (1:N): uma entidade em A est associada a qualquer nmero de entidades em B, entretanto uma entidade em B est associada a no mximo uma entidade em A. 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. 9/19/2014 3:57 PM Suporte Informatica 28 2.Modelo Entidade-Relacionamento 2.3.Restries de Mapeamento Exemplo Cardinalidade Um-para-um (1:1) a2 b1 b2 b3 b4 a1 a3 a4 a2 9/19/2014 3:57 PM Suporte Informatica 29 2.Modelo Entidade-Relacionamento 2.3.Restries de Mapeamento Exemplo Cardinalidade Um-para-Muitos (1:N) a2 b1 b2 b3 b4 a1 a3 a2 b4 9/19/2014 3:57 PM Suporte Informatica 30 2.Modelo Entidade-Relacionamento 2.3.Restries de Mapeamento Exemplo Cardinalidade Muitos-para-Muitos (N:N) a2 b1 b2 b3 b4 a1 a3 a4 a2 9/19/2014 3:57 PM Suporte Informatica 31 Dependncia Existencial: se 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. a2 b1 b2 b3 b4 a1 a3 a2 b4 a2 b1 b2 a1 a3 b4 2.Modelo Entidade-Relacionamento 2.3.Restries de Mapeamento 9/19/2014 3:57 PM Suporte Informatica 32 2.Modelo Entidade-Relacionamento 2.4.Chaves Primrias Como fazer para identificar uma entidade e/ou um relacionamento em um conjunto de entidades de um Banco de Dados? 9/19/2014 3:57 PM Suporte Informatica 33 2.Modelo Entidade-Relacionamento 2.4.Chaves Primrias Superchave: conjunto de um ou mais atributos que permite identificar unicamente uma entidade no conjunto de entidades. Chaves Candidatas: conjuntos com o menor nmero possvel de atributos que permite identificar unicamente uma entidade no conjunto de entidades. Chave Primria: chave candidata escolhida como identificao de entidades no conjunto de entidades. Chave Estrangeira: atributo de uma entidade que chave primria da entidade com a qual possui relacionamento. 9/19/2014 3:57 PM Suporte Informatica 34 2.Modelo Entidade-Relacionamento 2.5.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 um conjunto mnimo de atributos que possa identificar uma entidade em um conjunto de entidades fracas. 9/19/2014 3:57 PM Suporte Informatica 35 2.Modelo Entidade-Relacionamento 2.5.Entidades Fortes e Fracas 4234 500 2234 1200 654 5000 55 4500 CC 5 D 10 6 C 12 2 C 150 8 D 150 1 C 70 2 D 60 Tansao 9/19/2014 3:57 PM Suporte Informatica 36 2.Modelo Entidade-Relacionamento 2.6.Diagrama Entidade-Relacionamento (MER) Entidade: representada por retngulos. Atributos: representados por crculos ou elipses. Relacionamentos: representados por losangos ligados s entidades por linhas. Cliente nome endereo rg CC saldo numero ClienteConta 9/19/2014 3:57 PM Suporte Informatica 37 2.Modelo Entidade-Relacionamento 2.6.Diagrama Entidade-Relacionamento (MER) Restries de Mapeamento Cliente nome endereo rg CC saldo numero ClienteConta 1 1 Cliente nome endereo rg CC saldo numero ClienteConta 1 N Cliente nome endereo rg CC saldo numero ClienteConta N N 9/19/2014 3:57 PM Suporte Informatica 38 2.Modelo Entidade-Relacionamento 2.6.Diagrama Entidade-Relacionamento (MER) Restries de Mapeamento Cliente nome endereo rg CC saldo numero ClienteConta 1 1-N Cliente nome endereo rg CC saldo numero ClienteConta 1-2 N Aluno nome endereo rg Disciplina Prof Nome Matricula 30 N 9/19/2014 3:57 PM Suporte Informatica 39 2.Modelo Entidade-Relacionamento 2.6.Diagrama Entidade-Relacionamento (MER) Papis Empregado nome endereo rg Trabalha para 1 N gerente funcionrio Entidade Fraca CC Transaes data numero CCTransao 1 N saldo numero valor 9/19/2014 3:57 PM Suporte Informatica 40 2.Modelo Entidade-Relacionamento 2.6.Diagrama Entidade-Relacionamento (MER) Grau do Relacionamento Empregado nome endereo rg Trabalha para 1 N gerente funcionrio Unrio CC Transaes data numero CCTransao 1 N saldo numero valor Binrio 9/19/2014 3:57 PM Suporte Informatica 41 2.Modelo Entidade-Relacionamento 2.6.Diagrama Entidade-Relacionamento (MER) Grau do Relacionamento Cliente nome endereo rg 1-2,1-N CC Agncia nome ClienteCCGerente 1-N,1-N 1,N saldo numero Ternrio 9/19/2014 3:57 PM Suporte Informatica 42 2.Modelo Entidade-Relacionamento 2.6.Diagrama Entidade-Relacionamento (MER) Dependencia Existencial ou Relacionamento Parcial CC Transaes data numero CCTransao 1 N saldo numero valor Nem todas as contas correntes precisam conter transaes, mas todas as transaes devem se relacionar com uma conta corrente. 9/19/2014 3:57 PM Suporte Informatica 43 2.Modelo Entidade-Relacionamento 2.6.Diagrama Entidade-Relacionamento (MER) Atributos de Relacionamentos Cliente nome endereo rg CC saldo numero ClienteConta N N rg numero 9/19/2014 3:57 PM Suporte Informatica 44 2.Modelo Entidade-Relacionamento 2.6.Diagrama Entidade-Relacionamento (MER) Especializao ou Generalizao Conta saldo numero uma Poupana juros Corrente descoberto 9/19/2014 3:57 PM Suporte Informatica 45 2.Modelo Entidade-Relacionamento 2.6.Diagrama Entidade-Relacionamento (MER) Especializao ou Generalizao As especializaes se utilizam de herana para compartilhar atributos e/ou relacionamentos. Isto quer dizer que as entidades Popana e Corrente possuem todos os atributos e relacionamentos da entidade Conta, mas a entidade Conta no possue os relacionamentos e atributos das entidades especializadas. Diz-se que a entidade superior (Conta) a entidade Me. E as entidades inferiores (Poupana e Corrente) so entidades Filho. Desta forma fcil fazer a analogia de que os filhos herdam as caractersticas dos pais, e nunca o contrrio. 9/19/2014 3:57 PM Suporte Informatica 46 2.Modelo Entidade-Relacionamento 2.6.Diagrama Entidade-Relacionamento (MER) Agregao Funcionrio Projeto Trabalha N N Mquina Usa N 1
9/19/2014 3:57 PM Suporte Informatica 47 2.Modelo Entidade-Relacionamento 2.6.Diagrama Entidade-Relacionamento (MER) Simplificando Relacionamentos Cliente nome endereo rg CC saldo numero ClienteConta N N rg numero Cliente nome endereo rg CC saldo numero ClienteConta N N rg numero 1 1 9/19/2014 3:57 PM Suporte Informatica 48 3.Restries de Integridade Um meio de assegurar que mudanas feitas no banco de dados, no resultem em perdas e/ou inconsistncias dos dados. 9/19/2014 3:57 PM Suporte Informatica 49 3.Restries de Integridade Tipos de Restrio Declaraes de Chave: O conjunto de restries e atualizaes vlidas restringido quelas que no criam duas entidades com o mesmo valor numa chave candidata. Cardinalidade: Restringe o conjunto de relacionamentos vlidos entre entidades. Tipo de Domnio: Restringe o atributo a um tipo especfico de dado. Os tipos variam de acordo com o SGBD usado. I ntegridade Referencial: Assegura que um valor que aparece em uma relao para um dado conjunto de atributos aparea tambm em um certo conjunto de atributos em outra relao. 9/19/2014 3:57 PM Suporte Informatica 50 3.Restries de Integridade Tipos de Restrio Asseres: Uma assero um predicado expressando uma condio que desejamos que o banco de dados sempre satisfaa. Gatilhos (Triggers): Um gatilho um comando executado automaticamente pelo sistema como um efeito colateral de uma modificao no banco de dados. Dependncias Funcionais: 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. 9/19/2014 3:57 PM Suporte Informatica 51 3.Restries de Integridade Tipos de Restrio Dependncias Funcionais EMPRESTIMO (num_emprestimo,agencia, cpf, quantia) num_emprestimo quantia 9/19/2014 3:57 PM Suporte Informatica 52 3.Restries de Integridade Tipos de Restrio Dependncias Funcionais A B C D a1 b1 c1 d1 a1 b2 c1 d2 a2 b2 c2 d2 a2 b3 c2 d3 a3 b3 c2 d4 A A A C AB D AB A D C A partir das dependncias dadas acima, encontre mais 5 dependncias. 9/19/2014 3:57 PM Suporte Informatica 53 3.Restries de Integridade Tipos de Restrio Dependncias Funcionais Fecho de um Conjunto de Dependncias Funcionais Para considerar todas as dependncias funcionais vlidas, podemos partir de um conjunto de dependncias dadas, e implicar logicamente o fecho de dependncias. Para levantar logicamente o fecho de dependncias (se F um conjunto de dependncias dadas, o fecho chamado de F + .), usamos 3 regras propostas por Armstrong, chamadas axiomas de Armstrong. Tambm usaremos outros 3 axiomas adicionais. 9/19/2014 3:57 PM Suporte Informatica 54 3.Restries de Integridade Tipos de Restrio Dependncias Funcionais Fecho de um Conjunto de Dependncias Funcionais Reflexividade: se a um conj. de atributos e ba, ento vale ab Aumentao: Se vale ab e g um conj.de atributos, ento ga gb vale. Transitividade: Se valem a b, e b g, ento a g tambm vale. Unio: Se valem ab, e ag, ento a bg tambm vale. Decomposio: Se vale a bg , ento ab e ag tambm valem. Pseudotransitividade: Se valem a b , e g b ento valem a g 9/19/2014 3:57 PM Suporte Informatica 55 3.Restries de Integridade Tipos de Restrio Dependncias Funcionais Fecho de um Conjunto de Dependncias Funcionais A partir das dependncias dadas abaixo para o esquema R, levante o fecho de dependncias funcionais usando as regras dadas, e se possvel indique a regra usada.. R=(A, B, C, G, H, I) A B A C CG H CG HI B H