Banco de Dados
1
Prof. MSc Wagner Siqueira Cavalcante
Programação sucinta do curso:
.
Conceitos fundamentais de Banco de Dados.
.
Arquitetura dos Sistemas Gerenciadores de Banco de Dados (SGBD ou DBMS).
.
Características típicas de um SGBD.
.
Modelos Físico, Lógico e Conceitual.
.
Modelo Entidade-Relacionamento (MER).
.
Modelo Relacional (MREL) + Álgebra relacional + SQL.
.
Modelo Hierárquico e Modelo Rede.
.
Normalização no Modelo Relacional.
.
Linguagens de Consulta.
.
Segurança e Recuperação.
.
Novas Tecnologias
.
Estudo de casos e Projeto
1.
INTRODUÇÃO Banco de Dados (Base de Dados):
BIT BYTE Campo Arquivo (Tabela): Estrutura e Dados
É um conjunto de dados inter-relacionados, que representam as necessidades de informações de um ambiente de
trabalho (mini-mundo real). Tal conjunto é estruturado em arquivos, de acordo com o ambiente utilizado no seu
desenvolvimento.
Área “Banco de Dados”:
É o estudo e aplicação de tecnologias de armazenamento e recuperação de informações.
1.1. Motivações para os estudos iniciais e definições da tecnologia básica de BD:
.
Início das pesquisas: 60’s
.
Implantação dos primeiros BDs (primitivos): final dos 60’s
.
Aprimoramento da tecnologia de BD: 70’s aos 90’s
.
.
.
Problemas que motivaram tal desenvolvimento:
Grande volume de dados (informações)
Falta de uma estrutura adequada para o armazenamento das informações
Falta de controle
. Redundância e inconsistência dos dados
Programas criados por diferentes programadores e linguagens, normalmente por longo tempo, geram
duplicação de informação (geograficamente espalhadas) e, como conseqüência, a inconsistência.
. Dificuldade no acesso aos dados
Criação de diferentes programas para acessarem os mesmos dados, porém de diferentes formas, para
atender a necessidades distintas.
. Isolamento dos dados
Dados espalhados por diversos arquivos (formatos diferentes, eventualmente).
. Anomalias de acesso concorrente
Execução concorrente, por vários usuários, de um programa sobre os mesmos dados.
. Problemas de segurança
Necessidade de restrição de acesso aos dados.
. Problemas de integridade
Os valores dos dados precisam satisfazer certos tipos de restrições de consistência, adicionadas aos
programas aplicativos, que, quando mudadas as restrições, há dificuldade para serem alterados.
. Necessidade de padronização
Existência dos mesmos dados armazenados, porém com diferentes distribuições, locais e padrões.
. Lentidão nas consultas ou nas recuperações.
“... pois todos pecaram e estão separados da Glória de Deus.”
Romanos 3:23
“...porque o salário do pecado é a morte, mas o dom gratuito de Deus é a Vida Eterna em Cristo Jesus nosso Senhor”
Romanos 6:23
Banco de Dados
2
Prof. MSc Wagner Siqueira Cavalcante
1.2. Visão dos dados:
1.2.1. Abstração de dados
Níveis de abstração:
Físico:
Conceitual:
Visão:
bloco de posições consecutivas de armazenamento (bytes ou palavras)
definição de tipo em linguagem + inter-relacionamento entre estes tipos de registros.
definição de parte do tipo original (completo), restringindo o acesso às informações de
forma distinta para cada tipo de usuário.
Visão 2
Visão n
alto
Lógicos
Visão 1
Capacidade de omitir certos detalhes de como os dados são mantidos (atualizados) ou
armazenados, a depender, inclusive, do nível do usuário.
Físico
Conceitual
Físico
. Descrição de parte do Banco de Dados
. Descrição
de
QUAIS
dados
armazenados
. Descreve as relações entre os dados
. Type REGISTRO = record ... end;
estão
. Descreve
COMO
armazenados
estão
baixo
os
dados
Estrutura genérica do Sistema (incluindo o SGBD):
Usuários
ingênuos
Interfaces do
aplicativo
Código-objeto
de programas
aplicativos
Programadores
de aplicativos
Usuários de
alto nível
Programas
aplicativos
Consulta
Pré-compilador de
comandos da linguagem
de manipulação de dados
(DML)
Compilador
DML
Administrador de
banco de dados
Esquema do
banco de dados
Interpretador da
linguagem de
definição de dados
(DDL)
Processador
de
consultas
Componente de
execuçao de
consultas
Gerenciador de
transações
Gerenciador
de
Memória
Gerenciador de
buffer
Gerenciador
de arquivos
SGBD
Índices
DISCO
Dados estatísticos
Arquivos de dados
Dicionário de
dados (DD)
“Porque Deus amou o mundo de tal maneira, que deu o Seu Filho Unigênito, Jesus Cristo, para que todo aquele que
nEle crer, não pereça, mas tenha a Vida Eterna.”
João 3:16
Banco de Dados
3
Prof. MSc Wagner Siqueira Cavalcante
1.2.2. Instâncias e Esquemas de dados.
− Esquemas:
. Projeto geral do banco de dados (estrutura)
. definição de tipo registro em linguagem de programação:
type registro = record ... end;
− Instâncias:
. Coleção de informações armazenadas em um banco de dados num determinado instante.
. variável tipo registro em linguagem de programação:
var reg : registro;
1.2.3. Independência de dados.
É a capacidade de modificar a definição de um esquema de banco de dados, sem afetar a do nível mais alto.
a) Independência Física:
. É mais fácil de se obter que a lógica.
. Realizada normalmente para melhoria de desempenho do sistema.
. Modificar o esquema físico, sem ter que reescrever os programas aplicativos.
. Os programa aplicativos, neste caso, não possuem nem manipulam a descrição física, porém somente a
externa (conceitual e de visões ou subesquema).
b) Independência Lógica:
. É mais difícil de se atingir.
. Realizada por causa da necessidade de alterações na estrutura lógica.
. Modificar o esquema conceitual sem ter que reescrever os programas aplicativos.
. Os programas são dependentes da estrutura lógica.
1.3. Modelos de dados.
Coleção de ferramentas conceituais para a descrição, relacionamentos, semântica de dados e restrições de
consistência.
1.3.1. Modelos Lógicos baseados em objetos
Usados na descrição de dados nos níveis conceitual e de visões.
1.3.1.1. Modelo Entidade-Relacionamento
Percepção do mundo real como um conjunto de objetos básicos, denominados entidades, e do
relacionamento entre eles. O MER obedece certas regras (por exemplo o mapeamento de cardinalidades) e é
representada graficamente por retângulos (entidades), elipses (atributos das entidades), losangos
(relacionamentos entre elas) e linhas (ligações entre atributos e entidades, e entidades aos relacionamentos).
1.3.1.2. Modelo Orientado a Objetos
Como o MER, este modelo tem como base um conjunto de objetos. Um objeto contém valores armazenados
em valores instâncias e também um conjunto de códigos que operam sobre este mesmo objeto.
1.3.2. Modelos Lógicos baseados em registros
Da mesma forma que nos baseados em objetos, são usados na descrição de dados nos níveis conceitual e de
visões.
1.3.2.1. Modelo Relacional
Usa um conjunto de tabelas para a representação tanto dos dados quanto de suas relações, com várias
colunas, cada um com um nome distinto (atributo) e várias linhas, cada uma representando uma entidade. Os
relacionamentos são efetuados através dos conteúdos dos próprios registros.
1.3.2.2. Modelo de Rede
Os dados aqui são representados como um conjunto de registros (organizados por um conjunto arbitrários de
gráficos) e os relacionamentos são efetuados através de links (ligações), vistas pelos ponteiros.
1.3.2.3. Modelo Hierárquico
A única diferença entre este e o de Rede é que os registros são organizados em árvores.
1.3.3. Modelos Físicos.
Usados na descrição de dados no nível físicos (descrição em bytes e palavras). Estes modelos não serão
abordados nesta disciplina.
1.4. Linguagens de Bancos de Dados
1.4.1. DDL – Linguagem de Definição de Dados.
. Conjunto de definições para especificar um esquema de banco de dados.
. A compilação de seus comandos gera um conjunto de tabelas = Dicionário/Diretório de dados (DD), que
são os metadados, ou sejam, dados a respeito dos dados.
. Leitura e modificações passam pelo DD primeiramente.
. Embutida ou não no banco de dados (embutida é melhor).
“Buscai o Senhor enquanto se pode achar, invocai-o enquanto está perto.”
Isaías 55:6
Banco de Dados
4
Prof. MSc Wagner Siqueira Cavalcante
Romanos 5:8
1.5.
1.6.
“Mas Deus prova o seu amor para conosco, pelo fato de ter Cristo morrido por nós, sendo nós ainda pecadores.”
--
1.7.
1.8.
DML – Linguagem de Manipulação de dados.
. Efetua apenas o acesso e manipulação dos dados.
. Procedimentais (ou procedurais), mais difíceis, necessitam de especificação de QUAIS dados são
necessários e também de COMO obtê-los.
. Não procedimentais (ou não procedurais), mais fáceis, também necessitam de especificação de QUAIS
dados obter, porém não de COMO.
. DCL (Linguagem de Consulta) é uma porção da DML, dedicada somente para consulta aos dados, sem a
possibilidade de manipulação dos mesmos.
Administração de memória
Gerenciador de banco de dados.
. É a interface entre o sistema gerenciador de banco de dados, SGBD/DBMS (para atender às solicitações
do usuário) e o gerenciador de arquivos (este, em nível de HD, fornecido pelo OS).
. Minimização de movimento (lento) de dados entre o disco e a memória principal (muito rápida).
. Tarefas:
− Interação com o gerenciador de arquivos:
Traduz os comandos DML (do SGBD) para o baixo nível (gerenciador de arquivos/OS, que é o
armazenador físico dos dados).
− Fornecer a Integridade:
Respeitar as restrições de consistência (fazer com que determinadas entradas não sejam
aceitas, como p.ex. idade < 0, etc.).
− Fornecer a Segurança:
Restrições de acesso (determinados usuários podem ou não acessar determinados dados)
− Backup e Recuperação:
Cópia automática de segurança e restabelecimento do estado normal do banco de dados
antes da falha.
− Controle de Concorrência:
Permissão de atuação de vários usuários simultaneamente sobre um mesmo dado, com
garantias de acesso, prioridade, etc., e consistência dos dados.
Administrador do banco de dados (DBA).
É a pessoa responsável pelo controle de todo o sistema de banco de dados.
. Tarefas:
− Definição de esquema:
Conjunto de definições, traduzíveis e traduzidas pelo compilador DDL, que gera o DD.
− Estruturas de armazenamento e método de acesso aos dados:
Produzir estruturas apropriadas de armazenamento e método ideal de acesso aos dados
(sequencial, indexado, indexado-sequencial). Escreve-se um conjunto de definições a serem
traduzidas pelo compilador de estruturas de dados e de DDL.
− Modificação de esquema/organização física:
Modificações que, eventualmente necessárias, produzem mudanças nas tabelas internas do
sistema (como o DD, p.ex.).
− Autorização para o acesso aos dados:
Distintos usuários têm acesso permitido aos dados, porém com restrições.
− Restrição de integridade:
Certas exigências devem ser atendidas, mantidas numa estrutura especial, que será
consultada pelo gerenciador do banco de dados no momento de atualização dos dados.
Usuários do banco de dados.
A essência do Sistema de banco de dados é proporcionar um ambiente tal que evite-se exigir do usuário o
conhecimento de certos detalhes (e de sua implementação), além de permitir-lhes a manipulação dos dados.
Todavia, a depender da posição e conhecimento, há vários níveis de usuários:
Programador de aplicativos:
− Interagem com o sistema através de chamadas à DML.
− Normalmente têm conhecimento de linguagens hospedeiras (C, Pascal, Cobol, PL/I, etc.).
− Pré-processador = pré-compilador DML converte o comando da DML em chamada de procedimento
da linguagem hospedeira.
− Linguagens de 4ª geração, incluem recursos para a criação de formulários, relatórios, consultas e
disposição dos dados na tela.
. Usuários de alto nível:
− Interagem com o sistema sem escrever programas.
− Normalmente não têm conhecimento de linguagens hospedeiras.
− Usam linguagens query para executar suas consultas.
− Cada consulta passa pelo processador de consultas, que geram um comando DML.
. Usuários especializados:
− Interagem com o sistema através de sistemas especialistas.
Banco de Dados
5
Prof. MSc Wagner Siqueira Cavalcante
− Normalmente manipulam dados complexos, não convencionais (gráficos, áudio, vídeo, OO).
Usuários ingênuos/navegantes:
− Interagem com o sistema através de programas aplicativos específicos.
− Normalmente não têm conhecimento algum de linguagens hospedeiras.
− Sabem apenas utilizar os programas aplicativos.
Estrutura geral do sistema.
Observe o gráfico da estrutura genérica do sistema, no item 1.2., para melhor entendimento do texto
seguinte, pois o mesmo destaca as responsabilidades do sistema geral (e a sua utilização pelos diversos tipos de
usuários, descritos no item anterior).
O Sistema Operacional (OS) encarrega-se, normalmente, apenas das atividades mais essenciais sobre os
arquivos, no nível físico, no formato básico e local de seu armazenamento, da qual o SGBD apenas se encarrega
de aproveitar, através do “interfaceamento” entre o sistema de banco de dados e o do OS (gerenciamento de
arquivos), ficando para si as tarefas de um gerenciamento no nível lógico e suas facilitações para manipulação
realizada pelos vários níveis de usuários.
.
1.9.
Componentes de processamento de consultas:
. Compilador DML:
− Converte os comandos da DML para as chamadas de procedimentos da linguagem hospedeira.
− O código apropriado é gerado de forma interativa com o processador de consultas.
. Pré-compilador para comandos DML:
− Inseridos nos programas de aplicação, que convertem comandos DML em chamadas de
procedimentos normais da linguagem hospedeira; deve interagir com o compilador DML para gerar o
código apropriado.
. Interpretador da DDL:
− Converte os comandos da DDL em DD (conjunto de tabelas de dados a respeito de dados =
metadados).
. Componentes para o tratamento de consultas:
− Executam instruções de baixo nível geradas pelo compilador DML.
Componentes de armazenamento de dados:
. Gerenciamento de autorizações e integridade, que testam o cumprimento das regras de integridade e a
permissão ao usuário no acesso aos dados.
. Gerenciamento de transações, que garante que o BD permanecerá consistente apesar de possíveis falhas
e que as transações concorrentes não apresentarão conflitos.
. Administração de arquivos, que gerencia a alocação de espaço para o armazenamento em disco e as
estruturas de dados.
. Administração de buffer, responsável pela intermediação de dados do disco para a memória principal.
Componentes de armazenamento de dados:
. Arquivos de dados:
− Armazenador físico dos dados.
. Dicionário de dados (DD):
− Armazena os metadados sobre a estrutura do BD.
− É usado freqüentemente, até mesmo motivado por uma implementação mais eficiente.
. Índices:
− Agente otimizador nos processos de consulta (busca dos dados).
− Indica (como o próprio nome diz) a posição exata do dado (ou registro) procurado, ao invés de uma
busca do tipo seqüencial, em que cada dado é consultado em busca do solicitado, até que o encontre
(ou não), cujo processo é por demais lento.
. Estatísticas de dados:
− Armazenam informações relativas aos dados contidos no bd, pelo processador de consultas para a
seleção de meios eficientes para a execução de uma consulta.
Download

Banco de Dados 1 - Wagner Siqueira Cavalcante