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 e modificação dos dados Garantir 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 de arquivo seqüencial-indexado, hashing, seqüencial, heap Alocação em disco Contígua, lista encadeada, lista encadeada utilizando índice Tipo 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 para permitir Consultas sobre um BD Exemplo (SQL): Select nome from Empregado Inserções em uma tabela Exemplo (SQL): insert into Empregado values(123, Bárbara, 5000.00) Remoções em uma tabela 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 DDL Interpreta 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 os dados Índices Estruturas 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 Relacional Tipo 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 orientado a objeto Tipos 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 Coleção de operações que realizam uma única função lógica em uma aplicação de banco de dados Controle de acesso concorrente 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 concreto Um empregado, um carro, um estudante Objeto 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 de empregados matrícula, nome, endereço, rg, cpf, data-nasc, salário, lotação, data-admissão Atributos 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 atômico Atributo que não pode ser subdividido Atributo 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 de empregado É lotado (Wamberg é lotado em Ciência da Computação) Papel 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 de grau 2 Exemplo:? Relacionamento ternário Relacionamento 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 da própria entidade fraca Chave 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