Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de...

24
10/10/13 1 © 2013 IST Bases de Dados 2013/2014 Introdução aos Sistemas de Bases de Dados Helena Galhardas © 2013 IST Bibliografia Raghu Ramakrishnan, Database Management Systems, Cap. 1 1

Transcript of Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de...

Page 1: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

1  

©  2013  IST  

Bases de Dados 2013/2014 Introdução aos Sistemas de

Bases de Dados

Helena Galhardas

©  2013  IST  

Bibliografia

•  Raghu Ramakrishnan, Database

Management Systems, Cap. 1

1  

Page 2: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

2  

©  2013  IST  

Sumário

•  Bases de Dados e SGBD •  Sistemas de Informação •  Modelos de dados dos SGBD: Modelo

Relacional •  Arquitectura dos SGBD •  Concepção de BD

2  

©  2013  IST  

O que é um SGBD? •  Base de Dados (BD): um conjunto de dados

tipicamente de grandes dimensões •  Descreve actividades de organizações do mundo

real –  Entidades (ex: estudantes, disciplinas) –  Relacionamentos ou Associações (ex: José Santos

está inscrito em BD) •  Um Sistema de Gestão de Bases de Dados

(SGBD) é um pacote de software desenhado para guardar e gerir bases de dados –  Database Management System (DBMS) –  SGBD Relacionais – classe dominante de SGBDs

3  

Page 3: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

3  

©  2013  IST  

Perspectiva histórica •  No início dos 1960s

–  Integrated Data Store: o primeiro SGBD genérico foi desenvolvido pelo Charles Bachman na General Electric

•  No final dos 1960s –  Information Management System (IMS): SGBD desenvolvido pela IBM que ainda hoje

é usado •  Em 1970

–  Edgar Codd do IBM's San Jose Research Laboratory propôs o modelo de dados relacional

•  1980s –  Linguagem SQL para SGBD relacionais foi desenvolvido como parte do IBM's System

R project •  No final dos 1980s e 1990s

–  Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP, data mining), armazenamento de grandes quantidades de informação em data warehouses, comércio electrónico

•  Início dos 2000s: –  XML para dados semi-estruturados e linguagem XQuery para os interrogar –  Administração de bases de dados atomática

•  No final dos 2000s: –  Sistemas de armazenamento gigantes:

•  Google BigTable, Yahoo PNuts, Amazon, ..

©  2013  IST  

Ficheiros vs SGBD •  Aplicações têm que transferir dados entre

memória principal e secundária –  Mecanismos de buffering, acesso orientado à página,

etc •  Código distinto para interrogações diferentes •  Evitar incoerência de dados devido a acesso por

múltiplos utilizadores •  Assegurar coerência de dados depois de

recuperação de falhas •  Segurança e controlo de acessos: diferentes

utilizadores e diferentes dados 5  

Page 4: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

4  

©  2013  IST  

Vantagens do SGBD (1)

•  Independência dos dados – Aplicações não estão expostas aos detalhes

de como os dados estão representados e armazenados

– SGBD disponibiliza uma visão abstracta dos dados

•  Acesso Eficiente aos Dados – SGBD utiliza uma variedade de técnicas

sofisticadas para armazenar e recolher dados de uma forma eficiente

©  2013  IST  

Vantagens do SGBD (2)

•  Integridade dos Dados e Segurança – O SGBD pode aplicar restrições de

integridade durante o acesso aos dados •  Administração dos dados

– Profissionais experientes podem organizar a representação dos dados por forma a minimizar a redundância e melhorar o armazenamento e recolha dos dados

Page 5: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

5  

©  2013  IST  

Vantagens do SGBD (3) •  Acesso Concorrente e Recuperação de Falhas

–  Acesso aos dados como se fosse acedido por um utilizador de cada vez

–  Minimiza os efeitos de falhas no sistema •  Redução do tempo de desenvolvimento de

