Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
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-
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
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.
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
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,
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
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.
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.
O mecanismo
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.
assegura o controle de acesso de usurios de forma que o usurio s acesse os dados disponveis para
Administrao de Dados:
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.
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
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.
o nome de cada campo (ou atributo ou coluna), e o tipo de cada campo. Por exemplo:
Estudantes(sid:
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.
IMS da IBM
IDS e IDMS
3.2
Uma
esquemas conceitual e externo. Mais para frente poderemos discutir a DDL. A Figura 1 mostra os nveis de abstrao de 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
Professor do esProfessorPublico
dos dados.
independncia lgica
O esquema conceitual tambm protege os usurios de mudanas no armazenamento fsico. propriedade chamamos de
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
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
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
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
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
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
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.