Ferramentas OLAP: MicroStrategy OLAP Services Bruna, Carolina e Paolla.
Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de...
Transcript of Bibliografia - fenix.tecnico.ulisboa.pt · – Extensões aos SGBDs para suporte de novos tipos de...
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
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
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
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
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
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
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
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
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
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)
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
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
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)
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
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
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
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
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
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)
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
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
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
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?
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