Aula 1. Tópicos Especiais em Análise de Sistemas. O Professor. Apresentação dos alunos. TEAN Tópicos Especiais em Análise de Sistemas.



Documentos relacionados
Organização de arquivos

Prof. Marcelo Machado Cunha

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Comandos de Manipulação

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Banco de Dados I. Introdução. Fabricio Breve

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Conceitos de Banco de Dados

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Introdução Banco de Dados

Banco de Dados. Prof. Antonio

O que são Bancos de Dados?

Faculdade Lourenço Filho - ENADE

Prof.: Clayton Maciel Costa

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Persistência e Banco de Dados em Jogos Digitais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Gerenciamento de Transações

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Junções e Índices em Tabelas

Banco de Dados. Maurício Edgar Stivanello

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Módulo 4: Gerenciamento de Dados

INTRODUÇÃO. Diferente de Bando de Dados

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

BANCO DE DADOS PROFESSOR MAURÍCIO - MAURICIO.MELLO@PUCPR.BR AULA 02. O Modelo Entidade-Relacionamento ( MER )

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

Orientação a Objetos

Engenharia de Software III

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. DCC-IME-USP

SQL Structured Query Language

2 Diagrama de Caso de Uso

Tarefa Orientada 16 Vistas

Linguagem de Consulta Estruturada SQL- DML

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon

Modelo de Entidade e Relacionamento (MER) - Parte 07

Modelos. Comunicação com clientes

Structured Query Language (SQL)

f. Vocês podem selecionar todos os campos indicando-os, ou seja, sem usar * (boa prática) g. Muito relevante na manutenção de BD e de aplicações.

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

BDII SQL Junção Revisão 8

Desenvolvendo Websites com PHP

Modelagem de Sistemas Prof. Marcos Roberto e Silva

NOME SEXO CPF NASCIMENTO SALARIO

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

LINGUAGEM DE BANCO DE DADOS

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Memória de aula Semanas 15 e 16

Introdução ao SQL Avançado

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

PROVA DE CONHECIMENTOS ESPECÍFICOS PROGRAMADOR DE COMPUTADOR. Analise as seguintes afirmativas sobre os modelos de processos de software:

Disciplina: Unidade III: Prof.: Período:

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani

Tarefa Orientada 14 Subconsultas

Exercícios de Lógica Exercícios de Fixação 08

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados

Treinamento sobre SQL

Sistemas Operacionais

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Banco de Dados. Modelagem de Dados com MER. Prof. Walteno Martins Parreira Jr

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

BANCO DE DADOS AULA 02 INTRODUÇÃO AOS BANCOS DE DADOS PROF. FELIPE TÚLIO DE CASTRO 2015

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

Disciplina de Banco de Dados Introdução

05/06/2012. Banco de Dados. Gerenciamento de Arquivos. Gerenciamento de Arquivos Sistema Gerenciador de Banco de Dados Modelos de Dados

Unidade 5 Armazenamento e Indexação

Lista de exercícios 01

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Análise de Ponto de Função

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Backup.

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque fernando@cic.unb.br

Banco de Dados I. Projeto de Banco de Dados e o Modelo E-R. Fabricio Breve

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais

SQL DML. Frederico D. Bortoloti

Projeto e Implementação

Tarefa Orientada 13 Agrupamento e sumário de dados

MC536 Bancos de Dados: Teoria e Prática

Transcrição:

O Professor Aula 1 Formado em Engenharia Civil pela UFG e Processamento de Dados pelas Faculdades Objetivo Pós- graduado com especializção em Análise e Projeto de Sistemas pela UNIP Especialização em Administração de Redes Linux pela UFLA Sócio- diretor da Casa das Carretas Apresentação dos alunos Quais as disciplinas correlatas que já foram vistas? Como TEAN se relaciona com outras disciplinas? Alguém já trabalha na área de informática? Em desenvolvimento? Alguém tem contato com algum banco de dados? Qual o conhecimento sobre modelagem de sistemas? E de dados? TEAN Tópicos Especiais em Análise de Sistemas Será visto basicamente banco de dados modelagem, implementação e extração de dados. Alguns conceitos especiais banco de dados distribuído, concorrência, segurança Critérios de avaliação. Filme AS- 400 Bibliografia Livro texto: KORTH, Henry F. e SILBERSCHATZ, Abraham. Sistemas de bancos de dados. São Paulo; Editora Makron Books. 1993 2ª edição. Referências: CHEN, Peter P. O modelo entidade- relacionamento. São Paulo. Ed. McGraw- Hill, 1978. SALEMI, Joe. Banco de dados cliente/servidor.são Paulo: IBPI Press. 1993. YOURDON, Joe. Análise estruturada moderna. Rio de Janeiro: Editora Campus. 1990 GANE, Chris e SARSIB, Trish. Análise estruturada de sistemas. São Paulo: Editora LTC, 1983. MEILIR, Page- Jones. Projeto estruturado de sistemas. São Paulo: Editora McGraw- Hill, 1988. Sites Internet MySQL PostgreSQL http:// www.mysql.com http:// www.postgresql.org

