Baixe o app para aproveitar ainda mais
Prévia do material em texto
Modelagem Conceitual Banco de Dados Prof. Me. Orlando da Silva Junior / Prof. Cesar Fernandes O que vamos estudar? Conceitos fundamentais em bancos de dados A relação entre bancos de dados e sistemas de informação SGBDs e modelos de dados Modelagem conceitual Modelo entidade-relacionamento Na prática: brModelo Desafio 2 Dados, Banco de Dados e SGDBs Dados são fatos conhecidos que podem ser registrados e possuem significado implícito. Um banco de dados é uma coleção de dados relacionados. Um Sistema Gerenciador de Banco de Dados (SGBD) é uma coleção de programas que permite aos usuários criar e manter um banco de dados. 3 1. Definir 2. Construir 3. Manipular 4. Compartilhar BD + SI Um SGBD é parte de uma tarefa maior conhecida como sistema de informação (SI), que consiste no uso de vários computadores, sistemas de armazenamento, softwares de aplicação e bancos de dados. O projeto de nova aplicação para um banco de dados contempla as seguintes fases: 1. Especificação: documentação detalhada de requisitos; 2. Projeto conceitual: define esquemas de dados em diferentes níveis de abstração; 3. Projeto lógico: modelo de dados implementado em um SGBD comercial; 4. Projeto físico: especificações sobre armazenamento e acesso ao banco de dados. 4 Diagrama simplificado ilustrando as principais fases do projeto de banco de dados (ELMASRI & NAVATHE, 2011) 5 Diagrama simplificado de um ambiente de sistema de banco de dados. (ELMASRI & NAVATHE, 2011) 6 SGBDs mais populares em agosto/2020 Fonte: https://db-engines.com/en/ranking Abstração de Dados Os SGBDs devem oferecer um mecanismo de abstração de dados a fim de ocultar detalhes sobre a organização e o armazenamento dos dados. Oferecer abstração de dados é uma característica fundamental dos SGBDs; Essa característica oculta de usuários e aplicações os detalhes sobre a organização e o armazenamento dos dados. Isso é importante para evitar alterações em todos os programas que acessam o banco de dados. Essa abstração pode ser obtida por meio de modelos de dados, que são conjuntos de conceitos que usados na descrição da estrutura de um banco de dados. 7 Modelos de Dados A estrutura de um banco de dados define os tipos de dados, os relacionamentos e as restrições que se aplicam aos dados. Os tipos de conceitos usados para descrever a estrutura do banco de dados nos ajuda a classificar os modelos de dados em: Modelos de dados conceituais (alto nível): oferecem conceitos que são próximos ao modo como muitos usuários percebem os dados; Modelos de dados físicos (baixo nível): oferecem conceitos que descrevem os detalhes de como os dados são armazenados no computador; Modelos de dados representativos (implementação): oferecem conceitos que podem ser facilmente entendidos pelos usuários finais, mas que não está muito distante do modo como os dados são organizados e armazenados no computador. 8 Modelos de Dados Conceituais Os modelos de dados conceituais utilizam conceitos como: Entidade: representa um objeto ou conceito do mundo real. Ex.: aluno, disciplina, turma, etc. Atributo: representa alguma propriedade que ajuda a descrever uma entidade. Ex.: nome do aluno, número de matrícula, etc. Relacionamento: representa uma associação entre duas ou mais entidades. Ex.: aluno pertence a uma turma. O modelo conceitual mais popular é o modelo entidade-relacionamento. 9 Modelagem Conceitual 10 Projeto e Modelagem Conceitual No projeto conceitual, estamos concentrados no uso de técnicas que trabalham com as estruturas e restrições do banco de dados. Nessa fase, criamos o esquema conceitual, que é uma descrição concisa dos requisitos de dados dos usuários e inclui detalhes dos tipos de entidade, relacionamentos e restrições. o Não aborda questões técnicas de implementação; o Pode ser utilizado para garantir que todos os requisitos de dados sejam atendidos e que não estejam em conflito. O Modelo Entidade-Relacionamento (MER) é um modelo de dados conceitual popular de alto nível utilizado em projetos conceituais de banco de dados. 11 Modelo Entidade-Relacionamento (MER) O Modelo Entidade-Relacionamento (MER) é um modelo de dados conceitual criado para representar a semântica associada aos dados do minimundo. O MER possui conceitos intuitivos e os projetistas de banco de dados podem utilizá-lo sem interferência de tecnologia específica. O esquema conceitual criado usando-se o MER é chamado de Diagrama Entidade- Relacionamento (DER). 12 MER Conjunto de conceitos e elementos de modelagem. DER Resultado do processo de modelagem de dados executado pelo projetista que conhece os fundamentos do MER. 13 Exemplo de DER para o esquema EMPRESA (ELMASRI & NAVATHE, 2011) O que representa? 1. Entidade 2. Atributo 3. Relacionamento Entidades e Atributos O objetivo básico representado pelo MER é a entidade, que é algo no mundo real com uma existência independente: Pode se tratar de uma existência física Ex.: pessoa, carro, casa, etc. Ou pode ser um objeto com existência conceitual Ex.: empresa, cargo, etc. Cada entidade é composta por um conjunto de atributos, que são as propriedades específicas que descrevem a entidade: Por exemplo, um funcionário pode ser descrito por seu nome, idade, endereço, salário e cargo. 14 Relacionamentos Na figura ao lado, vemos vários relacionamentos implícitos, como: DEPARTAMENTO.Gerente refere-se a um funcionário que gerencia o departamento; PROJETO.Departamento_Gerenciador refere-se ao departamento que controla o projeto; FUNCIONARIO.Supervisor refere-se a outro funcionário (aquele que supervisiona esse funcionário). No modelo ER, essas referências devem ser representadas como relacionamentos, e não como atributos. À medida que o projeto é refinado, esses atributos são convertidos em relacionamentos entre os tipos de entidade. 15 Projeto prelimitar de tipos de entidades. (ELMASRI & NAVATHE, 2011) 16 Notação para diagramas ER. (ELMASRI & NAVATHE, 2011) Vamos praticar? Usando o brModelo, construa o diagrama entidade-relacionamento ao lado. 17 Entidades | Conceitos Um tipo de entidade define uma coleção de entidades que têm os mesmos atributos. Tipos de entidade que não possuem atributos-chave próprios são chamados de tipos de entidade fraca. Um tipo de entidade fraca sempre tem restrição de participação total (dependência existencial) com respeito ao seu tipo de relacionamento de identificação, porque não é possível identificar uma entidade fraca sem a correspondente entidade proprietária. Na restrição de participação total, uma entidade só pode existir se estiver relacionada a alguma outra entidade. Um tipo de entidade fraca tem uma chave parcial, que é um conjunto de atributos que pode univocamente identificar entidades fracas relacionadas à mesma entidade proprietária. 18 Atributos | Tipos Existem vários tipos de atributos: Atributos simples e compostos; Atributos de valor único e multivalorados; Atributos armazenados e derivados; Atributos que aceitam valores NULL; Atributos complexos. E existe também o atributo-chave. 19 Atributos | simples e compostos Atributos simples são atributos que não podem ser divididos. Atributos compostos podem ser divididos em subpartes menores, representando atributos mais básicos, com significados independentes. Os atributos compostos são úteis para modelar situações em que um usuário às vezes se refere ao atributo composto como uma unidade, mas outras vezes refere especificamente a seus componentes. Ex.: endereço, telefone, etc. 20 Endereço Endereço da rua Nome da rua Número Complemento Cidade Estado CEP Atributos | valor único e multivalorados Atributos de valor único são aqueles que possuem valores únicos para uma entidade em particular.Ex.: uma pessoa tem uma idade com valor único Atributos multivalorados são aqueles que possuem conjuntos de valores para a mesma entidade. Pode ter um limite mínimo e um limite máximo para restringir o número de valores permitidos para cada entidade individual. Ex.: uma pessoa pode ter várias formações acadêmicas diferentes. 21 Atributos | armazenados e derivados Em algumas situações, dois ou mais valores de atributos pode estar relacionados. Ex.: Idade e Data de Nascimento de uma pessoa. Se a data de nascimento de uma pessoa é observada e, então, a idade dessa pessoa é calculada a partir dessa data, dizemos que: O atributo Data de Nascimento é um atributo armazenado; e O atributo Idade é um atributo derivado do atributo Data de Nascimento. 22 Atributos | aceitam valores NULL Usamos o valor especial NULL quando uma entidade particular pode não ter um valor aplicável para um atributo. Ex.: o número de apartamento de um endereço só existe se o endereço for um prédio de apartamentos. Também podemos usar NULL quando: Não conhecemos o valor de um atributo para determinada entidade; Sabemos que o valor existe, mas está faltando. Não sabemos se o valor existe. 23 Atributos | complexos Atributos compostos e multivalorados podem ser aninhados arbitrariamente. Podemos representar esse aninhamento agrupando componentes de um atributo composto entre parênteses, separá-los com vírgulas e exibir os atributos multivalorados entre chaves. 24 {Endereço_telefone( {Telefone (Codigo_area, Numero_telefone)}, Endereco(Logradouro (Numero, Rua, Numero_apartamento), Cidade, Estado, Cep) ) } Atributos | Atributos-chave Uma restrição importante das entidades de um tipo de entidade é a chave. Quando um tipo de entidade tem um ou mais atributos cujos valores são distintos para cada entidade individual no conjunto de entidades, chamamos esses atributos de atributos-chave. Os valores de um atributo-chave podem ser usados para identificar cada entidade de maneira exclusiva. Ex.: NOME é uma chave do tipo de entidade EMPRESA quando duas empresas não podem ter o mesmo nome. Todo tipo de entidade deve ter um atributo-chave, seja ele simples ou composto. 25 Relacionamentos | Grau O grau de um tipo de relacionamento é igual ao número dos tipos de entidades participantes. Considere um tipo de relacionamento TRABALHA_PARA entre os dois tipos de entidade FUNCIONARIO e DEPARTAMENTO: TRABALHA_PARA associa cada funcionário ao departamento para o qual o funcionário trabalha no conjunto de entidades correspondente. Cada instância de relacionamento no conjunto de relacionamentos TRABALHA_PARA associa uma entidade FUNCIONARIO a uma entidade DEPARTAMENTO. 26 Exemplo de instâncias de relacionamento. (ELMASRI & NAVATHE, 2011) Relacionamentos | Cardinalidade A razão de cardinalidade é uma restrição que corresponde ao número máximo de instâncias de relacionamento em que uma entidade pode participar: o Relacionamento 1:1 o Relacionamento 1:N ou N:1 o Relacionamento N:M 27 Exemplo de relacionamento 1:1 e N:M. (ELMASRI & NAVATHE, 2011) Relacionamentos | recursivos Em relacionamentos recursivos, o mesmo tipo de entidade participa mais de uma vez em um tipo de relacionamento, mas em funções diferentes. Nesses casos, o nome da função torna-se essencial para distinguir o significado da função de cada entidade. 28 Relacionamento recursivo. (ELMASRI & NAVATHE, 2011) Desafio Considere um banco de dados FILME em que os dados são registrados sobre a indústria do cinema. Os requisitos de dados são dados a seguir: Cada filme é identificado por um título e ano de lançamento. Cada filme tem uma duração em minutos. Cada um tem uma companhia produtora e é classificado sob um ou mais gêneros (como terror, ação, drama, etc.). Cada filme tem um ou mais diretores e um ou mais atores participando dele. Também tem um resumo da trama. Finalmente, cada filme tem zero ou mais falas, cada uma delas dita por um ator em particular que aparece no filme. Os atores são identificados por nome e data de nascimento, e aparecem em um ou mais filmes. Cada ator tem um papel no filme. Os diretores também são identificados por nome e data de nascimento, e dirigem um ou mais filmes. É possível que um diretor atue em um filme (incluindo aquele que ele ou ela também pode dirigir). As empresas produtoras são identificadas por nome e cada uma tem um endereço. Uma produtora produz um ou mais filmes. Crie um diagrama Entidade-Relacionamento para o banco de dados de filmes e construa o projeto usando o brModelo. 29
Compartilhar