Baixe o app para aproveitar ainda mais
Prévia do material em texto
CLARETIANO – REDE DE EDUCAÇÃO NATHÁLIA CAROLINA MARTINS SOUSA 8135239 BANCO DE DADOS GOIÂNIA 2022 Título: Banco de Dados para uma Loja a) Descrição do Projeto: Atenção! É muito importante que você saiba exatamente como são cada um dos elementos e para qual tipo de dado podem ser utilizados! Antes de iniciar, reveja a simbologia no item 8 do CRC (p. 65) e, na página 66, um exemplo de como deve ser elaborado o DER final. Para poder mapear, você precisa saber identificar os símbolos do DER corretamente! Considere a seguinte declaração de escopo do sistema: O banco de dados para uma loja na web que vende presentes em geral e deve permitir cadastrar os produtos que serão vendidos. Cada produto tem informações como Nome, Preço de Venda, Quantidade em Estoque e Preço de Compra. Um fabricante pode vender vários produtos, mas um produto é vendido por um único fabricante. O sistema deve permitir registrar cada venda, com Data da Venda e o Cliente para quem foram vendidos os produtos do pedido, registrando também os dados do Cliente, tais como, Nome, Endereço, telefone. Um cliente pode ter muitos telefones e e-mails. Lembre-se de que um Cliente pode comprar vários produtos em cada Pedido de Venda e que em um mesmo pedido podem ser comprados vários produtos. Atividade 1 – Fazer o mapeamento. Para esta atividade, você pode consultar a Unidade 3 (Item 12) do CRC e, caso considere insuficiente, pode consultar também o Capítulo 9 do livro: ELMASRI, R.; NAVATHE, S. B. Sistemas de bancos de dados. 4. ed. São Paulo: Addison Wesley, 2005, que abrange o mesmo tema. Os Capítulos 2 e 3 desta obra abrangem o mesmo conteúdo da Unidade 3 do CRC. Com base no diagrama da Figura 2 elabore o Mapeamento para o Modelo Relacional, gerando assim o Esquema de Relações do Banco de Dados para o diagrama da Figura 2, conforme definido por Rangel et al (2014, pp. 98-105): • Você deve ter em mente as fases de construção de um banco de dados para facilitar as conversões do DER (diagrama entidade-relacionamento) para o modelo relacional. Vale relembrar que o modelo entidade-relacionamento é utilizado durante o projeto conceitual e o modelo de dados relacional, durante o projeto lógico da base. Com isso, é natural pensar em um algoritmo que traduza os conceitos de um dos modelos (DER) nos conceitos do outro (relacional). Mapeamento ATIVIDADE 1 1. CLIENTE (Codigo_Cliente, Nome, Rua, Numero, Complemento) 2. VENDA (Numero_Pedido, Codigo_Cliente-CE, Data) 3. PRODUTO (Codigo_produto, Codigo_Fabricante-CE, Preço, Estoque, Nome) 4. FABRICANTE (Codigo_Fabriante, Nome) 5. CONTÉM (Codigo_Produto_ Prod-CE, Numero_Pedido_Vend_CE). 6. TELEFONE_CLIENTE (Codigo_Cliente-CE, Telefone). 7. EMAIL_CLIENTE (Codigo_Cliente-CE, eMail) Atividade 2 – Script em Linguagem SQL Para realizar esta atividade, você pode consultar a Unidade 4 do CRC. Se considerar o conteúdo insuficiente, pode consultar também o Capítulo 4 e o item 5.1 do Capítulo 5 do livro: ELMASRI, R.; NAVATHE, S. B. Sistemas de bancos de dados. 4. ed. São Paulo: Addison Wesley, 2005. Outra possibilidade é o Capítulo 7 do livro: PUGA, S.; FRANÇA, E.; GOYA, M. Banco de Dados: Implementação em SQL, PL/SQL e Oracle 11g. São Paulo: Pearson Education do Brasil, 2013, ambos disponíveis na Biblioteca Virtual Pearson. E ainda há o Capítulo 3 do livro: RAMAKRISHNAN, R.; GEHRKE, J. Sistemas de gerenciamento de banco de dados. 3. ed. São Paulo: Mc Graw Hill, 2008, disponível na Biblioteca Virtual “Minha Biblioteca”. Esquema de Relações do Banco de Dados de uma Clínica Médica (use-o para a atividade 2) Especialidade (CodEspecialidade, NomeEspecialidade) Medico (CRM, NomeMedico, NomeDepto, ChefeDepartamento, CodEspecialidade-CE) Paciente (Registro, Nome DataNascimento, Sexo, Rua, Numero) TelefonePaciente (Registro-CE, Telefone) Andar (NumAndar, DescricaoAndar) Enfermaria (NumAndar-CE, CodEnfermaria, NomeEnfermaria, SituacaoEnfermaria) Tipo (CodTipo, NomeTipo) Leito (NumLeito, SituacaoLeito, CodTipo-CE, CodEspec-CE, NumAndar-CE, CodEnfermaria-CE, TipoEspecialidade) Internado (Registro-CE, NumLeito-CE, CRM-CE, Naturalidade, DataInternacao, DataAlta, QuantidadeDiasInternado) CODIGO DO SCRIPT SQL CREATE TABLE especialidade ( codespecialidade NUMERIC NOT NULL, nomeespecialidade VARCHAR(1000) NOT NULL, CONSTRAINT codespecialidade PRIMARY KEY (codespecialidade) ); CREATE TABLE medico ( crm NUMERIC NOT NULL, nomemedico VARCHAR(1000) NOT NULL, codespecialidade NUMERIC NOT NULL, nomedepto VARCHAR(1000) NOT NULL, chefedepartamento VARCHAR(1000) NOT NULL, CONSTRAINT crm PRIMARY KEY (crm), FOREIGN KEY (codespecialidade) REFERENCES especialidade (codesp ecialidade) ); CREATE TABLE paciente ( registro NUMERIC NOT NULL, nome VARCHAR(1000) NOT NULL, datanascimento TIMESTAMP NOT NULL, sexo VARCHAR(1000) NOT NULL, rua VARCHAR(1000) NOT NULL, numero VARCHAR(1000) NOT NULL, CONSTRAINT registro PRIMARY KEY (registro) ); CREATE TABLE telefonepaciente ( registroce INT NOT NULL, telefone INT NOT NULL, PRIMARY KEY (registroce, telefone), FOREIGN KEY (registroce) REFERENCES paciente (registro) ); CREATE TABLE andar ( numandar NUMERIC NOT NULL, descricaoandar VARCHAR(1000) NOT NULL, CONSTRAINT numandar PRIMARY KEY (numandar) ); CREATE TABLE enfermaria ( numandarce TINYINT NOT NULL, codenfermaria INT NOT NULL, nomeenfermaria VARCHAR (40), situacaoenfermaria TEXT, PRIMARY KEY (numandarce, codenfermaria), FOREIGN KEY (numandarce) REFERENCES andar (numandar) ); CREATE TABLE leito ( numleito INTEGER, situacaoleito VARCHAR (255) NOT NULL, codtipo INTEGER, codespecialidade INTEGER, numandar INTEGER, codenfermaria INTEGER, tipoespecialidade VARCHAR (255) NOT NULL, PRIMARY KEY (numleito), FOREIGN KEY (codtipo) REFERENCES tipo (codtipo), FOREIGN KEY (codespecialidade) REFERENCES especialidade (codesp ecialidade), FOREIGN KEY (numandar) REFERENCES andar (numandar), FOREIGN KEY (codenfermaria) REFERENCES enfermaria (codenfermari a) ); CREATE TABLE internado ( registro INTEGER, numleito INTEGER, crm INTEGER, naturalidade VARCHAR (255) NOT NULL, datainternacao DATE, dataalta DATE, quantidadediasinternado INTEGER, FOREIGN KEY (registro) REFERENCES paciente (registro), FOREIGN KEY (numleito) REFERENCES leito (numleito), FOREIGN KEY (crm) REFERENCES medico (crm), PRIMARY KEY (registro, numleito, crm) );
Compartilhar