Baixe o app para aproveitar ainda mais
Prévia do material em texto
Centro Estadual de Educação Tecnológica Paula Souza Componente Curricular: Técnicas e Linguagens para Banco de Dados I Profª Mayara B. Silva 1 SUMÁRIO Introdução a Banco de Dados........................................................................................................ 2 Modelagem de Dados .................................................................................................................... 3 MER- Representação Gráfica ........................................................................................................ 4 Cardinalidade dos Relacionamentos ............................................................................................. 7 Chave Estrangeira ......................................................................................................................... 9 Entidade Associativa e Chave Primária Composta ..................................................................... 11 Banco de Dados Relacional - Esquema Relacional ..................................................................... 13 Classes de Atributos .................................................................................................................... 14 Atributo Simples ................................................................................................................. 14 Atributo Composto .............................................................................................................. 15 Atributo Multivalorado ....................................................................................................... 15 Dicionário de Dados .................................................................................................................... 15 Ferramentas CASE ...................................................................................................................... 17 Autorrelacionamento ................................................................................................................... 19 Entidade Fraca ............................................................................................................................. 21 Agregação na Entidade Associativa ............................................................................................ 23 Generalização/ Especialização .................................................................................................... 25 Tipos de Generalização/ Especialização ..................................................................................... 28 Tipos de Especialização/Generalização – Exclusiva e Não Exclusiva ....................................... 30 Normalização .............................................................................................................................. 34 1ª Forma Normal – 1FN .............................................................................................................. 34 Dependência Funcional ............................................................................................................... 38 Normalização - 2ª Forma Normal – 2FN .................................................................................... 42 Normalização - 3ª Forma Normal – 3FN .................................................................................... 45 ANEXO – Avaliações e Trabalhos ............................................................................................. 49 2 Introdução a Banco de Dados O que é um Dado? Os dados são a menor parte da informação. Por exemplo: Joana, Rua dos Alfeneiros, manteiga, 5, orquídea, sal, torrada, solteira, 15, aviação. A partir da organização correta dos dados, obtemos uma informação. Por exemplo: Joana é solteira e tem 15 anos. Ela mora na Rua dos Alfeneiros número 5. Sua flor preferida é a orquídea e o que mais gosta no café da manhã é torrada com manteiga Aviação com sal. Observação: só conseguimos obter uma informação correta a partir da organização correta dos dados! O que é Banco de Dados? Um banco de dados é uma estrutura que contém uma grande quantidade de dados armazenados e organizados. Exemplos: banco de dados para Locadora, Estoque de Empresa, Escritório, Jogos de Computadores etc. Qual sua utilidade? Cenário: Você gosta muito de animais, é uma pessoa empreendedora e, por isso, quer construir um PetShop! Você terá muitos clientes que terão vários animais. Além disso, você terá vários funcionários e também venderá vários produtos de trato de animais no seu negócio. Você terá que saber coisas como nome, endereço, telefone, idade de cada cliente e funcionário, bem como informações de todos os produtos que você vende. Onde você vai guardar todas essas informações? 3 Resposta: O banco de dados armazena tudo isso de forma organizada e sem redundância. Você pode acessar esses dados de maneira muito mais rápida do que se estivessem armazenados em papel. Atividade Faça uma pesquisa que aborde os seguintes aspectos de Banco de Dados: sua definição, sua história e a importância dos sistemas de bancos de dados nas organizações. Seja cuidadoso com as referências utilizadas em sua pesquisa, e não se esqueça de citar todas as fontes. Modelagem de Dados A modelagem de dados é uma fase de projeto do banco de dados, onde os dados deverão ser abstraídos e organizados. Por que modelar? Quando construímos uma casa, não precisamos criar uma planta da mesma? Na construção de Banco de Dados seguimos o mesmo princípio, utilizando regras de modelagem para esboçar quais dados serão armazenados e como serão organizados, a fim de que não haja redundância ou erros nas nossas Informações, e que possamos acessá-las rapidamente. MER (Modelo Entidade-Relacionamento) Modelo utilizado para representar os dados e a forma como eles se relacionam em um Banco de Dados de um sistema computacional. Foi criado por Peter Chen, cientista da computação americano, em 1976. 4 MER- Representação Gráfica Componentes do MER - Entidades Identifica o objeto de interesse do sistema e tem "vida" própria, ou seja, a representação abstrata de um objeto do mundo real sobre o qual desejamos guardar informações. Exemplo: entidades Sistema de Pet Shop Exercícios – Entidades e Relacionamentos 1. Explique por que a modelagem de dados é importante no projeto de um BD. 2. Identifique entidades e seus relacionamentos para os seguintes problemas: a) Sistema de hotelaria b) Sistema de uma escola c) Uma editora de livros quer fazer um sistema para manutenção de seus livros. Cada livro possui seus respectivos autores, editores e revisores. d) Em um campeonato de esportes o treinador possui diversos atletas, que por sua vez são classificados em diferentes categorias. e) A empresa de linhas aéreas XYZ possui três importantes recursos: voos, pilotos e tripulantes. Os pilotos e os tripulantes tem suas respectivas bases domésticas, para as quais retornam após um voo para o qual tenham sido designados. 5 Componentes do MER - Atributos Os atributos são as características de uma entidade que devem ser armazenadas no banco de dados, ficando registradas para acesso sempre que necessário. Exemplo: Exercícios 1. Nos exercícios anteriores, coloque pelo menos 3 atributos para cada entidade. 2. Uma empresa de seguros de automóveis possui um conjunto de clientes em que cada um possui carros assegurados em seus nomes. Faça o MER para a empresa com as entidades, identificando relacionamento e atributos. 3. Uma Imobiliária deseja construir um sistema para armazenar seus dados. O proprietário, que possui o imóvel, contata o corretor de imóveis. É importante armazenar nome, rg, endereço e telefone doproprietário. Sobre o imóvel são armazenados um código, tipo de imóvel, endereço e valor do aluguel. O corretor, que possui um rg, nome, endereço, telefone e numero de dependentes, atende a um inquilino que aluga o imóvel. Sobre o inquilino é necessário armazenar nome, rg, cpf, endereço, telefone e numero de dependentes. Desenvolva o MER com entidades, relacionamentos e atributos. 4. Um berçário deseja informatizar suas operações. Quando um bebê nasce, algumas informações são armazenadas sobre ele, tais como: nome, data do 6 nascimento, peso do nascimento, altura, a mãe deste bebê e o médico que fez seu parto. Para as mães, o berçário também deseja manter um controle, guardando informações como: nome, endereço, telefone e data de nascimento. Para os médicos, é importante saber: CRM, nome, telefone celular e especialidade. Desenvolva o MER com entidades, relacionamentos e atributos. Atributo Identificador (Chave Primária) A chave primária é um atributo que identifica exclusivamente cada registro em uma tabela de banco de dados. Esse atributo chave faz com que exista apenas um valor único para cada registro, garantindo que não existam dados repetidos desnecessariamente no banco de dados. Lembre-se! A coluna de chave primária não pode conter valores nulos ou valores repetidos. Exemplo de chave primária: O atributo CodigoCli é o atributo identificador (chave primária) da tabela Cliente. Tabela Cliente CODIGOCLI NOME TELEFONE ENDEREÇO 01 MARIA 38739586 RUA DAS CARMELIAS, 221 02 LUIS 34642575 JD DA PAZ, 32 03 TEREZA 38657545 AV. CONSOLAÇÃO, 123 04 MARIA 38645535 RUA ADAMANTINA, 43 7 Exercícios 1. Elabore o MER e defina no mínimo 3 atributos e uma chave primária para cada uma das entidades abaixo: a) um aluno. b) um animal. c) um funcionário. d) um relógio. 2. Uma redistribuidora de equipamentos de informática deseja informatizar seu sistema. A loja vende equipamentos que são distribuídos pelo fornecedor e vendidos diretamente ao consumidor. Os vendedores são organizados em departamentos, para que sejam dedicados exclusivamente à sua área de venda. Faça o MER com entidades, relacionamentos e atributos para esse sistema. 3. Na cafeteria do seu Joaquim o cliente realiza o pedido que inclui o prato com sua respectiva descrição (a cafeteria possui os mais diversos pratos). Os garçons responsáveis pelo atendimento devem ser prestativos e corteses. Clientes e garçons possuem nome, endereço, data de nascimento e telefone. Lembre-se que cada prato possui um preço diferenciado e cada garçom um salário. Ao fazer o pedido são armazenadas data e hora do mesmo. Faça o MER com entidades, relacionamentos e atributos. Cardinalidade dos Relacionamentos A cardinalidade é um símbolo que expressa o número mínimo e máximo de ocorrências entre duas entidades relacionadas entre si. Cardinalidade Máxima: expressa o número máximo de ocorrências Cardinalidade Mínima: expressão o número mínimo de ocorrências As cardinalidades são expressas através dos símbolos 0, 1 e N. 8 Exemplo: Cardinalidade no MER: Exercícios 1. Em uma loja de cosméticos os vendedores são responsáveis pelas vendas. Observe a tabela de vendas do primeiro trimestre deste ano: VENDEDOR QTD DE VENDAS Luiz 375 Paula 50 Vivian 0 Leandro 120 Maria 485 Faça as entidades vendedor e venda, estabelecendo as cardinalidades do relacionamento, sabendo que cada venda é feita por apenas um vendedor responsável. 9 2. Faça um MER com entidades, relacionamentos, atributos e cardinalidades dos sistemas descritos: a) Em um sistema de uma biblioteca, os alunos podem emprestar vários livros que podem ser lidos por diferentes alunos. O sistema mantém o cadastro do aluno mesmo que este nunca tenha realizado um empréstimo. b) Na escola Anchieta todos os alunos são obrigados a entregar vários relatórios de suas atividades realizadas durante o semestre. Esses relatórios devem ser feitos individualmente. Os professores são responsáveis por corrigir os relatórios, sendo que cada professor pode corrigir vários relatórios, mas o relatório passa pela correção de somente um professor. c) Uma instituição bancária deseja controlar o movimento das suas contas correntes. A instituição possui agências espalhadas por várias cidades; o cadastro das agências contém informações sobre código, nome e endereço onde a agência é localizada. No cadastro de clientes estão armazenados os dados de nome, CPF e endereço de cada cliente. As contas correntes são identificadas por um número e mantêm o saldo atualizado das mesmas. Chave Estrangeira Quando passamos a chave primária de uma tabela como atributo em outra tabela, dizemos que essa chave se torna chave estrangeira na segunda tabela. Fazemos isso sempre que houver um relacionamento 1xN (um para N) ou Nx1 (N para 1), analisando as cardinalidades máximas do relacionamento. Exemplo: 10 Observe as tabelas simulando dados para cada entidade: ENTIDADE CURSO ENTIDADE ALUNO Exercícios Faça o MER determinando no mínimo 4 atributos para cada entidade, colocando as chaves estrangeiras que forem necessárias para os relacionamentos. Para cada entidade, faça uma tabela simulando dados para as mesmas, com 3 linhas de registros para cada uma: a) Uma livraria possui vários livros, mas um livro pertence a apenas uma livraria. b) Um motorista pode ter várias motos e a moto pertence a um único motorista. c) Cada espécie é catalogada por apenas um biólogo. Cada biólogo pode catalogar quantas espécies ele encontrar. d) De um voo participam vários passageiros. Mas cada passageiro só participa de um voo. 11 e) Todo funcionário possui um chefe, no entanto os chefes podem possuir vários funcionários. f) Uma construção possui vários operários e os operários podem participar de várias construções. g) Um artista possui vários músicos em sua banda, mas os músicos também podem tocar em várias bandas. h) Um coordenador coordena vários professores, mas cada professor é coordenado por apenas um coordenador. i) Uma escola possui um único diretor e um diretor possui uma única escola. Entidade Associativa e Chave Primária Composta Sempre que encontramos um relacionamento muitos para muitos (NxN) entre duas entidades, devemos criar uma entidade intermediária entre elas. Essa entidade é chamada entidade associativa. A entidade associativa deve ter como chave primária os valores das chaves primárias das duas entidades que a originaram, formando então uma chave primária composta. Exemplo: 12 Observe as tabelas simulando dados para cada entidade: ENTIDADE CURSO ENTIDADE CURSO_ALUNO ENTIDADE ALUNO Exercícios 1. Faça o MER para cada sistema descrito, colocando as chaves primárias compostas que forem necessárias para os relacionamentos. Para cada entidade, faça uma tabela simulando dados para as mesmas, com 2 linhas de registros para cada uma: a) Uma construção possui vários operários, que devem ser cadastrados com nome, RG, Número da Carteira de Trabalho, telefone e endereço, e os operários podem 13 participar de várias construções, que possuem data de início e término da obra, endereço e custo. b) Um artista possui vários músicos em sua banda, mas os músicos também podem tocar em várias bandas. Os artistas e os músicos possuem código, nome e telefone de contato, sendo que o músico também possui um instrumento. Já as bandas possuem um nome e uma data de origem. 2) Uma empresa deseja criar um aplicativo para download de músicas online, onde cada cliente poderá cadastrar um usuário e realizar o download de várias músicas por apenas R$0,99 mensais. Ao fazer seu cadastro, o usuário deverá criar um username,uma password e fornecer seu nome completo. Todas as músicas armazenadas devem conter seu título, tempo de duração, ano de lançamento, nome do artista e álbum ao qual pertence. Faça o MER para o sistema. 3) Em uma transportadora, os clientes podem realizar vários pedidos. Cada pedido é vinculado a um cliente. Os clientes possuem um cadastro contendo seu CPF, nome, telefone e endereço para entrega. Os pedidos devem ter hora e data registrados. Cada pedido pode conter vários produtos, que possuem descrição, preço e quantidade em estoque. Os pedidos são entregues pelos caminhões da frota transportadora. Cada caminhão possui um modelo, uma marca e uma placa cadastrados, podendo entregar vários pedidos. Os produtos podem estar em vários pedidos. Faça o MER para o sistema. Banco de Dados Relacional - Esquema Relacional O Esquema Relacional é outra forma de representação do Banco de Dados, relacionando suas respectivas entidades, atributos e chaves. Deve possuir a seguinte estrutura: 14 ENTIDADE (atributoIdentificador, atributo1, atributo2,...) AtributoChaveEstrangeira referencia Entidade OBS: caso haja um atributo que seja chave estrangeira, especificar a qual entidade ele faz referência. Exemplo: CURSO (CodCurso, Descrição) ALUNO (CodAlu, Nome, CodCurso) CodCurso referencia CURSO ATIVIDADE 1. Utilize a lista de exercícios realizada na última aula (Entidade Associativa e Chave Primária Composta) para criar os respectivos Esquemas Relacionais do Banco de Dados para cada um dos MERs desenvolvidos. Classes de Atributos Atributo Simples 15 Não possui qualquer característica especial, recebendo um valor único. A maioria dos atributos serão simples. Exemplo: nome, RG, salário. Atributo Composto O seu conteúdo é formado por vários itens menores. Exemplo: Endereço. Seu conteúdo poderá ser dividido em vários outros atributos, como: Rua, Número, Complemento, Bairro, Cep e Cidade. Atributo Multivalorado Pode ser preenchido por mais de um valor. Exemplo: Telefone. Uma pessoa poderá ter mais de um número de telefone (residencial, comercial, celular). Dicionário de Dados Conjunto de tabelas que descrevem e definem o significado de toda a informação usada na construção de um Banco de Dados. Cada entidade será representada em uma tabela com as colunas Atributos, Descrição (observação sobre o 16 atributo, não sendo seu preenchimento obrigatório), Domínio (N - número, M – moeda, D – data, T- texto), Tamanho (quantidade de caracteres que serão necessários para armazenar o seu conteúdo) e Classe (simples, composto, multivalorado, chave primária, chave estrangeira). Entidade: Secretária Atributo Descrição Domínio Tamanho Classe CodigoSecretaria Códido de identificação da secretária N 4 Chave primária Nome Nome completo T 50 simples telefone Pode ser residencial e/ou celular T 20 multivalorado endereço Composto de rua, número, bairro, cidade e CEP T 80 composto CPF T 12 simples Salario M 7 simples Observação: cuidado com os domínios de atributos como telefone e CPF. Apesar de serem números, eles serão gravados no banco de dados como sendo tipo texto, pois são números de tamanho muito grande e que não serão utilizados para cálculos. ATIVIDADE Faça o MER e o Dicionário de Dados para o sistema descrito a seguir: 17 Uma academia de ginástica deseja manter um controle do seu funcionamento e para isso deseja adquirir um sistema informatizado. A academia possui alunos que são organizados em turmas específicas. As informações sobre uma turma são número (quantidade) de alunos, horário da aula, duração da aula em minutos, data inicial, data final e tipo de atividade que a mesma realiza (pump, combat, alongamento etc). Cada turma é orientada por um único instrutor para o qual são cadastrados o nome, RG, CPF, data de nascimento, titulações, endereço e todos os telefones possíveis para sua localização. Um instrutor pode orientar várias turmas. Os dados cadastrados dos alunos são código de matrícula, data de matrícula, nome, endereço, telefone, data de nascimento, altura e peso (massa corpórea). Caso um aluno deseje realizar atividades diferentes, o mesmo pode se matricular em diversas turmas. Para cada matrícula que o aluno faz em uma turma, é mantido um registro das ausências do aluno nesta turma. Ferramentas CASE As ferramentas CASE (Computer-Aided Software Engineering - Auxílio Computacional para a Engenharia de Software) são programas que auxiliam equipes de 18 desenvolvimento a projetar sistemas, da mesma maneira que arquitetos e engenheiros projetariam um edifício, por exemplo. brModelo Ferramenta gratuita voltada para ensino de modelagem em Banco de Dados relacional. Esta ferramenta foi desenvolvida por Carlos Henrique Cândido sob a orientação do Prof. Dr. Ronaldo dos Santos Mello (UFSC), como trabalho de conclusão do curso de pós-graduação em banco de dados (UNVAG - MT e UFSC). A ferramenta é disponibilizada no endereço http://sis4.com/brModelo/Default.aspx. Tela do Sistema ATIVIDADE Utilizando o brModelo, faça o MER para o sistema descrito a seguir: 19 Uma academia de ginástica deseja manter um controle do seu funcionamento e para isso deseja adquirir um sistema informatizado. A academia possui alunos que são organizados em turmas específicas. As informações sobre uma turma são número (quantidade) de alunos, horário da aula, duração da aula em minutos, data inicial, data final e tipo de atividade que a mesma realiza (pump, combat, alongamento etc). Cada turma é orientada por um único instrutor para o qual são cadastrados o nome, RG, CPF, data de nascimento, titulações, endereço e todos os telefones possíveis para sua localização. Um instrutor pode orientar várias turmas. Os dados cadastrados dos alunos são código de matrícula, data de matrícula, nome, endereço, telefone, data de nascimento, altura e peso (massa corpórea). Caso um aluno deseje realizar atividades diferentes, o mesmo pode se matricular em diversas turmas. Para cada matrícula que o aluno faz em uma turma, é mantido um registro das ausências do aluno nesta turma. Autorrelacionamento 20 O autorrelacionamento ocorre toda vez que uma entidade se relaciona com ela mesma. Por exemplos: Neste caso, um professor é o coordenador de no mínimo 0 e no máximo vários outros professores. Ao mesmo tempo, o professor é coordenado por no mínimo 1 e no máximo 1 único coordenador. Neste caso, uma pessoa será pai de outra pessoa. Podemos interpretar pelas cardinalidades que uma pessoa pode ter no mínimo 0 e no máximo muitos filho, e que uma pessoa pode ser filha de no mínimo 1 e no máximo 1 pai. Lista de Exercícios Faça o MER no brModelo para as situações descritas abaixo. Todas as entidades devem ter atributos, portanto você deve completar as entidades que não tiverem seus atributos descritos. a) Em um hospital, todos os pacientes realizam um determinado tratamento prescrito pelo médico responsável pelo mesmo. Os tratamentos possuem uma descrição detalhada de todos os procedimentos necessários, bem como data de início e término. Os médicos são supervisionados por outros com mais tempo de experiência no hospital. Cada paciente é alocado em um leito localizado em um andar específico do prédio, com número e tipo (enfermaria ou individual). b) Na linha de produção de uma fábrica, os operários são responsáveis por montar peças. Cada peça é composta por outras peças. Uma peça possui número de série, tipo, dimensão e peso. Para cada operário é importante armazenar seus 21 documentos pessoais, o valor de seu salário, endereço, telefone, data de nascimento e data de contratação.c) A agência de casamentos Enforque-se Feliz deseja informatizar seu negócio. O processo do casamento funciona assim: Uma pessoa se casará com a outra em um salão de festas. O salão tem endereço, telefone e preço do aluguel. Após a cerimônia, o casal irá para um maravilhoso hotel, onde é necessário armazenar localização, telefones para contato, número da reserva, preço da diária e número de estrelas. Para chegar até o hotel, os pombinhos alugarão um automóvel, que possui marca, modelo, cor e valor do aluguel. Depois de tudo isso, é só esperar o Felizes para Sempre. Entidade Fraca 22 Se uma Entidade depende de outra Entidade para existir, ela é classificada como uma ENTIDADE FRACA. Podemos dizer que a Entidade Fraca é subordinada da Entidade Dominante (também chamada de Entidade Forte). Exemplo: O Empregado de uma empresa pode possuir Dependentes (filhos), porém só existirão Dependentes caso existam Empregados. DEPENDENTE é uma Entidade Fraca de EMPREGADO. CHAVE PRIMÁRIA A chave primária de uma entidade fraca será composta por uma chave própria mais a chave de sua entidade dominante. Observe o Esquema relacional abaixo: Empregado (CodigoEmp) Dependente (CodigoDependente, CodigoEmp) CodigoEmp referencia Empregado ENTIDADE FRACA NO brModelo Clique no relacionamento da Entidade Fraca e configure nas propriedades: Lista de Exercícios 23 Faça o MER no brModelo para as situações descritas abaixo. 1. Identifique qual é a entidade fraca e a entidade forte dentre as citadas abaixo, e desenhe o MER com suas respectivas chaves primárias. a) Empresa e filial b) Empréstimo e livro c) Dependente e Funcionário d) Produto e Venda e) Agência e Banco 2. A agência bancária ABC necessita de uma base de dados que armazene todas as informações de seus correntistas. Todas as contas possuem um número, um saldo, uma data de criação e um tipo (podendo ser corrente, poupança ou salário). A partir do momento que uma conta é criada, todas as suas transações devem ser registradas, sendo necessário armazenar data e valor da mesma. 3. Em uma biblioteca, um usuário (que é registrado com CPF, nome, data de nascimento, telefone e endereço) pode realizar o empréstimo de vários livros. Um empréstimo só é realizado caso exista pelo menos um livro para ser emprestado. Sobre os livros é necessário armazenar ISBN, título, nome do autor, quantidade de páginas e estilo literário. Na hora do empréstimo é muito importante armazenar data e hora do mesmo, bem como a data da devolução prevista. Os livros são organizados em seções com um código, localização e gênero. Agregação na Entidade Associativa 24 Sempre que duas entidades possuírem um relacionamento com cardinalidade NxN (muitos para muitos) precisamos criar uma entidade associativa nesse relacionamento, como no exemplo abaixo: A Agregação acontece quando temos um relacionamento entre a entidade associativa e uma outra entidade. Por exemplo: Quando um aluno cursa uma disciplina, ele é ensinado por um professor. O professor tem relacionamento tanto com o aluno como com a disciplina, devendo ser relacionado, portanto, com a Entidade Associativa Aluno_Diciplina, resultando no MER abaixo: CARDINALIDADES: O professor ensina no mínimo 1 e no máximo muitos alunos que cursam as disciplinas e esses alunos possuem no mínimo 1 e no máximo 1 professor por disciplina. CHAVE ESTRANGEIRA: Neste caso, o atributo CodPro será chave estrangeira em Aluno_Disciplina, por causa das cardinalidades máximas 1xN. Lista de Exercícios 25 Faça o MER para os exercícios abaixo. Lembre-se que todas as entidades devem ter atributos. 1. Uma pessoa pode ingressar em diversas universidades. Sempre que ingressa na mesma, ela recebe um professor tutor, que será o responsável por guiá-la em seus estudos e realizar seu acompanhamento pedagógico. Toda universidade possui um patrocinador, que será responsável por ajudá-la financeiramente na organização de eventos em troca de publicidade. O Banco de Dados deve armazenar nome, endereço e telefone de contato do patrocinador. O tutor possui nome, telefone, CPF e titulações (podendo ser mais de uma titulação). 2. Em uma unidade de pronto-atendimento, o paciente pode ser atendido por vários médicos. Ao atender um paciente, um médico pode prescrever vários medicamentos, que por sua vez podem ser prescritos em vários tratamentos. Os medicamentos são fornecidos por laboratórios, devendo ser armazenados nome, endereço e telefone de contato. Já para os medicamentos devem ser armazenados nome, data de fabricação, preço, data de validade e uma breve descrição dos possíveis efeitos colaterais. 3. Em um estúdio de fotografia um fotógrafo realiza diversos trabalhos, que podem ter a participação de muitos fotógrafos trabalhando em conjunto. Para realizar cada trabalho, os fotógrafos podem utilizar diversos equipamentos (câmeras, lentes, tripés, iluminadores, etc.). Cada trabalho possui uma descrição (ensaio fotográfico, evento ao ar livre, publicidade, etc.) e um endereço, sendo que sua realização possui também uma data. Todo trabalho possui um cliente que o encomendou, sendo que o estúdio mantém um cadastro de todos os seus clientes com nome, CPF e telefone para contato. Os equipamentos possuem nome, número de série, descrição, data de aquisição e preço. Já os fotógrafos devem conter seus documentos pessoais, nome, endereço, telefones para contato e especializações. Generalização/ Especialização 26 A generalização/especialização é utilizada para representar entidades que são colocadas como subclasses (especializações) de uma superclasse (generalização). Exemplo: Entidade Genérica: Empregado Entidades Especializadas: Secretário e Engenheiro (ambos também são empregados) OBSERVAÇÃO: o atributo tipo_empregado irá dizer se o empregado é Secretário ou Engenheiro. Para criar no brModelo 27 Lista de exercícios 1. Uma empresa de publicidade presta serviços para os mais diversificados clientes, sendo necessário armazenar data de início, data de término, descrição e valor para cada projeto contratado. Os publicitários que desenvolvem o projeto também são armazenados no banco, com todas as suas informações pessoais como nome, RG, CPF, carteira de trabalho, título de eleitor, endereço, telefone, formação e atualizações profissionais. Os publicitários possuem remuneração por hora de trabalho realizado nos projetos, sendo necessário armazenar o valor de sua hora-projeto. Os clientes que a agência atende possuem um código, nome, endereço, e telefone de contato, sendo que os clientes que forem pessoa física têm seu CPF e data de nascimento armazenado, enquanto os que forem pessoa jurídica possuem CNPJ. 2. O estabelecimento comercial T.Informática vende diversos produtos para seus clientes e deseja informatizar seu sistema. Todo produto possui um número de registro, a data que entrou no estoque e o preço. Os clientes devem ser armazenados com todos os seus documentos pessoais, endereço e telefone. Para softwares disponíveis para venda, o sistema armazena qual a sua versão e requisitos de instalação. Já para hardware, é armazenada uma descrição do mesmo. 3. Faça o MER com entidades e relacionamentos (não é necessário colocar atributos) para o seguinte problema: Um veículo pode ser terrestre, aquático ou ainda aéreo. Considere os veículos carro, barco, motocicleta, caminhão, avião, navio, helicóptero e submarino em seu modelo. 28 Tipos de Generalização/ Especialização Parcial Temos a generalização parcial quando nem toda ocorrência da entidade genérica possui uma ocorrência correspondente em uma entidade especializada. Exemplo: No exemplo acima, nem todo empregadoé secretário e nem todo empregado é engenheiro. Pode haver empregados que não sejam nem secretário e nem engenheiro. Dizemos, portanto, que ocorre a generalização parcial. Total Para cada ocorrência da entidade genérica existe sempre uma ocorrência em uma das entidades especializadas. Exemplo: 29 No exemplo acima, todo cliente ou é uma pessoa física ou uma pessoa jurídica. Não existe a possibilidade de haver um cliente que não seja pessoa física ou pessoa jurídica. Atenção: para indicar generalização parcial no brModelo devemos: 1. Clicar no símbolo da agregação. 2. Escolher a opção Sim no item Esp.Parcial nas propriedades à direita. Lista de exercícios 1. Desenhe o MER para as seguintes situações, não se esquecendo de levar em consideração os tipos de generalização e colocar atributos: a) Em uma empresa, dentre todos os funcionários podemos destacar o motorista e o atendente. 30 b) Em uma empresa de planos de saúde, os médicos são classificados em residentes ou efetivos. c) Em uma empresa organizadora de eventos, alguns tipos de festas oferecidos são festa à fantasia, festa havaiana e festa do pijama. d) Em uma farmácia, vendem-se medicamentos como analgésicos e antibióticos. e) Em uma autoescola, o cliente pode optar por fazer três modalidades de cursos: carro, moto ou ainda micro-ônibus. f) Um prestador de serviços de uma empresa pode ser assalariado ou freelancer. Caso seja assalariado, é importante armazenar o salário fixo e o número da carteira de trabalho. Caso seja freelancer, é importante armazenar o valor pago pelo trabalho realizado e a data de início e término de seu contrato. 2. Indique nos exercícios da aula passada quais são os tipos de generalização contidos no MER. Tipos de Especialização/Generalização – Exclusiva e Não Exclusiva Exclusiva (disjunta) Não pode existir sobreposição entre as instâncias da classe genérica para a classe especializada. Exemplo: 31 Neste exemplo, um veículo não pode ser terrestre e aéreo ao mesmo tempo, sendo ou terrestre, ou aéreo. Não exclusiva (sobreposta) Uma ocorrência da entidade genérica pode pertencer a mais de uma classe especializada ao mesmo tempo. Exemplo: um MER para uma escola de idiomas Neste exemplo, é permitido que o funcionário exerça o papel de professor e aluno ao mesmo tempo (o professor de espanhol faz aulas de francês, por exemplo), podendo haver uma sobreposição de cargos. No brModelo: • Para criar a especialização exclusiva (disjunta), utilizar o ícone abaixo: 32 OBS: ele cria duas entidades especializadas como padrão, para criar mais entidades especializadas utilize o ícone da entidade para criá-las e ligue-as com o conector: • Para criar a especialização não exclusiva (sobreposta), utilizar o ícone abaixo: OBS: neste caso o brModelo cria apenas uma entidade especializada como padrão, para criar mais entidades especializadas clique no mesmo ícone novamente e na entidade genérica, criando outra especialização sobreposta. Lista de exercícios 1. Desenhe o MER para as seguintes situações, não se esquecendo de levar em consideração os tipos de generalização: 33 a) Maria é secretária em uma escola de idiomas. Além de secretária, ela é também aluna do curso de espanhol. b) Na empresa de Roberto, seus clientes são pessoas físicas ou pessoas jurídicas. c) Em uma empresa, existem os cargos de diretor e gerente, sendo que o funcionário não pode desempenhar os dois ao mesmo tempo. d) Uma mercearia pode vender produtos que são classificados como bebida ou comida. e) Em uma competição esportiva, os participantes são todos cadastrados, sendo que um voluntário na organização do evento pode competir como um esportista caso tenha interesse. f) O público de uma peça teatral pode ser registrado como críticos ou espectadores. g) Em uma empresa de transporte, o funcionário é contratado para desempenhar a função de motorista ou cobrador. 2. Uma federação de futebol pretende desenvolver um sistema informatizado para controlar as informações geradas em seus campeonatos. As informações a serem armazenadas dizem respeito aos times, jogadores e partidas. Um time pode ser profissional ou amador. Para os times amadores deseja-se armazenar nome, cidade de origem e ano em que foram criados. Para os times profissionais deseja-se saber quem são os atuais patrocinadores e nome e sobrenome dos atuais diretores. Para cada jogador deseja-se conhecer em quais times joga e, para cada time, em quais posições atua. Sobre as partidas de futebol são armazenadas: o placar, o local (cidade), a data e os times que jogaram. Sobre os árbitros reconhecidos pela federação são armazenados nome, RG, telefone e quais tipos de jogos pode apitar. 34 Normalização A normalização é um método que se emprega para aumentar a qualidade do projeto de banco de dados. Seu objetivo é evitar anomalias que podem gerar inconsistência no banco de dados. Alguns exemplos de anomalias são dados repetidos desnecessariamente, perdas acidentais de dados, dificuldade nas atualizações de dados etc. A normalização determina algumas regras que devem ser seguidas para que um banco de dados seja considerado correto. As regras mais conhecidas são: 1ª Forma Normal, 2ª Forma Normal e 3ª Forma Normal. 1ª Forma Normal – 1FN Foi definida para não permitir atributos multivalorados e atributos compostos. Ela estabelece que: “Uma entidade está na primeira 1FN se, e somente se, todos os seus atributos contêm valores atômicos (simples, indivisíveis, com somente um valor para o campo)” Exemplo: entidade Clientes Tabela de Registros da Entidade Clientes CPF Nome Sexo Localização Telefone 123456789-x Maria F Niterói, RJ, Brasil 3885-8985/983422345 111222333-8 José M Brasília, DF, Brasil 3845-5566/997894587 444555666777-2 Luiza F São Paulo,SP, Brasil 3887-7777 35 555666777888-9 Pedro M Porto Alegre, RS, Brasil 995544565 Problemas que não obedecem à 1FN: Atributo localização: dificulta pesquisar os clientes pelo seu estado, ou pelo seu país, ou ainda por sua cidade dinstintamente, pois estão todos juntos em um atributo composto. Atributo telefone: atributo multivalorado, com mais de um valor por campo, como no caso dos clientes Maria e José. Solução através da normalização: 1. Cada atributo composto será dividido em vários atributos atômicos. CPF Nome Sexo Cidade Estado País 123456789-x Maria F Niterói RJ Brasil 111222333-8 José M Brasília DF Brasil 444555666777-2 Luiza F São Paulo SP Brasil 555666777888-9 Pedro M Porto Alegre RS Brasil 2. Cada atributo multivalorado será transformado em outra entidade, que possuirá como chave primária a chave original mais o próprio atributo, sendo portanto uma chave primária composta. CPF Telefone 123456789-x 3885-8985 123456789-x 983422345 111222333-8 3845-5566 111222333-8 997894587 444555666777-2 3887-7777 555666777888-9 995544565 Resultado da entidade após a normalização 1FN no MER: 36 Lista de Exercícios 1. Faça o MER para as situações abaixo, fazendo com que as entidades respeitem a 1FN, caso elas estejam em desacordo com a regra: a) Arquivo Clientes Nome RG email Telefone Amanda Souza 11.222.222-3 Amanda.amanda@hotmail.com (19)997788776 João Amaral 22.333.444-5 Joao.joao@gmail.com (19)38455445 (19)982233221 Letícia Fontana 33.444.555-6 Leticia.leticia@yahoo.com (18)38677747 b) Arquivo Funcionários Nome CPF Endereço Salário Amanda Souza 11.222.222-3 Rua João Diniz, n.545,Jd. Amoras, Piracicaba, São Paulo, CEP 13185545 R$1500,85 João Amaral 22.333.444-5 Av Brasil, n.67, Centro, Americana, São Paulo, CEP 13190010 R$2300,50 Letícia Fontana 33.444.555-6 Rua Consolação, Jd. Piracanjuba, Santa Bárbara D’Oeste, SãoPaulo, CEP 134555753 R$3000,00 c) Arquivo Carro Placa Marca Modelo Serviço Cor DHY1221 Chevrolet Celta 1.0 pintura Prata FDS6780 Fiat Palio 1.6 Lavagem cristalização Vermeho BOY4050 FORD KA 1.8 funilaria pintura Branco 37 2. Faça o MER dentro da 1FN, colocando no mínimo 4 atributos para cada entidade: a) Um intérprete de uma agência de turismo precisa falar no mínimo dois idiomas. b) Um paciente de um hospital precisa armazenar os exames que ele faz. c) Um cliente de uma veterinária precisa cadastrar seus cachorros. d) Um motorista precisa armazenar todas as licenças para dirigir que ele possui (carro, moto ou ônibus). e) Os funcionários de uma empresa precisam cadastrar todos os seus dependentes. f) O professor de uma escola precisa armazenar todos os seus cursos de atualização profissional. 38 Dependência Funcional A dependência funcional é um conceito muito importante para a correta aplicação da 2FN e da 3FN, que serão vistas nas próximas aulas. O que é dependência funcional? Dizemos que um atributo depende de outro (ou de outros) quando o seu valor é determinado pelo valor deste outro atributo. Exemplo: O nome de um funcionário depende de seu CPF. Observe a tabela de registros abaixo: CPF Nome 111 Maria 222 Pedro 333 Luiza 444 Eduardo Podemos dizer que o atributo nome depende funcionalmente do CPF, ou ainda que o CPF determina o nome. Sempre que o CPF for 111, o nome será Maria, 222 - Pedro, 333 – Luiza e 444 – Eduardo. Observação: não podemos dizer que CPF depende de nome, pois o nome de uma pessoa pode ser repetido (lembre-se de que existem pessoas até com nome e sobrenome iguais!). Veja o exemplo: CPF Nome 111 Maria 222 Pedro 333 Luiza 444 Eduardo 555 Maria 39 O nome Maria aparece mais de uma vez, portanto não podemos dizer que sempre que o nome for Maria o CPF será 111. Portanto, nome não determina o CPF, mas sim o contrário. Dependência Composta Um atributo pode depender de mais de um atributo ao mesmo tempo. Por exemplo: A data de conclusão de um curso feito por um funcionário depende do CPF do funcionário e do código do curso. Observe a tabela de registros: CPF CodCurso Data_Conclusão 111 2 10/11/2015 222 3 12/04/2016 333 1 08/08/2016 444 2 01/07/2015 555 1 17/05/2016 111 3 20/09/2016 Podemos observar que a data de conclusão do curso (Data_Conclusão) só pode ser determinada se soubermos de que funcionário se trata (seu CPF) e de que curso estamos falando (CodCurso). Um funcionário pode ter realizado diversos cursos e o mesmo curso pode ter sido concluído por diversos funcionários (note que o funcionário 111 realizou dois cursos). Lista de Exercícios 1. Para cada grupo de atributos abaixo, classifique-os em dependentes e determinantes. Faça uma tabela de registro simulando 3 valores para cada atributo. a) Data de nascimento do funcionário, Matrícula do funcionário. b) Número de uma Turma, Horário da turma e dia da semana em que a turma tem aula. 40 c) Código da disciplina, Nota do aluno, RA do aluno. d) Valor Prestação de um financiamento, Número do financiamento, CPF da pessoa que pediu o financiamento. 2. Para cada sistema abaixo temos vários informações armazenadas de forma desorganizada. Organize essas informações, achando quem são os atributos determinantes e quais são seus respectivos atributos dependentes. OBS: Não é necessário fazer o MER, basta colocar determinante e atributo. Exemplo: Determinante1: atributo1, atributo2, atributo3 Determinante2: atributo1, atributo2 a) Todas as informações abaixo dizem respeito ao sistema de compras da empresa, onde o cliente pode realizar a compra de vários produtos e os produtos podem ser comprados por vários clientes. CPF, valor unitário do produto, quantidade comprada, descrição do produto, nome, data_nasc, data da Compra, telefone, peso bruto, código da Compra, data_aquisição do produto, endereço, código Produto, hora da Compra, forma de pagamento. b) As informações abaixo pertencem a um sistema de uma fabricante de veículos. Após o veículo ser montado, os pilotos realizam testes em vários automóveis que são testados por diferentes pilotos. Cada veículo possui um projetista responsável por sua fabricação. Tipo de automóvel, código do projetista, descrição das anomalias encontradas no automóvel em cada teste, Código do automóvel, nome do piloto, código do piloto, nome do projetista, data de realização do teste, telefone do piloto. 3. Os Esquemas Relacionais abaixo possuem erros em seus atributos determinantes. Corrija os erros e faça o respectivo MER para cada um pensando na melhor modelagem (você pode normalizar o banco com a 1FN). OBS: caso alguma entidade não possua um atributo apropriado para ser o determinante, você deve criá-lo. a) Aluno (nome, endereço, telefone, data_nascimento, RA) 41 Disiplina(descrição, carga_horária ) Aluno_Disciplina(nota, nome, descrição, código_Professor) Professor(telefone, código_Professor, formações, salário) b) Proprietário(CodProprietario, nome, endereço) Corretor(Numero_Registro, nome, telefone) Inquilino(data_Nascimento, nome, telefone, CPF, endereço) Imóvel(cod_Corretor, CodProprietario, CPF_Inquilino, CodImovel, descrição, valor). 42 Normalização - 2ª Forma Normal – 2FN Definição: “Uma entidade encontra-se na 2FN se e somente se estiver na 1FN e não conter dependências parciais” Dependência parcial: um atributo depende funcionalmente apenas de uma parte de uma chave primária composta. Exemplo: tabela Empregado_Projeto CPF_Emp Código_Proj Horas_Trabalho Nome_Emp Nome_Proj Local_Proj 111 1 A 100 Ana Maria SisInf SP 222 2 B 300 Luis Corp RJ 333 1 A 200 Antônio SisInf SP 111 3 C 100 Ana Maria GTI RS Analisando as depências funcionais dos atributos temos: Horas_trabalho depende de CPF_Emp e Código_Proj Nome_Emp depende de CPF_Emp Nome_Proj depende de Código_Proj Local_Proj depende de Código_Proj PROBLEMAS DA 2FN: os atributos Nome_Emp, Nome_Proj e Local_Proj dependem de apenas um dos atributos da chave primária composta, o que caracteriza uma dependência parcial. Isso pode gerar alguns problemas na hora de incluir, alterar e excluir novos dados. Solucionando o Problema: substituímos a entidade única por três entidades 43 Lista de Exercícios 1. Deixe as tabelas abaixo na 2FN, fazendo a decomposição da tabela e também o MER: a) Num_Ped Cod_Prod Valor_Uni qtd Descrição_Prod 1 222B 5.00 2 Lápis Peppa pig 2 123C 20.00 1 Caderno pokémon 3 444D 2.50 3 Borracha minions 4 777E 6.00 2 Bloco de notas Ben10 b) CPFPaciente CRM NomePaciente TelefonePaciente Data Hora NomeMedico EndereçoMedico 111111111-x 1 Maurício 38455545 09/09/2016 15:00 José Toledo Rua 5, n 443,Jd. Europa, Campinas, SP 222222222-x 2 Paula 37655776 10/09/2016 09:00 Maria Souza Av Brasil, n 22, Bairro Luz, Leme, SP 333333333-x 1 Fernanda 38233224 11/09/2016 08:30 José Toledo Rua 5, n 443,Jd. Europa, Campinas, SP 444444444-x 3 João 38544566 12/09/2016 14:00 Reinaldo Abreu Rua Itália, n 3,Jd. Nações, SBO 2. Arrume esta bagunça! Abaixo temos todas as informações de um determinado sistema. Faça o MER para os sistemas, deixando-os normalizados com a 2FN. a) Sistema para uma biblioteca: o sócio pode fazer o empréstimo de vários livros e os livros podem estar em vários empréstimos. 44 Matrícula do sócio, nome, email, telefone, endereço, código do empréstimo, data e horário do empréstimo, data da devolução do empréstimo, código do livro, código do empréstimo, título da obra, autor, código da seção do livro, descrição da seção e localização da seção. b) Agricultor cultiva várias terras e as terras são cultivadas por vários agricultoresNome do agricultor, tipo de solo, código do solo, especializações do agricultor, número da carteira de trabalho, data de início da fertilização, data de término da fertilização, telefone, fertilizante utilizado. 3. Considere a descrição de um sistema de uma clínica médica abaixo e desenhe um MER de acordo com as seguintes informações: O paciente pode realizar vários exames e os exames podem ser realizados por vários pacientes. O paciente pode apresentar um convênio médico. O paciente pode realizar várias consultas, sendo que cada consulta é individual. O médico atende várias consultas, sendo que cada consulta pode ser realizada por um médico. As informações envolvidas são: data e horário do exame, nome do paciente, CPF do paciente , nome do médico, CRM do médico, data e hora da consulta, telefone do paciente, tipo de exame, código do convênio, data de nascimento do paciente, código do exame e código da consulta, tipo do convênio. 45 Normalização - 3ª Forma Normal – 3FN Definição: “Uma entidade encontra-se na 3FN se e somente se estiver na 2FN e nenhum atributo que não seja parte de uma chave primária depender transitivamente da chave primária” Dependência transitiva: um atributo, além de depender da chave primária, depende também de outro atributo que não seja chave. Ou seja: um atributo não chave não pode depender funcionalmente de outro atributo não chave. Exemplo 1: Tabela de Registros para uma entidade Empregado_Departamento CPF_Emp Nome_Emp Sexo_Emp Codigo_Dep Nome_Dep Gerente_Dep 111 Maria F 1A RH Júlia 222 Paulo M 2B Adm Alberto 333 Luis M 3C Compras Verônica 444 Amanda F 2B Adm Alberto Analisando as depências funcionais dos atributos temos: Nome_Emp, depende de CPF_Emp Sexo_Emp depende de CPF_Emp Codigo_Dep depende de CPF_Emp Nome_Dep depende de Codigo_Dep Gerente_Dep depende de Codigo_Dep PROBLEMAS DA 3FN: os atributos Nome_Dep e Gerente_Dep dependem do atributo Codigo_Dep que não é chave primária da tabela. Estes dois atributos possuem dependência transitiva com a chave primária CPF_Emp, o que não é permitido pela 3FN! 46 Para solucionar o problema: iremos decompor a entidade em duas como mostra abaixo: OBS: note que o atributo Codigo_Dep passa a ser uma chave estrangeira em Empregado. Exemplo 2: observe a tabela de registros de uma entidade Pedidos Num_Ped Valor_Uni qtd Total 1 5,00 2 10,00 2 15,00 1 15,00 3 20,00 3 60,00 4 50,00 2 100,00 PROBLEMAS DA 3FN: o atributo Total depende dos atributos não chave Valor_Uni e qtd, violando, portanto, a 3FN. Solução para o problema: esse atributo deve ser excluído da entidade. Sua entidade nunca deve possuir atributos que sejam resultados dependentes de cálculos de outros atributos. 47 Lista de Exercícios 1. Normalize as tabelas a seguir na 3FN, fazendo também os seus respectivos MERs: a) Funcionários ID NOME ID_CARGO DESCRIÇÃO_CARGO 1 Ronaldo Roberto c12 Atendente 2 Maria Marcela c15 Secretária 3 Pedro Paulo c16 Gerente 4 Fernanda Fabiana c15 Secretária b) Aluno MATRÍCULA NOME TELEFONE COD_CURSO DESCRIÇÃO CARGA_HORÁRIA MA111 Arnaldo Braga 38857575 A Francês 200 MA446 Bianca Ferreira 38861212/987766854 B Espanhol 180 MA187 Rosana Milas 34788779 C Mandarim 350 MA448 Fernando Alberto 33432362 A Francês 200 c) Empregado COD NOME COD_CAT CATEGORIA SALÁRIO 1111 Luciana Gimenes C2 Gerente 3500 2222 Carlos Alberto C10 assistente administrativo 2000 3333 Renata Amora C10 assistente administrativo 2000 4444 Felipe Castilho C3 Manutenção 1500 d) Artista ID_ART NOME COD_OBRA DESCRIÇÃO DATA A_23 Guilherme Arante 123 pintura a óleo 10/05/2014 A_24 Fabíola Toty 100 escultura 02/03/2015 A_25 Laís Levi 123 pintura a óleo 05/05/2016 A_26 Amora Casagrande 120 pintura acrílica 07/08/2016 48 e) Atleta COD_ATLETA NOME ENDEREÇO COD_TREINADOR TREINADOR AT_50 Ana Paula Stoy R. Ivo América, n 66, Jd. Brasil, São Paulo, SP T2 Joana AT_51 Bruno Carvalho R. Itália,n 555 Campo Belo, Osasco, SP T1 Leandro AT_52 Luiza Trevis R. Acre, n 89, Jd. Chileno, Mauá, SP T2 Joana AT_53 Leonardo Ferreira Av.Ana Costa, n 34, Jd. 3 Lagoas, Campinas, SP T3 César Luis f) Pedidos NUM_PED COD_PRO DESCRIÇÃO QTD VALOR_UNIT SUBTOTAL 277 1 suco com pastel 3 R$ 6,00 R$ 18,00 278 2 empada de frango 10 R$ 4,00 R$ 40,00 279 3 Coxinha 2 R$ 2,50 R$ 5,00 280 4 salgado 4 R$ 4,00 R$ 16,00 2. Observe os dados envolvidos em um sistema de uma autoescola e faça o MER normalizado na 3FN: CPF_Aluno Nome_Aluno Endereço_Aluno CodCurso Data_Início Data_Termino CodCat Categoria ValorCategoria CodInstrutor NomeInstrutor telefoneIns OBS: considere que o aluno pode fazer vários cursos. 49 ANEXO – Avaliações e Trabalhos ETEC DEPUTADO ARY DE CAMARGO PEDROSO Disciplina: Técnicas e Linguagens para Banco de Dados I Conteúdo: MER Professores: Alessandro/Mayara Data: 01/04/2016 Com base na descrição textual abaixo, elabore o MER: Uma clínica deseja construir um banco de dados para registrar os pacientes consultados por seus médicos. Os pacientes possuem nome, data de nascimento, naturalidade, filiação (nome do pai e da mãe), CPF, RG e endereço. Cada paciente pode realizar uma ou mais consultas em um horário agendado para a mesma. A consulta é identificada pelo código da consulta, data da consulta e valor. Cada consulta pode possuir um ou mais Exames. Os médicos possuem o CRM, nome, endereço, data de nascimento e fones de contato. Esses possuem uma especialidade. Cada especialidade é identificada por um código e descrição. Existem vários tipos de exames: exame cardiológico, exame de sangue e etc.. Esses possuem descrição do tipo de exame e valor, e podem ser realizados em diversas consultas. Vale ressaltar que alguns pacientes possuem Convênio Médico e podem utilizá-lo na consulta. O convênio é identificado por um código, nome do convênio, tipo de convênio (podendo o mesmo ser básico, completo ou ainda premium) e fone de contato. Lembre-se de que cada paciente é atendido individualmente na consulta, não sendo permitido 2 ou mais pacientes serem atendidos juntos. 50 TRABALHO EM GRUPO – TLBD I – 2º Bimestre O que é um Arquiteto de Banco de Dados? A pessoa responsável pela arquitetura e administração dos dados de uma organização. No caso, a arquitetura envolve desde a arquitetura de sistemas de bases de dados até a modelagem dos dados e sua manutenção; e a administração seria mais especificamente a manutenção dos modelos e dicionários de dados. Curiosidade Um Arquiteto de Banco de Dados pode receber um salário de até R$ 169 mil ao ano, o que, em meses, representa remuneração de R$ 14 mil. De acordo com o Guia Salarial 2012, elaborado pela multinacional de recrutamento e seleção Hays em parceria com o Insper Instituto de Ensino e Pesquisa, a capital paulista possui as maiores remunerações. Também foram levantados dados de Campinas. Os valores partem de R$ 84,5 mil ao ano em Campinas, o que representa R$ 7 mil ao mês. Fonte: https://profissoesemti.wordpress.com/2009/11/21/entrevista-arquiteto-de-dados/ Não existe sistema sem dados! Por isso a modelagem de dados é essencial para o bom desempenho de qualquer sistema. Neste trabalho, o grupo deverá escolher um sistema para ser modelado (por exemplo: sistema para clínica veterinária, controle de compra e venda de produtos em uma loja, campeonato de futebol, loja de videogames, etc.). A partir desse sistema, o grupo deverá elaborar sua modelagem com os seguintes itens: • MER • Esquema Relacional • Dicionário de Dados Grupo: no máximo 2 integrantes. Realização da atividade: 10/06 e 17/06 (Cuidado! grupos que não fizeram nada em sala de aula terão seus trabalhos anulados!). Data de entrega:24/06 (organização e capricho serão levados em conta) 51 UMA DICA: O bom arquiteto de dados deve buscar as informações para entender o sistema que está modelando. Pesquise sobre seu sistema e entenda seu funcionamento para realizar um trabalho consistente! Avaliação TLBD – 2º Bimestre ETEC DEPUTADO ARY DE CAMARGO PEDROSO Nome:____________________________________________ Turma:_______ Disciplina: Técnicas e Linguagens para Banco de Dados I Conteúdo: Mer/DD Professores: Alessandro/Mayara Data: 03/06/2016 1. Defina o que é uma chave estrangeira e qual sua utilidade na modelagem de dados. 2. Defina o que é uma chave composta e qual sua utilidade na modelagem de dados. 3. Cite as classes de atributos existentes na modelagem de dados e explique a diferença entre elas. 4. Uma indústria farmacêutica possui mais de 1000 funcionários que participam de vários projetos. Devido à rápida expansão de seus negócios, ela necessita de um banco de dados para armazenamento de suas informações. Os empregados da empresa estão ligados a um departamento da mesma e a cada um deles estão associados a matrícula, nome, RG, CPF, endereço, sexo, telefone, data de admissão, cargo e salário. Os projetos que os funcionários participam em conjunto são identificados com um código, a descrição do mesmo, sua carga horária prevista e sua data de início e término. Os departamentos possuem um nome e uma sigla. Faça o MER,o Esquema Relacional e o Dicionário de Dados para o sistema descrito. 52 Trabalho TLBD – 3º Bimestre Com base em dois conteúdos vistos em sala de aula neste bimestre: agregação na entidade associativa e generalização/especialização, elabore um MER para um sistema de sua escolha. Você deve ser criativo na escolha do seu tema (evite usar exemplos já passados em sala), e deve procurar encaixar em seu MER os conteúdos aprendidos durante as aulas. Mas atenção! Procure não fazer associações erradas, criando relacionamentos desnecessários ou impossíveis (conceitos errados afetarão a nota do trabalho). O trabalho será realizado em dupla, sendo permitido consulta ao material disponibilizado nas aulas, devendo ser elaborado no brModelo e apresentado ao professor na mesma aula. 53 Avaliação TLBD – 3º Bimestre Nome:____________________________________________ Turma:_______ Disciplina: Técnicas e Linguagens para Banco de Dados I Conteúdo: MER Faça o MER para o sistema descrito: O Sports Life Club é um clube esportivo que está pretendendo realizar uma campanha para ampliar o seu quadro de sócios. A Secretaria e a Tesouraria utilizam métodos convencionais de controle de venda de seus títulos, e deseja um sistema informatizado que auxilie esse processo. Todo título possui um preço, sendo que os especiais têm direito a vaga exclusiva de estacionamento e um orientador esportivo dedicado ao sócio. Os sócios que adquirirem um título padrão possuirão um número máximo de atividades permitidas, válidas enquanto a data de expiração do mesmo não for atingida. Os vendedores responsáveis por suas vendas são cadastrados com todas as suas informações pessoais, e os sócios podem cadastrar seus dependentes para usufruírem das atividades do clube enquanto seus títulos estiverem ativos, bastando para isso fornecerem nome e data de nascimento dos mesmos. Quanto às atividades que os sócios podem realizar, é importante armazenar o tipo e o código das mesmas. Para participar de uma atividade, é necessário que o sócio realize a matrícula em uma turma da atividade desejada, em um determinado dia da semana e horário. Por exemplo, caso o sócio queira participar das atividades de natação e futebol de salão, ele deve procurar turmas que estejam em dias e horários disponíveis. Para assegurar o profissionalismo de seu clube, o gerente fará a contratação de instrutores que acompanharão os sócios, podendo estes acompanharem várias turmas durante o dia. Eles serão contratados com carteira registrada, devendo ser armazenados, além das informações pessoais, 54 o PIS e o número de sua carteira de trabalho. Para o sócio é muito importante armazenar nome, CPF, a data de nascimento, endereço e telefone. Avaliação TLBD – 4º Bimestre Disciplina: Técnicas e Linguagens para Banco de Dados I Conteúdo: MER e Normalização 1. Explique a importância da normalização para a modelagem de um Banco de Dados. 2. Defina a 1ª Forma Normal. 3. Defina a 2ª Forma Normal. 4. Defina a 3ª Forma Normal. 5. Defina os tipos de dependências funcionais vistos nas Formas Normais. 6. Uma oficina mecânica deseja informatizar seu sistema. Os clientes levam seus automóveis na oficina, e os mesmos recebem uma ordem de serviço onde um mecânico é responsável pelo conserto. Faça o MER para o sistema, sabendo que as seguintes informações estão envolvidas: Código, CPF, nome, endereço e telefone do cliente. Número da Ordem de Serviço, placa do carro, marca e modelo do carro, data de emissão da Ordem de serviço e data de finalização do trabalho, ano e cor do automóvel, CPF do mecânico, nome e telefone do mesmo, bem como o preço cobrado pelo serviço. 7. Dado o MER de uma clínica veterinária, aplique a normalização e refaça o modelo abaixo. Ao final, indique para cada nova entidade criada qual foi a forma normal que você utilizou : 55 56 TRABALHO TLBD – 4º BIMESTRE Uma empresa deseja informatizar o controle dos projetos realizados por seus funcionários. A diretoria (que não prezava nem um pouco pela organização de seus documentos) organizava todas as informações em uma planilha como a seguinte: CodProj Tipo Descrição CodEmp Nome Formação Categoria Salário DataInicio Horas Projeto Horas Mensal LSC001 sistema de estoque Organização de materiais 2146 José Augusto Louveiro Administração C1 R$ 3.000,00 12/06/2014 10 40 LSC001 sistema de estoque Organização de materiais 3145 Mariana Ferreira Volpe Logística Administração A2 R$ 1.500,00 05/02/2013 10 40 LSC001 sistema de estoque Organização de materiais 6126 Isabela Alencar Oliveira Logística B1 R$ 2.000,00 10/10/2016 20 80 LSC001 sistema de estoque Organização de materiais 1214 Marcela Pacheco Logística A2 R$ 1.500,00 25/01/2013 20 80 LSC001 sistema de estoque Organização de materiais 8191 Fernando Ipiranga Rochedo Segurança do Trabalho A1 R$ 1.300,00 15/05/2014 10 40 PAG02 RH Treinamento de pessoal 2146 José Augusto Louveiro Administração C1 R$ 3.000,00 01/03/2016 15 60 PAG02 RH Treinamento de 4112 Eduardo Campari Neto RH A2 R$ 1.500,00 08/09/2015 20 80 PAG02 RH Treinamento de pessoal 6126 Isabela Alencar Oliveira RH Administração B1 R$ 2.000,00 10/06/2014 05 20 SISInfo Informática desenvolvimento de software 9090 Daiane Souza Cesario TI C1 R$ 3.000,00 01/02/2015 30 120 SISInfo Informática desenvolvimento de software 2075 Arnaldo Coelho Limoneto TI B2 R$ 2.500,00 18/02/2016 25 100 SISInfo Informática desenvolvimento de software 6661 Gustavo Xisto Filho TI Gestão C1 R$ 3.000,00 10/06/2015 10 40 SISInfo Informática desenvolvimento de software 1233 Ana Luiza Belmonte TI A2 R$ 1.500,00 15/08/2014 25 100 RP100 Marketing Criação depropaganda 655 Isabela Cordeiro Vaz Publicidade C1 R$ 3.000,00 02/02/2013 20 80 RP100 Marketing Criação depropaganda 4455 Reginaldo Junqueira Lima Publicidade B1 R$ 2.000,00 15/07/2015 15 60 OBS: o campo DataInicio diz respeito à data em que o empregado iniciou o projeto, o campo HorasProj às horas que o empregado cumpre em seu projeto e o campo HorasMensal representa a quantidade de horas total que o empregado trabalha por mês (HorasProj*4) Essa é a sua oportunidade de mostrar para a empresa que você é um bom projetista de Banco de Dados! Organize essa bagunça e crie o MER mais adequado para a situação no brModelo. Crie também as respectivas Tabelas de Registros parao Banco. O trabalho pode ser feito em dupla, com consulta ao material, mas sem o auxílio do professor. 57 ATIVIDADE EXTRA 4º BIMESTRE Com base em todas as formas normais estudadas, faça o MER com o Dicionário de Dados (lembre-se que o DD descreve atributo, descrição, domínio (texto, data, número ou moeda), tamanho e classe do atributo para cada entidade) para o Banco de Dados descrito abaixo: O DETRAN deseja constituir um banco de dados para controlar as infrações ocorridas no estado. Os veículos são identificados pela placa e também descritos por chassi, cor predominante, modelo, categoria e ano de fabricação. Cada veículo possui um único proprietário, que é identificado por seu CPF. Deve-se saber o nome, endereço, bairro, cidade, estado, telefone (vários), sexo, data de nascimento e idade. Todo veículo possui um único modelo; por exemplo, GOL MI, GOL 1.8, UNO CS, etc. Cada modelo é codificado por um número de 6 dígitos. Similarmente ao modelo, uma categoria deve ser atribuída a cada veículo; por exemplo, AUTOMÓVEL, MOTOCICLETA, CAMINHÃO, etc. Cada categoria é codificada por um número de 2 dígitos. Existem diversos tipos de infração, AVANÇO DE SINAL VERMELHO, PARADA SOBRE A FAIXA DE PEDESTRES, etc, cada uma identificada pelo código associado. A cada tipo de infração é associado um valor que deverá ser cobrado na ocorrência de infração. Uma infração é identificada pelo veículo infrator, data/hora e tipo de infração. Também é importante conhecer o local, velocidade aferida e agente de trânsito. Cada local é descrito pelo código, posição geográfica e velocidade permitida; um local é geralmente referenciado por seu código. Um agente de trânsito é conhecido através de sua matrícula, sendo também descrito pelo nome, data de contratação e tempo de serviço.
Compartilhar