Prévia do material em texto
BANCO DE DADOS, LISTA 1 Defina os seguintes termos: banco de dados, sistema de banco de dados e SGBD. Bancos de dados: Coleção de dados relacionados com as seguintes propriedades implícitas: -Representa algum aspecto do mundo real. -É uma coleção coerente de dados com algum significado inerente. -É projetado, construído e 'povoado' com dados para um propósito específico. Sistema de Banco de Dados: Conjunto de software para manipular um banco de dados juntamente com o banco de dados. SGBD: É uma coleção de programas que permite ao usuário criar e manter um banco de dados. -Software de propósito geral que facilita os processos de definição, construção, manipulação e compartilhamento de bancos de dados entre várias aplicações e usuários. Discuta as principais categorias de modelos de dados. Quais são as diferenças básicas entre modelo relacional, o modelo de objetos? A diferença básica é que os modelos de dados expõem os dados (através de valores de coluna), enquanto os modelos de objeto ocultam os dados (encapsulados atrás de suas interfaces públicas). Cite algumas das informações armazenadas no catálogo do sistema, chamadas de metadados. Mostre um exemplo dessas informações. Como essas informações são armazenadas em um sistema de arquivos tradicional? * Informações sobre tabelas e colunas e informações de controles internos. Para sua utilização do SGBD será necessário acessar o catálogo para conhecer a estrutura dos arquivos no banco de dados, como tipo e o formato dos dados que o programa acessará. As características mais importantes da abordagem de banco de dados são: redução de redundância de dados, abstração de dados, suporte a múltiplas visões de dados e isolamento entre programas e dados. Descreva as vantagens proporcionadas por essas características em relação à abordagem tradicional de sistemas em arquivos. * Realizando essas operações que são possíveis graças a um SGBD, o modo que os dados são tratados e organizados, tornam a vida de quem irá acessar esse banco de dados muito mais fácil e prática, sem ter que lidar com dados repetidos e desorganizados. Dê um exemplo de visão de dados. * Uma visão pode ser composta por dados virtuais que são derivados dos arquivos do banco de dados, mas não estão explicitamente armazenados. Dê um exemplo de problema que poderia acontecer se o SGBD não possuísse controle de concorrência. * Controle de concorrência é um método usado para garantir que as transações sejam executadas de uma forma segura e sigam as regras ACID. Os SGBD devem ser capazes de assegurar que nenhuma ação de transações completadas com sucesso (committed transactions) seja perdida ao desfazer transações abortadas (rollback). Explique, por meio de um exemplo, o que é redundância de dados e quais são os problemas que isso pode gerar. * Redundância de dados, é quando existem vários dados com o mesmo conteúdo, repetindo-se desnecessariamente, isso pode gerar conflito no banco de dados, não conseguindo identificar corretamente onde se localiza tal dado. Cite alguns exemplos de restrições de integridade. * Integridade de domínio: Valores inseridos em uma coluna devem sempre obedecer à definição dos valores que são permitidos para essa coluna - os valores do domínio. Ex; Uma coluna que armazena preços de mercadorias, os valores admitidos são do domínio numérico - ou seja, apenas números. Não há preços usando letras para sua representação. Integridade Referencial: Uma restrição de Integridade Referencial assegura que valores de uma coluna em uma tabela são válidos baseados nos valores em uma outra tabela relacionada. Ex: Se um produto ID 523 foi cadastrado em uma tabela de Vendas, então um produto com o ID 523 deve existir na tabela de Produtos relacionada. Resumindo, cada valor de uma chave estrangeira deve corresponder a um valor de uma chave primária existente. Serve para manter a consistência entre tuplas e duas relações; Aparecem devido aos relacionamentos entre entidades. Integridade de Vazio: Esse tipo de integridade informa se a coluna é obrigatória ou opcional - ou seja, se é possível não inserir um valor na coluna. Uma coluna de chave primária, pode exemplo, sempre deve ter dados inseridos, e nunca pode estar vazia, para nenhum registro. Integridade de Chave: Os valores inseridos na coluna de chave primária (PK) devem ser sempre únicos, não admitindo-se repetições nesses valores. Desta forma, as tuplas (registros) serão sempre distintas. Os valores de chave primária também não podem ser nulos. Integridade Definida pelo Usuário: Diz respeito a regras de negócio específicas que são definidas pelo usuário do banco de dados. Por exemplo, pode-se definir que uma coluna somente aceitará um conjunto restrito de valores, como por exemplo apenas siglas dos estados da federação, e mais nenhum outro valor diferente. Diferencie modelo de dados, esquema e instância. Dê exemplos de cada um deles. * Um modelo de dados é um conjunto de conceitos que podem ser usados para descrever a estrutura de um banco de dados. A estrutura de um banco de dados envolve os tipos de dados, os relacionamentos e as restrições sobre os dados. Pode-se categorizar um modelo de dados de acordo com o tipo de conceitos que ele fornece para descrever a estrutura do banco de dados (conceitual, lógico, físico ou autodescritivo). Esquema é a descrição textual ou gráfica de um banco de dados de acordo com um determinado modelo de dados. A representação como diagramas de um esquema de banco de dados é chamado diagrama do esquema. Na instância, os dados de um banco de dados podem mudar frequentemente. É o conjunto de dados armazenado em um banco de dados em um determinado instante de tempo (descreve o estado do banco de dados). Cada construtor do esquema tem seu próprio conjunto de instâncias em um estado do banco de dados. Exemplo: a construção estudante contém um conjunto de registros de estudantes como suas instâncias Descreva a arquitetura de três níveis (ANSI/SPARC) de um sistema de banco de dados. Explique como essa arquitetura proporciona a independência de dados. * A arquitetura a três níveis definida pelo standard ANSI/SPARC permite ter uma independência entre os dados e os tratamentos. Geralmente, um SGBD deve ter as características seguintes: Independência física : o nível físico pode ser alterado independentemente do nível conceitual. Isso significa que todos os aspectos físicos da base de dados não são visíveis ao usuário, trata-se simplesmente de uma estrutura transparente de representação das informações; Independência lógica : o nível conceitual poderá ser alterado sem trazer riscos ao nível físico, ou seja, o administrador da base deve poder aplicar melhorias e manuseá-lo sem impactar os usuários; Maneabilidade : pessoas que não conhecem a base de dados devem ser capazes de fazer o seu pedido sem fazer referência a elementos técnicos da base de dados; Velocidade de acesso : o sistema deve fornecer as respostas aos pedidos o mais rapidamente possível, o que implica algoritmos de busca ágeis e bem elaborados; Administração centralizada : o SGBD deve permitir ao administrador poder manipular os dados, inserir elementos e verificar a sua integridade de maneira centralizada; Limitação da redundância : o SGBD deve poder evitar, na medida do possível, informações redundantes, a fim de evitar desperdício do espaço memória e erros de armazenamento; Verificação da integridade : os dados devem ser coerentes entre eles, ainda mais quando os elementos fazem referência a outros, estes últimos devem estar presentes; Compartilhamento de dados : o SGBD deve permitir o acesso simultâneo à base de dados por vários usuários; Segurança dos dados : o SGBD deve apresentar mecanismos que permitam gerenciar as permissões de acesso aos dados de acordo com os usuários. Dê exemplos de mudanças no banco de dados que continuam a manter a independência de dados lógica e a independência de dados física. * Melhorias no servidor do banco de dados, como upgrade de memória ram, Hd, e periféricos não alteram na partelógica do banco de dados, tal como melhorias nas tabelas, adição de novas funções e manutenções no banco de dados existente, também não afeta na parte física do banco de dados Descreva os componentes básicos de um sistema de gerência de banco de dados. * Dados, hardware, software e usuários. Explique as principais fases de um projeto de banco de dados: coleta e análise de requisitos, projeto conceitual, projeto lógico e projeto físico. * Análise de Requisitos: A primeira etapa do projeto de banco de dados é a identificação dos requisitos que o banco de dados deve atender. Nesta fase devem ser realizadas entrevistas com as pessoas envolvidas no processo, cria-se uma descrição textual macro do processo (texto conhecido como mini-mundo), modelos externos (que devem ser entendidos por todos). Este é o momento em que as regras de negócio devem ser identificadas, se a fase de análise de requisitos for mal executada e se identificar regras de negócio que não representam a realidade, tudo o que for feito em seguida no projeto será perda de tempo. Por isso, esta é considerada a parte mais importante do projeto. Projeto Conceitual: O Projeto Conceitual se baseia na especificação de requisitos criada na etapa anterior. A partir deste insumo de informações é gerado um esquema conceitual do banco de dados. Esquema conceitual é uma visão macro do banco de dados, uma descrição de alto nível da estrutura. Os modelos de Entidade-Relacionamento são muito utilizados para descrever os esquemas conceituais. É importante frisar que nesta fase descreve-se o conteúdo de informação e não a estrutura onde elas serão armazenadas (tabelas, colunas, visões, etc.... Projeto Lógico: O Projeto Lógico é a etapa onde mapeamos o conceito dos modelos de entidade-relacionamento em objetivos de bancos de dados. Nesta fase criamos os modelos internos de bancos de dados, com detalhes sobre tabelas, relacionamentos, regras, metadados das colunas (tipo, tamanho, obrigatoriedade, ...), visões, etc. Ao final, o resultado de um projeto lógico é um esquema do banco de dados parecido com o modelo conceitual, porém com mais detalhes de banco de dados e não apenas conceitos. Projeto Físico: O Projeto Físico é a parte final do projeto de banco de dado, nesta etapa define-se detalhes técnicos da implementação do banco de dados, por exemplo a forma como os dados serão armazenados, os scripts para a criação dos objetos no banco de dados (tabelas, visões, colunas, funções, ...), permissão de acesso de usuário, etc. Esta etapa é fortemente ligada ao SGBD que será utilizado. A otimização de desempenho do banco de dados é trabalhada nesta fase do projeto. Pense nos diferentes tipos de usuários do banco de dados vistos na aula. Quais tipos de aplicações cada usuário precisa? A qual categoria cada usuário pertenceria e de que tipo de interface cada um precisaria? * Administradores do Banco de Dados (DBA) – são os responsáveis pela administração do banco de dados, do SGBD e de seu software. Autorizam o acesso, coordenam e monitoram o uso e adquirem recursos de software e hardware quando necessário. Cuidam também da segurança e desempenho. Projetistas de Banco de Dados – são os responsáveis pela identificação dos dados a serem armazenados no banco de dados e pela escolha apropriada para representar e armazenar esses dados Usuários Finais – são as pessoas cujos trabalhos requerem acessar o banco de dados para fazer consultas, modificações e gerar relatórios. Tipos de usuário final: • Casuais – raramente acessam o banco de dados, mas podem precisar de diferentes informações em cada acesso • Iniciantes ou parametrizados - seu trabalho envolve a realização de consultas e modificação do banco de dados constantemente. Eles usam consultas e modificações programadas e testadas • Especializados – usuários completamente familiarizados com facilidades do SGBD e que realizam requisitos complexos • Isolados – mantém um banco de dados pessoal usando pacotes prontos e fáceis de usar. Analistas de Sistemas – determinam os requisitos dos usuários finais e especificam o desenvolvimento de transações de acordo com os requisitos Programadores de Aplicações – implementam as especificações como programas. Projetistas e Implementadores de SGBDs – são aqueles que projetam e implementam módulos e interfaces do SGBD Desenvolvedores de ferramentas – são aqueles que desenvolvem pacotes de software que facilitam o projeto e o uso do sistema de banco de dados e que auxiliam no aumento do desempenho Operadores e responsáveis pela manutenção – são aqueles responsáveis pela execução e manutenção de software e hardware para o sistema de banco de dados Escolha uma aplicação de banco de dados com a qual você esteja acostumado. Crie um esquema e mostre um exemplo de um estado deste banco de dados. Que tipos de informações e restrições adicionais gostaria de representar no esquema? Pense nos diversos usuário de seu banco de dados e crie uma visão para cada tipo. * MEDICAMENTO(MDCODIGO,MDNOME) MEDICO(MEDCODIGO,MEDNOME) PACIENTE(PACCODIGO,PACNOME) CONSULTA(CONCODIGO,PACCODIGO,MEDCODIGO) PACCODIGO REFERENCIA PACIENTE MEDCODIGO REFERENCIA MEDICO PRESCRICAO (CONCODIGO,MDCODIGO,POSOLOGIA) CONCODIGO REFERENCIA CONSULTA MDCODIGO REFERENCIA MEDICAMENTO