banco de dados

Propaganda
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).
Download