Apostila de Projeto de Banco de Dados - hal9k.ifsc.usp.br smaira/Graduação/6º Semestre/Banco de... ·…

Embed Size (px)

Text of Apostila de Projeto de Banco de Dados - hal9k.ifsc.usp.br smaira/Graduação/6º Semestre/Banco...

  • Puc-Campinas Banco de Dados I Projeto de Banco de Dados

    Projeto de Banco de Dados

    Tipos de Banco de Dados

    Banco de dados Relacional Um banco de dados relacional consiste em uma coleo de tabelas, que podem ser relacionadas atravs de seus atributos, ou seja uma linha de uma tabela pode estar sendo relacionada com uma outra linha em uma outra tabela.

    Banco de dados rede Enquanto no modelo relacional os dados e os relacionamentos entre dados so representados por uma coleo de tabelas, modelo de rede representa os dados por colees de registros e os relacionamentos entre dados so representados por ligaes. Ou seja um banco de dados de rede consiste em uma coleo de registros que so conectados uns aos outros por meio de ligaes. Cada registro uma coleo de campos (atributos), cada um desses campos contendo apenas um valor de dado. Uma ligao uma associao entre precisamente dos registros.

    Banco de dados Hierrquico Assim como no modelo de Redes o modelo Hierrquico trabalho com os dados e relacionamentos como uma coleo de registros relacionados por ligaes. A nica diferena entre os dois que o modelo Hierrquico os registros so organizados como colees de rvores em vez de grafos arbitrrios.

    Fases do Projeto de Base de Dados O Projeto de Base de Dados pode ser decomposto em:

    Nome Rua Cidade

    Paulo Oliveira Campinas

    Nmero Saldo

    100-01 100,00

    Cliente Conta

    Nome Rua Cidade

    Paulo Oliveira Campinas

    Cliente

    Nmero Saldo

    100-01 100,00

    Conta

  • Puc-Campinas Banco de Dados I Projeto de Banco de Dados

    Projeto Conceitual

    Independe do DBMS escolhido

    Modelo Conceitual: Linguagem usada para descrever esquemas conceituais

    Projeto Lgico

    Modelo lgico: Linguagem usada para especificar esquemas lgicos

    Pertencem a trs classes: Relacional, Redes e Hierrquico

    Projeto Fsico

    Esquema fsico: a descrio da Implementao da base de dados em memria secundria. Descreve estruturas de armazenamento e mtodos de acesso.

    Tem forte ligao com o DBMS especfico.

    Resumindo Projeto Conceitual: No tem dependncia com a classe do GBD a ser escolhido.

    Projeto Lgico: Tem dependncia com a classe, mas no com o GBD especfico.

    Projeto Fsico: Total dependncia do GBD especfico.

    Concluses

    Uma das vantagens em se trabalhar com projeto conceitual est na possibilidade de se adiar a escolha do GBD (mesmo a sua classe). O projetista deve concentrar o maior esforo nesta fase do projeto pois, a passagem para as outras fases mais ou menos automtica.

    Outra vantagem est na possibildade de usurios no especialistas em bancos de dados darem diretamente a sua contribuio no projeto conceitual cuja maior exigncia a capaciade de abstrao. A aproximao com o usurio final melhora bastante a qualidade do projeto.

    Esquema

    Conceitual

    Esquema

    Fsico

  • Puc-Campinas Banco de Dados I Projeto de Banco de Dados

    Projeto Conceitual O Projeto Conceitual produz um esquema conceitual a partir de requisitos de um mundo real.

    Projeto conceitual usa modelo de dados para descrever a realidade.

    Um modelo de dados se ampara em um conjunto de blocos de construo primitivas.

    Abstrao

    Processo que consiste em mostrar as caractersticas e propriedades essenciais de um conjunto de objetos, ou esconder as caractersticas no essenciais.

    Quando pensamos no objeto bicicleta de uma forma abstrata, normalmente esquecemos seus

    detalhes e as particularidades que as diferem entre si.

    Abstraes em Projetos Conceituais Existem 3 Tipos:

    Classificao

    Agregao

    Generalizao

    Classificao Usada para reunir objetos do mundo real com propiedades comuns, formando (ou definindo) classes.

    Classificao e Instanciao

    Classificaes Multiplas

    Agregao Usada para definir uma nova classe a partir de um conjunto de classes que representam suas partes componentes.

  • Puc-Campinas Banco de Dados I Projeto de Banco de Dados

    Agregao e Decomposio

    Generalizao Usada para definir uma classe mais genrica a partir de duas ou mais classes.

    Generalizao e Especializao

    Exemplos de Generalizao

    Exemplos Adicionais

    Cobertura da Generalizao Total / Exclusiva

    Total / No Exclusiva

  • Puc-Campinas Banco de Dados I Projeto de Banco de Dados

    Modelos de Dados

    Conceitos: Modelo e Esquema Um modelo de dados uma coleo de conceitos usados para para descrever uma dada realidade. Estes conceitos so construidos com base nos mecanismos de abstrao e so descritos atravs de representaes grficas e lingsticas.

    Um esquema uma representao de uma poro especfica da realidade usando-se um particular modelo de dados.

    Para exemplificar vamos utilizar o modelo de entidades e relacionamentos (M.E.R.) o qual veremos com maior detalhamento mais adiante)

    Modelo de Entidades e Relacionamentos

  • Puc-Campinas Banco de Dados I Projeto de Banco de Dados

    Exemplo de Esquema

    Exemplos de Instncia

    H dois tipos de modelos de dados:

    Mod. Concietuais: so ferramentas que representam a realidade num alto nvel de abstrao.

    Mod. Lgicos : suportam descries de dados que podem ser processadas (por um computador). Incluem os modelos relacional, hierrquico e rede.

    Obs: projeto de base de dados no a nica aplicao de modelos conceituais. Eles podem ser excelentes ferramentas para gesto em empresas.

    Por recomendao do comit ANSI/SPARC (metade dos anos 70) todo sistema de base de dados deveria ser organizado de acordo com 3 nveis de abstrao de dados:

    Externo: tambm chamado de viso. Descreve o ponto de vista de grupos especficos de usurios sobre a poro da base de dados que interessante preservar para aquele grupo particular.

    Conceitual: representao de alto nvel, independente da mquina, sobre toda a base de dados. Tambm chamada de Enterprise Scheme.

    Interno: descrio da implementao fsica da base de dados. Dependente da mquina.

  • Puc-Campinas Banco de Dados I Projeto de Banco de Dados

    M. E. R. - O Modelo de Entidades e Relacionamentos o mais difundido modelo de dados para projeto conceitual de base de dados. Foi introduzido por Peter Chen (1976) e posteriormente recebeu extenses.

    Elementos bsicos do modelo: Entidades e Relacionamentos

    Entidades Representam classes de objetos do mundo real.

    Exemplos: FUNCIONRIOS, ALUNOS, PROFESSORES, CIDADES, etc.

    Representao grfica da entidade Funcionrios

    Relacionamentos

    Representam agregaes de duas ou mais entidades.

    Exemplos: Nascidos em entre Funcionrios e Cidades e Vivem em tambm entre Funcionrios e Cidades.

    Representao grfica da entidade Vivem em

    O relacionamento pode conectar mais que duas entidades simultaneamente . Neste caso, chamado relacionamento mltiplo.

    Relacionamento mltiplo Reserva

    Um relacionamento pode conectar entidades de um mesmo conjunto. Neste caso temos o auto-relacionamento.

  • Puc-Campinas Banco de Dados I Projeto de Banco de Dados

    Auto-relacionamento Gerenciam

    Vamos considerar o esquema dos relacionamentos entre Funcionrios e Cidades. Para este esquema poderamos ter a seguinte instncia:

    FUNCIONRIOS = { f1, f2, f3, f4 }

    CIDADES = { c1, c2, c3 }

    VIVEM_EM = { , , , }

    NASCIDOS_EM = { , , , }

    Cardinalidades podem ser expressas atravs de valores mnimos e mximos. Por exemplo:

    MIN_CARD (FUNCIONRIOS, VIVEM_EM) = 1

    MAX_CARD (FUNCIONRIOS, VIVEM_EM) = 1

    MIN_CARD (CIDADES, VIVEM_EM) = 0

    MAX_CARD (CIDADES, VIVEM_EM) = N

    Ns declaramos atravs desta representao (lngistica) que o relacionamento Vivem em vrios para um entre Funcionrios e Cidades, atravs de Vivem em.

    A participao de Funcionrios obrigatria no relacionamento, enquanto a de Cidades opcional.

    Outra forma de declarar as cardinalidades acima seria:

    CARD (FUNCIONRIOS, VIVEM_EM) = (1,1)

    CARD (CIDADES, VIVEM_EM) = (0,n)

    Representao grfica correspondente declarao lingstica acima:

    Outra representao para o exemplo acima mostrada atravs do esquema abaixo. Esta ser a representao que normalmente seguiremos.

  • Puc-Campinas Banco de Dados I Projeto de Banco de Dados

    Existem casos prticos em que um conjunto de entidades representa elementos do mundo real que se subdividem em categorias. Esta subdiviso pode ser representada pelo particionamento do conjunto de entidades o que representa uma abstrao de generalizao (ou especializao).

    Exemplo:

    Extenses do Modelo: Agregao

  • Puc-Campinas Banco de Dados I Projeto de Banco de Dados

    Atributos

    Representam propriedades elementares de entidades ou relacionamentos.

    Exemplos:

    Tipos de Atributos

    Obs: os atributos determinantes determinam univocamente um objeto dentro de um conjunto de entidades.

    Exemplos adicionais:

  • Puc-Campinas Banco de Dados I Projeto de Banco de Dados

    Exemplo 1

    Exemplo 2

  • Puc-Campinas Banco de Dados I Projeto de Banco de Dados

    Exemplo 3

    Exemplo 4

    O relacionamento Colao relaciona pares de alunos. Cada par envolve dois alunos: um com o status de Colador e outro com o status de Colado. O relacionamento Delao envolve um aluno na condio de Delator e um par de alunos envolvidos na cola (Colador e Colado).

  • Puc-Campinas Banco de Dados I Projeto de Banco de Dados

    Transformaes e Estratgias de Projeto Primitivas: top down e bottom up

    Estratgias: top down, bottom up e mista

    Metodolgias: guiam o pr