Você está na página 1de 6

Notas de Aula - Banco de Dados Introduo

Evelin Carvalho Freire de Amorim 8 de maro de 2012

Banco de Dados uma coleo de dados que tipicamente descreve as atividades de uma ou mais
organizaes relacionadas. Por exemplo, uma universidade pode conter informao sobre:

Entidades como estudantes, cursos e aulas. Relacionamento entre entidades, como por exemplo o uso de salas por determinadas disciplinas.
Tanto que

Um Sistema de Gerenciamento de Banco de Dados (SGBD) um sistema complexo. vocs possuem uma disciplina apenas para estudar este tema. Gerenciamento de Banco de Dados seja direcionado para grandes volumes de dados.

Logo faz sentido que um Sistema de

0.1

Um Pequeno Histrico

O primeiro SGBD de propsito geral foi projetado por Charles Bachman na dcada de 1960. O SGBD projetado por Bachman formou a base para trabalho na rea de banco de dados. Mais tarde, na dcada de 1960, a IBM desenvolveu Sistema de Gerenciamento de Informao (Infor-

Modelo de dados em redes

e inuenciou os sistemas

de banco de dados na dcada de 1960. Em 1973 Bachman recebeu o primeiro prmio Turing pelo seu

mation Managament System - IMS ). O IMS formou a base de uma representao alternativa de dados
chamada de

modelo hierrquico de dados.

Na dcada de 1970, Edgar Codd, no laboratrio de pesquisa da IBM em San Jose, props um novo modelo de representao de dados chamado

modelo relacional.

Este foi um grande avano na rea de

Banco de Dados. Em 1981 Codd ganhou o prmio Turing por seu trabalho na rea de Banco de Dados. Na dcada de 1980, o modelo relacional rmou sua posio tanto na rea acadmica quanto no mercado. Tambm na dcada de 80 a

linguagem de consulta SQL

foi padronizada e ainda hoje utilizada.

Mais tarde, na dcada de 80 e 90, os bancos de dados continuaram avanando adquirindo capacidades de armazenar novos tipos de dados, como imagem e texto, e consultas complexas. Tambm podemos citar como avano na rea de banco de dados os pacotes ERP (Enterprise Resource

Planning ) e MRP (Management Resource Planning ), com uma camada considervel de caractersticas
orientadas a aplicao por cima de um SGBD. Alguns exemplos de ERP so: planejamento de recursos humanos e anlise nanceira. Outra aplicao de SGBDs que tem encontrado larga utilizao em aplicaes web. Os dados armazenados em um SGBD podem ser processados pela aplicao web e exibidos em uma pgina HTML. PeopleSoft, SAP, etc. Estes pacotes podem ser customizados para algumas tarefas comuns como gerenciamento de inventrio,

Por que usar SGBD?


500GB de dados sobre empregados, departamentos, produtos, vendas e muitas outras coisas; Estes dados so acessados paralelamente por vrios empregados; Perguntas sobre os dados devem ser respondidos rapidamente; Mudanas feitas nos dados devem ser aplicados consistentemente e acessos a certas partes dos dados, por exemplo salrio, deve ser restrita.

Imagine o seguinte cenrio em uma empresa:

E se quisermos armazenar estes dados em arquivos comuns? Teramos as seguintes desvantagens:

Muitos dados para a memria principal:


processamento demandar.

provvel que no exista equipamento com 500GB

de memria principal para todos os dados. Ento ns devemos ter um dispositivo de armazenamento secundrio para armazenar estes dados e trazer a parte relevante para memria assim que o

No existe endereo para todos os dados:

Mesmo que exista um equipamento com 500GB

de memeria principal, nos computadores de endere;camento em 32 bits, no podemos referenciar mais de 4GB de dados. Teramos que programar algum mtodo para identicar todos os dados.

Um programa para responder todas as possveis perguntas feitas. Falta de meios para garantir consistncia dos dados.

Estes programas tem

um alto grau de complexidade devido ao grande volume de dados armazenados. Novamente um programa talvez possa

garantir a consistncia dos dados para as mudanas que possam vir a ser realizadas.

Falta de mecanismos para garantir permisso de acesso a parte dos dados.


partes dos dados.

O mecanismo

de senha de um sistema operacional no suciente para garantir permisso de usurios a diferentes

Estas tarefas que parecem ser difceis com arquivos so feitas facilmente por um SGBD.

Vantagens de um SGBD
Independncia de Dados:
o SGBD esconde os detalhes de representao e armazenamento e fornece uma viso abstrata que esconde tais detalhes.

Acesso de dados eciente:

Um SGBD utiliza mecanismos sosticados de armazenamento e

recuperao de dados, de forma que seja o mais eciente possvel.

Integridade e segurana de dados:


ele.

Um SGBD pode reforar restries de dados, como por Tambm

exemplo se o salrio de um funcionrio no menor que o piso salarial da categoria.

assegura o controle de acesso de usurios de forma que o usurio s acesse os dados disponveis para

Administrao de Dados:

Quando vrios usurios compartilham dados, centralizar a adminis-

trao de dados pode signicar melhorias signicativas.

