Você está na página 1de 94

CESUMAR Centro Universitrio de Maring

Disciplina: Banco de Dados Luis Cesar de Mello lcmello@uem.br

Bibliografia

HEUSER, Carlos Alberto. Projeto de Banco de Dados. Sagra-Luzzatto, 6 ed., 2009. DATE, Christopher J.. Banco de Dados Tpicos Avanados. Campus, 1990. FURTADO,A.L.; SANTOS,C.S. Janeiro, Campus, 1987. KORTH,H.F.; SILBERSCHATZ,A. McGraw-Hill, 1993, 2.ed. Organizao de Banco de Dados, 7.ed., Rio de Sistemas de Banco de Dados, So Paulo,

SETZER,V.W. Banco de Dados: Conceitos, Modelos, Gerenciadores, Projeto Lgico, Projeto Fsico, So Paulo, Edgard Blucher, 1986. KROENKE, D.. Banco de Dados: Fundamentos, Projeto e Implementao, LTC, 1999. DATE, Christopher J.. Introduo ao Sistema de Banco de Dados. Edgard Blucher. MASRI, R; NAVATHE, B. Sistemas de Banco de Dados Fundamentos e Aplicaes, 3 ed., LTC, Rio de Janeiro: 2002.

Disciplina de Banco de Dados

Conceitos Fundamentais em Sistemas de Banco de Dados

Introduo
A

importncia da informao para a tomada de decises nas organizaes tem impulsionado o desenvolvimento de sistemas de processamento de informaes; Algumas ferramentas:

Processadores de texto (editorao eletrnica), Planilhas (clculos com tabelas de valores), Sistemas de gerenciamento de Bancos de Dados SGBDs (armazenamento de grandes volumes de dados, estruturados em registros e tabelas, com recursos para acesso e processamento das informaes).
Disciplina de Banco de Dados

ORGANIZAES BSICAS DE ARQUIVOS


KORTH, Henry F. Sistemas de banco de dados. So Paulo: Makron Books do Brasil, 1995. Cap. 10 MASRI, R; NAVATHE, B. Sistemas de Banco de Dados - Fundamentos e Aplicaes, 3ed, LTC, Rio de Janeiro: 2002. Cap. 5

Arquivo Seqencial
Os registros so dispostos ordenadamente, obedecendo seqncia determinada por uma chave primria, chamada chave de ordenao. Os registros so armazenados fisicamente na ordem da chave primria; Leitura: Os registros so lidos na ordem de classificao, ou seja, seqencialmente um a um;

Arquivo Seqencial
Insero e remoo: A insero feita no final do arquivo, e para orden-los deve-se mover os registros e reagrup-los de uma forma ordenada; A nica tcnica utilizada para atualizar um arquivo seqencial a tcnica de balance-line; Problema: difcil manter a ordem fsica seqencial conforme os registros vo sendo inseridos e apagados, j que oneroso mover muitos registros como resultado de uma nica insero ou remoo.

Arquivo Seqencial
NMERO
NOME IDADE SALRIO

1000

ADEMAR

25

5000

1050 1075 1400

AFONSO MARIA PEDRO

27 22 20

7000 5500 6000

ARQUIVO INDEXADO
Os registros so acessados sempre atravs de um ou mais ndices, no havendo qualquer compromisso com a ordem fsica de instalao dos registros.

Arquivo Indexado
NMERO 1075 1000 1400 1050 NOME MARIA ADEMAR PEDRO AFONSO IDADE 22 25 20 27 SALRIO 5500 5000 6000 7000 NR. REG. 1 2 3 4

NMERO
1000 1050 1075 1400

NMERO REG. RELATIVO 2 4 1 3

Modo de Acesso na Organizao Indexada


Seqencial - feito atravs da leitura seqencial da rea de ndices do arquivo. Para cada ocorrncia desta rea (equivalente a um ndice), ser obtido o endereo fsico do registro deste ndice na rea de dados e com este endereo lido o registro. Na recuperao seqencial de um arquivo, os dados sero lidos sempre ordenados pela chave. Leitura: Os registros so lidos na ordem de classificao, ou seja, seqencialmente um a um;

Modo de Acesso na Organizao Indexada


