Você está na página 1de 37

Bases de Dados!

2013/14!
http://ssdi.di.fct.unl.pt/bd!
!
Joo Leite (jleite@fct.unl.pt)!
!
!

Captulo 1: Introduo!
Funo dos Sistemas de Bases de Dados!
Viso dos dados!
Modelos de dados!
Linguagem de Definio de Dados!
Linguagem de Manipulao de Dados!
Gesto de Transaces !
Gesto de Armazenamento!
Administrador da Base de Dados!
Utilizadores da Base de Dados!
Estrutura Global do Sistema!

Database System Concepts!

2!

Silberschatz, Korth and Sudarshan (modificado)!

Sistemas de Gesto de Bases de Dados (SGBDs)!


Coleco de dados inter-relacionados (Base de Dados)!
Conjunto de programas para aceder aos dados!
Deve fornecer um ambiente de utilizao conveniente e

eficiente. !
Exemplos de aplicaes de Bases de Dados:!

Banca: todas as transaces e movimentos!


Companhias areas: reservas, horrios!
Universidades: inscries, notas!
Vendas: clientes, produtos, compras!
Indstria: produo, inventrio, pedidos, cadeia de fornecimento!
Recursos humanos: registos dos empregados, salrios, impostos!
...!

Database System Concepts!

3!

Silberschatz, Korth and Sudarshan (modificado)!

Funes de um SGBD!
Antigamente, os SGBDs eram construidos directamente sobre

os sistemas de ficheiros.!
Inconvenientes dos sistemas de ficheiros no armazenamento de

dados:!
Multiplos ficheiros e formatos!
Isolamento de dados !
Dificuldade de relacionar dados!
Duplicao de informao em ficheiros diferentes!
Redundncia e inconsistncia de dados!
Dificuldades no acesso aos dados!
Necessidade de escrever um novo programa para efectuar uma
nova tarefa!
Problemas de integridade!
Restries de integridade (e.g. saldo da conta> 0) esto
includas no cdigo dos programas!
Difcil alterar ou adicionar novas restries!
Database System Concepts!

4!

Silberschatz, Korth and Sudarshan (modificado)!

Funes de um SGBD (Cont.)!


Inconvenientes dos sistemas de ficheiros (cont.) !
Atomicidade das alteraes!
Falhas podem colocar a base de dados num estado inconsistente
com alteraes parciais j efectuadas. !
E.g. transferncia de dinheiro de uma conta para outra ou deve ser
totalmente realizada ou nenhuma alterao deve ser efectuada!
Acessos concorrentes por diversos utilizadores!
Acessos concorrentes so necessrios por motivos de eficincia!
Os acessos concorrentes no controlados podem originar
inconsistncias!
E.g. duas pessoas a consultarem um saldo e a alter-lo ao
mesmo tempo!
Problemas de segurana!
Nem todos os utilizadores devem poder aceder a todos os dados.!

Os Sistemas de Gesto de Bases de Dados pretendem oferecer

solues para todos estes problemas.!

Database System Concepts!

5!

Silberschatz, Korth and Sudarshan (modificado)!

Recapitulando!
Um SGBD consiste:!

Coleco de dados inter-relacionados (Base de Dados)!


Conjunto de programas para aceder aos dados!
Deve fornecer um ambiente de utilizao conveniente e eficiente. !
Por um lado, a eficincia importante (acesso rpido aos

dados). !
Por outro lado, queremos esconder certos detalhes de

implementao !

Database System Concepts!

6!

Silberschatz, Korth and Sudarshan (modificado)!

Nveis de Abstraco!
Nvel fsico: descreve como um
registo (e.g., cliente) armazenado.!
Nvel lgico: descreve os dados
armazenados na base de dados,
assim como as relaes entre os
dados.!
Nvel das vistas: as aplicaes
ocultam os detalhes dos tipos de
dados. As vistas tambm podem
esconder informao (e.g., salrio)
por motivos de segurana.!

Semelhante a tipos de dados nas linguagens de programao!

Nvel fsico: blocos de dados no disco.!


