1.35k likes | 1.62k Views
Sistemas de Banco de Dados. Marcos André Gonçalves 2007-2. Introdução. O que é um banco de dados?. Definições Preliminares. [Chu, 1985] Um banco de dados é um conjunto de arquivos relacionados entre si [Date, 2000]
E N D
Sistemas de Banco de Dados Marcos André Gonçalves 2007-2
Definições Preliminares • [Chu, 1985] • Um banco de dados é um conjunto de arquivos relacionados entre si • [Date, 2000] • Um banco de dados é uma coleção de dados operacionais armazenados usados pelas aplicações de uma determinada organização
Outra Definição de Banco de Dados • [Elmasri & Navathe, 2000] • Um banco de dados é uma coleção de dados relacionados • Representando algum aspecto do mundo real (mini-mundo ou universo de discurso) • Logicamente coerente, com algum significado • Projetado, construído e gerado (“povoado”) para uma aplicação específica
Sistema de Gerência de Banco de Dados • Um sistema de gerência de banco de dados (SGBD) é um conjunto de programasque permite a criar e manter um banco de dados • Um banco de dados juntamente com o SGBD que o gerência constitui um sistema de banco de dados
Usuários/Programadores Consultas/Programas SGBD Catálogo (Meta-Dados) Banco de Dados Sistema de Banco de Dados
Exemplo de um Banco de Dados • Mini-mundo: parte de uma universidade • Algumas entidades: • Alunos • Disciplinas • Departamentos • Alguns relacionamentos: • Disciplinas são oferecidas por Departamentos • Alunos estão matriculados em Disciplinas
Características da Abordagem de BD • Auto-descrição dos dados • Isolamento entre programas e dados: abstração de dados • Suporte a múltiplas visões dos dados • Compartilhamento de dados e processa-mento de transações concorrentes
Usuários em um Ambiente de BD • Administradores de banco de dados • Projetistas de banco de dados • Analistas de sistema e programadores • Usuários finais: • Usuários casuais • Usuários leigos • Usuários especializados
Vantagens da Utilização de um SGBD • Controle de redundância dos dados • Controle de acesso (segurança) • Armazenamento persistente dos dados • Existência de múltiplas interfaces para os usuários • Representação de relacionamentos complexos entre os dados • Manutenção de restrições de integridade • Recuperação de falhas
Implicações da Abordagem de BD • Adoção/imposição de padrões • Redução do tempo de desenvolvimento das aplicações • Flexibilidade • Atualidade da informação disponível • Economia de escala
Quando não Utilizar um SGBD • Aplicações simples e bem definidas onde não se espera mudanças • Aplicações de tempo-real • Aplicações onde não é necessário acesso multi-usuário • Motivos: • Investimento inicial alto • Generalidade na definição e manipulação dos dados • Custo adicional para prover outras facilidades funcionais (manutenção de segurança, controle de concorrência, recuperação de falhas, etc.)
Modelo de Dados, Esquema e Instância • Modelo de dados:Conjunto de conceitos usados para descrever a estrutura de um banco de dados • Abstração de dados • Estrutura = tipos de dados + relacionamentos + restrições (+operações ) • Esquema:Descrição (textual ou gráfica) da estrutura de um banco de dados de acordo com um determinado modelo de dados • Instância:Conjunto de dados armazenados em um banco de dados em um determinado instante de tempo
Modelo de Dados, Esquema e Instância Esquema do banco de dados de exemplo
Instância do banco de dados de exemplo Modelo de Dados, Esquema e Instância
Modelo de Dados Esquema Instância Regras para verificação das instâncias Regras para estruturação dos dados Relação entre Modelo de Dados, Esquema e Instância
Modelo de Dados, Esquema e Instância • Estado do Banco • Dados do banco em qualquer ponto do tempo • Inicialmente vazio • Muda freqüentemente • Validade parcialmente guarantida pelo SGBD • Esquema do Banco • Armazenado no catálogo • Mudanças muito menos freqüentes
Tipos de Modelo de Dados • Modelos conceituais • Utilizados para se descrever a estrutura de um banco de dados de uma forma mais próxima da percepção dos usuários (independente de aspectos de implementação) • Ex. Conceitos: entidades, atributos, relacionamentos • Exemplos: • Modelo entidade-relacionamento (ER) • Modelo funcional • Modelo orientado a objetos (OO)
Tipos de Modelo de Dados • Modelos representacionais (lógicos) • Utilizados para se descrever a estrutura de um banco de dados da forma como será manipulado através de SGBD (mais dependente das estruturas físicas de armazenamento de dados) • Exemplos: • Modelo relacional • Modelo de rede (CODASYL) • Modelo hierárquico
Tipos de Modelo de Dados • Modelos físicos • Utilizados para descrever como os dados são fisicamente armazenados
Linguagens • Linguagem de definição de dados (LDD) • Usada para definir esquemas • Linguagem de manipulação de dados (LMD) • Recuperação, inserção, remoção, modificação do BD • Linguagem de consulta • LMD de alto nivel usada em modo “stand-alone” • Exemplo: SQL
Utilitários • Carregamento • Backup • E.g. dumps do banco de dados • (Re-)Organização de arquivos • Monitoramento da performance
Classificação dos SGBDs • Quanto ao modelo de dados adotado: • Relacionais • De rede • Hierárquicos • Orientados a objetos • Objeto-relacionais • Quanto ao número de usuários suportados: • Mono-usuários • Multi-usuários • Quanto à localização dos dados: • Centralizados • Distribuídos
Exemplo de um BD Relacional Empregado Departamento
Exemplo de um BD de Rede Empregado Departamento
Exemplo de um BD Hierárquico Departamento Empregado
Mini-Mundo Análise de Requisitos Requisitos Funcionais Requisitos do BD Projeto Conceitual Análise Funcional Especificação das Transações (em alto nível) Esquema Conceitual (em um modelo de dados de alto nível) Independente de SGBD Projeto Lógico Esquema Lógico (em um modelo de dados lógico) Específico para um SGBD Projeto das Aplicações Projeto Físico Esquema Físico (para um SGBD específico) Implementação Programas Processo de Projeto de Bancos de Dados
Aplicação exemplo • Banco de Dados de uma companhia • Organizada em departamentos que têm um nome e um número únicos e um empregado que gerencia o departamento. A data de quando o empregado começou a gerenciar o departamento deve ser registrada. Um departamento pode ter varias localizações • Um departamento controla um número de projetos, cada qual com um nome e número únicos e uma única localização
Aplicação exemplo • Banco de Dados de uma companhia • Nós armazenamos para cada empregado seu nome, identidade, endereço, salário, sexo, e data de nascimento. Um empregado é assinalado a um departamento mas pode trabalhar em diversos projetos, os quais não são necessariamente controlados pelo mesmo departamento. Nos registramos o número de horas por semana que o empregado trabalha em cada projeto e o supervisor direto de cada empregado • Nós mantemos registro para cada empregado, do numero de dependentes (para seguro) e para cada dependente o primeiro nome, sexo, data de nascimento e relacionamento com o empregado.
M Esquema conceitual
Name = John Address = 2311 Kirby, Houston, TX Age = 55 e1 (Employee) Home Phone = 713-749-2630 Modelo ER - Conceitos • Entidades: • Objetos do mundo real que são de interesse para alguma aplicação • Atributos: • Propriedades utilizadas para descrever uma entidade
Modelo ER - Conceitos • Tipos (classes) de atributo: • Simples ou compostos • Ex. Endereço (Endereço da Rua (número, nome da rua, número do apto), Cidade, Estado, CEP) • Monovalorados ou multivalorados • Ex. Profissão • Armazenados ou derivados • Data de Nascimento Idade, Empregados trabalhando no departamento NumeroDeEmpregados • Valores Null • Não aplicável • Ex. Número do apartamento • Desconhecido • Ex. Telefone de casa
Modelo ER - Conceitos • Tipo de entidade: • Define um conjunto de entidades que têm os mesmos atributos (propriedades) • Descreve o esquema para um conjunto de entidades que compartilham a mesma estrutura • Exemplos: • Employee, Company
Modelo ER - Conceitos • Chave de um tipo de entidade: • Atributo que possui valor único para cada entidade (instância) • Ex. Nome da companhia, identidade do empregado • Chave pode ser formada por vários atributos: chave composta • Registro do Veiculo: Numero de Registro e Estado • Domínio de um atributo: • Conjunto de valores que podem ser atribuídos a um atributo para cada entidade individualmente • Ex. Idade do Empregado: (16,70); Nome do Empregado:String
Figura 3.5 Tipos de entidade e suas instâncias
M Esquema conceitual
Modelo ER - Conceitos • Relacionamentos: • Associações entre duas ou mais entidades distintas (instâncias) com um significado • Exemplo: • Employee John SmithWorks-for Department Research • Employee Fred BrownManages Department Research • Departament Research ControlsProject X
Employee Works-for Department Modelo ER - Conceitos • Tipo de Relacionamento: • Define um conjunto de associações entre n tipos de entidade E1, E2,...,En • Exemplo: • Works-for entre Employee e Department
Modelo ER - Conceitos • Tipo de Relacionamento: • Matematicamente, um tipo de relacionamento R é um conjunto de (instâncias de) relacionamentos ri, onde cada ri associa n (instâncias de) entidades (e1,...,en) e cada ej pertence a um tipo de entidade Ej • R ÍE1 x E2 x ... x En • ri = (e1,...,en) • Grau de um Tipo de Relacionamento • Número de tipos de entidade participantes de um tipo de relacionamento
M Esquema conceitual
Modelo ER - Conceitos • Restrições sobre tipos de relacionamento: • Limitam as possiveis combinações de entidades que podem participar no conjunto de relacionamentos • Cardinalidade: Especifica o número de instâncias de um tipo de relacionamento do qual uma entidade pode participar • Participação: Especifica se a existência de uma entidade depende de seu relacionamento com outra entidade através de um tipo de relacionamento parcial ou total • Ex. Todo empregado deve trabalhar para um departamento (total) • Ex. Nem todo empregado gerencia um departamento (parcial) • Cardinalidade + Participação Restrições Estruturais
M Esquema conceitual