aplicações –  Disponibiliza funções de acesso comuns –  Interface de alto nível para os dados –  Mais robusto:

•  Tarefas executadas pelo SGDB não precisam de ser verificadas

©  2013  IST  

Vale a pena usar um SGBD?

•  Em geral, numa organização, SIM! •  A médio/longo prazo a não adopção do SGBD

tem custos superiores: –  A informação tende a crescer indefinidamente e a sua

complexidade evolui –  O número de utilizadores cresce –  A dependência da organização em relação à

disponibilidade da informação é cada vez mais crítica

9  

Page 6: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

6  

©  2013  IST  

Desvantagens do SGBD

•  Aplicação de SW complexas •  Desempenho inaceitável para algumas

aplicações – Aplicações de tempo-real

•  Não disponibiliza análise flexível para alguns tipos de dados –  Dados em texto

•  Nem sempre os benefícios dos SGBD são necessários

©  2013  IST  

Quando não usar? •  Overhead demasiado elevado:

–  overhead do investimento em hw, sw, formação –  SGBD demasiado geral no tratamento de dados e no

processamento da segurança, controlo de concorrência, recuperação de faltas e controlo de integridade

•  Base de dados/aplicações simples/imutáveis •  Requisitos de tempo-real incontornáveis •  Ausência de acesso concorrente •  Porém, HOJE, custo inicial do sw pode ser

reduzido: –  opensource: PostgresSQL, MySQL, BerkeleyDB

11  

Page 7: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

7  

©  2013  IST  

Sumário

•  Bases de Dados e SGBD •  Sistemas de Informação •  Modelos de dados dos SGBD: Modelo

Relacional •  Arquitectura dos SGBD •  Concepção de BD

12  

©  2013  IST  

Sistemas de Informação In a broad scope, the term Information Systems (IS) is a scientific field of study that addresses the range of strategic, managerial and operational activities involved in the gathering, processing, storing, distributing and use of information, and its associated technologies, in society and organizations. The term information systems is also used to describe an organizational function that applies IS knowledge in industry, government agencies and not-for-profit organizations. Information Systems often refers to the interaction between algorithmic processes and technology. This interaction can occur within or across organizational boundaries. An information system is not only the technology an organization uses, but also the way in which the organizations interact with the technology and the way in which the technology works with the organization’s business processes. Information systems are distinct from information technology (IT) in that an information system has an information technology component that interacts with the processes components

http://en.wikipedia.org/wiki/Information_systems

13  

Page 8: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

8  

©  2013  IST  

Tipos de Sistemas de Informação

•  Data warehouses/OLAP •  ERP - enterprise resource planning •  Enterprise systems •  Expert systems •  GIS – Geographic Information System

– SIG - Sistema de Informação Geográfica •  Office Automation

14  

Todos  funcionam  sobre  SGBD!  

©  2013  IST  

SGBD para processamento de informação de gestão

OLTP - On-Line Transaction Processing •  Muitos utilizadores

simultâneos •  Transacções curtas

OLAP - On-line Analytical Processing •  Estatísticas sobre os

dados •  EIS – Executive

Information Systems •  DSS – Decision Support

Systems •  Data mining –

Prospecção de Dados

15  

Page 9: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

9  

©  2013  IST  

Níveis Informacionais

16  

EIS Executive Information System

DSS Decision Support System

OLTP

On Line Transaction Processing

DADOS

BD Estratégicas

BD Apoio à Decisão

Bases de Dados Operacionais

INFORMAÇÃO

CONHECIMENTO

- Que factores influenciam as vendas em Paris ? - Quais as tendências significativas?

- Vendas mensais por produto em Paris ? - Quais são as tendências?

- Qual o preço do produto X ? - Quais as vendas em Paris ?

Aplicações

©  2013  IST  

Sumário

•  Bases de Dados e SGBD •  Sistemas de Informação •  Modelos de dados dos SGBD: Modelo