Acesso concorrente e recuperao de falhas:

o SGBD escalona os acessos concorrentes aos

dados de tal forma que os usurios pensam que os dados so acessados por um usurio a cada vez. Alm do SGBD proteger os usurios de efeitos de falhas no sistema.

Tempo reduzido no desenvolvimento de aplicaes:

o SGBD oferece interfaces de alto nvel

para aplicaes poderem utilizar todo o poder de um banco de dados. Quando voc acha que no precisa utilizar um SGBD, mesmo possuindo todas estas vantagens?

3
Um

Descrevendo e Armazenando dados em um SGBD


modelo de dados uma coleo de descrio de dados que esconde os detalhes de armazenamento modelo de dados relacional. Um modelo semntico de dados um modelo de dados de alto nvel e mais abstrato que torna entidade-relacionamento (ER).

de baixo nvel. O modelo de dados mais utilizado hoje em dia o

mais fcil para o usurio com uma boa descrio inicial dos dados de uma empresa. Um modelo semantico amplamente usado chamado de

3.1

O Modelo Relacional

Vamos ter uma ideia do que o modelo relacional. Uma descrio de dados em termos de um modelo de dados chamado de

esquema.

No modelo relacional, o esquema para uma relao especica seu nome,

o nome de cada campo (ou atributo ou coluna), e o tipo de cada campo. Por exemplo:

Estudantes(sid:

string, nome:string, login:

string, idade:integer, cr:real)

A Tabela 1 mostra um exemplo de instncia da relao Estudantes. Cada linha descreve um estudante e tambm segue o esquema da relao Estudantes. sid 53666 53688 53650 53831 53832 nome Silva Rodrigues Rodrigues Correa Santos login silva@inf rodrigues@decom rodrigues@cce correa@cchn santos@cchn idade 18 18 19 17 21 cr 8.4 8.2 8.8 6.8 7.0

Tabela 1: Uma instncia da relao de Estudantes Alm da descrio de uma coleo de estudantes, podemos especicar restries que os registros em uma relao de obedecer.

Outros Modelos de Dados


Modelo Hierrquico: Modelo em Rede:

IMS da IBM

IDS e IDMS

Modelo Orientado a Objeto:ObjectStore e Versant Modelo objeto-relacional:


Versant e muitos outros. Utilizado em produtos DBMS da IBM, Informix, ObjectStore, Oracle,

3.2
Uma

Nveis de Abstrao em um DBMS

linguagem de denio de dados

(Data Denition Language - DDL) utilizada para denir

esquemas conceitual e externo. Mais para frente poderemos discutir a DDL. A Figura 1 mostra os nveis de abstrao de SGBD.

Figura 1: Nveis de Abstrao em um SGBD

Esquema Conceitual

O esquema conceitual (s vezes chamado de esquema lgico) descreve os dados armazenados em termos de um modelo de dados do SGBD. Em um banco de dados relacional, o esquema conceitual descreve todas as relaes que so armazenadas no banco de dados. esquema conceitual. Veja o seguinte exemplo de um

Estudantes(sid:string,nome:string, login:string,idade:integer,cr:real) Professor(pid:string,nomep: string, sal:real) Cursos(cid:string, cnome:string, creditos:integer) Salas(rno:integer,endereco:string,capacidade:integer) Matriculado(sid:string, cid:string, nota:string) Ensina(pid:string, cid:string) Localizada_em(cid:string, rno:integer,horario:string)
Esquema Fsico
O esquema fsico especica detalhes adicionais de armazenamento. Um exemplo de um simples esquema fsico :

Armazene todas as relaes como arquivos no ordenados de registros. Um arquivo uma coleo de registros ou uma coleo de pginas. Crie ndices na primeira coluna das relaes Estudantes, Faculdades e Cursos, a coluna sal em Faculdade e a coluna capacidade de Salas.

Esquema Externo
Esquemas externos permitem o acesso a dados serem customizados no nvel de usurios individuais ou grupo de usurios. Um banco de dados pode possuir vrios esquemas externos, cada um projetado para um determinado grupo de usurios. Cada esquema externo consiste de uma coleo de uma ou mais vises e relaes de um esquema concentual. Uma viso(

view) conceitualmente uma relao, mas os registros em uma viso no esto armazena-

dos em um SGBD. Por exemplo, queremos permitir os estudantes procurar os membros da faculdade que esto lecionando determinado curso e as matrculas relacionadas.

Cursoinfo(cid:string,nomep:string,matriculados:integer)
Um usurio pode tratar uma viso apenas como uma relao e perguntar sobre os registros na viso.

Independncia de Dados

Um SGBD fornece independncia de dados, o que signica que os aplicativos so separados das possveis mudanas na estrutura dos dados ou no armazenamento. A independncia dos dados alcanada atravs dos trs nveis de abstrao: conceitual, fsico e externo. Suponha que queremos modicar o nosso esquema conceitual porque queremos esconder algumas informaes e outras queremos deixar visvel. Veja a seguir o esquema redenido em duas novas relaes.

