SISTEMAS DE BANCO DE DADOS Prof. Adriano Pereira Maranhão 1 REVISÃO BANCO DE DADOS I O que é banco de dados? Ou seja afinal o que é um SGBD? REVISÃO BD I REVISÃO DE BD I Um Sistema de Gerenciamento de Banco de Dados (SGBD) do inglês DBMS (Data Base Management System) - é o conjunto de programas de computador (softwares) responsáveis pelo gerenciamento de um(a) base de dados. Seu principal objetivo é retirar da aplicação cliente a responsabilidade de gerenciar o acesso, manipulação e organização dos dados. O SGBD disponibiliza uma interface para que seus clientes possam incluir, alterar ou consultar dados previamente armazenados. Em bancos de dados relacionais a interface é constituída pelas APIs (Application Programming Interface) ou drivers do SGBD, que executam comandos na linguagem SQL(Structured Query Language). TIPOS DE SGBD Hierárquico Rede Relacional Orientados a objeto PROBLEMAS QUE UM SGBD DEVE SOLUCIONAR Inconsistência e redundância de dados Dificuldade de acesso aos dados Isolamento de dados Problemas de integridade Problemas de atomicidade TERMOS QUE DEVEM SER COMUNS APÓS BDI Tupla Tabela Registro Célula Banco SUMÁRIO Introdução aos Sistemas de Banco de Dados SBD Modelo de Entidades e Relacionamentos Bancos de Dados Relacionais O Modelo Relacional Modelagem de Dados Álgebra Relacional Linguagem de Manipulação e Consulta Projeto de Bancos de Dados Relacionais Projeto Lógico de Bancos de Dados 8 INTRODUÇÃO AOS SBD - HISTÓRICO Processamento de arquivo (anos 60 e 70) Paradigma de processamento de dados Cada aplicação define e mantêm seus próprios dados 9 INTRODUÇÃO AOS SBD - HISTÓRICO Dados em Arquivos Redundância e inconsistência Dificuldade de acesso aos dados Isolamento dos dados Problemas de integridade Problemas de atomicidade Anomalias de acesso concorrente Problemas de segurança 10 INTRODUÇÃO AOS SBD Tecnologia de banco de dados Definição e gerenciamento centralizado de dados Independência de dados Eliminar redundância de dados Facilitar acesso a dados através de uma linguagem de consulta Evitar inconsistências produzidas pelo acesso concorrente Recuperar estado consistente do dados após situação de falha 11 INTRODUÇÃO AOS SBD Tecnologia de banco de dados Sistema de Banco de Dados Conjunto de dados inter-relacionados (banco de dados) Componente de software (SGBD) Acesso Garantir e modificação dos dados uma visão abstrata dos dados 12 INTRODUÇÃO AOS SBD – ABSTRAÇÃO DE DADOS Níveis de Abstração Nível físico: descreve como os dados são armazenados Nível lógico: descreve quais dados são armazenados e os relacionamentos entre eles Nível de visualização: descreve partes de interesse do usuário/aplicação 13 SBD – ARQUITETURA EM TRÊS CAMADAS 14 SBD – ARQUITETURA EM TRÊS CAMADAS Esquema Interno - Camada Interna Descreve como os dados estão fisicamente armazenados Exemplo Organização seqüencial-indexado, hashing, seqüencial, heap Alocação em disco Contígua, lista encadeada, lista encadeada utilizando índice Tipo de arquivo de registro Fixo, variável 15 SBD – ARQUITETURA EM TRÊS CAMADAS Esquema Conceitual - Camada Conceitual Descreve quais dados estão armazenados no banco de dados Descreve os relacionamentos entre os dados armazenados Esquema Externo - Camada Externa Descreve parte do banco de dados Simplificar a visão do usuário “Ver” só o que interessa Segurança 16 SBD- OCORRÊNCIAS E ESQUEMAS Ocorrências (instâncias) Coleção de informações armazenadas na base Altamente mutáveis Esquemas Projeto ou estrutura da base – definição Um esquema para cada nível de abstração Esquema físico - nível interno Esquema lógico - nível conceitual Sub-esquemas ou esquemas de visualização – nível externo 17 SBD – INDEPENDÊNCIA DE DADOS Independência Física Habilidade de modificar o esquema físico sem causar redefinição dos programas de aplicação Modificações são necessárias para melhorar desempenho Independência Lógica Habilidade de modificar o esquema lógico sem causar redefinição dos programas de aplicação Modificações são necessárias quando a estrutura lógica da base é alterada 18 SBD- DEFINIÇÃO Sistema de Bancos de Dados (SBD ou DBS) Banco de Dados (BD ou DB) Conjunto de dados relacionados Sistema Gerenciador de Bancos de Dados (SGBD ou DBMS) Componente de software Acesso Controle de Concorrência Recuperação Armazenamento 19 SBD – LINGUAGENS DE BD Finalidade garantir a especificação do esquema de um banco de dados permitir consultas e atualizações sobre o banco de dados Componentes DDL - Data Description Language Utilizada para especificar o esquema de um BD Expressões da DDL Interpretadas (compilados) gerando a especificação de um conjunto de tabelas A especificação das tabelas é armazenada no catálogo do banco de dados Exemplo (SQL): CREATE TABLE 20 SBD – LINGUAGENS DE BD Componentes (cont.) DML - Data Manipulation Language Utilizada Consultas sobre um BD Exemplo (SQL): insert into Empregado values(123, “Bárbara”, 5000.00) Remoções em uma tabela Exemplo (SQL): Select nome from Empregado Inserções em uma tabela para permitir Exemplo (SQL): delete from Empregado where matr=14 Atualizar valores de atributos de uma tabela Exemplo (SQL): update Empregado set salário=salário∗1.15 where salário<1500.00 21 SBD - DEFINIÇÃO SGBD Processador de Consultas + Sistema de Armazenamento Processador de Consultas Compilador DML Analisa sintaticamente e semanticamente comandos DML expressos em uma linguagem de consulta (ex. SQL) Traduz estes comandos para uma das formas de representação interna de consultas (ex. álgebra relacional) Pré-Compilador DML Traduz comandos DML em chamadas a procedimentos (rotinas) na linguagem hospedeira 22 SGBD- DEFINIÇÃO SGBD- Processador de Consultas Interpretador Interpreta DDL comandos DDL e os armazena no catálogo Tabelas contendo meta-dados Descrição do banco de dados Esquema Mecanismo de Consultas Responsável pela otimização e geração de planos de execução de consultas 23 SBD- DEFINIÇÃO SGBD - Sistema de Armazenamento Gerenciador de Transações Controle de concorrência Recuperação do banco de dados após falhas Gerenciador de Buffer Responsável para recuperar objetos em disco e carregá-los na memória principal em forma de páginas SGBD possui uma área de buffer em memória principal Mapeamento: Bloco(disco) Página buffer do SGBD) Definição da política de alocação do buffer: MRU, LRU, FIFO, etc Gerenciador de Arquivo (File System) Responsável pelo armazenamento físico em disco Gerencia a alocação de espaço em disco 24 SBD - DEFINIÇÃO BD: Arquivos de dados + Índices + Catálogo Arquivos de dados Armazena Índices Estruturas os dados de índices para os arquivos de dados Catálogo Armazena esquema do banco de dados (meta-dados): Nomes das tabelas, atributos de cada tabela, definição de índice para uma tabela, etc… Armazena informações estatísticas Exemplo: Cardinalidade de uma tabela Utilizadas na otimização de consultas 25 ARQUITETURA DE SGBD 26 SBD – ADMINISTRADOR DE BD (DBA) Funções Definição do esquema conceitual Definição dos métodos de acesso e estruturas de armazenamento Manutenção do esquema e da organização física dos dados Definição da política de acesso aos dados Especificação de restrições de integridade 27 SBD- USUÁRIOS DE BD Programadores de aplicação Usuários sofisticados Usuários especializados em aplicações não convencionais Usuários de programas de aplicação 28 SBD- MODELO DE DADOS Conjunto de ferramentas conceituais para descrever dados, seus relacionamentos, sua semântica e restrições de consistência Modelos lógicos baseados em objetos Modelo entidade-relacionamento Modelo orientado a objeto Modelos lógicos baseados em registros Modelo relacional, Modelo Codasyl (rede) e Modelo hierárquico Modelos físicos de dados 29 SBD- MODELO DE DADOS Um modelo de dados é definido por três componentes 1. Uma coleção de tipos de estrutura de dados blocos de construção do banco de dados 2. Uma coleção de operadores Podem ser aplicados a qualquer instância dos tipos de dados definidos em 1 3. Uma coleção de regras de integridade Definem o conjunto de estados consistentes do banco de dados Definem o conjunto de transições consistentes de estado do banco de dados 30 SBD- MODELO DE DADOS Representa dados do mundo real Capturar a semântica e incorporá-la em um banco de dados Exemplo Através do modelo relacional representar os dados de uma universidade 31 SBD- MODELO DE DADOS Sistema de Banco de Dados Relacional Modelo Tipo Relacional primitivo de dados Relação (tabela) Conjunto de tuplas (linhas) Conjunto de Operadores Álgebra Relacional Cálculo Relacional Restrições de integridade Integridade de chave primária Integridade referencial 32 SBD- MODELO DE DADOS Sistema de Banco de Dados Orientado a Objeto Modelo Tipos orientado a objeto primitivos Objeto, conjunto, lista, string, integer, real Restrições de integridade Unicidade de Objeto e identidade de objeto, Hierarquia de classes, Herança, Método, etc Sistema de Banco de Dados Objeto-Relacional Modelo relacional + Modelo OO 33 CLASSIFICAÇÃO DE SBD Classificação de SBDs – Arquitetura Sistema de Banco de Dados Centralizados Os componentes do SBD residem no mesmo host Sistema de Banco de Dados Cliente-Servidor Distribuição de funções do SGBD entre clientes e servidor Sistema de Banco de Dados Paralelos Distribuição do controle de funções do DBMS entre diversos sistemas computacionais Sistema de Banco de Dados Distribuídos Distribuição de dados através de diversos SBDs homogêneos 34 CLASSIFICAÇÃO DE SBD Classificação de SBDs – Arquitetura Sistema de Banco de Dados Heterogêneos Distribuição de dados através de SBDs heterogêneos e autônomos Sistema de banco de dados múltiplos (MDBS) Sistema de banco de dados federados Sistema de banco de dados P2P Sistema de Banco de Dados Móvel Distribuição de funções do SGBD entre clientes e servidor em ambientes de computação móvel 35 SBD- GERENCIAMENTO DE TRANSAÇÕES Transação Controle de acesso concorrente Coleção de operações que realizam uma única função lógica em uma aplicação de banco de dados Isolamento entre transações concorrentes Tolerância a falhas Atomicidade das operações Persistência dos resultados das transações bem sucedidas 36 SBD- CONTROLE DE CONCORRÊNCIA Concorrência em um ambiente multiusuário Entrelaçamento (interleaving) de operações Operações de um programa podem ser executadas entre duas operações de outro programa Alterações inconsistentes no banco de dados SGBD precisa monitorar e controlar a execução concorrente de programas Controle de Concorrência 37 MODELO ENTIDADE E RELACIONAMENTO Modelo de dados MER Não é implementado por nenhum SBD Utilizado como modelo conceitual para projeto de BDs Ferramenta para a modelagem de BDs Proposto por P. Chen em 1976 Representar dados através Entidades Relacionamentos entre as entidades Atributos Propriedades de entidades ou relacionamentos 38 MODELO ENTIDADE E RELACIONAMENTO Entidade Representação abstrata de um objeto do mundo real Exemplos de entidades do mundo real Objeto Um empregado, um carro, um estudante Objeto concreto abstrato Uma empresa, uma conta bancária, uma disciplina Conjunto de entidades (tipo de entidade) Entidades que apresentam características semelhantes Exemplo: Estudantes, Empregados, Contas 39 MODELO ENTIDADE E RELACIONAMENTO Atributos de uma entidade Propriedades que caracterizam uma entidade Exemplos Atributos matrícula, nome, endereço, rg, cpf, data-nasc, salário, lotação, data-admissão Atributos de empregados de estudantes matrícula, nome, curso, rg, cpf, data-ingresso Conjunto de entidades Grupo de entidades que apresentam mesmo conjunto de atributos A cada atributo de uma entidade deve estar associado um valor 40 MODELO ENTIDADE E RELACIONAMENTO Atributos de uma entidade (cont.) Atributos chave de uma entidade Conjunto de atributos que identificam univocamente uma entidade Seja f um atributo chave para um conjunto de entidades D, x∈D e f(x)=v, então ∀d∈D e d≠x, f(d)≠v Exemplo Matrícula é atributo chave para Estudante Tipos de atributos Atributo Atributo que não pode ser subdividido Atributo atômico composto Atributo formado por vários atributos 41 MODELO ENTIDADE E RELACIONAMENTO Atributos de uma entidade (cont.) Tipos de atributos Atributo mono-valorado Atributo para o qual está associado um único valor Exemplo: Nome Atributo multi-valorado Atributo para qual podem estar associados vários valores Exemplo: Fones( celular, res, trab) Atributo derivado Atributo cujo valor poder derivado com base no valor de um outro atributo (atributo base) Exemplo: Atributo idade pode ser derivado do atributo data-nasc 42 MER- RELACIONAMENTO Abstração que representa associações entre diferentes conjuntos de entidades Exemplo: O empregado Adriano com o departamento “Ciência da Computação” Conjunto de relacionamentos) Grupo de relacionamentos que representam o mesmo tipo de associação Exemplo: Conjunto de relacionamentos lotação contém todos os relacionamentos entre empregado e departamento Seja R um conjunto de relacionamentos representando associações entre os conjuntos de entidade E1, E2, ... En, 43 MER- RELACIONAMENTO Conjunto de relacionamentos (cont) Seja R um conjunto de relacionamentos, representando associações entre os conjuntos de entidades E1, E2, ... En, então R ⊆ E1 x E2 x Em Seja r∈R, então r=(e1, e2, …, en), onde e1∈E1, e2∈E2, …, en∈Em Exemplo:Considere o conjunto de relacionamentos lotação lotação ⊆ Departamento x Empregado (Wamberg, Ciência da Computação) ∈lotação 44 MER- RELACIONAMENTO Conjunto de relacionamentos (cont) Papel (role) Função que uma entidade desempenha no relacionamento Exemplo Papel É lotado (Wamberg é lotado em Ciência da Computação) Papel de empregado de departamento Lota (Ciência da Computação lota Wmaberg) 45 MER- RELACIONAMENTO Grau de Relacionamento Número de entidades participantes no relacionamento Relacionamento binário Relacionamento Exemplo: de grau 2 ? Relacionamento Relacionamento ternário de grau 3 Exemplo Relacionamento Agência-Conta-Cliente 46 MER – RELACIONAMENTO Grau do relacionamento Auto-relacionamento (relacionamento recursivo) Relacionamento envolvendo um único conjunto de entidades O conjunto de entidades apresenta diferentes papéis Considere o seguinte cenário: Cada departamento possui vários supervisores responsáveis por um subconjunto de empregados do departamento Modelagem do relacionamento entre empregado e supervisor Um supervisor também é uma entidade do tipo Empregado Relacionamento supervisiona 47 MER- RELACIONAMENTO Atributos de relacionamento Propriedades que descrevem um relacionamento Exemplo Considere o atributo data-lotação Representa a data em que um empregado foi lotado em um determinado departamento data-lotação é um atributo do relacionamento lotação Considere o atributo nota na modelagem de dados do INTA Descreve a nota de um aluno em uma disciplina nota é um atributo do relacionamento cursa Cursa representa o relacionamento entre os conjuntos de entidades Estudante e Disciplina 48 MER - RELACIONAMENTO Cardinalidade de relacionamento Indica o número de entidades que podem participar de um determinado relacionamento Seja R um relacionamento binário entre os conjuntos de entidades A e B A Cardinalidade de R deve ser uma das seguintes: Um para um (1:1) Um para muitos (1:N) Muitos para um (N:1) Muitos para muitos (N:N 49 MER- RELACIONAMENTO Exemplos – Cardinalidade Cardinalidade do relacionamento lotação entre Departamento e Empregado : _______ Cardinalidade do relacionamento cursa entre Estudante e Disciplina: _______ Cardinalidade do auto-relacionamento supervisiona : _______ Cardinalidade do relacionamento que modela o fato de que cada departamento : _______ 50 MER - RELACIONAMENTO Restrição de participação Especifica a obrigatoriedade ou não de uma entidade e participar de um relacionamento com outra entidade Participação total A participação de um conjunto de entidades A é total em um relacionamento R, se toda entidade de A participa de pelo menos um relacionamento em R Dependência existencial Exemplo: Considere o relacionamento lotação, para o qual todo empregado deve estar lotado em algum departamento A participação de Empregado em lotação é total 51 MER - RELACIONAMENTO Restrição de Participação Participação parcial A participação de um conjunto de entidades A é parcial em um relacionamento R, se apenas um subconjunto de entidades de A participa em R Exemplo Relacionamento cursa entre Estudante e Disciplina 52 MER – ENTIDADE FRACA Entidade cuja existência depende de estar associada, via um relacionamento relacionamento de identificação), com uma outra entidade (entidade forte) Exemplo Considere o relacionamento dependência entre os conjuntos de entidades Empregado e Dependente Dependente contém os dependentes dos empregados da empresa A existência de um dependente Gabriel depende da existência de um empregado Wamberg e que Gabriel esteja relacionado a Wamberg através do relacionamento dependência 53 MER – ENTIDADE FRACA Uma entidade fraca é identificada Por estar relacionada com uma entidade forte Pelo atributo chave da entidade forte Atributos Chave da própria entidade fraca parcial 54 DIAGRAMA ER Ferramenta de projeto Capaz de capturar e representar graficamente toda estrutura lógica de um banco de dados Utilizada para modelagem de BDs Existem ferramentas que fornecem uma interface gráfica para o desenvolvimento de DERs A partir do DER especificado, geram o esquema do BD relacional Ex: DIA - http://www.gnome.org/projects/dia/ 55 DER- NOTAÇÃO 56 DER - NOTAÇÃO 57 DER - NOTAÇÃO 58