Buscar

Banco de dados - Conceitos Fundamentais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

BANCO DE DADOS
CONCEITOS FUNDAMENTAIS
1 Base de Dados (BD)
1.1 Definição
Uma Base de Dados ou Banco de Dados (BD) é uma coleção de dados (fatos conhecidos) logicamente relacionados, com algum significado.
1.2 Propriedades
· Associações aleatórias de dados não podem ser chamadas de BD;
· Uma BD é projetada, construída e preenchida com dados para um propósito específico. Ela tem um grupo de usuários e algumas aplicações para atender esses usuários;
· Uma BD representa algum aspecto do mundo real, conhecido como Mini-Mundo ou Universo de Discurso. Assim, mudanças no Mini-Mundo provocam mudanças na BD.
 (
10
)
2 Sistema de Gerenciamento de Bases de Dados (SGBD)
2.1 Evolução
· Programa aplicativo com os dados armazenados: código executável e dados compõem um único objeto;
· Sistema de Arquivos: dados organizados em coleções de itens logicamente relacionados
· arquivos. Nesse caso:
· programas aplicativos ficam isolados dos dados;
· procedimentos relacionados com a gerência de dados (localização, recuperação e armazenamento) ficam embutidos no código-fonte dos programas;
· programas aplicativos podem compartilhar dados, mas dependem da organização dos arquivos.
Esquematicamente tem-se:
 (
Aplicativo
1
)
...
 (
Aplicativo
n
)
· Sistema de Gerenciamento de Bases de Dados: promove a independência dos programas aplicativos em relação aos dados armazenados.
 (
Arquivo
) (
Arquivo
) (
S G B D
)Esquematicamente tem-se:
 (
Aplicativo
1
)
...
 (
Aplicativo
n
)
2.2 Definição
Um Sistema de Gerenciamento de Bases de Dados (SGBD) é uma coleção de programas que permitem aos usuários criarem e manipularem uma BD. Um SGBD é, então, um sistema de software de propósito geral que facilita o processo de definir, construir e manipular BDs de diversas aplicações.
· Definição: envolve a especificação de tipos de dados a serem armazenados na BD;
· Construção: processo de armazenar os dados em algum meio que seja controlado pelo SGBD;
· Manipulação: utilização de funções como a de consulta, para recuperar dados específicos, alteração da BD, para refletir mudanças ocorridas no Mini-Mundo, e geração de relatórios.
Exemplo: Universidade
A BD deve conter dados de:
· alunos - informações pessoais de cada aluno;
· cursos - descrição de informações dos cursos;
· disciplinas – descrição das disciplinas referentes a cada curso;
· notas - relação das notas nas disciplinas referentes a cada aluno;
· professores - relação dos professores;
· salas - relação de todas as salas de aula.
Em relação aos dados de alunos tem-se:
Definição:
ra: integer nome: string grau: integer
Construção:
	ra
	nome
	grau
	1
	Maria
	1
	2
	Raquel
	2
	3
	Marcelo
	2
Manipulação:
· Consultas
“Recupere uma lista de todas as disciplinas referentes ao aluno Marcelo”
“Liste os nomes dos alunos que fizeram a disciplina Banco de Dados em 1999”
· Alterações
“Altere o grau de Maria para 2”
“Crie um novo aluno para a disciplina de Banco de Dados”
2.3 Capacidades de um SGBD
· Controle de Redundância: no processamento tradicional de arquivos, grupos de usuários (programadores) mantêm seus próprios arquivos de dados, o que pode provocar o armazenamento de informações redundantes. Problemas:
· necessidade de atualizar múltiplas cópias;
· desperdício de espaço de armazenamento;
· inconsistência: alteração em alguns arquivos e em outros não, ou em todos os arquivos, porém de maneira independente.
Exemplo:
Departamento Financeiro
	Nome
	No. Carteira Prof.
	Salário (R$)
	Descontos
	Maria
	234.456.789.00
	700.00
	100.00
	Raquel
	123.234.345.55
	550.00
	80.00
	Felipe
	987.876.654.32
	830.00
	150.00
