Banco de Dados 1 - Aula1

Fazer download em ppt, pdf ou txt
Fazer download em ppt, pdf ou txt
Você está na página 1de 29

Banco de Dados 1

Remis Balaniuk

Introduo
Plano de ensino Material:
ftp://[email protected] Pasta BD1

Contato:
[email protected]

Objetivos da disciplina
Conhecer conceitos relativos tecnologia de banco de dados, aos aspectos de projeto e implementao e aos sistemas de gerenciamento de bancos de dados (SGBDs) Entender modelos de dados utilizados na representao de banco de dados Utilizar ferramentas CASE para projetar bancos de dados Introduo linguagem de definio e manipulao de bancos de dados (SQL)

Objetivos especficos
Definir bancos de dados, suas propriedades e seus usurios Entender o funcionamento dos SGBDs Distinguir modelos utilizados em projeto de BDs Utilizar o modelo entidade-relacionamento para definir uma viso conceitual dos dados Entender conceitos do modelo relacional bem como suas operaes Traduzir representao de banco de dados do modelo entidade relacionamento para o modelo relacional

Dados, informao, conhecimento


A matria-prima da computao so os dados Um computador mastiga dados mas eles s fazem sentido para ns humanos quando sabemos do que aquele dado trata. Dado + contexto = informao Uma informao normalmente corresponde a um fato O fato tambm precisa ser interpretado dentro do seu contexto Informaes quando so manipuladas podem gerar conhecimento

Dados e matemtica
A noo de dado e informao tem origem nos conceitos matemticos de conjunto e relao O matemtico George Cantor em 1895 props a teoria dos conjuntos, que deu incio a uma nova vertente dentro da matemtica que muito influenciou o nascimento e maturao da computao

Dados e matemtica
Na teoria de Cantor a noo mais primria, que engloba todas as outras, o conjunto Um conjunto contm elementos Sua definio, que pode ser feita matematicamente ou de forma abstrata, deve permitir que se distingua quais elementos fazem parte dele O conjunto o conceito precursor do que hoje consideramos o tipo do dado Os elementos de um conjunto correspondem ao que hoje tratamos como dados Os dados possuem uma srie de propriedades do tipo ao qual pertencem, que correspondem s definies que devem ter um conjunto

Dados e matemtica
Exemplo:
O que significa A enquanto dado? Se estivermos falando do tipo (conjunto) alfabeto se trata da sua primeira letra Se estivermos falando do conjunto de nmeros inteiros representados em hexadecimal se trata do nmero inteiro 10 Se estivermos falando de um conjunto ordenado de notas (A-E) se trata da maior nota.

Dados e matemtica
Ento o dado s faz sentido se soubermos a qual tipo (conjunto) ele pertence e conhecermos as propriedades desse tipo de dado Os conjuntos e seus elementos introduziram na matemtica a possibilidade de se calcular em cima de dados no numricos (algebra dos conjuntos), que o que faz um computador

Dados e matemtica
Da mesma teoria surgiu a noo de relao Um relao uma ligao entre os elementos de conjuntos diferentes formando as tuplas Exemplo:
A={a,b,c,d,e} B={1,2,3,4,5} R={(a,2),(b,1),(d,5)}

A tupla correspondem noo de informao Uma relao tambm um conjunto, logo ela precisa ser definida enquanto tal
quais conjuntos ela liga e quais elementos se ligam a quais outros

A definio da relao nos permite interpretar a tupla como informao:


Se A um conjunto de notas e B um conjunto de matrculas de alunos logo R pode ser as notas que cada aluno tirou em um prova

Dados e matemtica
Das relaes n-rias surgiu a lgebra relacional Das operaes de conjunto (pois relaes so conjuntos) surgiram as linguagens de bancos de dados

Exemplo
Contexto (minimundo):
Universidade

Conjuntos (tipos de dados)


Curso Alunos Professores Disciplinas Aluno pertence a curso Professor ministra disciplina Aluno cursa disciplina Disciplina prerequsito de disciplina

Relaes (relacionamentos)

Exemplo

elementos (fatos, dados):

Evoluo histrica
Arquivos Sistemas de arquivos Bancos de dados

Evoluo histrica

Evoluo histrica

Evoluo histrica

Sistema de arquivos X Sistemas de Banco de Dados


Sistema de arquivos Sistema de Banco de Dados

Aplicativos

Dados (arquivos)

Aplicativos

SGBD

Dados (arquivos)

O acesso/gerenciamento aos/dos dados feito diretamente pelos programas aplicativos.

O acesso/gerenciamento aos/dos dados feito pelo SGBD. O SGBD funciona como uma interface entre o BD e os programas aplicativos.

Sistema de Arquivos
Primeira arquitetura de sistemas para armazenamento e manipulao de dados e gerao de informao.

Inconvenientes desta arquitetura:


Definio das estruturas de arquivos inseridas no prprio cdigo do aplicativo (alta dependncia entre dados e aplicao) dificultando os trabalhos de manuteno;
compartilhamento de um arquivo por vrios programas. definio das estruturas de arquivos duplicadas nos programas.

Arquivos e programas de um mesmo sistema so desenvolvidos de forma isolada por diferentes programadores e at mesmo em linguagens diferentes. Inconsistncia, redundncia, dificuldade de acesso, isolamento de dados e problemas com segurana. Falta de gerenciamento para acessos concorrentes aos dados e recuperao de dados.