Aleatrio ou Randmico - Caracteriza-se por no existir uma seqncia lgica na recuperao dos registros, ou seja, aps a leitura do ltimo registro, pode ser lido o quinto ou primeiro, ou qualquer outro; No processo de leitura, o Sistema Operacional localiza o valor da chave desejada na rea de ndices, identificando o endereo do registro correspondente na rea de dados, possibilitando o acesso, por este endereo, para a recuperao do registro.

Operaes para Atualizao dos Dados na Organizao Indexada


Incluso - O Sistema Operacional localiza na rea de ndice o local onde ser armazenada a chave a ser includa, reorganizando se necessrio as demais chaves, mantendo-as sempre ordenadas. Aps este processo, ele procura na rea de dados, um endereo disponvel para armazenamento do registro. Identificado o endereo, o registro ser includo e o valor do seu endereo, atualizado na rea de ndices.

Operaes para Atualizao dos Dados na Organizao Indexada


Alterao - O Sistema Operacional localiza na rea de ndices, o valor da chave de acesso que se deseja atualizar, identificando o endereo do registro na rea de dados. Aps esta operao, ele atualiza os dados do registro no endereo correspondente.

Elementos do Arquivo
Campo ou Atributo: unidade de informao; o valor de um item pode ser um nmero inteiro, uma cadeia de caracteres, um nmero decimal ou, ainda, uma data; Registros: conjunto de atributos; Arquivo: conjunto de registros.

Conceitos
Banco

de Dados: conjunto de dados integrados que tem por objetivo atender a uma comunidade de usurios; banco de dados uma coleo lgica e coerente de dados com algum significado inerente; lista telefnica, controle do acervo de uma biblioteca, sistema de controle dos recursos humanos de uma empresa.
Disciplina de Banco de Dados

Um

Exemplos:

Sistema Gerenciador de Banco de Dados - SGBD

uma coleo de programas (software) que permite aos usurios criar e manter um banco de dados; um software com recursos especficos para facilitar a manipulao das informaes dos bancos de dados e o desenvolvimento de programas aplicativos; Exemplos: Oracle, DB2, Microsoft SQL Server, MySQL, PostgreSQL, Sybase, Interbase, etc. Existem vrios tipos de SGBDs, mas o curso se concentra em um tipo o SGBD relacional (Oracle e DB2).
Disciplina de Banco de Dados

Sistema de Banco de Dados

um sistema de manuteno de registros por computador, envolvendo quatro componentes principais:


Dados, Hardware, Software e Usurios.

Banco

de dados + SGBD.
Disciplina de Banco de Dados

Configurao de um Sistema de Banco de Dados Simplificado


SISTEMA DE BANCO DE DADOS
Usurios/Programadores Programas de Aplicaes /Consultas (Queries)

SOFTWARE SGBD

Programa para Processamento de Consultas/Programas

Software para Acesso aos Dados Armazenados

Definio dos Dados Armazenados (metadados)


Disciplina de Banco de Dados

Banco de Dados Armazenados

Sistema de Banco de Dados


Objetivos:

Isolar os usurios dos detalhes mais internos do banco de dados (abstrao de dados); Prover independncia de dados s aplicaes (estrutura fsica de armazenamento) e estratgia de acesso. Suporte para mltiplas vises dos dados; Compartilhamento de dados (controle de concorrncia); Processamento de transao multiusurios;
Disciplina de Banco de Dados

Vantagens:

Sistema de Banco de Dados vantagens

Controle de redundncia (redundncia armazenar o mesmo dado vrias vezes); Restrio de acesso no autorizado; Backup e restaurao (restaurao de falhas de hardware ou de software); Reduo do esforo humano (desenvolvimento e utilizao); Rapidez na manipulao e no acesso informao.

Disciplina de Banco de Dados

Esquemas e Estados do Banco de Dados

Esquema (do banco de dados): descrio do banco de dados (definido durante o projeto do banco de dados espera-se que no seja alterado freqentemente); Estado do banco de dados (snapshot): so os dados do banco de dados em um determinado momento (os dados no banco de dados podem ser alterados freqentemente); O SGBD parcialmente responsvel por assegurar que cada estado do banco de dados seja um estado vlido, isto , um estado que satisfaz a estrutura e as restries definidas no esquema.
Disciplina de Banco de Dados

Arquitetura de trs-esquemas
Objetivo:

separar o usurio da aplicao do banco de dados fsico; Nessa arquitetura, os esquemas podem ser definidos por trs nveis:

Nvel interno (esquema interno) Nvel conceitual (esquema conceitual) Nvel externo ou viso (view) (esquemas externos ou vises de usurios)

Disciplina de Banco de Dados

Arquitetura de trs-esquemas
USURIOS FINAIS

NVEL EXTERNO
Mapeamento externo/conceitual

VISO EXTERNA

VISO EXTERNA

NVEL CONCEITUAL
Mapeamento conceitual/interno

ESQUEMA CONCEITUAL

NVEL INTERNO

ESQUEMA INTERNO

BANCO DE DADOS ARMAZENADO


Disciplina de Banco de Dados

Arquitetura de trs-esquemas
Nvel

interno (esquema interno):

Nvel mais baixo de abstrao; Descreve a estrutura de armazenamento fsico do banco de dados; Utiliza um modelo de dado fsico e descreve os detalhes completos do armazenamento de dados e caminhos de acesso ao banco de dados; No trataremos deste nvel nesta disciplina.

Disciplina de Banco de Dados

Arquitetura de trs-esquemas
Nvel

conceitual (esquema conceitual):

Descreve quais dados esto armazenados e seus relacionamentos; Neste nvel, o banco de dados descrito atravs de estruturas relativamente simples, que podem envolver estruturas complexas no nvel fsico; Se concentra na descrio de entidades, tipos de dados, conexes, operaes de usurios e restries.

Disciplina de Banco de Dados

Arquitetura de trs-esquemas
Nvel

externo ou viso view (esquemas externos):


Descreve partes do banco de dados, de acordo com as necessidades de cada usurio, individualmente.

Disciplina de Banco de Dados

Independncia de Dados
Capacidade

de mudar o esquema em um nvel do sistema de banco de dados sem que ocorram alteraes do esquema no prximo nvel mais alto; Independncia de dados lgica: capacidade de alterar o esquema conceitual sem mudar o esquema externo ou os programas; Independncia fsica de dados: capacidade de mudar o esquema interno sem ter de alterar o esquema conceitual.
Disciplina de Banco de Dados

Questes de Reviso (utilizar a Internet para


responder as questes, caso necessrio)

1. 2.

3. 4.

5.

Qual a diferena entre um esquema de banco de dados e um estado de banco de dados? Enumere as principais diferenas entre o desenvolvimento de software com arquivos convencionais e o desenvolvimento de software com SGBD. Quais as vantagens e desvantagens da utilizao de um SGBD? Quais as ocupaes (tarefas de pessoas) relacionadas com a manuteno do funcionamento dos bancos de dados e suas atribuies? Discuta alguns tipos de funcionalidades de banco de dados, ferramentas e suas funes.
Disciplina de Banco de Dados

Modelos de Banco de Dados

Modelos de Banco de Dados

uma descrio dos tipos de informaes que esto armazenadas em um banco de dados; para um sistema de vendas, o modelo de dados poderia informar que o banco de dados armazena informaes sobre produtos e que, para cada produto, so armazenados seu cdigo, preo e descrio.
Disciplina de Banco de Dados

Exemplo:

Modelos de Banco de Dados


Linguagem

de modelagem de dados: serve para construir um modelo de dados e podem ser classificadas em:

Linguagens textuais Linguagens grficas.

Cada

representao de um modelo de dados atravs de uma linguagem de modelagem um esquema de banco de dados; No projeto de banco de dados, podemos considerar o MODELO CONCEITUAL e o MODELO LGICO.
Disciplina de Banco de Dados

Modelo Conceitual

uma descrio do banco de dados de forma independente de implementao em um SGBD; Descreve a estrutura de um banco de dados de forma independente de um SGBD particular; Abordagem Entidade-Relacionamento (ER) tcnica de modelagem conceitual mais difundida; Nesta tcnica, um modelo conceitual representado atravs de um Diagrama de EntidadeRelacionamento.
Disciplina de Banco de Dados

Exemplo de Modelo Conceitual


preo

Produto

Tipo de produto
descrio cdigo

descrio cdigo

Disciplina de Banco de Dados

Modelo Lgico