Departamento de Recursos Humanos
	Nome
	No. Carteira Prof.
	Data Nasc.
	Dependentes
	Maria
	234.456.789.00
	12/05/1970
	2
	Raquel
	123.234.345.55
	04/08/1974
	1
	Felipe
	987.876.654.32
	23/10/1968
	3
Nome e No. Carteira Prof. estão nos dois arquivos.
· Compartilhamento de Dados: SGBDs multiusuário devem fornecer controle de concorrência para assegurar que atualizações simultâneas resultem em modificações corretas. Um outro mecanismo que suporta o compartilhamento de dados é a facilidade de definir visões de usuário, usadas para especificar a porção da BD que é de interesse de um grupo particular de usuários.
· Restrições de Acesso Multiusuário: quando múltiplos usuários compartilham uma BD, é comum que alguns usuários não tenham acesso a todos os dados da BD.
Exemplo: os dados financeiros são frequentemente considerados confidenciais e, desse modo, somente pessoas autorizadas devem ter acesso. Além disso, pode ser permitido a alguns usuários apenas consultar esses dados. Já, para outros, são permitidas a consulta e a alteração. Assim, o tipo de operação de acesso pode também ser controlado.
Um SGBD deve fornecer um subsistema de autorização e segurança, que é usado pelo DBA para criar contas de usuários/grupos e especificar restrições nessas contas.
· Fornecimento de Múltiplas Interfaces: devido aos vários tipos de profissionais que usam o SGBD, com níveis distintos de conhecimento técnico, tipos variados de interface devem ser fornecidos, por exemplo:
· linguagens de consulta para usuários ocasionais;
· interfaces de linguagem de programação para programadores de aplicações;
· formulários e interfaces dirigidas por menus para usuários comuns;
· ferramentas de controle e monitoramento para os DBAs.
· Representação de Relacionamento Complexo entre Dados: uma BD pode possuir dados que estão relacionados de muitas maneiras. Um SGBD deve ter a capacidade de representar essa variedade de relacionamentos entre dados, bem como recuperar e alterar dados relacionados de maneira fácil e eficiente.
· Reforço de Restrições de Integridade: a forma mais elementar de restrição de integridade é a especificação do tipo de dado de cada item. Existem restrições mais complexas, por exemplo: um registro de um arquivo (tabela) deve estar relacionado a registros de outros arquivos (tabelas). Algumas restrições podem ser especificadas ao SGBD e automaticamente executadas. Outras podem ser verificadas pelos programas aplicativos, por exemplo: no momento da entrada de dados.
· Fornecimento de Backup e Recovery: um SGBD deve fornecer recursos para restauração caso ocorra falhas de hardware ou software. O subsistema de backup e recovery do SGBD é o responsável pela restauração, por exemplo: se o sistema de computador falhar no decorrer da execução de um programa que esteja realizando uma alteração na BD, esse subsistema é responsável por assegurar que a BD seja restaurada no estado anterior ao início da execução do programa.
Tradicionalmente, considera-se que existem dois motivos fundamentais que justificam a utilização de SGBDs: Independência de Dados e Consistência de Dados.
2.4 Independência de Dados
Antes dos SGBDs:
· Os programas gravam seus dados em disco, segundo estruturas próprias. Para acessar esses dados é necessário conhecer as estruturas;
· Se vários programas compartilham dados, todos devem conhecer e manipular as mesmas estruturas;
· Se um programa precisar de alguma mudança na estrutura de dados, todos os programas terão que ser alterados, mesmo que a alteração ocorra em dados que não utilize.
Com os SGBDs:
· Cada programa “vê” apenas os dados que lhe interessam;
· Não é preciso saber detalhes de como os dados estão fisicamente gravados;
· Os programas não precisam ser modificados se a estrutura de dados que não utilizam for alterada.
2.6 Consistência de Dados
Manter todos os dados de uma empresa de maneira centralizada aumenta a necessidade de se garantir ao máximo a corretude desses dados.
A corretude dos dados é mantida de três maneiras distintas:
· Pela aplicação, que garante que os dados gravados estejam sempre corretos;
· Pelo SGBD, que avalia os dados recebidos conforme regras de integridade;
· Pelo próprio processo de construção do software.
A corretude decorre de três propriedades principais:
· Validade: os dados são válidos quando pertencem a um domínio de valores pré- estabelecido;
· Completeza: todos os dados que precisam ser conhecidosestão disponíveis;
· Consistência: sempre que a mesma informação é gravada, mesmo que em locais diferentes, ela tem o mesmo valor.
Validade e Completeza dependem muito do próprio aplicativo garanti-las.
Consistência é uma propriedade dificil de se garantir através de um conjunto de programas, mas pode ser tratada de maneira bastante satisfatória por um SGBD. Além disso, a utilização de SGBDs permite que se empreguem técnicas de desenvolvimento de software que contribuam para a manutenção da consistência de dados.
3 Sistema de Bases de Dados (SBD)
A BD e o SGBD são partes do chamado Sistema de Bases de Dados (SBD), como mostrado na figura seguinte:
Usuários/Programadores
	
	
	SBD
	
	Programas de Aplicação/Consultas