Relacional •  Arquitectura de SGBD •  Concepção de BD

17  

Page 10: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

10  

©  2013  IST  

Modelo de Dados

•  Um modelo de dados é uma colecção de primitivas que permite descrever os dados a nível abstracto – Esconde detalhes de armazenamento

•  O modelo define os dados que serão armazenados pelo SGBD – Exemplo: modelo de dados relacional

•  A descrição dos dados em termos de modelo de dados é chamada esquema (schema)

©  2013  IST  

Modelo Semântico/Conceptual de Dados

•  Um modelo semântico de dados é um modelo mais abstracto que: –  Está mais perto da visão do utilizador –  Tem mais primitivas –  É um bom ponto de partida –  No final é traduzido para um modelo de dados

•  Modelo Entidade-Associação (EA) –  Entity-relationship (ER) model –  Descreve de uma forma gráfica as entidades e as

associações entre elas –  Outro ex: diagrama de classes UML (parte estática)

Page 11: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

11  

©  2013  IST  

Modelo Relacional •  Composto por relações •  O esquema de uma relação especifica:

– O seu nome – O nome de cada atributo (ou campo) – O tipo de cada atributo

•  Exemplo: Students( sid: string, name: string, login: string,

age: integer, gpa: real) * age está incorrecto usado apenas para não

complicar

©  2013  IST  

Exemplo de uma relação (ou tabela)

•  Cada linha na relação Students é um registo que descreve um aluno

•  Cada linha segue o esquema da relação Students

Page 12: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

12  

©  2013  IST  

Restrições de Integridade (RIs)

•  Condições que os registos de uma relação têm de satisfazer – Por exemplo, cada estudante tem um valor

único para o atributo sid •  Expressividade das primitivas do modelo

de dados para capturar RIs – aspecto importante

©  2013  IST  

Níveis de Abstracção Modelo ANSI/SPARC

Muitas vistas (views), um só esquema conceptual/lógico e um só esquema físico. –  Esquema externo (views)

descreve como os utilizadores vêm os dados

–  Esquema conceptual projecta-se na estrutura lógica

–  Esquema Físico descreve ficheiros (tabelas e índices)

23  

Esquema Físico

Esquema Conceptual/Lógico

View 1 View 2 View 3

Page 13: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

13  

©  2013  IST  

Esquema Conceptual •  Também chamado de esquema lógico •  Descreve os dados em termos do modelo de

dados do SGBD Exemplo:

Students(sid: string, name: string, login: string, age: integer, gpa: real) Faculty(fid: string, fname: string, sal: real) Courses( cid: string, cname: string, credits: integer) Rooms(rno: integer, address: string, capacity: integer) Enrolled (sid: string, cid: string, grade: string) Teaches(fid: string, cid: string) Meets_In( cid: string, rno: integer, time: string)

©  2013  IST  

Esquema Físico

•  Especifica detalhes do armazenamento – Usado para melhorar o desempenho

•  Indica como as relações estão armazenadas em disco

•  Exemplos: – Relação armazenada como um ficheiro de

registos não ordenado – Criar um índice sobre a primeira coluna de

Students (sid)

Page 14: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

14  

©  2013  IST  

Esquema Externo •  Permite particularizar o acesso

– Conjunto de Vistas (views): só visíveis para um determinado grupo de utilizadores

– Os registos numa vista não são armazenados explicitamente, são calculados quando necessários

•  Exemplo: Courseinfo( rid: string, fname: string, enrollment:

integer) •  Courseinfo deriva das relações apresentadas

anteriormente

©  2013  IST  

Independência dos Dados •  Independência dos dados lógicos

–  Alterações ao esquema conceptual são encapsuladas pelo esquema externo

–  É possível estender as estruturas de dados sem modificar os programas

–  Alteração em Faculty •  Redefinição da vista Courseinfo •  O utilizador não vê mudanças

•  Independência dos dados físicos –  Alterações no tipo de armazenamento em disco, estrutura