Modelo de dados que representa a estrutura de dados de um banco de dados conforme vista pelo usurio do SGBD; dependente do tipo particular de SGBD que est sendo usado; No curso trataremos apenas modelos lgicos referentes a SGBD relacional; Em um SGBD relacional, os dados so organizados na forma de tabelas, portanto, o modelo lgico de um BD relacional deve definir quais as tabelas que o banco contm e, para cada tabela, quais os nomes das colunas.
Disciplina de Banco de Dados

Modelo Lgico
Exemplo

de tabelas de BD relacional:
TipoDeProduto CodTipoProd DescrTipoProd 1 Computador 2 Impressora

Produto CodProd DescrProd PrecoProd 2.500,00 3.500,00 500,00 1.500,00 CodTipoProd 1 1 2 2 1 PC desktop modelo X 2 PC notebook ABC 3 Impressora jato de tinta XX 4 Impressora laser XX

Disciplina de Banco de Dados

Modelo Lgico
Modelo

Lgico para o BD definido anteriormente:


TipoDeProduto (CodTipoProd, DescrTipoProd) Produto (CodProd, DescrProd, PrecoProd, CodTipoProd)
CodTipoProd referencia TipoDeProduto

Disciplina de Banco de Dados

Projeto de Banco de Dados


O projeto de um novo banco de dados d-se em 3 fases: Modelagem Conceitual: nesta primeira fase construdo um modelo conceitual, na forma de um diagrama de entidade-relacionamento. Projeto Lgico: transforma o modelo conceitual em um modelo lgico. Esse modelo lgico define como o banco de dados ser implementado em um SGBD especfico. Projeto Fsico: corresponde organizao interna do armazenamento dos dados pelo SGBD e definio de estruturas de dados auxiliares visando uma maior eficincia na recuperao e manipulao dos dados.
Disciplina de Banco de Dados

Projeto de Banco de Dados


IMPORTANTE

somente possvel construir o modelo conceitual aps todos os requisitos terem sido levantados e analisados, ou seja, aps o conhecimento de todas as expectativas dos usurios. Este processo chamado de Levantamento e Anlise de Requisitos.

Disciplina de Banco de Dados

Projeto de Banco de Dados


Viso externa 1 requisitos

Mundo real

Viso externa n requisitos

Modelo conceitual
Esquema conceitual

Independente do SGBD Dependente do SGBD

Modelo lgico
Esquema lgico

Modelo fsico
Esquema fsico

Disciplina de Banco de Dados

Abordagem EntidadeRelacionamento

Abordagem Entidade-Relacionamento
1

etapa do projeto de um banco de dados construo do modelo conceitual (modelagem conceitual); Objetivo: obter uma descrio abstrata, independente de implementao em computador, dos dados que sero armazenados no banco de dados; Tcnica de modelagem de dados mais difundida Abordagem entidaderelacionamento.
Disciplina de Banco de Dados

Abordagem Entidade-Relacionamento
O

modelo de dados representado atravs de um modelo entidade-relacionamento (modelo ER MER); Um modelo ER representado graficamente atravs de um diagrama de entidaderelacionamento (DER); Notao grfica que ser utilizada: a definida por Peter Chen (1976); Mesmo as tcnicas de modelagem orientada a objetos, como a UML, baseiam-se nos conceitos da abordagem ER.
Disciplina de Banco de Dados

Entidade

o objeto bsico que a abordagem ER representa, algo do mundo real, com uma existncia independente; Uma entidade pode ser um objeto com uma existncia fsica (uma pessoa, um carro, uma casa) ou um objeto com uma existncia conceitual (um departamento, um trabalho, um curso).

PESSOA

DEPARTAMENTO

Disciplina de Banco de Dados

Atributo

Cada entidade tem atributos propriedades particulares que a descrevem; Cada atributo de uma entidade possui um nome e um valor especfico para a entidade; Exemplo: uma entidade pessoa pode ser descrita pelo nome da pessoa, data de nascimento, endereo, telefone. PESSOA
nome endereo telefone
Disciplina de Banco de Dados

Atributo
Utilizaremos

uma representao textual para os atributos, j que a maioria das entidades possuem vrios atributos (isso sobrecarregaria o diagrama); Domnio do atributo: conjunto de valores que um determinado atributo pode assumir (normalmente no mostrado no diagrama ER).