Oracle IBM Microsoft Sistema Rau tu (Unicamp) http:// www.oracle.com http:// www.ibm.com http:// www.microsoft.com.br http:// www.rautu.unicamp.br

Organização de Arquivos Por que ver organização de arquivos? Aula 2 Os bancos de dados armazenam os dados em arquivos Algumas linguagens fazem acesso a arquibos (Clipper, Cobol) Dispositivos limitam escolha da organização Meios de armazenamento RAM ideal, rápida porém de alto custo e volátil Dispositivos externos custo menor, maior capacidade e não volátil Aspectos a considerar na escolha do meio: Capacidade ou tamanho em MB Portabilidade (transporte da mídia) Forma de acesso ao dispositivo Velocidade Fitas magnéticas Capacidade de compartilhamento Pioneirismo primeiro meio de armazenamento em massa utilizado Ideal para backup e transporte Baixo custo e grande capacidade Baixa velocidade Permite apenas acesso seqüencial Disco flexível (disquete) Ainda muito utilizado para transporte e backup de pequena quantidade de dados Baixo custo e facilidade de transporte Baixa velocidade e não é muito confiável Vem sendo substituídos por outros discos removíveis (Zip, Jazz) Disco rígido Utilizado no ambiente de produção Grande velocidade e capacidade de armazenamento Importante para o Sistema Operacional utilizado como expansão da memória principal (memória virtual) num processo chamado de swap. Interfaces de comunicação: IDE mais barata, com boa relação custoxbenefício, indicado para processamentos com pequeno volume de dados

SCSI mais caro, com alta performance, indicado para aplicações de banco de dados com grande volume de dados. Disco ótico (CD, DVD) Grande capacidade Alta velocidade, porém menor que a do HD A gravação é feita da parte mais interna para a externa em espiral Muito utilizado para backup e transporte de dados Discos removíveis (Zip, Jazz) Grande capacidade (> 100MB) Excelente meio para backup e transporte de dados A mídia é muito cara

Revisão Por que ver sistema de arquivos Sistema de arquivos x Banco de dados Meios de armazenamento Métodos de acesso Aula 3 Arquivo seqüencia de registros gravados no discos Acessos possíveis Seqüencial os registros são lidos um a um desde o início Direto um registro em qualquer posição no arqvuiso pode ser lido diretamente Indexado existe um arquivo auxiliar contendo ponteiros para os registros de dados Tipos de consultas Influencia na escolha do acesso ao arquivo Simples valor definido para procura. Ex. estado='go' Faixa de valores limita um conjunto de valores. Eex. codigo entre 3 e 16 Booleana combinação de consultas simples ou faixa de valores. Ex. (estado='go') e (codigo entre 3 e 16) Processamento O tipo do processamento também influencia no modo de acesso online os dados devem ser acessados rapidamente batch tempo de processamento maior podendo ser seqüencial misto arquivo de transações online e arquivo mestre atualizado em processamento batch Acesso Seqüencial Primeiro tipo de arquivo implementado Ordem lógica é igual à ordem física Para ler um registro qualquer, todos os anteriores devem ser lidos Indicado para processamento em série, pois o próprio sistema de arquivos ao ler um registro já se posiciona para ler o próximo Em média 50% do arquivo deve ser acessado para encontrar um valor. Pode estar ordenado por algum valor de chave. Problemas de manutenção inclusão em arquivo sem ordem: basta incluir no final do arquivo. Inclusão em arquivo ordenado: o problema é manter a ordem Pode- se copiar o arquivo até o ponto de inserção, inserir e continuar

