Prévia do material em texto
MODELAGEM E IMPLEMENTAÇÃO DE BANCO DE DADOS COM SQL Alfredo Boente alfredo.boente@uva.br APRESENTAÇÃO PROFESSOR X ALUNO Currículo 2022/23 TRIMESTRAL Apresentação do Professor Flavio Viola email: flavio.viola@uva.br ✓ Doutorado em Engenharia Mecânica (COPPE/UFRJ); ✓ Mestrado (UFF) e Graduação em Ciência da Computação (FIAA); ✓ Especialização em Análise e Projeto de Desenvolvimento de Sistemas (PUC-RJ). EMENTA DA DISCIPLINA EMENTA: Unidade 1: - Modelos de Banco de Dados. Unidade 2: - Mapeamento do Modelo E-R para o Modelo Relacional. Unidade 3: - Projeto de Banco de Dados. Unidade 4: - Linguagem de Consulta Estruturada. COMPETÊNCIAS E HABILIDADES OBJETIVO DA DISCIPLINA COMPETÊNCIAS E HABILIDADES: As competências gerais desenvolvidas ao longo do curso envolvem: a capacidade de realizar projetos de banco de dados implementáveis com SQL e a habilidade de reconhecer as necessidades básicas de banco de dados de um projeto. OBJETIVO DA DISCIPLINA: Ao final da disciplina o aluno deverá ser capaz de identificar os princípios de bancos de dados e bancos de dados relacionais. OBJETIVOS ESPECÍFICOS: - Reconhecer as técnicas de modelagem conceitual e modelagem lógica. - Desenvolver o Modelo E-R. - Construir um projeto físico de banco de dados, abordando todas as etapas e componentes do projeto físico, da construção das tabelas e índices à definição das questões de segurança. - Desenvolver códigos SQL visando o uso em aplicações de desenvolvimento de software. REFERÊNCIAS BIBLIOGRÁFICAS BIBLIOGRAFIA RECOMENDADA: BIBLIOGRAFIA RECOMENDADA: Referências Bibliográficas Básicas 1. SILBERSCHATZ, Abraham; KORTH, Henry F. e SUDARSHAN, S. Sistemas de Banco de Dados. 6. ed. Rio de Janeiro: Elsevier, 2012. 2. DATE, C. J. Introdução a Sistemas de Bancos de Dados. 8. ed. Rio de Janeiro: Campus, 2004. 3. ELMASRI, Rames; NAVATHE, Shamkant B. Sistemas de Banco de Dados. 6. ed. Pearson, 2011. 4. CARDOSO, Virgínia; CARDOSO, Giselle. Linguagem SQL: fundamentos e práticas. São Paulo: Saraiva, 2013. ISBN: 9788502200456. 5. FERREIRA Baptista, Luciana. Linguagem SQL: guia prático. São Paulo: Érica, 2013. ISBN: 9788536503738. BIBLIOGRAFIA RECOMENDADA: Referências Bibliográficas Complementares 1. MACHADO, Felipe N. R., ABREU, Maurício P. Projeto de Banco de Dados - Uma visão prática. 12 ed. São Paulo: Érica, 2004. 2. COUGO, Paulo. Modelagem Conceitual e Projeto de Banco de Dados. 11 ed. Rio de Janeiro: Campus, 1997. 3. HEUSER, Carlos Alberto. Projeto de Banco de Dados. 6. ed. Bookman, 2009. 4. OLIVEIRA, Celso Henrique Poderoso de. SQL: Curso Prático. São Paulo: Novatec, 2002. 5. WATSON, Richard T. Data Management – Bancos de Dados e Organizações. 3. ed. São Paulo: LTC, 2004. 6. BEIGHLEY, Lynn. Use a cabeça: SQL. Rio de Janeiro: Alta Books, 2010. ISBN: 9788576082101. PLANEJAMENTO DAS AULAS PLANEJAMENTO DAS AULAS: CRITÉRIOS DE AVALIAÇÃO E APROVAÇÃO CRITÉRIOS DE AVALIAÇÃO: A4: Atividade Avaliativa .............................. 10,0 CRITÉRIOS DE APROVAÇÃO: A4 ≥ 6,0 e mínimo de 75% de presença Então, o aluno estará APROVADO Observação: Não existe 2ª chamada para a Atividade Avaliativa (A4) Aula 01 Sistema Gerenciador de Banco de Dados Modelo Conceitual de Dados Sistema Gerenciador de BD Introdução De acordo com (Date, 2012), um banco de dados é uma coleção organizada de dados estruturados, normalmente armazenados eletronicamente em um sistema de computador. Um banco de dados é geralmente controlado por um, Sistema Gerenciador de Banco de Dados. Então, os dados e o SGBD, juntamente com os aplicativos associados a eles, são chamados de sistema de banco de dados, geralmente abreviados para apenas banco de dados. Sistema Gerenciador de BD Introdução Todas as empresas precisam gerenciar de forma assertiva seus dados, os dados de seus clientes, os dados de seus produtos etc. As empresas, hoje conectadas com todo o mundo, estão conectadas e manipulam base de dados universal, ou seja, banco de dados que obedeçam os padrões estabelecidos pela SQL – Structure Query Language, pois o mundo é relacional. Sistema Gerenciador de BD Introdução Os dados nos tipos mais comuns de bancos de dados em operação atualmente são modelados em linhas e colunas em uma série de tabelas para tornar o processamento e a consulta de dados eficientes, a partir de base de dados universal. Sistema Gerenciador de BD SGBD Relacional De acordo com (Navathe, 2005), podemos definir um banco de dados como um conjunto de dados que se relacionam. Sistema Gerenciador de BD SGBD Relacional Porém, o significado do termo é mais restrito do que esta definição. Um banco de dados, necessariamente, possui as seguintes propriedades: • um banco de dados é uma coleção lógica de dados com um significado inerente; • uma disposição desordenada de dados não pode ser um BD; • um banco de dados é projetado, construído e populado com dados para um propósito específico; Sistema Gerenciador de BD SGBD Relacional • um banco de dados possui um conjunto pré-definido de usuários e aplicações; • um banco de dados representa algum aspecto do mundo real, o qual é chamado de “minimundo” e qualquer alteração efetuada neste minimundo é automaticamente refletida no banco de dados. Sistema Gerenciador de BD SGBD Relacional Um banco de dados é criado e mantido por um conjunto de aplicações desenvolvidas especialmente para esta tarefa denominado “Sistema Gerenciador de Banco de Dados” (SGBD). Sistema Gerenciador de BD SGBD Relacional Um SGBD é uma coleção de programas que permite a seus usuários criar e manipular bancos de dados. O conjunto formado por um BD e pelos programas que o manipulam é chamado de SGBD. Sistema Gerenciador de BD SGBD Relacional O SGBD não mantém somente os dados, mas, também, a forma como os mesmos são armazenados, através de uma descrição completa dos dados armazenados. Estas informações são armazenadas no catálogo ou dicionário de dados do SGBD, que contém informações como a estrutura de cada arquivo, o tipo e o formato de armazenamento de cada tipo de dado, restrições etc. As informações guardadas neste catálogo são ditas metadados. Sistema Gerenciador de BD Sistema Gerenciador de Arquivos A melhor maneira de entender a natureza geral e as características dos bancos de dados de hoje, é olhar para as características dos sistemas que antecederam o uso da tecnologia de banco de dados: os Sistemas de Gerenciamento de Arquivos. Cada usuário define e implementa os arquivos necessários para uma aplicação específica, acarretando repetição dos dados e gerando inconsistência nas informações. Sistema Gerenciador de BD Sistema Gerenciador de Arquivos Por exemplo: Não existem garantias que a alteração do salário de um funcionário específico seja efetuada para os arquivos nos dois. Se esta atualização não seja efetivada para os dois sistemas, em algum deles, as informações geradas com base neste dado, serão inconsistentes. Não refletirão a realidade do negócio. Sistema Gerenciador de BD Sistema Gerenciador de Arquivos O acesso aos dados está escrito nos programas que o manipulam, subordinando os programas aos arquivos. Isto significa que qualquer alteração na estrutura dos arquivos acarretará alterações em todos os programas que o acessam. Estas alterações sempre envolvem muito tempo e dinheiro. Sistema Gerenciador de BD Sistema Gerenciador de Arquivos A manipulação dos dados contidos nos arquivos pelas aplicações específicas dificulta o desenvolvimento de novos sistemas e torna a manutenção dos aplicativos difícil e cara. O sistema possibilita uma redundância não controlada de dados e inconsistência ao permitir que em um sistema um dado seja alterado e esse mesmo dado não seja alterado em outro. A responsabilidade sobre os procedimentos de backupe recuperação, está a cargo da aplicação. Sistema Gerenciador de BD Sistema Gerenciador de Arquivos Dessa forma, não podem ser automatizadas e, caso o responsável pela aplicação não efetue estes backups sistematicamente, podem ocorrem perda de dados. Sistema Gerenciador de BD Sistema Gerenciador de BD Um arquivo (tabela) é definido uma única vez e atende a várias aplicações, ou seja, existe múltipla visão dos dados. Armazena-se junto com os dados todas as informações referentes à forma como estes foram estruturados e onde eles estão armazenados fisicamente. Essas informações estão armazenadas no catálogo ou dicionário de dados do SGBD. Há separação entre programas e dados, e, os acessos são escritos no banco de dados e os programas enviam comandos solicitando o acesso aos dados. Sistema Gerenciador de BD Sistema Gerenciador de BD Esse conceito é chamado de abstração de dados, que caracteriza- se por uma independência entre programas e dados e entre programas e operações de manipulação de dados. Sistema Gerenciador de BD Sistema Gerenciador de BD Sistema Gerenciador de BD Sistema Gerenciador de BD É permitido acesso simultâneo de vários usuários ao mesmo dado. Essa simultaneidade é tratada através do gerenciamento da concorrência. Procedimentos de backup e recuperação são automatizados. Diferente do processamento de arquivos, os programas não possuem informações sobre o armazenamento dos dados. A estrutura dos arquivos de dados é armazenada nos catálogos do SGBD. Sistema Gerenciador de BD Sistema Gerenciador de BD O Banco de Dados pode ter sua estrutura alterada sem precisar alterar os programas que o acessam. Essa característica é chamada independência programa-dados. Um banco de dados típico tem muitos usuários e cada usuário pode precisar de diferentes visões do banco de dados. Uma visão pode ser: ⚫ Um subconjunto do banco de dados, que atendem critérios de necessidades do usuário. ⚫ Uma visão virtual dos dados, derivada dos dados existentes, simulando dados/informações que não estão explicitamente armazenados. Sistema Gerenciador de BD Sistema Gerenciador de BD Um SGBD deve permitir o acesso concorrente de diversos usuários de forma a serem compartilhados. O controle de concorrência deve permitir que muitos usuários, ao tentar atualizar o mesmo dado, o façam de modo controlado, para assegurar que os resultados das atualizações sejam corretos. Sistema Gerenciador de BD Sistema Gerenciador de BD Processamento de Transações Transação: é um processo que inclui um ou mais acessos no banco de dados, como leitura e gravação de registros. Isolamento: garante que cada transação possa ser efetuada de forma isolada de outras transações. Atomicidade: garante que todas as operações da transação sejam realizadas ou nenhuma delas seja. Exemplo: - Transferência bancária - Leitura de saldo - Validação de saldo - Débito da conta origem - Validação da conta de destino - Crédito da conta destino Sistema Gerenciador de BD Sistema Gerenciador de BD Independência de Dados • “Consiste na capacidade de permitir que haja evolução na descrição dos dados da empresa, sem que os sistemas ou aplicações tenham que ser alterados” • “Representa a imunidade das aplicações às mudanças na estrutura de armazenagem e estratégias de acesso” Sistema Gerenciador de BD Sistema Gerenciador de BD A independência dos dados, em relação a aplicação, representa o um avanço no sentido de tornar qualquer modificação das estruturas dos arquivos imperceptível para os programas. Desta forma, as mudanças na organização dos dados não geram qualquer necessidade de alteração dos programas que o manipulam. Por exemplo: - Inclusão de um novo campo (atributo) em um arquivo (tabela) é feita sem que sejam alterados os programas, pois as estruturas dos arquivos não estão definidas nos programas. Sistema Gerenciador de BD Sistema Gerenciador de BD Controle de Redundância “Redundância é armazenar o mesmo dado várias vezes para atender diversas aplicações. Para manter a consistência do banco de dados, deve-se armazenar o dado uma única vez e em apenas um lugar no banco de dados. Isto permite manter a consistência, economizar espaço de armazenamento.” Em alguns casos, a redundância é necessária, porém ela deve ser controlada pelo sistema de gerenciamento de banco de dados.“ (Elmasri & Navathe, 2015) Sistema Gerenciador de BD Sistema Gerenciador de BD “Redundância é um conceito representado pelo controle centralizado dos dados compartilhados por diversas aplicações, reduzindo a repetição de dados a um mínimo justificável e aceita apenas por questão de desempenho.” (Cerícola, 1991) Problemas da redundância de dados: • Duplicação de esforço para manter os dados atualizados; • Desperdício de espaço de armazenamento; • Possibilidade de inconsistência dos dados. Sistema Gerenciador de BD Sistema Gerenciador de BD Compartilhamento de Dados Permitir a usuários diferentes a utilização simultânea de um mesmo dado. Por exemplo: •As informações sobre clientes podem ser acessadas pelo sistema de vendas, de contas a receber e faturamento simultaneamente. Sistema Gerenciador de BD Sistema Gerenciador de BD Compartilhamento de Dados A mesma base de dados sobre empregados pode ser usada simultaneamente pelo sistema de recursos humanos e pelo sistema de vendas. No primeiro caso os dados serão utilizados no processo de pagamento e no segundo no processo de alocação dos vendedores às áreas de atendimento a cliente. Sistema Gerenciador de BD Sistema Gerenciador de BD Restrição de Acesso “Um SGBD deve prover controles de segurança e autorização, que são utilizados para criar contas e seus respectivos direitos de acesso quando múltiplos usuários compartilham um banco de dados.” (Navathe, 2015) Sistema Gerenciador de BD Sistema Gerenciador de BD Restrição de Acesso “Os controles de segurança abrangem conceitos tais como: procedimentos de validação e controle, garantia de integridade e controle de acesso, que visam resguardar o banco de dados de uma possível perda ou destruição de dados seja por falha de programa ou por falha de equipamento.” (Cerícola, 1991) Sistema Gerenciador de BD Sistema Gerenciador de BD Restrição de Integridade A maioria dos SGBDs proveem certas restrições de integridade que devem ser aplicadas aos dados. O SGBD deve ter mecanismos para possibilitar a definição das restrições e assegurar o respeito a estas. Um exemplo de restrição de integridade é a definição de um tipo de dado (data type) para cada item de dado. O SGBD aceitará apenas os tipos definidos ou seja azul, vermelho, amarelo e verde como válidos para este atributo Sistema Gerenciador de BD Sistema Gerenciador de BD Restrição de Integridade Se o usuário tentasse informar, por exemplo, o valor branco para o atributo cor da parede, o sistema acusaria um erro. Sistema Gerenciador de BD Sistema Gerenciador de BD Mecanismo de Backup e Recuperação Um SGBD deve prover facilidades para recuperação de falhas do hardware ou software. Estes mecanismos evitam que cada aplicação tenha que projetar e desenvolver seus próprios controles contra a perda de dados. • Falha: Ocorre no nível mais baixo do hardware ou software. • Uma fonte queimar • Uma linha de código errada Sistema Gerenciador de BD Sistema Gerenciador de BD Mecanismo de Backup e Recuperação • Defeito: O defeito é o que é percebido pelo usuário, é a representação de um erro no universo do usuário. • Erro: Uma falha pode gerar um erro. Um erro é a representação da falha no universo da informação (dados). • Por consequência de uma falha um dado foi corrompido. Sistema Gerenciador de BD Sistema Gerenciador de BD Múltiplas Interfaces Um ambiente de banco de dados é acessado por variados tipos de usuários com variadas necessidades de informaçãoe com diferentes níveis de conhecimento técnico. Para atender esta diversidade usuários, o SGBD deva fornecer diferentes tipos de interfaces. Múltiplas Interfaces Um ambiente de banco de dados é acessado por variados tipos de usuários com variadas necessidades de informação e com diferentes níveis de conhecimento técnico. Para atender esta diversidade usuários, o SGBD deva fornecer diferentes tipos de interfaces. Sistema Gerenciador de BD Sistema Gerenciador de BD Múltiplas Interfaces Dessa forma, este ambiente disponibiliza: - Linguagens de consulta para usuários casuais; - Linguagens de programação para programadores de aplicações; - Interfaces gráficas com formulários (telas) e menus para usuários paramétricos; - Interfaces para administração do banco de dados; - Linguagem natural. Sistema Gerenciador de BD Sistema Gerenciador de BD Benefícios de um SGBD Os ambientes de bancos de dados fornecem uma série de vantagens na sua adoção: • Potencial para o estabelecimento e o cumprimento de padrões • Garantir o uso de padrões na organização, códigos, nomes, datas • Flexibilidade de mudanças • Alteração da estrutura dos dados de forma simples Sistema Gerenciador de BD Sistema Gerenciador de BD Benefícios de um SGBD • Redução no tempo de desenvolvimento de novas aplicações • Encapsulamento das regras de armazenamento e integrações • Disponibilidade de informação atualizada • Logo que um dado é atualizado, ele está disponível para os usuários Sistema Gerenciador de BD Sistema Gerenciador de BD Arquitetura de um SGBD Sistema Gerenciador de BD Sistema Gerenciador de BD Nos primeiros sistemas de informação, dados e processos eram mantidos juntos em um mesmo arquivo. Dados e processos foram separados. Em um primeiro momento, estas ferramentas mantinham as funções básicas de criação e manipulação dos dados independentes das aplicações. Sistema Gerenciador de BD Sistema Gerenciador de BD Em um segundo momento apresentando as características dos SGBDs. Em um segundo momento apresentando as características dos SGBDs. Surgiram os bancos de dados centralizados como uma evolução do uso de SGBDs. Sistema Gerenciador de BD Sistema Gerenciador de BD Em seguida tivemos os bancos de dados cliente-servidor (com servidor de arquivo) Com servidor de banco de dados. Sistema Gerenciador de BD Sistema Gerenciador de BD Mais tarde, surgiram os bancos de dados distribuídos. Mais tarde, surgiram os bancos de dados distribuídos. Sistema Gerenciador de BD Sistema Gerenciador de BD Como tecnologia avançada, visando armazenar um expressivo volume de dados, surgiu o DataWarehouse. Sistema Gerenciador de BD Sistema Gerenciador de BD A evolução e a necessidade de um grandioso armazém de dados, surgiu o Big Data. https://datasciencedojo.com/blog/10-vs-of-big-data/ Sistema Gerenciador de BD Sistema Gerenciador de BD Big Data. Sistema Gerenciador de BD Sistema Gerenciador de BD Aprendizagem Baseada em Problemas Situação-problema: Nos dias atuais é dito que os dados são o novo petróleo, ou seja, o bem mais valioso existente. Será que há afirmação anterior é válida? Isso nos leva a pensar no porquê precisamos aprender sobre banco de dados e qual sua importância para os sistemas computacionais. Sistema Gerenciador de BD Sistema Gerenciador de BD Aprendizagem Baseada em Problemas Situação-problema: Tendo os dados tanta importância em uma sociedade digital, é natural que se tenha uma preocupação nos relacionamentos dos mesmos. Isso nos leva a um último questionamento: Como utilizar uma abordagem que combine armazenamento eficiente com a possibilidade de corretamente estabelecer relacionamento entre eles? Sistema Gerenciador de BD Sistema Gerenciador de BD Aprendizagem Baseada em Problemas Metodologia: Os estudantes dividem-se em DUPLAS e discutem sobre a importância do banco de dados numa empresa, elucidando suas vantagens e desvantagens. Tempo máximo estimado é de 30 minutos. Após a discussão em DUPLA, um aluno orador apresentará para toda a turma a análise realizada sobre o assunto em questão. Modelo de Banco de Dados Modelo Conceitual Abordagem relacional – Base Universal Modelo de Banco de Dados Modelo Conceitual Banco de Dados Conceitual A implementação de banco de dados refere-se a criação e manipulação de banco de dados a partir de uma linguagem não- procedural, aceita por certo SGBD, resultado proveniente de um projeto de banco de dados. Para todo o projeto de banco de dados, recomenda-se trabalhar sua implementação em base de dados universal, ou seja, baseada em SQL – Structure Query Language, Linguagem de Consulta Estruturada. Modelo de Banco de Dados Modelo Conceitual Banco de Dados Conceitual Para um projeto de banco de dados, existe em três modelos/categorias distintas: - Modelo Conceitual - Modelo Lógico - Modelo Físico Antes de tratarmos os projetos de bancos de dados, vamos relembrar aqui os tipos de bancos de dados existentes, enfatizando no tipo de banco de dados mais utilizado nos dias atuais, universalmente. Modelo de Banco de Dados Modelo Conceitual Banco de Dados Conceitual São eles: Banco de Dados Relacional (Universal): Um banco de dados relacional consiste em uma coleção de tabelas, que podem ser relacionadas através de seus atributos, ou seja, uma linha de uma tabela pode estar sendo relacionada com uma outra linha em uma outra tabela. Banco de Dados de Rede: Enquanto no modelo relacional os dados e os relacionamentos entre dados são representados por uma coleção de tabelas, modelo de rede representa os dados por coleções de registros e os relacionamentos entre dados são as ligações. Modelo de Banco de Dados Modelo Conceitual Banco de Dados Conceitual Em outras palavras, um banco de dados de rede consiste em uma coleção de registros que são conectados uns aos outros por meio de ligações. Cada registro é uma coleção de campos (atributos), cada um desses campos contendo apenas um valor de dado. Uma ligação é uma associação entre precisamente dos registros. Modelo de Banco de Dados Modelo Conceitual Banco de Dados Conceitual Banco de Dados Hierárquico: Assim como no modelo de redes o modelo Hierárquico trabalho com os dados e relacionamentos como uma coleção de registros relacionados por ligações. A única diferença entre os dois é que no modelo hierárquico os registros são organizados como coleções de árvores em vez de grafos arbitrários. Modelo de Banco de Dados Modelo Conceitual Banco de Dados Conceitual Banco de Dados Dedutivo: É um tipo de banco de dados que tem a capacidade de definir regras (dedutivas). Esse banco deriva novos dados à partir das relações básicas, podendo deduzir ou inferir informações adicional, a partir de fatos que estão armazenados. Utiliza mecanismo de inferência da mesma forma que os sistemas providos de Inteligência Computacional. Modelo de Banco de Dados Modelo Conceitual Aprendizagem Baseada em Problemas Situação-problema: Para a construção de uma casa, teoricamente precisamos de um arquiteto para gerar o desenho de como deverá ser a casa, na sequência o engenheiro de posse desse desenho irá criar a planta da casa com todas suas especificações e por fim a equipe de construção deverá construir a casa física. Muito semelhante a esse processo temos os tipos de modelos de dados. Nesse contexto porque deve-se segmentar a modelagem de dados em três modelos de dados? Modelo de Banco de Dados Modelo Conceitual Aprendizagem Baseada em Problemas Metodologia: Checar junto aos alunos a importância da divisão da modelagem de dados(modelo conceitual, modelo lógico e modelo físico), para facilitar a correção de erros e a evolução do modelo a partir de novos requisitos de informação. Modelo de Banco de Dados Modelo Conceitual Fases do Projeto de Banco de Dados O projeto de banco de dados pode ser decomposto em: a) Projeto conceitual b) Projeto lógico c) Projeto físico Projeto Conceitual Modelo Conceitual de BD Projeto Lógico Modelo Lógico de Banco de Dados Projeto Físico Modelo Físico de Banco de Dados Modelo Conceitual Projeto Conceitual Modelo Conceitual: Linguagem usada para descrever esquemas conceituais independe do SGBD escolhido. Modelo de Banco de Dados Modelo Conceitual Projeto Lógico Modelo Lógico: Linguagem usada para especificar esquemas lógicos. Pertencem a três classes: Relacional, Redes e Hierárquico. No nosso caso, iremos trabalhar com base universal, SQL, e, portanto, utilizaremos RELACIONAL. Modelo de Banco de Dados Modelo Conceitual Projeto Físico Linguagem de Esquema físico: É a descrição da Implementação da base de dados em memória secundária. Descreve estruturas de armazenamento e métodos de acesso. Tem forte ligação com o SGBD específico. No nosso caso, um SGBD relacional, voltado para base universal, SQL. Modelo de Banco de Dados Modelo Conceitual Fases do Projeto Projeto Conceitual: Não tem dependência com a classe do SGBD a ser escolhido. Projeto Lógico: Tem dependência com a classe, mas não com o SGBD específico. Projeto Físico: Total dependência do SGBD específico. Modelo de Banco de Dados Modelo Conceitual Projeto Conceitual O Projeto Conceitual produz um esquema conceitual a partir de “requisitos” de um mundo real. Projeto conceitual usa modelo de dados para descrever a realidade. Esse modelo de dados é denominado tecnicamente como Modelo Conceitual de Banco de Dados. Modelo de Banco de Dados Modelo Conceitual Projeto Conceitual Um modelo de dados se ampara em um conjunto de blocos de construção primitivas. Modelo de Banco de Dados Modelo Conceitual Abstração Processo que consiste em mostrar as características e propriedades essenciais de um conjunto de objetos, ou esconder as características não essenciais. Quando pensamos no objeto “bicicleta” de uma forma abstrata, normalmente “esquecemos” seus detalhes e as particularidades que as diferem entre si. Abstrações em modelo conceitual, são mostradas em 3 tipos: - Classificação - Agregação - Generalização Modelo de Banco de Dados Modelo Conceitual Classificação Usada para reunir objetos do mundo real com propriedades comuns, formando (ou definindo) classes. Modelo de Banco de Dados Modelo Conceitual Agregação Usada para definir uma nova classe a partir de um conjunto de classes que representam suas partes componentes. Modelo de Banco de Dados Modelo Conceitual Generalização Usada para definir uma classe mais genérica a partir de duas ou mais classes. Modelo de Banco de Dados Modelo Conceitual Aprendizagem Baseada em Problemas Situação-problema: Estamos na etapa na qual o arquiteto vai desenhar os requisitos/características que deve ter na casa, ou seja em conversa com o cliente o arquiteto irá extrair todas as características necessárias para a construção do desenho, no nosso caso para a construção do modelo conceitual ou, mais diretamente falando, o diagrama entidade-relacionamento, quais notações serão necessárias para essa construção? Modelo de Banco de Dados Modelo Conceitual Aprendizagem Baseada em Problemas Metodologia: Após o alunos analisar a situação problema e responder o que se pede, o professor deverá apresentar os principais componentes do Diagrama Entidade-Relacionamento conceituando-os: Entidade, Relacionamento e Atributos. Neste ponto a apresentação dos grupos de trabalho deverá ser feita a partir de exemplos de entidades do mundo real e de seus relacionamentos, não sendo necessário maior detalhamento de como foram identificados em seu estudo. Modelo de Banco de Dados Modelo Conceitual Aprendizagem Baseada em Problemas Metodologia: Demonstrar aos alunos as notações de Peter Chen e Pé de Galinha, exemplificando através das representações de entidades, relacionamentos e atributos. Deve ser ressaltado que em qualquer das notações os conceitos representados são os mesmos, modificando-se apenas sua representação gráfica. Modelo de Banco de Dados Modelo Conceitual Aprendizagem Baseada em Problemas Notação Peter Chen X Notação Crow Foot Notação Peter Chen Modelo de Banco de Dados Modelo Conceitual Aprendizagem Baseada em Problemas Notação Peter Chen X Notação Crow Foot Notação Crow Foot Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Como já foi apresentado anteriormente, existem três tipos de modelos de dados: Conceitual, Lógico e Físico. Modelos Conceituais: são ferramentas que representam a realidade num alto nível de abstração. Modelos Lógicos: suportam descrições de dados que podem ser processadas (por um computador). Incluem os modelos relacional, hierárquico e rede. Modelo Físico: corresponde a implementação do banco de dados a partir de um SGBD específico. Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Importante: projeto de base de dados não é a única aplicação de modelos conceituais. Eles podem ser excelentes ferramentas para gestão em empresas. Modelos e Esquemas Um modelo de dados é uma coleção de conceitos usados para descrever uma dada realidade. Estes conceitos são construídos com base nos mecanismos de abstração e são descritos através de representações gráficas e linguísticas. Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Um esquema é uma representação de uma porção específica da realidade usando-se um particular modelo de dados. Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Para exemplificar vamos utilizar o modelo de entidades e relacionamentos (M.E.R.). Para tanto, busca-se utilizar o Diagrama Entidade-Relacionamento (D.E.R) Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Modelo Entidade-Relacionamento O diagrama entidade-relacionamento (D.E.R.) é a representação gráfica do modelo conceitual (M.E.R.). Ele é similar a um fluxograma, indicando, por meio de figuras geométricas, as entidades, os seus atributos, bem como os relacionamentos existentes entre elas. Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Modelo Entidade-Relacionamento A seguir, iremos apresentar os principais formatos. As entidades são representadas por retângulos: Entidade Os relacionamentos são representados por losangos: Relacionamento Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Modelo Entidade-Relacionamento Os atributos são representados por elipses: Atributo Atributos multivalorados são representados por: Atributo Multivalorado Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Modelo Entidade-Relacionamento Atributos compostos são representados por: Atributo Composto Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Modelo Entidade-Relacionamento Vamos representar, por meio do diagrama entidade relacionamento (D.E.R.), as entidades “Médico” e “Paciente”, com alguns de seus possíveis atributos, bem como o relacionamento “Atendimento” entre elas. Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Modelo Entidade-Relacionamento O D.E.R. que está ilustrando anteriormente visa modelar o atendimento de pacientes por médicos, sendo que o relacionamento “atendimento” é realizado em uma determinada data (atributo), por um médico (entidade), o qual possui um nome e um código de CRM (que é um número único a todos os médicos), em pacientes(entidade), os quais possuem CPF, único a cada um, nome, telefone (multivalorado, pois pode haver mais de um valor) e um endereço, composto por rua, número e bairro. Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Cardinalidade A cardinalidade ou mapeamento de restrição, especifica o número mínimo e o máximo de instâncias que uma entidade pode participar. Para facilitar o entendimento, observe o diagrama abaixo: Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Cardinalidade O D.E.R. apresentado, refere-se à entidade “Professor” que ministra “Disciplinas” em uma escola, por exemplo. Os números que aparecem no D.E.R. correspondem às cardinalidades ou mapeamento de restrição das entidades. A cardinalidade da entidade está do lado oposto ao seu retângulo, havendo a cardinalidade mínima e a máxima. Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Cardinalidade Para lê-las, adotamos a seguinte estrutura: ENTIDADE + RELACIONAMENTO + CARDINALIDADE + ENTIDADE Desse modo, as cardinalidades de cada uma das duas entidades são: •Um professor pode ministrar 0 (mínimo) ou ‘n’ (máximo) disciplinas. •Uma disciplina pode ser ministrada por apenas 1 (mínimo) ou 1 (máximo) professor. Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Cardinalidade O ‘n’ significa mais de uma, ou seja, várias, onde um professor pode ministrar nenhuma disciplina ou mais de uma. Quando as cardinalidades mínima e máxima são iguais, é porque ela está restrita a apenas aquele número. Dessa forma, uma disciplina pode ser ministrada apenas por um professor. Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Tipos de Cardinalidade 1,1 – um e apenas um 0,1 – nenhuma ou uma 0,N – nenhuma ou várias (muitas) 1,N – um ou várias (muitas) N,N – muitas para muitas Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados IMPORTANTE: Quando existe um relacionamento de muitas para muitas, esse relacionamento é denominado entidade-relacionamento e, será representado por uma nova tabela, ou seja, vai ser uma tabela no modelo relacional. Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Observe que no diagrama entidade-relacionamento descrito abaixo, o relacionamento Aluga, caracteriza uma entidade- relacionamento e, será representada por uma tabela no modelo relacional. Modelo de Banco de Dados Modelo Conceitual Modelos de Banco de Dados Nota-se que nem todo autor usa um losango dentro de um retângulo para representar a entidade-relacionamento. No entanto, o efeito do que está sendo representado é o mesmo. Modelo de Banco de Dados Modelo Conceitual Aprendizagem Baseada em Problemas Situação-problema: Estamos na etapa na qual o arquiteto vai desenhar os requisitos/características que deve ter na casa, ou seja em conversa com o cliente o arquiteto irá extrair todas as características necessárias para a construção do desenho, no nosso caso para a construção do modelo conceitual ou, mais diretamente falando, o diagrama entidade-relacionamento, quais notações serão necessárias para essa construção? Modelo de Banco de Dados Modelo Conceitual Aprendizagem Baseada em Problemas Metodologia: O aluno deverá defender a sua ideia sob a concepção da necessidade do uso do modelo conceitual de banco de dados, mostrando que houve entendimento acerca do conteúdo apresentado em sala de aula. Modelo de Banco de Dados Modelo Conceitual Aprendizagem Baseada em Problemas Metodologia: Após a explanação do aluno, o professor deverá apresentar exemplos de entidades do mundo real e identificar as entidades tipo associadas, explicando a diferença entre as entidades e as entidades tipo, destacando que na modelagem representamos as entidades tipo que servirão de base para a criação das estruturas de dados onde serão armazenados dados, ou seja, as informações do mundo real. Modelo de Banco de Dados Modelo Conceitual Aprendizagem Baseada em Problemas Metodologia: Demonstrar aos alunos exemplos de relacionamentos do mundo real e identificar os relacionamentos tipo associados, explicando a diferença entre relacionamento e relacionamento tipo, destacando que relacionamento ocorre entre entidades e relacionamento tipo entre entidades tipo. Explicar cardinalidade máxima e mínima (opcionalidade) de um relacionamento, seus tipos (1,1 - 0,1 - 0,N - 1,N - N,N) e a forma de representá-los no modelo. Modelo de Banco de Dados Modelo Conceitual Aprendizagem Baseada em Problemas Entidade/Entidade Tipo X Relacionamento/Relacionamento Tipo Modelo de Banco de Dados Modelo Conceitual BrModelo Você poderá usar qualquer ferramenta CASE para fazer o DER. Segue o link: http://www.sis4.com/brModelo/antigo.html Ver. Online: https://www.brmodeloweb.com/lang/pt-br/index.html Notação Peter Chen Modelo de Banco de Dados https://www.brmodeloweb.com/lang/pt-br/index.html Modelo Conceitual Visual Paradigma Recomendo o uso do Visual Paradigma Online. Segue link: https://online.visual-paradigm.com/drive/#diagramlist:proj=0&new Notação Crow Foot Modelo de Banco de Dados https://online.visual-paradigm.com/drive/#diagramlist:proj=0&new Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Slide 47 Slide 48 Slide 49 Slide 50 Slide 51 Slide 52 Slide 53 Slide 54 Slide 55 Slide 56 Slide 57 Slide 58 Slide 59 Slide 60 Slide 61 Slide 62 Slide 63 Slide 64 Slide 65 Slide 66 Slide 67 Slide 68 Slide 69 Slide 70 Slide 71 Slide 72 Slide 73 Slide 74 Slide 75 Slide 76 Slide 77 Slide 78 Slide 79 Slide 80 Slide 81 Slide 82 Slide 83 Slide 84 Slide 85 Slide 86 Slide 87 Slide 88 Slide 89 Slide 90 Slide 91 Slide 92 Slide 93 Slide 94 Slide 95 Slide 96 Slide 97 Slide 98 Slide 99 Slide 100 Slide 101 Slide 102 Slide 103 Slide 104 Slide 105 Slide 106 Slide 107 Slide 108 Slide 109 Slide 110 Slide 111 Slide 112 Slide 113 Slide 114 Slide 115