Disciplina de Banco de Dados

Identificador de entidade

Conjunto de um ou mais atributos e relacionamentos cujos valores servem para distinguir uma ocorrncia da entidade das demais ocorrncias da mesma entidade; Cada entidade deve possuir um identificador;
preo

Produto
descrio cdigo

Cdigo o atributo identificador de Produto(identificador simples)

Disciplina de Banco de Dados

Identificador de entidade
capacidade PRATELEIRA nmero do corredor nmero da prateleira

Neste caso, temos o exemplo de um identificador composto, ou seja, para identificar uma prateleira, necessrio conhecer seu nmero e o nmero do corredor em que se encontra.

Disciplina de Banco de Dados

Relacionamento

Conjunto de associaes entre ocorrncias (instncias) de entidades;


LOTAO PESSOA

DEPARTAMENTO

Esse modelo expressa que o BD mantm informaes sobre:

Um conjunto de objetos classificados como pessoas (entidade PESSOA); Um conjunto de objetos classificados como departamentos (entidade DEPARTAMENTO); Um conjunto de associaes, cada uma ligando um departamento a uma pessoa (relacionamento LOTAO).
Disciplina de Banco de Dados

Auto-Relacionamento

um relacionamento entre ocorrncias da mesma entidade; Neste caso, necessrio acrescentar um conceito adicional, o de papel da entidade no relacionamento. Uma ocorrncia de pessoa exerce o papel PESSOA de marido e a outra ocorrncia de pessoa exerce o papel de marido esposa esposa. CASAMENTO

Disciplina de Banco de Dados

Cardinalidade de Relacionamentos
Indica

quantas ocorrncias de uma entidade podem estar associadas a uma determinada ocorrncia atravs do relacionamento;

duas cardinalidades a considerar:

Cardinalidade mxima Cardinalidade mnima

Disciplina de Banco de Dados

Cardinalidade Mxima

Cardinalidade mxima 1: quando o nmero mximo de ocorrncias da entidade no pode passar de 1; Cardinalidade mxima Muitos: quando o nmero mximo varivel, representa-se pela letra N; A cardinalidade mxima pode ser usada para classificar relacionamentos binrios; Relacionamento Binrio: aquele cujas ocorrncias contm duas ocorrncias de entidade; Classificao dos relacionamentos binrios:

1:N 1:1 N:N


Disciplina de Banco de Dados

Representao Grfica da Cardinalidade Mxima 1:N


Expressa que a ocorrncia de EMPREGADO (entidade do lado oposto da anotao) pode estar associada a no mximo Uma (1) ocorrncia de DEPARTAMENTO

DEPARTAMENTO

LOTAO

EMPREGADO

Expressa que a uma ocorrncia de DEPARTAMENTO (entidade do lado oposto da anotao) podem estar associadas muitas (N) ocorrncias de EMPREGADO

Disciplina de Banco de Dados

Representao Grfica da Cardinalidade Mxima 1:1


PESSOA

1 marido

1 esposa

CASAMENTO

Neste exemplo, as cardinalidades mximas expressam que uma pessoa pode assumir no mximo um marido e que uma pessoa pode assumir no mximo uma esposa.

Disciplina de Banco de Dados

Representao Grfica da Cardinalidade Mxima 1:1


PESSOA

1 marido

1 esposa

CASAMENTO

Ser que este mesmo um relacionamento binrio??? Mesmo envolvendo somente uma entidade??? O que vocs acham???
Disciplina de Banco de Dados

Representao Grfica da Cardinalidade Mxima 1:1


Resposta:

um relacionamento binrio sim. Sabem por qu? O que determina o fato de o relacionamento ser binrio o nmero de ocorrncias de entidade que participam de cada ocorrncia do relacionamento; Ou seja, De cada ocorrncia de CASAMENTO, participam exatamente duas ocorrncias da entidade PESSOA (um marido e uma esposa).
Disciplina de Banco de Dados

Representao Grfica da Cardinalidade Mxima N:N

ENGENHEIRO

ATUAO

PROJETO

PACIENTE

CONSULTA

MDICO

Disciplina de Banco de Dados

Representao Grfica da Cardinalidade Mxima N:N


ENGENHEIRO

ATUAO

PROJETO

ENTIDADE ASSOCIATIVA

