BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos [email protected] OBJETIVO GERAL DA DISCIPLINA Oferecer meios para o aluno entender o funcionamento de um sistema gerenciador de banco de dados focando: Na discussão de modelos de dados relacionais e Em estratégias para obter informação a partir de um projeto de banco de dados (CRUD). EMENTA Informação. Sistemas de informação. Engenharia da informação. Banco de dados. Sistemas gerenciadores de banco de dados. Modelo entidade e relacionamentos. Modelo relacional. Modelo hierárquico. Modelo rede. Álgebra relacional. Normalização de dados. OBJETIVOS ESPECÍFICOS Apresentar aos acadêmicos os conceitos básicos da arquitetura dos sistemas gerenciadores de banco de dados. Dar subsídios aos acadêmicos para compreenderem o funcionamento dos principais módulos de um sistema gerenciador de banco de dados. Permitir que o acadêmico construa modelos conceituais para uma aplicação real e mapeie esse modelo para o modelo relacional (modelo lógico). Introduzir as linguagens formais de consultas de bancos de dados relacional e mapear as mesmas para uma linguagem computacional (SQL). Permitir que os acadêmicos apliquem as formas normais no projeto de um banco de dados. BIBLIOGRAFIA ELMASRI, Ramez; NAVATHE, Sham. Sistemas de banco de dados. 6. ed. São Paulo: Pearson, 2010. 788 p. ISBN 9788579360855 (broch.). Número de Chamada: 005.74 E48s 6.ed. DATE, C. J. Introdução a sistemas de bancos de dados. Rio de Janeiro: Campus, c2004. 865 p. ISBN 8535212736 (broch.). Número de Chamada: 005.74 D232i. 8 ed.. Manuais e Documentos de suporte On-Line de Sistemas Gerenciadores de Bancos de Dados Comerciais. AVALIAÇÃO 2 avaliações (60%) Av1 – 20% (17/09) Av2 – 40% (19/11) 2 Listas de Revisão (20%) Lista1 – 10% Lista2 – 10% Trabalho Prático de Implementação (em dupla) – 20% TERMOS BÁSICOS Dados: São fatos que podem ser gravados e que possuem um significado implícito. Exemplo: nomes, números telefônicos, endereço de pessoas. TERMOS BÁSICOS Tipo de Dados É uma combinação de valores e de operações que uma variável pode executar, o que pode variar conforme o sistema operacional e a linguagem de computador. São utilizados para indicar ao compilador as conversões necessárias para obter os valores em memória durante a construção do programa. O tipo de dado ajuda também o programador a detectar eventuais erros envolvidos com semântica das instruções, erros esses detectados na análise semântica dos compiladores. CATEGORIAS DE TIPOS DE DADOS Real: É o dado que não necessita de outro para caracterizar seu significado. Ex: nome do aluno. Derivado: É o dado resultante de uma ou mais operações de cálculo, executadas em outros dados. Ex: média aluno = ( P1 + P2 ) / 2 Agregado: É um agrupamento de dados, onde algum de seus componentes não tem sentido isoladamente. Exemplo: data de nascimento do aluno, consta de dia, mês e ano. CATEGORIAS DE TIPOS DE DADOS TERMOS BÁSICOS Informação Representação simbólica de fato ou ideia potencialmente capaz de modificar o estado de conhecimento de alguém. Exemplo: Na próxima semana haverá recesso escolar na Universidade ? TERMOS BÁSICOS Arquivos Um arquivo é uma coleção de REGISTROS do mesmo tipo, ou seja, referentes a um mesmo assunto e com o mesmo formato padrão (layout). No âmbito de programação de computadores, é a primeira tentativa de organizar dados com o objetivo de extrair informações. Matrícula Aluno Curso Ano-Sem 123 João da Silva Matemática 2012-1 456 Maria da Paz Informática 2012-1 789 Ana Terra Engenharia Naval 2012-1 012 Fernando Alberto Psicologia 2012-1 Dado Que curso o aluno 789 faz? Informação Registro TERMOS BÁSICOS Sistemas baseados em Arquivos Primeiro sistema para armazenamento e manipulação de dados e geração de informação. Limitações: Definição das estruturas de arquivos inseridas no próprio código do aplicativo Alta dependência entre dados e aplicação, dificultando as atividades de manutenção; Necessidade de compartilhamento de um arquivo por vários programas. A definição das estruturas dos arquivos eram duplicadas nos programas; Arquivos e programas de um mesmo sistema desenvolvidos, de forma isolada, por diferentes programadores, e até mesmo, em linguagens de programação diferentes. SISTEMAS DE ARQUIVOS – PROBLEMAS [1/4] Inconsistência e redundância de dados: Se a mesma informação está repetida em diversos lugares (arquivos diferentes) ela: está redundante, aumentando os custos de armazenamento e; pode passar para um estado inconsistente, com valores divergentes nas diferentes réplicas. Dificuldade de acesso aos dados: A geração de informação pode surgir, durante o tempo em que o sistema está em produção, sob diferentes aspectos. Cada requisição de informação diferente, no sistema de arquivos, vai gerar a necessidade da criação de um novo programa aplicativo. A recuperação de informação não é atendida de modo eficiente. SISTEMAS DE ARQUIVOS – PROBLEMAS [2/4] Isolamento de dados: Os dados estão armazenados em arquivos distintos, que não possuem qualquer tipo de relacionamento direto, e ainda, podem conter diferentes formatos para o mesmo dado. Problemas de integridade: É difícil manter “restrições de integridade” automaticamente, por exemplo: O saldo de uma conta bancária não pode estar abaixo de um determinado valor. Sempre que o saldo de uma conta for superior a um valor X, parte deste saldo deve ser automaticamente aplicado na poupança. SISTEMAS DE ARQUIVOS – PROBLEMAS [3/4] Problemas de atomicidade: Algumas operações em um sistema devem ser “atômicas” (indivisíveis). Ou essas operações são, em seu conjunto, executadas até o fim, ou nenhuma delas deve ser executada. Problemas de segurança: Nem todos os usuários do sistema devem estar autorizados a ver/acessar todos os dados armazenados. Uma vez que os programas de aplicação são inseridos no sistema como um todo, é difícil implementar e garantir a efetividade de regras de segurança. SISTEMAS DE ARQUIVOS – PROBLEMAS [4/4] Anomalias no acesso concorrente: A melhora de desempenho em um sistema pode ocorrer pela execução simultânea de diversas operações. Geralmente, nos sistemas de arquivos, esta melhoria seria difícil de implementar sem levar a danos na consistência dos dados. Considere a seguinte situação num sistema bancário Suponha que o saldo de uma conta bancária A seja 500 reais. Se dois clientes retiram fundos desta conta A ao mesmo tempo (acesso concorrente à conta A), um estado inconsistente pode ocorrer se na execução das duas instâncias do programa de débito, ambos os clientes leiam o saldo antigo e retirem, cada um, seu valor correspondente, e seja então armazenado o valor restante. Ou seja: Ambos leem o valor 500; Um retira 50 reais (resultando 450 reais) e o outro 100 reais (resultado 400 reais); Dependendo de qual execução do programa de débito registre o saldo restante primeiro, o valor do saldo da conta será 450 ou 400 reais, quando deveria ser 350 reais! BANCO DE DADOS Definição de Fry e Teorey: Coleção computadorizada de dados operacionais, armazenados, que servem para suprir as necessidades de múltiplos usuários dentro de uma ou mais organizações. Definição de Date: Coleção de dados operacionais, armazenados, usados por sistemas de informação. SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS Essa expressão estará corretamente empregada, quando utilizada para designar o SOFTWARE utilizado para criar um BANCO DE DADOS. [Setzer, Waldemar] É o software responsável pelo gerenciamento (armazenamento e recuperação) dos dados no Banco de Dados. [Navathe, Shamkant B.] SISTEMA DE BANCO DE DADOS Qualquer aplicação que utilize de um Banco de Dados para executar uma extração organizada de informações. Também chamada de Aplicação de Banco de Dados. SISTEMAS GERENCIADOS DE BANCO DE DADOS Sistema baseado em Arquivos Sistema de Banco de Dados Banco de Dados EXERCÍCIO Existe alguma situação em que desenvolver sistemas baseados em arquivos pode ser mais adequado que utilizar sistemas de banco de dados? Defenda a sua resposta (por meio de exemplos).