SGBD
Software para processo (Programas/Consultas)
Software para acesso a dados armazenados
Definição da
Base de Dados	Base de Dados
(Meta-Dados)
3.1 Arquitetura de um SBD
Mais especificamente, um SBD é composto por três partes:
· Interface com o usuário: responsável por validar as solicitações dos usuários e iniciar operações em uma BD de acordo com essas solicitações;
· Mecanismo de acesso: responsável pela manutenção das estruturas de dados das BDs, pelo acesso aos dados e pela manutenção da integridade dos dados;
· Armazenamento de dados: arquivos que contém os dados em si (BDs).
De acordo com essas três partes, duas arquiteturas são possíveis para um SBD: desktop e cliente-servidor. A seguir essas duas arquiteturas serão discutidas considerando um ambiente de rede, onde os dados ficam armazenados em um servidor na rede e podem ser compartilhados.
3.1.2 Arquitetura Desktop
Em uma arquitetura desktop a interface com o usuário e o mecanismo de acesso ficam no mesmo computador e apenas os arquivos de dados ficam em um servidor na rede. Esquematicamente, tem-se:
 (
Aplicativo
1
) (
BD
1
)
...	...
 (
Aplicativo
n
)
Interface com o Usuário
+
Mecanismo de Acesso
 (
BD
m
)Armazenamento de Dados
	