PACIENTE

CONSULTA

MDICO

Disciplina de Banco de Dados

Relacionamento Ternrio
CIDADE DISTRIBUIDOR

DISTRIBUIO

PRODUTO

Cada ocorrncia do relacionamento DISTRIBUIO associa trs ocorrncias de entidade:


um produto a ser distribudo, uma cidade na qual feita a distribuio, e um distribuidor.


Disciplina de Banco de Dados

Relacionamento Ternrio
CIDADE DISTRIBUIDOR

DISTRIBUIO

N PRODUTO

A cardinalidade 1 refere-se a um par cidade e produto

Em relacionamento ternrio, a cardinalidade refere-se a pares de entidade. Em um relacionamento R entre trs entidades A, B e C, a cardinalidade mxima de A e B dentro de R indica quantas ocorrncias de C podem estar associadas a um par de ocorrncias de A e B.
Disciplina de Banco de Dados

Cardinalidade Mnima
Cardinalidade

mnima 1: quando o nmero mnimo de ocorrncias da entidade no pode passar de 1 (associao obrigatria);

Cardinalidade

mnima 0: quando o nmero mnimo pode ser 0 (associao opcional).

Disciplina de Banco de Dados

Cardinalidade Mnima - exemplo

EMPREGADO

(0,1)

ALOCAO

(1,1)

MESA

A leitura desse diagrama feita da seguinte forma: Cada empregado deve ter a ele alocada obrigatoriamente uma mesa (cardinalidade mnima 1) E que uma mesa pode existir sem que a ela esteja alocado um empregado (cardinalidade mnima 0).
Disciplina de Banco de Dados

Generalizao / Especializao

Atravs deste conceito possvel atribuir propriedades particulares a um subconjunto das ocorrncias (especializaes) de uma entidade genrica; No DER, o smbolo para representar a generalizao/especializao um tringulo issceles; Associado a este conceito est a idia de herana de propriedades. Herdar propriedades significa que cada ocorrncia da entidade especializada possui, alm de suas propriedades, tambm as propriedades da ocorrncia da entidade genrica.
Disciplina de Banco de Dados

Generalizao / Especializao
FILIAL
(1,1) (0,N)

CLIENTE

nome cdigo

PESSOA FSICA
CPF sexo

PESSOA JURDICA
CNPJ Data fundao

Neste exemplo, a entidade CLIENTE dividida em dois subconjuntos, as entidades PESSOA FSICA e PESSOA JURDICA, cada uma com propriedades prprias; Entidade genrica: CLIENTE Entidades especializadas: PESSOA FSICA e PESSOA JURDICA.
Disciplina de Banco de Dados

Generalizao / Especializao
FILIAL
(1,1) (0,N)

CLIENTE

nome cdigo

PESSOA FSICA
CPF sexo

PESSOA JURDICA
CNPJ Data fundao

Quais so os atributos da entidade PESSOA FSICA? Podemos dizer que PESSOA JURDICA est relacionada com FILIAL?
Disciplina de Banco de Dados

Agregao

Uma limitao do modelo ER que no possvel expressar relacionamentos entre relacionamentos;


MDICO
N

CONSULTA

PACIENTE

PRESCRIO

MEDICAMENTO
Disciplina de Banco de Dados

Agregao

Agregao uma abstrao atravs da qual relacionamentos so tratados como entidades de nvel superior.
MDICO
N

CONSULTA
N PRESCRIO N

PACIENTE

MEDICAMENTO
Disciplina de Banco de Dados

Agregao

Outra forma de representar a agregao:

MDICO

CONSULTA
N PRESCRIO N

PACIENTE

MEDICAMENTO
Disciplina de Banco de Dados

Agregao

possvel no utilizar a agregao??? O que vocs acham??? Ou seja, possvel resolver esse problema de outra forma??? Para cada consulta necessrio saber os medicamentos que foram prescritos, sendo que podem ser prescritos vrios medicamentos em uma consulta.
Disciplina de Banco de Dados

Agregao

SIM, possvel no utilizar a agregao. Para isto, basta representar o relacionamento CONSULTA (entidade associativa) como uma entidade. Assim:
MDICO
1 N

CONSULTA N
N PRESCRIO N

PACIENTE

MEDICAMENTO

