Banco de Dados Gerenciamento de Arquivos Sistema Gerenciador de Banco de Dados Modelos de Dados Gerenciamento de Arquivos Gerenciamento de Arquivos Gerenciamento de Arquivos Em uma indústria são executadas três funções: ◦ Vendas Contato com os clientes, fornecimento de cotações de preços, vendas e informações sobre produtos; ◦ Produção Atividades relativas à produção: planejamento da produção e controle do que foi produzido; ◦ Compras Atividades relacionadas à aquisição de insumos necessários à produção, cotação de preços junto a fornecedores, compras e acompanhamento de fornecimento. Os dados referentes aos produtos são usados em todas as funções acima; Gerenciamento de Arquivos Produção Arquivos Produção produtos Vendas Arquivos Vendas produtos Compras Arquivos Compras produtos Se cada uma das funções acima for informatizada de forma separada, sem considerar a informatização das demais funções, pode ocorrer que, para cada uma das funções, seja criado um arquivo separado para produtos. Surge o problema de redundância de dados. Uma informação está representada várias vezes. Esta situação trás diversos problemas: ◦ Entrada repetida da mesma informação; pode resultar em erros de transcrição de dados ◦ Inconsistência de dados; a estrutura das informações sobre produto pode ser diferente para os diversos sistemas. Gerenciamento de Arquivos Produção Vendas Compras Banco de Dados produtos A solução para evitar a redundância de informações é o compartilhamento de dados. Cada informação é armazenada uma única vez, sendo acessada pelos vários sistemas. Ao conjunto de arquivos integrados que atendem a um conjunto de sistemas dá-se o nome de Banco de Dados. A estrutura interna dos arquivos passa a ser mais complexa, pois devem ser construídos de forma a atender às necessidades dos diferentes sistemas. É necessário um sistema sofisticado para gerenciar os dados do banco de dados. Sistema Gerenciador de Banco de Dados (SGBD) Sistema Gerenciador de Banco de Dados (SGBD ou DBMS) Sistema Gerenciador de Banco de Dados (SGBD) É um sistema computadorizado de armazenamento de registros; Os usuários desse sistema podem realizar diversas operações sobre tais arquivos: ◦ ◦ ◦ ◦ Acrescentar novos objetos/elementos; Inserir novos dados; Buscar/alterar/eliminar dados; Remover objetos/elementos do banco de dados; Sistema Gerenciador de Banco de Dados (SGBD) Coleção de dados inter-relacionados e um conjunto de programas (softwares) para acessar esses dados. O principal objetivo de um SGBD é proporcionar um ambiente eficiente para armazenar e recuperar dados. Os SGBDs são concebidos para gerenciar grandes quantidades de dados. O gerenciamento dos dados envolve tanto a definição de estruturas para armazenamento dos dados como a implementação de mecanismos para a manipulação desses dados. Sistema Gerenciador de Banco de Dados (SGBD) - componentes Hardware ◦ meios de armazenamento Dados ◦ depósito de dados armazenados. Software ◦ Entre os dados e os usuários do sistema encontra-se uma camada de software que é o sistema de gerenciamento de banco de dados (SGBD). Usuários ◦ Programador de sistemas ◦ Usuário final ◦ DBA Sistema Gerenciador de Banco de Dados (SGBD) - objetivos Independência de dados ◦ Capacidade de permitir que haja uma evolução na descrição de dados, sem que os sistemas ou aplicações (os programas) tenham de ser alterados. Controle de redundância dos dados ◦ Controle centralizado dos dados compartilhados por diversas aplicações, reduzindo a repetição de dados a um mínimo. Segurança de dados ◦ Garantia de integridade e controle de acesso, que visam resguardar o banco de dados de uma possível perda ou destruição de dados; ◦ Capacidade de restauração parcial ou total do banco de dados através de cópias Privacidade dos dados ◦ Controles para que os dados possam ser acessados somente por pessoa autorizada Sistema Gerenciador de Banco de Dados (SGBD) - vantagens Um Banco de Dados proporciona à empresa um controle centralizado de seus dados operacionais, um de seus ativos mais valiosos. Dentre as diversas vantagens de um SGBD, pode-se destacar as seguintes: ◦ ◦ ◦ ◦ ◦ Eliminação de redundâncias de dados armazenados; Evitar inconsistência de dados; Os dados podem ser compartilhados; Fácil utilização de padrões; Restrições de segurança; Modelos de Dados Modelagem de Dados Modelos de Dados É um método de estruturar logicamente as informações (dados) Principais modelos de dados: ◦ Hierárquico ◦ Rede ◦ Relacional Modelos de Dados: hierárquico Os dados são estruturados em hierarquias (árvores) Os nós das hierarquias contêm ocorrências de registros, onde cada registro é uma coleção de campos (atributos), cada um contendo apenas uma informação. O registro da hierarquia que precede a outros é o registro-pai, os outros são chamados de registros-filhos. Modelos de Dados: hierárquico Clientes Contas Nome Endereço Cidade Conta Saldo José Av. Pio XI São Paulo 900 55,00 Maria R. São Francisco Recife 556 100.000,00 Maria R. São Francisco Recife 647 105.366,00 Gabriela R. do Sol Maceió 801 744,00 Gabriela R. do Sol Maceió 647 105.366,00 Modelos de Dados: rede O modelo em redes surgiu como uma extensão ao modelo hierárquico, eliminando o conceito de hierarquia e permitindo que um mesmo registro estivesse envolvido em várias associações. No modelo em rede, os registros são organizados em grafos onde aparece um único tipo de associação (set) que define uma relação 1:n entre 2 tipos de registros: proprietário e membro Modelos de Dados: rede Nome Endereço Cidade Conta Saldo José Av. Pio XI São Paulo 900 55,00 Maria R. São Francisco Recife 556 100.000,00 Maria R. São Francisco Recife 647 105.366,00 Gabriela R. do Sol Maceió 801 744,00 Gabriela R. do Sol Maceió 647 105.366,00 Clientes Contas Modelos de Dados: relacional O modelo relacional, tem por base a teoria dos conjuntos e álgebra relacional; O Modelo relacional revelou-se ser o mais flexível e adequado ao solucionar os vários problemas que se colocam no nível da concepção e implementação da base de dados; A estrutura fundamental do modelo relacional é a relação (tabela). Uma relação é constituída por um ou mais atributos (campos) que traduzem o tipo de dados a armazenar; Cada instância do esquema (linha) é chamada de tupla (registro). Modelos de Dados: relacional Nome Endereço Cidade Conta Saldo José Av. Pio XI São Paulo 900 55,00 Maria R. São Francisco Recife 556 100.000,00 Maria R. São Francisco Recife 647 105.366,00 801 744,00 647 105.366,00 Gabriela R. do Sol Maceió Gabriela R. do Sol Maceió Cliente Conta Cliente Cod_cliente Nome Rua Cidade São Paulo 01 José Av. Pio XI 02 Maria R. São Francisco Recife 03 Gabriela R. do Sol Cod_conta Saldo 900 55,00 556 100.000,00 647 105.366,00 801 744,00 Maceió Cliente_Conta Cod_cliente 01 02 02 03 03 Cod_conta 900 556 647 647 801 Exercícios Exercício Organizar os dados abaixo conforme os modelos hierárquico, rede e relacional; ◦ Curso - professor Arquivologia – Cassia, Antônio , Maria Biblioteconomia – Cassia, João, Maria ◦ Curso – disciplina Arquivologia – preservação, automação, GED, diplomática, Biblioteconomia – catalogação, indexação, automação ◦ Professor - Disciplina Maria – Catalogação, indexação, preservação João – Indexação, Automação Cassia – GED, Automação Antônio – Preservação, diplomática Modelos de Dados Modelagem Conceitual Modelos de Dados: hierárquico Modelos de Dados: rede Modelos de Dados Cod_cliente Nome Rua Cidade São Paulo 01 José Av. Pio XI 02 Maria R. São Francisco Recife 03 Gabriela R. do Sol Maceió Cod_conta Saldo 900 55,00 556 100.000,00 647 105.366,00 801 744,00 Cod_cliente 01 02 02 03 03 Cod_conta 900 556 647 647 801 Projeto de Banco de Dados Modelagem Conceitual Modelagem Conceitual Projeto de Banco de Dados A primeira etapa do projeto de um banco de dados é a construção de um modelo conceitual; O objetivo da modelagem conceitual é obter uma descrição abstrata dos dados que serão armazenados; A técnica de modelagem de dados mais utilizada é a abordagem entidade-relacionamento (E-R). Representado graficamente através de um diagrama entidade-relacionamento (DER); Modelagem Conceitual: entidade Conjunto de objetos da realidade sobre os quais se deseja manter informações no banco de dados; Pode representar tanto objetos concretos (uma pessoa, um automóvel) quanto objetos abstratos (um departamento, uma venda). É representada através de um retângulo com o nome da entidade. Produto Cliente Departamento Funcionário Modelagem Conceitual: relacionamento Conjunto de associações entre entidades; É representado através de um losango, ligado por linhas aos retângulos representativos das entidades que participam do relacionamento; Departamento Lotação Funcionário • Um conjunto de objetos classificados como funcionários (entidade FUNCIONÁRIO) • Um conjunto de objetos classificados como departamentos (entidade DEPARTAMENTO) • Um conjunto de associações, cada uma ligando um departamento a um funcionário. Modelagem Conceitual: relacionamento Departamento Funcionário Lotação f3 f1 f5 f7 f4 f2 f1, d1 f6 f2, d1 d1 f5, d2 d2 f6, d3 d3 Entidade FUNCIONÁRIO Relacionamento LOTAÇÃO Entidade DEPARTAMENTO Modelagem Conceitual: auto-relacionamento Não necessariamente um relacionamento associa duas entidades diferentes. Um relacionamento entre instâncias de uma mesma entidade é chamado de Auto-relacionamento Pessoa marido esposa casamento p3 p1 p5 p2 marido esposa p1, p3 p7 p4 p6 esposa Entidade PESSOA marido p6, p5 Relacionamento CASAMENTO Modelagem Conceitual: cardinalidade Número de ocorrências de entidade associadas a uma ocorrência da entidade em questão através do relacionamento. Quantas ocorrências de uma entidade podem estar associadas a uma determinada ocorrência de outra entidade através do relacionamento? Departamento n 1 Uma ocorrência de FUNCIONARIO pode estar associada ao no máximo 1 ocorrência de DEPARTAMENTO Lotação Funcionário A uma ocorrência de DEPARTAMENTO pode estar associada várias (n) ocorrências de FUNCIONÁRIO Modelagem Conceitual: relacionamentos 1 para 1 Funcionário Pessoa 1 1 marido 1 esposa casamento alocação 1 Mesa Modelagem Conceitual: relacionamentos 1 para n Curso 1 inscriçã o n Aluno Funcionário supervisor 1 supervisionado n supervisão Funcionário 1 n Dependente Modelagem Conceitual: relacionamento n para n Engenheiro Médico Produto composto n n n alocação n n consulta Projeto Paciente componente n composição Peça n n fornecimento Fornecedor Modelagem Conceitual: exemplo Deseja-se manter informações sobre alunos, cursos, disciplinas e departamentos: 1. Cada disciplina possui um departamento responsável. Um departamento é responsável por muitas disciplinas. pré-requisito n Departamento 1 n responsável 4. Um aluno está inscrito em um curso. Um curso pode ter nele inscritos muitos alunos. Disciplina n 2. Uma disciplina pode possuir diversos pré-requisitos. Uma disciplina pode ser pré-requisito de muitas outras disciplinas. 3. Uma disciplina pode aparecer no currículo de muitos cursos. Um curso pode possuir muitas disciplinas em seu currículo. n disc-curso n Aluno n inscrição 1 Curso Modelagem Conceitual: atributos Dado que é associado a cada ocorrência de uma entidade ou de um relacionamento; Muitas vezes os atributos não são representados para não sobrecarregar o diagrama; Projeto tipo nome código Modelagem conceitual: atributos de relacionamentos Assim como uma entidade, relacionamentos também podem possuir atributos; Engenheiro código n atuação n Projeto função nome código título Modelagem Conceitual: identificadores Cada entidade deve possuir um identificador; Um identificador é um conjunto de um ou mais atributos cujos valores servem para distinguir uma ocorrência (instância) das demais ocorrências da mesma entidade. Aluno RA nome endereço Modelagem Conceitual: generalização / especialização Propriedades podem ser atribuídas a entidades através do conceito de generalização / especialização. Através desse conceito é possível atribuir propriedades particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica. Filial 1 No DER, o símbolo para representar generalização/especialização é o triângulo Associada à ideia de generalização / especialização está a ideia de herança de propriedades; A entidade PESSOA-FÍSICA possui, além de seus atributos (CPF e sexo), também todos os atributos de CLIENTE (código e nome); n Pessoa Física código nome Cliente Pessoa Jurídica tipo empresa CPF sexo CNPJ Modelagem Conceitual Um modelo/diagrama ER é (ou deve ser) um modelo formal, preciso, não ambíguo; Dois diferentes leitores de um mesmo diagrama ER devem sempre entender exatamente o mesmo; Exercícios Comunidade Uma certa comunidade deseja fazer o cadastro de todos os seus moradores; Para cada residência será cadastrado o provedor/chefe da família e todos os seus dependentes (esposa/marido, filhos); Para o provedor /chefe é preciso cadastrar um número de identificação, o RG, o Nome e o Endereço; Para os dependentes será preciso cadastrar O RG , o Nome e o tipo de parentesco; Iglu Imóveis A Iglu Imóveis trabalha tanto com administração de condomínios quanto com administração de aluguéis. ◦ A Iglu administra condomínios formados por unidades condominiais. ◦ Cada unidade condominial é de propriedade de uma ou mais pessoas. Uma pessoa pode possuir diversas unidades; ◦ Cada unidade condominial pode estar alugada para no máximo uma pessoa. Uma pessoa pode alugar diversas unidades. Iglu Imóveis código nome Condomínio 1 composição n número Unidade n n aluguel propriedade n Data Registro 1 Pessoa CPF Nome Data N. Contrato Matrix Vídeo A Matrix Vídeo é uma pequena locadora de vídeos. Essa locadora mantêm um cadastro com os dados de seus clientes: nome, sobrenome, endereço e telefone. A todo cliente é dado um código. Para cada filme é necessário saber seu título e sua categoria (comédia, drama, aventura, etc). Cada filme recebe um identificador próprio. Cada DVD possui um código. Para cada filme há pelo menos um DVD, e cada DVD contém somente um filme. Alguns filmes necessitam mais de um DVD. Os clientes podem desejar encontrar os filmes estrelados pelo seu ator predileto. Por isso é necessário manter a informação dos atores que atuam em cada filme. Nem todo filme possui atores. Para cada ator os clientes às vezes desejam saber o nome real, bem como a data de nascimento. Matrix Vídeo código Pré nome volume nome endereço código nome n DVD n empréstimo Cliente n cod_cli telefone Categoria código Dt nascimento 1 1 n Filme id título n estrelado n Ator Nome Nome Artístico