a cópia Pode- se fazer inclusões em lote Pode- se incluir no final do arquivo de depois reordená- lo Exclusão requer o deslocamento dos registros seguintes para ocupar o registro excluído Pode- se marcar os registros e excluí- los posteriormente Alteração sem ordem basta ler, atualizar e regravar Atualização ordenada exige que os registros adjacentes sejam movidos para manter a ordem Pode ser feita atualização batch. Acesso direto Existe uma relação entre chave e endereço O sistema posiciona o ponteiro no registro e faz a leitura Pode ter endereçamento absoluto (a partir do início) ou relativo (a partir do registro atual). Arquivo indexado Funciona como em um livro (índice indicando páginas). Existe um arquivo auxiliar contendo as chaves de pesquisa e o endereço do registro no arquivo principal. Pode- se ter um ou mais arquivos de índices para um mesmo arquivo de dados. Índice denso existe uma chave para cada registro de dados Possui tempo de resposta melhor Índice esparso apenas alguns registros de dados tem chave no índice Requer menos espaço de armazenamento Necessita de menos manutenção na inclusão e exclusão Índices pequenos devem ser mantidos na memória Com o crescimento pode- se aumentar o número de níveis de indexação (índice para índice)

Revisão Aula 4,5 O que influencia na escolha do métido de acesso Métodos de acesso Seqüencial Direto Indexado Métodos de indexação Lista encadeada um registro aponta para o outro Lista duplamente encadeada um registro aponta para o próximo e para o anterior Pesquisa binária método muito rápido e eficiente de pesquisa Árvore binária Se bem criada é tão eficaz como a pesquisa binária No pior caso se comporta como uma lista encadeada Arquivos indexados em árvore B Os métodos anteriores apresentam queda de performance com o crescimento do banco de dados As árvores B requerem menos reindexações Uma árvore B de ordem m deve satisfazer as condições: Todo nó tem no máximo m descendentes. Todo nó, exceto a raiz e os nós terminais tem no mínimo m/2 (arredondando para mais) descendentes. A raiz tem pelo menos 2 descendentes a menos que seja nó terminal. Todos os nós terminais aprecem no mesmo nível e não tem nenhuma informação. Um nó interno com k descendentes contém k- 1 valores de chave. Pesquisa se inicia na raíz até encontrar um valor em um nó folha Inserção é feita das folhas para a raiz dividindo nós cheios A árvore cresce para cima e não para baixo A exclusão pode resultar em underflow (nó muito vazio) Ocorrem trocas para juntar nós irmãos (troca intermediada pelo pai) Indexação por hashing Um subconjunto de valores de chave é utilizado Exite uma função de hashing que transforma o valor de chave em um endereço físico A função deve ser escolhida de forma a dar o menor número de

conflitos possível Uma função perfeita mapeia cada valor de chave em um endereço A pior função mapeia todas as chaves para um único endereço Inserção: é feita uma pesquisa para encontrar onde o registro deve ser inserido e o acrescenta Se houver conflito, o registro é acrescentado ao final da lista daquele endereço Exclusão: é feita a pesquisa para encontrar o regitro e então ele é removido A função de hash pode ser estática ou dinâmica Estática é definida no início e não pode ser alterada Dinâmica pode ser alterada conforme o banco de dados se altera Comparação entre hash e árvore Árvore trabalha bem para pesquisas por faixa de valores e o hashing para consultas simples (valor definido) A árvore tem menor eficiência, porém é mais fácil de implementar A inclusão e exclusão é mais fácil utilizando hashing O processamento seqüencial é mais fácil na árvore B A maioria dos bancos de dados utilizam a indexação em árvores B No PostgreSQL o projetista do banco de dados pode escolher entre árvore ou hash