Nvel lgico: tipos e relaes entre tipos, usados ao nvel da programao.!
Nvel das vistas: aplicaes que escondem os tipos do utilizador.!

Database System Concepts!

7!

Silberschatz, Korth and Sudarshan (modificado)!

Instncias e Esquemas!
As Bases de Dados Variam ao longo do tempo!
Instncia o contedo de uma base de dados num instante de tempo!

Anlogo ao valor de uma varivel!


Esquema a estrutura lgica da base de dados!

e.g., a base de dados constituda por informao sobre clientes, contas e


as relaes entre si.!
Anlogo ao tipo de uma varivel num programa!
Esquema fsico: desenho da base de dados ao nvel fsico!
Esquema lgico: desenho da base de dados ao nvel lgico!
Independncia fsica dos dados a capacidade de modificar o

esquema fsico sem alterar o esquema lgico!


As aplicaes dependem do esquema lgico!
Em geral, as interfaces entre os vrios nveis e componentes devem estar
bem definidas de modo a que alteraes numa parte no influenciem
grandemente outras partes.!

Database System Concepts!

8!

Silberschatz, Korth and Sudarshan (modificado)!

Modelos de Dados!
Um conjunto de ferramentas para descrever !

dados !
relaes entre dados!
semntica dos dados!
restries sobre os dados!
Exemlos:!

Modelo Entidade-Relaes (para desenho de Bases de Dados)!


Modelo Relacional!
Modelos de dados baseados em objectos!
Modelos de dados semi-estruturados (XML)!
Outros modelos: !
Modelo hierrquico!
Modelo em rede!

Database System Concepts!

9!

Silberschatz, Korth and Sudarshan (modificado)!

Linguagem de Definio de Dados (DDL)!


Especificao da notao para definio do esquema da base de dados!
E.g.
!create table account (
account-number char(10),
balance
integer)!
O compilador da DDL gera um conjunto de tabelas armazenadas num

dicionrio de dados.!
O dicionrio de dados contm metadados (dados sobre dados)!
Esquema de bases de dados !
Restries de integridade!
Restries de domnio; Integridade de referncia; Asseres!
Autorizao!

Linguagem de definio de dados e armazenamento!


Linguagem onde se especificam as estruturas de armazenamento e
mtodos de acesso utilizados pela base de dados!
Normalmente uma extenso da linguagem da definio de dados!

Database System Concepts!

10!

Silberschatz, Korth and Sudarshan (modificado)!

Ling. de Manipulao de Dados (DML)!


Linguagem para aceder e manipular os dados organizados de

acordo com o respectivo modelo de dados!


A DML tambm conhecida por linguagem de consulta!
Duas classes de linguagens!

Procedimental o utilizador especifica quais os dados que se


pretendem, bem como a forma de os obter!
Declarativa (No-procedimental) o utilizador especifica quais os
dados pretendidos sem especificar a forma de os obter!
A SQL a linguagem de consulta mais utilizada!

Database System Concepts!

11!

Silberschatz, Korth and Sudarshan (modificado)!

Bases de Dados Relacionais!


Uma base de dados relacional baseada no modelo de dados

relacional!
Os dados e as relaes entre os dados so representadas por

um conjunto de relaes (semelhante a tabelas)!


Inclui uma DML e uma DDL!
A maioria dos sistemas de bases de dados relacionais

comerciais usam a linguagem SQL (que inclui DML e DDL).!

Database System Concepts!

12!

Silberschatz, Korth and Sudarshan (modificado)!

Modelo Relacional!
Atributos!

Exemplo de conjunto de dados no modelo relacional !


Customer-id!

customer-!
name!

192-83-7465!
!
019-28-3746!
!
192-83-7465!
!
321-12-3123!
!
019-28-3746!

Johnson!
!
Smith!
!
Johnson!
!
Jones!
!
Smith!

Database System Concepts!

customer-!
street!
Alma!
!
North!
!
Alma!
!
Main!
!
North!

13!

customer-!
city!
Palo Alto!
!
Rye!
!
Palo Alto!
!
Harrison!
!
Rye!

