Processo de Projeto e
Implementação de Bancos de
Dados
Daniel Callegari
Material base gentilmente cedido pela prof.
Karin Becker
Projeto de Bancos de Dados

projetistas se apóiam pouco em metodologias
sistemáticas para conduzir o processo de projeto
da base de dados

conseqüências freqüentemente observadas




tempo e recursos são subestimados
resultado não atende às necessidades das aplicações
documentação é limitada
manutenção é uma dor de cabeça
2
Projeto de Bancos de Dados

falta a compreensão sobre a informação a ser
armazenada e manipulada



O QUÊ?
Domínio do Problema
projeto acaba sendo feito diretamente em termos de
estruturas de armazenamento


COMO?
Domínio da Solução
(“mas qual era mesmo o problema ???)
3
Projeto de Bancos de Dados

problemas do projeto feito em termos de
estruturas de armazenamento :





leva em conta as limitações da estrutura escolhida
inclui os “macetes” para obtenção de um bom desempenho e
para capacidade de representação da informação
convívio com a inadequação da estrutura escolhida
(prematuramente)
dificulta diálogo com o usuário
com o tempo, esquece-se o que é característica da “realidade”,
e o que é necessidade de implementação
4
Processo de Projeto da Base de Dados
UdD
Eliciação de Requisitos
Enunciado dos Requisitos
Modelagem Conceitual
Independente
de um SGBD
Dependente
de um SGBD
Esquema Conceitual
Mapeamento (Projeto Lógico)
Esquema Lógico
Projeto Físico
Esquema Físico
5
Processo : Eliciação de Requisitos

Eliciação de Requisitos (Requisitos dos Dados)

Entrada : Universo de Discurso (UdD)




Processo



“realidade” da organização
a informação a ser tratada com todas suas propriedades, requisitos
e restrições
“nebulosa”, sem fronteiras definidas, inexata
coleta e análise
entrevistas, documentos, formulários, observações
Resultado : Especificação de Requisitos



descrição “aproximativa”, em linguagem natural
Descrição em formatos mais estruturados (Casos de Uso)
possivelmente acompanhada de documentos e formulários
6
Processo : Modelagem Conceitual

Modelagem Conceitual

Entrada : Especificação dos Requisitos

Dependendo da formalidade da especificação



Processo

Modelagem, de acordo com um modelo conceitual


informal, dúbio, incompleto, redundante, contraditório, incoerente ...
longo, de difícil manipulação
Entidade Relacionamento, UML
Resultado : Esquema Conceitual



descrição sucinta (diagramas e texto)
clara, concisa, sem ambigüidades, sem contradições
padronizada
7
Esquema Conceitual
participação
personagem
cache
Filme
<<pk>> nome
<<pk>> data
<<unique>> copyright
duração
custo
+produzido-por
*
Ator
nomeArtisitco
nacionalidade
1..* idade
sexo
<<0-n>> tipo_papel
1..*
1..*
direção
1
+produz
1
Estudio
nome
dono
fundação
faturamento
Diretor
nome
nacionalidade
<<0-n>> premio
Obs: Notação UML da ferramenta Rational Rose
8
Processo : Projeto Lógico

Projeto Lógico


Entrada : Esquema Conceitual
Processo



mapeamento
regras mais ou menos padronizadas em função do modelo conceitual
usado e a família do SGBD alvo
Exemplo:



esquema ER para esquema relacional é standard
mapeamento esquema OO em esquema relacional tem menos consenso
Resultado : Esquema Lógico


descrição das estruturas de representação na base de dados
depende da família de SGBD alvo (relacional, OO, objeto relacional)
9
Esquema Lógico (Relacional)
T_participação
T_Ator
+ personagem : VARCHAR(1)
<<Identifying>>
+ cache : FLOAT(2147483647)
nome : VARCHAR(1)
data : TIMESTAMP WITH TIME ZONE
0..*nomeArtisitco : VARCHAR(1)
1
- nomeArtisitco : VARCHAR(1)
+ nacionalidade : VARCHAR(1)
+ idade : SMALLINT
+ sexo : CHAR(1)
+ tipo_papel : VARCHAR(1)
+ name : SMALLINT
<<PK>> + PK_T_participação7()
<<FK>> + FK_T_participação7()
<<FK>> + FK_T_participação6()
<<Index>> + TC_T_participação15()
0..*
<<Identifying>>
<<PK>> + PK_T_Ator9()
1
T_Filme
T_Estudio
- nome : SMALLINT
+ dono : SMALLINT
+ fundação : SMALLINT
+ faturamento : SMALLINT
<<PK>> + PK_T_Estudio6()
1
- nome : VARCHAR(1)
- data : TIMESTAMP WITH TIME ZONE
+ copyright : CHAR(1)
<<Non-Identifying>>
+ duração : SMALLINT
+ custo : SMALLINT
# T_Estudio_nome : SMALLINT
0..* # T_Diretor_nome : SMALLINT
<<PK>> + PK_T_Filme8()
<<FK>> + FK_T_Filme8()
<<FK>> + FK_T_Filme5()
<<Index>> + TC_T_Filme13()
<<Index>> + TC_T_Filme17()
<<Non-Identifying>>
1..*
T_Diretor
- nome : SMALLINT
+ nacionalidade : SMALLINT
1
+ premio : SMALLINT
<<PK>> + PK_T_Diretor10()
Obs: Representação gráfica de projeto relacional da ferramenta Rose (Data Modeller)
(mapeamento semi-automático)
10
Processo : Projeto Físico

