BD e Aplicações em Negócios Sistemas de Banco de Dados: conceitos e arquitetura evandro@usp.br
Modelo de dados Temos um conceito inicial (primitivo) do que pode ser um BD BD é um conjunto de dados Para representar estes dados precisamos modelar os dados Modelar: criar uma representação dos dados, um modelo Depois do modelo vem a implementação
O que é um modelo? Casa: planta baixa, maquete Vias públicas: mapa Modelo para rede se semáforos
Como modelar?
Tipos de Modelos Modelo Conceitual! Alto nível, como os usuários percebem Modelo Físico! Baixo nível, como os implementadores percebem
Modelos de elevador Conceitual
Modelos de elevador Conceitual Físico
Conceitos em modelos de dados Entidade Objeto do mundo real ou um conceito
Conceitos em modelos de dados Entidade Objeto do mundo real ou um conceito funcionário
Conceitos em modelos de dados Entidade Objeto do mundo real ou um conceito funcionário relatório
Conceitos em modelos de dados Entidade Objeto do mundo real ou um conceito pessoa projeto funcionário relatório
Conceitos em modelos de dados Atributo Propriedade de uma entidade ou relacionamento
Conceitos em modelos de dados Atributo Propriedade de uma entidade ou relacionamento nome endereço nascimento função funcionário
Conceitos em modelos de dados Relacionamento Associação entre duas ou mais entidade
Conceitos em modelos de dados Relacionamento Associação entre duas ou mais entidade trabalha_em Projeto funcionário
Conceitos em modelos de dados Relacionamento Associação entre duas ou mais entidade trabalha_em Projeto é_autor Relatório funcionário
Uso de modelos Modelo Entidade Relacionamento! Modelo Relacional! Modelo Orientado a Objetos
Modelo Entidade Relacionamento É um modelo conceitual, de alto nível, muito utilizado para projetos de dados
Modelo Entidade Relacionamento Identifique na figura Entidade Atributo Relacioamento
Modelo Relacional Modelo de dados representacional, ou de implementação (nível médio) É o modelo mais popular entre os modelos de implementação de SGDB
Modelo Orientado a Objetos Família de modelos de dados representacional de alto nível Não será abordado nesta disciplina
Conseqüências do Modelo de Dados O modelo de dados (MD) descreve um BD Através do MD pode-se criar o BD de fato O MD não trata das especificidades do BD de fato O MD não detalha dados nem operações
Conseqüências do Modelo de Dados O modelo de dados (MD) descreve um BD Através do MD pode-se criar o BD de fato O MD não trata das especificidades do BD de fato O MD não detalha dados nem operações
Conseqüências do Modelo de Dados Descrição do BD é conhecida como Esquema do Banco de Dados ou Diagrama Esquemático do BD O Diagrama Esquemático representa as estruturas dos tipos de registro do BD
Diagrama Esquemático Exemplo de diagrama no modelo de dados Relacional
Exemplo de esquema de BD Aluno nome numeroaluno turma cursohabilitacao Curso nomecurso numerocurso creditos departamento PreRequisito numerocurso numeroprerequisito Disciplina iddisciplina numerocurso semestre ano docente Notas numeroaluno iddisciplina nota
Exemplo de esquema de BD Aluno nome numeroaluno turma cursohabilitacao Curso nomecurso numerocurso creditos departamento PreRequisito numerocurso numeroprerequisito Disciplina iddisciplina numerocurso semestre ano docente Notas numeroaluno iddisciplina nota
Exemplo de esquema de BD Aluno nome numeroaluno turma cursohabilitacao Curso nomecurso numerocurso creditos departamento PreRequisito numerocurso numeroprerequisito Disciplina iddisciplina numerocurso semestre ano docente Notas numeroaluno iddisciplina nota
Limitações do Diagrama Esquemático Mostra apenas alguns aspectos da descrição, como: Nomes dos registros e campos Exe: não exibe os tipos de dados de cada item, por exemplo, idfuncionarios é string ou numeral? Não mostra os relacionamentos entre as entidades Portanto, não é semântico, não é explicativo
Estados do BD Um BD é dinâmico: dados alterados freqüentemente BD num dado instante = estado do BD (snapshot) Os estados mudam sem alterar o esquema do BD Dois estados: 1. Estado Vazio: na definição do BD no SGBD 2. Populado, carregado: dados inseridos no BD
+ sobre Estados Existe sempre o estado corrente do BD Cada alteração = novo estado SGBD garante que cada estado seja um estado válido Estado válido: estado que respeita o projeto e suas restrições
Importante O projeto do BD e o diagrama esquemático são importantíssimos para a manutenção confiável dos dados e dos relacionamentos no BD
Relembrando... 1. Natureza autodescritiva 2. Isolamento entre dados e programas 3. Múltiplas visões para usuários
SGBD: 3 características 1. Natureza autodescritiva 2. Isolamento entre dados e programas 3. Múltiplas visões para usuários
SGBD: 3 características 1. Natureza autodescritiva Importante 2. Isolamento entre dados e programas 3. Múltiplas visões para usuários
Arquitetura de 3 Esquemas
Arquitetura de 3 Esquemas Requisitos do sistema Especifica as necessidades dos usuários do sistema Usa modelo de dados representacional
Arquitetura de 3 Esquemas Diagrama Entidade Relacionamento Descreve a estrutura de dados Oculta detalhes do armazenamento Usaremos MER
Arquitetura de 3 Esquemas Descreve o mapeamento físico do BD Modelo físico (MR)detalha armazenamento de dados Tabelas Relacionais
Arquitetura de 3 Esquemas Requisitos do sistema Diagrama Entidade Relacionamento (MER) Tabelas Relacionais (MR)
Relembrando...
Nível interno Descreve a estrutura do armazenamento físico do BD Esquema utiliza um modelo de dados físico (MR) Descreve detalhes de armazenamento
Nível conceitual Possui um esquema conceitual que descreve a estrutura do BD para o usuário Esquema conceitual oculta detalhes das estruturas de armazenamento MER
Nível externo Visão, visões de usuários, esquemas externos Cada esquema externo descreve a parte do BD que um grupo de usuários tem interesse (oculta o restante) Analistas + SGBD transformam solicitação no nível externo em resposta, assim As exigências dos usuários definem os esquemas do BD, ou seja, seu projeto global
Observações A maioria dos SGDB não separa os 3 níveis completamente mas suporta esta arquitetura Os 3 esquemas são apenas descrições de dados O dado de fato está no nível físico, um 40 nível
Independência dos dados Arquitetura de 3 esquemas pode auxiliar a compreensão de independência de dados Capacidade de alterar o esquema num nível sem prejuízo no nível superior Nível interno: mais baixo Nível externo: mais alto
Independência física Capacidade de alterar o esquema interno sem alterar o esquema conceitual Logo esquema externo mantem-se inalterado
Exemplo Desejamos saber quais disciplinas foram oferecidas num semestre x, ano y Elaboramos uma rota de acesso interna no BD que interliga x a y. Deixa resposta e recuperação dos registros mais rápida Não precisamos alterar solicitação listar disciplinas oferecidas no semestre x, ano y.
Independência lógica Poder de alterar o esquema conceitual sem alterar os programas ou esquema externo
Exemplo Podemos acrescentar um campo na identificação dos alunos Sem alterar a visão do usuário O esquema externo refletirá somente os dados remanescentes
Arquiteturas Arquitetura: maneira pela qual as aplicações estão ligadas a um SGBD
Arquiteturas Arquitetura SGBD Centralizada Arquitetura Cliente/Servidor Arquitetura Cliente/Servidor para aplicações Web
Arquitetura centralizada Segue arquiteturas antigas de sistemas computacionais Estações não tem poder de processamento Computadores centrais executam todos processos Terminais remotos apenas apresentam resultados
Centralização
Reparem como é antiga esta figura.
Arquitetura centralizada
o tempo passa... O preço do hardware cai e a capacidade de processamento melhora A exploração do poder de processamento local levou até a abordagem cliente-servidor
Arq. cliente-servidor Servidores Computadores com grande capacidade de processamento Rede Rede local de alto desempenho Clientes Computadores pessoais com menor capacidade de processamento + interface com servidores Funcionalidade + processamento local
Arq. cliente-servidor
Arq. lógica de 2 camadas O SGDB é residente e é executado no servidor A aplicação é dividida entre o cliente e o servidor O SGBD executa comandos vindos pela rede e apenas os resultados trafegam de volta O cliente pode manipular os resultados ou oferecer outras formas de visualização (gráfica, por exemplo)
Cliente-servidor Não só interessa para grande número de máquinas e utilização remota Facilita implementação de serviços especializados: servidor de impressão, cópia de segurança, servidor de email, etc.
Cliente-servidor 2 camadas Servidor: servidor de consulta ou transação As funcionalidades de BD permanecem no lado do servidor Cliente: interface com usuário + outras aplicações Comunicação: cliente estabelece uma conexão com o servidor Padrão ODBC (Open Database Connectivity)
Cliente-servidor 2 camadas
Cliente-servidor 2 camadas Padrão ODBC (Open Database Connectivity) Fornece interface para programas de aplicação Interface: modo de troca de informação, conectividade. Como os programas se comunicam SGDB tem drivers para aplicações e linguagens Exemplo: Java tem o JDBC
Cliente-servidor 3 camadas A web alterou as arquiteturas 2 camadas Tem camada intermediária, servidor de aplicações ou servidor web Servidor web aceita solicitação do cliente, processa e envia para o SGDB Camada intermediária pode usar criptografia
Cliente-servidor 3 camadas
Próximo encontro Modelagem de Dados Modelo Entidade Relacionamento