account-!
number!
A-101!
!
A-215!
!
A-201!
!
A-217!
!
A-201!

Silberschatz, Korth and Sudarshan (modificado)!

Exemplo de Base de Dados Relacional!

Database System Concepts!

14!

Silberschatz, Korth and Sudarshan (modificado)!

Desenho de Bases de Dados!


O processo de desenhar a estrutura geral de uma base de dados.!
Desenho Lgico: decidir o esquema da Base de Dados.

Encontrar uma boa coleco de Esquemas de Relao. !


Deciso empresarial: que atributos devem ser mantidos na Base de
Dados?!
Deciso Informtica: Que esquemas de relao devem seu usados
e como dividir os vrios atributos pelos vrios esquemas de
relao?!
Desenho Fsico: Decidir a forma (layout) fisico da Base de

Dados!

Database System Concepts!

15!

Silberschatz, Korth and Sudarshan (modificado)!

Modelo de Entidades e Relaes!


Modelizao ER do mundo!
Entidades (objectos) !
E.g. customers, accounts, bank branch!
Relaes entre entidades!
E.g., a conta A-101 pertence ao cliente Johnson!
O conjunto de associaes depositante associa clientes a
contas!
Amplamente utilizado no desenho de bases de dados!
O desenho de base de dados no modelo ER normalmente
convertido para o desenho no modelo relacional (a seguir) que
utilizado para processamento e armazenamento!

Database System Concepts!

16!

Silberschatz, Korth and Sudarshan (modificado)!

Modelo ER (cont.)!
Exemplo de um esquema no modelo ER!

Database System Concepts!

17!

Silberschatz, Korth and Sudarshan (modificado)!

Outros Modelos de Dados!


Objecto-relacional: extende o modelo relacional com a noo

de objectos!
XML: permite a modelizao de dados semi-estruturados!

Database System Concepts!

18!

Silberschatz, Korth and Sudarshan (modificado)!

SQL!
SQL: linguagem no-procedimental de uso generalizado!
E.g. encontrar o nome de cliente com customer-id 192-83-7465
!select customer.customer-name
!from customer
!where customer.customer-id = 192-83-7465!
E.g. procurar os saldos de todas as contas detidas pelo cliente com
customer-id 192-83-7465
!select account.balance
!from depositor, account
!where depositor.customer-id = 192-83-7465 and
!
!depositor.account-number = account.account-number!
As aplicaes geralmente acedem a bases de dados por

intermdio de:!
Extenses s linguagens permitindo SQL embutido:!
Interface de aplicaes (e.g. ODBC/JDBC) permitindo o envio de
consultas SQL para a base de dados!

Database System Concepts!

19!

Silberschatz, Korth and Sudarshan (modificado)!

Gesto do Armazenamento!
O gestor do armazenamento um mdulo de programa que

fornece uma interface entre os dados de baixo nvel


armazenados na base de dados e as aplicaes e consultas
submetidas ao sistema.!
O gestor de armazenamento responsvel pelas seguintes

tarefas:!
interaco com o gestor de ficheiros!
armazenamento, recuperao e alterao eficientes dos dados!

Database System Concepts!

20!

Silberschatz, Korth and Sudarshan (modificado)!

Processamento de consultas!
Mdulos:!

Interpretao e traduo!
Optimizao!
Avaliao!
Formas alternativas de avaliao de uma dada consulta!

Expresses equivalentes!
A diferena de custo entre uma boa e uma m forma de avaliao
de uma consulta pode ser enorme!
necessrio estimar o custo das operaes!

Depende de dados estatsticos mantidos pela Base de Dados sobre


as relaes que armazena!
Necessita estimar estatisticas para resultados intermdios para
clcular o custo de uma expresso complexa!

Database System Concepts!

21!

Silberschatz, Korth and Sudarshan (modificado)!

Gesto de Transaces!
Uma transaco um conjunto de operaes que efectuam uma

operao lgica na aplicao de base de dados!


A componente de gesto de transaces garante que a base de

dados se mantm num estado consistente (correcto) apesar de


