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