Vous êtes sur la page 1sur 16

Modelos de dados

Uma visão geral dos modelos de dados


• A noção de “modelo de dados” é um dos mais fundamentais no
estudo de sistemas de banco de dados.
• O que é um modelo de dados?
• Um modelo de dados é uma notação para descrever dados ou
informações. A descrição geralmente consiste em três partes:
1. Estrutura dos dados.
2. Operações nos dados.
3. Restrições nos dados.
Modelos de dados importantes
• Hoje, os dois modelos de dados de importância proeminente para sistemas de
banco de dados são:
1. O modelo relacional, incluindo extensões relacional de objeto.
2. O modelo de dados semiestruturados, incluindo XML e padrões relacionados.
• O primeiro, presente em todos os sistemas comerciais de gerenciamento de
banco de dados. O modelo semi-estruturado, do qual o XML é a manifestação
principal, é um recurso adicional da maioria dos SGBDs relacionais, e também
aparece em vários outros contextos.
• O modelo relacional é baseado em tabelas, cujo essa relação, ou tabela, descreve
filmes: o título, o ano em que foram criados, a duração em minutos e o gênero do
filme. Nós mostramos três filmes em particular, mas você deve imaginar que há
muito mais linhas nesta tabela - uma linha para cada filme já feito, talvez.
….cont
• os cabeçalhos das colunas são os
nomes dos campos, e cadadas
linhas representam os valores de
uma estrutura na matriz. No
entanto, deve-se enfatizar que
essa implementação física é
apenas uma maneira possível de
a tabela ser implementada em
estruturas de dados físicas.
O modelo semi-estruturado
• Dados semi-estruturados assemelham-se a árvores ou gráficos, em
vez de tabelas ou matrizes. A principal manifestação deste ponto de
vista hoje é XML, uma maneira de representar dados por elementos
marcados aninhados hierarquicamente. As tags, semelhantes às
usadas em HTML, definem o papel desempenhado por diferentes
partes de dados, da mesma forma que os cabeçalhos das colunas
fazem no modelo relacional.
…cont
• <Movies> <Movie title="Gone With the
Wind"> <Year>1939</Year> • As restrições na estrutura de
<Length>231</Length> <Genre>drama</Genre>
</Movie> <Movie title="Star Wars">
dados nesse modelo geralmente
<Year>1977</Year> <Length>124</Length> envolvem o tipo de dados de
<Genre>sciFi</Genre> </Movie> <Movie
title="Wayne’s World"> <Year>1992</Year> valores associados a uma tag.
<Length>95</Length> <Genre> comedy</Genre>
</Movie> </Movies> Por exemplo, os valores
associados aos inteiros de tag
<Length> ou podem ser strings
de caracteres arbitrários? Outras
restrições determinam quais
tags podem aparecer aninhadas
em quais outras tags.
Outros Modelos
• Existem muitos outros modelos que estão associados aos DBMSs.
Uma tendência moderna é adicionar recursos orientados a objetos ao
modelo relacional. Lá são dois efeitos da orientação a objetos nas
relações:
• 1. Os valores podem ter estrutura, em vez de serem tipos
elementares, como
inteiro ou strings.
• 2. Relações podem ter métodos associados
…..Cont
• Existem até mesmo modelos de bancos de dados do tipo puramente
orientado a objetos. Nesses, a relação não é mais o principal conceito
de estruturação de dados, mas se torna apenas uma opção entre
muitas estruturas.
• Existem vários outros modelos que foram usados em alguns dos
primeiros DBMSs, mas isso agora caiu em desuso. O modelo
hierárquico era, como semi-estruturado dados, um modelo orientado a
árvore. Sua desvantagem era que, ao contrário dos mais modernos
modelos, ele realmente operou no nível físico, o que tornou impossível
para programadores para escrever código em um nível
convenientemente alto.
Comparação de abordagens de modelagem
• Mesmo a partir do nosso breve exemplo, parece que os modelos semi-estruturados têm mais
flexibilidade do que relações. Essa diferença se torna ainda mais aparente quando discutimos, como
iremos, como estruturas gráficas completas são incorporadas em árvores, modelos semi-estruturados.
• Como os bancos de dados são grandes, a eficiência do acesso a dados e a eficiência de modificações
nesses dados são de grande importância. Também é muito importante a facilidade de uso - a
produtividade dos programadores que usam os dados. Surpreendentemente, ambos objetivos podem
ser alcançados com um modelo, particularmente o modelo relacional, que:
• 1. Fornece uma abordagem simples e limitada para estruturar dados, mas é razoavelmente versátil,
então qualquer coisa pode ser modelada.
• 2. Fornece uma coleção limitada, mas útil, de operações em dados.

