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] Conceitos de BD Revisando Como ocorre esse processo? Design de BDs Requisitos relacionados ao SGBD Implementandoo 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 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] Design Implementação Teste Engenheiro de Software 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 [44] Como resolver? Modelagem 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 Projeto Conceitual [56]Fonte: livro de referência - Navathe Projeto Conceitual [57] Coleta Análise Dados & Requisitos Esquema conceitual Design conceitual Conceitos de Alto Nível Análise das queries Processo [58] Projeto Conceitual Projeto Lógico Projeto Físico O que vai ter? Como estruturar? Como implementar? Processo [59] Projeto Conceitual Projeto Lógico Projeto Físico Esquema conceitual Esquema lógico Esquema Físico Requisitos 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] Projeto Conceitual Projeto Lógico Projeto Físico Mapeamento Design Lógico Projeto Lógico [64] Projeto Conceitual Projeto Lógico Projeto Físico Mapeamento Design Lógico Esquema do BD 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 EspecificandoConceitos de Alto Nível Mapeamento 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? 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 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 Projeto Lógico [80] Coleta & Análise Esquema conceitual Esquema Lógico Esquema Lógico ValidaçãoProduçãoManutenção 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 AtributosEntidades Relacionamentos Domínio do Negócio Modelo ER [111] Modelo Conceitual AtributosEntidades Relacionamentos Estrutura Como representar? Domínio do Negócio Modelo ER [112] Modelo Conceitual AtributosEntidades 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 • 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 valores Atributo 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] CasaApartamento & 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 Entidades [128] Esquema Fonte: livro de referência - Navathe Coleção Tipo Entidades [129] Fonte: livro de referência - Navathe Elementos DER • Entidades • Atributos • Chaves Entidades [130] Fonte: livro de referência - Navathe Elementos DER • Entidades • Atributos • Chaves Entidade Set Entidade Fraca [131] • Chave não obrigatória • Depêndencia • Exclusão cascata Fonte: livro de referência - Navathe Chaves [132] Fonte: livro de referência - Navathe Elementos DER • Entidades • Atributos • Chaves Constraint Chaves [133] Elementos DER • Entidades • Atributos • Chaves Constraint Primary Key Modelo Relacional Domínio dos atributos [134] • Range de Valores • Tipo de dados • ER x UML Fonte: livro de referência - Navathe Exemplo [135] Exemplo - Company [136] Fonte: Livro de referência - Navathe Exemplo - Company [137] Fonte: Livro de referência - Navathe Exemplo - Company [138] Outras características: • Projetos x empregados • Número de horas por projeto Fonte: Livro de referência - Navathe Exemplo - Company [139] Outras características: • Projetos x empregados • Número de horas por projeto Atributo composto Fonte: Livro de referência - Navathe [140] Indo além … Refinando Fonte: Liv ro de ref erência - Nav athe Relacionamentos, Papéis e Constraintsestruturais [141] ER Model Relações implicítas • Gerente do departamento • Controle do projeto • Supervisor Relacionamentos [142] Empregado Departamento Projeto Departamentoempregado Relacionamentos [143] Relacionamento Relacionamento Fonte: Liv ro de ref erência - Nav athe Classificado • Grau • Auto-relacional ou não • Cardinalidade Relacionamentos [144]Fonte: Livro de referência - Navathe 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 Papel | Atribuição [148] Papéis de cada entidade Fonte: Livro de referência - Navathe Auto-relacionamento [149]Fonte: Livro de referência - Navathe 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 Constraints - Cardinalidade [152] 1:1 Constraints - Cardinalidade [153] M:N Constraints - Cardinalidade [154] N:1 Constraints - Participação [155] • Relação de dependência • Minimum Cardinality Constraint • Classificação: total e parcial Empregado & departamento Supervisor Atributos de relacionamento [156] Decisão subjetiva de Design Atributos de relacionamento [157] Decisão subjetiva de Design Mandatório Tipos de Entidades Fracas [158] ER Model Entidade Fraca [159] Tipos de entidades • Fracas • Fortes Dependem de outra Owner Entity Type Relacionamento ID Entidade Fraca [160] Tipos de entidades • Fracas • Fortes Dependem de outra Owner Entity Type Relacionamento ID Total Participation Constraint Entidade Fraca [161] Tipos de entidades • Fracas • Fortes DER Entidade Fraca [162] Carteira de Motorista Pessoa Relacionamento Total Participation Constraint Notações [163] • Entidades: classes/objetos • Relacionamentos: agregações • Atributos: propriedades elementares Entidade Relacionamento Atributo Notações [164] • Weak Entidades, relacionamentos • Chave Parcial: Linha pontilhada • Chave principal: linha continua • Dependência de existência: || weak .......... Relacionamentoweak ______ Notações [165] • Atributo derivado • Atributo composto • Participação total • Cardinalidade • Constraint estrutural Construtores do Esquema [166] Convenção - Nomeando • Entidade e Relacionamento • Atributo • função Significado Trivial? Refinando o Design ER para COMPANY [167] ER Model Exemplo - Company [168] Fonte: Livro de referência - Navathe Refinando - Company [169] Relacionamentos • Empregado x Departamento: Gerencia • Empregado x Departamento: Trabalha para • Departamento x Projeto: Controla Fonte: Livro de referência - Navathe Refinando - Company [170] Relacionamentos • Empregado x Empregado: Supervisiona • Empregado x Projeto: Trabalha em • Empregado x Dependente: Dependentes de Fonte: Livro de referência - Navathe Exemplo - Company [171] Fonte: Livro de referência - Navathe [172] 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 Outra Notação [175] Outra Notação [176] Classe Caso de uso Interação Principais Outra Notação [177] Classificação Outra Notação [178] • Desenvolvimento de software • Paradigma OO • Foco: Diagrama de Classes Outra Notação [179] • Classe (entidade) • Atributos • Operações • Associações Outra Notação [180] • Atributo de Link • Associação binária • Associação reflexiva • Multiplicidade * Outra Notação [181] Relacionamentos • Associação e • Agregação Direcional Outra Notação [182] Weak • qualified association • Discriminator 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) Relacionamento N-ário [185] Cenário Estabelecimento (loja) Fornecedor Projeto Produto Relacionamento N-ário [186] (s,j,p) Fonte: livro de referência - Navathe Relacionamento N-ário [187] (s,j) (j,p) (s,p) Fonte: livro de referência - Navathe Relacionamento N-ário [188] Weak & Depêndencia Fonte: livro de referência - Navathe Relacionamento N-ário [189] Cenário Consultas médicas Médico Exames Paciente Relacionamento N-ário [190] Exame Com médico ou com paciente? Relacionamento N-ário [191] Exame Com médico ou com paciente? Ternário?? Relacionamento N-ário [192] Agregação Relacionamento N-ário [193] Ternário? Relacionamento N-ário [194] Relacionamento N-ário [195] // 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 – 1970Evoluir... Modelo Enhanced ER [198] • Modelo ER – 1970 • EER: Novos conceitos semânticos • Desenvolvidos fora da área de BDs • Diagrama ERR Evoluir... Entidades Objeto 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 Modelo Enhanced ER [201] • Tipos de entidades • Conjuntos de entidades Subclasse & Subtipo Modelo Enhanced ER [202] • Tipos de entidades • Conjuntos de entidades Subclasse & Subtipo Empregados Administradores Suporte TI Especialistas Analistas Marketing Suporte Local Modelo Enhanced ER [203] Subclasse & Subtipo Objeto Objeto Objeto Objeto Objeto Objeto Objeto Classe 1 Classe 2 Comportamento e Estado gerais Modelo Enhanced ER [204] Subclasse & Subtipo Classe mãe Classe filho Classe filha Comportamento e estado Específicos 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 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 Modelo Enhanced ER [207] Fonte: livro de referência - Navathe 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 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 Modelo Enhanced ER [211] Fonte: livro de referência - Navathe Modelo Enhanced ER [212] • Atributos aplicados a algumas entidades • Relacionamentos específicos com subclasses Motivação Fonte: livro de referência - Navathe Modelo Enhanced ER [213] Generalização • Inverso da especialização • Propriedades comuns as entidades Modelo Enhanced ER [214] Fonte: livro de referência - Navathe Fonte: livro de referência - Navathe Generalização Modelo Enhanced ER [215]Generalização Fonte: livro de referência - Navathe [216] Generalização Especializaçã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 Constraints – Modelo EER[219] Constraint: • Predicated-defined (condição) • Attribute-defined Specialization • User-defined Secretária (Job_Type = 'Secretária') Constraints – Modelo EER [220] Constraint: • Predicated-defined (condição) • Attribute-defined Specialization • User-defined Constraints – Modelo EER [221] Constraint: • Predicated-defined (condição) • Attribute-defined Specialization • User-defined Atributo definidor da especialização Especialização definida por atributo Constraints – Modelo EER [222] Constraint: • Predicated-defined (condição) • Attribute-defined Specialization • User-defined Constraints – Modelo EER [223] Constraint: • Disjointness constraint • Overlapping • Completeness constraint ESPECIALIZAÇÃO Constraints – Modelo EER [224] Constraint: • Disjointness constraint • Overlapping • Completeness constraint Conjuntos disjuntos Constraints – Modelo EER [225] Constraint: • Disjointness constraint • Overlapping • Completeness constraint Constraints – Modelo EER [226] Constraint: • Disjointness constraint • Overlapping • Completeness constraint Total Parcial Constraints – Modelo EER [227] Constraint: • Disjointness constraint • Overlapping • Completeness constraint Total Parcial Pertencimento mandatório Particiação Opcional Modelo Enhanced ER [228] Fonte: livro de referência - Navathe Constraints – Regras [229] Deletar • Superclasse -> subclasses Inserção • Entidade em superclasse -> predicated-defined • Entidade em superclasse com total -> subclasse macth Hierárquia & rede de especialização [230] Especialização [231] • Hierárquia de especialização • Rede de especialização [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] [234] Herança [235] Subclasse compartilhada Herança múltipla 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] UML - Especialização 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 Projeto de Banco de Dados [273] • Contexto: Levantamento de Requisitos • Projeto Conceitual: Modelo ER • Projeto Lógico: Modelo Relacional UNIVERSIDADE ECOMMERCEORDEM DE SERVIÇO 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 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 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 Projeto de Banco de Dados [278] Ordem de serviço Responsável Cliente Pedido Ordem de serviço Modelando – Escopo de Universidade [279] ER Model Projeto de Universidade [280] Ensino Qual o escopo? Projeto de Universidade [281] Ensino Qual o escopo? Professor Aluno Curso Disciplina Coordenação 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 RequisitosProjeto 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 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 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 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 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 Modelando – Escopo de E-commerce [288] ER Model Projeto de E-commerce [289] Venda de produtos Qual o escopo? Projeto de E-commerce [290] Qual o escopo? Pedido Cliente Produto Estoque Fornecedor Venda de produtos 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 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 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 Projeto de E-commerce [294] Narrativa – Fornecedor & estoque • Vamos pensar juntos ... Levantamento de Requisitos 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 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 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 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 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 > Fórum/Artigos > Comunidade Online (Discord) Dúvidas? [302] https://discord.com/invite/gFKWUdTkaj 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] https://github.com/julianazanelatto https://dev.mysql.com/doc/ https://www.postgresql.org/docs/ https://www.w3schools.com/sql/ 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] https://www.cs.uct.ac.za/mit_notes/database/htmls/chp07.html
Compartilhar