Banco de Dados I Aula 24 Agenda • Conceitos: • Modelagem de BD ▫ Modelo Conceitual ▫ Modelo Lógico ou Realcional • Tipos de Relacionamentos • Trabalho: construção dos relacionamentos Necessidade de Modelagem • Segundo Paulo Cougo, o mundo é: “...cheio de coisas que possuem características próprias e que se relacionam entre si” • Uniformizar é necessário: ▫ Representação dos conceitos e características observados no ambiente; ▫ Ignorar particularidades de implementação. • Uso de uma ferramenta: ▫ Manutenabilidade Modelo de BD • Um modelo de (banco de dados é uma descrição dos tipos de informações que estão armazenadas em um banco de dados. Como Modelar • Para construir um modelo de dados usa-se uma linguagem de modelagem de dados. • Estas linguagens podem ser classificadas de acordo com a forma de apresentar modelos, em linguagens textuais ou linguagens gráficas. • Existem linguagens de modelagem para descrever modelos de dados em diferentes níveis de abstração e com diferentes objetivos. • Cada representação de um modelo de dados através de uma linguagem de modelagem de dados recebe a denominação de esquema de banco de dados. Objetivos da modelagem • Um banco de dados pode ser modelado (descrito) em vários níveis de abstração. • Exemplo: ▫ Um modelo de dados que servirá para explicar a um usuários leigos em informática qual é a organização de um banco de dados provavelmente não conterá detalhes sobre a representação em meio físico, das informações. Já um modelo de dados usado por um técnico para otimizar a performance de acesso ao banco de dados conterá mais detalhes de como as informações estão organizadas internamente e, portanto, será menos abstrato. Abordagem de modelagem. • Assim como é possível, construir modelos de dados em vários níveis de abstração , também, é possível usar diferentes técnicas, aplicando diferentes conceitos aos construir modelos. Ao conjunto de conceitos usados na construção de um modelo denominamos de abordagem de modelagem. Nível de Abstração Modelo Conceitual • Representa e descreve a realidade do ambiente do problema, constituindo-se em uma visão global dos principais dados e seus relacionamentos (estruturas de informação), completamente independente dos aspectos de sua implementação tecnológica. Quando falamos em modelo conceitual, estamos nos referindo aquela que deve ser a primeira etapa de um projeto de um banco de dados. Objetivo do Modelo Conceitual • O objetivo do modelo conceitual é descrever de forma simples e facilmente compreendida pelo usuário final as informações de um contexto de negócios, as quais devem ser armazenadas em um banco de dados. • É uma descrição de alto nível, mas que tem a preocupação de captar e retratar a realidade de uma organização, processo de negócio, setor, repartição, departamento, etc. Representação do Modelo Conceitual • O resultado de um modelo conceitual é um esquema gráfico que representa a realidade das informações existentes em um determinado contexto de negócios, assim como as estruturas de dados em que estão organizadas essas informações. • O modelo conceitual nunca deve ser construído com considerações sobre processos de negócios. O foco deve ser dirigido sempre ao entendimento e representação de uma realidade Modelo Lógico • Ele somente tem o seu início após a criação do modelo conceitual. A partir deste ponto vamos considerar uma das abordagens possíveis da tecnologia de SGBDs (relacional, hierárquico, rede e orientado a objetos) para a estruturação e estabelecimento da lógica dos relacionamentos existentes entre os dados definidos no modelo conceitual. Representação ML • O modelo lógico descreve em formato as estruturas que estarão no banco de dados de acordo com as possibilidades permitidas pela sua abordagem, mas sem considerar, ainda, nenhuma característica específica de SGBD. • Isso resulta em um esquema lógico de dados sob a óptica de uma das abordagens citadas, através do emprego de uma técnica de modelagem de dados orientada às restrições de cada abordagem. Modelo físico • O modelo físico será construído a partir do modelo lógico e descreve as estruturas físicas de armazenamento de dados, tais como: • Tipo e tamanho de campos; • Índices; • Domínio de preenchimento desses campos; • Nomenclaturas; • Exigência de conteúdo; • Gatilhos; etc. Modelo Físico • As estruturas físicas são projetadas de acordo com os requisitos de processamento e uso mais econômico dos recursos computacionais. Esse modelo detalha o estudo dos métodos de acesso ao SGBD para a criação dos índices necessários para cada informação colocada nos modelos conceitual e lógico. PROJETO DE BANCO DE DADOS • Modelagem Conceitual • Nesta primeira fase, é construído um modelo conceitual, na forma de um diagrama entidade-relacionamento. Este modelo independe da implementação. • Projeto Lógico • Objetiva transformar o modelo conceitual obtido na primeira fase em um modelo lógico. O modelo lógico define como o banco de dados será implementado em um SGBD específico. • Projeto Físico • Nesta etapa, o modelo de BD é enriquecido com detalhes que influenciam no desempenho do BD, mas não interferem em sua funcionalidade. Alterações neste modelo não afetam as aplicações que usam o BD. Modelo Conceitual - MER • O conceito fundamental da abordagem ER é o conceito de entidade. DER - Entidades • Em um DER, uma entidade é representada através de um retângulo que contêm o nome da entidade. Alguns exemplos são mostrados abaixo: Entidades • Uma entidade representa um conjunto de objetos da realidade modelada. Como o objetivo de um modelo ER é modelar de forma abstrata um banco de dados, interessam-nos os objetos sobre os quais deseja-se manter informações. A entidade pode representar objetos concretos da realidade (uma pessoa, um automóvel, etc) quanto objetos abstratos (um departamento, um endereço, etc). Realacionamentos • Uma das propriedades sobre as quais pode ser desejável informações é a associação entre objetos. • Exemplo: pode ser desejável saber quais pessoas estão associadas a quais departamentos em uma organização. A propriedade de entidade que específica as associações entre objetos é o relacionamento. Realacionamentos • Em um DER, um relacionamento é representado através de um losângulo, ligado por linhas aos retângulos representativos das entidades que participam do relacionamento. O exemplo abaixo, apresenta um DER contendo duas entidades, PESSOA e DEPARTAMENTO, e um relacionamento, LOTAÇÃO. No Exemplo • Este modelo expressa que o banco de dados mantém informações sobre: • • Um conjunto de objetos classificados como pessoas (entidade PESSOA); • Um conjunto de objetos classificados como departamento (entidade DEPARTAMENTO); e, • Um conjunto de associações, cada uma ligando um departamento a uma pessoa (relacionamento LOTAÇÃO). Relacionamentos Não confundir: Relação X Relacionamento Relação • O Modelo Relacional, quando descrito de forma matemática, é definido como um modelo formado por relações (no sentido matemático) entre os domínios. • Cada tupla é um elemento do conjunto relação. • Ou seja, a relação é a tabela. Relacionamento • Um relacionamento do Modelo de Entidades e Relacionamentos é uma associação entre entidades distintas. Tipos de Relacionamentos • Existem alguns tipos de relacionamentos possíveis no MER: • Um para um (1 para 1) - indica que as tabelas têm relação unívoca entre si. Você escolhe qual tabela vai receber a chave estrangeira; • Um para muitos (1 para N) - a chave primária da tabela que tem o lado 1 vai para a tabela do lado N. No lado N ela é chamada de chave estrangeira; • Muitos para muitos (N para N) - quando tabelas têm entre si relação n..n, é necessário criar uma nova tabela com as chaves primárias das tabelas envolvidas, ficando assim uma chave composta, ou seja, formada por diversos campos-chave de outras tabelas. A relação então se reduz para uma relação 1..n, sendo que o lado n ficará com a nova tabela criada. 1 para 1 • Exemplo: • Um prêmio pode ser concedido a apenas um vencedor. E cada vencedor pode receber apenas um prêmio. 1 para N • Exemplo: • Um colégio pode ter várias turmas, mas cada turma pertence apenas a esse colégio. N para N • Exemplos • Um professor tem várias turmas, e cada turma tem vários professores • Um pedido de compra pode ter várias mercadorias, e um tipo de mercadoria pode ser listada em vários pedidos. Importante • Os relacionamento 1 para 1 e 1 para N podem ser mapeados diretamente em chaves estrangeiras nas tabelas originais. • Já o relacionamento N para N exige o uso de uma tabela auxiliar. Auto-relacionamento • Não necessariamente um relacionamento associa entidades diferentes. O exemplo abaixo mostra um DER que contém, um auto-relacionamento, devido a isto, é necessário um conceito adicional, o de papel da entidade no relacionamento. Pessoa marido esposa Casamento Ferramenta Utilizada brModelo Ferramenta free (http://www.sis4.com/brModelo/) Criada para ensinar os conceitos de modelagem em banco de dados relacional. Trabalho de conclusão do curso de pós-graduação em banco de dados (UNVAG – MT e UFSC) Instalação: 1. Realizar download do arquivo “brModelo.exe” no site oficial, no menu lateral Download 2. Extrair o arquivo em uma pasta qualquer. 3. Executar o arquivo brModelo.exe. Minimundo (1) • Uma federação de futebol deseja elaborar um cadastro geral para os campeonatos que organiza. Um campeonato é composto de um ou mais jogos, porém um jogo pertence a um único campeonato. Para cada campeonato deseja-se saber: nome, ano e seus jogos. Minimundo (1) Uma federação de futebol deseja elaborar um cadastro geral para os campeonatos que organiza. Um campeonato é composto de um ou mais jogos, porém um jogo pertence a um único campeonato. Para cada campeonato deseja-se saber: nome, ano e seus jogos. Modelagem... (1) Minimundo (2) Para cada time é desejado saber: nome, cidade, número de cadastro, estádio, os times rivais (nem todo time tem um rival, mas pode ter vários), jogos (todo time participa de jogos), o número de gols que o time marcou em cada jogo, os profissionais (jogadores ou técnicos) que já trabalharam pelo time (todo time possui jogadores e técnicos que atuaram por ele) e os jogadores dos quais o clube possui o passe (um time não é obrigado a possuir passes) e um jogador pode ter passe livre. Minimundo (2) Para cada time é desejado saber: nome, cidade, número de cadastro, estádio, os times rivais (nem todo time tem um rival, mas pode ter vários), jogos (todo time participa de jogos), o número de gols que o time marcou em cada jogo, os profissionais (jogadores ou técnicos) que já trabalharam pelo time (todo time possui jogadores e técnicos que atuaram por ele) e os jogadores dos quais o clube possui o passe (um time não é obrigado a possuir passes) e um jogador pode ter passe livre. Minimundo (2) Para cada time é desejado saber: nome, cidade, número de cadastro, estádio, os times rivais (nem todo time tem um rival, mas pode ter vários), jogos (todo time participa de jogos), o número de gols que o time marcou em cada jogo, os profissionais (jogadores ou técnicos) que já trabalharam pelo time (todo time possui jogadores e técnicos que atuaram por ele) e os jogadores dos quais o clube possui o passe (um time não é obrigado a possuir passes) e um jogador pode ter passe livre. Modelagem... (2) Referências Site Oficial do brModelo: http://www.sis4.com/brModelo/ Conceitos de Modelagem http://pt.wikipedia.org/wiki/Modelo_de_Entidades_ e_Relacionamentos http://pt.wikipedia.org/wiki/Modelagem_de_dados Aulas da disciplina de Gerenciamento de Dados e Informação do Centro de Informática – UFPE http://www.cin.ufpe.br/~if685 Aulas da disciplina de Banco de Dados Bibliografia • Barbieri, Carlos. Modelagem de Dados. IBPI Press Rio de Janeiro 1994.