Buscar

BD-ddl-dml_02 - Banco de Dados DDL-DML - Sobre BD


Prévia do material em texto

Banco de Dados (DDL/DML)
Aula 02 – Banco de Dados
Prof. MSc. Marcello Mello
Em 8 de março de 1917, ainda na Rússia Imperial, organizou-se uma grande passeata de mulheres, em protesto contra a carestia, o desemprego e a deterioração geral das condições de vida no país.
Operários metalúrgicos acabaram se juntando à manifestação, que se estendeu por dias e acabou por precipitar a Revolução de 1917.
Nos anos seguintes, o Dia da Mulher passou a ser comemorado naquela mesma data, pelo movimento socialista, na Rússia e em países do bloco soviético.
‹#›
Por muitos anos, associou-se o dia à ocorrência de grandes incêndios em fábricas, no início do século XX, quando dezenas de operárias teriam perecido.
Em 1975, o dia 8 de março foi instituído como Dia Internacional da Mulher, pelas Nações Unidas.
Atualmente, a data é comemorada em mais de 100 países — como um dia de protesto por direitos ou de suave celebração do ser feminino, comparável ao Dia das Mães.
Em outros países, a data é amplamente ignorada.
‹#›
Feliz todos os dias
…que são das mulheres!
;-)
‹#›
Segundo Date (1981):
“Um sistema de Banco de Dados é um sistema de armazenamento de dados baseado em computador; isto é, um sistema cujo objetivo global é registrar e manter informação”
JÁ VIMOS!
‹#›
No Começo...
‹#›
... E Depois
‹#›
Finalmente BD
As empresas armazenavam dados em fichas de papel organizadas em arquivos físicos através de pastas
Extrair informações e manter esses arquivos organizados era uma tarefa muito custosa
O acesso à informação dependia da localização geográfica dos arquivos
‹#›
Os Pioneiros
Um dos principais problemas com os sistemas de banco de dados pioneiros era a mistura entre os relacionamentos conceituais, o armazenamento físico e a localização de registros no disco
Forneciam somente as interfaces para a linguagem de programação
Os programas tinham de ser escritos, testados e depurados
A maioria desses sistemas de banco de dados foi implementada em computadores grandes (mainframes) e caros, começando em meados de 1960 indo até os anos 70 e 80
Os principais tipos desses sistemas iniciais foram baseados em três paradigmas: os sistemas hierárquicos, baseados em modelo de rede, e os de arquivos invertidos
‹#›
‹#›
‹#›
‹#›
Finalmente, flexibilidade!
Os BDs Relacionais foram projetados com o objetivo de separar o armazenamento físico dos dados da sua representação conceitual e prover uma fundamentação matemática
Também introduziram as linguagens de consulta de alto nível
Os primeiros sistemas relacionais experimentais foram desenvolvidos no fim dos anos 70
Os SGBDRs (sistemas de gerenciamento de banco de dados relacional) introduzidos no início dos anos 80 eram muito lentos, pois não usavam ponteiros para o armazenamento físico ou registros de localização
Com o desenvolvimento de novas técnicas de armazenamento e indexação, e com o processamento aprimorado de consultas e otimização, seu desempenho melhorou
‹#›
Outras necessidades
O aparecimento das linguagens de POO nos anos 80 e a necessidade de armazenar e partilhar os objetos complexos estruturados conduziram ao desenvolvimento dos BDs orientados a objeto
Incorporaram muitos paradigmas úteis, como tipos de dados abstratos, encapsulamento de operações, herança e identidade de objeto
No entanto, a complexidade do modelo e a falta de um padrão inicial contribuíram para seu uso limitado
Hoje são usados principalmente em aplicações especializadas, tais como projetos em engenharia, publicidade multimídia e sistemas para a indústria
‹#›
Dados na Web
A World Wide Web gerou uma grande rede de computadores interconectados
Os documentos podem ser conectados através de hyperlinks, que são ponteiros para os outros documentos
Atualmente, a XML (eXtended Markup Language) é considerada o principal padrão para o intercâmbio de dados entre os vários tipos de BDs e as páginas Web
XML combina os conceitos de modelos empregados nos sistemas de documentos com os conceitos de modelos de BDs
‹#›
Para onde mais?
Como transformar a Web atual num VERDADEIRO espaço global de dados, capaz de ser interpretado por agentes de software?
‹#›
Web Semântica
Objetivo:
Facilitar a interpretação e integração dos dados na Web, formalizando as informações através do uso de linguagens, modelos e tecnologias comuns para publicação dos dados.
Web Semântica
"The Semantic Web is the extension of the World Wide Web that enables people to share content beyond the boundaries of applications and websites.
It has been described in rather different ways:
as an utopic vision
as a web of data
or merely as a natural paradigm shift
in our daily use of the Web. “
Tim Berners-Lee
...Mais ainda! (01/02)
Aplicações científicas, que armazenam uma grande quantidade de dados resultantes de experimentos científicos em áreas como física avançada ou mapeamento do genoma humano
Armazenamento e restauração de imagens, de notícias escaneadas ou fotografias pessoais a imagens fotografadas por satélite e imagens de procedimentos médicos, como raios X ou ressonância magnética
Armazenamento e recuperação de vídeos, como filmes ou videoclipes de notícias ou de máquinas fotográficas digitais
‹#›
...Mais ainda! (02/02)
Aplicações para data mining (garimpagem de dados), que analisam grandes quantidades de dados pesquisando as ocorrências de padrões específicos ou relacionamentos
Aplicações espaciais, que armazenam as informações espaciais dos dados, tais como informações a respeito do tempo ou sobre os mapas usados em sistemas de informações geográficas
Aplicações referentes a séries temporais, que guardam informações como os dados econômicos em intervalos regulares de tempo, como, por exemplo, vendas diárias ou composição mensal do produto interno bruto
‹#›
Outros grandes desafios!
As estruturas de dados mais complexas são necessárias para a modelagem da aplicação não mais uma representação relacional simples
Os novos tipos de dados são imprescindíveis, além dos tipos numéricos básicos e as cadeias de caracteres (strings)
As novas operações e construtores de linguagens de consulta são essenciais para manipular os novos tipos de dados
As novas estruturas de armazenamento e indexação são necessárias
‹#›
“Novos” SGBDs
Os SGBDs adicionaram funcionalidades:
Incorporação dos bancos de dados orientados a objeto aos sistemas relacionais
Módulos temporais
Módulos geo-espacias
...Entre outros
‹#›
Afinal… para que?
‹#›
‹#›
Banco de Dados
Coleção de dados relacionados
Dados são fatos que podem ser gravados e que possuem um significado implícito
Exemplos: nomes, números telefônicos e endereços de pessoas que você conhece 
‹#›
Porém...
O uso do termo banco de dados é geralmente mais restrito e possui as seguintes propriedades implícitas:
Representa alguns aspectos do mundo real, sendo chamado, às vezes, de minimundo ou de universo de discurso (UoD)
É uma coleção lógica e coerente de dados com algum significado inerente
Uma organização de dados ao acaso (randômica) não pode ser corretamente interpretada como um banco de dados
Um banco de dados é projetado, construído e povoado por dados, atendendo a uma proposta específica
Possui um grupo de usuários definido e algumas aplicações pré concebidas, de acordo com o interesse desse grupo de usuários
‹#›
Qualquer tamanho…
Complexidade variável
‹#›
Gerado e mantido manualmente
...ou automatizado (computadorizado)
‹#›
SGBD
Sistema Gerenciador de Banco de Dados
Em inglês, DBMS (database management system)
É uma coleção de programas que permite aos usuários criar e manter um banco de dados
Portanto, é um sistema de software de propósito geral que facilita os processos de definição, construção, manipulação e compartilhamento de bancos de dados entre vários usuários e aplicações
‹#›
Definir BD
Implica em especificar os tipos de dados, as estruturas e as restrições para os dados a serem armazenados
‹#›
definição
construção
manipulação
compartilhamentoproteção
Construir BD
É o processo de armazenar os dados em alguma mídia apropriada controlada pelo SGBD
‹#›
definição
construção
manipulação
compartilhamento
proteção
Manipular BD
Inclui algumas funções, como pesquisas para recuperar um dado específico, atualização do banco para refletir as mudanças no minimundo e gerar relatórios
‹#›
definição
construção
manipulação
compartilhamento
proteção
Compartilhar BD
Permite aos múltiplos usuários e programas acessar, de forma concorrente, o banco de dados
‹#›
definição
construção
manipulação
compartilhamento
proteção
Proteger BD
Inclui a proteção do sistema contra o mau funcionamento ou falhas (crashes) no hardware ou software, e segurança contra acessos não autorizados ou maliciosos
‹#›
definição
construção
manipulação
compartilhamento
proteção
Últimos pontos sobre SGBD
Um BD típico pode ter um ciclo de vida de muitos anos, então, os SGBD devem ser capazes de manter um sistema que permita a evolução dos requisitos que se alteram ao longo do tempo
Não é necessário usar os softwares SGBD típicos para implementar um BD computadorizado
Seria possível escrever/criar um conjunto próprio de programas para criar e manter um BD, desenvolvendo uma quantidade considerável de softwares complexos
Na verdade, a maioria dos SGBD é composta por sistemas muito complexos
‹#›
Processamento de Arquivos Tradicional
Cada usuário define e implementa os arquivos necessários para uma aplicação específica, como parte da programação da aplicação
Essas redundâncias, na definição e armazenamento dos dados, resultam em um espaço de armazenamento desperdiçado e em esforços redundantes para manter os dados comuns atualizados
‹#›
Utilizando um BD
Um único repositório de dados é definido uma única vez, mantido e então acessado por vários usuários
‹#›
Natureza autodescritiva
Isolamento e abstração
Suporte para as múltiplas visões
Compartilhamento e processamento de multiusuários
Natureza Autodescritiva
O sistema possui não apenas o BD, mas também uma completa definição e/ou descrição da estrutura e suas restrições
Tudo armazenado no catálogo do SGBD, que contém informações como: a estrutura de cada arquivo, o tipo e o formato de armazenamento de cada item de dado e várias restrições
A informação armazenada no catálogo é chamada metadados e descreve a estrutura do banco de dados primário
‹#›
Independências
A estrutura dos arquivos de dados é armazenada no catálogo separadamente do programa de acesso
Denominada de independência programa-dados
Os programas da aplicação podem operar nos dados invocando operações por meio de nomes e argumentos, sem considerar como são implementadas
Isso pode ser chamado de independência programa-operação
‹#›
Abstração de Dados
Característica que permite independências programa-dados e programa-operação
Um SGBD oferece aos usuários uma representação conceitual de dados que não inclui muitos detalhes sobre como o dado é armazenado ou como as operações são implementadas
Informalmente, o modelo de dados é um tipo de abstração de dados usado para prover essa representação conceitual
O modelo de dados utiliza os conceitos lógicos, como objetos, suas propriedades e seus inter-relacionamentos, que podem ser mais fáceis para os usuários entenderem os conceitos de armazenamento computacionais
‹#›
Múltiplas Visões
Um BD típico tem muitos usuários, e cada qual pode solicitar diferentes perspectivas ou visões
Uma visão pode ser um subconjunto de um banco de dados ou conter uma visão virtual dos dados, derivados dos arquivos do banco de dados, mas não, explicitamente, armazenados
‹#›
Compartilhamento de Dados
Um SGBD multiusuário, como o nome indica, deve permitir que diversos usuários acessem o banco de dados ao mesmo tempo
Isso é essencial se os dados estão integrados e mantidos em um único BD para as várias aplicações
‹#›
Processamento de
Transação Multiusuários
O SGBD deve incluir um controle de concorrência para garantir que muitos usuários, ao tentar atualizar o mesmo dado, o façam de um modo controlado, para assegurar que os resultados das atualizações sejam corretos
Esses tipos de aplicações são, normalmente, denominados aplicações de processamento de transações on-line — online transaction processing (OLTP)
Uma regra fundamental do software do SGBD multiusuário é garantir que as transações concorrentes operem corretamente
‹#›
Transação
É um programa em execução ou processo que inclui um ou mais acessos ao banco de dados, como a leitura ou a atualização de registros
Cada transação deve executar um acesso logicamente correto ao banco de dados, se executado sem a interferência de outras transações
O SGBD deve garantir várias propriedades da transação:
A propriedade de isolamento garante que cada transação possa ser efetuada de forma isolada de outras transações; mesmo centenas de transações podem ser executadas simultaneamente
A propriedade de atomicidade garante que todas as operações em um banco de dados, em uma transação, sejam executadas ou nenhuma delas o seja
‹#›
Conjunto de propriedades de transação em BD
Atomicidade
Trata como parte indivisível (atômico); a transação deve ter todas as suas operações executadas em caso de sucesso ou, em caso de falha, nenhum resultado de alguma operação refletido sobre a base de dados
Consistência
Todos os dados escritos no banco de dados devem ser válidos de acordo com todas as regras definidas
Isolamento
Conjunto de técnicas que tentam evitar que transações paralelas interfiram umas nas outras, fazendo com que o resultado de várias transações em paralelo seja o mesmo resultado se as mesmas transações fossem executadas sequencialmente (uma após a outra)
Durabilidade
Os efeitos de uma transação em caso de sucesso (commit) devem persistir no banco de dados mesmo em casos de quedas de energia, travamentos ou erros
ACID
‹#›
Controle de Redundância
A redundância em armazenar os mesmos dados várias vezes gera muitos problemas
O SGBD deve ter a capacidade de controlar redundâncias, impedindo inconsistências entre os arquivos
‹#›
Restringindo Acesso
Quando vários usuários utilizam um grande BD, é provável que a maioria desses usuários não seja autorizada a acessar todas as informações disponíveis
A alguns usuários é permitido, apenas, consultar; outros podem consultar e atualizar os dados
O SGBD deve garantir a segurança e um subsistema de autorização usado pelo Administrador de BD (DBA) para criar contas e definir as restrições de cada uma
‹#›
Armazenamento Persistente
Os BD podem ser usados para oferecer um armazenamento persistente aos objetos programas e estruturas de dados
Um objeto conhecido como persistente, existe após o término de execução dos programas e pode, depois, ser acessado por outro programa
‹#›
Armazenamento de Estruturas
Os sistemas de BD devem fornecer funcionalidades para a execução de atualizações e consultas eficientemente
Devem possuir estruturas de dados especializadas para aumentar a velocidade de pesquisa com arquivos auxiliares, chamados indexes (índices), baseados em estruturas de árvores (tree) ou hash
O SGBD tem um módulo para processamento de consulta e otimização responsável pela escolha eficiente do plano de execução da consulta (query)
A opção de qual index criar e manter é parte do projeto físico do banco de dados e seu ajuste (tunning), que é de responsabilidade do DBA e sua equipe
‹#›
Backup e Restauração
Um SGBD deve prover facilidades para a restauração de falhas de hardware ou de software
O subsistema de backup e recuperação do SGBD é responsável pela recuperação dessas falhas
‹#›
Múltiplas Interfaces
Como diversos tipos de usuários com níveis de conhecimento técnico diferentes utilizam o banco de dados, o SGBD deve fornecer interfaces diferentes para esses usuários
Essas interfaces incluem linguagens de consulta para os usuários casuais; interfaces de linguagens de programação para programadores de aplicações; formulários e sequências de comandos para usuáriosparametrizáveis; interfaces de menus, interfaces de linguagem natural para usuários autônomos
‹#›
Relacionamentos Complexos
Um BD pode incluir uma grande variedade de dados que estão inter-relacionados de muitas maneiras
O SGBD deve ter a capacidade de representar a variedade de relacionamentos complexos entre os dados, bem como recuperar e atualizar os dados relacionados fácil e eficientemente 
‹#›
Restrições de Integridade
O SGBD deve prover funcionalidades para a definição e a garantia de restrições
O tipo mais simples de restrição de integridade envolve a especificação de um tipo de dado para cada item de dados
Tipos mais complexos de restrições podem ocorrer, com frequência, envolvendo a definição de que o registro em um arquivo deve estar relacionado aos registros de outros arquivos
Outro tipo de restrição especifica a singularidade no valor do item de dado (unicidade)
‹#›
Permitir Regras
Alguns sistemas de banco de dados oferecem capacidades para definir as regras de dedução por inferência gerando novas informações de fatos armazenados no banco de dados
Esses sistemas são chamados sistemas de banco de dados dedutivos
‹#›
Por exemplo, alunos que estão reprovados... Não precisaria que a aplicação verificasse isso
‹#›
Implicações Adicionais
Potencial para Garantir Padrões
Redução no Tempo de Desenvolvimento de Aplicações
Flexibilidade
Disponibilidade para Atualizar as Informações
Economias de Escala
‹#›
O “Palco”
Muitas pessoas estão envolvidas no projeto, uso e manutenção de um grande BD com centenas de usuários
‹#›
pessoas cujas profissões envolvem o dia-a-dia do
uso de um grande banco de dados
Atores
trabalham para manter o ambiente dos SGBDs,
mas não estão interessados no BD de fato
Bastidores
DBA
No ambiente de banco de dados, o principal recurso é o próprio banco de dados e, a seguir, o SGBD e os softwares relacionados
Administrar esses recursos é responsabilidade do administrador de banco de dados — database administrator (DBA)
É o responsável pela autorização e acesso ao BD, pela coordenação e monitoração de seu uso e por adquirir recursos de software e hardware conforme necessário
É o responsável por problemas como brechas de segurança ou tempo de resposta ruim
Em grandes organizações, possui suporte de assistentes
‹#›
Projetistas de BD
Responsáveis pela identificação dos dados que serão armazenados no banco e também por escolher as estruturas apropriadas para representar e armazenar esses dados
Na maioria das vezes antes que o BD seja realmente implementado e alimentado
Comunica-se antecipadamente com todos os prováveis usuários para conhecer suas necessidades (requisitos) e criar projetos que as atendam
Em alguns casos, estão na equipe do DBA e podem executar outras tarefas, depois que o projeto estiver completo
‹#›
Usuário Final
Pessoa cuja profissão requer o acesso a um banco de dados para consultas, atualização e relatórios
‹#›
Casuais
Usam o BD ocasionalmente, mas precisam de informações diferentes a cada acesso
Usam uma linguagem de consulta sofisticada para especificar suas solicitações
Normalmente são
gerentes de nível médio ou elevado ou outros profissionais com necessidades ocasionais
Iniciantes/Parametrizáveis
grande parcela (caixas de banco, funcionários de lotéricas, etc)
exige constante envolvimento com consulta e atualização
usam tipos de consulta e
atualizações padronizadas — chamadas transações enlatadas — sido cuidadosamente programadas e testadas
Sofisticados
Familiarizam-se
com as facilidades do SGBD para implementar aplicações que atendam às suas solicitações
Autônomos (stand-alone)
mantêm um BD pessoal por meio do uso de pacotes de programas
prontos que possuem interfaces gráficas ou programas baseados em menus fáceis de usar
Engenheiros de Software
Analistas de Software 🡪 determinam as solicitações dos usuários finais, especialmente os iniciantes e os
parametrizáveis, além de desenvolver as especificações das transações customizadas
Programadores de aplicações 🡪 implementam as especificações como programas, testam, documentam e mantêm essas transações customizadas
Analistas e programadores também são conhecidos como engenheiros de software, e precisam estar
familiarizados com toda a gama de capacidades oferecidas pelo SGBD
‹#›
Projetistas e Implementadores
de SGBD
Projetam e implementam os módulos e interfaces do SGBD
Um SGBD é um sistema com programas complexos com muitos componentes ou módulos, incluindo aqueles para implementar o catálogo, processamento de linguagem de consulta (query language), interfaces, acesso e armazenamento temporário (buffering) dos dados, controle de concorrência, manuseio de recuperação de dados e segurança
‹#›
Desenvolvedores de
Ferramentas
Projetam e implementam as ferramentas — os pacotes opcionais de programas que facilitam o projeto e uso de um sistema de banco de dados e que ajudam a aprimorar seu desempenho
Incluem pacotes para projetos de banco de dados, monitoramento de desempenho, interface gráfica ou linguagem natural, protótipo, simulação e geração de dados para teste
‹#›
Pessoal de Manutenção
e Operadores
Pessoas da administração do sistema, responsáveis pela execução e manutenção do ambiente de hardware e software do SGBD
‹#›
Modelo de Dados
Uma característica fundamental do uso de bancos de dados é que permitem a abstração dos dados, ocultando detalhes do armazenamento de dados, que são desnecessários para a maioria dos usuários de bancos de dados
Um modelo de dados — conjunto de conceitos que podem ser usados para descrever a estrutura de um banco de dados — fornece o significado necessário
‹#›
Esquema do BD
É a descrição do BD, definido durante o projeto e não se espera que seja alterado frequentemente
A maioria dos modelos de dados apresenta algumas convenções para a exibição de esquemas como diagramas; um esquema apresentado é chamado de diagrama esquemático
O diagrama apresenta a estrutura de cada tipo de registro, mas não as instâncias reais dos registros
Cada objeto no esquema é um construtor e suas descrições e restrições também chamadas de metadados
‹#›
Instâncias
Os dados no BD, em um determinado momento, são chamados de:
Estado do BD
Instantâneo (snapshot)
Conjunto corrente de ocorrências
Ou instâncias
‹#›
Estado vazio
sem nenhum dado
Estado inicial
populado ou carregado com os dados iniciais
Estado corrente
toda vez que uma operação de atualização for aplicada 
Estado Válido
Satisfaz a estrutura e as restrições definidas no esquema
Consequentemente, especificar um esquema correto para o SGBD é extremamente importante! O projeto deve ser elaborado com o máximo de cuidado.
As mudanças nos esquemas são necessárias quando os requisitos das aplicações de bancos de dados se modificam, mas o processo de mudança de esquema é mais complexo que uma simples atualização no BD
‹#›
Na próxima aula vamos ver:
Modelagem Conceitual
UML
‹#›
Até logo mais!
marcellormello@fac.pe.senac.br