modelos de base de dados
DESCRIPTION
TRANSCRIPT
UNIVERSIDADE DO CONTESTADO - UnC
CURSO DE SISTEMAS DE INFORMAÇÃO -
DAIANA PAULA DE AVILA
DANNY LINO MOREIRA PENICHE
DOUGLAS ADRIANO BUSNELLO
ELIEZER POMPEO
TIAGO PELLIZZARO
MODELOS DE BASE DE DADOS
1ª Geração
Hierárquico;
Em rede.
2ª Geração
Modelos orientados a objetos
Extensões ao modelo relacional
MODELO HIERÁRQUICO
Exemplo:
Um departamento tem muitos empregados e cada um tem um supervisor e por sua
vez depende de outro empregado. Cada departamento tem muitos projetos no qual
trabalham muitos empregados.
Estruturas básicas:
1. Registros (coleção de valores de campos que fornece informação sobre uma
entidade de um relacionamento)
2. Relacionamentos (pai-filho: 1-M) O acesso a qualquer um dos registros deve
ser feito a partir da raiz e correndo para cada um dos nós da árvore da
esquerda para a direita e de cima para baixo.
Restrições e dificuldades:
1. Apenas o registro pai não se relaciona com outro registro pai;
2. Se 1 registro filho tem mais do que 1 registro pai, então deve ser duplicado
para cada um dos pais;
3. Dificuldades de representação de relacionamentos M:M.
Restrições e dificuldades:
1. Redundância de dados;
2. Falta de dependência lógica;
3. Utilização e programação muito exigente;
4. Dificuldade de portabilidade.
Um dos exemplos de um SGBD concebido segundo o modelo hierárquico , na década
de 60, é o MIS (Management Information system) da IBM.
MODELO EM REDE
Exemplo:
Modelo em Rede tem por base o modelo hierárquico;
Um filho pode ter mais do que um pai;
Acesso aos dados de forma semelhante ao modelo hierárquico;
Facilita a representação de relacionamentos de M:M.
O acesso aos dados é mais flexível do que no modelo hierárquico;
Sistema ainda complexo e exige um grande conhecimento dos programadores;
Não existe verdadeira dependência dados - aplicações.
MODELO RELACIONAL
Apresentado por Edgar Codd, em 1970;
A estrutura básica é a tabela;
Uma BD relacional é formada por um conjunto de tabelas que se relacionam
através de atributos comuns.
Sistemas de Base de Dados:
Exemplo de Base de dados relacionais:
SQL/OS da IBM;
SGBD Oracle;
DB2 e Informix (IBM);
Oracle e Rdb da Oracle;
SQL server e Access da Microsoft;
Grande sucesso;
Uso da linguagem SQL (structuredQueryLaguage);
Exigente ao nível de hardware e SO – hoje mais ultrapassado;
Ambiente amigável.
DIAGRAMA DE ENTIDADE – RELACIONAMENTO
O diagrama entidade-relacionamento expressa graficamente a estrutura global de um
banco de dados. Segundo [SILBERSCHATZ]:
"O modelo de dados entidade-relacionamento baseia-se na percepção de um universo
constituído por um grupo básico de objetos chamados entidades e
por relacionamentos entre esses objetos. Ele foi desenvolvido a fim de facilitar o
projeto de bancos de dados permitindo a especificação de um esquema de
empreendimento. Tal esquema representa a estrutura lógica global do banco de
dados."
Exemplo:
Obs. Uma particularidade no modelo que foge um pouco da especificação do sistema,
é que não há nenhuma referência aos documentos fiscais exigidos (nota e cupom). A
explicação é que cada empresa trabalha com um formulário personalizado e pelo fato
de que os produtos podem ser regidos por legislações diferentes que alteram a forma
de calcular impostos. Devido a essa complexidade e para deixar o sistema mais
genérico, decidiu-se por retirar essa funcionalidade do escopo deste trabalho.
MODELO ORIENTADO A OBJETOS
Tiveram origem nas linguagens de programação orientadas a objetos.
Extensão ao modelo relacional.
Um objeto é uma representação conceptual de uma entidade do mundo real –
ex: factura;
Objetos contem atributos que o descrevem – Ex: numero, data, valor total;
E o seu comportamento, ou seja, as ações que lhe estão associadas - Ex:
imprimir, criar;
Um objeto contém quer a estrutura de dados quer as ações (métodos);
Um atributo pode ser uma referencia a outro objeto;
Uma classe é uma coleção de objetos que partilham a estrutura e o
comportamento, permitindo uma definição única;
As classes são organizadas hierarquicamente numa filosofia de herança de
atributos e métodos.
Fazer diagrama OO
Categoria produtos- diferentes produtos.
CONCEITOS DOS MODELOS DE DADOS
MODELO HIERÁRQUICO
O modelo hierárquico foi o primeiro a ser reconhecido como um modelo de dados. Seu
desenvolvimento somente foi possível devido à consolidação dos discos de
armazenamento endereçáveis, pois esses discos possibilitaram a exploração de sua
estrutura de endereçamento físico para viabilizar a representação hierárquica das
informações. Nesse modelo de dados, os dados são estruturados em hierarquias ou
árvores. Os nós das hierarquias contêm ocorrências de registros, onde cada registro é
uma coleção de campos (atributos), cada um contendo apenas uma informação. O
registro da hierarquia que precede a outros é o registro-pai, os outros são chamados
de registros-filhos.
Uma ligação é uma associação entre dois registros. O relacionamento entre um
registro-pai e vários registros-filhos possui cardinalidade 1:N. Os dados organizados
segundo este modelo podem ser acessados segundo uma seqüência hierárquica com
uma navegação do topo para as folhas e da esquerda para a direita. Um registro pode
estar associado a vários registros diferentes, desde que seja replicado. A replicação
possui duas grandes desvantagens: pode causar inconsistência de dados quando
houver atualização e o desperdício de espaço é inevitável. O sistema comercial mais
divulgado no modelo hierárquico foi o Information Management System da IBM
Corp(IMS) para o ambiente MV(como o DB2). Grande parte das restrições e
consistências de dados estava contida dentro dos programas escritos para as
aplicações. Era necessário escrever programas na ordem para acessar o banco de
dados. Um diagrama de estrutura de árvore descreve o esquema de um banco de
dados hierárquico. Tal diagrama consiste em dois componentes básicos: Caixas, as
quais correspondem aos tipos de registros e Linhas, que correspondem às ligações
entre os tipos de registros. Como exemplo do modelo hierárquico,
Outra definição possível seria a de uma rede em que cada conjunto de dados pode ter
no Maximo um conjunto de dados mestre (“owner”, no sentido do DBTG), sem ciclos.
Essa característica leva os modelos hierárquicos a declararem as ligações
simplesmente especificando-se para cada conjunto de dados qual e o seu conjunto
mestre. Com isso pode-se construir a arvore em toda a sua estrutura.
INTEGRIDADE DOS DADOS HIRÁRQUICOS:
O modelo hierárquico inclui suporte automático para determinadas formas de
integridade referencial mediante a seguir regra:
“nenhum filho tem permissão de existir sem um pai”.
Assim sendo, se um pai é eliminado, o sistema eliminara toda a árvore nele enraizada,
da mesma maneira que nenhum filho poderá ser inserido sem a existência do pai.
MODELO RELACIONAL
O modelo relacional foi criado por Codd, em 1970, e tem como finalidade representar
os dados como uma coleção de relações, onde cada relação é representada por uma
tabela, ou seja. Quando uma relação é pensada como uma tabela de valores, cada
linha nesta tabela representa uma coleção de dados relacionados. Estes valores
podem ser interpretados como fatos, descrevendo uma instância de uma entidade ou
relacionamento.
O nome da tabela e de suas colunas é utilizado para facilitar a interpretação dos
valores armazenados em cada linha da tabela.
Na terminologia do modelo relacional, cada tabela é chamada de relação, uma linha
de uma tabela é chamada de tupla, o nome de cada coluna é chamado de atributo, o
tipo de dado que descreve cada coluna é chamado de domínio.
O domínio é um conjunto de valores que possuem determinadas propriedades
em comum. O domínio engloba dados atômicos ou simples, porque não podem sofrer
mais nenhuma decomposição.
Uma relação define-se sobre certo número de domínios e engloba duas
componentes: o cabeçalho e o corpo. O cabeçalho é um conjunto de atributos em que
cada atributo corresponde a um domínio. O corpo corresponde a um conjunto de
tuplas. Cada tupla é um conjunto de valores: um por cada atributo constante do
cabeçalho.
Cada linha da tabela representa uma proposição sobre determinada entidade.
Enquanto que as linhas representam os valores atuais dos atributos, os domínios
simbolizam todos os valores possíveis. As linhas variam com as circunstâncias
enquanto que os domínios e os atributos são constantes.
Propriedades das relações
Uma relação caracteriza-se por:
• Ter um nome único dentro do mesmo diagrama de modelo de dados relacional;
• Ter de zero a n linhas, cuja ordenação é indiferente dado que não são identificadas
pela sua posição. Uma relação sem nenhuma linha diz-se vazia.
• Ser composta por um ou mais atributos, onde a ordem não é importante, pois se
identificam pelo nome e não pela sua posição;
• Cada um dos atributos contém valores retirados de um domínio particular, o que quer
dizer que num mesmo atributo os dados são obrigatoriamente todos do mesmo tipo;
• Numa mesma relação não podem existir dois atributos com o mesmo nome;
• Cada relação tem que ter uma chave primária. Uma chave primária é um atributo, ou
combinação de atributos, cujos valores proporcionam uma identificação unívoca das
tuplas duma relação, ou seja, certo valor para a chave só pode aparecer uma única
vez em cada relação. Significa ainda que as tuplas duma relação são todas diferentes
entre si e não são permitidas linhas duplicadas,
• Os dados, ou valores, são sempre de tipo atômico.
MODELO EM REDE
Busca seguir um padrão no seu desenvolvimento formado pela comissão COBOL da
Codasyl. Ficou conhecido por DBTG (“Data Base Task Group”). O problema de se
fazer um padrão é que muita gente vai posteriormente atrás dele, conseqüentemente
assim surgiram GBDs comerciais que segue o modelo DBTG.
Segundo Date (1990), a estrutura de dados em Rede pode ser considerada uma forma
ampliada da estrutura hierárquica de dados, onde a principal diferença é que na
estrutura hierárquica, um registro-filho tem exatamente um pai, enquanto que na
estrutura de rede um registro-filho pode ter qualquer quantidade de pais, inclusive zero
(DATE, 1990).
Para entendermos melhor essa diferença, devemos observar que o banco de dados
em rede está composto por dois conjuntos, um é o de ligações ou ocorrências
múltiplas dos vários tipos de registro e outro, um conjunto de ocorrências múltiplas
para cada um dos vários tipos de ligação, cada tipo de ligação envolvendo dois tipos
de registros, um pai e outro filho.
Cada ocorrência de uma ligação é composta por uma única ocorrência do tipo de
registro pai, disposto como um conjunto ordenado de múltiplas ocorrências de um
registro filho.
Um banco de dados de rede é uma base de dados constituída por uma coleção ou um
conjunto de registos, que são ligados entre si através de ligações numa
rede. O registo é semelhante a uma entidade, tais como aqueles utilizados no modelo
relacional.
Um registro é uma coleção ou conjunto de campos (atributos), onde cada um contendo
um único valor armazenado, apenas a ligação é a associação entre dois registros,
para que possamos vê-lo como estritamente binária.
Uma estrutura de rede do banco de dados, por vezes chamado estrutura duplex,
abrange mais do que a estrutura de árvore, porque um nó filho na estrutura de
rede pode ter mais de um nó pai. Em outras palavras, a restrição de que, em uma
árvore hierarquia cada criança pode ter apenas um dos pais , torna-se menos grave.
Assim, a estrutura de árvore pode ser considerada como um caso especial
da estrutura de rede.
Conjuntos de dados:
No modelo em rede (MRd), um conjunto de dados recebe o nome de “Record Type”. O
padrão DBTG especificou algumas modalidades de armazenamento para os “Record
Type” (Record = Registro). Essa preocupação com o modelo interno permeou o MRd
prejudicando o do ponto de vista de generalidade e de nível de abstração. A
modalidade de uso de uma chave é a utilização de rotinas de “Hashing”
(espalhamento, randomização). Até hoje os GBDs do MRd continuam com problemas
para implementarem vários itens de busca, pois com “Hashing” direto só se pode
especificar um único item de busca. Para contornar esse problema, o DBTG fez um
truque de introduzir uma ligação com o sistema. Ligações Diagramas de redes –
Baseado em sistema de arquivo, não em SGBD.
INTEGRIDADE DOS DADOS EM REDE:
O modelo em rede inclui suporte para determinadas formas de integridade referencial
por meio de sua estrutura primária dos dados no momento de ligação. Podem ser
determinadas regras de inserção obrigando a colocação de um registro pai antes do
entrada de um registro filho na primeira ocorrência.
MODELO ORIENTADO A OBJETO
Recentemente, os bancos de dados orientados a objetos são uma possível evolução
ao sistema relacional, com o surgimento de novas necessidades computacionais cada
vez maiores, por exemplo, com desenho assistido por computador (CAD) ou bancos
de dados multimídia, porém este modelo ainda não é muito encontrado, devido
principalmente a sua maior complexidade de implementação e a falta de padronização
nas linguagens de consulta (KORTH;SILBERSCHATZ, 1994). Segundo Fowler (2006),
os bancos de dados orientados a objetos deverão trazer mais produtividade, devido
principalmente ao fato da POO não necessitar de um processo de mapeamento
objeto-relacional (FOWLER, 2006).
Como se pode notar existem algumas semelhanças nos conceitos de associações
entre objetos com a modelagem Entidade - Relacionamentos para bancos de dados.
Page-Jones (1997) afirma que uma abordagem orientada a objetos permite uma
melhor convergência entre as análises procedural e de dados, citando que esses dois
aspectos da análise sempre apresentaram certo atrito entre eles, representado
respectivamente pelos diagramas de Fluxo de Dados e de Entidades-Relacionamentos
(PAGE-JONES, 1997).
Segundo Rumbaugh et. al. (2000), a forma tradicional de analisar um problema,
quebrando-o em problemas menores, dificulta a manutenção dos sistemas devida
principalmente a mudanças nos requisitos e ao crescimento certo do sistema.
A partir da evolução das técnicas de análise e representação de sistemas complexos
de software em diagramas, após a introdução da abordagem ER por Peter Chen
(CHEN, 1990), aplicadas à metodologia de orientação a objetos, Rumbaugh et. al.
(2000) apresenta a linguagem UML (Linguagem de Modelagem Unificada). Esta é uma
poderosa notação diagramática destinada a visualizar, especificar, construir e
documentar sistemas de qualquer espécie, não obrigatoriamente software.
A UML possui os seguintes tipos de diagramas (RUMBAUGH et. al., 2000):
Diagrama de classes
Diagrama de objetos
Diagrama de casos de uso
Diagrama de seqüências
Diagrama de colaborações
Diagrama de gráficos de estados
Diagrama de atividades
Diagrama de componentes
Diagrama de implantação
Por demonstrar claramente ser uma evolução direta da modelagem ER, e que
possivelmente poderá servir de apoio ao presente trabalho, quando houver
necessidade de apresentar classes e suas associações, neste tópico será abordado
resumidamente apenas o diagrama de classes, conforme apresentado o exemplo da
Figura 2.1.
Empresacnpj: Texto
Departamentonome: Texto
fazerCafezinho()
Escritórioendereço: Texto
expediente: Horario
1
1..* 1..*
[..] Enquanto os diagramas E-R clássicos têm seu foco apenas nos dados, os
diagramas de classe vão um pouco além, permitindo ainda a modelagem de
comportamentos. [..] (RUMBAUGH et. al., 2000, pág 109)
Figura 2.1 - Exemplo de associação em diagrama de classes UML.
Como pode ser notado na Figura 2.1, na notação básica da UML as classes são
representadas como retângulos subdivido horizontalmente, onde, de cima para baixo,
são descritos o nome da classe, os atributos e seus métodos.
Os seus relacionamentos com outras tabelas são representados por linhas que fazem
as devidas interligações, juntamente com a informação sobre o tipo deste
relacionamento. Conforme o exemplo, definido por um losango preenchido em preto,
significa uma associação do tipo agregação. A notação “1” junto a classe Empresa e a
notação “1..*” junto as outras classes Departamento e Escritório, descrevem a
multiplicidade do relacionamento, isto é, indicam que uma empresa possui um ou
muitos Departamentos, e um ou muitos Escritórios.
Outro tipo de relacionamento entre objetos é a herança, cuja notação da UML é
representada por um triângulo presente sobre a linha do respectivo relacionamento, e
que aponta para a superclasse, conforme exemplo demonstrado na Figura 2.2, onde
as classes Estudante e Professor derivam da classe Pessoa.
Figura 2.2 - Exemplo de herança em diagrama de classes UML.
Pessoa
nome: Texto
falar()
comer()
Estudante
Matricula: Inteiro
lerLivro()
Professor
salario: Valor
turno: Horario
darAula()