Marcelo Henrique dos Santos Mestrado em Educação (em andamento) MBA em Marketing e Vendas (em andamento) Especialista em games Bacharel em Sistema de Informação Email: marcelosantos@outlook.com BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos
AULA 01 Banco de Dados BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos
Por que estudar BD? Os Bancos de Dados fazem parte do nosso diaa-dia: operação bancária reserva de hotel matrícula em uma disciplina da universidade cadastro em uma loja virtual BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos 3
Conceitos básicos Dado: fato do mundo real que está registrado exemplos: endereço, data Informação: fato útil que pode ser extraído direta ou indiretamente a partir dos dados exemplos: endereço de entrega, idade Banco de Dados (BD): coleção de dados interrelacionados e persistentes que representa um subconjunto dos fatos presentes em um domínio de aplicação(universo de discurso) 4
Por que usar BD? 5
Exemplo de um BD BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos 6
Banco de dados Banco de dados = instância de dado + meta-dados Instância de dado Dado propriamente Meta-dados Dicionário de dados Esquema da base de dados Acessado através de linguagens de definição de dados 7
Nem sempre foi assim... Sistemas de Arquivos (armazenados em pastas, no disco): Funcionalidades oferecidas Registros de tamanho fixo com campos de tipos diferentes Possibilidade de memória virtual e persistência Índices: hash, árvore-b Bloqueio de arquivo e registro para concorrência Dados de diferentes aplicações não estão integrados Dados são projetados para atender uma aplicação específica 8
Sistemas de arquivos Em uma fábrica com os dados em sistemas de arquivos: Sistema para Setor de Vendas Sistema para Setor de Produção Sistema para Setor de Engenharia Arquivos de vendas Arquivos de produção Arquivos de engenharia Teclado TC60 R$ 20,00 Monitor 15 M60 R$ 150,00 Mouse MS09 R$ 10,00 Teclado TC60 10/11/2000 Monitor 15 M60 20/11/2000 Mouse MS09 09/11/2000 Teclado TC60 teclado.gif Monitor 15 M60 monitor.gif Mouse MS09 mouse.gif Mesmos dados aparecem em todos os arquivos da fábrica 9 [baseado em Heuser]
Sistemas de arquivos dados não integrados Mesmo objeto da realidade é representado várias vezes na base de dados Exemplo - teclado, monitor e mouse Redundância não controlada de dados Não há gerência automática da redundância Redundância leva a inconsistência dos dados re-digitação de informações dificuldade de extração de informações Dados pouco confiáveis e de baixa disponibilidade 10
Sistemas de arquivos Concorrência Difícil implementação Políticas de acesso concorrente consistente são independentes de domínio Tolerância a falhas Falta de luz, erro de disco, interrupção de funcionamento, etc Cópias? restauração do estado anterior? Consistência da base? Segurança Acesso diferenciado por tipo de usuário 11
Sistemas de arquivos gerenciamento dos arquivos Outros problemas: Número máximo de arquivos Tamanho de memória Limitações do tipo de arquivo, tipo de acesso Preocupações técnicas junto com problemas do domínio Exemplo: efetuar aluguel de um livro na biblioteca. Sem reservas? sem multas? Como registrar um empréstimo? abrir arquivos (fechando outros ) carregar registros na memória (abre índice, usa ponteiro, estourou memória?,.) 12
Banco de dados Em uma fábrica com os dados em bancos de dados: Sistema para Setor de Vendas Sistema para Setor de Produção Sistema para Setor de Engenharia Banco de dados teclado.gif monitor.gif mouse.gif R$ 20,00 Teclado TC60 R$ 150,00 Monitor 15 M60 R$ 10,00 Mouse MS09 10/11/2000 20/11/2000 09/11/2000 Dados aparecem uma única vez no banco 13 [baseado em Heuser]
Gerenciamento do banco de dados BD de uma fábrica: Sistema para Setor de Vendas Sistema para Setor de Produção Sistema para Setor de Engenharia SGBD Software que permite a criação e gerência da base de dados R$ 20,00 R$ 150,00 R$ 10,00 Banco de dados Teclado TC60 Monitor 15 M60 Mouse MS09 teclado.gif monitor.gif mouse.gif 10/11/2000 20/11/2000 09/11/2000 Exemplos destes Softwares: Livres: FireBird, PostgreSQL e MySQL Comerciais (pagos) Oracle, DB2 e SQLServer 14
Sistema Gerenciador de Bancos de Dados (SGBD) Um SGBD (Sistema Gerenciador de Banco de Dados) consiste em uma coleção de dados inter-relacionados e em um conjunto de programas para acessá-los SGBDs são projetados para gerenciar grandes grupos de informações 15
SGBD O gerenciamento envolve A definição de estruturas para o armazenamento da informação O fornecimento de mecanismos para manipular as informações Quando vários usuários acessam os dados o SGBD precisa garantir a INTEGRIDADE dos dados, evitando resultados anômalos 16
Objetivos de um SGBD Isolar os usuários dos detalhes mais internos do banco de dados (abstração de dados). Prover independência de dados às aplicações (estrutura física de armazenamento e à estratégia de acesso). Vantagens: rapidez na manipulação e no acesso à informação, redução do esforço humano (desenvolvimento e utilização), redução da redundância e da inconsistência de informações, redução de problemas de integridade, compartilhamento de dados, aplicação automática de restrições de segurança, controle integrado de informações distribuídas fisicamente. 17
Objetivos de um SGBD O grande objetivo de um SGBD é prover aos usuários uma visão ABSTRATA dos dados O sistema omite certos detalhes de como os dados são armazenados e mantidos Mas oferece mecanismos eficientes para BUSCA e ARMAZENAMENTO 18
Arquitetura Geral de um SGBD Interface Processamento de Consultas Processamento de Transações Acesso a Arquivos Modelagem de Dados ( projeto ( estrutural Base de Dados SGBD 19
Abstração de Dados Mundo Real Sistema Médico Modelo Conceitual (modelo abstrato dos dados) Independente do modelo de dados Independente do SGBD Médico CRM nome Consulta Paciente Modelo Lógico (estrutura dos dados) Dependente do modelo de dados Independente do SGBD Médico (CRM, Nome) Relacional Orientado a Objetos Objetorelacional Modelo Físico Dependente do modelo de dados Dependente do SGBD Organisação física dos dados Estruturas de armazenamento de dados Índices de acesso 20
Modelos de Dados BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos
Modelos de Dados Um modelo de dados é uma coleção de ferramentas conceituais para a descrição de dados, relacionamentos, semântica de dados e restrições de consistência BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos 22
Modelos de Dados Modelos de Dados (conceitual) Entidade-Relacionamento (ER) Orientado a Objetos (OO) Modelos de Dados (lógicos) Redes Hierárquico Relacional Objeto-relacional Orientado a Objetos Modelos mais antigos BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos 23
Exemplo das Informações em um Banco de Dados nome rua cidade conta saldo José Figueiras Campinas 900 55 João Laranjeiras Campinas 556 1.000 João Laranjeiras Campinas 647 5.366 Antônio Ipê São Paulo 647 5.366 Antônio Ipê São Paulo 801 10.533 BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos 24
O Modelo de Redes Os dados são representados por coleções de registros e os relacionamentos por elos José Figueiras Campinas 900 55 João Laranjeiras Campinas 556 1.000 647 5.366 Antônio Ipê São Paulo Clientes 801 10.533 Contas 25
O Modelo Hierárquico Os dados e relacionamentos são representados por registros e ligações, respectivamente. Os registros são organizados como coleções arbitrárias de árvores. José Figueiras Campinas Antônio Ipê São Paulo João Laranjeiras Campinas 556 1.000 647 5.366 900 55 647 5.366 801 10.533 26
O Modelo Relacional ( dados ) Tabela Cliente cód-cliente nome rua cidade 015 José Figueiras Campinas 021 João Laranjeiras Campinas 037 Antônio Ipê São Paulo ( dados ) Tabela Conta nro-conta saldo 900 55 556 1.000 647 5.366 801 10.533 Tabela Cliente-Conta ( relacionamento ) cód-cliente 015 900 021 556 021 647 037 647 037 801 nro-conta 27
Diferença entre os Modelos O modelo relacional não usa ponteiros ou ligações O modelo relacional relaciona registros a partir de valores do registro 28
Funções de um SGBD BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos
Instâncias e Esquemas Os bancos de dados mudam a medida que informações são inseridas ou apagadas A coleção de informações armazenadas é chamada de INSTÂNCIA do banco de dados (mudam com frequência) O projeto geral do banco de dados é chamado ESQUEMA do banco de dados (não mudam com frequência) 30
Independência dos Dados O uso de bancos de dados permite modificar o ESQUEMA dos dados em um nível sem afetar a definição do esquema em um nível mais alto. Isto é chamado de independência dos dados Minimundo Projeto Conceitual Níveis De Abstração Projeto Lógico Projeto Físico esquema instâncias 31
Independência dos Dados Existem 2 tipos de Independência Independência física de dados: habilidade de modificar o esquema físico sem a necessidade de reescrever os programa aplicativos Estas modificações são necessárias para melhorar o desempenho Independência lógica de dados: habilidade de modificar o esquema conceitual sem a necessidade de reescrever os programas aplicativos Estas modificações são necessárias quando a estrutura lógica é alterada. Exemplo: adição de um novo atributo 32
Independência dos Dados A independência lógica dos dados é mais difícil de ser alcançada do que a independência física, pois os programas são bastante dependentes da estrutura lógica dos dados que eles acessam. BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos 33
Linguagem de Definição de Dados (DDL) Um esquema de banco de dados é especificado por um conjunto de definições expressas por uma linguagem especial chamada linguagem de definição de dados (Data Definition Language) O resultado da compilação de comandos de uma DDL é o conjunto de tabelas que serão armazenadas no dicionário (ou diretório) de dados 34
Linguagem de Definição de Dados (DDL) Um dicionário de dados contém metadados, i.e., dados sobre os dados Este dicionário (diretório) é consultado antes que os dados sejam lidos ou modificados no sistema de banco de dados BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos 35
Linguagem de Manipulação de Dados (DML) Manipulação de dados significa: A busca da informação armazenada no BD A inserção de novas informações no BD A eliminação de informações do BD A modificação dos dados armazenados no BD No nível físico precisamos definir algoritmos que permitam acesso eficiente aos dados 36
Linguagem de Manipulação de Dados (DML) A linguagem de manipulação dos dados permite ao usuário manipular os dados da seguinte forma: Procedural: o usuário informa qual dado deseja acessar e como obtê-lo Não-procedural: o usuário informa qual dado deseja acessar SEM especificar como obtê-lo 37
Linguagem de Manipulação de Dados (DML) Linguagens não-procedurais são usualmente mais fáceis de aprender e usar do que DMLs procedurais Se o usuário NÃO especificar COMO obter os dados, as linguagens não-procedurais poderão gerar um código não tão eficiente. BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos 38
Linguagem de Manipulação de Dados (DML) Uma consulta (QUERY) é um comando de busca de uma informação no BD A parte da DML que busca informações é chamada LINGUAGEM DE CONSULTA BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos 39
Programadores de Aplicativos: Usuários do Banco de Dados São os usuários que escrevem os programas de aplicação através da DML Exemplos de um sistema bancário são programas que geram cheques, fazem débitos e créditos em contas, transferem fundos entre contas Usuários de alto nível Interagem com o sistema sem escrever programas Formulam consultas em uma linguagem de consulta, e cada consulta é submetida a um processador de consulta, cuja função é gerar um comando da DML 40
Usuários do Banco de Dados Usuários especializados (especialistas) Escrevem aplicativos especializados como sistemas especialistas Usuários ingênuos Interagem com o sistema invocando os programas aplicativos Exemplo: um cliente do banco invocaria um programa para efetuar a transferência de 50 reais da conta A para a conta B 41
Usuários do Banco de Dados Administrador do banco de dados: tem o controle central dos dados e dos programas de acesso aos dados BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos 42
Usuários do Banco de Dados Funções do Administrador do banco de dados: Definição do esquema Definição de estruturas de armazenamento e métodos de acesso Modificação de esquema e de organização física Concessão de autorização para acesso aos dados Especificação de restrições de integridade 43
Estrutura Geral do sistema Gerenciador de arquivos Gerenciador do banco de dados Processador de consultas Pré-compilador da DML Compilador da DDL Arquivos de dados Dicionário de dados Índices 44
Transações Utilizadas para controlar a integridade dos dados no Banco de dados Acessos simultâneos vários usuários Falhas no sistema BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos 45
Otimizador de Consultas Escolhe a forma mais eficiente para execução de uma consulta BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos 46
Arquitetura Geral de um SGBD 47
Modelo Entidade- Relacionamento BANCO DE DADOS MODELAGEM E IMPLEMENTAÇÃO Marcelo Henrique dos Santos
Modelos de Dados Modelo de dados: Descrição formal da estrutura de um banco de dados Modelos propostos: Modelo conceitual Modelo Lógico Modelo Físico Níveis De Abstração Minimundo Projeto Conceitual Projeto Lógico Projeto Físico
Modelos de Dados Modelo conceitual (projeto conceitual) Modelo de dados abstrato que descreve a estrutura de um banco de dados independente de um SGBD Empregado ( lógico Modelo lógico (projeto Modelo de dados que representa a estrutura dos dados de um banco de dados Dependente do modelo do SGBD ( físico Modelo físico (projeto Nível de Implementação Depende do SGBD ênfase na eficiência de acesso Empregado (Nome, Endereço) Nome Endereço
Modelagem Conceitual ( ER ) Modelo Entidade Relacionamento É a técnica mais conhecida Tem como objetivo auxiliar na especificação geral do sistema O modelo de dados é representado graficamente através de um Diagrama de Entidade-Relacionamento (DER). Principais conceitos do Modelo ER são: Entidades Atributos e Relacionamentos Notação: Criada por Peter Chen em 1976 Notação usada: Heuser
Entidade Entidade É um conjunto de objetos do mundo real sobre os quais se deseja manter informações no banco de dados É distinguível de outros objetos Representada através de um retângulo Pode representar: objetos concretos (uma pessoa) objetos abstratos (um departamento) Departamento João Pedro Paulo Maria Empregado Contabilidade Financeiro Jurídico Pessoal Possui propriedades Atributos e Relacionamentos
Entidade Exemplos de Entidades: Sistema Bancário Cliente Conta Corrente Conta Poupança Agência Sistema de Controle de Produção de Industria Produto Empregado Departamento Estoque...
Atributo É um dado que é associado a cada ocorrência de uma entidade ou de um relacionamento Exemplos de atributos de entidades: Empregado Nome Endereco Salario Departamento Descricao numerodefuncionarios
Relacionamentos Como expressamos que João trabalha no Departamento de Contabilidade? Empregado Lotação Departamento João Pedro Paulo Maria Diagrama de Ocorrências (instâncias) Contabilidade Financeiro Jurídico Pessoal
Relacionamentos Relacionamento: É uma associação entre entidades Representado através de um losângulo e linhas que ligam as entidades relacionadas A nomedorelacionamento B
Relacionamentos Exemplos de Relacionamentos Medico Consulta Paciente Cliente ContaCliente Conta Residência Cidade
Relacionamentos com Atributos Exemplo I Médico esquema Consulta Paciente nome celular instâncias Dr. Paulo Dr. Flora datadaconsulta 22/10/2007 05/02/2009 20/03/2009 nome endereço Vania José
Relacionamentos com Atributos Exemplo II Empregado Atuação Projeto nome salario função sigla Vania Pedro Gabriel coordenador pesquisador bolsista AATOM Sinpli
ATIVIDADE 01 Escreva o modelo entidade-relacionamento de um sistema acadêmico que considera alunos, professores e funcionários. Todo professor é também um funcionário. Professores e funcionários tem um nome, um endereço, um telefone residencial e comercial, tem um CPF e um salário. Os professores atuam com ensino, pesquisa e extensão. Cada professor está lotado em um departamento, que tem uma descrição e uma sigla. Como ensino, os professores ministram pelo menos 2 disciplinas. Os professores atuam na graduação e na pósgraduação, ministrando disciplinas diferentes em ambos os cursos.
ATIVIDADE 01 Na pós-graduação os professores lecionam disciplinas e fazem pesquisa, produzindo publicações. Estas publicações podem ser artigos em congressos nacionais, congressos internacionais, capítulos de livro, livros ou artigos em periódicos. Cada uma destas publicações tem as seguintes características: titulo, autor, impacto (qualis A internacional, qualis B internacional, qualis A nacional, etc), número de paginas, nome do evento de publicação e editora. Como extensão os professores realizam atividades como: ministrar cursos e revisar e avaliar artigos de congressos e periódicos, sendo características desta atividade um código da atividade, uma descrição, a data e a duração.
ATIVIDADE 01 O aluno está matriculado em um curso que é oferecido pelo departamento. O aluno possui como atributos um nome, endereço, telefone, matricula e CPF. O aluno, cada semestre, se matricula em uma ou mais disciplinas, sendo que uma disciplina pode ter uma ou mais turmas. Para saber o histórico do aluno é necessário armazenar as disciplinas cursadas em cada semestre e a respectiva nota do aluno. Cada disciplina possui um código, um nome, o número de créditos e pode ter ou não um ou mais pré-requisitos.
BIBLIOGRAFIA Elmasri & Navathe Fundamentos de Bancos de Dados Carlos Alberto Heuser Projeto de Banco de Dados Korth e Silberchatz Sistema de Bancos de Dados Elmasri, R.; Navathe S. B. Sistemas de Banco de Dados. 4 ed. Editora Addison-Wesley. 2005. - Capítulo 3 63
BIBLIOGRAFIA HEUSER, C.A. Projeto de Banco de Dados. 6ª Edição. Porto Alegre. Capítulos 2 e 3 Korth, H. F.; Sudarshan, S; Silberschatz, A. Sistema de Banco de Dados. 5a ed. Editora Campus, 2006. - Capítulo 6 Elmasri, R.; Navathe S. B. Sistemas de Banco de Dados. 4 ed. Editora Addison-Wesley. 2005. - Capítulo 3 PROGRAMAÇÃO ORIENTADA A EVENTOS Marcelo Henrique dos Santos 64
BIBLIOGRAFIA HEUSER, C.A. Projeto de Banco de Dados. 6ª Edição. Porto Alegre. Capítulos 2 e 3 Korth, H. F.; Sudarshan, S; Silberschatz, A. Sistema de Banco de Dados. 5a ed. Editora Campus, 2006. - Capítulo 6 PROGRAMAÇÃO ORIENTADA A EVENTOS Marcelo Henrique dos Santos 65