Exercícios Aula 6 Comente sobre a importância do sistema de arquivos para o administrador de banco de dados Além dos dispositivos apresentados na apostila, existem outros interessante, como smart cards, e até dispositivos que se parecem com chaveiros. Faça uma pesquisa (internet, revistas, catálogos, lojas on- line, fabricantes) e cite as características (capacidade, velocidade, comunicação, preço) de alguns destes dispositivos (pelo menos 3). Um problema que ocorre no sistema de arquivo é a fragmentação. Pesquise porque ela acontece e como o sistema operacional gerencia um arquivo fragmentado. Considere um sistema para registro de ponto, onde um funcionário chega no computador e registra suas entradas e saídas diárias. Este sistema suporta um processamento seqüencial? Justifique. Considere agora um sistema para emissão de etiquetas de endereço (mala direta) ordenada por cidade. O processamento seqüencial é indicado? Explique. Num supermercado, existe um depósito onde as mercadorias são armazenadas antes de ir para a prateleira. O estoque das prateleiras é reposto uma vez durante o dia antes do início do expediente e com quantidade suficiente para o dia inteiro de venda. Antes de abastecer porém as quantidades devem ser atualizadas e conferidas. Depois de abastecidas as prateleiras, o supermercado é aberto e as vendas são realizadas durante todo o dia. Comente como seria o processamento (on- line, batch) de cada um destes processos (atualização, conferência, venda). Explique o problema da inclusão de registros em um arquivo de clientes seqüencial em que os registros estão em ordem alfabética. Explique como um índice denso pode melhorar a performance de resposta em pesquisas. Explique por que o índice esparso resulta em economia de espaço.

Introdução ao Banco de Dados Objetivos do banco de dados Primeiras técnicas: arquivos indexados Aula 7 Existiam arquivos diferentes para cada aplicação Resolver problemas das técnicas anteriores: Abstração de dados Redundância dados repetidos em diferentes arquivos Inconsistência dados redundantes incoerentes Dificuldade de adaptação das aplicações Extração de informações dos arquivos Multiplos usuários transações concorrêntes podem gerar inconsistências Segurança políticas de restrição de acessos Integridade dificuldade em implementar restrições de integridade O banco de dados deve esconder os detalhes de armazenamento dos dados Proporcionar uma visão abstrata dos dados Níveis de abstração: Modelos de dados Físico baixo nível (conjunto de bytes) Conceitual definição de um registro de dados Visão parte dos dados visível pelo usuário Ferramentas para descrição de dados, relacionamentos, restrições Modelo Entidade- Relacionamento Modelagem de objetos do mundo real em entidades Entidade - objeto que existe e é distinguível de outros objetos A distinção é feita pelo conjunto de atributos da entidade Relacionamento associação entre duas ou mais entidades Restrições informações para validação dos dados O modelo pode ser expresso pelo Diagrama de Entidade- Relacionamento Retângulos entidades Losangos relacionamentos Elipses atributos Modelos baseados em registros Descrição dos dados nos níveis conceitual e visão

Modelo relacional Entidades e relacionamentos são mapeados em tabelas onde as linhas representam cada objeto do mundo real e as colunas são os atributos Modelo de redes Coleções de registros e ligações representando os relacionamentos O resultado são diagramas de grafos indicando os registros e seus relacionamentos Modelo hierárquico Semelhante ao de redes, porém ao invés de formar grafos, os registros são organizados em árvore

Revisão Introdução ao banco de dados Abstração de dados Modelos de dados Entidade- Relacionamento Relacional Redes Hierárquico Aula 8 Introdução ao banco de dados - continuação Esquema x Instância Esquema é a definição do banco de dados e não muda freqüentemente Instância é uma coleção de dados em particular (um objeto do mundo real) Dicionário de dados Definição do esquema do banco de dados O dicionário é consultado antes dos arquivos de dados Contém metadados, ou seja, dados acerca de dados Manipulação dos dados Linguagem procedimental indica os dados desejados e como obtê- los Linguagem não procedimental indica apenas os dados e o banco de dados define a estratégia para obtê- los Gerenciador do Banco de Dados Interface entre o sistema de arquivos e o usuário Garante a integridade dos dados (restrições de integridade) Segurança dos dados implementa políticas de acessos Recuperação de dados falhas ou paradas não devem gerar inconsistências Controle de concorrência informações confiáveis para todos os usuários Administrador do banco de dados (DBA) Definição do esquema do banco de dados Escolha da estrutura de armazenamento Organização dos dados armazenados Usuário do banco de dados Programador de aplicações Ocasional interagem com o banco de dados sem escrever programas Simples usuário das aplicações geradas pelos programadores