de ficheiros, e índices são encapsuladas pelo esquema conceptual

–  É possível alterar a organização física dos dados sem modificar o esquema conceptual

Page 15: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

15  

©  2013  IST  

Sumário

•  Bases de Dados e SGBD •  Sistemas de Informação •  Modelos de dados dos SGBD: Modelo

Relacional •  Arquitectura de SGBD •  Concepção de BD: Modelo Entidade-

Associação

28  

©  2013  IST  

Estrutura de um SGBD

•  Estruturado em camadas

•  Figura não mostra os componentes de controlo da concorrência e recuperação

•  Há muitas variantes

29  

Query Optimization and Execution

Relational Operators

Files and Access Methods

Buffer Management

Disk Space Management

BD

Page 16: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

16  

©  2013  IST  

naive users(tellers, agents,

web users)

query processor

storage manager

disk storageindices

statistical datadata

data dictionary

applicationprogrammers

applicationinterfaces

applicationprogram

object code

compiler andlinker

bu!er manager file manager authorizationand integrity

manager

transactionmanager

DML compiler and organizer

query evaluationengine

DML queries DDL interpreter

applicationprograms

querytools

administrationtools

sophisticatedusers

(analysts)database

administrators

use write use use

30  

©  2013  IST  

Interrogações ao SGBD •  Exemplo:

Qual a fracção de estudantes na disciplina de BD que obteve uma nota superior a 16?

•  Tradução para a linguagem de interrogação do SGBD –  Nos SGBD relacionais usa-se a linguagem SQL

(Structured Query Language) •  DDL (Data Definition Language)

–  create, drop, alter o esquema conceptual •  DML (Data Manipulation Language)

–  insert, delete, update, select os dados –  O SGBD tenta executar as interrogações da forma

mais eficiente

Page 17: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

17  

©  2013  IST  

Data Definition Language (DDL)"

