modelos de base de dados

16
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

Upload: daiana-de-avila

Post on 18-Dec-2014

5.850 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Modelos de base de dados

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.

Page 2: Modelos de base de dados

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:

Page 3: Modelos de base de dados

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;

Page 4: Modelos de base de dados

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:

Page 5: Modelos de base de dados

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

Page 6: Modelos de base de dados

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

Page 7: Modelos de base de dados

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

Page 8: Modelos de base de dados

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

Page 9: Modelos de base de dados

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

Page 10: Modelos de base de dados

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

Page 11: Modelos de base de dados

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.

Page 12: Modelos de base de dados

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.

Page 13: Modelos de base de dados

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()