Exercícios Cite algumas diferenças entre um sistema de processamento de arquivos e um sistema gerenciado de banco de dados. Relacione algumas responsabilidade do gerenciador do banco de dados Quais as principais funções de um adminsitrador de banco de dados Qual a diferença entre esquema e instância?

Revisão Introdução ao banco de dados Exercícios Aula 9 Usuários do SGBD administrador, programador, usuário Apresentação do trabalho 1 Objetivo do trabalho Avaliar um sistema gerenciador de banco de dados do mercado Entrega Trabalho escrito relatório do grupo Apresentação / debate apresentação do banco de dados Tarefa O grupo deverá fazer uma pesquisa e elaborar um documento contendo as características, recursos e custos de um sistema gerenciador de banco de dados disponível no mercado. Deverão ser apontadas as principais vantagens de se utilizar tal banco de dados, prováveis problemas e como poderiam ser contornados tais problemas. Alguns pontos que podem ser tocados no trabalho Características técnicas do produto Recursos básicos Recursos adicionais Facilidade de uso e aprendizado Performance do banco de dados Interfaces com linguagens de programação Custos de aquisição Disponibilidade de assistência técnica Posicionamento no mercado, citando empresas que o utilizam Tipo de aplicação que melhor se adequa Para a apresentação o grupo deve se preparar como se fossem representantes do banco de dados escolhido e conseqüentemente irá defender sua adoção. Considere o professor como um cliente em potencial, que tem uma empresa tradicional no mercado de desenvolvimento de sistemas e procura um banco de dados para portar suas aplicações, atualizando seus clientes. A linguagem de programação a utilizar na empresa ainda não está definida. O grupo deve estar preparado para responder algumas questões do banco de dados e também para enfrentar os argumentos dos concorrentes (outros grupos). Além do conhecimento do banco de dados, o debate também será avaliado.

Sugestões de banco de dados para pesquisa PostgreSQL MySQL Interbase http:/ / www.postgresql.org http:/ / www.mysql.com http:/ / www.borland.com/interbase/index.html MS- SQL Server http:/ / www.microsoft.com.br/ brasil/sql / Oracle IBM DB2 Sybase http:/ / www.oracle.com.br O modelo Entidade- Relacionamento http:/ / www - 3.ibm.com/software/data/ db2/ http:/ / www.sybase.com/products/databaseservers Percepção de um universo formado por objetos (entidades) e seus relacionamentos Entidade objeto que existe e é distinguível de outros objetos Pode ser concreto como uma pessoa, um livro ou abstrata como um feriado, um conceito. Uma entidade é representada pelos seus atributos Relacionamento associação entre duas ou mais entidades Papel é a função que a entidade representa num relacionamento Relação trabalha para, uma entidade faz o papel de gerente e outra de subordinado Um relacionamento também pode ter atributos descritivos Uma data numa relação entre cliente e conta indicando a última movimentação O preço de venda em uma relação entre venda e produto vendido Restrições de mapeamento conjunto de regras para os relacionamentos entre entidades Cardinalidade dadas duas entidades A e B, ela indica a quantos elementos de B um elemento de A pode se ligar Especialmente útil para relacionamentos binários Um para um um elemento de A só pode se ligar a um elemento de B Um para muitos um elemento de A pode se ligar a vários elemento de B Muitos para um vários elementos de A podem se ligar a um único elemento de B Muitos para muitos vários elementos de A podem se ligar a vários elementos de B

Revisão Apresentação do trabalho O Modelo Entidade- Relacionamento Aula 10 Entidades, relacionamentos, atributos Restrições de mapeamento O modelo Entidade- Relacionamento (continuação) Dependência existencial um elemento de uma entidade existe se existir um elemento de outra entidade Relacionamento departamento/ funcionário, projeto/cliente Chave primária Se um elemento da primeira entidade for removido, todos os relacionados da segunda também serão removidos Superchaves chaves que identificam um único elemento Chaves candidatas chaves que podem ser primária Chave primária é a chave escolhida pelo administrador para identificar um elemento da entidade Pode ser composta por mais de um atributo ou pode ser criada se nenhum for boa escolha. Uma entidade cujos atributos não conseguem identificar um único elemento, são chamadas entidades fracas. As entidades fracas importam a chave primária da entidade forte relacionada e fazem uma composição com um de seus próprios atributos. Considere que uma entidade Conta tenha chave primária Número_conta, e a entidade transação tenha a estrutura (Número_transação, Data, Valor). A entidade transação não consegue identificar uma única transação pois para contas diferentes há números de transação iguais. A solução é a entidade transação importar a chave de conta ficando assim a sua estrutura (Número_conta, Número_transação, Data, Valor). A chave primária seria agora a composição entre Número_conta e Número_transação. Entidade fraca sempre é dependente existencialmente da entidade forte relacionada. Generalização e especialização Generalização é a composição de duas entidades formando uma entidade de mais alto nível, mais genérica. Ex. Cliente, Fornecedor = Pessoa. Especialização é a decomposição de uma entidade em entidades mais específicas. Ex. Conta = Conta_corrente e Conta_poupança Agregação Existem situações em que um relacionamento depende de outro relacionamento.