Disciplina de Banco de Dados

Agregao

SIM, possvel no utilizar a agregao. Para isto, basta representar o relacionamento CONSULTA (entidade associativa) como uma entidade. Assim:
MDICO
1 N

CONSULTA N
N PRESCRIO N

PACIENTE

MEDICAMENTO

Disciplina de Banco de Dados

Identificando Construes e Validaes em Sistemas de Banco de Dados

Identificando Construes
A construo da abordagem ER (entidade, relacionamento, atributo, ...) no deve ser feita observando isoladamente o objeto. necessrio conhecer o contexto, isto , o modelo dentro do qual o objeto aparece. O prprio desenvolvimento do modelo e o aprendizado sobre a realidade iro refinando o modelo.

Disciplina de Banco de Dados

Identificando Construes
Atributos versus entidade relacionada:
Implementar um objeto como sendo um atributo? Implementar um objeto como sendo uma entidade relacionada?
Nmero do Chassi Automvel cor
Disciplina de Banco de Dados

Nmero do Chassi Automvel Cor

Identificando Construes
Alguns critrios para esta deciso:
O objeto em discusso esteja vinculado a outros objetos (atributos, relacionamentos, entidades genricas ou especializadas), o objeto deve ser modelo como entidade, caso contrrio, o objeto pode ser modelado como atributo. O objeto apresenta valores fixos durante toda a vida do sistema, ele pode ser modelado como atributo.

Disciplina de Banco de Dados

Identificando Construes
Atributo versus generalizao/especializao
Outro conflito de cunho prtico entre modelar um determinado objeto como atributo ou como uma especializao. Ex: a categoria funcional de um empregado de uma empresa, como atributo da entidade empregado ou como uma especializao da entidade empregado.

Disciplina de Banco de Dados

Identificando Construes
Nome Nome Cdigo Empregado Empregado Categoria Funcional Motorista Nmero da carteira de habilitao
Disciplina de Banco de Dados

Cdigo

Engenheiro

Crea

Identificando Construes
Atributos opcionais
Geralmente utilizados em entidades que seriam modeladas mais corretamente atravs de especializaes.
Nome Cdigo Nmero da Carteira de Habilitao (0,1) CRM (0,1)
Disciplina de Banco de Dados

Empregado CREA (0,1)

Identificando Construes
Atributos multivalorados
Podem ser representados em diagramas ER como mostra abaixo:
Empregado Nome Lanamento Pagamento (0,N) Dependente (0,N)

Disciplina de Banco de Dados

Identificando Construes
Atributos multivalorados
Entretanto atributos multivalorados so considerados indesejveis por muitos autores pelas seguintes razes:
No existe estrutura como os arrays em um SGBD. Em bancos com essas caractersticas aconselhvel usar apenas atributos monovalorados. Podem induzir a um erro de modelagem, que de ocultar entidades e relacionamentos em atributos multivalorados.

Disciplina de Banco de Dados

Verificao do Modelo
Modelo deve ser correto quando:
No contm erros de modelagem, tais como:
Erros sintticos: ocorrem quando o modelo no respeita as regras de construo de um modelo ER. Ex: (relacionar atributos com atributos, relacionar relacionamento com outro relacionamento, especializar um relacionamento). Erros semnticos: apesar de obedecer as regras de construo de modelos ER reflete a realidade de forma inconsistente. Ex: (Associar a uma entidade um atributo que na verdade de outra entidade. Usar uma entidade do modelo como atributo de outra entidade. Usar o nmero incorreto de entidades em um relacionamento).

Disciplina de Banco de Dados

Verificao do Modelo
Modelo deve ser completo:
Deve ser verificado por algum que conhece profundamente o sistema a ser implementado: Uma forma de verificar se o modelo completo verificar se todos os dados que devem ser obtidos do banco esto presentes e se todas as transaes de modificao do banco de dados podem ser executados sobre o modelo.

Disciplina de Banco de Dados

Verificao do Modelo
Modelo deve ser livre de redundncias:
No deve conter conceitos redundantes como:
Relacionamentos redundantes.

Fbrica 1

Departamento

Empregado n

Mquina n relacionamento redundante


Disciplina de Banco de Dados

Trabalha

