1 UD 4: Sistema de Gerenciamento de Banco de Dados Assunto 1: Conceitos 1. BASE DE DADOS conjunto de dados armazenados logicamente conteúdo representa o estado atual de uma determinada aplicação modelo de uma determinada parte da realidade Propriedades de uma Base de Dados o Coleção de dados logicamente relacionados, o Projetada e construída com dados para um propósito específico, o Concebida para atender a um grupo de usuários, o Representação de algum aspecto do mundo real, o Qualquer mudança na realidade, provocará mudanças nesta base, o Possui alguma fonte de dados. SGBD (Sistema de Gerenciamento de Base de Dados) Software responsável pelo gerenciamento dos dados no Banco de Dados. É uma coleção de programas que permitem aos usuários: definirem, construírem e manipularem uma base de dados. Definir uma BD: especificação de tipos de dados a serem armazenados. Construir: armazenamento dos dados em algum meio controlado pelo SGBD. Manipular: utilização de funções para consulta, recuperação de dados, modificação da base nas mudanças na realidade e geração de relatórios. 2. CAPACIDADES DO SGBD Eliminação de Redundâncias Possibilita a eliminação de dados privativos de cada sistema. Os dados comuns a mais de um sistema, são compartilhados por eles, permitindo o acesso a uma única informação por vários sistemas. Eliminação de Inconsistências Armazenamento da informação em um único local com acesso descentralizado e compartilhado por vários sistemas. A inconsistência ocorre quando um mesmo campo tem valores diferentes em sistemas diferentes. Compartilhamento dos Dados Permite a utilização simultânea e segura de um dado, por mais de uma aplicação ou usuário. Deve ser observado apenas o processo de atualização simultâneo do mesmo campo ou registro, para não gerar erros de processamento. 2 Restrições de Segurança Define para cada usuário o nível de acesso a ele concedido ao arquivo e/ou campo (leitura, leitura e gravação ou sem acesso). Este recurso impede que pessoas não autorizadas utilizem um determinado arquivo. Padronização dos Dados Permite que os campos armazenados na base de dados sejam padronizados segundo um determinado formato de armazenamento segundo critérios preestabelecidos pela empresa. Independência dos Dados Representa a forma física de armazenamento dos dados e a recuperação das informações pelos programas. 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. Manutenção da Integridade Consiste em impedir que um determinado código ou chave em uma tabela não tenha correspondência em outra tabela. Fornecimento de backup e restauração Realização de cópias de segurança completas ou incrementais sempre que necessário, de acordo com a necessidade. 3. CONCEITOS IMPORTANTES Banco de Dados Representa o arquivo físico de dados, armazenado em dispositivos periféricos, para consulta e atualização pelo usuário. Possui uma série de informações relacionadas a um determinado assunto. Campo É a menor unidade de informação existente em um arquivo de banco de dados. Registro Conjunto de campos. Entidade que identifica entrada única num banco de dados. Chave Uma chave permite a distinção dos registros de uma tabela. Pode ser formada por um campo ou um conjunto de campo (chaves compostas). Uma chave primária determina a ordem dos registros dentro da tabela. 3 Tabelas Representam as estruturas de armazenamento de dados dos sistemas. Formada por um conjunto de campos e registros. Ex: tabela dos clientes, tabela dos fornecedores e tabela dos produtos. Dado É o valor do campo quando é armazenado no Banco de Dados. Ex. O valor do campo "nome do cliente" para quem está entrando com os dados. Informação É o valor que este campo representa para as atividades da empresa. Ex. Resposta a uma consulta: Qual os nomes dos clientes do Rio de Janeiro? 4. TIPOS DE DADOS O tipo escolhido dependerá da natureza da informação que você deseja. Texto Armazena caracteres alfanuméricos (texto e número). É o tipo indicado para armazenar informações que não requerem cálculo. Ex: nome de pessoas ou endereços. Memorando Armazena caracteres, no entanto, ele é utilizado para aguardar grandes blocos de texto que são divididos em parágrafos. Número Armazena valores numéricos inteiros ou fracionários. Este tipo deverá ser escolhido como padrão quando desejarmos efetuar cálculos com os campos. Data/Hora Faz com que o banco de dados trate os caracteres como datas ou horas, dependendo da forma como serão digitados. Moeda O tipo de dados Moeda tem todas características de um dado do tipo numérico, porém com acréscimo do símbolo monetário. Exemplo: “R$” AutoNumeração Utilizado para contagem de registros. A cada registro inserido na tabela ele é automaticamente incrementado em um valor. Sim/Não Permite a entrada de valores dos tipos: 4 Sim ou Não, Verdadeiro ou Falso, Certo ou Errado. Objeto OLE Esse tipo de dado é uma grande vantagem do ambiente gráfico Windows, pois você pode definir que o dado seja uma imagem gráfica. Ex: associar à ficha dos funcionários uma foto do mesmo. Hyperlink É um tipo de campo que irá armazenar um texto que permite saltar para um arquivo, um local em um arquivo, uma página HTML na Web. Exemplo: http://fp13vs23.digiweb.com [email protected] Assistente de pesquisa Cria um campo que permite que você escolha um valor a partir de uma tabela ou de uma lista de valores, utilizando uma caixa de combinação. 5. RELACIONAMENTO ENTRE TABELAS: As tabelas se relacionam através das chaves principais e secundárias. As chaves secundárias são aquelas que são principais em uma tabela e são colocadas em outra tabela para que haja um relacionamento. Suponhamos que nós tenhamos as seguintes tabelas: Cliente e Pedido TAB-CLIENTE TAB-PEDIDO Cpf-Cliente Número-Pedido Nome-Cliente Data-Pedido Fone-Cliente Situação-pedido Cep-Cliente Os nomes da tabela estão em maiúsculo As chaves principais estão com sublinhado simples e em negrito. Para que uma tabela se relacione com a outra, é necessário que a chave principal de uma esteja no outra tabela, como chave secundária. TAB-CLIENTE TAB-PEDIDO 5 Cpf-Cliente Número-Pedido Nome-Cliente Data-Pedido Fone-Cliente Situação-pedido Cep-Cliente Cpf-Cliente A chave estrangeira está representada pelo sublinhado duplo. As duas tabelas estão relacionadas pelo campo Cpf-Cliente. Cardinalidades As cardinalidades são representadas por 1 ou N. Se um cliente pode fazer vários pedidos e cada pedido só pode ser feito por um certo cliente, então a cardinalidade no exemplo acima passa a ser o seguinte: TAB-CLIENTE TAB-PEDIDO 1 Cpf-Cliente Número-Pedido Nome-Cliente Data-Pedido Fone-Cliente Cep-Cliente N Situação-pedido Cpf-Cliente A chave principal fica com a cardinalidade 1, enquanto que a chave secundária fica com a cardinalidade N. Se fosse colocada a chave principal da TAB-PEDIDO (Número-Pedido) na TABCLIENTE como chave estrangeira, a situação absurda seria a seguinte: Cada cliente só poderia fazer um único pedido. Cada pedido poderia ser feito por vários clientes. EXEMPLOS DE TIPOS DE RELACIONAMENTOS Vamos estudar os 3 exemplos através das seguintes tabelas abaixo: TAB-PRODUTO Código-Prod Descrição-Prod TAB-FORNECEDOR Cnpj-Fornec Nome-Fornec 6 Dependendo da situação, o campo Preço-Prod fica em tabelas diferentes Caso 1: cada produto só é distribuído por um único fornecedor, que por sua vez pode distribuir vários produtos. Esquema de Tabelas TAB-FORNECEDOR (Cnpj-Fornec , Nome-Fornec) TAB-PRODUTO (Código-Prod , Descrição-Prod , Preço-Prod, Cnpj-Fornec) Obs: As 2 tabelas estão relacionadas pelo campo Cnpj-Fornec . Layout de Relacionamentos Caso 2: cada produto é distribuído por vários fornecedores, que por sua vez só distribuem apenas 1 produto. Esquema de Tabelas TAB-FORNECEDOR (Cnpj-Fornec , Nome-Fornec , Preço-Fornec , Código-Prod) TAB-PRODUTO (Código-Prod , Descrição-Prod) Obs: As 2 tabelas estão relacionadas pelo campo Código-Prod . Layout de Relacionamentos 7 Caso 3: cada produto é distribuído por vários fornecedores, que podem distribuir vários produtos. Esquema de Tabelas TAB-FORNECEDOR (Cnpj-Fornec , Nome-Fornec) TAB-DISTRIBUIÇÃO (Cnpj-Fornec , Código-Prod , Preço-Fornec-Prod) TAB-PRODUTO (Código-Prod , Descrição-Prod) Obs: - A TAB-PRODUTOS está relacionada com a TAB-DISTRIBUIÇÃO pelo campo Código-Prod - A TAB-DISTRIBUIÇÃO está relacionada com a TAB-FORNECEDOR pelo campo Cnpj-Fornec Layout de Relacionamentos 6. MINI MUNDO: Descrição formal da realidade a ser representada. Exemplo: suponhamos que a AEDB funcione assim: Cada aluno pertence a um curso, que por sua vez pode ter vários alunos. O curso é armazenado por um código único e pelo seu nome. Os alunos são cadastrados pela matrícula, nome e endereço. Não existem 2 alunos com a mesma matrícula. Cada curso possui algumas disciplinas que são identificadas por um controle único e pela sua descrição. A mesma disciplina pode ser lecionada em outros cursos em dias diferentes. Cada professor pode ministrar mais de uma disciplina, mas cada disciplina só pode ser lecionada por um único professor. CPF, nome e telefone são os atributos de cada professor. Resposta: Esquema de Tabelas 8 Resposta: Layout de Relacionamentos 7. EXERCÍCIO: Mini-Mundo de Pedido de Material Faça o Esquema de Tabelas e o Layout de Relacionamentos cada Empregado pode fazer vários Pedidos; cada Pedido pode ser feito por um único Empregado; o Empregado é cadastrado pelo Cpf, Nome e Endereço. o Pedido é armazenado por um Número único, sua Data e Situação. Não existem 2 Pedidos com o mesmo Número; cada Pedido pode conter muitos Materiais. cada Material pode estar contido em inúmeros Pedidos. cada Pedido pode conter quantidades diferentes para cada Material; e cada Material é registrado por um Código único, Descrição e Tipo. Não existem 2 Materiais com o mesmo Código. FIM