Agregação é, resumidamente, um relacionamento entre relacionamento Exemplo: Funcionário participante de um projeto e utiliza instrumentos.

Chave primária Aulas 11, 12 e 13 exercícios Generalização e especialização Agregação Lista de exercícios Uma empresa de informática quer implementar um sistema de atendimento ao cliente para atender dúvidas e colher sugestões de melhoria nos softwares que ela comercializa. Para isto ela precisa manter o cadastro de clientes atualizado e um histórico dos contatos efetuados. Para cada ligação recebida, guardar alguns dados como a data, hora, funcionário que atendeu a ligação, o tipo de contato e o teor da conversa. O sistema também deve associar o cliente com o software específico que o cliente adquiriu, e os dados acerca desta venda como a data e o vendedor que realizou a venda. Elabore um DER para a empresa implementar este sistema. Para ter um maior controle de sua frota de veículos e serviço de entregas, uma empresa deseja informatizar o seu departamento de expedição. Para isto devem ser guardadas informações acerca das saídas dos entregadores, para onde eles foram, a hora de saída e chegada, qual o veículo que ele utilizou e quais os documentos foram levados. Também é um requisito do sistema controlar o consumo dos veículo e para isto deverão ser guardadas informações sobre os abastecimentos realizados como data, posto, quantidade de litros e preço pago. Faça o DER correspondente. Ao fazer uma análise em uma empresa, foi passado um relatório com a seguinte estrutura: Lançamento (DATA, DESCRIÇÃO, NÚMERO NOTA, ATENDENTE, FORMA PAGTO, VALOR TOTAL). Elabore um provável DER do qual seja possível extrair tais informações. Uma seguradora de automóveis possui um grupo de clientes cada um deles com diversos carros próprios. Cada carro possui um registro de ocorrências associadas a ele. Construa um DER para esta seguradora. Um biólogo trabalha em um projeto para catalogar as diversas espécies de plantas nativas em determinadas regiões e suas propriedades medicinais. Para isto, ele precisa catalogar a região onde a espécie vive, quais as prováveis doenças curadas pela planta e as diversas receitas para extração destes remédios. Elabore um DER para o biólogo. Em uma imobiliária, existe um sistema que não atende os requisitos de funcionamento da empresa e eles decidiram por implementar um novo sistema. Porém há alguns relatórios que eles acham muito importante que seja mantido no novo sistema. Um deles contém o seguinte layout: RELAÇÃO DE INQUILINOS EM CONTRATO ATIVO PÁGINA 1