Verificao do Modelo
Modelo deve refletir o aspecto temporal:
Certas aplicaes exigem que o BD guarde o histrico de alteraes de informaes.
Ex: Em uma seguradora, pode ser necessrio conhecer no s o segurado atual da aplice, mas tambm os do passado.

Atributos cujos valores modificam ao longo do tempo


Ex: Endereo de um cliente pode ser modificado ao longo do tempo e por questes legais deve ser mantido os endereos antigos.

Disciplina de Banco de Dados

Verificao do Modelo
Modelo deve refletir o aspecto temporal:
Relacionamentos que modificam ao longo do tempo
Neste caso pode ser requerido que o banco de dados mantenha um registro histrico das alteraes.

Nome

N Doc Lotao Lotao 1 Departamento N Doc Lotao Lotao mDepartamento data

Empregado n Nome Empregado n

Disciplina de Banco de Dados

Estratgias de Modelagem
Construo de modelos um processo incremental, ou seja, um modelo no construdo em um nico passo, mas em pequenos passos. Gradativamente o modelo vai sendo enriquecido com novos conceitos e estes vo sendo ligados aos existentes ou os existentes vo sendo aperfeioados.

Disciplina de Banco de Dados

Estratgias de Modelagem
Existem diferentes estratgias. Para definir qual a melhor deve-se identificar qual a fonte de informaes principal para o processo de modelagem. So duas as fontes de informao:
Partindo de descries de dados existentes. Partindo do conhecimento de pessoas.

Disciplina de Banco de Dados

Estratgias de Modelagem
Descries de dados existentes: Isso ocorre quando deseja-se obter um modelo de dados para um sistema em computador existente. Neste caso usa-se como descrio dos dados as descries dos arquivos utilizados pelo sistema em computador. Este caso conhecido como Engenharia Reversa. Outro exemplo quando so utilizadas descries dos documentos usados em sistemas no automatizados.

Disciplina de Banco de Dados

Estratgias de Modelagem
Conhecimento de Pessoas: Isso ocorre quando deseja-se obter um modelo de dados a partir de conhecimento de pessoas possuem sobre o sistema sendo modelado. Este o caso, quando novos sistemas, para os quais no existem descries de dados. Para este caso, podem ser aplicadas duas estratgias:
Top-down Inside-out

Disciplina de Banco de Dados

Estratgias de Modelagem
Top-down: Parte de conceitos mais abstratos e ir gradativamente refinando estes conceitos em conceitos mais detalhados.
Inicia-se com a identificao de entidades mais genricas A partir da, so definidos os atributos das entidades, seus relacionamentos, os atributos dos relacionamentos, e as especializaes das entidades;

Disciplina de Banco de Dados

Estratgias de Modelagem
Passos para obter a estratgia Top-down:
Modelagem superficial: construdo um DER pouco detalhado:
Enumerao das entidades; Identificao dos relacionamentos; Para cada relacionamento identifica-se as cardinalidades mximas; Determinao de atributos de entidades e relacionamentos; Determinao de identificadores de entidades e relacionamentos; O BD verificado quanto ao aspecto temporal;

Disciplina de Banco de Dados

Estratgias de Modelagem
Passos para obter a estratgia Top-down:
Modelagem detalhada: Completa-se o modelo com os domnios dos atributos e cardinalidades mnimas dos relacionamentos:
Adiciona-se os domnios dos atributos; Para cada relacionamento identifica-se as cardinalidades mnimas; Define-se as restries de integridade que no podem ser representadas pelo DER;

Disciplina de Banco de Dados

Estratgias de Modelagem
Passos para obter a estratgia Top-down:
Validao do Modelo:
Procura-se construes redundantes ou derivveis a partir de outras no modelo; Valida-se o modelo com o usurio;

Em qualquer desses passos possvel retornar a passos anteriores;

Disciplina de Banco de Dados

Estratgias de Modelagem
Inside-out: Parte de conceitos considerados mais importantes (centrais, dentro) e ir adicionando gradativamente conceitos perifricos a eles relacionados (ir para fora); Inicia-se identificando uma entidade considerada importante para o modelo, e que supe-se, estar relacionada as demais entidades; A partir da, so procurados atributos, entidades relacionadas, generalizaes, especializaes da entidade em foco, at obter-se o modelo completo.
Disciplina de Banco de Dados

Você também pode gostar