Projeto Físico


Entrada: Esquema Lógico
Processo




escolha ou refinamento das estruturas de armazenamento e
métodos de acesso
leva em consideração o produto de SGBD específico
realimenta o esquema lógico
Resultado

descrição do esquema na DDL do SGBD
11
Esquema Físico (Relacional)
create table Ator (
nome_artistico varchar(60) not null,
nac char(5) not null,
idade numeric(1) not null,
sexo char(1) not null,
primary key (nome_artistico));
create table Diretor (
ID_Dir char(10) not null,
nome char(10) not null,
nacionalidade char(10) not null,
primary key (ID_Dir));
create table Estudio (
nome varchar(20) not null,
dono char(1) not null,
fundacao date not null,
• Obs: geração de código automática,
feita pela ferramenta DB-Main a
partir do projeto lógico
12
Modelagem Conceitual de Bancos de Dado


Modelagem Conceitual
Modelos Conceituais





Modelo Entidade-Relacionamento
Modelo UML (Diagrama de Classes)
Técnicas de Modelagem
Mecanismos de Abstração
Prática com Ferramentas Case
13
Modelagem Conceitual

descrição do conteúdo da base de dados, e não das
estruturas de dados usadas para representá-lo

enfoque:





compreensão e descrição da “realidade” (informação)
compreensão e seleção das propriedades relevantes da
informação
compreensão e descrição das restrições sobre os dados
diálogo com o usuário
desconsidera todo e qualquer aspecto de implementação
14
Modelagem Conceitual : Vantagens

Vantagens

facilita a compreensão da informação a ser
representada e manipulada


foca a compreensão e descrição da informação e suas
propriedades
muito do processo de projeto lógio e implementação é
automatizável
15
Modelagem Conceitual : Vantagens

Vantagens

bom veículo de comunicação entre as várias partes
envolvidas





preciso, simples, padrão
não envolve considerações de implementação
conforme e completo em relação a um modelo de referência
coerente: sem ambigüidades, sem contradições
representação diagramática que ressalta os aspectos mais
importantes
16
Modelagem Conceitual : Vantagens

Vantagens

independência de uma representação específica (produto de
SGBD específico)




a escolha do SGBD alvo pode ser postergada
o esquema conceitual “sobrevive” a mudanças de SGBD alvo
é um ponto de partida mais conveniente para novas atividades de
projeto em caso de alterações de requisitos ou do SGBD alvo
facilita integração de esquemas




manutenção
comparações
interoperabilidade
facilidade de manutenção da documentação

ferramentas de engenharia reversa
17
Modelo Conceitual

modelo conceitual (semântico)


modelos mais voltados à “realidade” a representar
(Universo do Discurso - UdD)
ferramental conceitual

conceitos





dados
relacionamentos
restrições de integridade
regras de utilização
regras de verificação
18
Qualidades de um Modelo Conceitual

expressividade


riqueza de conceitos para expressar o maior número
possível de características do UdD, sem anotações
complementares
simplicidade




fácil de aprender
fácil de compreender os esquemas resultantes
fácil de associar com o UdD representado
normalmente entra em conflito com o requisito
“expressividade”
19
Qualidades de um Modelo Conceitual

formalidade



minimalidade (ortogonalidade)


cada conceito do modelo tem uma interpretação única, precisa
e bem definida
não deve precisar de anotações complementares para
compreensão da descrição gráfica/textual
cada característica da realidade deve ter uma única forma de
representação
boa representação diagramática

não deve ser necessário recorrer à especificação textual para
compreensão do esquema representado pelo diagrama
20
Modelos Semânticos : Exemplos

Modelo Entidade-Relacionamento



UML


ER Extendido
ER Canônico
Precursores: OMT, OOAD, BOOCH, etc
Acadêmicos





Semantic Association Model
Semantic Data Model
Functional Data Model
Temporal Data Model
etc
21
Modelo Entidade-Relacionamento (ER)

Peter Chen


voltado à representação dos aspectos estáticos do UdD
(informação)


modelagem semântica dos dados
popular



“The entity-relationship model - towards a unified view of data”, ACM
TODS, 1976
simplicidade
expressividade
campeão das extensões

algumas extensões serão vistas neste curso
22
Modelo UML

OMG


voltado à representação dos aspectos estáticos, dinâmicos e
funcionais do UdD


Nesta disciplina: diagrama de classes
popular



Com esforço initial de Jackobson, Booch e Rambaugh
Padronização de mercado
complexo
Ainda não é apoiado a contento por ferramentas

Um problema a ser enfrentado por esta disciplina
23
Download

modelagem ER 0