falhas no sistema (e.g., falta de energia elctrica e paragens
abruptas do sistema operativo) e de transaces falhadas.!
O gestor de controlo de concorrncia coordena a interaco

entre transaces concorrentes para garantir a consistncia da


base de dados.!

Database System Concepts!

22!

Silberschatz, Korth and Sudarshan (modificado)!

Estrutura Genrica do Sistema!

Database System Concepts!

23!

Silberschatz, Korth and Sudarshan (modificado)!

Utilizadores da Base de Dados!


Os utilizadores diferenciam-se pela forma esperada de interaco
com o sistema!
Programadores de aplicaes interagem com o sistema

atravs de chamadas DML!


Utilizadores sofisticados constrem pedidos numa

linguagem de consulta a bases de dados!


Utilizadores especializados escrevem aplicaes de bases

de dados especializadas que no se enquadram no esprito do


processamento de dados tradicional!
Utilizadores chamam uma das aplicaes que foi construda

previamente!
E.g. pessoas a acederem a uma base de dados atravs da Web,
caixas, pessoal de secretariado!

Database System Concepts!

24!

Silberschatz, Korth and Sudarshan (modificado)!

Administrador da Base de Dados!


Coordena todas as actividades do sistema de base de dados; o

administrador da base de dados compreende bem dos recursos


e necessidades de informao da empresa.!
As funes do administrador de bases de dados incluem:!

Definio do esquema!
Definio dos mtodos de acesso e estrutura de armazenamento!
Modificao do esquema e da organizao fsica!
Dar aos utilizadores autorizaes de acesso base de dados!
Especificar restries de integridade!
Servir de ligao entre os utilizadores!
Monitorar a performace e responder a alteraes nos requisitos. !

Database System Concepts!

25!

Silberschatz, Korth and Sudarshan (modificado)!

Arquitecturas de Aplicao!

Arquitectura de duas camadas: E.g. programas clientes recorrendo a


ODBC/JDBC para comunicar com a base de dados!
Arquitectura de trs camadas: E.g. aplicaes web e aplicaes
construdas recorrendo a "software intermedirio, e.g. Forms)!

Database System Concepts!

26!

Silberschatz, Korth and Sudarshan (modificado)!

Funcionamento da UC de
Bases de Dados!
Objectivo: Dotar os alunos das bases necessrias
concepo, construo e anlise de bases de dados
relacionais.!

Objectivos Saber!
Conhecer o modelo Entidade-Relao e o modelo relacional de

dados, e os fundamentos do modelo objecto/relacional!


lgebra relacional como linguagem formal de manipulao de

bases de dados relacionais!


Os fundamentos da linguagem SQL (como linguagem de

definio e manipulao de dados)!


Normalizao de bases de dados com base em dependncias

funcionais e multivalor!
Breves noes de modelao de dados em XML, e de

mecanismos para manipulao desses dados!

Database System Concepts!

28!

Silberschatz, Korth and Sudarshan (modificado)!

Objectivos Fazer!
Modelar, primeiro em ER e depois numa base de dados

relacional, um problema de dimenso mdia (resultando em


cerca de uma/duas dezenas de tabelas)!
Criar uma base de dados em SQL para problema mdio

implementando em SQL todos os mecanismos necessrio


integridade dos dados!
Implementar uma interface simples para manipulao da base

de dados!
Estar vontade na formulao de perguntas complexas em SQL!
Saber usar os mecanismos base SQL do modelo objecto/

relacional!

Database System Concepts!

29!

Silberschatz, Korth and Sudarshan (modificado)!

Objectivos Soft Skills!


Capacidade de trabalhar em equipa e de colaborar numa equipa!
Capacidade de modelao de problemas!
Saber elaborar relatrio de anlise, desenho e implementao

de uma soluo!
Gesto do tempo e cumprimento de prazos!

Database System Concepts!

30!

Silberschatz, Korth and Sudarshan (modificado)!

Programa!
Introduo aos sistemas de bases de dados (1 aula esta)!
Modelos de dados!

