INTRODUÇÃO AO
Sumário
◻ Modelo de Dados
◻ História dos Modelos de Dados
◻ Conceitos Básicos do Modelo Relacional
⬜ Relação
⬜ Esquema de Relação
⬜ Estado de Banco de Dados Relacional ⬜ Arquitetura de Esquemas
Modelo de Dados
◻ É um conjunto de convenções para descrever a
estrutura de um banco de dados e certas restrições
que o banco de dados deve obedecer
◻ Um SGBD permite um usuário definir os dados a
serem armazenados em termos de um modelo de dados
◻ A maioria dos SGBDs atuais são baseados no
Categorias de Modelos de Dados
◻ Modelo de Dados Conceitual (semântico)
⬜ alto nível de abstração. Modelo baseado em entidade
ou baseado em objeto.
◻ Modelo de Dados Físico (baixo-nível, interno)
⬜ Provê conceitos para descrever detalhes de como os
dados estão armazenados no computador
◻ Modelo de Dados de Implementação (lógico)
História dos Modelos de Dados
◻ Modelo de Redes
⬜ Foi primeiro implementado por Honeywell in 1964-65 (IDS System).
⬜ Depois implementado em vários DBMS: IDMS (Cullinet - now CA), DMS 1100 (Unisys), IMAGE (H.P.), VAX -DBMS (Digital).
◻ Modelo Hierárquico
⬜ Implementado em um esforço conjunto da IBM e North American
Rockwell em 1965.
◻ Modelo Relacional
⬜ Proposto em 1970 por E.F. Codd (IBM). Primeiro sistema comercial em
1981-82.
⬜ Atualmente, vários produtos comerciais (ORACLE, SYBASE,
História dos Modelos de Dados
◻ Modelo de Redes
⬜ Foi primeiro implementado por Honeywell in 1964-65 (IDS System).
⬜ Depois implementado em vários DBMS: IDMS (Cullinet - now CA), DMS 1100 (Unisys), IMAGE (H.P.), VAX -DBMS (Digital).
◻ Modelo Hierárquico
⬜ Implementado em um esforço conjunto da IBM e North American
Rockwell em 1965.
◻ Modelo Relacional
⬜ Proposto em 1970 por E.F. Codd (IBM). Primeiro sistema comercial em
1981-82.
⬜ Atualmente, vários produtos comerciais (ORACLE, SYBASE,
◻ Modelo Orientado a Objetos
⬜ Vários modelos propostos
⬜ OBJECTSTORE e VERSANT: Adiciona persistência a C++ ⬜ GEMSTONE : Adiciona persistência a Smalltalk
⬜ O2, , ORION, IRIS .
◻ Modelo Objeto-Relacional:
⬜ Tendência mais recente.
⬜ Informix, ORACLE 8, ILLUSTRA e UNiSQL,
1. Modelo de Dados, Esquema e
Instância
Modelo Esquema Instância
Regras para estruturação dos dados Regras para verificação das instâncias
Modelo de Dados, Esquema e
Instância
◻ Modelo de dados: Conjunto de conceitos
descrevem a estrutura de um BD
⬜ Abstração de dados
⬜ Estrutura = tipos de dados + relacionamentos +
restrições (+operações -> recuperação e atualização) ◻ Esquema: Descrição (textual ou gráfica) da
estrutura de um BD de acordo com um determinado modelo de dados
◻ Instância: Conjunto de dados armazenados em
Modelo de Dados, Esquema e
Instância
Modelo de Dados, Esquema e
Instância
Modelo de Dados, Esquema e
Instância
◻ Esquema do BD
⬜ Armazenado no catálogo
⬜ Mudanças muito menos freqüentes
◻ Estado do BD
⬜ Dados do banco em qualquer ponto do tempo ⬜ Inicialmente vazio
⬜ Muda frequentemente
Categorias de Modelo de Dados
MODELOS CONCEITUAIS
◻ Descrevem a estrutura de um BD de uma forma
mais próxima da percepção dos usuários
◻ Independente de aspectos de implementação
◻ Conceitos: entidades, atributos, relacionamentos ◻ Exemplos:
⬜ Modelo entidade-relacionamento (ER) ⬜ Modelo funcional
Categorias de Modelo de Dados
MODELOS REPRESENTACIONAIS (lógicos)
◻ Descrevem a estrutura de um BD da forma como
será manipulado através de SGBD
◻ Mais dependente das estruturas físicas de
armazenamento de dados armazenamento de dados
◻ Exemplos:
⬜ Modelo relacional
⬜ Modelo de rede (CODASYL) ⬜ Modelo hierárquico
Categorias de Modelo de Dados
MODELOS FÍSICOS
◻ Descrevem como os dados são fisicamente
armazenados
◻ Conceitos: formatos dos registros, ordenamento
Modelo Relacional
◻ Introduzido pelo pesquisador da IBM E. Codd [1970]
◻ Razões do sucesso
⬜ Estrutura de dados simples e uniforme
■ Um banco de dados relacional é um conjunto de Relações ■ Cada relação é um conjunto de linhas ou tuplas
■ Cada tupla é uma lista de valores de atributos ■ Cada valor de atributo é retirado de um domínio
Um Exemplo de Relação
Relação Empregado Nome Marta Souza José Oliveira Ana Alves DataNasc. 05/12/75 09/07/70 23/08/65 Telefone 278.90.76 241.80.76 261.65.94Empregado = {< Marta Souza, 05/12/75, 278.90.76>,
< José Oliveira, 09/07/70, 241.80.76>, < Ana Alves, 23/08/65, 261.65.94>}
Coluna ou Atributo
Linha ou Tupla
Esquema Relacional
Esquema é a descrição dos dados em termos de um modelo de dados. O esquema não muda com o tempo.
conjunto de Esquemas de Relação
E = ({R1, R2, ..., Rn}, I)
Esquemas de Relação Restrições de
Integridade
+
conjunto de Restrições de Integridade
Esquema de Relação
Empregado(nome: string, dataNasc.:Date, telefone:Integer )
Nome da Relação
Nome de Atributo
Domínio do Atributo
Esquema x Instância
◻ Esquema de um Banco de Dados
⬜ É a descrição de um banco de dados. Inclui a descrição
da estrutura dos dados e as restrições que precisam ser obedecidas.
◻ Instância de um Banco de Dados
⬜ Os dados armazenados no BD em um dado instante. ⬜ Também chamado de Estado ou Ocorrência do Banco
de Dados.
✓Esquema é chamado intenção ✓Esquema muda raramente
✓Estado é chamado extensão ✓Estado muda freqüentemente
Instância de Relação
Instância de uma relação = Conjunto de Tuplas Tupla = Lista de valores de Atributo
Nome Marta Souza José Oliveira Ana Alves DataNasc. 05/12/75 09/07/70 23/08/65 Telefone 278.90.76 241.80.76 261.65.94 Tuplas
Instância ou Estado de BD
Relacional
◻ Uma Instância de um BD são os dados no BD em um
determinado instante.
BD é um estado consistente do esquema S se satisfaz a todas as Restrições de Integridade de S
BD = {r
1, r
2, ..., r
n}
Instâncias de Esquemas de Relação
Instância de um BD relacional = Conjunto de Instâncias de Relações
Restrições de Integridade
◻ Um Banco de Dados armazena informação sobre parte de um mundo real que chamamos de mini-mundo.
◻ Certas regras, denominadas de Restrições de Integridade, governam este mini-mundo.
◻ As restrições de Integridade especificam os estados do BD que são considerados consistente.
◻ O Estado de um Banco de Dados é dito consistente ou válido se todas as RI’s forem satisfeitas.
Terminologia de Conceitos Básicos do
Modelo Relacional
Modelo Relacional
(Formal) Relação Tupla Atributo
Linha Coluna
Tabela
Conjunto estruturado (lista)Elemento Componentede lista
Teoria de conjuntos e Estrutura de dados Modelo Relacional (informal) e SQL Análise estruturada moderna Processamento de dados Depósito de dados Arquivo Registro Registro Campo Campo
ARQUITETURA DE ESQUEMAS PARA
SISTEMAS DE BANCO DE DADOS
Arquitetura de 3-esquemas
Proposta em 1978 pela ANSI/SPARC
Proposta para suportar as características dos
sistemas de BDs de
Suporte para múltiplas visões de usuários Independência entre programas e dados
Arquitetura de um Sistema de BD
Características do enfoque de BD
◻ Isolamento de programas e dados
◻ Suporte de visões múltiplas de usuários
◻ Catálogo para armazenar a descrição (esquema)
do BD
Arquitetura de três níveis
◻ Mantém independência de dados e programas ◻ Suporta múltiplas visões
Arquitetura de 3 esquemas
NÍVEL
EXTERNO VISÃO .. VISÃO
.
NÍVEL
CONCEITUAL ESQUEMA CONCEITUAL
NÍVEL
INTERNO ESQUEMA INTERNO
BANCO DE DADOS ARMAZENADO
Mapeamento Externo/Conceitua l Mapeament o Conceitual/Interno
Arquitetura de um Sistema de BD
Esquema interno
• Descreve armazenamento físico
Esquema conceitual
• Descreve entidades, tipos de dados, relacionamentos, operações e restrições
• Esconde detalhes de armazenamento
Esquemas externos (visões)
•
Descreve porções do banco para diferentes comunidadesArquitetura de um Sistema de BD
Exemplo 1
◻ Esquema conceitual
⬜ Estudantes (eid: string, nome: string, login: string, idade:
integer, gpa:real)
⬜ Cursos (cid: string, cnome:string, creditos:integer)
⬜ Matricula (eid:string, cid:string, nota:string) Matricula
(eid:string, cid:string, nota:string) ◻ Esquema Físico
⬜ Relações guardadas como arquivos desordenados ⬜ Índices na primeira colunas de estudantes
◻ Esquema externo (Visão):
Arquitetura de 3 esquemas
ESQUEMA EXTERNO:
EMP (Nome: STRING, DataNasc.: Date, Local: STRING)
ESQUEMA CONCEITUAL:
EMP-RIO (Nome: STRING, DataNasc.: Date)
ESQUEMA INTERNO:
Formato do Registro EMP
4 bytes ponteiro 2 bytes Inteiro 4 bytes ponteiro Cadeira de caracter ...
Arquitetura de um Sistema de BD
Independência de Dados
◻ Capacidade de se alterar o esquema em um
determinado nível sem alterar o esquema (ou esquemas) do nível imediatamente mais alto .
VANTAGEM:
◻ Imunidade dos programas em relação a
mudanças na estrutura do banco de dados
Independência de Dados
É a capacidade de modificar uma definição de esquema em um nível, sem afetar as definições de esquema nos níveis mais acima.
* Sistemas de arquivos não têm independência física nem lógica.
●
Independência Física
●Independência Lógica
Independência Lógica
⬜ EX: Expansão ou redução
⬜ Você decide adicionar uma nova coluna na tabela Estudante do esquema conceitual. Todos os
programas continuarão funcionando. Porém se uma coluna for removida, os programas que fazem uso desta coluna não funcionarão mais.
A capacidade de se modificar o
esquema
conceitual sem ter que modificar o esquema externo ou programas de aplicação
Independência Física
Exemplo:
Reorganização de arquivos para melhorar desempenho * Você decide modificar o layout do Registro físico da
tabela Estudante. O esquema conceitual permanece inalterado e todos os programas de aplicações
continuarão funcionando.
É a capacidade de se modificar o esquema
Interno sem ter que modificar o esquema
conceitual ou externo.
Linguagens dos SGBDs
◻ Linguagem de Definição de dados (DDL)
⬜ Usada pelo DBA e projetistas do BD para especificar o
esquema conceitual. Em alguns SGBDs a DDL é também usada para definir os esquemas interno e externos
(visões).
◻ Linguagem de Manipulação de Dados (DML)
⬜ Usada para especificar consultas e atualizações
⬜ Os comandos DML podem ser usados diretamente ou
embutido (embedded) em uma linguagem de programação com COBOL, JAVA
⬜ Exemplo: SQL (DML de alto nível usada em modo
Interfaces
◻ Baseadas em menus
◻ Baseadas em formulários ◻ Gráficas (GUI), diagramas
◻ Baseadas em linguagem natural ◻ Para leigos