Ementrio Viso geral do gerenciamento de banco de
Ementário • • Visão geral do gerenciamento de banco de dados. Modelo Entidade-Relacionamento (E-R) Modelo Relacional Álgebra relacional SQL Outras Linguagens Relacionais Regras de Integridade Especificar os dados de um Sistema de Informação utilizando as formas normais. Definir o modelo conceitual dos dados normalizados.
Sistemas de Informação Conjunto organizado de pessoas, hardware, software, redes de comunicações e recursos de dados que coleta (entrada), transforma (algoritmo) e dissemina (saída) informações em uma organização. As pessoas têm recorrrido aos sistemas de informação para se comunicarem entre si, utilizando uma diversidade de dispositivos físicos (hardware), instruções e procedimentos de processamento de informações (software), canais de comunicação (redes) e dados armazenados (recursos de dados, ou, banco de dados).
Gerencimento de Banco de Dados: Administrando Recursos de Dados (1/2) Os dados são um recurso organizacional essencial que precisa ser administrado como outros importantes ativos das empresas. A maioria das organizações não conseguiria sobreviver ou ter sucesso sem dados de qualidade sobre suas operações internas e seu ambiente externo. As organizações estão sujeitas a enorme pressão para o fornecimento de informações de melhor qualidade para as tomadas de decisão, apresentadas de formas que sejam fáceis de acessar e manipular. Os usuários empresariais estão reagindo às necessidades críticas de melhores informações para suas missões específicas devido a mercados em rápida transformação, cada vez mais voláteis e competitivos, bem como a ciclos de vida de produto cada vez mais curtos.
Gerencimento de Banco de Dados: Administrando Recursos de Dados (2/2) Processamento de dados: Dados na forma bruta sendo processados, ou transformados, por algoritmos, ou operações, para produzirem informações úteis. As organizações e seus gerentes precisam praticar a administração de recursos de dados, uma atividade que aplica tecnologias de sistemas de informação como gerenciamento de bancos de dados e outras ferramentas gerenciais à tarefa de administrar os recursos de dados de uma organização para atender as necessidades de informação dos usuários.
Conceitos Básicos sobre Dados (1/4) Os dados podem ser organizados logicamente em: caracteres, campos, registros, arquivos e banco de dados. Caractere Elemento lógico mais simples dos dados, consiste em um único símbolo alfabético, numérico ou outro. Visão Física (ponto de vista do hardware) = um byte, elemento mais elementar de dados. Visão Lógica (ponto de vista do usuário) = elemento mais simples dos dados possível de ser observado e manipulado.
Conceitos Básicos sobre Dados (2/4) Campo, ou item de dados Consiste em um grupamento de caracteres. O grupamento de caracteres alfabéticos no nome de uma pessoa, por exemplo, forma um campo de nome, e o grupamento de números em um total de vendas forma um campo de total de vendas. Em termos específicos, um campo de dados representa um atributo (uma característica ou qualidade) de alguma entidade (objeto, pessoa, lugar ou evento). O salário de um funcionário, por exemplo, é um atributo que é um campo de dados típico utilizado para descrever uma entidade que é um funcionário de um empresa.
Conceitos Básicos sobre Dados (3/4) Registro Os campos de dados afins são agrupados para formarem um registro. Assim, um registro representa uma coleção de atributos que descrevem uma entidade. Um exemplo é o registro de folha de pagamento para uma pessoa, que consiste em campos de dados descrevendo atributos como o nome da pessoa, seu número da previdência social e sua base salarial. Arquivo Um grupo de registros afins é um arquivo ou tabela de dados. Desta forma, um arquivo de funcionários conteria os registros dos funcionários de uma empresa. Podem ser classificados quanto a sua permanência como: Arquivo mestre = principal. Arquivo de transações, ou detalhe = movimentações. Arquivo histórico, ou acervo = para fins de backup.
Conceitos Básicos sobre Dados (4/4) Banco de Dados (BD) Conjunto integrado de registros ou objetos logicamente afins. Um objeto consiste em valores de dados descrevendo os atributos de uma entidade, além das operações que podem ser executadas sobre os dados. Um BD consolida registros previamente armazenados em arquivos separados em uma fonte comum de registros de dados que fornece dados para muitas aplicações. Os dados armazenados em um BD são independentes dos programas aplicativos que os utilizam e do tipo de dispositivos de armazenamento secundário nos quais estão armazenados. Um BD de pessoal, por exemplo, “consolida” dados anteriormente isolados em arquivos separados como arquivos de folha de pagamento, arquivos de ações de pessoal e arquivos de qualificações de funcionários.
Elementos Lógicos dos Dados banco de dados DBDEMOS ponteiro de registro (registro atual)- denota o registro com o qual o usuário está trabalhando linhas = registros tabela de dados “country. db” do banco de dados DBDEMOS colunas = campos
Outros Conceitos Relacionados (1/2) Chave Primária (primary key) Um Campo ou conjunto de campos escolhidos pelo projetista do banco de dados como de significado principal para a identificação exclusiva de um registro dentro de uma tabela de dados. Chave Estrangeira (foreing key) Mecanismo que permite a implementação de relacionamentos no modelo relacional. Integridade Referencial Utilizada para garantir a integridade dos dados entre tabelas relacionadas. Por exemplo, o banco de dados não permite cadastrar um pedido para um cliente que ainda não existe. Ou ainda, não é permitido a exclusão de clientes que possuem pedidos cadastrados, evitando assim, que registros fiquem órfãos, isto é, registros de pedidos com um código de cliente para o qual não existe mais um registro correspondente na tabela clientes.
Outros Conceitos Relacionados (2/2) Domínio (domain) Conjunto de valores que um determinado atributo (ou campo) pode assumir. Por exemplo, os caracteres ‘M’ e ‘F’ representam o domínio para o atributo ‘sexo’ em uma entidade (ou registro) cliente. Procedimentos armazenados (stored procedures) São tarefas que estão armazenadas no banco de dados e que são executadas diretamente no servidor de banco de dados. Gatilhos (triggers) Gatilho é um recurso de programação presente na maioria dos sistema de gerenciamento de banco de dados, utilizado para associar um procedimento armazenado a um evento do banco de dados (inclusão, alteração e exclusão) de modo que o procedimento armazenado seja executado automaticamente sempre que o evento associado ocorrer.
Finalidade dos Banco de Dados (1/5) Eliminar / minimizar problemas de um sistema de processamento de arquivos, por exemplo, arquivos criados por aplicações desenvolvidas em Linguagem C (FILE *fp; ). Sistemas de processamento de arquivos = registros permanentes são armazenados em vários arquivos e diversos programas de aplicação são escritos para extrair e gravar registros nos arquivos apropriados. a) Redundância: vários arquivos com as mesmas informações (não há um mecanismo para estabelecer o relacionamento). b) Inconsistência: dados que são alterados em um arquivo e não o são em outros.
Finalidade dos Banco de Dados (2/5) c) Dificuldades de Acesso: são necessários programas específicos para recuperar informações (é necessário conhecer a estrutura, ou a relação de campos, do registro). d) Isolamento dos Dados: os dados estão dispersos em vários arquivos, e estes arquivos podem apresentar diferentes formatos (dificuldade em desenvolver novas aplicações). e) Problemas de Integridade: programas devem garantir a manutenção de restrições de integridade (consistência). Restrições de Integridade = regras que estabelecem quando uma base de dados está correta.
Finalidade dos Banco de Dados (3/5) f) Problemas de atomicidade: um sistema de processamento esta sujeito a falhas. Mecanismos simples como cópias não suficientes. Após falhas o banco de dados deve ser recuperado rapidamente, em seu último estado consistente. Por exemplo, um programa deve transferir R$ 50, 00 da conta A para uma conta B. Se ocorrer falha no sistema durante a execução, é possível que os R$ 50, 00 sejam debitados da conta A sem serem creditados na conta B, criando um estado inconsistente no banco de dados. Operação Atômica: deve ocorrer por completo ou não deve ocorrer.
Finalidade dos Banco de Dados (4/5) g) Problemas de Concorrência: acesso por múltiplos usuários. Os programas devem implementar controle de acesso concorrente (programação complexa). conta A Saldo Inicial = R$ 500, 00 Dois clientes retiram fundos da conta A “simultaneamente” saque de R$ 100, 00 saque de R$ 50, 00 Qual será o Saldo Final ? R$ 400, 00 - R$ 450, 00 - R$ 350, 00
Finalidade dos Banco de Dados (5/5) h) Problemas de Segurança: nem todos os usuários de banco de dados estão autorizados ao acesso a todos os dados. i) Outros: integridade de armazenamento no caso de quedas do sistema. O principal objetivo de um “Sistema de Gerenciamento de Banco de Dados” é proporcionar um ambiente, conveniente e eficiente, para a recuperação e armazenamento das informações do banco de dados.
A Abordagem do Gerenciamento de Banco de Dados (1/3) O desenvolvimento de banco de dados e de softwares de gerenciamento de bancos de dados é o fundamento dos métodos modernos de gerenciar dados organizados. A abordagem do gerenciamento de BD consolida registros e objetos de BD que podem ser acessados por diferentes programas aplicativos. SGBD- Sistema de Gerenciamento de Banco de Dados (ou DBMS- Database Management System) funciona como interface de software entre os usuários e os BD. Dessa forma, o gerenciamento de BD envolve o uso de software de gerenciamento para controlar como eles são criados, consultados e mantidos para fornecerem as informações necessárias aos usuários finais e suas organizações.
A Abordagem do Gerenciamento de Banco de Dados (2/3) A abordagem do gerenciamento de banco de dados envolve três atividades básicas: 1) Atualização e manutenção de BD comuns para refletir novas transações de negócios e outros eventos que exigem mudanças nos registros de uma organização. 2) Fornecimento das informações requisitadas por cada aplicação do usuário final mediante o uso de aplicativos que compartilham os dados em BD comuns. Este compartilhamento de dados é suportado pela interface comum de dados propiciada por um pacote de SGBD. Dessa forma, os usuários finais e programadores não precisam saber onde ou como os dados estão fisicamente armazenados. 3) Fornecimento de uma capacidade de consulta/resposta e emissão de relatório por meio de um pacote SGBD.
A Abordagem do Gerenciamento de Banco de Dados (3/3) Consulta Processamento de Transações do Cliente Programa de Conta Corrente Programa de Conta Poupança Programa de Financiamento SGBD- Sistema de Gerenciamento de Banco de Dados (criação de tabelas, manutenção, controle de transações, integridade dos dados, consultas, relatórios, . . . ) Bancos de Dados do Cliente Dados da Conta Corrente Dados de Conta Poupança Dados de Financiamento Outros Dados do Cliente
Visão dos Dados Um SGBD é uma coleção de arquivos e programas inter-relacionados que permitem ao usuário o acesso para consultas e alterações desses dados. O maior benefício de um BD é proporcionar ao usuário uma visão “abstrata” dos dados. Isto é, o sistema acaba por ocultar determinados detalhes sobre a forma de armazenamento e manutenção desses dados. Abstração de Dados Nível de visão (externo) Aplicação mais alto nível de abstração; visão de cada usuário; descreve apenas parte do banco de dados. Nível lógico (conceitual) SGBD nível médio de abstração; visão da comunidade dos administradores do banco de dados; quais dados estão armazenados no banco de dados, e quais os interrelacionamentos entre eles. Nível físico (interno) Banco de Dados mais baixo nível de abstração; como os dados estão de fato armazenados
Exemplo dos Níveis de Abstração Nível de visão (externo) visão de cada usuário Nível lógico (conceitual) quais dados estão armazenados no BD Nível físico (interno) como os dados estão de fato armazenados, por exemplo, bloco de “bytes” consecutivo de memória
Instâncias e Esquemas Um banco de dados muda ao longo do tempo por meio das informações que nele são inseridas, alteradas ou excluídas. O conjunto de informações contidas em determinado banco de dados, em um dado momento, é chamado de instância do banco de dados. O projeto geral do banco de dados é chamado de esquema. Os esquemas são alterados com pouca frequência.
Independência de Dados (1/2) A capacidade de modificar a definição dos esquemas em determinado nível, sem afetar o esquema do nível superior, é chamado independência de dados. Existem dois níveis de independência de dados: 1) Independência de dados física: é a capacidade de modificar o esquema físico sem precisar reescrever programas de aplicação. Modificações no nível físico são necessárias, ocasionalmente, para aprimorar o desempenho. 2) Independência de dados lógica: é a capacidade de modificar o esquema lógico (conceitual) sem precisar reescrever programas de aplicação. Modificações no nível lógico são necessárias sempre que uma estrutura lógica do banco de dados é alterada, por exemplo, na criação de novas tabelas de dados, ou ainda, quando são acrescentandos ou retirados campos da tabela de dados. A independência de dados lógica é mais difícil de ser alcançada que a independência física, uma vez que os programas de aplicação são mais fortemente dependentes da estrutura lógica dos dados do que de seu acesso.
Independência de Dados (2/2) O conceito de independência de dados é de várias formas similar ao conceito de TIPO ABSTRATO DE DADOS empregado nas linguagens modernas de programação. Ambos os conceitos omitem os detalhes de implementação do usuário, permitindo que ele se concentre em sua estrutura geral em vez de se concentrar nos detalhes tratados no nível mais baixo. Abraham Silberschatz; Henry F. Korth; S. Sudarshan. Sistema de Banco de Dados. Capítulo 1: Introdução (página 7). São Paulo: Makron Books, 3ª ed. , 1999.
Modelo de Dados Acima da estrutura do banco de dados está o modelo de dados: um conjunto de ferramentas conceituais usadas para a descrição de dados, relacionamentos entre os dados, semânticas de dados e regras de consistências. Modelo de Dados = descrição formal da estrutura de um banco de dados. Ou ainda, descrição das informações que estão armazenadas em um banco de dados. Os vários modelos que vêm sendo desenvolvidos são classificados em três diferentes grupos: 1) modelos lógicos com base em objetos (modelo conceitual); 2) modelos lógicos com base em registros (modelo lógico); 3) modelos físicos (descrevem os dados em seu nível mais baixo).
1) Modelos Lógicos com Base em Objetos Os modelos lógicos com base em objetos são usados na descrição de dados no nível lógico e de visão (não contém detalhes sobre a representação em meio físico das informações). É um modelo de dados abstrato, que descreve a estrutura de um banco de dados de forma independente de um SGBD particular. Também conhecido como Modelo Conceitual. Registra que dados podem aparecer no banco de dados, mas não registra como estes dados estão armazenados a nível de SGBD. Existem várias técnicas de modelagem conceitual as mais conhecidas são: • Modelo Entidade-Relacionamento (E-R). • Modelo orientado a objetos. • Modelo semântico de dados. • Modelo funcional de dados.
1. 1) Modelo Entidade-Relacionamento (E-R) O modelo de dados E-R tem por base a percepção do mundo real como um conjunto de objetos básicos, chamados entidades, e do relacionamento entre eles. Uma entidade é uma “coisa” ou um “objeto” do mundo real que pode ser identificada de forma unívoca em relação a todos os outros objetos. Por exemplo, cada professor é uma entidade, as disciplinas do professor também podem ser consideradas entidades. As entidades são descritas no banco de dados por meio de seus atributos. Por exemplo, os atributos código_professor e nome_do_professor fazem parte da descrição de um professor em particular. Um relacionamento é uma “associação” entre entidades. Por exemplo, um relacionamento titular associa a entidade professor a entidade disciplina identificando cada disciplina ele possui. Entidade = registro de uma tabela. Atributos = campos do registro da tabela. Relacionamento = chave estrangeira (foreign key)
Exemplo de Diagrama E-R Nome. Aluno Cd. Aluno Matriculados Cd. Curso Nome. Curso Coordenador e-mail Faltas Sexo N Médias N Alunos Diários 1 M 1 Cursos Oferecem N Disciplinas N 1 Lotados 1 N Titulares Professores Nome. Prof Possuem N email 1 Cd. Titulo Títulos Dt. Nscto Cd. Prof Dsc. Titulo Cd. Disc Nome. Disc Carg a
1. 2) Modelo Orientado a Objetos Como o modelo E-R, o modelo orientado a objetos tem por base um conjunto de objetos. Um objeto contém valores armazenados em variáveis instâncias dentro do objeto. Um objeto também contém conjuntos de códigos que operam esse objeto. Esses conjuntos de códigos são chamados métodos. Os objetos que contêm os mesmos tipos de valores e os mesmos métodos são agrupados em classes. Uma classe pode ser vista como uma definição de “tipo” para objetos. Essa combinação compacta de dados e métodos abrangendo uma definição de tipo é similar ao tipo abstrato de dados em uma linguagem de programação. O único modo pelo qual um objeto pode conseguir acesso aos dados de outro objeto é por meio do método desse outro objeto. Essa ação é chamada de enviar mensagem ao objeto. Assim, a interface de métodos de um objeto define a parte externa visível de um objeto. A parte interna de um objeto – as instâncias variáveis e o código do método – não são visíveis externamente (encapsulamento). O resultado são dois níveis de abstração de dados, ou seja, visão externa (interface da classe) e visão interna (implementação).
2) Modelos Lógicos com Base em Registros Os modelos lógicos com base em registro são usados na descrição de dados no nível lógico e de visão. Em contraste com os modelos com base em objetos, este tipo de modelo é usado tanto para especificar a estrutura lógica do banco de dados quanto para implementar uma descrição de alto nível da implementação. Os modelos com base em registros são assim chamados porque o banco de dados é estruturado por meio de registros de formato fixo. Cada registro define um número fixo de campos ou atributos, e cada campo possui normalmente tamanho fixo. O uso de registros fixos simplifica a implementação do banco de dados no nível físico. Esta simplicidade é contrastante aos modelos orientados a objetos, cujas estruturas ricas freqüentemente originam registros de tamanho variável no nível físico. Também conhecido como Modelo Lógico. Os três modelos de dados com base em registro mais aceitos são: • Modelo Relacional. • Modelo de Rede. • Modelo Hieráquico.
2. 1) Modelo Relacional No modelo relacional, todos os elementos dados dentro do banco de dados são armazenados em um conjunto de tabelas simples, compostas por linhas (registros) e colunas (campos). Os pacotes SGBD baseados no modelo relacional podem vincular, ou relacionar elementos de dados de várias tabelas para fornecer informações para os usuários. O modelo relacional tornou-se o mais popular das estruturas de BD. Tabela de Departamentos Tabela de Funcionários N°Depto N°Func Nome. Depto Gerente Nome. Func Salario N°Depto. A Func. 1 Depto. A Depto. B Func. 2 Depto. A Depto. C Func. 3 Depto. C . . . Func. 4 Depto. B Func. 5 Depto. B Func. 6 Depto. A
Exemplo do Modelo Relacional
2. 2) Modelo de Rede Os dados no modelo em rede são representados por um conjunto de registros e as relações entre estes registros são representados por links (ligações). Este modelo ainda é utilizado por alguns pacotes SGBD de mainframe. Ele permite relacionamentos do tipo muitos-para-muitos entre os registros, ou seja, um elemento de dados pode ser acessado seguindo um dentre vários caminhos, porque qualquer elemento ou registro de dados pode ser relacionado com qualquer número de outros elementos de dados. Departamento A Funcionário 1 Projeto A Funcionário 2 Departamento B Funcionário 3 Projeto B
2. 3) Modelo Hieráquico Os primeiros pacotes SGBD para mainframe utilizavam a estrutura hierárquica, na qual as relações entre os registros formam uma hierarquia ou estrutura de tipo árvore. No modelo hieráquico tradicional, todos os registros são dependentes e dispostos em estruturas de níveis múltiplos, que consistem em um registro raiz e qualquer número de níveis subordinados. Desta forma, todos os relacionamentos entre os registros são de um-para-muitos, já que cada elemento de dados se relaciona apenas com um elemento acima dele. Elementos de Dados Departamentos Elementos de Dados do Projeto A Elemento de Dados do Funcionário 1 Elemento de Dados do Funcionário 2 Elementos de Dados do Projeto B
Avaliação dos Modelos de Dados (1/2) As estruturas hierárquica de dados foi um modelo natural para os bancos de dados utilizados para os tipos estruturados e rotineiros de processamento de transações que caracterizavam muitas operações das empresas. Os dados para essas operações podem ser facilmente representados por grupos de registros em uma relação hierárquica. Entretanto, existem muitos casos em que se necessitam de informações sobre os registros que não possuem relações hierárquicas. É óbvio que em algumas organizações, por exemplo, os funcionários de mais de um departamento podem trabalhar em mais de um projeto. Uma estrutura em rede poderia lidar facilmente com este relacionamento muitos-para-muitos. Por isso, ela é mais flexível do que a estrutura hierárquica no apoio a bancos de dados para muitos tipos de operações das empresas. Entretanto, como a estrutura hierárquica, por suas relações terem de ser estipuladas de antemão, o modelo de rede não consegue manipular facilmente requisições de informação específica.
Avaliação dos Modelos de Dados (2/2) Os bancos de dados relacionais, por outro lado, permitem ao usuário final a fácil recepção de informações em resposta a requisições específicas. Isto porque nem todas as relações entre os elementos de dados em um banco de dados organizado de modo relacional precisam ser especificados quando o banco é criado. Softwares de gerenciamento de bancos de dados, tais como DB 2, Oracle 8 e MS Access, criam novas tabelas de relações de dados utilizando partes dos dados de diversas tabelas. Desta forma, os bancos de dados relacionais são mais fáceis de serem trabalhados e mantidos pelos programadores do que os modelos hierárquicos e em rede. O uso de SGBD derivados do modelo baseados em objetos está em constante crescimento, mas esta tecnologia ainda representa, ou desempenha um papel auxiliar ao software de bancos de dados relacionais para a maioria das aplicações em sistemas de informação empresarial.
Tecnologia de BD (1/3) Permite o armazenamento, a recuperação e o processamento de dados alfanuméricos qualitativos ou quantitativos, que descrevem entidades existentes ou percebidas no mundo real. Em resumo: armazenamento na forma digital e manipulação de dados através de técnicas computacionais. Tecnologia de Banco de Dados: • 1ª geração = arquivos seqüenciais, batch • 2ª geração = BD hierárquicos, OLTP Online Transaction Processing
Tecnologia de BD (2/3) • 3ª geração = BD em rede, OLTP • 4ª geração = BD relacional / relacional estendido, Client / Server, Data Warehousing –tabelas com linhas (um registro ou tupla) e colunas (campos ou atributos) –consultas em linguagem SQL –relacional estendido incorpora rotinas (store procedures), atributos de multimídia, . . .
Tecnologia de BD (3/3) • 5ª geração = banco de objetos, OLIPOnline Interactive Processing, Eletronic Commerce –baseados em modelos de objetos (dados e métodos) = banco de objetos –alto nível de similaridade entre os modelos da aplicação desenvolvidos em linguagens de programação OO (Smalltalk, C++, Java) e o banco
Bancos dados baseados no modelo relacional versus Bancos de dados baseados no modelo de objetos Desempenho + Banco de objetos Banco relacional - Complexidade do negócio +
Linguagens de Banco de Dados (1/2) Um sistema de banco de dados proporciona basicamente dois tipos de linguagens: a) DDL, específica para os esquemas do banco de dados b) DML, usada para expressar consultas e atualizações (instância). Linguagem de Definição de Dados (DDL) = esquemas do BD Um esquema de dados é especificado por um conjunto de definições expressas por uma linguagem especial chamada linguagem de definição de dados (DDL- Data Definition Language). O resultado da compilação dos parâmetros DDLs é armazenado em um conjunto de tabelas que constituem um arquivo especial chamado dicionário de dados ou diretório de dados. Um dicionário de dados é um arquivo de metadados- isto é, dados a respeito de dados. Em um sistema de banco de dados, esse arquivo ou diretório é consultado antes que o dado real seja modificado.
Linguagens de Banco de Dados (2/2) Linguagem de Manipulação de Dados (DML) = instâncias do BD Entende-se por manipulação de dados: • recuperação das informações armazenadas no banco de dados. • inserção de novas informações no banco de dados. • remoção de informações do banco de dados. • modificação das informações do banco de dados. Define algoritmos que permitem o acesso aos dados de forma eficiente a nível físico. Em níveis mais altos de abstração de dados a ênfase está na facilidade de uso. Tipos de DML- Data Manipulation Language : • DMLs procedurais exigem que o usuário especifique quais dados são necessários e como obtê-los. • DMLs não procedurais exige que o usuário especifique quais dados são necessários sem especificar como obtê-los. Objetivo: Proporcionar uma eficiente interação humana com o sistema. Query: É um pedido de consulta de informações. A parte de uma DML que envolve consulta é chamada linguagem de consulta (query language)
O que é a SQL ? (1/2) A SQL significa Structured Query Language (Linguagem de Consulta Estruturada) e foi criada pela IBM como linguagem de acesso ao seu banco de dados relacional para mainframes, o DB 2. Ela atende ao conjunto completo de exigências para se classificar como linguagem relacional e foi padronizada como linguagem relacional padrão para uso em qualquer plataforma de computadores: mainframes, minis, micros (de qualquer marca). É uma linguagem aberta para uso por qualquer fornecedor de software.
O que é a SQL ? (2/2) É a linguagem padrão usada para construir e acessar “sistemas de banco de dados relacionais” de diferentes tipos e em diferentes plataformas de hardware. A linguagem SQL se divide basicamente em duas partes independentes (chamadas também de linguagens): 1ª. uma linguagem de definição de dados, usada para criar e alterar a estrutura dos bancos (esquemas do BD). 2ª. uma linguagem de manipulação de dados, usada para consultar, incluir, excluir e alterar os dados do bancos de dados (instâncias do BD).
Linguagem de Definição de Dados (DDL) CREATE TABLE, ALTER TABLE e DROP TABLE criar, modificar ou eliminar tabelas em um banco de dados. CREATE INDEX e DROP INDEX criar ou eliminar índices para uma tabela. CREATE DOMAIN e DROP DOMAIN criar ou eliminar domínios (conjunto de valores que um campo pode assumir).
DDL- Data Definition Linguage create domain dom_sexo as char(1) not null check(value in ('M', 'F')); create domain dom_Est. Civil as char(1) check(value in ('S', 'C', 'D', 'V', 'U')); create table Profissoes( Prof. ID smallint not null, Nome varchar(35), constraint pk_Profissoes primary key(Prof. ID) ); create table Associados( Assoc. ID integer not null, Nome varchar(35) not null, Sexo dom_sexo, Est. Civil dom_Est. Civil, Prof. ID smallint, Salario numeric(10, 2), ); constraint pk_Associados primary key(Assoc. ID), constraint fk_Associados_Prof. ID foreign key(Prof. ID) references Profissoes(Prof. ID)
Linguagem de Manipulação de Dados (DML) SELECT. obter os dados de uma ou mais tabelas contidas em um ou mais bancos de dados. . obter informações de resumo sobre os dados das tabelas, tais como totais gerais (sum), contagem de registros (count), e ainda o valor máximo (max), mínimo (min) ou médio (avg). INSERT, DELETE e UPDATE manipular dados em tabelas, através da inserção, exclusão ou atualização de registros.
DML- Data Manipulation Linguage insert into Profissoes values(1, 'Professor do Ensino Superior'); insert into Profissoes values(2, 'Analista de Sistemas'); insert into Associados(Assoc. ID, Nome, Sexo) values(2, 'Alzemiro Bertol', 'M') select distinct Profissoes. Nome from Profissoes inner join Associados on Profissoes. Prof. ID = Associados. Prof. ID where (sexo = 'M') and (Est. Civil = 'D') select Nome, Sexo, Salario from Associados where (extract(month from Dt. Assoc) = 1) and (extract(year from Dt. Assoc) = 2007)
Gerenciamento de Transações Uma transação é uma coleção de operações que desempenham uma função lógica única dentro de uma aplicação do sistema de banco de dados. Cada transação é uma unidade de atomicidade (tudo-ou-nada) e consistência (dados corretos), ou seja, o banco de dados estava consistente antes do início da transação e deve permanecer consistente após o término com sucesso de uma transação. É responsabilidade do programador definir, de modo apropriado, as diversas transações, tais que cada uma preserve a consistência do banco de dados. É responsabilidade do sistema de banco de dados detectar as falhas e recuperar o banco de dados, garantindo seu retorno a seu último estado consistente. Commit = efetiva a transação corrente (todas as modificações efetuadas pela transação se tornam visíveis para os outros). Rollback = desfaz a transação corrente, fazendo com que todas as modificações realizadas pela transação sejam rejeitadas.
Administração de Memória Normalmente, os bancos de dados armazenam em disco um grande volume de memória. Os dados são transferidos discos para a memória principal quando necessários. Uma vez que essa transferência é relativamente lenta comparada à velocidade do processador, é imperativo que o sistema de banco de dados estruture os dados de forma a minimizar a necessidade de movimentação entre disco e memória (maximizar o desempenho). Um gerenciador de memória é um módulo de programas para interface entre o armazenamento de dados em um nível baixo e consultas e programas de aplicação submetidos ao sistema. O gerenciamento de memória é responsável pela interação com o gerenciamento de arquivos. Uma linha de dados é armazenada no disco usando o sistema de arquivos que, convencionalmente, é fornecido pelo sistema operacional. O gerenciador de memória traduz os diversos comandos DML: armazenamento, recuperação e atualização de dados no banco de dados, em comandos de baixo nível de sistema de arquivos.
O Administrador de Banco de Dados É a pessoa que tem o controle central dos dados e dos programas que acessam os dados. DBA- Data. Base Administrator. As funções do DBA são: a) Define a criação do esquema original do banco de dados, a partir dos modelos conceituais definidos nas etapas de análise. b) Responsável pela definição da estrutura de armazenamento e do método de acesso. c) Responsável pela modificação da organização física e do esquema. d) Concede as autorizações para acesso a dados. e) Especifica as restrições de integridade (regras que estabelecem quando uma base de dados está correta).
Usuários de Banco de Dados a) Programadores de aplicação são profissionais de computação que interagem com o sistema de banco de dados utilizando comandos da linguagem de manipulação de dados (DML) escritos através de linguagens de programação. Esses programas são chamados de programas de aplicação. b) Usuários ocasionais interagem com o sistema sem escrever programas. Formulam suas solicitações ao banco de dados por meio de linguagens de consultas (query). c) Usuários especialistas são usuários sofisticados que escrevem aplicações especializadas, ou não convencionais, de banco de dados. Por exemplo, sistemas especialistas e sistemas de base de conhecimento. d) Usuários finais (ou navegantes) são usuários comuns que interagem com o sistema através de programas aplicativos. e) Administrador do banco de dados responsável por criar/manter o banco de dados, autorizações para acesso a dados e restrições de integridade.
Visão Geral da Estrutura do Sistema (1/3) Os componentes funcionais do sistema de banco de dados podem ser divididos pelos componentes de processamento de consultas e pelos componentes de administração de memória. Componentes de processamento de consultas: . Compilador DML, que traduz comandos DML da linguagem de consulta, inteligíveis ao componente de execução de consultas, em instruções de baixo nível. . Pré-compilador para comandos DML inseridos em programas de aplicação, que convertem comandos DML em chamadas de procedimentos normais da linguagem hospedeira. O pré-compilador precisa interagir com o compilador DML de modo a gerar código apropriado. . Interpretador DDL, que interpreta os comandos DDL e registra-os no dicionário de dados. . Componentes para o tratamento de consultas, que executam instruções de baixo nível geradas pelo compilador DML.
Visão Geral da Estrutura do Sistema (2/3) Componentes de administração de memória: proporcionam a interface entre os dados de baixo nível, armazenados no banco de dados, os programas de aplicações e as consultas submetidas ao sistema. . Gerenciamento de autorizações e integridade, testam o cumprimento das regras de integridade e a permissão ao usuário no acesso ao dados. . Gerenciamento de transações, que garante que o banco de dados permanecerá em estado consistente (correto) a despeito de falhas no sistema e que transações concorrentes serão executadas sem conflitos em seus procedimentos. . Administração de arquivos, que gerencia a alocação de espaço no armazenamento em disco e as estruturas de dados usadas para representar estas informações armazenadas em disco. . Administração de buffer, responsável pela intermediação de dados do disco para a memória principal e pela decisão de quais dados colocar em memória cache.
Visão Geral da Estrutura do Sistema (3/3) Estrutura de dados exigidas como parte da implementação física do sistema: . Arquivo de dados, que armazena o próprio banco de dados. . Dicionário de dados, que armazena os metadados relativos à estrutura do banco de dados. . Índices, que proporcionam acesso rápido aos itens de dados que são associados a valores determinados. . Estatísticas de dados, armazenam informações estatísticas relativas aos dados contidos no banco de dados. Essas informações são usadas pelo processador de consultas para seleção de meios eficientes para execução de uma consulta.
E S T R U T U R A D O S I S T E M A Usuários navegantes Programadores de aplicações Usuários sofisticados Administrador de banco de dados Interface com as aplicações Programas de aplicações Consulta (query) Esquema de banco de dados Pré-compilador de comandos DML Compilador DML Interpretador DDL Programas de aplicações em código objeto Componente de execução de consultas Arquivos de dados Processador de consultas Sistema gerenciador de banco de dados Gerenciador de buffer Gerenciador de transações Usuários Gerenciador de memória Gerenciador de arquivos Índices Dados estatísticos Dicionário de dados Armazenamento em disco
SGBD- Sistemas de Gerenciamento de Banco de Dados Conjunto de programas de computador que controla a criação, manutenção e uso dos bancos de dados por uma organização e seus usuários finais. Sistema Operacional Usuário Os quatro usos maiores de um pacote de SGBD são: 1) Desenvolvimento de BD 2) Consulta de BD 3) Manutenção de BD 4) Desenvolvimento de aplicações Sistema de Gerenciamento do Banco de Dados Aplicativos Bancos de Dados Dicionário de Dados
1) Desenvolvimento de Bancos de Dados Pacotes de gerenciamento de BD como MS Access permitem aos usuários finais desenvolverem facilmente os BD de que necessitam. Entretanto, as grandes organizações com sistemas cliente/servidor ou baseados em mainframe normalmente colocam o controle do desenvolvimento de BD em nível empresarial nas mãos de administradores de bancos de dados (DBA) e outros especialistas em BD. Isto melhora a integridade e a segurança dos BD organizacionais. Os programadores utilizam a linguagem de definição de dados em SGBD como o Oracle 8 ou o DB 2 da IBM para desenvolver e especificar o conteúdo, relações e estruturas dos dados em cada BD e para modificar as suas especificações sempre que necessário. Essas informações são catalogadas e armazenadas em um BD de definições e especificações de dados chamado dicionário de dados, que é mantido pelos DBA’s.
Dicionário de Dados Os dicionários de dados são outra ferramenta da administração de BD. Um dicionário de dados é um catálogo ou diretório computadorizado contendo metadados, ou seja, dados sobre dados. Um dicionário de dados inclui um componente de software para gerenciar um banco de definições de dados, isto é, metadados sobre a estrutura, elementos dados e outras características dos BD de uma organização. Ele contém, por exemplo, os nomes e descrições de todos os tipos de registros de dados e suas inter-relações, bem como informações definindo os requisitos para o acesso dos usuários finais a programas aplicativos e de manutenção e segurança dos BD. Os dicionários de dados podem ser consultados pelo DBA para relatar a situação de qualquer aspecto de metadados de uma empresa. O administrador pode, então, fazer mudanças nas definições de elementos de dados selecionados.
2) Consulta de Bancos de Dados A capacidade da consulta ao banco de dados é um dos principais benefícios de um sistema de gerenciamento de banco de dados. Os usuários finais podem utilizar um SGBD pedindo informações de um BD por meio de uma linguagem de consulta ou um gerador de relatórios. Eles podem receber uma resposta imediata na forma de telas de vídeo ou relatórios impressos. Consultas SQL A SQL, ou Structured Query Languagem (Linguagem de Consulta Estruturada), é uma linguagem de consulta encontrada em muitos pacotes de gerenciamento de BDs. A forma básica de uma consulta SQL é: SELECT lista de campos de dados FROM lista de arquivos, ou tabelas dos quais devem ser recuperados os dados WHERE condições da busca
3) Manutenção de Bancos de Dados Os bancos de dados de uma organização precisam ser constantemente atualizados para refletirem as novas transações de negócios e outros eventos. Outras mudanças diversas devem ser feitas para garantir precisão dos dados nos bancos de dados. Este processo de manutenção de bancos de dados é acompanhado por programas de processamento de transações e outros pacotes de aplicativos para o usuário final, com apoio do SGBD. Os usuários finais e os especialistas em informática também podem empregar vários utilitários fornecidos por um SGBD para manutenção de bancos de dados.
4) Desenvolvimento de Aplicações Os pacotes SGBD desempenham um papel importante no desenvolvimento de aplicações. Usuários finais, analistas de sistemas e outros programadores de aplicações podem utilizar a linguagem interna de programação e ferramentas embutidas de desenvolvimento de software fornecidas por muitos pacotes de SGBD para desenvolverem programas de aplicação personalizada. É possível, por exemplo, utilizar um SGBD para criar facilmente telas de entradas de dados, formulários e relatórios de um aplicativo empresarial. Um SGBD também facilita a tarefa dos programadores de aplicações, já que estes não precisam desenvolver procedimentos detalhados de manipulação de dados utilizando uma linguagem de programação toda vez que escrevem programas. Em vez disto, podem incluir em seus programas formulações em linguagem de manipulação de dados que chamam o SGBD para realizar as atividades necessárias de manipulação de dados.
SGBD x Sistema de Processamento de Arquivos SGBD Armazena dados e metadatados. Sistema de Processamento de Arquivos Definição é parte integrante da aplicação. A redundância de dados é controlada. Há bastante redundância de dados. Uso de ferramentas e linguagem de consulta não-procedural (SQL). Tudo tem que ser codificado através de uma linguagem de programação. Independência dados-programa. Dependência dados-programa. Abstração de dados. Sem abstração de dados. Múltiplas visões dos dados. Visão única dos dados. Facilita padronização. Difícil padronização. Eficiência, concorrência, compartilhamento, segurança, integridade, tolerância a falhas. Depende da aplicação.
Principais Tipos de Bancos de Dados Externos na Internet e Serviços Online Bancos de Dados Distribuídos em Intranets e Outras Redes PC ou NC do Cliente Bancos de Dados do Usuário Final Servidor de Rede Depósitos de Dados (Data Warehouse) Bancos de Dados Operacionais da Organização Bancos de Dados Analíticos dos Dados Críticos da Organização
Tipos de Bancos de Dados (1/4) Banco de Dados Operacionais armazenam dados detalhados necessários para apoiar as operações da organização como um todo. Eles também são chamados bancos de dados de área temática (Subject Area Databases, ou SADB), bancos de dados de transações e bancos de dados de produção. Por exemplo: BDs de clientes, pessoal e estoque e outros BDs contendo dados gerados pelas operações das empresas. Data Warehouse (armazém, ou depósito de dados) armazena dados do ano em curso e anos anteriores que foram extraídos vários BDs operacionais de um organização. É uma fonte central de dados que foram classificados, editados, padronizados e integrados de tal forma que podem ser utilizados para uma multiplicidade de formas de análise empresarial, pesquisa de mercado e apoio à decisão.
Tipos de Bancos de Dados (2/4) Data Mining (mineração de dados) No data mining, os dados de um data warehouse são processados para identificar fatores e tendências chaves nos padrões das atividades de negócios. Esse procedimento pode ser utilizado para ajudar os gerentes a tomarem decisões sobre mudanças estratégicas nas operações empresariais para obter vantagens competitivas no mercado. Banco de Dados Distribuídos Muitas organizações reproduzem e distribuem cópias ou partes de BD para servidores de rede em uma multiplicidade de locais. Esses BDs distribuídos podem residir em servidores de rede, na Rede Mundial de Computadores, em intranets ou extranets. Garantir que todo os dados nos BD distribuídos de um organização sejam constante e concomitantemente atualizados é o desafio maior no gerenciamento de BD distribuídos.
Tipos de Bancos de Dados (3/4) Bancos de Dados Externos O acesso a uma ambundância de informações de BD internos e externos é disponível mediante uma taxa em serviços comerciais online, e com ou sem tarifas de muitas fontes na Internet, particularmente na Rede Mundial de Computadores. Os sites da rede fornecem uma variedade infinita de páginas de documentos interligados por hiperlinks em bancos de dados em hipermídia possíveis de serem acessados. Você pode visualizar ou carregar para o seu computador resumos ou cópias completas de centenas de jornais, revistas, boletins informativos, documentos de pesquisa e outros materiais publicados e periódicos em bancos de dados bibliográficos e de textos integrais.
Tipos de Bancos de Dados (4/4) Bancos de Dados em Hipermídia na Rede O rápido crescimento dos sites na internet e intranets e extranets tem aumentado drasticamente o uso de bancos de dados em documentos em hipertexto e hipermídia. Um site de rede armazena essas informações em um banco de dados em hipermídia que consiste em uma home page e outras páginas de multimídia ou mídias mistas (texto, imagens gráficas e fotográfias, videoclipes, segmentos de áudio e assim por diante) com hiperlinks. Ou seja, do ponto de vista do gerenciamento de BD, o conjunto de páginas de multimídia interconectadas em um site da rede é um BD de páginas de hipermídia inter-relacionadas, em lugar de registros de dados inter-relacionados. Um BD em hipermídia consiste de páginas em HTML (Hypertext Markup Language), arquivos GIF (Graphic Image Files) e arquivos de vídeo.
Sistemas de Informações Baseados na Rede Navegador de Rede PCs ou NCs do Cliente A Internet Intranets Extranets Software do Servidor de Rede Banco de Dados em Hirpemídia Páginas em HTML Arquivos de Imagens GIF Arquivos de Vídeo Servidor de Rede
Internet, Intranet ou Extranet? WAN Privada Extranet Internet Rede Pública WWW e TCP/IP Intranet Rede Local - LAN
Definições (1/2) INTERNET: Rede mundial de computadores. Significa o uso da rede de informática em escala global utilizando padrões abertos com acesso a milhões de servidores em todo o mundo. INTRANET: Rede interna de uma organização. Fornecer um ambiente de Internet dentro da empresa para compartilhamento de informações, comunicações e suporte a processos empresariais. EXTRANET: Rede externa. São conexões de rede que utilizam tecnologias da Internet para interconectar a intranet de uma empresa com as intrantes de seus clientes, fornecedores ou outros parceiros comerciais.
Definições (2/2) www (world wide web): Sistema de hipermídia interativo construído originalmente sobre a Internet. Em uma intranet, o sistema WWW é instalado numa rede privativa (LAN ou WAN). TCP/IP (Transmission Control Protocol / Internet Protocol): O protocolo de controle de transmissão e o protocolo da internet representam os dois protocolos básicos da internet, usados para viabilizar a transmissão e a troca de dados de redes diferentes, permitindo assim que os computadores se comuniquem. LAN (Local Area Network): A rede local é um sistema que interliga computadores em uma área física de alcance bastante restrita. WAN (Wide Area Network): rede de longa distância (grande área geográfica), também conhecida como rede geograficamente distribuída.
Benefícios do Gerenciamento de Banco de Dados O gerenciamento de bancos de dados reduz a duplicação de dados e integra os dados de forma que possam ser acessados por múltiplos programas e usuários. Os usuários são dotados de uma capacidade de consulta/ resposta e relatório que lhes permite facilmente obter as informações de que necessitam sem implementar programas de computador. Integridade e segurança dos dados armazenados em BD podem ser aumentadas, já que o acesso aos dados e a modificação dos bancos de dados são controlados pelo software de sistema de gerenciamento de banco de dados, dicionário de dados e a função de administração de bancos de dados.
Limitações do Gerenciamento de Banco de Dados Complexidade tecnológica. Pode ser difícil e dispendioso desenvolver grandes bancos de dados de tipos complexos e instalar um SGBD. Maior capacidade de hardware é exigida, já que são maiores os requisitos de armazenamento para os dados da organização e para os programas SGBD. Finalmente, se a organização utiliza bancos de dados centralizados, sua vunerabilidade a erros, fraude e falhas é aumentada. Inconsistência de dados podem surgir quando é utilizado um método de bancos de dados distribuídos. Portanto, a segurança e a integridade dos bancos de dados de um organização são as principais preocupações no esforço de gerenciamento de recursos de dados.
Acessando Banco de Dados O acesso eficiente aos dados é importante. Na manutenção de bancos de dados, os registros ou objetos precisam ser constantemente adicionados, apagados ou atualizados para acompanhar as transações da empresa. Os dados também devem ser acessados rapidamente para que as informações possam ser produzidas em resposta a pedidos usuários finais. Campos-chave Um ou mais campos de identificação, ou chaves, que identificam o registro para que ele possa ser localizado. Chave primária campo-chave ou campos-chave que identifica(m) exclusivamente o registro de dados em um arquivo. Chave estrangeira (campo de vinculação ou relacionamento) campos dentro de um registro que indicam (apontam para) a localização de um outro registro a ele associado em outro arquivo.
Acesso Sequencial Uma das maneiras originais e básicas de acessar dados é o acesso sequencial. Este método utiliza uma organização sequencial, na qual os registros são fisicamente armazenados em uma ordem específica de acordo com um campo-chave em cada registro. O acesso sequencial é rápido e eficiente quando se manipulam grandes volumes de dados que precisam ser periodicamente processados. Entretanto, é preciso que todas as novas transações sejam classificadas na sequência apropriada para o processamento do acesso sequencial. Além disso, a maior parte do banco de dados ou arquivo pode ter de ser pesquisada para localizar, armazenar ou modificar mesmo um pequeno número de registros de dados. Dessa forma, este método é lento demais para dar conta de aplicações que exijam atualização ou respostas imediatas.
Acesso Direto (1/2) Quando se utilizam métodos de acesso direto, os registros não precisam ser dispostos em nenhuma sequência particular nas mídias de armazenamento. Entretanto, o computador deve acompanhar o local de armazenamento de cada registro utilizando uma série de métodos de organização direta para que os dados possam ser recuperados quando necessário. Método de Transformação de Chaves (hashing) Este método executa um cálculo aritmético em um campo ou registro chave e utiliza o número que resulta do cálculo como um endereço para armazenar e acessar esse registro. Por isto, o processo é chamado de transformação de chaves porque uma operação aritmética é aplicada a um campo-chave para transformá-lo no endereço de localização do armazenamento do registro. Método de Acesso Randômico Este método estabelece um vínculo randômico entre os camposchave do registro e sua posição de armazenamento. Assim sendo, o acesso a um registro poderá ser feito de forma instantânea, utilizando o endereço de localização do armazenamento do registro.
Acesso Direto (2/2) Método de Acesso Sequencial Indexado (ISAM) O acesso indexado ocorre quando se acessa de forma direta um arquivo sequencial. Na sua maioria, todo arquivo criado armazena os registros de forma seqüencial. A forma sequencial de acesso torna-se inconveniente, pois à medida que o arquivo aumenta de tamanho, aumenta também o tempo de acesso ao mesmo. Para se trabalhar com esta técnica, basta criar um arquivo direto que será o índice de consulta do arquivo seqüencial, passando este a ser o arquivo indexado. Assim sendo, existirão dois arquivos: o arquivo índice (arquivo direto) e o arquivo indexado (arquivo sequencial). Os acessos serão feitos como em um livro, primeiro se consulta o arquivo índice, o qual possui a chave de pesquisa, no caso seria o número da página, depois basta se posicionar de forma direta na página identificada no índice, ou seja, no registro do arquivo indexado.
Desenvolvimento de Bancos de Dados Desenvolver BDs pequenos e pessoais é relativamente fácil utilizando-se pacotes de gerenciamento de bancos de dados para microcomputador. Entretanto, desenvolver um grande banco de dados de tipos complexos pode ser uma tarefa complicada. Em muitas empresas, desenvolver e gerenciar grandes bancos de dados são responsabilidade principal do admistrador de banco de dados (DBA) e dos analistas de projeto de bancos de dados. Eles trabalham com os usuários finais e analistas de sistemas para modelarem os processos empresariais e os dados que estes requerem. Em seguida determinam: (1) que definições de dados devem ser incluída no BD e (2) que estrutura ou relações devem existir entre os elementos de dados.
Planejamento de Dados e Projeto do BD (1/2) 1. Planejamento de Dados Os administradores e projetistas de bancos de dados trabalham com a gerência e usuários finais da empresa para desenvolverem um modelo empresarial que define o processo básico da empresa. 2. Especificação dos Requisitos Definem as necessidades de informações dos usuários finais em um processo empresarial. A descrição das necessidades dos usuários podem ser expressas em linguagem natural ou utilizando as ferramentas de uma metodologia particular de projeto (diagrama de casos de uso).
Planejamento de Dados e Projeto do BD (2/2) 3. Projeto Conceitual Identificar os elementos-chave dos dados que são requeridos para executar suas atividades empresariais específicas. Isto freqüentemente envolve o desenvolvimento de diagramas de entidades e relacionamentos (DER) que modelam as relações entre as muitas entidades envolvidas nos processos empresariais. 4. Projeto Lógico Traduz os modelos conceituais no modelo de dados de um sistema de gerenciamento de bancos de dados. 5. Projeto Físico Determina as estruturas de armazenamento de dados e métodos de acesso.
Links Relacionados a Tecnologia de BD Firebird 1. Projeto Firebird 2. Fire. Base - Portal brasileiro sobre Firebird Postgre. SQL 1. Postgre. SQL Global Development Group 2. Postgre. SQLBR My. SQL 1. Banco de dados My. SQL / My. SQL Workbrench 2. My. SQL - Portal brasileiro sobre My. SQL
Referências • Sistemas de Informação e as decisões gerenciais na era da Internet. – James A. O'Brien. – Capítulo 5: Introdução ao Gerenciamento de Bancos de Dados – São Paulo: Editora Saraiva, 2ª ed. , 2004. • Sistema de Banco de Dados. – Abraham Silberschatz; Henry F. Korth; S. Sudarshan. – Capítulo 1: Introdução. – São Paulo: Makron Books, 3ª ed. , 1999.
- Slides: 83