Juntas, essas limitações se transformam em recursos. Eles nos permitem implementar
linguagens, como SQL, que permitem ao programador expressar seus desejos em
um nível muito alto.
Noções básicas do modelo relacional
• O modelo relacional nos dá uma
maneira única de representar dados:
com exemplo de uma relação, que
chamaremos de filmes. Cada uma
das linhas representa um filme e as
colunas representam uma
propriedade de filmes. Nesta secção,
introduziremos a terminologia mais
importante em relação às relações, e
ilustrá-los com a relação de filmes.o Tabela de relação de Filmes
um modelo bidimensional tabela
chamada uma relação.
…. cont
• Atributos aparecem nos topos das colunas. Geralmente, um atributo descreve o
significado das entradas na coluna abaixo. Por exemplo, a coluna com o atributo
len g th contém o comprimento, em minutos, de cada filme.
• O nome de uma relação e o conjunto de atributos para uma relação é chamado
de esquema para essa relação. Mostramos o esquema para a relação com a
relação nome seguido por uma lista entre parênteses de seus atributos. Assim, o
esquema para relação Filmes: M o v ie s (title , y e a r, le n g th , genre).
• Tuplas
• Considera se as linhas de uma relação, além da linha de cabeçalho que contém o
atributo nomes, são chamados de tuplas. Uma tupla tem um componente para
cada atributo de a relação.
…cont
• Domínios
• O modelo relacional requer que cada componente de cada tupla seja atômico; isto
é, deve ser de algum tipo elementar, como integer ou string. Não é permitido para
um valor ser uma estrutura de registro, conjunto, lista, matriz ou qualquer outro
tipo que razoavelmente pode ter seus valores divididos em componentes menores.
Supõe-se ainda que associado a cada atributo de uma relação é um
domínio, isto é, um tipo elementar particular.
• É possível incluir o domínio, ou tipo de dados, para cada atributo em
um esquema de relação. Faremos isso anexando dois pontos e um tipo depois
atributos. Por exemplo, poderíamos representar o esquema para a relação Filmes
Como:
• Movies(title:string, year:integer, length:integer, genre:string)
…cont
• Integridade de domínio
• Os valores de um atributo devem pertencer ao domínio do atributo.
• Integridade da chave
• Não podem existir dois tuplas de uma relação com valores iguais na chave
primária.
• Integridade de entidade
• Os valores da chave primária não podem ser nulos.
• Integridade referencial
• Uma tupla que referencia outra relação tem de referenciar uma tupla
existente nessa outra relação (chave externa).
restrição de integridade
• Uma restrição de integridade é uma regra de consistência de dados que é
garantida pelo próprio SGBD.
• Precisa ser testada quando um registro é incluído, alterado ou excluído do BD.
• Há muitas restrições de integridade que não se encaixam nas categorias
básicas.
• Essas restrições são chamadas de restrições semânticas (ou regras de negócio).
• Exemplos de restrições semânticas:
• Um empregado do departamento “Financeiro” não pode ter categoria funcional
“Engenheiro”.
• Um empregado não pode ter um salário maior que seu superior imediato.
• Também chamadas de regras do negócio.
• Restrições de Integridade Básicas
• Restrições de Vazio e Restrições de Domínio são garantidas pelo SGBD.
• Restrições de Chave primária e de integridade referencial são garantidas
pelo programador.
• Restrições de Vazio Restrições de valor vazio
• O cliente 548 não tem nome.
• Esta tupla se refere a um cliente anônimo, que não tem muito sentido
no BD.
• Este pode ser um caso caso em que se deseja proibir valores vazios,
restringindo domínios do atributo nome para not Null.
• Um valor de campo pode assumir o valor vazio (“null” em inglês)
• Colunas nas quais não são admitidos valores vazios -> chamados de
colunas obrigatórias.
• Colunas nas quais podem aparecer valores vazios -> chamadas de
colunas opcionais.
• Abordagem relacional
• Todas as colunas que compõe a chave primária devem ser obrigatórias.
• Demais chaves podem conter colunas opcionais.
• Regra “Nulo’
• Permite ou não, que um atributo de uma tabela tenha valor nulo
(ausência de valor).
Aula Pratica 2
• Indique três relações que achas que teria numa base de dados de
uma escola. Fatores a ter em conta:
• Os atributos para cada relação
• O domínio dos atributos de cada relação
• As tuplas de cada relação
• De exemplos para cada relação de violação de restrições de integridade

Vous aimerez peut-être aussi