Baixe o app para aproveitar ainda mais
Prévia do material em texto
Juliana Mascarenhas Tech Education Specialist DIO / Criadora de conteúdo no @Simplificandoredes e @SimplificandoProgramação Mestre em modelagem computacional | Cientista de dados @in/juliana-mascarenhas-ds/ Modelagem de Banco de dados com ER – Entidade Relacionamento Trilha de Banco de Dados Relacional [1] Objetivo deste módulo é apresentar o mundo da modelagem de dados voltado para um sistema de banco de dados. Objetivo Geral [2] Percurso [3] Etapa 1 Introdução à Modelagem e Projeto de BD Etapa 2 Explorando o Modelo ER Etapa 3 Esquema Conceitual Através de Diagramas Etapa 4 Modelagem de dados complexa com ER Etapa 5 Construindo seu Primeiro Projeto de BD //Modelagem de Banco de Dados com ER - Etapa 1 Introdução à Modelagem & Projeto de BD [4] Objetivo Geral [5] Revisando Conceitos de BD Design de BDs Requisitos relacionados ao SGBD Como ocorre esse processo? Implementando o Modelo Aplicações & SGBDs Exemplo de aplicação SGBD Discursando sobre as características de Banco de Dados [6] Relembrando [7] Gerência de dados Isolamento data/program Integridade e Consistência Segurança Views Recuperação Recovery Concorrência Mundo Fechado [8] Close World Assumption Lógica formal do sistema que vai além de BD Preposição Predicado Mundo Fechado [9] Verdade Contexto do BD Close World Assumption Mundo Fechado [10] Close World Assumption Open World Assumption Mundo Fechado [11] Grau menor que PhD? Completude Mini-mundo [12] Mundo Real Mini-mundo Universe of Discourse Mini-mundo [13] Mundo Real Mini-mundo Armazena Modelo Lógico Mini-mundo [14] Universidade Amostra Mundo real Departamentos cursos Mini-mundo [15] Mini-mundo CWA Mini-mundo [16] Mini-mundo Preposição Lógica de Predicados CWA O predicado é a parte da oração que contém o verbo e que traz informações sobre o sujeito. Álgebra Relacional [17] Lógica de Predicados Critério Having Where Linguagem formal para consulta/extração de dados Álgebra Relacional [18] Teoria dos Conjuntos Linguagem formal para consulta/extração de dados Álgebra Relacional [19] Conjunto de operações Teoria dos Conjuntos Op. de conjuntos Op. de BD relacional Conjunto de Funções Álgebra Relacional [20] Conjunto de operações Op. de conjuntos Op. de BD relacional Exclusivos de SGBDs relacionais Álgebra Relacional [21] Conjunto de Funções SUM COUNT AVG ANY MAX MIN Alg. Relacinal [22] Álgebra Relacional Resultado da ação Alg. Relacinal [23] Lembra da dependência aplicação/dados? Alg. Relacinal [24] Lembra da dependência aplicação/dados? Consultas complexas [25] Fonte: infinittusexatas.com.br/ Tradeoff [26] INSERT Tradeoff [27] INSERT Disponibilidade Tempo de gravação Clock do sistema Processo [28] Projeto Conceitual Projeto Lógico Projeto Físico Validação Produção Manutenção Falando sobre modelagem ... [29] Modelagem de dados [30] Aplicação de BD BD particular Softwares Queries & updates Modelagem de dados [31] Aplicação de BD BD particular Softwares Queries & updates GUI para users Modelagem de dados [32] Aplicação de BD BD particular Softwares Queries & updates GUI para users Modelagem de dados [33] Design Implementação Teste Modelagem de dados [34] Engenheiro de Software Design Implementação Teste Desenvolvimento [35] Design de BDs Engenharia de software Desenvolvimento [36] Design de BDs Engenharia de software Modelo Entidade Relacionamento Desenvolvimento [37] Não enrijeça o processo Projeto: Como "nasce" um Banco de Dados? [38] Desenvolvimento [39] Como implementar um BD? Desenvolvimento [40] Como implementar um BD? Entender o contexto e requisitos Perfil … O que eu quero representar? Desenvolvimento [41] O que eu quero representar? Funcionalidades Modelo Arquitetura Implementação Processo evolutivo ou gradual Cenários [42] Banco (Financeiro) E-commerce Universidade Produção Bibliotecas Colaboradores Farmácia Desenvolvimento [43] Abordagem tradicional Como resolver? Desenvolvimento [44] Como resolver? Modelagem Conceitual Físico Lógico Design de BDs – Projeto conceitual [45] Gráficas Modelo de Alto Nível Projeto Conceitual [46] Como criar o modelo? Textuais Linguagens de modelagem de dados Gráficas Modelo de Alto Nível Projeto Conceitual [47] Como criar o modelo? Textuais Representação Linguagens de modelagem de dados Requisitos, perguntas a serem respondidas, visões ... Projeto Conceitual [48] 1° passo Coleta de Dados Análise Projeto Conceitual [49] Esquema Conceitual Modelo Entidade Relacionamento UML – Diagrama de classes Fonte: livro de referência - Navathe Projeto Conceitual [50] Esquema Conceitual Modelo Entidade Relacionamento UML – Diagrama de classes DER Fonte: livro de referência - Navathe Projeto Conceitual [51] Requisições funcionais da aplicação Foco do engenheiro de software Operações Modelo de Alto Nível Projeto Conceitual [52] Requisitos Funcionais Não Funcionais Segurança, desempenho ... O que executar? Quais processos? Modelo de Alto Nível Projeto Conceitual [53] Independente do modelo de Banco de Dados Requisitos Funcionais Não Funcionais Como será armazenado? Projeto Conceitual [54] Coleta Análise Dados & Requisitos Esquema conceitual Design conceitual Projeto Conceitual [55] Coleta Análise Dados & Requisitos Esquema conceitual Design conceitual Conceitos de Alto Nível Conceitos de alto nível são os tipos de entidades, relacionamentos, constraints .... Não possui detalhes de implementação então pe fácil de ser passado para pessoas leigas. Foco nos dados traz clareza e facilidade para construção do modelo Projeto Conceitual [56] Fonte: livro de referência - Navathe Conceitos de alto nível são os tipos de entidades, relacionamentos, constraints .... Não possui detalhes de implementação então pe fácil de ser passado para pessoas leigas. Foco nos dados traz clareza e facilidade para construção do modelo Projeto Conceitual [57] Coleta Análise Dados & Requisitos Esquema conceitual Design conceitual Conceitos de Alto Nível Análise das queries O modelo básico de dados pode ser utilizado para definir as queries e operações durante a análise de funcionalidades Processo [58] O que vai ter? Como estruturar? Como implementar? Projeto Conceitual Projeto Lógico Projeto Físico Processo [59] Esquema conceitual Esquema lógico Esquema Físico Requisitos Projeto Conceitual Projeto Lógico Projeto Físico Implementação – Projeto Lógico & Físico [60] Descrição do modelo conceitual Projeto Lógico [61] Depende do modelo de Banco de Dados Estrutura Organização dos dados Descrição do modelo conceitual Projeto Lógico [62] Depende do modelo de Banco de Dados Estrutura Organização dos dados Tabelas Projeto Lógico [63] Mapeamento Design Lógico Projeto Conceitual Projeto Lógico Projeto Físico Projeto Lógico [64] Mapeamento Design Lógico Esquema do BD Pode ser automatizado ou semi-automoatizado com ferramentas de design Projeto Conceitual Projeto Lógico Projeto Físico Projeto Lógico [65] Como escolher? Projeto Lógico [66] Como escolher? Mobile Relacional NoSQL Distribuído Estrutura Projeto Lógico [67] Como escolher? Mobile Relacional NoSQL Distribuído Estrutura Projeto Lógico [68] Percurso.... Criação do Esquema Lógico Instalação e Configuração do SGBD Criação do Esquema do BD Projeto Lógico [69] Depende do modelo de Banco de Dados Características do modelo de SGBD Influência Projeto Lógico [70] Coleta & Análise Esquema conceitual Design conceitual Esquema Lógico Especificando Conceitos de Alto Nível Mapeamento Conceitos de alto nível são os tipos de entidades, relacionamentos, constraints .... Não possui detalhes de implementaçãoentão pe fácil de ser passado para pessoas leigas. Foco nos dados traz clareza e facilidade para construção do modelo Projeto Lógico [71] Mapeamento ER para Modelo Relacional Fonte: livro de referência - Navathe Projeto Lógico [72] Fonte: livro de referência - Navathe Projeto Lógico [73] Fonte: livro de referência - Navathe Mapeamento ER x Relacional [74] Pontos de atenção Entidades Qual tipo de entidade? Relacionamentos Binário, n-ário? Cardinalidade [1:1, 1:n, n:1 ...] Atributos Multivalorados? Conceitos de alto nível são os tipos de entidades, relacionamentos, constraints .... Não possui detalhes de implementação então pe fácil de ser passado para pessoas leigas. Foco nos dados traz clareza e facilidade para construção do modelo Mapeamento ER x Relacional [75] Pontos de atenção Entidades Qual tipo de entidade? Relacionamentos Binário, n-ário? Cardinalidade [1:1, 1:n, n:1 ...] Atributos Multivalorados? Restrições & Integridade Conceitos de alto nível são os tipos de entidades, relacionamentos, constraints .... Não possui detalhes de implementação então pe fácil de ser passado para pessoas leigas. Foco nos dados traz clareza e facilidade para construção do modelo Descrição do modelo conceitual Projeto Físico [76] Independente do modelo de Banco de Dados Como será implementado? Parâmetros Físicos Estrutura e Índices Organização e Caminhos de Arquivos Segurança, performance ... Projeto Físico [77] Diretamente ligado ao SGBD Como será implementado? Parâmetros Físicos Estrutura e Índices Organização e Caminhos de Arquivos Segurança, performance ... Projeto Físico [78] Diretamente ligado ao SGBD Alocação de memória Particionamento de tabelas Projeto Lógico [79] Coleta & Análise Esquema conceitual Esquema Lógico Esquema Lógico Implementação Descrição Conceitos de alto nível são os tipos de entidades, relacionamentos, constraints .... Não possui detalhes de implementação então pe fácil de ser passado para pessoas leigas. Foco nos dados traz clareza e facilidade para construção do modelo Projeto Lógico [80] Coleta & Análise Esquema conceitual Esquema Lógico Esquema Lógico Validação Produção Manutenção Conceitos de alto nível são os tipos de entidades, relacionamentos, constraints .... Não possui detalhes de implementação então pe fácil de ser passado para pessoas leigas. Foco nos dados traz clareza e facilidade para construção do modelo Fases de desenvolviento de BDs e Aplicações [81] Desenvolvimento [82] Levantamento de requisitos Análise Funcional Especificação de Acesso Projeto de Aplicação Implementação Validação e Teste Projeto Conceitual Projeto Lógico Projeto Físico Desenvolvimento [83] Levantamento de requisitos Análise Funcional Especificação de Acesso Projeto de Aplicação Implementação Validação e Teste Projeto Conceitual Projeto Lógico Projeto Físico Premissas Desenvolvimento [84] Levantamento de requisitos Análise Funcional Especificação de Acesso Projeto de Aplicação Implementação Validação e Teste Projeto Conceitual Projeto Lógico Projeto Físico Premissas Fomentada pelas premissas Desenvolvimento [85] Levantamento de requisitos Análise Funcional Especificação de Acesso Projeto de Aplicação Implementação Validação e Teste Projeto Conceitual Projeto Lógico Projeto Físico CRUD Queries, Views ... Regra 20x80 Desenvolvimento [86] Levantamento de requisitos Análise Funcional Especificação de Acesso Projeto de Aplicação Implementação Validação e Teste Projeto Conceitual Projeto Lógico Projeto Físico Privacidade Desenvolvimento [87] Levantamento de requisitos Análise Funcional Especificação de Acesso Projeto de Aplicação Implementação Validação e Teste Projeto Conceitual Projeto Lógico Projeto Físico Implementação do BD Conhece a aplicação Desenvolvimento [88] Levantamento de requisitos Análise Funcional Especificação de Acesso Projeto de Aplicação Implementação Validação e Teste Projeto Conceitual Projeto Lógico Projeto Físico Integração Clique para adicionar texto Desenvolvimento [89] Levantamento de requisitos Análise Funcional Especificação de Acesso Projeto de Aplicação Implementação Validação e Teste Projeto Conceitual Projeto Lógico Projeto Físico Clique para adicionar texto Classificação das aplicações Aplicações [90] Levantamento de requisitos Análise Funcional Especificação de Acesso Projeto de Aplicação Implementação Validação e Teste Projeto Conceitual Projeto Lógico Projeto Físico Classificação das aplicações OLTP OLAP Uso dos dados Aplicações [91] Levantamento de requisitos Análise Funcional Especificação de Acesso Projeto de Aplicação Implementação Validação e Teste Projeto Conceitual Projeto Lógico Projeto Físico Classificação das aplicações OLTP OLAP Uso dos dados HTAP Resumindo... [92] Fonte: livro de referência - Navathe Resumindo... [93] Fonte: livro de referência - Navathe Modelo ER Modelo Relacional SGBD Relacional Aplicação - Modelagem dos dados [94] Objetivo: rastreamento Exemplo [95] Company Empregados Departamentos Projetos Objetivo: rastreamento Exemplo [96] Company Departamentos Levantamento de dados e requisitos Empregados Projetos Organização: Nome, n°, gerente (empregado) Rastrear? Data de início do gerente & locais Exemplo [97] Company Descrição do mini-mundo Departamentos Organização: Nome, n°, gerente (empregado) Rastrear? Data de início do gerente & locais Exemplo [98] Company Descrição do mini-mundo Departamentos Qual a função? Projetos – 1 ou + Características Nome, n°, localização Exemplo [99] Company Descrição do mini-mundo Departamentos Qual a função? Projetos – 1 ou + Características Nome, n°, localização Exemplo [100] Company Descrição do mini-mundo Departamentos Projetos Nome, seguro social Endereço, salário, Data de nascimento … Exemplo [101] Company Descrição do mini-mundo Departamentos Projetos Empregados Nome, seguro social Endereço, salário, Data de nascimento … Exemplo [102] Company Descrição do mini-mundo Departamentos Projetos Empregados Dependentes [103] Company DER Fonte: livro de referência - Navathe [104] Company UML Fonte: livro de referência - Navathe [105] Company DR Fonte: livro de referência - Navathe [106] Company Instâncias Fonte: livro de referência - Navathe Etapa 2 Explorando o Modelo Entidade Relacionamento [107] //Modelagem de Banco de Dados com ER - Processo [108] Tipos de entidades Atributos e chaves Relacionamentos Papéis e Constraints Esquema relacional Diagrama ER Tipos de Entidades, Chaves e Atributos [109] ER Model Domínio do Negócio Modelo ER [110] Modelo Conceitual Atributos Entidades Relacionamentos Domínio do Negócio Modelo ER [111] Modelo Conceitual Atributos Entidades Relacionamentos Estrutura Como representar? Domínio do Negócio Modelo ER [112] Modelo Conceitual Atributos Entidades Relacionamentos Estrutura DER Diagrama ER [113] Diagramas Raras modificações Facilidade de manipular Esquema ER do banco de dados Fonte: Livro de referência - Navathe Foco no esquema Mai fácil de manipular se comparado ao conjunto de instâncias (maior que o esquema) Componente básico Existencia independente Atributos Entidades [114] Entidades Objetos Componente básico Existencia independente Atributos Entidades [115] Entidades Objetos Entidades [116] Entidades Objetos Características/Descrição das entidade Atributos relacionados as intâncias Atributos [117] Atômicos x Composto Atributos multivalorados Armazenados e derivados Atributos Nulos Atributos Complexos Atributos [118] Atômicos Compostos Concatenação Atributo Composto [119] Av. Sete de Setembro 371 – Araraquara, SP, 148000-390 Atributo Multivalorados [120] Atributos Atômicos/Compostos Simples/Multivalorados Valor Estrutura Entidade – possui 1 ou mais valoresAtributo Multivalorados [121] Atributos Simples/Multivalorados Valor Idade Cores Grau acadêmico Intervalo Atributo Stored/Derivados [122] Atributos Armazenados Valor Derivados Atributo Stored/Derivados [123] Armazenados Valor Atributos Derivados Data de nascimento Idade Atributo Nulos [124] Acadêmico Grau (opcinal) Atributo Nulos [125] Casa Apartamento & Rua A n° 23 apt 102 Rua B n° 490 Acadêmico Grau (opcinal) Atributo Nulos [126] UNKNOWN ITEM FALTANTE Atributo Complexos [127] Compostos Multivalorados Grupo Fonte: livro de referência - Navathe Os atributos complexos são semelhantes aos elementos complexos em XML Entidades [128] Esquema Fonte: livro de referência - Navathe Coleção Tipo Define Os atributos complexos são semelhantes aos elementos complexos em XML Entidades [129] Fonte: livro de referência - Navathe Elementos DER Entidades Atributos Chaves Os atributos complexos são semelhantes aos elementos complexos em XML Entidades [130] Fonte: livro de referência - Navathe Elementos DER Entidades Atributos Chaves Entidade Set Os atributos complexos são semelhantes aos elementos complexos em XML Entidade Fraca [131] Chave não obrigatória Depêndencia Exclusão cascata Fonte: livro de referência - Navathe Os atributos complexos são semelhantes aos elementos complexos em XML Chaves [132] Fonte: livro de referência - Navathe Elementos DER Entidades Atributos Chaves Constraint Os atributos complexos são semelhantes aos elementos complexos em XML Chaves [133] Elementos DER Entidades Atributos Chaves Constraint Primary Key Modelo Relacional Os atributos complexos são semelhantes aos elementos complexos em XML Domínio dos atributos [134] Range de Valores Tipo de dados ER x UML Fonte: livro de referência - Navathe Os atributos complexos são semelhantes aos elementos complexos em XML Exemplo [135] Exemplo - Company [136] Fonte: Livro de referência - Navathe Os atributos complexos são semelhantes aos elementos complexos em XML Exemplo - Company [137] Fonte: Livro de referência - Navathe Os atributos complexos são semelhantes aos elementos complexos em XML Exemplo - Company [138] Outras características: Projetos x empregados Número de horas por projeto Fonte: Livro de referência - Navathe Os atributos complexos são semelhantes aos elementos complexos em XML Exemplo - Company [139] Outras características: Projetos x empregados Número de horas por projeto Atributo composto Fonte: Livro de referência - Navathe Atributo composto (projetos, hora) ou (empregado, hora) [140] Indo além … Refinando Fonte: Livro de referência - Navathe Atributos project, hora A informação pode estar relacionada ao projeto ou a entidade empregados. Contudo, a visão de empregados por projeto não reflete o número de horas gasta. Assim, a melhor abordagem a ser utilizada está em associar o tempo ao empregado, ou seja, em works_on. Relacionamentos, Papéis e Constraints estruturais [141] ER Model Relações implicítas Gerente do departamento Controle do projeto Supervisor Relacionamentos [142] Empregado Departamento Projeto Departamento empregado In the initial design of entity types, relationships are typically captured in the form of attributes. As the design is refined, these attributes get converted into relationships between entity types Relacionamentos [143] Relacionamento Relacionamento Fonte: Livro de referência - Navathe Classificado Grau Auto-relacional ou não Cardinalidade Relacionamentos [144] Fonte: Livro de referência - Navathe In the initial design of entity types, relationships are typically captured in the form of attributes. As the design is refined, these attributes get converted into relationships between entity types Relacionamentos [145] Classificado Grau - Ternário Auto-relacional ou não Cardinalidade Fonte: Livro de referência - Navathe Relacionamentos [146] Relacionamentos como atributos Fonte: Livro de referência - Navathe Papel | Atribuição [147] Papéis de cada entidade Significado Fonte: Livro de referência - Navathe Ajuda a explicar como funciona e o que significa o relacionamento. Não precisamos nomear os papéis, os nomes de cada entidade especificam o papel. Papel | Atribuição [148] Papéis de cada entidade Fonte: Livro de referência - Navathe Ajuda a explicar como funciona e o que significa o relacionamento. Não precisamos nomear os papéis, os nomes de cada entidade especificam o papel. Auto-relacionamento [149] Fonte: Livro de referência - Navathe Ajuda a explicar como funciona e o que significa o relacionamento. Não precisamos nomear os papéis, os nomes de cada entidade especificam o papel. Constraints de relacionamentos binários [150] ER Model Constraints - Cardinalidade [151] Cardinalidade corresponde ao n° máximo de instância que participam de um determinado relacionamento. 1:1 1:N 1:3 N:1 M:N Os atributos complexos são semelhantes aos elementos complexos em XML Constraints - Cardinalidade [152] 1:1 Os atributos complexos são semelhantes aos elementos complexos em XML Constraints - Cardinalidade [153] M:N Os atributos complexos são semelhantes aos elementos complexos em XML Constraints - Cardinalidade [154] N:1 Os atributos complexos são semelhantes aos elementos complexos em XML Constraints - Participação [155] Relação de dependência Minimum Cardinality Constraint Classificação: total e parcial Empregado & departamento Supervisor Os atributos complexos são semelhantes aos elementos complexos em XML Atributos de relacionamento [156] Decisão subjetiva de Design Migração de atributos para o lado N onde a cardinalidade fica em 1:N. Migração possível para ambos os lados em 1:1. Para relacionamentos com cardinalidade N:M o atributo é influenciado por ambas entidades. Atributos de relacionamento [157] Decisão subjetiva de Design Mandatório Migração de atributos para o lado N onde a cardinalidade fica em 1:N. Migração possível para ambos os lados em 1:1. Para relacionamentos com cardinalidade N:M o atributo é influenciado por ambas entidades. O atributo não pode ser separado em apenas uma entidade. Tipos de Entidades Fracas [158] ER Model Entidade Fraca [159] Tipos de entidades Fracas Fortes Dependem de outra Owner Entity Type Relacionamento ID Chave parcial para entidade fraca Entidade Fraca [160] Tipos de entidades Fracas Fortes Dependem de outra Owner Entity Type Relacionamento ID Total Participation Constraint Toda entidade fraca precisa ter uma entidade que a identifique. COntudo, nem todo relacionamento de depêndencia gera uma entidade fraca. Entidade Fraca [161] Tipos de entidades Fracas Fortes DER Toda entidade fraca precisa ter uma entidade que a identifique. COntudo, nem todo relacionamento de depêndencia gera uma entidade fraca. Entidade Fraca [162] Carteira de Motorista Pessoa Relacionamento Total Participation Constraint Toda entidade fraca precisa ter uma entidade que a identifique. COntudo, nem todo relacionamento de depêndencia gera uma entidade fraca. Notações [163] Entidades: classes/objetos Relacionamentos: agregações Atributos: propriedades elementares Entidade Relacionamento Atributo Os atributos complexos são semelhantes aos elementos complexos em XML Notações [164] Weak Entidades, relacionamentos Chave Parcial: Linha pontilhada Chave principal: linha continua Dependência de existência: || weak .......... Relacionamento weak ______ Os atributos complexos são semelhantes aos elementos complexos em XML Notações [165] Atributo derivado Atributo composto Participação total Cardinalidade Constraint estrutural Os atributos complexos são semelhantes aos elementos complexos em XML Construtores do Esquema [166] Convenção - Nomeando Entidade e Relacionamento Atributo função Significado Trivial? Nomes retirados após narrativa. Relacionamento (verbos) Atributos, e Entidade (Substantivos) O nome do relacionamento deve corresponder a umarelação binária, ex: empregado tem_dependentes de dependentes Refinando o Design ER para COMPANY [167] ER Model Exemplo - Company [168] Fonte: Livro de referência - Navathe Os atributos complexos são semelhantes aos elementos complexos em XML Refinando - Company [169] Relacionamentos Empregado x Departamento: Gerencia Empregado x Departamento: Trabalha para Departamento x Projeto: Controla Fonte: Livro de referência - Navathe Os atributos complexos são semelhantes aos elementos complexos em XML Refinando - Company [170] Relacionamentos Empregado x Empregado: Supervisiona Empregado x Projeto: Trabalha em Empregado x Dependente: Dependentes de Fonte: Livro de referência - Navathe Participação total de dependente enquanto a de empregado é parcial Exemplo - Company [171] Fonte: Livro de referência - Navathe Os atributos complexos são semelhantes aos elementos complexos em XML [172] Os atributos complexos são semelhantes aos elementos complexos em XML Alternativas - UML [173] ER Model Outra Notação [174] Linguagem para desenvolvimento de software Trabalha com visões: interpretada e construída Compreensão facilitada Orientação à objeto Liberdade para o desenvolvedor Os atributos complexos são semelhantes aos elementos complexos em XML Outra Notação [175] Os atributos complexos são semelhantes aos elementos complexos em XML Outra Notação [176] Classe Caso de uso Interação Principais Os atributos complexos são semelhantes aos elementos complexos em XML Outra Notação [177] Classificação Os atributos complexos são semelhantes aos elementos complexos em XML Outra Notação [178] Desenvolvimento de software Paradigma OO Foco: Diagrama de Classes Os atributos complexos são semelhantes aos elementos complexos em XML Outra Notação [179] Classe (entidade) Atributos Operações Associações Os atributos complexos são semelhantes aos elementos complexos em XML Outra Notação [180] Atributo de Link Associação binária Associação reflexiva Multiplicidade * Os atributos complexos são semelhantes aos elementos complexos em XML Outra Notação [181] Relacionamentos Associação e Agregação Direcional Os atributos complexos são semelhantes aos elementos complexos em XML Outra Notação [182] Weak qualified association Discriminator Os atributos complexos são semelhantes aos elementos complexos em XML Relacionamentos de alto grau [183] ER Model Relacionamento N-ário [184] Ternário, …, N-ário Perspectiva diferente do binário Obs: Instâncias refletem a visão Trade-off na tomada de decisão (s,j,p) Os atributos complexos são semelhantes aos elementos complexos em XML Relacionamento N-ário [185] Cenário Estabelecimento (loja) Fornecedor Projeto Produto Os atributos complexos são semelhantes aos elementos complexos em XML Relacionamento N-ário [186] (s,j,p) Fonte: livro de referência - Navathe Os atributos complexos são semelhantes aos elementos complexos em XML Relacionamento N-ário [187] (s,j) (j,p) (s,p) Fonte: livro de referência - Navathe Os atributos complexos são semelhantes aos elementos complexos em XML Relacionamento N-ário [188] Weak & Depêndencia Fonte: livro de referência - Navathe Em algumas ferramentas de design possuem uma variação do modelo ER que não permitem relacionamentos de alto grau como ternário. Neste caso, o relacionamento ternário deve ser representado com uma entidade fraca Relacionamento N-ário [189] Cenário Consultas médicas Médico Exames Paciente Os atributos complexos são semelhantes aos elementos complexos em XML Relacionamento N-ário [190] Exame Com médico ou com paciente? Os atributos complexos são semelhantes aos elementos complexos em XML Relacionamento N-ário [191] Exame Com médico ou com paciente? Ternário?? Os atributos complexos são semelhantes aos elementos complexos em XML Relacionamento N-ário [192] Agregação Os atributos complexos são semelhantes aos elementos complexos em XML Relacionamento N-ário [193] Ternário? Os atributos complexos são semelhantes aos elementos complexos em XML Relacionamento N-ário [194] Os atributos complexos são semelhantes aos elementos complexos em XML Relacionamento N-ário [195] Os atributos complexos são semelhantes aos elementos complexos em XML // Design e Projeto de Banco de dados Etapa 3 Modelagem de dados Complexa com EER – Enhanced Entity-Relationship [196] Modelo Enhanced ER [197] Modelo ER – 1970 Evoluir... Os atributos complexos são semelhantes aos elementos complexos em XML Modelo Enhanced ER [198] Modelo ER – 1970 EER: Novos conceitos semânticos Desenvolvidos fora da área de BDs Diagrama ERR Evoluir... Entidades Objeto Os atributos complexos são semelhantes aos elementos complexos em XML Classes superclasses e Herança [199] Modelo Enhanced ER [200] Generalização e Especialização Categoria ou Union Type Herança: Atributo e relacionamento Subclasses Superclasses Herança Os atributos complexos são semelhantes aos elementos complexos em XML Modelo Enhanced ER [201] Tipos de entidades Conjuntos de entidades Subclasse & Subtipo Os atributos complexos são semelhantes aos elementos complexos em XML Modelo Enhanced ER [202] Tipos de entidades Conjuntos de entidades Subclasse & Subtipo Empregados Administradores Suporte TI Especialistas Analistas Marketing Suporte Local Os atributos complexos são semelhantes aos elementos complexos em XML Modelo Enhanced ER [203] Subclasse & Subtipo Objeto Objeto Objeto Objeto Objeto Objeto Objeto Classe 1 Classe 2 Os atributos complexos são semelhantes aos elementos complexos em XML Comportamento e Estado gerais Modelo Enhanced ER [204] Subclasse & Subtipo Classe mãe Classe filho Classe filha Comportamento e estado Específicos Os atributos complexos são semelhantes aos elementos complexos em XML Modelo Enhanced ER [205] Subclasse Depende do contexto do BD Objeto distinto no BD Empregados Secretária Engenheiro Gerente Empregados Chefe de obras Engenheiro Arquiteto Superclasse Subclasse Os atributos complexos são semelhantes aos elementos complexos em XML Modelo Enhanced ER [206] Herança "Princípio próprio à programação orientada a objetos (POO) que permite criar uma nova classe a partir de uma já existente." Agregar atributos e métodos Reutilização de código Especialização de classes Os atributos complexos são semelhantes aos elementos complexos em XML Modelo Enhanced ER [207] Fonte: livro de referência - Navathe Os atributos complexos são semelhantes aos elementos complexos em XML Especialização e Generalização [208] Modelo Enhanced ER [209] Especialização: subclasses Conjunto de subclasses -> tipo de entidade Diferenciação: propriedade, atributos Subclasse & Subtipo Secretária Engenheiro Gerente Específico Os atributos complexos são semelhantes aos elementos complexos em XML Modelo Enhanced ER [210] Instâncias das superclasse e subclasses Mesma representação de mundo real Papel especializado [1:1] Fonte: livro de referência - Navathe Os atributos complexos são semelhantes aos elementos complexos em XML Modelo Enhanced ER [211] Fonte: livro de referência - Navathe As subclasses representam a mesma entidade de mundo real que a superclasse Modelo Enhanced ER [212] Atributos aplicados a algumas entidades Relacionamentos específicos com subclasses Motivação Fonte: livro de referência - Navathe Os atributos complexos são semelhantes aos elementos complexos em XML Modelo Enhanced ER [213] Generalização Inverso da especialização Propriedades comuns as entidades Os atributos complexos são semelhantes aos elementos complexos em XML Modelo Enhanced ER [214] Fonte: livro de referência - Navathe Fonte: livro de referência - Navathe Generalização Os atributos complexos são semelhantes aos elementos complexos em XML Modelo Enhanced ER [215] Generalização Fonte: livro de referência - Navathe Os atributos complexos são semelhantes aos elementos complexos em XML [216] GeneralizaçãoEspecialização Refinamento Entidade Superclasse Entidade Subclasses Constraints de Generalização & Especialização [217] Constraints – Modelo EER [218] Constraint: Predicated-defined (condição) Attribute-defined Specialization User-defined Os atributos complexos são semelhantes aos elementos complexos em XML Constraints – Modelo EER [219] Constraint: Predicated-defined (condição) Attribute-defined Specialization User-defined Secretária (Job_Type = 'Secretária') Os atributos complexos são semelhantes aos elementos complexos em XML Constraints – Modelo EER [220] Constraint: Predicated-defined (condição) Attribute-defined Specialization User-defined Os atributos complexos são semelhantes aos elementos complexos em XML Constraints – Modelo EER [221] Constraint: Predicated-defined (condição) Attribute-defined Specialization User-defined Atributo definidor da especialização Especialização definida por atributo Os atributos complexos são semelhantes aos elementos complexos em XML Constraints – Modelo EER [222] Constraint: Predicated-defined (condição) Attribute-defined Specialization User-defined Os atributos complexos são semelhantes aos elementos complexos em XML Constraints – Modelo EER [223] Constraint: Disjointness constraint Overlapping Completeness constraint ESPECIALIZAÇÃO Os atributos complexos são semelhantes aos elementos complexos em XML Constraints – Modelo EER [224] Constraint: Disjointness constraint Overlapping Completeness constraint Conjuntos disjuntos Os atributos complexos são semelhantes aos elementos complexos em XML Constraints – Modelo EER [225] Constraint: Disjointness constraint Overlapping Completeness constraint Os atributos complexos são semelhantes aos elementos complexos em XML Constraints – Modelo EER [226] Constraint: Disjointness constraint Overlapping Completeness constraint Total Parcial Os atributos complexos são semelhantes aos elementos complexos em XML Constraints – Modelo EER [227] Constraint: Disjointness constraint Overlapping Completeness constraint Total Parcial Pertencimento mandatório Particiação Opcional Os atributos complexos são semelhantes aos elementos complexos em XML Modelo Enhanced ER [228] Fonte: livro de referência - Navathe As subclasses representam a mesma entidade de mundo real que a superclasse Constraints – Regras [229] Deletar Superclasse -> subclasses Inserção Entidade em superclasse -> predicated-defined Entidade em superclasse com total -> subclasse macth Os atributos complexos são semelhantes aos elementos complexos em XML Hierárquia & rede de especialização [230] Especialização [231] Hierárquia de especialização Rede de especialização Uma subclasse pertence a apenas 1 superclasse [232] Requisitos Rastreamento das 3 entidades & overlaping de entidades Tipos definidos de empregados Informação dos aluminis – grau acadêmico Estudantes graduados ou não Exemplo [233] Uma subclasse pertence a apenas 1 superclasse [234] Herança Uma subclasse pertence a apenas 1 superclasse [235] Subclasse compartilhada Herança múltipla Uma subclasse pertence a apenas 1 superclasse Modelagem de union types usando categorias [236] [237] Coleção de objetos de diferentes tipos de entidades Representação: subclasse Union Type [238] Subclasse: Papel dono do veículo Union Type Dona do carro Fianciamento [239] Subclasse: Papel dono do veículo Union Type Dona do carro Financiamento [240] Union Type [241] Union Type [242] Subclasse: Papel dono do veículo Union Type Dona do carro Financiamento Union Type Parcial (||) Total (|) [243] Union Type Generalização/Especialização Union Type/Categorização Por qual optar? Esquema EER & Definições formais [244] [245] Aplicação do Modelo Enchancer ER Descrição do esquema Definições formais Reafirmando conceitos Exemplificação Universidade [246] Rastrear: Estudantes, graduados, registros, trabalhos Oferta de cursos Pessoas: Faculdade - rank(assitente, associado, pesquisador …) Estudante Exemplificação Departamento [247] Estudante: Class -> grau acadêmico Relacionados ao seu minor e major Trabalho final deve ser registrado Class = 5 ou 6 para ser Grad_Student Entrega a tese para o orientador (committee) Exemplificação Constraint [248] Exemplificação Pessoas [249] Departamento: Uma pessoa acadêmica pertence a um departamento Pessoa coordenador – chairperson Atributos: nome, telefone, escritório ... Exemplificação Constraint [250] Curso: Atributos: nome, número, descrição Seções do mesmo curso são ofertadas aos alunos As seções são ofertadas a cada ano e possui um instrutor Exemplificação [251] Exemplificação Departamento [252] Instrutor pesquisador: Agregado: Faculty (acadêmico) e Grad_Student (Mestrando ou doutorando) Um instrutor pesquisador está associado a uma seção de um curso Exemplificação [253] Universidade Decisão sobre design de BD & UML [254] [255] Design Generalização/Especialização Union Type/Categorização Por qual optar? [256] Guideline Sub/Superclasses: Acurácia x Desordem Merge de subclasse em uma superclasse: s/ relacionamentos e poucos atributos Union Types: evitados por padrão Escolhas guiadas pelo mini-mundo Decisões de Design [257] Decisões de Design Atributos? [258] Foco na modelagem de dados Diagrama de classes Classes concretas Nomenclatura Classe base e classes (nós) folha Representando por UML [259] Overlaping UML - Especialização Disjoint Terminologias alternativas [260] [261] Terminologias Knowledge representation (KR) Ontologia Domínio [262] Terminologias Similaridades Processo de abstração para identificação de componentes Prove recursos para modelagem de dados Domínio [263] Terminologias KR Modelagem semântica - mais abrangente: regras, conhecimento espacial e temporal Reasoning mechanisms Mistura de instância e esquema Domínio [264] Terminologias Conceitos abstratos Classificação e Instanciação Identificação Especialização e Generalização Agregação e Associação Modelo de dados semântico [265] Terminologias Conceitos abstratos Classificação e Instanciação Identificação Especialização e Generalização Agregação e Associação Atribuição de objetos/entidades a classes/tipo de entidade Propriedade de classes Objetos de exceção Meta-class [266] Terminologias Conceitos abstratos Classificação e Instanciação Identificação Especialização e Generalização Agregação e Associação Processo abstrato de identificação única [267] Terminologias Conceitos abstratos Classificação e Instanciação Identificação Especialização e Generalização Agregação e Associação Refinamento utilizando sub e superclasses [268] Terminologias Conceitos abstratos Classificação e Instanciação Identificação Especialização e Generalização Agregação e Associação Abstração para composição de objetos complexos [269] Ontologia Alimenta o BD com informações sobre o domínio, suas propriedades e relações Close World Assumption Open World Assumption Semantic Web [270] Ontologia Descrição: Thesaurus – relacionamentos x conceitos Taxonomy – relacionamento de conceitos com estruturas Esquema detalhado – descrição de coneitos Lógica teórica – lógica matemática para definição de conceitos // Design e Projeto de Banco de dados Etapa 4 Hands on: Construindo seu Primeiro Projeto de Banco da Dados [271] Projeto de Banco de Dados [272] Contexto: Levantamento de Requisitos Projeto Conceitual: Modelo ER Projeto Lógico: Modelo Relacional Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de Banco de Dados [273] Contexto: Levantamento de Requisitos Projeto Conceitual: Modelo ER Projeto Lógico: Modelo Relacional UNIVERSIDADE ECOMMERCE ORDEM DE SERVIÇO Os atributos complexos são semelhantes aos elementos complexos em XML Modelando – Ordem de Serviço [274] ER Model Projeto de Banco de Dados [275] Contexto:Dentro de uma empresa os clientes demandam ao helpdesk algumas ações. Essas ações são convertidas em ordem de serviço Ordem de serviço Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de Banco de Dados [276] Contexto: Os clientes realizam um pedido O pedido é convertido em ordem de serviço caso possa ser realizado O técnico executa a ordem de serviço. Após sua finalização a mesma é arquivada Ordem de serviço Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de Banco de Dados [277] Entidades: Cliente, Responsável, Pedido e Ordem de Serviço Relacionamentos Solicita, Analisa, Executa, Arquiva Ordem de serviço Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de Banco de Dados [278] Ordem de serviço Responsável Cliente Pedido Ordem de serviço Os atributos complexos são semelhantes aos elementos complexos em XML Modelando – Escopo de Universidade [279] ER Model Projeto de Universidade [280] Ensino Qual o escopo? Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de Universidade [281] Ensino Qual o escopo? Professor Aluno Curso Disciplina Coordenação Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de Universidade [282] Narrativa - Alunos A universidade possui diversos alunos que podem estar matriculados em mais de um curso (graduação). Os alunos podem fazer cursos extras fornecidos externa e internamente (universidade) para contar como horas complementares Levantamento de Requisitos Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de Universidade [283] Narrativa - Alunos Não há restrição quanto ao número de matérias puxadas se não houver sobreposição de horário. Os alunos são submetidos a duas provas por semestre para cada disciplina. Eventuais trabalhos devem ser tratados pelo professor para compor a nota da prova. Levantamento de Requisitos Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de Universidade [284] Narrativa - Disciplinas Cada disciplina é fornecida por um professor. Restrição: apenas por este professor. Algumas disciplinas possuem pré-requisitos. Um mesmo pré-requisito pode ser associado a mais de uma disciplina. Levantamento de Requisitos Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de Universidade [285] Narrativa - Disciplinas As disciplinas podem ser comuns a cursos distintos. Ex: Cálculo 1 para computação e engenharia O ciclo de vida da disciplina é semestral Levantamento de Requisitos Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de Universidade [286] Narrativa - Professores Os professores que ministram as disciplinas estão associados as coordenações de seus respectivos cursos. Ex: Computação, Física, Engenharia … Levantamento de Requisitos Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de Universidade [287] Perguntas: Quais informações de aluno e professor guardar? Qual média para aprovação? Haverá restrição, ou diferentes visões ? … Levantamento de Requisitos Os atributos complexos são semelhantes aos elementos complexos em XML Modelando – Escopo de E-commerce [288] ER Model Projeto de E-commerce [289] Venda de produtos Qual o escopo? Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de E-commerce [290] Qual o escopo? Pedido Cliente Produto Estoque Fornecedor Venda de produtos Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de E-commerce [291] Narrativa - Produto Os produtos são vendidos por uma única plataforma online. Contudo, estes podem ter vendedores distintos (terceiros) Cada produto possui um fornecedor Um ou mais produtos podem compor um pedido Levantamento de Requisitos Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de E-commerce [292] Narrativa - Cliente O cliente pode se cadastrar no site com seu CPF ou CNPJ O Endereço do cliente irá determinar o valor do frete Um cliente pode comprar mais de um pedido. Este tem um período de carência para devolução do produto Levantamento de Requisitos Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de E-commerce [293] Narrativa – Pedido O pedidos são criados por clientes e possuem informações de compra, endereço e status da entrega Um produto ou mais compoem o pedido O pedido pode ser cancelado Levantamento de Requisitos Os atributos complexos são semelhantes aos elementos complexos em XML Projeto de E-commerce [294] Narrativa – Fornecedor & estoque Vamos pensar juntos ... Levantamento de Requisitos Os atributos complexos são semelhantes aos elementos complexos em XML Desafio 1: Replique e melhore! [295] Projeto de Universidade [296] Refinando Cliente PJ e PF – Uma conta pode ser PJ ou PF, mas não pode ter as duas informações Pagamento – Pode ter cadastrado mais de uma forma de pagamento Entrega – Possui status e código de rastreio Levantamento de Requisitos Os atributos complexos são semelhantes aos elementos complexos em XML Desafio 2: Modelando do zero [297] Oficina - Narrativa [298] Sistema de controle e gerenciamento de execução de ordens de serviço em uma oficina mecânica Clientes levam veículos à oficina mêcanica para serem consertados ou para passarem por revisões periódicas Cada veículo é designado a uma equipe de mecânicos que identifica os serviços a serem executados e preenche uma OS com data de entrega. Levantamento de Requisitos Os atributos complexos são semelhantes aos elementos complexos em XML Oficina - Narrativa [299] A partir da OS, calcula-se o valor de cada serviço, consultando-se uma tabela de referência de mão-de-obra O valor de cada peça também irá compor a OS O cliente autoriza a execução dos serviços A mesma equipe avalia e executa os serviços Levantamento de Requisitos Os atributos complexos são semelhantes aos elementos complexos em XML Oficina - Narrativa [300] Os mecânicos possuem código, nome, endereço e especialidade Cada OS possui: n°, data de emissão, um valor, status e uma data para conclusão dos trabalhos. Levantamento de Requisitos Os atributos complexos são semelhantes aos elementos complexos em XML Oficina - Narrativa [301] Uma OS pode ser composta por vários serviços e um mesmo serviço pode estar contido em mais de uma OS. Uma OS pode ter vários tipos de peça e uma peça pode estar presente em mais de uma OS Levantamento de Requisitos Os atributos complexos são semelhantes aos elementos complexos em XML > Fórum/Artigos > Comunidade Online (Discord) Dúvidas? [302] Github https://github.com/julianazanelatto Referências https://dev.mysql.com/doc/ https://www.postgresql.org/docs/ https://www.w3schools.com/sql/ Links Úteis [303] Livros de Referência ELMASRI, Ramez; B. NAVATHE, Shamkant. Sistema de Banco de Dados. 7. ed. São Paulo: Pearson, 2018. Livros complementares RODZVILLA, John. A Review of “Learning SQL” Beaulieu, Alan. Sebastapol, CA: O’Reilly, 2009, 320 pp., $39.99, ISBN 978-0-596-52083-0. 2010. TEOREY, Toby J. Database modeling and design. Morgan Kaufmann, 1999. NIELD, Thomas. Getting Started with SQL: A Hands-On Approach for Beginners. " O'Reilly Media, Inc.", 2016. Para saber mais [304] Links https://www.cs.uct.ac.za/mit_notes/database/htmls/chp07.html Para saber mais [305] .MsftOfcThm_Background1_Fill_v2 { fill:#FFFFFF; } .MsftOfcThm_Accent4_lumMod_50_Stroke_v2 { stroke:#9F5900; } .MsftOfcThm_Background1_Fill_v2 { fill:#FFFFFF; } .MsftOfcThm_Background1_Fill_v2 { fill:#FFFFFF; } .MsftOfcThm_Background1_Fill_v2 { fill:#FFFFFF; } .MsftOfcThm_Accent4_Fill_v2 { fill:#FFC000; }
Compartilhar