Baixe o app para aproveitar ainda mais
Prévia do material em texto
Maria Sandra Lopes Aula 8 Página 1 EXERCÍCIOS 1. Na tabela abaixo, numere a terceira coluna para que os termos que estão na segunda sejam explicados na quarta coluna: Número Termo Seu Número Definição 1 Banco de Dados Sinônimo de atributo, representa um tipo de informação 2 Tabela Campo que identifica univocamente cada registro. 3 Campo Utilizado para unir duas tabelas que tenham um campo em comum. Uma fornecerá sua chave primária e a outra, uma chave estrangeira. 4 Chave Primária Mecanismo que permite visualizar dados que estejam em tabelas diferentes. 5 Chave Estrangeira “Sistema de armazenamento de dados baseado em computador, cujo objetivo global é registrar e manter informação considerada significativa à organização” [Date]. 6 Registro Depósito de dados em forma matricial em que as linhas representam registros e as colunas, campos. 7 Relacionamento Linguagem de manipulação de dados. 8 Visão Campo idêntico a uma chave primária em outra tabela. 9 SQL O mesmo que tupla. Imaginado que uma tabela fosse um conjunto, então seriam os elementos desse conjunto. 2. Estudo de Caso a. O problema O famoso CVOG (Centro Educacional de Volta Grande), melhor escola da região, completa trezentos anos de existência. Dizem que até Tiradentes rabiscou suas primeiras letras por lá. Maria Sandra Lopes Aula 8 Página 2 Em breve, o atual diretor, moura XI, passará o cargo para seu filho, o jovem promissor Moura XII. Cargo este já ocupado pelo lendário Moura I, o fundador. Para comemorar tal importante data e também a passagem do cargo, finalmente o CEVOG resolveu render-se ã modernidade: a partir deste ano, o notório centro também oferecerá cursos de informática a comunidade. O jovem Moura XII está bastante preocupado: como disponibilizar cursos de computação se todo o controle interno ainda é manual? O Controle Acadêmico a ser implantado tentará copiar o utilizado a tanto tempo pelos cursos regulares: existem dois cadastros, sendo o de Alunos (nome, endereço, telefone) e o de Cursos (descrição, carga horária, pré-requisitos). Há dez cursos e, a princípio, uns trezentos alunos. Nada foi definido quanto à criação das turmas, nem há a menor idéia de como implementar o controle de instrutores. Seria interessante guardar um histórico de cada aluno (notas, freqüências) para poder controlar pré-requisitos em futuras matrículas. Os problemas são muitos, mas nada que possa arrefecer os ânimos dos Moura. Se eles já foram até citados como centro de excelência de ensino nos idos anos quarentas ( do século XIX ), não será um curso de informática que os fará recuar ante o inexorável avanço do tempo. b. A situação ideal Moura, o Doze , deseja implantar o seguinte: Criar um cadastro de Instrutores (nome, endereço, telefone, data de admissão) para que seja implantado um eficiente sistema de alocaçÃo; Integrar o cadastro de Alunos e Cursos para saber, em questão de minutos, se um determinado indivíduo está fazendo o já fez um determinado curso; Criar outro cadastro de Notas (turma, matrícula, nota) para que se tenha uma idéia do nível de cada aluno. Numa próxima ocasião será implantado um controle rigoroso sobre cobrança , prevendo, inclusive, uma modalidade de pagamento a prazo mais sofisticada. A idéia é oferecer os cursos para o mundo via Internet, assim os dados armazenados serão da ordem de peta bytes, o que justifica a utilização do Sistema Gerenciador de Bases de Dados Objeto-Relacional Oracle 8. Maria Sandra Lopes Aula 8 Página 3 c. A solução A solução será dividida em três etapas - Projeto Conceitual - Projeto Lógico - Projeto Físico Maria Sandra Lopes Aula 8 Página 4 2.1 Projeto Conceitual Entidade Atributos Aluno matrícula, nome, telefone, endereço, uf Instrutor nome, telefone, data admissão Curso nome, carga horária, preço, pré-requisito Relacionamentos: Vê-se ainda que o relacionamento entre um aluno e um curso é a Turma, o mesmo aliás , entre instrutor e curso. Um atributo do relacionamento Aluno-Turma poderia ser sua nota. As cardinalidade seriam as seguintes: Alunos X Turmas : N:N Cursos X Turmas: 1:N Instrutores X Turmas: 1:N O resultado final poderia ser este: N N 1 CURSO Maria Sandra Lopes Aula 8 Página 5 2.2 Projeto Lógico Tabela Campos ALUNO matrícula, nome, telefone, endereço, uf INSTRUTOR código_instrutor,nome, telefone, data_admissão CURSO código_curso, nome, carga horária, preço, pré_requisito TURMA código_turma, sala, código_instrutor, código_curso HISTÓRICO código_turma, matricula, nota 2.3 Projeto Físico 2. Criação da tabela INSTRUTOR 3. Criação da tabela ALUNO 4. Criação da tabela TURMA 5. Criação da tabela HISTÓRICO ALUNO create table aluno ( matricula number(3), nome varchar2(60) not null, telefone char (11), endereço varchar2(50) not null, uf char (2), tipo_aluno (10), constraint alunomatricula_pk primary Key ( matricula), constraint alunouf_ck check (tipo_aluno = 'Estácio' or tipo_aluno = 'Gama/Veiga'), constraint alunouf_ck check ( matricula in('RJ', 'SP', 'MG','ES')) ); INSTRUTOR ( codigo_instrutor number (3), nome varchar2(60) not null, Maria Sandra Lopes Aula 8 Página 6 telefone char(2), data_admissão date default sysdate, constraint instrutor_codigo_pk primary Key ( codigo_instrutor) ); CURSO codigo_curso number (3), nome varchar2(60) not null, carga horaria number (3), preco number(7,2), pre_requisito number(3), constraint curso_codigo_pk primary Key ( codigo_instrutor), constraint curso_preco_ck check ( preco >= 0), constraint curso_prereq_fk foreing key (pre_requisito) references curso(codigo_curso) ); TURMA ( codigo_turma number (3), sala char(3), codigo_instrutor number(3), codigo_curso number(3), constraint historico_pk primary Key ( codigo_turma,matricula), constraint turma_instrutor_fk foreing key (codigo_instrutor) references instrutor(codigo_instrutor), constraint turma_curso_fk foreing key (codigo_curso) references curso(codigo_curso), ); HISTORICO ( codigo_turma number(3), matricula number(3), nota number (5,2), constraint historico_turma_fk foreing key (codigo_turma) references turma(codigo_turma), constraint historico_aluno_fk foreing key (matricula) references aluno(matricula));
Compartilhar