Prévia do material em texto
Curso Tecnologia em Análise e Desenvolvimento de Sistemas Banco de Dados Prof.ª Mª Maria Rita Almeida Gonzaga 1 5. SGBD – Sistema Gerenciador de Banco de Dados Sistema Gerenciador de Banco de Dados (SGBD) são softwares altamente sofisticados e complexos que tem por objetivo fornecer serviços para gerenciar dados de uma organização. Serviços e Funções de um SGBD Codd 1 defini oito serviços que devem ser fornecidos por um SGBD de alta escala. Um SGBD deve fornecer aos usuários uma forma de armazenar, recuperar e atualizar dados no banco de dados. Essa é a função fundamental de um SGBD. Um SGBD deve fornecer um catálogo com descrição de itens de dados armazenados e acessíveis aos usuários. A chave para esse serviço é o catálogo de sistema ou dicionário de dados, que é um repositório de informações descrevendo os dados no banco de dados. É referenciado como dados sobre dados ou metadados. Um SGBD deve fornecer um mecanismo que assegure que todas as atualizações correspondentes a uma dada transação sejam feitas ou que nenhuma delas seja feita. A chave para esse serviço é o conceito de transação. Uma transação é uma série de ações que acessam ou modificam o conteúdo do banco de dados. Quando executada, deve garantir que o banco de dados esteja sempre num estado estável e consistente. Um SGBD deve fornecer um mecanismo que assegure que o banco de dados seja atualizado corretamente quando múltiplos usuários atualizam o banco de dados concorrentemente. A chave para esse serviço é permitir que muitos usuários acessem o banco de dados simultaneamente. O acesso concorrente é relativamente fácil quando os usuários estão apenas lendo os dados. Entretanto, quando os usuários estão acessando o banco de dados simultaneamente e pelo menos um deles está escrevendo dados, podem ocorrer interferências que podem resultar em inconsistências. O SGBD deve garantir que acessos concorrentes não deixarão o banco de dados num estado inconsistente. Um SGBD deve fornecer um mecanismo para recuperação do banco de dados no caso de dados serem danificados de alguma maneira. Isso está relacionado com as transações. Quando uma transação falhar, o SGBD deve retornar ao estado consistente que estava antes da transação ser executada. Um SGBD deve fornecer um mecanismo para garantir que apenas usuários autorizados tenham acesso ao banco de dados. A chave para esse serviço é a segurança, que se refere à proteção do banco de dados contra acessos não autorizados, intencionais ou não. Um SGBD deve ser capaz se integrar com softwares de comunicação. Um SGBD deve fornecer um meio de garantir que os dados e suas mudanças sigam certas regras. A integridade de dados se refere-se à exatidão e consistência dos dados armazenados no banco de dados. É usualmente expressa em termos de restrições (constraints) que são regras de consistência que o banco de dados não deve violar. Também é conhecido como implementação de regras de negócio. 1 Codd E. F. The 1981 ACM Turing Award Lecture: Relational Database: A Practical Foundation for Productivity. Comm. ACM, 25(2), 109-117 Curso Tecnologia em Análise e Desenvolvimento de Sistemas Banco de Dados Prof.ª Mª Maria Rita Almeida Gonzaga 2 Outros serviços a serem considerados e fornecidos por um SGBD, são: Um SGBD deve incluir facilidades dar suporte à independência dos programas da estrutura do banco de dados. A chave para isso é o conceito de visões (views) e subesquemas. Um SGBD fornece um conjunto de serviços utilitários: facilidades de importação que carreguem o banco de dados utilizando arquivos, e facilidades de exportação que descarregam o banco para arquivos. facilidades de monitoramento da utilização e operação do banco de dados. análises de performance e estatísticas de utilização facilidades para reorganização de índices e suas sobrecargas realocação para remover fisicamente os registros eliminados para consolidar o espaço liberado e realocá-lo quando houver necessidade. Modelo Entidade-Relacionamento O modelo de entidade-relacionamento é uma técnica de definição das necessidades de informação de uma organização. Provê alicerces para produtos de alta qualidade, adequando os sistemas às regras de negócio. Isto envolve identificar os objetos de importância para a organização (entidades), as propriedades desses objetos (atributos) e como eles se relacionam (relacionamentos). Seus dois objetivos principais são um modelo exato da necessidade de informação para a organização, que servirá como uma estrutura de desenvolvimento de novos sistemas, e prover um modelo independente de plataforma de armazenamento e formas de acesso, de modo que possam ser tomadas decisões técnicas de implementação e de coexistência com sistemas já desenvolvidos. Modelo de Entidade e Relacionamento O Modelo Entidade-Relacionamento é uma representação lógica detalhada dos dados de uma organização ou de uma área de negócio. É apresentado em termos de entidades no ambiente de negócio, seus relacionamentos e atributos. Este conceito foi introduzido por Chen em 1976. Entidades Entidades podem ser pessoas, lugares, objetos, eventos ou conceitos de ambiente do usuário aos quais a organização precisa manter dados. Seguem exemplo de entidades: Pessoa: EMPREGADO, ESTUDANTE, PACIENTE Lugar: ESTADO, REGIAO, PAIS Objeto: MAQUINA, PREDIO, AUTOMOVEL Tipos de Entidades são coleções de entidades que compartilham propriedades ou características em comum. Também são conhecidas como Classe de Entidade e também são representadas por uma caixa retangular com o nome da entidade no seu interior. O nome deve ser em letras maiúsculas e no singular. EMPREGADO CURSO CONTA Curso Tecnologia em Análise e Desenvolvimento de Sistemas Banco de Dados Prof.ª Mª Maria Rita Almeida Gonzaga 3 Uma instância de entidade, por outro lado, é uma ocorrência única de um tipo de entidade. Um exemplo é mostrado logo a seguir: Tipo de Entidade: EMPREGADO Instâncias de EMPREGADO Atributos NUMERO EMPREGADO 642-17-8630 NOME Michelle Brady ENDERECO 100 Pacific ave. CIDADE San Francisco ESTADO Ca CEP 98713 ANO ADMISSAO 1989 NASCIMENTO 6-19-64 Atributos São propriedades ou características de uma entidade que são de interesse para a organização. São representados como elipses e são conectados por uma linha à entidade associada. Seus nomes são expressos usando-se letras maiúsculas. Como exemplo, considere a entidade ESTUDANTE com os seguintes atributos: NUMERO ESTUDANTE PRIMEIRO NOME ULTIMO NOME NOME DO MEIO ENDERECO expor TELEFONE A entidade ESTUDANTE é modelada na seguinte figura: Tipos de Atributos Atributos compostos – os atributos compostos podem ser divididos em subpartes menores, que representam a maioria dos atributos básicos com significados independentes. Por exemplos o atributo Endereco de uma entidade pode ser subdivido em Rua, CEP, Qd e etc. Curso Tecnologia em Análise e Desenvolvimento de Sistemas Banco de Dados Prof.ª Mª Maria Rita Almeida Gonzaga 4 Atributos simples ou atômicos – os atributos que não pode ser subdivididos são chamados de atributos simples. Atributos monovalorados – a maioria dos atributos possuem valor único para uma dada entidade. Ex.: idade é um atributo monovalorado de uma pessoa. Atributos multivalorados – um atributo com mais de um valor. Ex.: Autores de livros, Números de telefones de clientes etc. Atributos Armazenados x Atributos Derivados – Em alguns casos dois ou mais atributos estão relacionados - por exemplo, os atributos Idade e Data de Nascimento de uma pessoa. Para uma entidade pessoaem particular, o valor da Idade pode ser determinado pela data corrente (hoje) e o valor da Data de Nascimento da pessoa. Portanto o atributo idade é chamado de atributo derivado, e é dito derivado do atributo DataNascimento que por sua vez é chamado de atributo armazenado. Alguns valores de atributos podem ser derivados de entidades relacionadas; por exemplo um NumerodeEmpregados, de uma entidade departamento, pode ser derivado da contagem do número de empregados relacionados (que trabalham) nesse departamento. Valores Nulls (Nulos) – Em alguns casos, determinada entidade pode não ter um valor aplicável a um atributo. Por exemplo, o atributo Apartamento de um endereço se aplica apenas a endereços que estão em edifícios de apartamentos, e não a outros tipos de residências como as casas. Relacionamentos Relacionamentos em um Modelo Entidade-Relacionamento são associações entre instâncias de um ou mais tipos de entidades que são de interesse da organização. São considerados como a cola que une os vários componentes de Modelo Entidade- Relacionamento. Podem ser expressos de duas formas: 1. Usar verbos dentro de um losango 2. Usar verbos colocados nas linhas que conectam as entidades Pode-se usar duas convenções. Entretanto, deve-se manter a consistência. Se a primeira forma de expressar relacionamento é utilizada, continue assim. As duas formas de representar relacionamentos são mostradas na figura a seguir. O relacionamento é lido como “Um EMPREGADO frequentou um CURSO, um CURSO é frequentado por um EMPREGADO”. O grau de um relacionamento é a quantidade de tipos entidades que participam de um relacionamento. Os três graus mais comuns de relacionamentos são unário, binário e ternário. Um relacionamento unário ocorre quando há um relacionamento entre instâncias da mesma entidade. É também conhecida como relacionamento recursivo. Nesse exemplo uma PESSOA só pode ser casada com outra PESSOA. Empregado Curso frequentou 1 : N Curso Tecnologia em Análise e Desenvolvimento de Sistemas Banco de Dados Prof.ª Mª Maria Rita Almeida Gonzaga 5 Outro exemplo onde um EMPREGADO (gerente) pode gerenciar um ou mais EMPREGADOS; e, um EMPREGADO é gerenciado por outro EMPREGADO (gerente). 1:N O último exemplo demonstra que um ITEM consiste de vários componentes; um ITEM pode ser parte de vários componentes. Nesse exemplo, o relacionamento pode ter um atributo. N:N Um relacionamento binário ocorre entre instâncias de dois tipos de entidade. Este é o tipo de relacionamento mais comum. Na figura a seguir, a um EMPREGADO é atribuído a uma vaga de garagem. Uma VAGA DE GARAGEM é designada para um EMPREGADO. Na figura a seguir, uma LINHA DE PRODUTO contém muitos PRODUTOS. Um PRODUTO está contido em uma LINHA DE PRODUTO. Este é um exemplo de um relacionamento binário com cardinalidade um-para-muitos. Pessoa É casada com 1 : 1 Empregado Vaga de Garagem É atribuído Linha de Produto Produto contém 1 : N Curso Tecnologia em Análise e Desenvolvimento de Sistemas Banco de Dados Prof.ª Mª Maria Rita Almeida Gonzaga 6 Na figura a seguir, um ESTUDANTE pode se matricular em um ou muitos CURSOS; um CURSO pode ter um ou muitos ESTUDANTES matriculados. Este é um exemplo de relacionamento binário com cardinalidade muitos-para-muitos. O relacionamento ternário é um relacionamento simultâneo entre instâncias de três tipos de entidades. A figura a seguir mostra um exemplo. Muitas PARTES são expedidas de diversos POSTOS de diferentes FORNECEDORES. Cardinalidade A cardinalidade de um relacionamento é o número de instâncias da entidade B que pode ser ou deve ser associada com cada instância da entidade A. Partindo do princípio de que a entidade A está relacionada com a entidade B, são modelados como segue: N:1 ou 1:N 1N 1:1 11 Estudante curso É matriculado N : N Curso Tecnologia em Análise e Desenvolvimento de Sistemas Banco de Dados Prof.ª Mª Maria Rita Almeida Gonzaga 7 N:N NN EXERCÍCIOS DE FIXAÇÃO 1. Explique como eram os antigos Sistemas de Processamento de Arquivos e cite quais eram os seus problemas. 2. Dê o conceito de Banco de Dados e de Sistema Gerenciador de Banco de Dados (SGBD). 3. Sabe-se que um dos grandes benefícios dos SGBD foi permitir aos usuários uma visão abstrata dos dados. Explique quais os níveis de abstração providos pelo SGBD. 4. No modelo E-R, dê o conceito de entidade forte e de entidade fraca. 5. Dê ao menos três exemplos de cada um dos conceitos básicos da abordagem ER: entidade, relacionamento e atributo. 6. Como podem ser classificados os atributos, conceitue cada um? 7. Explique o que é cardinalidade, e o que significa dizer que a cardinalidade em um relacionamento binário é um-para-um ou um-para-muitos. 8. Construa o diagrama E-R de uma locadora de vídeos segundo descrição abaixo: A locadora possui cerca de 3500 fitas de vídeo, cujo empréstimo deve ser controlado. Cada fita possui um número. Para cada filme é necessário saber seu título e sua categoria. Cada filme recebe um identificador próprio. Para cada fita é controlado o filme que ela contém. Para cada filme há pelo menos uma fita. Alguns filmes necessitam de no mínimo duas fitas. A locadora possui muitos clientes cadastrados. Somente clientes cadastrados podem alugar fitas. Para cada cliente é preciso saber seu nome, telefone e endereço. Cada cliente recebe um número associado. Desejamos saber quantas fitas emprestadas o cliente tem. Um cliente pode ter várias fitas em um determinado instante do tempo. Não são mantidos registros históricos de aluguéis. EXERCÍCIOS – MER EX01) Uma firma vende produtos de limpeza e deseja controlar melhor os produtos que vende, seus clientes e os pedidos. Cada produto é caracterizado por um código único, nome do produto, categoria (ex. detergente, sabão em pó, sabonete, etc), e seu preço. A categoria é uma classificação criada pela própria firma. A firma possui informações sobre todos seus clientes. Cada cliente é identificado por um código único (interno à firma), o nome do cliente, endereço (rua, nro, sala, cidade, cep, UF), telefone, o status do cliente ("bom", "médio", "ruim"), e o seu limite de crédito. Guarda-se igualmente a informação dos pedidos feitos pelos clientes. Cada pedido possui um número (único), e guarda-se a data de elaboração do pedido. Cada pedido pode envolver de 1 a vários produtos, e para cada produto, indica-se a quantidade deste pedida. EX02)”Holliwud” possui diversos estúdios cinematográficos, cada um caracterizado por um nome único, um dono, data de fundação, e o faturamento do ano anterior. Estes estúdios produzem filmes que possuem um nome único, o número de meses que levou sendo feito, o ano de lançamento, o número do "copyright", e o custo total do filme. Em cada filme atuam Curso Tecnologia em Análise e Desenvolvimento de Sistemas Banco de Dados Prof.ª Mª Maria Rita Almeida Gonzaga 8 atores, que possuem um nome artístico único, um número de seguro social (também único), uma nacionalidade, idade, sexo, e um conjunto de tipos de papéis para o qual seu tipo físico é aconselhável (ex.: avó, mocinha jovem, galã com idade avançada, adolescente). Estes tipos de papéis não são predefinidos, constituindo uma lista preenchida a critério de cada ator. Em cada filme onde atua, um ator ganha um cachê, e desempenha um personagem que possui um nome. Estúdios podem existir mesmo que ainda não tiverem produzido um filme, mas só são considerados atores que já atuaram em pelo menos um filme. EX03) O acervo de uma biblioteca é composto por exemplares de livros. Cada livro é caracterizadopor um ou mais autores, um título, uma editora, local de edição, um código ISBN e um conjunto de palavras-chave. A biblioteca possui pelo menos um exemplar de cada livro, numerados sequencialmente (exemplares 1, 2, 3, etc). Os associados da biblioteca podem retirar exemplares dos livros. Cada associado pode ter emprestados no máximo três exemplares. Para cada empréstimo, é registrada a data em que este foi realizado. Cada associado possui um código, nome e endereço. A biblioteca deseja manter todo o histórico de empréstimos. EX04) Num aeroclube, estão inscritos pilotos, instrutores e alunos de pilotagem. Todos sócios (inscritos) são identificados pelo número de matrícula, e caracterizados por nome, endereço e idade. Os pilotos possuem um número de brevê (único). Os instrutores são pilotos com formação adicional de instrutor, e deve ser registrado o nome do curso, a data de obtenção do diploma, bem como a instituição. Para os alunos de pilotagem, guarda-se os registros de todas suas saídas para contabilização de horas para obtenção do brevê. Para cada saída registra-se a data, instrutor, hora de saída de chegada, bem como o parecer do instrutor sobre o vôo. A escola só ministra cursos básicos, e portanto não há professores que são alunos de cursos avançados. O brevê dos alunos é retirado mediante a comprovação do número de horas mínimas de vôo, levando em consideração os comentários dos instrutores sobre as habilidades desenvolvidas. EX05) Uma empresa deseja informatizar o acervo de receitas que ela inventa, e comercializa sob a forma de livros. Estão envolvidos na elaboração das receitas e dos livros os cozinheiros, os degustadores (que controlam a qualidade das receitas), e os editores dos livros. Todas estas pessoas são empregados da empresa, e são caracterizados por um RG, nome, data de ingresso na firma, e salário recebido. Cada receita tem código único, um nome, foi inventada por um cozinheiro numa dada data, e pertence a uma categoria. Podem existir diferentes receitas com o mesmo nome, mas um mesmo cozinheiro não elabora duas receitas com o mesmo nome. Uma categoria é extraída de uma lista de categorias fixas elaborada pela empresa (ex: carne, ave, bolo, torta, sopa, etc). É norma da empresa não permitir a elaboração de receitas que não pertençam a categorias registradas pela firma, sendo possível não existirem receitas para categorias recém criadas. Diversos ingredientes (ex: açúcar, farinha, leite) são usados para elaborar uma receita, cada um deles usado numa certa quantidade (ex: 2) e numa certa medida (ex: colher de chá, xícara, ml). A medida pode ser opcional para certos ingredientes (ex: ovo). Uma receita possui também uma descrição de seu modo de preparação, e o número de porções que rende. Cada ingrediente possui um nome único e uma descrição, particularmente útil para ingredientes exóticos tais como blachan, kiri ou umeboshi. Os cozinheiros renomados podem, para efeito de publicidade dos livros, fornece um nome fantasia, bem como uma lista de restaurantes importantes nos quais já trabalhou. Esta lista é fornecida pelo cozinheiro no momento de sua contratação, sendo que nenhum cozinheiro informá-la. Todo cozinheiro deve produzir um certo número de receitas por mês, sendo que os cozinheiros recém-contratados têm um prazo de até 45 dias para entregar suas primeiras receitas. Receitas podem ser testadas por degustadores. Cada teste envolve um degustador, é executado numa data, e envolve a atribuição de uma nota. Podem existir receitas sem teste, mas todo degustador contratado pela firma já executou pelo menos um teste. A empresa edita livros de receitas, nos quais, obviamente, constam diversas receitas. Essas receitas podem ou não ser inéditas, ou seja, já terem sido publicadas em outros livros. Além de suas receitas, cada livro é caracterizado por um título único, um código ISBN (também único), e pelo editor do livro. Curso Tecnologia em Análise e Desenvolvimento de Sistemas Banco de Dados Prof.ª Mª Maria Rita Almeida Gonzaga 9 EX06) Um cinema possui várias salas de cinema, as quais exibem filmes em horários diversos. O cinema tem interesse em saber quais filmes estão atualmente em cartaz, em que salas e em que horários. Cada sala possui um nome (único) e capacidade (número de lugares). Os filmes são caracterizados por seu nome em português, nome na língua original (se estrangeiro), diretor, ano de lançamento, tipo, e sinopse. Não existem dois filmes com o mesmo nome (em português) e ano de lançamento. Eventualmente, podem existir para o filme premiações ou indicações para premiação (e.g. Palma de Ouro em 1987, Oscar de melhor atriz em 89, indicado para melhor filme estrangeiro em 1996), e esta informação é usada para divulgação dos filmes. Uma exibição de filme ocorre em uma dada sala e horário. Um mesmo filme pode ser exibido na mesma sala, em vários horários. Para filmes muito procurados, o cinema pode ter exibição simultâneas em várias salas (em horários simultâneos ou não). Filmes diferentes podem passar na mesma sala, desde que obviamente não no mesmo horário. O cinema só trabalha com horários fixos de filmes, os quais atualmente são: 16:00, 17:00, 18:00, 19:30, 20:00, 22:00, 24:00. A cada um destes horários está vinculado um conjunto de funcionários responsáveis pelo bom andamento das atividades do cinema naquele horário, e que desempenham uma função (ex: caixa, balas, lanterninha, bilheteiro). Cada funcionário é caracterizado pelo número da carteira da trabalho (único), nome, data de admissão e salário. Para maior satisfação dos funcionários, existe um rodízio das funções conforme o horário (ex: um mesmo funcionário pode ser caixa no horário das 16:00, e baleiro no horário das 21:00). Todo horário tem pelo menos três funcionários alocados. Variação - Para aumentar a renda do cinema, em cada sessão são exibidas propagandas. Uma propaganda é identificada por um código, e caracterizada por um nome, agência, e faixa etária apropriada, e pode ser exibida em várias sessões. Cada sessão possui sua própria programação de propagandas (e.g. a sessão do Titanic das 14:00 horas na sala 1 pode ou não ter o mesmo conjunto de propagandas que a sessão do Titanic em outro horário e/ou sala). EX07) A Confederação Brasileira de Futebol – CBF, quer desenvolver um aplicativo para registrar informações do Campeonato Brasileiro de Futebol. Em cada ano ela promove um único campeonato de futebol da primeira divisão. Este é o campeonato que reúne os principais clubes do futebol brasileiro. Ela precisa saber quais os jogos de cada clube em cada campeonato (os a realizar e os realizados), quais foram os contendores em cada jogo, o local: se em casa ou fora e o nome do estádio em que foi realizado. Às vezes acontecem imprevistos, como por exemplo, temporais no memento do jogo, que fazem uma partida ser adiada. Ou seja, ela é realizada numa data diferente daquela prevista. A CBF quer saber ainda, quais os jogadores que participaram de cada jogo (quem efetivamente jogou e quem ficou no banco de reservas), que juiz e bandeirinhas atuaram em cada jogo, qual o placar, o horário e o total arrecadado por jogo. Quais jogadores marcaram gol numa determinada partida e em qual tempo de jogo o gol foi marcado. Observar que nem todos jogadores participantes de jogo marcam gol, entretanto um jogador pode marcar mais de um por partida. Qual era o técnico de cada clube na partida. Sabe-se que um técnico pode mudar de clube durante o campeonato, mas os jogadores não. No caso de juízes e bandeirinhas precisa-se saber a qual federação ele pertence. Cada estado brasileiro possui a sua própria federação de futebol com seus clubes, juízes e bandeirinhas. Uma semana antes de cada rodada, são escalados os juízes e bandeirinhas de cada partida. Precisa-se saber quais clubes de cada federação participaram do campeonato. Nem todosos clubes de uma federação participam do Campeonato Brasileiro de Futebol. Há clubes que podem participar em um ano e não participar em outro. Por exemplo, o Vasco da Gama da Federação do Estado do Rio de Janeiro, não está participando do campeonato de 2009. A aplicação deve se preocupar apenas com o Campeonato Brasileiro da Primeira Divisão. Preparar um Diagrama de Entidade x Relacionamento com os atributos de cada entidade indicando o identificador de cada uma delas. Curso Tecnologia em Análise e Desenvolvimento de Sistemas Banco de Dados Prof.ª Mª Maria Rita Almeida Gonzaga 10 Referências Bibliográficas ALVES. William Pereira. Banco de dados, 1. ed. São Paulo: Érica, 2014. ELMASRI, Ramez; NAVATE, Shamkant B. Sistemas de Banco de Dados, 4. Ed. São Paulo: Pearson Education do Brasil, 2008. NASSAU, Eugênio A.; SETZER, Waldemar W. Bando de Dados Orientado a Objetos. São Paulo: Edgard Blücher, 2ª reimpressão, 2009. SETZER, Valdemar W.; SILVA, Flávio Soares C. da. Bancos de Dados. EDGARD BLUCHER, 2005. SILBERSCHATZ,A., KORTH, H.F.; SUDARSHAN,S. Sistema de Banco de Dados. Makron Books, 2006. SOLAMO, C. Rowena. Introdução a Sistemas de Bando de Dados. 1ª Versão. Apostila. JEDIDFJUG- BRASIL, 2009