Sistemas de Arquivos - Problemas


Inconsistncia e redundncia de dados:
Se a mesma informao 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 rplicas.

Dificuldade de acesso aos dados:


A gerao de informao pode surgir, durante o tempo em que o sistema est em produo, sob diferentes aspectos. Cada requisio de informao diferente no sistema de arquivos, vai gerar a necessidade da criao de um programa aplicativo. A recuperao de informao no atendida de modo eficiente.

Isolamento de dados:
Os dados esto armazenados em arquivos distintos, que no possuem qualquer tipo de relacionamento direto, e ainda podem conter diferentes formatos para o mesmo dado.

Sistemas de Arquivos - Problemas


Problemas de integridade:
difcil manter restries de integridade automaticamente, por exemplo:
Num sistema de conta bancria, toda vez que um saque feito o saldo deve ser verificado e atualizado (informaes podem estar em arquivos diferentes)

Problemas de atomicidade:
Algumas operaes em um sistema devem ser atmicas (indivisveis). Ou essas operaes so, em seu conjunto, executadas at o fim, ou nenhuma delas deve ser executada.

Problemas de segurana:
Nem todos os usurios do sistema devem estar autorizados a ver/acessar todos os dados armazenados. Uma vez que os programas de aplicao so inseridos no sistema como um todo, difcil implementar e garantir a efetividade de regras de segurana.

Sistemas de Arquivos - Problemas


Anomalias no acesso concorrente:
A melhora de desempenho em um sistema pode ocorrer pela execuo simultnea de diversas operaes. Geralmente, nos sistemas de arquivos, esta melhoria seria difcil de ser implementada sem levar a danos na consistncia dos dados. Considere a seguinte situao num sistema bancrio:
Suponha que o saldo de uma conta bancria 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 execuo das duas instncias do programa de dbito, ambos os clientes leiam o saldo antigo e retirem, cada um, seu valor correspondente, e seja ento armazenado o valor restante. Instanciando o problema ...
Ambos lem o valor 500; Um tira 50 reais (resultando 450 reais) e o outro 100 reais (resultado 400 reais); Dependendo de qual execuo do programa de dbito registre o saldo restante primeiro, o valor do saldo da conta ser 450 ou 400 reais, quando deveria ser 350 reais.

Definies ...
Dados: so fatos que podem ser gravados e que possuem um significado implcito. Banco de Dados (BD): uma coleo de dados relacionados:
Representa aspectos do mundo real (minimundo ou universo de discurso) e mudanas no mundo real devem ser refletidas no BD. uma coleo lgica e coerente de dados com algum significado inerente. Uma organizao randmica de dados no pode ser considerada um BD. Um BD construdo em atendimento a uma proposta especfica.

Definies ....
Um Sistema Gerenciador de Banco de Dados (SGBD) uma coleo de programas que permite aos usurios criar e manter um banco de dados.
um sistema de software de propsito geral que facilita os processos de definio, construo, manipulao e compartilhamento de bancos de dados entre vrios usurios e aplicaes.

Sistema de Banco de Dados (SBD): o banco de dados mais o software SGBD

SISTEMA DE BANCO DE DADOS

Usurios/Programadores

Programas de Aplicaes / Consultas (Queries)

SGBD Programas para Processamento de consultas / gerenciamento de dados

Software para Acesso aos Dados Armazenados

Definio dos dados (metadados)

Banco de dados armazenados

Caractersticas do uso de um SBD


Natureza autodescritiva do sistema de banco de dados;
Catlogo: metadados

Isolamento entre programas e os dados, e a abstrao de dados; Suporte para as mltiplas vises dos dados; Compatilhamento de dados e processamento de transaes de multiusurios.
Concorrncia

Banco de dados X Abstrao de Dados


Um dos maiores benefcios dos sistemas de banco de dados proporcionar aos usurios uma viso abstrata dos dados. O sistema capaz de ocultar alguns detalhes sobre a forma de armazenamento e a manuteno dos dados.

A eficincia da recuperao de informaes est relacionada forma como as estruturas de representao so projetadas e, dado a complexidade e importncia destas representaes, elas devem ser protegidas em nveis de abstraes.
Estes nveis facilitam a manuteno do sistema e a interao dos usurios com os sistemas. So eles:
Nvel fsico: como os dados esto, de fato, armazenados (descrio em detalhes das estruturas de dados). Mais baixo nvel de abstrao. Administradores de banco de dados devem ter noes da organizao deste nvel. Nvel lgico: quais dados esto armazenados e quais so os inter-relacionamentos existentes entre eles. Usado pelos administradores de banco de dados e programadores. Nvel de viso: O mais alto nvel de abstrao. Proporciona uma viso parcial do banco de dados. Diferentes vises so usados por diferentes usurios.

Nvel de viso

Viso 1

Viso 2

...... Viso n

Nvel lgico

quais

Nvel fsico

0 1 1 como

Nveis de abstrao
Nvel fsico: um registro de dado pode ser descrito como um bloco consecutivo de memria (por exemplo, palavras ou bytes). Nvel lgico: um registro de dado descrito por um tipo definido (como um tipo em linguagem de programao) e as inter-relaes entre dados so definidas. Nvel de viso: sub-conjunto de dados que podem existir apenas durante a execuo de uma operao (uma consulta ao banco de dados, por exemplo).

Você também pode gostar