Modelo de Entidades e Relaes (2 aulas)!


Modelo Relacional (1 aula)!

Linguagens de manipulao de bases de dados!


lgebra relacional (2 aulas)!
SQL (3 aulas)!
Outras linguagens (1 aula)!

Integridade e Segurana de Bases de Dados!

Integridade de referncia ( aula)!


Asseres e triggers ( aula)!
Segurana e autorizaes ( aula)!
Transaces ( aula)!

Normalizao de Bases de Dados!


Dependncias funcionais e multi-valor (1 aula)!
Formas normais: 3, 4 e de Boyce-Cood (1 aula)!

Discusso de outros modelos de bases de dados!


Bases de dados objectos/relacional (1 aula)!
XML (2 aulas)!

Database System Concepts!

31!

Silberschatz, Korth and Sudarshan (modificado)!

Aulas Prticas!
Exerccios de modelo ER (1 aula)!
Exerccios de lgebra relacional (1 aula)!
Exerccios de SQL (3 aulas)!
Exerccios de Normalizao de BDs (1 aula)!
Exerccios de XML ( aula) !
Exerccios de Transaces ( aula)!
Introduo ao Oracle Application Express (2 aulas)!
Implementao do trabalho prtico (1 aula)!

Database System Concepts!

32!

Silberschatz, Korth and Sudarshan (modificado)!

Funcionamento!
Aulas:!

Aulas Tericas (2h, at 13 de Maio)!


Aulas Prticas (comeam no dia 12 de Maro)!
Exerccios!
Trabalho Prtico!

Avaliao:!

50% - 2 Testes ou Exame de Recurso (mnimo 10 valores)!


50% - Trabalho prtico (vrias etapas com prazos bem definidos)!
Pgina da cadeira:!
http://ssdi.di.fct.unl.pt/bd!

Database System Concepts!

33!

Silberschatz, Korth and Sudarshan (modificado)!

Algumas Regras (o que espero de vs)!


Pontualidade.!

No caso excepcional de chegarem atrasados, devem entrar pela


porta de trs, tentando no perturbar a aula.!
No usar portteis durante as aulas tericas.!

Se estiverem habituados a usar os portteis para tirar notas, ento


devem vir para a fila da frente.!
Manter silncio durante as aulas.!

A no ser, claro est, para participar na aula.!


Fazer um esforo para compreender a matria antes de colocar

dvidas, por e-mail ou no horrio de dvidas.!

Database System Concepts!

34!

Silberschatz, Korth and Sudarshan (modificado)!

O que podem esperar de mim!


Assiduidade e pontualidade.!

A menos de algum imprevisto!


Disponibilidade para esclarecimento de dvidas, de forma

presencial ou por e-mail. !


Colocao dos slides pouco tempo aps cada aula terica.!
Respeito pelos prazos estabelecidos.!
Preparar e dar as aulas da melhor forma que sei!

Database System Concepts!

35!

Silberschatz, Korth and Sudarshan (modificado)!

Algumas Recomendaes!
Erros habituais:!

As aulas prticas so suficientes;!


Os testes/exames so uma questo de sorte pois so de escolha
mltipla;!
Basta ir s aulas e dar uma vista de olhos pelos acetatos nas
vsperas dos testes/exame;!
A matria no complicada. !

No entanto, exigido um conhecimento profundo e rigoroso.!


Este conhecimento no se adquire na vspera do teste/exame.!
Requer um certo amadurecimento que s se obtm com tempo.!

Database System Concepts!

36!

Silberschatz, Korth and Sudarshan (modificado)!

Algumas Recomendaes!
Aos alunos que s vm as primeiras trs/quatro aulas tericas.!

No boa ideia! pelo menos, estatisticamente, no tem sido.!


Devem ler o livro com muita ateno para perceber bem os
conceitos. Ler os acetatos no chega! !
Para os alunos que vm s aulas:!

O mais indicado ler o livro antes de cada aula (ver planificao).!

Database System Concepts!

37!

Silberschatz, Korth and Sudarshan (modificado)!

Você também pode gostar