Usuário	Servidor
Por exemplo: quando um usuário quer ver uma relação de contas a pagar apenas em determinado período, o sistema deve selecionar alguns registros de acordo com uma data informada. Em uma arquitetura desktop, todos os registros serão trazidos pela rede, inclusive os que não serão utilizados (estão fora da data informada pelo usuário).
O tráfego na rede fica grande, principalmente quando o servidor é acessado simultaneamente (compartilhamento de dados).
3.2 Arquitetura Cliente-Servidor
 (
BD
1
)Em uma arquitetura cliente-servidor, a interface com o usuário fica em um computador (cliente), sendo que o mecanismo de acesso e os arquivos de dados ficam em um servidor na rede. O mecanismo de acesso é um SGBD rodando no servidor. Esquematicamente, tem-se:
 (
CBuilder JAVA
Delphi Visual Basic, etc
SQL 
Server Sybase Oracle, etc
...
...
Interface 
com o Usuário
Mecanismo 
de
 
Acesso
 
+
Armazenamento
de Dados
Usuário
Servidor
Aplicativo
n
S G B D
Aplicativo
1
)
Cliente
(front-end)
Servidor
(back-end)
 (
BD
m
)
Quando o SGBD recebe uma solicitação para selecionar alguns dados, ele acessa localmente os dados no servidor e retorna apenas os dados resultantes da solicitação. Assim, O trafego na rede fica bem menor que em uma arquitetura desktop.
3.3 Profissionais envolvidos
· Administrador da Base de Dados (DBA - Database Administrator):
Responsável por:
· autorizar o acesso à BD, coordenar e monitorar seu uso;
· solucionar problemas, tais como, quebra de segurança e baixo desempenho.
· Projetistas da Base de Dados:
Responsáveis por:
· identificar os dados a serem armazenados na BD;
· escolher estruturas apropriadas para representar e armazenar os dados. Essas tarefas devem ser executadas antes que a BD seja utilizada.
· Usuários Finais: profissionais que precisam ter acesso à BD para consultar, modificar e gerar relatórios. Categorias:
· ocasionais: ocasionalmente fazem acesso à BD, mas podem necessitar de diferentes informações cada vez que fazem acesso;
· comuns: realizam operações de consulta e atualização que foram cuidadosamente programadas e testadas;
· sofisticados: incluem engenheiros, analistas de negócio e outros que procuraram familiarizar-se com as facilidades de um SGBD para atender seus complexos requisitos;
· Analistas de Sistemas e Programadores de Aplicação: os analistas especificam as transações para atender aos requisitos dos usuários finais e os programadores implementam essas especificações produzindo os programas aplicativos.
4 Modelos de Dados, Esquemas e Instâncias
Para ser possível armazenar informações do mundo real em uma BD, essa informação deve ter sua estrutura definida. Por estrutura de uma BD entende-se: tipos de dados, relacionamentos e restrições pertinentes aos dados. Assim, surgem os seguintes conceitos:
Modelo de Dados: conjunto de conceitos e regras usados para descrever a estrutura de uma
BD.
Modelagem de Dados: processo de estruturar as informações do mundo real segundo um modelo de dados.
Esquema da BD: é a descrição textual ou gráfica de uma BD de acordo com um determinado modelo de dados. Os modelos de dados têm convenções para mostrar esquemas de BDs. Um esquema é especificado durante o projeto da BD, sendo que a expectativa de mudanças não é grande.
Instâncias (ou Ocorrências ou Estados) da BD: são os dados de uma BD em um determinado momento do tempo. Os dados atualmente existentes em uma BD podem mudar com frequência.
Esquematicamente tem-se:
 (
Informação do Mundo Real 
(Mini-Mundo)
) 		 Modelagem
 (
Esquema 
da 
BD 
(segundo um modelo de 
dados)
) (
Instâncias da BD
) 		 Implementação
5 Histórico
1959:
· Sistemas de arquivos com acesso não sequencial;
· Sistema RAMAQ da IBM – conseguia fazer busca em arquivos em disco por conteúdo.
1961:
· Estabelecimento do CODASYL (Committee on Data Systems Language) – união de universidades, fabricantes, empresas e exército. Objetivo: criar uma maneira de representar os dados;
· Conceituação de SGBD e modelos de dados;
· Proposta do Modelo Rede.
1968:
· Primeiro SGBD comercialmente disponível;
· Modelo Hierárquico (simplificação do Modelo Rede feita pela IBM).
1970:
· Proposta do Modelo Relacional
1974:
· Grupos trabalhando em protótipos de SGBDs relacionais:
INGRES (Universidade de Berkeley) – linguagem QBE (de domínio público) Sistema R (IBM) – linguagem SEQUEL (ancestral da linguagem SQL)
1976:
· Proposta do Modelo Entidade-Relacionamento;
· Introdução do conceito de Modelos Conceituais – Modelagem Semântica
1983:
· Primeiro SGBD Relacional de grande porte disponível – DB2 (IBM)
1985:
· Modelos Orientados a Objetos
1986:
· Primeiro padrão ANSI da linguagem SQL (Structured Query Language): SQL-86
1987:
· Surgiram várias empresas: INGRES, SYBASE, ORACLE, INFORMIX
· Todos os SGBDs Relacionais criados têm o mesmo núcleo e, portanto, são compatíveis.
Utilizam a linguagem SQL.
1989:
· Padrão ANSI SQL-89
1990:
· Desenvolvimento de SGBDs Orientados a Objetos.
1992:
· Padrão ANSI SQL-92
1993:
· SGBDs Orientados a Objetos: O2, ITASCA
1997:
· Início do desenvolvimento do padrão ANSI/ISO SQL3 (extensão da linguagem SQL com conceitos de orientação a objetos);
· Conceito de SGBDs Objeto-Relacionais
1999:
· Publicação do padrão SQL3, chamado oficialmente de SQL:1999, alicerce para os SGBDs Objeto-Relacionais
2003:
· Publicação do padrão SQL:2003 (ou SQL 2003): introduz características relacionadas a linguagem XML (eXtensible Markup Language)
2006:
· Publicação do padrão SQL:2006 (ou SQL 2006): define meios de utilização de SQL em conjunto com XML
2008:
· Publicação do padrão SQL:2008 (ou SQL 2008)
2011:
· Publicação do padrão SQL:2011 (ou SQL 2011)
Atualmente:
· SGBD Objeto-Relacional;
· BD Multimídia;
· Modelagem multidimensional: Data Warehouse;
· Consultas: Data Mining, OLAP;
· Banco de Dados NoSQL (“Not Only SQL”).
6 Arquitetura de um SGBD
6.1 Arquitetura Three-Schema (ou ANSI/SPARC)
Objetivo da arquitetura Three-Schema (Três Esquemas): separar as aplicações de usuários da BD física.
Nessa arquitetura os esquemas podem ser definidos em trêsníveis:
· Nível Externo ou Visão: possui esquemas externos ou visões de usuários. Cada esquema externo descreve a visão da BD de um grupo de usuários, ou seja, descreve a parte da BD que um grupo de usuários em particular está interessado e “esconde” o restante da informação;
· Nível Conceitual: tem um esquema conceitual que descreve a estrutura de toda a BD. O esquema conceitual é uma descrição global da BD, omitindo detalhes da estrutura de armazenamento físico. Neste nível descreve-se entidades, tipos de dados, relacionamentos e restrições;
· Nível Interno: tem um esquema interno que descreve a estrutura de armazenamento físico da BD. Neste nível descreve-se todos os detalhes de armazenamento de dados e caminhos de acesso à BD.
Esquematicamente tem-se:
Usuários Finais
Nível Externo
.	.	.
 (
Esquema 
Conceitual
) (
Visão 
Externa N
) (
Visão 
Externa 1
)Mapeamento Externo/Conceitual
Nível Conceitual
Nível Interno
Mapeamento Conceitual/Interno
	Esquema Interno
	
	
	
	
	
		
