Projeto de Banco de Dados Modelagem de Dados Objetivo: coletar os dados do mundo real e transformar em informações que podem ser armazenadas em um SGBD. seres, objetos, fatos Mundo Real Informações informais Modelo Descritivo informações formais Modelo Conceitual dados cadeias de bits Modelo Operacional Modelo Físico Modelos de Banco de Dados Modelo de (Banco de) Dados: descrição das informações que estão armazenadas em um banco de dados. Modelos de Banco de Dados Modelo Conceitual: não contém detalhes sobre a representação em meio físico das informações; Modelo Lógico: descrição de como as informações estão organizadas internamente, visão do usuário do SGBD; e Modelo Físico: descreve os dados no nível mais baixo (interno); trata dos aspectos de implementação do SGBD. DESENVOLVIMENTO DE BANCOS DE DADOS Modelo Conceitual DESENVOLVIMENTO DE BANCOS DE DADOS Modelo Lógico Id Tipo Devastação Numbe r Varchar Varchar DESENVOLVIMENTO DE BANCOS DE DADOS Modelo Físico Modelos de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Modelo Conceitual Registra que dados podem aparecer no banco de dados, mas não registra como estes dados estão armazenados no SGBD; Existem vários técnicas de modelagem conceitual: - Abordagem Entidade-Relacionamento; e - Abordagem orientada a objetos. Modelos de Banco de Dados Diagrama Entidade-Relacionamento (DER) Modelos de Banco de Dados Modelo Lógico Modelos de Banco de Dados Modelo Lógico Também conhecido como Modelo Lógico com Base em Registros; Dependente do tipo particular de SGBD que está sendo usado; Modelos de Banco de Dados Os modelos lógicos mais conhecidos são: Modelo de Rede Modelo Hierárquico Modelo Relacional Modelo Orientado a Objetos Modelo Objeto – Relacional Orientado a Objetos TEmpregado RG nome endereço gerente salárioBase comissão salário() Objeto-Relacional TEmpregado RG nome endereço gerente salárioBase comissão salário() TEmpregado RG nome endereço gerente salárioBase comissão salário() Modelagem Exemplo: (2) Modelo descritivo: A universidade mantém o Sistema para o controle de dados dos alunos de uma universidade. (1) cadastro de seus alunos por RA, nome, endereço, fone e data de nascimento. Sobre as disciplinas que são oferecidas a universidade mantém o código, título, descrição e carga horária. O histórico de um aluno associa os alunos as disciplinas que eles cursaram em cada ano e mantém a nota e freqüência que eles obtiveram. Modelagem de Dados (3) Modelo Conceitual: MER - Modelo Entidade-Relacionamento: objetos são representados como entidades e as associações entre eles como relacionamentos. RA nome end. Alunos fone ano n Hist. freq data_nasc. nota cod n título Disciplinas descr. carga_hor Modelagem de Dados Modelo Orientado a Objetos: dados do mundo real são representados como objetos, que possuem atributos e métodos. Objetos organizados em classes ligados por associações. Exemplo usando OMT: Alunos RA nome end. fone data_nasc cadastrar atualizar end. Histórico ano freqüência nota cadastrar_Hist alterar_nota Disciplinas cod. título descr. carga_hor. cadastrar_disc Modelagem de Dados (4) Modelo Operacional: descrição de alto nível da implementação. Modelo Relacional: dados e relacionamentos representados por uma coleção de tabelas. Ocupa mais de 90 % do mercado atual. Modelagem de Dados Exemplo: alunos RA nome end fone disciplinas data cod histórico RA cod ano freq nota título descr. carga Características cada do modelo relacional: tabela tem seu nome diferente das demais na mesma base de dados cada coluna tem seu nome diferente das demais na mesma tabela colunas contém os atributos linhas contém informações de 1 entidade cada célula pode conter no máximo 1 item de dado ordem das linhas é irrelevante ordem das colunas é irrelevante nunca temos duas linhas iguais chave primária Modelagem de Dados (5) Modelo Físico: representação dos dados no meio físico. Estruturas de dados mais complexas. Representação própria de cada SGBD. Projeto de um BD Modelo Entidade-Relacionamento (ER) Técnica de modelagem de dados mais utilizada Criada em 1976 por Peter Chen Os conceitos centrais dessa abordagem são: Entidade: conjunto de objetos da realidade, modelada sobre os quais deseja-se manter informações no BD. Geralmente, uma entidade é representada como uma tabela em bancos de dados relacionais. Representadas por retângulos. Aluno Disciplina Cliente Conta Corrente Projeto de um BD Modelo Entidade-Relacionamento (ER) Os conceitos centrais dessa abordagem são: Atributo: dado que é associado a cada ocorrência de uma entidade ou de um relacionamento. Em termos relacionais, geralmente significa um campo. Representadas em eclipses Cliente Projeto de um BD Modelo Entidade-Relacionamento (ER) Relacionamento: conjunto de associações entre entidades. A Projeto de um BD Modelo Entidade-Relacionamento (ER) Relacionamento: conjunto de associações entre entidades. Cliente Aluno movimenta cursa Conta Corrente Disciplina Cardinalidade Expressa o número de entidades ao qual outra entidade pode ser associada através do relacionamento. Pode ser expressa por alguns sinais: flechas, pés de galinha, números, etc... São grafadas sobre a linha do relacionamento nas duas extremidades: Cardinalidade 1: Cardinalidade N: Cardinalidade Cardinalidade Um-para-um (1:1) 1 Estado 1 possui Capital Cardinalidade Cardinalidade Um-para-muitos (1:N) 1 Cliente N movimenta 1 Aluno Conta Corrente N cursa Disciplina Cardinalidade Cardinalidade Muitos-para-muitos (N : N) N Cliente N movimenta N Aluno Conta Corrente N cursa Disciplina Diagramas ER Nome Rua 1 Cliente Código N movimenta Cidade Conta Corrente Numero Quantia Diagramas ER Matr Nome Codigo 1 Aluno Curso N Cursa Período Disciplina Nome CargaH Projeto de um BD A transformação do projeto da abordagem ER para um BD relacional não é direta, mesmo assim, existem algumas regras que nos auxiliam nessa conversão: Entidade -> Relação Entidade -> Relação A Aluno (Numero, Nome, Morada) Criança (NumA, Nome) Prestando atenção nas cardinalidades.... As relações 1:1 ou 1:N do ER não geram tabelas mas obrigam à inclusão de novos atributos nas tabelas já existentes: Prestando atenção nas cardinalidades.... As relações 1:1 ou 1:N do ER não geram tabelas mas obrigam à inclusão de novos atributos nas tabelas já existentes: Prestando atenção nas cardinalidades.... Para cada relação N:N deve existir uma tabela própria com os atributos determinantes das entidades relacionadas que formam a sua chave primária