DDL: Linguagem usada para especificação do esquema da base de dados"Exemplo: "create table instructor (

"ID " " " " char(5),

"name ! ! ! !varchar(20),

"dept_name varchar(20),

"salary numeric(8,2))"•  Compilador da DDL gera conjunto de estruturas para armazenamento dos dados!•  Catálogo (ou Dicionário de Dados) contém meta-dados (i.e., dados que descrevem

os dados)"–  Esquema da Base de Dados "–  Restrições de Integridade"

•  Ex: Chave Primária (ID identifica instrutores univocamente)" 32  

©  2013  IST  

Data Manipulation Language (DML)"DML: Linguagem para acesso e manipulação dos dados organizados segundo o modelo usado. –  DML = query language = linguagem de interrogação –  SQL é o standard de facto e é uma linguagem

declarativa Dois tipos de linguagem de interrogação: –  Procedimental

•  utilizador especifica que dados quer obter •  especifica como obter esses dados.

–  Declarativa (não procedimental) •  utilizador especifica que dados quer obter •  não especifica como obter esses dados.

33  

Page 18: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

18  

©  2013  IST  

SQL"•  Exemplo: “Query” para encontrar

o nome do instrutor com ID 22222: "select !name

"from !instructor

"where"instructor.ID =

‘22222’"

•  Acesso dos programas às BD faz-se por duas vias:"–  Extensões à linguagem de

programação para suportar SQL embutido"

–  API (e.g., ODBC/JDBC) que permite o envio de consultas em SQL ao SGBD

34  

©  2013  IST  

Processamento de Interrogações"

1.  Análise e tradução 2.  Otimização 3.  Avaliação

queryoutput

query parser andtranslator

evaluation engine

relational-algebraexpression

execution plan

optimizer

data statisticsabout data

35  

Page 19: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

19  

©  2013  IST  

Gestão de Transações

•  Exemplos: – Transferência de dinheiro

•  Com falha do sistema – Compra de bilhete

•  Com acesso concorrente

•  Uma transacção é uma qualquer execução de uma aplicação no SGBD – Constituída tipicamente por várias instruções

em SQL

©  2013  IST  

Execução Concorrente de Transacções

•  Um protocolo de locking é um conjunto de regras que devem ser seguidas por cada transacção (garantido pelo SGBD) – Apesar das operações das transacções serem

executadas intercaladamente – O resultado é mesmo de executar as transacções

numa determinada ordem •  Dois tipos de locks:

– Partilhados por múltiplas transacções (leitura) – Exclusiva a uma transacção (escrita e leitura)

Page 20: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

20  

©  2013  IST  

Transacções Incompletas

•  Alterações efectuadas por transacções incompletas devem ser anuladas

•  O SGBD mantém um log de todas as operações de escrita: – Para anular transacções incompletas – Ou refazer transacções completas depois de

uma falha – Checkpoints para minimizar o tempo de

recuperação (tamanho do log)

©  2013  IST  

Quem usa Bases de Dados ? •  Database implementors

– Quem desenvolve os SGBD •  End users

– Armazenam e acedem aos dados •  Database application programmers

(software developers) – Desenvolvem pacotes de software que permitem

aceder ao SGBD •  Database administrator (DBA)

– Concebe e mantém a base de dados

Page 21: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

21  

©  2013  IST  

SGBD e Modelos de Dados •  Modelos de Dados Relacional

–  MySQL, PostgreSQL, IBM's DB2, Informix, Oracle, Sybase, Microsoft's Access, SQL Server, FoxBase, Paradox, Tandem, and Teradata

•  Modelo Hierárquico –  IBM's IMS DBMS

•  Modelo orientado a objectos –  Objectstore Versant

•  Modelo relacional/objectos –  Alguns SGBDs da IBM, Informix, ObjectStore, Oracle,

Versant, e outros •  Modelos baseados em documentos

–  CouchBase, MongoDB, ...

©  2013  IST  

Sumário

•  Sistemas de Informação •  Base de Dados e SGBD •  Modelos de dados dos SGBD: Modelo

Relacional •  Arquitectura de SGBD •  Concepção de BD

41  

Page 22: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

22  

©  2013  IST  

Concepção de Bases de Dados e Aplicações

•  Como se pode descrever um caso real (por exemplo uma universidade) em termos de dados a guardar num SGBD?

•  Que factores devem ser considerados na decisão de como organizar os dados armazenados?

•  Como desenvolver aplicações que recorrem a um SGBD?

©  2013  IST  

Concepção de Base de Dados"Etapa 1: Desenho Lógico •  Decidir qual será o esquema da base de dados"

Etapa 2: Desenho Físico •  Decidir sobre a disposição física dos dados nos

equipamentos a usar para armazenamento.

43  

Page 23: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

23  

©  2013  IST  

Qual é o problema com este esquema?"

Normalização: Formaliza definição de quais os esquemas que são maus, para poder validá-los."

44  

©  2013  IST  

Análise dos Dados

•  Como o utilizador pode obter resposta às suas questões através de interrogações aos dados no SGBD?

Page 24: Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de dados (imagem e texto) e análise de grandes quantidades de informação (OLAP,

10/10/13  

24  

©  2013  IST  

Concepção de um Sistema baseado no modelo relacional

46  

Especificação de Requisitos

• requisito funcional 1:

• requisito funcional 2:

•  …

• regra de integridade 1:

• regra de integridade 2:

• ...

Esquema Conceptual (diagrama UML ou Modelo EA )

Esquema Relacional

Os Requisitos Funcionais e as Regras de Integridade são invariantes dos modelos nos vários níveis

©  2013  IST  

Sumário

•  Bases de Dados e SGBD •  Sistemas de Informação •  Modelos de dados dos SGBD: Modelo

Relacional •  Arquitectura dos SGBD •  Concepção de BD

– Próxima aula: Modelo Entidade Associação

47