Bases de Dados
Note-se que os três esquemas são apenas descrições dos dados.
6.2 Independência de Dados na Arquitetura Three-Schema
A arquitetura three-schema pode ser utilizada para explicar conceitos de independência de dados, definidos como a capacidade de alterar o esquema de um nível sem ter que alterar o esquema do nível superior mais próximo. Dois tipos de independência de dados podem ser definidos: Lógica e Física.
Independência de Dados Lógica é a capacidade de alterar o esquema conceitual sem ter que alterar os esquemas externos (visões) ou programas de aplicação. Pode-se alterar o esquema conceitual para expandir a BD, adicionando um novo tipo de registro ou um item de dado, ou reduzir a BD, removendo um tipo de registro ou um item de dado. No último caso, apenas os esquemas externos que se referem aos dados que permanecem na BD não são afetados. Exemplo: Considerando o seguinte esquema externo (visão) em relação a dados de alunos de uma Universidade:
	ra
	nome_aluno
	código_disciplina
	1
	Maria
	CCS1310
	
	
	MAT2410
	
2
	
Raquel
	CCS1310
	
	
	CCS3320
	
	
	CCS3380
	
	
	MAT2410
No esquema conceitual tem-se a definição do seguinte arquivo (tabela) que participa do esquema externo anterior:
	código_disciplina
	nome_disciplina
	créditos
	CCS1310
	Introdução à Computação
	4
	CCS3320
	Estruturas de Dados
	4
	CCS3380
	Linguagens de Programação
	2
	MAT2410
	Cálculo Numérico
	2
