Prévia do material em texto
ESCOLA POLITÉCNICA ENGENHARIA DA COMPUTACAO PROJETO DE BANCO DE DADOS EXERCÍCIOS Aluno: Vinicius Biasi Nascimento Disciplina: CMP - 1117 - Projeto De Banco De Dados - (C01) - 2021/2. ➢ Considere os 03 enunciados da tarefa 01. Para cada um dos enunciados, utilize os seguintes passos: 1. Crie o respectivo banco de dados MySQL (ou MariaDB) via SQL 2. Crie as respectivas tabelas do banco de dados com suas referências de chaves estrangeiras e relacionamentos • Os respectivos comandos, para cada enunciado, devem ser acompanhados com as telas dos comandos executados no seu ambiente de gerenciamento de banco de dados (ou phpMyAdmin ou DBeaver ou HeidSQL ou outro programa que permita a execução de SQL para MySQL ou MariaDB). • Você deve copiar as telas/comandos de cada enunciado e inserir em um documento (DOC, DOCX ou PDF), o qual deve ser enviado por aqui, nesta tarefa até o prazo estipulado (data e hora indicados). EXERCÍCIOS 1. Considerando que você está vivendo na época que as vídeo-locadoras eram o auge, onde as pessoas efetuavam locação de vídeos como hobby. Assim, conside essa época e você vivendo nela. Uma video-locadora trabalha com o aluguel de fitas, cd's e cartuchos de jogos. Todos os 3 tem um código , o titulo que o descreve e a categoria. As fitas possuem a sinopse e os artistas principais; os Cd's , o nome do cantor e uma descrição das músicas contidas. Os cartuchos possuem apenas o nome do fabricante. A locadora empresta apenas para os clientes cadastrados. O seu nome, endereço, data de nascimento e telefone ficam anotados em uma ficha junto com um código numérico seqüencial atribuído ao cliente no momento do cadastro. Cada cliente pode alugar um ou mais objetos de locação (fita,cd ou cartucho), sendo que cada um destes só pode ser alugado por apenas 1 cliente em um determinado momento (data). É interesse da locadora, entretanto, manter um histórico dos aluguéis já realizados, a fim de gerenciar o perfil dos seus clientes. Você, que é um Analista de Sistemas, foi contratado para construir esse sistema. ESCOLA POLITÉCNICA ENGENHARIA DA COMPUTACAO PROJETO DE BANCO DE DADOS EXERCÍCIOS CREATE DATABASE LOCADORA; USE EXERCICIO; CREATE TABLE CLIENTE ( COD_CLIENTE INT NOT NULL AUTO_INCREMENT, C_NOME VARCHAR(250), C_ENDERECO VARCHAR(250), C_DATA_NASCIMENTO INT(8), C_TELEFONE INT(12), PRIMARY KEY(COD_CLIENTE) ) ENGINE=INNODB; CREATE TABLE FITAS( F_CODIGO INT NOT NULL AUTO_INCREMENT, F_TITULO VARCHAR(250), F_CATEGORIA VARCHAR(250), F_SINOPSE VARCHAR(250), ESCOLA POLITÉCNICA ENGENHARIA DA COMPUTACAO PROJETO DE BANCO DE DADOS EXERCÍCIOS F_ARTISTAS_PRINCIPAIS VARCHAR(250), PRIMARY KEY(F_CODIGO) )ENGINE=INNODB; CREATE TABLE CDS( C_CODIGO INT NOT NULL AUTO_INCREMENT, C_TITULO VARCHAR(250), C_CATEGORIA VARCHAR(250), C_DESCRICAO VARCHAR(250), C_NOME_CANTOR VARCHAR(250), PRIMARY KEY(C_CODIGO) )ENGINE=INNODB; ESCOLA POLITÉCNICA ENGENHARIA DA COMPUTACAO PROJETO DE BANCO DE DADOS EXERCÍCIOS CREATE TABLE JOGOS( J_CODIGO INT NOT NULL AUTO_INCREMENT, J_TITULO VARCHAR(250), J_CATEGORIA VARCHAR(250), J_NOME_FABRICANTE VARCHAR(250), PRIMARY KEY(J_CODIGO) )ENGINE=INNODB; CREATE TABLE LOCACAO( ESCOLA POLITÉCNICA ENGENHARIA DA COMPUTACAO PROJETO DE BANCO DE DADOS EXERCÍCIOS CLIENTE_COD_CLIENTE INTEGER NOT NULL, FITAS_F_CODIGO INTEGER NOT NULL, CDS_C_CODIGO INTEGER NOT NULL, JOGOS_J_CODIGO INTEGER NOT NULL, DATA_LOCACAO DATE, DATA_DEVOLUCAO DATE, FOREIGN KEY(CLIENTE_COD_CLIENTE) REFERENCES CLIENTE (COD_CLIENTE), FOREIGN KEY (FITAS_F_CODIGO) REFERENCES FITAS (F_CODIGO), FOREIGN KEY (CDS_C_CODIGO) REFERENCES CDS (C_CODIGO), FOREIGN KEY (JOGOS_J_CODIGO) REFERENCES JOGOS (J_CODIGO) )ENGINE=INNODB; ESCOLA POLITÉCNICA ENGENHARIA DA COMPUTACAO PROJETO DE BANCO DE DADOS EXERCÍCIOS 2. Para um setor de Recursos Humanos de uma empresa, os seguintes requisitos são desejados em um banco de dados: Funcionários são cadastrados com matrícula, nome, endereço, telefone e data de admissão, podendo ser temporários (com data início e fim de contrato) ou efetivos; Funcionários registram dependentes para cálculo de salário-família; O sistema deve controlar desligamentos de funcionários com a sua respectiva data; Funcionários trabalham em setores, sendo que cada funcionário trabalha em um setor exercendo uma determinada função; Deve-se ter um controle dos funcionários que estão gerenciando os setores no momento; Funcionários recebem seus salários mensalmente, sendo que os contracheques apresentam descontos e proventos CREATE DATABASE RECURSOSHUMANOS; USE RH; ESCOLA POLITÉCNICA ENGENHARIA DA COMPUTACAO PROJETO DE BANCO DE DADOS EXERCÍCIOS CREATE TABLE FUNCIONARIOS ( MATRICULA_FUNCIONARIO INT NOT NULL AUTO_INCREMENT, F_NOME VARCHAR(250), F_ENDERECO VARCHAR(250), F_DATA_NASCIMENTO INT(8), F_TELEFONE INT(12), F_DATA_ADMISSAO INT(8), F_TEMPORARIO INT(16), F_EFETIVO VARCHAR(250), PRIMARY KEY(MATRICULA_FUNCIONARIO) ) ENGINE=INNODB; ESCOLA POLITÉCNICA ENGENHARIA DA COMPUTACAO PROJETO DE BANCO DE DADOS EXERCÍCIOS CREATE TABLE CALCULO_SALARIO_FAMILIA( FUNCIONARIOS_MATRICULA_FUNCIONARIO INTEGER NOT NULL, C_DEPENDENTES VARCHAR(250), C_CATEGORIA VARCHAR(250), FOREIGN KEY (FUNCIONARIOS_MATRICULA_FUNCIONARIO) REFERENCES FUNCIONARIOS (MATRICULA_FUNCIONARIO) )ENGINE=INNODB; CREATE TABLE DEPARTAMENTOS( FUNCIONARIOS_MATRICULA_FUNCIONARIO INTEGER NOT NULL, D_FUNCAO VARCHAR(250), FOREIGN KEY (FUNCIONARIOS_MATRICULA_FUNCIONARIO) REFERENCES FUNCIONARIOS (MATRICULA_FUNCIONARIO) )ENGINE=INNODB; CREATE TABLE SALARIO_MES( FUNCIONARIOS_MATRICULA_FUNCIONARIO INTEGER NOT NULL, S_CONTRACHEQUES_MES VARCHAR(250), S_DESCONTOS VARCHAR(250), ESCOLA POLITÉCNICA ENGENHARIA DA COMPUTACAO PROJETO DE BANCO DE DADOS EXERCÍCIOS S_PROVENTOS VARCHAR(250), FOREIGN KEY (FUNCIONARIOS_MATRICULA_FUNCIONARIO) REFERENCES FUNCIONARIOS (MATRICULA_FUNCIONARIO) )ENGINE=INNODB; CREATE TABLE DESLIGAMENTO_FUNCIONARIOS( FUNCIONARIOS_MATRICULA_FUNCIONARIO INTEGER NOT NULL, DATA_DESLIGAMENTO DATE, FOREIGN KEY (FUNCIONARIOS_MATRICULA_FUNCIONARIO) REFERENCES FUNCIONARIOS (MATRICULA_FUNCIONARIO) )ENGINE=INNODB; CREATE TABLE CONTROLE_FUNCIONARIOS( FUNCIONARIOS_MATRICULA_FUNCIONARIO INTEGER NOT NULL, SETORES VARCHAR(250), FOREIGN KEY (FUNCIONARIOS_MATRICULA_FUNCIONARIO) REFERENCES FUNCIONARIOS (MATRICULA_FUNCIONARIO) )ENGINE=INNODB; ESCOLA POLITÉCNICA ENGENHARIA DA COMPUTACAO PROJETO DE BANCO DE DADOS EXERCÍCIOS 3. A fim de se criar uma aplicação que auxilie e otimize a realização das tarefas em uma clínica médica, a seguinte análise foi realizada em relação às atividades da clínica. A relação de médicos que atende na clínica é organizada por especialidade. Quando um cliente liga para marcar uma consulta, a secretária verifica se o mesmo já é paciente cadastrado ou não, caso ainda não seja, são solicitados seu nome, endereço, telefone e convênio (caso o mesmo possua um) para cadastramento. A clínica mantém uma relação de empresas de plano de saúde conveniadas. A clínica permite consulta particular, sem convênio. Para marcar uma consulta, o paciente pode informar o médico com o qual deseja se consultar ou apenas uma especialidade. É checada então a disponibilidade de horário de médicos para a marcação. Consultas são marcadas em uma data e horário, com um determinado médico. A cada consulta, exames são solicitados e as prescrições são anotadas. Mantém-se na clínica um histórico de cada paciente. Ao término da consulta, a secretária fornece ao paciente uma lista dos exames solicitados. ESCOLA POLITÉCNICA ENGENHARIA DA COMPUTACAO PROJETODE BANCO DE DADOS EXERCÍCIOS Exames são organizados por categoria. O cadastro de médicos apresenta nome, endereço e telefone dos mesmos, além do seu CRM. Médicos recebem semanalmente uma listagem com a relação das consultas marcadas para a semana além dos dados da última consulta de cada paciente. CREATE DATABASE CLINICA_MEDICA; USE ATIVIDADES; CREATE TABLE CADASTRO_PACIENTE ( CODIGO_PACIENTE INT NOT NULL AUTO_INCREMENT, P_NOME VARCHAR(250), P_ALERGIAS VARCHAR(250), P_OBSERVACOES VARCHAR(250), P_ENDERECO VARCHAR(250), P_DATA_NASCIMENTO INT(8), P_TELEFONE INT(12), P_CONVENIO VARCHAR(250), P_CONSULTA_PARTICULAR VARCHAR(250), PRIMARY KEY(CODIGO_PACIENTE) ) ENGINE=INNODB; ESCOLA POLITÉCNICA ENGENHARIA DA COMPUTACAO PROJETO DE BANCO DE DADOS EXERCÍCIOS CREATE TABLE CADASTRO_MEDICO ( CRM_MEDICO INT NOT NULL AUTO_INCREMENT, M_NOME VARCHAR(250), M_DATA_INSCRICAO VARCHAR(250), M_SITUACAO VARCHAR(250), M_ENDERECO VARCHAR(250), M_DATA_NASCIMENTO INT(8), M_TELEFONE INT(12), M_ESPECIALIDADE VARCHAR(250), M_AREA_ATUACAO VARCHAR(250), M_RQE INT(4), PRIMARY KEY(CRM_MEDICO) ) ENGINE=INNODB; ESCOLA POLITÉCNICA ENGENHARIA DA COMPUTACAO PROJETO DE BANCO DE DADOS EXERCÍCIOS CREATE TABLE CONSULTA( CADASTRO_PACIENTE_CODIGO_PACIENTE INTEGER NOT NULL, CADASTRO_MEDICO_CRM_MEDICO INTEGER NOT NULL, C_DATA DATE, C_HORARIO INT(4), C_EXAMES VARCHAR(250), C_TIPO_CONSULTA VARCHAR(250), C_PRESCRICOES VARCHAR(250), FOREIGN KEY (CADASTRO_PACIENTE_CODIGO_PACIENTE) REFERENCES CADASTRO_PACIENTE (CODIGO_PACIENTE), FOREIGN KEY (CADASTRO_MEDICO_CRM_MEDICO) REFERENCES CADASTRO_MEDICO (CRM_MEDICO) )ENGINE=INNODB; ESCOLA POLITÉCNICA ENGENHARIA DA COMPUTACAO PROJETO DE BANCO DE DADOS EXERCÍCIOS CREATE TABLE HISTORICO_PACIENTES( CADASTRO_PACIENTE_CODIGO_PACIENTE INTEGER NOT NULL, CADASTRO_MEDICO_CRM_MEDICO INTEGER NOT NULL, FOREIGN KEY (CADASTRO_PACIENTE_CODIGO_PACIENTE) REFERENCES CADASTRO_PACIENTE (CODIGO_PACIENTE), FOREIGN KEY (CADASTRO_MEDICO_CRM_MEDICO) REFERENCES CADASTRO_MEDICO (CRM_MEDICO) )ENGINE=INNODB; CREATE TABLE DISPONIBILIDADE_HORARIOS_MEDICOS( CADASTRO_MEDICO_CRM_MEDICO INTEGER NOT NULL, D_HORARIO INT(4), FOREIGN KEY (CADASTRO_MEDICO_CRM_MEDICO) REFERENCES CADASTRO_MEDICO (CRM_MEDICO) )ENGINE=INNODB; ESCOLA POLITÉCNICA ENGENHARIA DA COMPUTACAO PROJETO DE BANCO DE DADOS EXERCÍCIOS