ProfessorPublico(idp:string,nomep:string,numsala:integer) ProfessorPrivado(idp:string,sal:real)
Perceba que estas duas relaes juntas possuem as mesmas informaes da relao e quema anterior. Desta forma podemos utilizar o novo esquema conceitual, com as relaes

ProfessorPrivado para obter a viso CursoInfo.

Professor do esProfessorPublico

O usurio percebeu a mudana? No, porque ele ainda

dos dados.

obtm os mesmos resultados em sua consulta. Chamamos esta caracterstica de

independncia lgica

O esquema conceitual tambm protege os usurios de mudanas no armazenamento fsico. propriedade chamamos de

independncia fsica dos dados.

Esta

Consultas em um SGBD
consultas envolvendo os dados armazenados.
4 Como por exemplo:

Um banco de dados relacional possibilita ao usurio fazer muitas questes. Seja o banco de dados da universidade. Podemos realizar

1. Qual o nome do estudante que tem o sid 53666? 2. Quantos alunos esto matrculados em DEC08082? 3. Existe algum aluno com cr inferior a 3.0 matriculado em DEC08082? Estas perguntas esto em linguagems natural e entendemos facilmente, no entanto no to simples assim na computao. por esta razo que existem as consulta pode ser fomarlizada atravs da

linguagens de consultas. A lgebra relacional ou do clculo relacional.

linguagem de

Gerenciamento de Transaes

Quando algum aqui vai comprar uma passagem no site da guia branca sabe que provvel que outras pessoas estejam acessando a mesma pgina, querendo comprar uma passagem para o mesmo local, dia e horrio. Quando vrios usurios acessam um banco de dados de forma concorrente, o SGBD deve comandar cuidadosamente suas solicitaes para evitar conitos. Imagina ento como um SGBD de um banco deve ter cuidado. Por exemplo, digamos que duas pessoas resolveram depositar um dinheiro na sua conta ao mesmo tempo. Uma quer depositar R$50,00 e outra quer depositar R$100,00. Seu saldo de R$0,00. E se o SGBD zesse os dois depsitos ao mesmo tempo? Seria possvel ter um saldo de R$50,00 ou ter um saldo R$100,00. claro que no mundo real isso no acontece, porque existe um controle do acesso concorrente. Outro conceito importante para banco de dados conceito de

transao, que consiste em uma sequncia

de instrues de consulta e/ou atualizao. A transao uma unidade bsica de execuo no SGBD. Isso quer dizer que no possvel executar, por exemplo, meia transao.

6.1

Execuo Concorrente de Transaes

Uma tarefa importante planejar o acesso concorrente a um SGBD. Hoje em dia a maioria dos SGBDs so utilizados por vrios usurio simultaneamente, ento faz muito sentido estudar esta parte da rea de banco de dados. Para garantir a segurana da execuo concorrente de transaes existe o

protocolo de bloqueio,

um conjunto de regras que gerencia a forma que as entidades de um banco de dados podem ser acessadas. Tal protocolo normalmente emprega vrios tipos de bloqueios. Bloquear um dado inibe certos tipos de atividade concorrente no dado at o dado ser desbloqueado.

6.2

Transaes Incompletas e Falhas de Sistema

Suponha agora que todo ms o pai de um estudante transra uma qunatia em dinheiro para seu lho. Neste processo de transferncia o sistema debita da conta do pai para em seguida creditar na conta do lho. Agora considere um cenrio onde o sistema debitou da conta do pai e logo em seguida houve uma pane no sistema. Neste caso o sistema debitou da conta do pai, porm no creditou na conta do lho. Para resolver esta situao o SGBD mantm um

log

de todas as escritas no banco de dados. Perceba

que crucial que cada ao escrita deve ser registrada no log antes de ser efetuada.

A arquitetura de um SGBD
1. O computador (o cliente) do operador do guich da guia branca faz uma chamada para uma API (Application Programming Interface) que se comunica com o Gerenciador de Comunicaes do Cliente do SGBD. A responsabilidade do cliente de gerenciador de comunicaes um SGBD estabelecer e lembrar o estado da conexo para quem iniciou a conexo (cliente), para responder a comandos SQL do cliente e retornar dados e mensagens de controle (resultado de cdigos, erros, etc). 2. Depois de ter recebido um comando (Passo anterior), o SGBD deve atribuir um thread de computao para o comando. Ele tambm deve assegurar que as sadas threads de dados e controle se o sistema deve comear a processar a esto conectadas atravs do gerenciador de comunicaes. Isto tarefa do gerenciador de processos. Neste estgio o SGBD exerce o controle de admisso: sucientes para aquela consulta. consulta imediatamente ou adiar a execuo antes do momento que o sistema possuir recursos

Figura 2: Arquitetura de um SGBD

3. Depois de admitida e alocada com uma thread, a consulta do operador da guia Branca pode ser executada. Isto realizado pelo processador de consulta. 4. O prximo passo requerir dados do SGBD atravs do Gerenciador de Armazenamento de Transao, o qual controla toda acesso a dado(leitura) e manipulao(criar, atualizar, apagar) de chamadas. 5. Nesta fase os resultados esto prontos, basta apenas desfazer a pilha de atividades descritas at aqui.