O esquema externo não precisa ser alterado se for adicionado mais um item de dado no arquivo anterior:
	código_disciplina
	nome_disciplina
	departamento
	créditos
	CCS1310
	Introdução à Computação
	CCS
	4
	CCS3320
	Estruturas de Dados
	CCS
	4
	CCS3380
	Linguagens de Programação
	CCS
	2
	MAT2410
	Cálculo Numérico
	MAT
	2
Independência de Dados Física é a capacidade de alterar o esquema interno sem ter que alterar o esquema conceitual. Alterações no esquema interno podem ser necessárias quando alguns arquivos físicos têm que ser reorganizados para melhorar o desempenho de recuperações e/ou atualizações de dados. Exemplos de reorganização:
- redistribuição dos dados em diversos dispositivos (devices) e/ou localidades;
· reorganização das estruturas de acesso físico aos dados (criação/remoção de índices);
· balanceamento da carga de dados para manipulação em memória (bufferização).
Após a reorganização, se nenhum item de dado foi adicionado ou removido, não haverá necessidade de modificar o esquema conceitual.
7 Linguagens de acesso de SGBDs
Os SGBDs disponibilizam linguagens apropriadas para que os usuários de diversos tipos possam acessar as BDs.
Basicamente, três categorias de linguagens estão disponíveis nos SGBDs:
· Linguagem de Definição de Dados (Data Definition Language – DDL): permite a definição da estrutura da BD e a criação, alteração e eliminação dos objetos da BD (tabelas, visões, procedimentos armazenados, etc). É utilizada pelo DBA e projetistas da BD para definir seus esquemas físicos de dados;
· Linguagem de Manipulação de Dados (Data Manipulation Language – DML): suporta a manipulação dos dados armazenados na BD – inserção, consulta, eliminação e alteração. É utilizada por diversos tipos de usuários;
· Linguagem de Controle de Dados (Data Control Language – DCL): envolve comandos para o controle de privilégios de acesso aos dados, segurança e administração da BD (cadastramento de usuários/grupos, atribuição de permissões, backup da BD, configurações, etc). É utilizada pelo DBA.
8 Modelos de Dados
8.1 Classificação de Modelos de Dados
O processo de modelagem de dados envolve a transformação de um problema real em uma representação implementável. Esse processo consiste em abstrair a informação do mundo real que necessita ser armazenada em uma BD e construir, utilizando um modelo de dados específico, um esquema que represente essa informação. Assim, pode-se considerar que um esquema de dados é composto por um conjunto de abstrações de dados semanticamente integradas e que, nos modelos de dados, as abstrações são as estruturas disponíveis para a representação da informação.
Os modelos de dados são classificados de acordo com o nível de abstração que permitem no processo de modelagem. Os níveis de abstração estão relacionados com a omissão ou não de detalhes do armazenamento físico de dados na modelagem, ou seja, quanto menos detalhes sobre o armazenamento físico forem necessários, maior será o nível de abstração proporcionado pelo modelo. Desse modo, as categorias de modelos de dados são:
Modelos Conceituais ou Semânticos:
· permitem uma modelagem conceitual, ou seja, uma modelagem mais próxima à percepção dos usuários, pois o objetivo imediato não é a implementação;
· o esquema de dados gerado deve ser suportado por uma implementação: usualmente SGBDs Relacionais;
· SDM (Semantic Data Model), o SAM (Semantic Association Model), ME-R (Modelo Entidade-Relacionamento) - mais utilizado.
Modelos Orientados a Objetos:
· permitem uma modelagem com alta representação conceitual: objetos e classes de objetos;
· o esquema de dados gerado deve ser suportado por uma implementação: SGBDs Orientados a Objetos;
· O2, Orion, GemStone, ObjectStore, Modelo de Classes da UML.
Modelos Lógicos:
· primeiros modelos de dados que surgiram;
· descrevem as estruturas que estarão contidas na BD de acordo com o tipo de SGBD a ser utilizado na implementação (por exemplo, SGBD Relacional), mas sem considerar nenhuma característica específica do SGBD;
· também conhecidos como modelos baseados em registros e relações: Modelo Rede, Modelo Hierárquico e Modelo Relacional - mais utilizado.
Modelos Físicos:
· descrevem as estruturas físicas de armazenamento e acesso aos dados de acordo com o SGBD a ser utilizado na implementação, tais como: tipo e tamanho de campos, índices, etc;
· para a construção do modelo físico usa-se a DDL do SGBD a ser utilizado na implementação.
8.2 Primeiros Modelos de Dados
8.2.1 Modelo Rede
A concepção inicial de um modelo de dados baseou-se na representação da informação por meio de:
· Um conjunto de arquivos, cada um contendo registros estruturalmente idênticos;
· Cada registro é estruturalmente composto por campos;
· Campos podem conter valores de dados representados literalmente ou ponteiros para registros específicos de outros arquivos.
Bachman propôs um modelo de representação gráfica (que levou seu nome) para representar essas estruturas. Nos diagramas de Bachman:
· Os arquivos são representados por retângulos nomeados;
· Relacionamentos entre arquivos são representados por setas nomeadas (ligações entre arquivos). Cada seta representa um ponteiro e indica que um campo refere-se a um registro de outro arquivo. Os relacionamentos são de cardinalidade 1:N. O arquivo que participa com uma ocorrência é chamado de arquivo mestre (de onde parte a seta), e o arquivo que participa com N ocorrências é chamado de arquivo membro (para onde a seta aponta).
 (
Membro
Emprega
) (
Obtém 
Matéria-Prima
Fornecedor
Peso
Código
Produto
) (
Mestre
Composta por
Relacionamento 
1:N
)Exemplo:Empresa
	Razão Social
	Deptos
	
	
	Departamento
	Nome
	Produtos
	Funcionários
	Produz
	
	Empregado
	Nome
	Endereço