DATA CONTRATO ENDEREÇO DO IMÓVEL NOME DO INQUILINO NOME DO PROPRIETÁRIO VENCIM ALUGUEL VENCIM CONTRATO 14/05/95 RUA 15, 644 CENTRO JOSÉ ARMANDO SILVEIRA ANANIAS GONÇALVES MOTTA 14 14/05/03 23/07/99 AV. CASTELO BRANCO, 6994 BAIRRO IPIRANGA 14/04/02 RUA 17-B, QD.45 LT. 3 BAIRRO SÃO SIMÃO MARCELLO RHIAMAR DE OLIVEIRA MIGUEL ZEFFERINNO ALEVIM 12 23/06/04 ANDRÉ SOARES NOGUEIRA ALTEVIR DA GLÓRIA BASTOS 5 17/04/03 Elabore um provável DER que consiga gerar o relatório acima. Em um restaurante, deseja- se automatizar o controle de consumo das mesas e para isto o sistema deve trabalhar considerando o processo descrito a seguir. Os produtos são divididos em grupos para facilitar a pesquisa e controle de consumos, bem como refletir o que está impresso no cardápio. Assim existem grupos como bebidas, entradas, pratos quentes e frios, etc. O cadastro dos produtos contém apenas informações simples como o nome e preço de venda. As mesas do restaurante são todas cadastradas, informando a sua localização, número e quantidade de lugares. Para servir, o garçom faz a anotação dos pedidos em comandas que contém o produto pedido, a quantidade, a mesa servida e o garçom responsável. Quando o cliente pede a conta, é feito um fechamento onde as comandas são totalizadas e é armazenada a hora de fechamento (emissão da conta), a hora do pagamento (que o garçom traz o dinheiro) o valor total pago, a comissão do garçom e o número de pessoas da mesa. Elabore um DER para o restaurante. Construa um DER para uma empresa de treinamento. A empresa mantém cadastrados os cursos, as disciplinas ministradas em cada curso, os professores, horários de aula, as matrículas dos alunos em determinados cursos, e os dados do próprio aluno. Cada aluno somente pode se matricular em um único curso e um professor pode ministrar mais de uma disciplina. Em uma empresa de consultoria, existem os representantes de vendas que trabalha com diversos clientes e tem acesso a diversos consultores da empresa. Um contrato de consultoria com um cliente pode envolver vários consultores diferentes. Durante a vigência do contrato, são elaborados diversos relatórios de consultoria informando os procedimentos tomados na visita ao cliente. Nesta fase, o vendedor não é envolvido e os consultores tratam diretamente com o cliente. Elabore um DER para esta empresa

O Modelo Relacional Aula 18 A linguagem SQL usada nos bancos de dados relacionais são fundamentadas no modelo relacional. Representa o banco de dados como uma coleção de tabelas. Um exemplo de banco de dados com três tabelas seria o seguinte: Fornecedor Peça Código Nome Cidade Código Nome Preço 1 Silveira Londrina 1 Solução 8,2 2 Juvercino Porangatu 2 Mangueira 20 3 Ademar Vila Velha 3 Bobina 16 4 Bartolomeu Rio Claro 4 Câmera 170 Fornecimento Fornecedor Peça 1 1 1 2 2 4 3 1 3 3 4 2 4 3 4 4 Fornecedor tabela que armazena o código, o nome e a cidade de um fornecedor Peça armazena o código, descrição e preço de uma peça Vendas armazena que peça é vendida por qual fornecedor. As tabelas Fornecedor e Peça representam entidades e a tabela Vendas um relacionamento. Cada tabela tem um nome único e uma estrutura similar à apresentada no MER Formalidades do modelo relacional O fundamento matemático para o modelo relacional é o conceito de relação, um subconjunto do produto cartesiano de uma lista de domínios. Formalmente, um domínio é um conjunto de valores. Ex.: o conjunto de inteiros é um domínio, assim como o conjunto de caracteres de tamanho 20, e o conjunto dos números reais.

Exemplo de produto cartesiano: Suponha um domínio D1={0,1} e um domínio D2={a,b,c} então o produto cartesiano D1 D2 será {(0,a),(0,b),(0,c),(1,a),(1,b), (1,c)}. Os membros de uma relação são chamados de tuplas. Uma relacão pode ser vista como uma tabela, onde cada tupla é representada por uma linha e cada coluna corresponde a um componente da tupla. Dando nomes (atributos) a estas colunas, nos leva a definir um esquema relacional. Um esquema de relação R é um conjunto finito de atributos A1, A2,... Ak. Existe um domínio Di, para cada atributo Ai, 1 <= i <= k, de onde o valor do atributo é tirado. Um esquema de uma relação R pode ser escrito da seguinte forma: R (A1, A2,... Ak). Um esquema para uma tabela de clientes seria Cliente- esquema = (nome, endereço, cidade, estado, cep, ddd, telefone, email, rg, cpf) Diferenciar esquema de instância esquema concepção lógica do banco de dados instância conjunto de valores no banco de dados em um determinado momento Transformando DER em tabelas Cada entidade equivale a uma tabela no banco de dados. Nos relacionamentos um para muitos, não é necessário criar tabelas adicionais, basta exportar a chave primária da entidade do lado um para a entidade do lado muitos. Os relacionamentos muitos para muitos obrigatoriamente geram tabelas extras no banco de dados contendo no mínimo as chaves primárias que participam do relacionamento. Relacionamentos que necessitam de atributos geram tabelas adicionais no banco de dados pela presença dos atributos. As tabelas mostradas no exemplo de modelo relacional foram tiradas do seguinte DER:

Revisão Formalidades do Modelo Relacional Aula 14 Baseado na teoria de conjunto Conceito de relação Tabela x Relação, Linha x Tupla, Domínio x Tipo de dado 2. Operações no Modelo Relacional O que fazer para extrair informações das tabelas? Dois tipos de notações de operações em relações: Álgebra relacional notação algébrica onde as consultas são expressas aplicando- se operadores especializados às relações Cálculo relacional notação por restrições lógicas que a resposta a uma consulta deve satisfazer. Álgebra relacional Consiste de uma série de operadores que, aplicados nas relações, resultam em um conjunto de dados satisfazendo algumas condições. Alguns operadores complexos podem ser expressos pela composição de outros operadores simples. Operadores da álgebra relacional: SELEÇÃO ( ): extrai as tuplas de uma relação que satisfazem alguma condição. Codigo=3 (Fornecedor) Código Nome Cidade 3 Ademar Vila Velha PROJEÇÃO ( ): mostra apenas os atributos (colunas) selecionadosde uma relação. Exemplos Nome(Fornecedor) Silveira Juvercino Ademar Bartolomeu Nome Extrair uma lista de fornecedores cujos códigos são maiores que 4 Emitir uma lista de produtos cujos preços são menores que 100 Emitir a mesma lista de produtos anterior, mostrando apenas a descrição e o preço

Emitir uma lista completa de fornecedores, mostrando apenas o nome e a cidade Em um banco de dados, listar a descrição, a quantidade e o preço dos produtos com quantidade maior que zero Numa empresa de consultoria, mostrar o código e o nome de todos os funcionários cuja função seja Atendente Numa empresa de informática, mostrar os nomes e preços dos softwares onde a plataforma seja Windows e Unix (vale somente os que rodam nas duas plataformas).

Revisão Aula 15 Álgebra Relacional Operadores de seleção e projeção Operadores da álgebra Relacional (continuação) PRODUTO (x): Faz o produto cartesiano entre duas relações. Fornecedor x Peça Código Nome Cidade Código Nome Preço 1 Silveira Londrina 1 Solução 8,2 1 Silveira Londrina 2 Mangueira 20 1 Silveira Londrina 3 Bobina 16 1 Silveira Londrina 4 Câmera 170 2 Juvercino Porangatu 1 Solução 8,2 2 Juvercino Porangatu 2 Mangueira 20 2 Juvercino Porangatu 3 Bobina 16 2 Juvercino Porangatu 4 Câmera 170 3 Ademar Vila Velha 1 Solução 8,2 3 Ademar Vila Velha 2 Mangueira 20 3 Ademar Vila Velha 3 Bobina 16 3 Ademar Vila Velha 4 Câmera 170 4 Bartolomeu Rio Claro 1 Solução 8,2 4 Bartolomeu Rio Claro 2 Mangueira 20 4 Bartolomeu Rio Claro 3 Bobina 16 4 Bartolomeu Rio Claro 4 Câmera 170 UNIÃO ( ): Faz a união de duas relações. As duas relações devem ter o mesmo número de atributos e estes atributos devem ser de tipos compatíveis. INTERCEÇÃO ( ): Faz a interceção entre duas relações. O resultado serão todas as tuplas comuns às duas relações. Assim como na união as relações devem ter o mesmo número de atributos. DIFERENÇA (- ): Faz a diferença entre duas relações. O resultado serão todas as tuplas que estão em uma relação porém não estão na outra. JUNÇÃO ( ): Conecta duas relações através de seus atributos comuns. O resultado são todas as tuplas combinadas onde o atributo comum tem o mesmo valor nas duas relações. R S (R,S) A B C C D E R.A R.B R.C S.C S.D S.E 1 2 3 3 a b 1 2 3 3 a b 4 5 6 6 c d 4 5 6 6 c d