Exemplo de Necessidade de Modelagem de Dados 1 Exemplo de Necessidade de Modelagem de Dados 2 1
Exemplo de Necessidade de Modelagem de Dados 3 Exemplo de Necessidade de Modelagem de Dados 4 2
Exemplo de Necessidade de Modelagem de Dados 5 Exemplo de Necessidade de Modelagem de Dados 6 3
Exemplo de Necessidade de Modelagem de Dados 7 Modelo Entidade-Relacionamento - MER - 8 4
Modelo Entidade-Relacionamento Principais Sintomas de Problemas na Administração de Dados: 1. Todos reclamam da dificuldade em obter informações; 2. Informações úteis não estão no sistema; 3. Alguns Processos importantes não geram histórico; 4. Informações Gerenciais são diferentes da Informações Operacionais; 9 Modelo Entidade-Relacionamento Principais Sintomas de Problemas na Administração de Dados: 5. Informações Gerenciais precisam ser redigitadas, agrupadas, reorganizadas e recalculadas; 6. Políticas da Empresa e Regras de Negócio são violadas; 7. As pessoas desconfiam das informações impressas, e fazem a soma manual. 10 5
Modelo Entidade-Relacionamento Modelagem de Dados Objetivo: Definir as regras do negócio, para que se torne possível detalhar as informações necessárias ao desempenho das atividades normais de cada setor. Essa é a tarefa inicial do analista de sistemas. A utilização de computadores nas tarefas do dia a dia de uma empresa requer um certo grau de organização das atividades e a identificação de uma série de elementos-chave para o bom andamento dos negócios. Essas definições são gerenciais e estratégicas, relacionadas às políticas adotadas na condução dos negócios e nas próprias características do ramo de atividade. 11 Modelo Entidade-Relacionamento Modelagem de Dados Exemplos de definições feitas durante uma modelagem de dados: - Levantamento das personagens e eventos envolvidos com o dia a dia da organização; - caracterizar particularmente cada um desses objetos, bem como os relacionamentos existentes entre eles; - identificar os objetivos finais da organização; - priorizar as atividades; - etc. 12 6
Modelo Entidade-Relacionamento M E R Definição: Modelo proposto por Peter Chen (1976), baseado na percepção do mundo real, que consiste em um conjunto de objetos básicos chamados entidades e nos relacionamentos entre esses objetos. Objetivo: Facilitar o projeto de banco de dados, possibilitando a especificação da estrutura lógica geral do banco de dados. 13 Modelo Entidade-Relacionamento Elementos: Entidades Conjuntos de objetos do mundo real que possui existência independente, com características próprias. Atributos Representam as características de uma Entidade. Relacionamentos Vínculos ou associações entre Entidades. 14 7
Entidade: Modelo Entidade-Relacionamento Princípios Básicos e Conceitos Gerais Uma entidade é uma representação abstrata de um objeto do mundo real. Assim, uma entidade pode ser a representação de um ser, de um fato, de uma coisa, de um organismo social, etc. Ex: funcionário, data, material usado pela empresa, departamento, etc. Podemos considerar um grupo de entidades que tem características semelhantes como formando conjuntos de entidades, como por exemplo o conjunto de funcionários, o conjunto de livros, o conjunto de departamentos, etc. No MER, um conjunto de entidades é representado por um retângulo. Funcionários Livros Departamentos 15 Atributos: Modelo Entidade-Relacionamento A representação de um objeto do mundo real como uma entidade, não é de grande valia se não associarmos a esse ponto as informações que desejamos guardar sobre o objeto. Quando nos referimos à José da Silva, por exemplo, devemos associar informações como seu nome, endereço, sexo, salário, etc. Esse conjunto de valores são denominados de atributos. Os atributos são representados por elipses, conforme exemplo abaixo: Cod-func Funcionários * Endereço Estado Nome Dependentes Cidade 16 8
Modelo Entidade-Relacionamento Atributo Monovalorado: Assume um único valor para cada elemento do conjunto-entidade. Ex: Nome Atributo Composto: Formado por um ou mais sub-atributos. Ex: Endereço (Cidade, Estado, etc). Atributo Multivalorado: Uma única entidade tem diversos valores para esse atributo (seu nome é sempre representado no plural). Ex: Dependentes 17 Modelo Entidade-Relacionamento Atributo Determinante: Identifica cada entidade de um conjunto-entidade, também conhecido como atributo-chave. Ex: Cod-func Domínio de um Atributo: Conjunto de valores permitidos para o atributo. Ex: Sexo {M, F} 18 9
Relacionamento: Modelo Entidade-Relacionamento São estruturas que representam os vínculos que existem entre as entidades no mundo real, indicando portanto a associação de elementos de duas ou mais entidades. A representação diagramática desse conjunto é um losango. Ex: José está matriculado na disciplina banco de dados. Onde: João: Elemento do conjunto de valores do atributo Nome do aluno da entidade Aluno; Banco de Dados: Elemento do conjunto de valores do atributo Nome da disciplina da entidade Disciplina; Matriculado: Ligação existente entre um aluno e uma disciplina. Aluno Matriculado Disciplina 19 Modelo Entidade-Relacionamento Classe: Identifica quantas vezes cada instância de uma entidade pode participar do relacionamento. Para relacionamentos binários, temos os seguintes tipos de classes: - 1 : 1-1 : N - N : N Cardinalidade de Relacionamentos: Representa a freqüência com que existe o relacionamento. 20 10
Modelo Entidade-Relacionamento Classe 1 : 1 (um-para-um) Uma entidadade em A está associada no máximo a uma entidade em B e uma entidade em B está associada no máximo a uma entidade em A a1 b1 a2 b2 a3 b3 Conjunto-Entidade A Conjunto-Entidade B 21 Modelo Entidade-Relacionamento Relacionamento Classe 1 : 1 José é casado com Maria. Onde: José: Elemento do conjunto de valores do atributo Nome da entidade Homem. Maria: Elemento do conjunto de valores do atributo Nome da entidade Mulher. Casado: Ligação entre um homem e uma mulher, sendo que um homem pode ser casado com uma e apenas uma mulher, assim como uma mulher pode ser casada com um e apenas um homem. Homem 1 1 Casamento Mulher 22 11
Modelo Entidade-Relacionamento Cada Mulher pode casar com quantos Homens? Homem 1 1 Casamento Mulher Cada Homem pode casar com quantas Mulheres? 23 Modelo Entidade-Relacionamento Classe 1 : N (um-para-muitos) Uma entidadade em A está associada a qualquer número de entidades em B, enquanto uma entidade em B está associada no máximo a uma entidade em A a1 b1 b2 a2 b3 b4 a3 b5 Conjunto-Entidade A Conjunto-Entidade B 24 12
Modelo Entidade-Relacionamento Relacionamento Classe 1 : N ou N : 1 Ex: João trabalha no Departamento de Informática Onde: João: Elemento do conjunto de valores do atributo Nome da entidade Funcionário. Depto. Informática: Elemento do conjunto de valores do atributo Nome do departamento da entidade Departamento. Trabalha: Ligação entre um Funcionário e um Departamento, onde um funcionário pode trabalhar em um e somente um departamento e um departamento pode ter vários funcionários. Funcionários N 1 Trabalha Departamento 25 Modelo Entidade-Relacionamento Cada Funcionário trabalha em quantos Departamentos? Funcionário N 1 Trabalha Departamento Cada Departamento pode ter quantos Funcionários? 26 13
Modelo Entidade-Relacionamento Classe N : N (muitos-para-muitos) Uma entidadade em A está associada a qualquer número de entidades em B, e uma entidade em B está associada a qualquer número de entidades em A a1 b1 a2 b2 a3 b3 a4 b4 Conjunto-Entidade A Conjunto-Entidade B 27 Modelo Entidade-Relacionamento Relacionamento Classe N : N Ex: O Lucas está matriculado na disciplina de Banco de Dados Onde: Lucas: Elemento do conjunto de valores do atributo Nome da entidade Aluno. Banco de Dados: Elemento do conjunto de valores do atributo Nome da Disciplina da entidade Disciplina. Matriculado: Ligação existente entre um aluno e uma disciplina, onde um aluno pode estar matriculado em várias disciplinas e cada disciplina pode ter vários alunos matriculados. Aluno N Matriculado N Disciplina 28 14
Modelo Entidade-Relacionamento Cada Aluno pode se matricular em quantas Disciplinas? Aluno N Matriculado N Disciplina Cada Disciplina pode ter a participação de quantos Alunos? 29 Modelo Entidade-Relacionamento - Exercícios cios - 30 15
MER Abstração de Dados Abstração de dados: O conceito de abstração de dados está associado à característica de se observar somente os aspectos de interesse, sem se preocupar com maiores detalhes envolvidos. Neste contexto, um banco de dados pode ser visto sem se considerar a forma como os dados estão armazenados fisicamente. Exemplos de abstração de um banco de dados: - Um usuário que deseja consultar um banco de dados não necessita se importar com dados que não estão associados ao seu dia-a-dia (se ele é do departamento de engenharia, não deve ter acesso aos dados de folha de pagamento). - Um programador de aplicação não precisa se importar com aspectos físicos de armazenamento (quais os arquivos que armazenam o banco de dados, pois é uma preocupação do DBA). - Um administrador de banco de dados deve saber detalhes físicos do banco de dados para realizar ajustes que poderão resultar em melhoria de performance. 31 MER Abstração de Dados A finalidade de um sistema de banco de dados é simplificar e facilitar o acesso aos dados. O fator principal de satisfação de um usuário com um sistema de banco de dados é seu desempenho. Se o tempo de resposta a uma solicitação é muito longo, o valor do sistema é diminuído. O desempenho de um sistema depende da eficiência das estruturas de dados usadas para representar os dados no banco de dados, e quão eficientemente o sistema é capaz de operar essas estruturas de dados. Um modelo de dados é a principal ferramenta no fornecimento dessa abstração. Estrutura de banco de dados denota tipos de dados e relacionamentos entre eles. 32 16
MER - Exercícios cios Definir um MER baseado nos seguintes dados: Entidades e Atributos Cliente: nome, seguro, RG Conta: nroconta, saldo Transação: nrotrans, data, valor Relacionamentos Cliente X Conta (data) Conta X Transação 33 MER - Exercícios cios NOME RG NROCONTA SALDO CLIENTE C - C CONTA SEGURO DATA C - T NROTRANS TRANSAÇÃO DATA VALOR 34 17
MER - Exercícios cios Definir um MER baseado nos seguintes dados: Entidades e Atributos Depósito (D): nome_agencia, valor_dep, conta, nome_cliente Agência (A): cidade_ag, nome_ag, tot_deposito Empréstimo (E): nome_agencia, valor_emp, nome_cliente Cliente (C): nome_cliente, cidade_cliente Relacionamentos Depósito X Agência Agência X Empréstimo Agência X Cliente 35 MER - Exercícios cios Nome_ag Valor_dep Cidade_ag Nome_ag Tot_dep DEPÓSITO N 1 1 AGÊNCIA D - A A - E 1 N Conta Nome_cli A - C EMPRÉSTIMO Nome_cli N Nome_ag Valor Cidade_cli CLIENTE Nome_cli 36 18
MER - Exercícios cios Realizar um MER baseado na seguinte descrição: Um usuário de uma localidade qualquer possui um determinado número de créditos em cartão indutivo, para utilizar um telefone público (TP). Este TP possui um número de linha e uma categoria de chamada (Local, DDD, DDI). O TP utiliza uma central telefônica para fazer a chamada. Esta central possui um prefixo e um tipo de cobrança. A central liga para a chamada destino, que possui um número e um estado operacional (ocupado, livre, etc). Finalmente o destino conecta-se com o usuário. 37 MER - Exercícios cios MER TELEFONE PÚBLICO Entidades e Atributos Usuário (U): localidade, nrocredcartao TP (T): nrolinha, categoria Central (C): prefixo, tipocobranca Destino (D): nrodestino, estadooper Relacionamentos Usuário X TP TP X Central Central X Destino Destino X Usuário 38 19
MER - Exercícios cios Localidade Nrocredcartao Nrolinha Categoria 1 1 USUÁRIO U - T TP 1 N D - U T - C 1 N 1 1 DESTINO C - D CENTRAL Nrodestino Estadooper Prefixo Tipocobrança 39 MER - Exercícios cios Realizar um MER baseado na seguinte descrição: A companhia possui funcionários que são registrados com um código, seu nome, sexo, data de nascimento, endereço, cidade, UF e salário. Cada funcionário trabalha para um departamento que é identificado na companhia por um número, nome e que possui um registro do número total de funcionários. O departamento é gerenciado por uma gerência e controla um projeto. Cada projeto possui um número, nome, descrição e utiliza um determinado local. Este local possui um código, nome, cidade e UF. Um funcionário pode ser gerente de uma gerência. Quando isso acontece a data de início dessa nova atribuição deve ser registrada pela gerência. Os funcionários podem ter dependentes, os quais devem ser cadastrados através de um número, nome, sexo, data de nascimento e grau de parentesco. Observar que os dependentes possuem uma relação de dependência de um funcionário. 40 20
MER - Exercícios cios MER COMPANHIA Entidades e Atributos Funcionário: cod_func, nome, sexo, dtnasc, salario, ender, cidade, uf Departamento: nrodep, nome, nrofuncdep Gerência: dt_inic_ger Projeto: nroproj, nome, desc Local: codlocal, nome, cidade, uf Dependente: nrodep, nome, sexo, dtnasc, parentesco Relacionamentos 1) Funcionário trabalha para um departamento, pode ser gerente de uma gerência e pode ter dependentes; 2) Departamento é gerenciado por uma gerência e controla um projeto; 3) Projeto utiliza um local; 4) Dependente é dependente de um funcionário. 41 MER - Exercícios cios codfunc nome sexo dtnasc nrodep nome nrofuncdep UF FUNCIONÁRIO cidade salario endereço É gerente Trabalha para dtinicger GERÊNCIA DEPARTAMENTO É gerenciado nome É dependente parentesco codloc nomeloc controla DEPENDENTE LOCAL utiliza PROJETO nrodep sexo dtnasc cidade UF nome nroproj descrição 42 21
Conceitos Complementares 43 Conceitos Instâncias Os bancos de dados mudam com o tempo na medida em que informações são inseridas e removidas. A coleção de informações armazenadas no banco de dados em um particular instante é chamada de instância do banco de dados. Esquemas Projeto geral do BD, que não muda com frequência. São subdivididos de acordo com o nível de abstração: - Nível mais baixo: esquema físico - Nível intermediário: esquema conceitual - Nível mais alto: subesquema Esquema = Definição, Modelo Instância = Valor, Conteúdo Cliente (Saldo, Idade) José (200.00, 32) Maria (500.00, 25) 44 22
Conceitos Para ilustrar a distinção entre esquemas e instâncias faremos uma analogia com os conceitos de tipos de dados, variáveis e valores em linguagens de programação. Linguagem de Programação Banco de Dados Variável de um determinado tipo tem um valor particular em um determinado instante de tempo. O conceito de valor de uma variável na linguagem de programação corresponde ao conceito de instância de um esquema de BD. 45 Conceitos Independência de Dados É o principal objetivo que deve ser alcançado pelo BD, pois é o que vai possibilitar a expansão de atividades da empresa pela facilitação de desenvolvimento de novos sistemas. É a capacidade de permitir evolução na descrição de dados da empresa, como a inclusão de um novo dado na estrutura existente, sem que os sistemas ou aplicações sejam alterados. Existem dois níveis de independência de dados: Independência Física de Dados Independência Lógica de Dados 46 23
Conceitos Independência Física de Dados: É a habilidade de modificar o esquema físico (estrutura) sem a necessidade de reescrever os programas aplicativos. Essas modificações ocasionalmente são necessárias para melhorar o desempenho do sistema. Independência Lógica de Dados: É a habilidade de modificar o esquema conceitual (consultas à BD) sem a necessidade de reescrever os programas aplicativos. Tais alterações são necessárias quando a estrutura lógica do BD é alterada. 47 Conceitos Linguagem de Definição de Dados (DDL) Linguagem que define as aplicações, arquivos e campos que irão compor o banco de dados (comandos de criação e atualização da estrutura dos campos dos arquivos). Também é conhecida por DDL (Data Definition Language). EX: Create Table (comando SQL que cria tabela) Create Index (comando SQL que cria índice em uma tabela) Onde ficam armazenadas estas informações? Dicionário de Dados (Data Dictionary - DD): arquivo que contém metadados; isto é, dados acerca de dados. Este arquivo é consultado antes de dados reais serem lidos ou modificados no sistema de banco de dados. 48 24
Conceitos Linguagem de Manipulação de Dados (DML) Linguagem que permite aos usuários acessar ou manipular dados organizados por um modelo de dados apropriado, conhecida por Data Manipulation Language. O que é a manipulação de dados? - A recuperação da informação armazenada no BD; - A inserção de novas informações no BD; - A eliminação de informações do BD; - A modificação de dados armazenados no BD. Uma consulta (query) é um comando requisitando o resgate de uma informação. 49 Conceitos Hardware Consiste dos volumes de memória (discos) nos quais reside o banco de dados, juntamente com os dispositivos de manutenção de dados associados (unidades de fitas, fitas, etc.). Software Entre o banco de dados físico (isto é, os dados armazenados) e os usuários do sistema encontra-se uma camada de software, usualmente chamada de sistema de gerenciamento do banco de dados ou DBMS (Data Base Management System). Todas as solicitações dos usuários para acesso ao banco de dados são manipuladas pelo DBMS. Outra função é isolar os usuários dos níveis de detalhes de hardware, fornecendo uma visão mais elevada e um acesso aos dados mais amigável. 50 25
Conceitos Usuários Existem 4 tipos diferentes, segundo o modo pelo qual esperam interagir com o sistema: -Programadores de Aplicativos: responsável por escrever os programas de aplicação que utilizam o banco de dados. Incluem chamadas DML em programas para realizarem tarefas adicionais ao sistema existente. -Usuários sofisticados: Interagem com o sistema sem escreverem programas, através de uma linguagem de consulta. -Usuários leigos: Interagem com o sistema através da utilização de programas aplicativos criados por outros usuários. -Administrador de Banco de Dados (Data Base Administrator-DBA): descrito a seguir. 51 Conceitos Administrador de Banco de Dados (DBA) - Principais Funções: - Definição de Esquemas: decide que informação manter, qual deve ser o conteúdo do BD assim como do Dicionário de Dados. - Definição de Estrutura de Armazenamento e Método de Acesso: Decide como os dados serão representados no BD, ou seja, qual a sua estrutura e como os dados serão acessados. -Modificação de Esquema e Organização Física: Deverá efetuar os ajustes adequados quanto às necessidades de modificações. -Concessão de autorização para acesso aos dados: Define privilégios para cada usuário. -Backup e Recuperação: recuperação Definir uma estratégia para backup e -Desempenho: Monitorar o desempenho e responder a mudanças de necessidades 52 26
Evolução Evolução dos sistemas de computação: 3 fases históricas: 1. Abordagem Tradicional 2. Abordagem de Sistemas Integrados 3. Abordagem de Banco de Dados 53 Evolução 1. Abordagem Tradicional Totalmente baseada em técnicas não-estruturadas, utilizando a intuição natural do analista, sua capacidade criativa e vivência dentro do Ambiente do sistema. Adaptação de grande quantidade de programas Alteração Mudança da BD Grande esforço de programação Implementação Recheada de Erros Esquecimento de alterações em alguns programas 54 27
Evolução Exemplo de Ambiente durante a abordagem tradicional: EMPRESA Depto A Sistema A BD A Analista A Depto B Sistema B BD B Analista B Depto C Sistema C BD C Analista C 55 Evolução Características da Abordagem Tradicional: - Cada aplicação tem seus próprios arquivos; - Inconsistência acentuada; - Subordinação de programas a arquivos; - Manutenção difícil e cara; - Analista dono do sistema; - Falta de integridade; - Segurança inexistente. 56 28
Evolução 2. Abordagem de Sistemas Integrados 1980: Problemas anteriores originaram a visão de Sistemas Integrados, para resolver questões de redundância acentuada e integridade de informações. Isso proporcionou uma visão corporativa dos sistemas. Visão Corporativa Dados de interesse comum à várias áreas da organização Integração entre os sistemas Resultado Eliminou a acentuada redundância de dados Sistemas passam a usar uma base única de informação, sem repetição de arquivos por sistemas Grau acentuado da unicidade da informação Integração do sistema a nível de empresa, ficando dependentes um dos outros, pois a BD é compartilhada 57 Evolução Exemplo de ambiente durante a abordagem de sistemas integrados: EMPRESA BD Comum Depto A Sistema A Analista A Depto C Sistema C Analista C Depto B Sistema B Analista B 58 29
Evolução Características da Abordagem de Sistemas Integrados: - Pouco maleável; - Alterações comprometem vários sistemas; - Aplicações estáticas com o tempo; - Problemas em um sistema paralisam atividades em outro; - Programas ainda subordinados a arquivos; - Visão de usuário é inexistente; - Integridade e segurança ainda fracas. 59 Evolução Conseqüência da utilização da abordagem de sistemas integrados: Implicações: Com o crescimento das aplicações esta filosofia tornou-se ineficiente. Motivos: - Qualquer alteração na BD afetava um número ainda maior de sistemas e programas; - Dificuldades criadas em função do volume de alterações se tornaram as aplicações estáticas, sem evolução tecnológicas, levando os CPDs a uma estagnação com ineficiência completa. 60 30
Evolução 3. Abordagem de Banco de Dados As duas abordagens anteriores enfatizavam o PROCESSO, por isso existiam dificuldades de manutenção, pois os programas eram acoplados aos arquivos. Exemplo: Sistema de cadastro de alunos: associado ao arquivo ALUNOS Sistema de cadastro de professores: associado ao arquivo PROFESSORES 61 Evolução Abordagem de Banco de Dados Enfatiza DADOS, não PROCESSOS Atualmente o processamento é visto como consequência dos dados e não mais o contrário. Preocupações para usar o novo enfoque: - Definição de um modelo de dados em termos da empresa como um todo, observando o inter-relação entre as diversas áreas. - Definir a implementação física dos dados 62 31
Evolução Abordagem de Banco de Dados Vantagens: - Desenvolvimento mais flexível e produtivo; - Integração dos dados em nível empresarial; - Transparência dos dados quanto às aplicações; - Maior controle sobre a integridade dos dados; - Maiores controles de Segurança dos dados. Requisitos: - Aquisição e utilização de um SGBD; - Utilização de um Dicionário de Dados; - Centralização da definição de dados; - Centralização do projeto das bases de dados. 63 Sistemas Gerenciadores de Banco de Dados (SGBD) Sistema Gerenciador de Banco de Dados (SGBD) Coleção de programas que permite usuários criarem e manterem bancos de dados. Software de propósito geral que facilita os processos de definir, construir e manipular BDs para diversas aplicações. Definir: Especificar os tipos de dados, estruturas e restrições para os dados armazenados no BD. Construir: Processo de armazenar os próprios dados em algum meio de armazenamento que é controlado pelo SGBD. Manipular: Incluir funções como consultar o banco de dados para recuperar dados, atualizar o banco de dados para refletir mudanças, e gerar relatórios dos dados. 64 32
Sistemas Gerenciadores de Banco de Dados (SGBD) Vantagens e Características de um SGBD 1) REDUÇÃO OU ELIMINAÇÃO DE REDUNDÂNCIAS - Possibilita a eliminação de dados privativos de cada sistema. Os dados, que eventualmente são comuns a mais de um sistema, são compartilhados por eles, permitindo o acesso a uma única informação sendo consultada por vários sistemas. 2) ELIMINAÇÃO DE INCONSISTÊNCIAS - Através do armazenamento da informação em um único local com acesso centralizado e, sendo compartilhada à vários sistemas, os usuários estarão utilizando uma informação confiável. A inconsistência ocorre quando um mesmo campo tem valores diferentes em sistemas diferentes. Exemplo, o estado civil de uma pessoa é solteiro em um sistema e casado em outro. Isto ocorre porque esta pessoa atualizou o campo em um sistema e não o atualizou em outro. Quando o dado é armazenado em um único local e compartilhado pelos sistemas, este problema não ocorre. 65 Sistemas Gerenciadores de Banco de Dados (SGBD) 3) COMPARTILHAMENTO DOS DADOS - Permite a utilização simultânea e segura de um dado, por mais de uma aplicação ou usuário, independente da operação que esteja sendo realizada. Deve ser observada apenas o processo de atualização concorrente, para não gerar erros de processamento (atualizar simultaneamente o mesmo campo do mesmo registro). Os aplicativos são por natureza multiusuário. 4) PADRONIZAÇÃO DOS DADOS - Permite que os campos armazenados na base de dados sejam padronizados segundo um determinado formato de armazenamento (padronização de tabela, conteúdo de campos, etc) e ao nome de variáveis seguindo critérios padrões pré-estabelecido pela empresa. Ex. Para o campo "Sexo" somente será permitido armazenamento dos conteúdos "M" ou "F". 66 33
Sistemas Gerenciadores de Banco de Dados (SGBD) 5) MANUTENÇÃO DE INTEGRIDADE - Exige que o conteúdo dos dados armazenadas no Banco de Dados possuam valores coerentes ao objetivo do campo, não permitindo que valores absurdos sejam cadastrados. Exemplo: Um funcionário que faça no mês 500 horas extras, ou um aluno que tenha nascido no ano de 1860. 6) EVITAR NECESSIDADES CONFLITANTES - Representa a capacidade que o administrador de Banco de Dados deve ter para solucionar "prioridades sempre altas" de todos os sistemas, tendo ele que avaliar a real necessidade de cada sistema para a empresa para priorizar a sua implantação. 7) RESTRIÇÕES DE SEGURANÇA - Define para cada usuário o nível de acesso a ele concedido (leitura, leitura e gravação ou sem acesso) ao arquivo e/ou campo. Este recurso impede que pessoas não autorizadas utilizem ou atualizem um determinado arquivo ou campo. 67 Sistemas Gerenciadores de Banco de Dados (SGBD) 8) INDEPENDÊNCIA DOS DADOS - Representa a forma física de armazenamento dos dados no Banco de Dados e a recuperação das informações pelos programas de aplicação. Esta recuperação deverá ser totalmente independente da maneira com que os dados estão fisicamente armazenados. Quando um programa retira ou inclui dados o SGBD compacta-os para que haja um menor consumo de espaço no disco. Este conhecimento do formato de armazenamento do campo é totalmente transparente para o usuário. A independência dos dados permite os seguintes recursos: a) Os programas de aplicação definem apenas os campos que serão utilizados independente da estrutura interna dos arquivos; b) Quando há inclusão de novos campos no arquivo, será feita manutenção apenas nos programas que utilizam esses campos, não sendo necessário mexer nos demais programas. 68 34
Sistemas Gerenciadores de Banco de Dados (SGBD) Diferenças para aplicações tradicionais baseadas em processamento de arquivos: a) Único repositório X Arquivos definidos por cada usuário. b) Existência de um catálogo ou Dicionário de Dados: - Completa Definição ou Descrição do BD (Metadados); - Estrutura, Tipo, Formato de Armazenamento para cada item dos dados, bem como Restrições. 69 Sistemas Gerenciadores de Banco de Dados (SGBD) c) Suporte a Múltiplas Visões dos Dados: - Subconjunto dos dados ou dados virtuais; - Suporta diferentes perspectivas do BD para atender necessidades específicas dos usuários; d) Compartilhamento de Dados e Processamento de Transações Multiusuário: - Controle de Concorrência: assegurar que diversos usuário tentando atualizar os mesmos dados o façam de uma maneira controlada tal que o resultados das atualizações é correto. 70 35
Sistemas Gerenciadores de Banco de Dados (SGBD) Estrutura Geral Um sistema de banco de dados é dividido em módulos que tratam de cada uma das responsabilidades do sistema geral. Seus componentes funcionais são os seguintes: Gerenciador de arquivos: Gerencia a alocação do espaço na armazenagem do disco e as estruturas de dados utilizadas para representar a informação armazenada no disco. Gerenciador do banco de dados: Fornece a interface entre os dados de baixo nível armazenados no disco e os programas aplicativos de consulta submetidas ao sistema. 71 Sistemas Gerenciadores de Banco de Dados (SGBD) Processador de Consultas: Traduz comandos numa linguagem de consulta em instruções de baixo nível que o gerenciador do banco de dados entende. Também otimiza a requisição do usuário, encontrando uma boa estratégia para executar a consulta. Pré-compilador DML: Converte comandos DML (Data Manipulation Language) embutidos em um aplicativo para chamadas de processamento normal na linguagem hospedeira. Interage com o processador de consultas para gerar o código apropriado. Compilador DDL: Converte comandos DDL (Data Definition Language) em um conjunto de tabelas contendo metadados ou dados sobre dados. Tais dados são consultados antes que os dados reais sejam lidos ou modificados no sistema de banco de dados. 72 36
Sistemas Gerenciadores de Banco de Dados (SGBD) Estruturas de dados adicionais Arquivos de dados: Armazenam o banco de dados propriamente dito. Dicionário de dados: Armazenam metadados sobre a estrutura do banco de dados. Índices: Fornecem acesso rápido aos itens de dados. 73 Sistemas Gerenciadores de Banco de Dados (SGBD) Usuários ingênuos Programadores de Aplicativos Usuários de Alto Nível Administrador de Banco de Dados Interfaces do Aplicativo Programas Aplicativos Consulta Esquema de Banco de Dados Pré-Compilador da Linguagem de Manipu- Lação de Dados Processador de Consulta Compilador de linguagem de definição de dados Código-objeto de Programas Aplicativos Esquema de Banco de Dados Sistema Gerenciador de Banco de Dados Gerenciador de Arquivos Arquivos de Dados Dicionário de Dados Disco de Armazenamento 74 37