Na implementação, as ligações entre arquivos são realmente ponteiros. Por exemplo, a ligação de Empresa sendo composta por departamentos, significa que o campo Deptos do registro de Empresa constitui-se em uma lista de ponteiros para um ou mais registros do arquivo de departamentos.
Os diagramas de Bachman levam a modelagens que representam o mundo real por meio de uma rede de arquivos ligados. Por isso o modelo de dados que eles representam foi chamado de Modelo Rede.
Assim, o Modelo Rede organiza o esquema de dados colocando os tipos de registros (arquivos) como nós de um grafo.
8.2.2 Modelo Hierárquico
Devido à dificuldade inicial no desenvolvimento de SGBDs seguindo o Modelo Rede, a IBM concebeu uma variação desse modelo, onde não é permitido que o grafo de uma modelagem
contenha ciclos e nem que um nó seja destino de mais de um arco. O modelo resultante foi chamado de Modelo Hierárquico.
Assim, o Modelo Hierárquico organiza os tipos de registros (arquivos) em uma estrutura de árvore. Os demais conceitos são iguais aos do Modelo Rede (arquivos, registros, campos, ponteiros, etc).
Cada hierarquia dos esquemas de dados gerados pelo Modelo Hierárquico deve respeitar as seguintes regras:
· não possuir ciclos;
· um mesmo arquivo não pode ser membro de mais do que uma ligação (relacionamento), embora possa ser mestre de mais de uma delas.
Esquematicamente tem-se:
Em geral, os modelos hierárquicos trabalham bem em aplicações que são naturalmente hierárquicas. Quando existem relacionamentos não-hierárquicos o ajuste torna-se difícil e o resultado das representações é frequentemente insatisfatório.
8.2.3 Exemplos de SGBDs
· IMS: suporta implementações de acordo com o Modelo Hierárquico;
· ADABAS: suporta implementações de acordo com os modelos Rede e Hierárquico;
· System 2000 ou S2K: suporta implementações de acordo com os modelos Rede e Hierárquico.
9 Projeto de Bases de Dados
Um processo genérico de projeto de BDs inclui quatro fases, a serem realizadas na ordem apresentada:
· Coleta e Análise de Requisitos: consiste em identificar e entender os requisitos de dados e funcionais da aplicação, definindo, de forma não-ambígua, os elementos a serem considerados no projeto de dados e as transações a serem executadas nesses dados.
· Projeto Conceitual: envolve duas atividades paralelas. A primeira consiste em examinar os requisitos de dados resultantes da fase anterior e produzir o esquema conceitual de dados, utilizando um modelo de dados de alto nível de abstração. A segunda atividade consiste em examinar os requisitos funcionais obtidos na fase anterior e produzir especificações para as transações, independente do SGBD a ser utilizado.
· Projeto Lógico: consiste em transformar o esquema conceitual de dados em um esquema específico para um dado tipo de SGBD, denominado esquema lógico de dados. Esse processo é conhecido como mapeamento.
· Projeto Físico: consiste em escolher estruturas de armazenamento e acesso específicas para o SGBD a ser utilizado na implementação, visando atender os requisitos de desempenho dos sistemas que compõem a aplicação e que irão interagir com a BD.
Esquematicamente, tem-se:
 (
Mini-Mundo
)
 (
Coleta e Análise de Requisitos
)
 (
Projeto 
Conceitual
)Requisitos de Dados
Esquema Conceitual de Dados
Requisitos Funcionais
Especificação das Transações
Modelagem
ME-R/ME-R Estendido
	
 (
Independente 
do SGBD Específico do SGBD
Projeto 
Lógico
)Esquema Lógico de Dados
Mapeamento
 (
Projeto 
Físico
)ME-R/ME-R Estendido para o Modelo Relacional
Esquema Físico de Dados
Exercícios de Fixação
1. Defina os termos: Base de Dados, Sistema de Gerenciamento de Bases de Dados e Sistema de Bases de Dados.
2. Explique resumidamente as três ações envolvendo Bases de Dados.
3. O que você entende por meta-dados?
4. Estabeleça a diferença entre a utilização de Sistemas de Gerenciamento de Bases de Dados e os tradicionais Sistemas de Arquivos.
5. Quais são as responsabilidades do Administrador de Bases de Dados e dos Projetistas de Bases de Dados?
6. Explique três capacidades de um Sistema de Gerenciamento de Bases de Dados.
7. Explique o conceito de consistência de dados.
8. Considerando as três partes de um Sistema de Bases de Dados (interface com o usuário, mecanismo de acesso e armazenamento de dados) e um ambiente de rede (dados ficam armazenados em um servidor e podem ser compartilhados), estabeleça a diferença entre a arquitetura desktop e a arquitetura cliente-servidor.
9. Defina os termos: modelo de dados, esquema da base de dados e instância da base de dados.
10. Estabeleça a diferença entre independência lógica e física de dados.
11. Explique as três categorias de linguagens de acesso de Sistemas de Gerenciamento de Bases de Dados.
12. Discuta os três níveis da arquitetura Three Schema relacionando-os com modelos de dados Conceituais, Lógicos e Físicos.
13. Estabeleça a diferença entre os modelos de dados Rede e Hierárquico.
14. Explique as quatro fases de projeto de bases de dados.
15. Em qual das fases de projeto de bases de dados o Modelo Entidade-Relacionamento deve ser utilizado?

Outros materiais