Sie sind auf Seite 1von 2

SOLUO ================================================================================ Mais de uma soluo pode ser considerada adequada para este exemplo, de acordo com o s comentrios

existentes em cada tabela a seguir. Tabela TIPO +----------------------------------+ | CODIGO (PK) | TIPO | |-------------+--------------------| | 1 | Banco de dados | | 2 | Programao | | 3 | Modelagem de dados | +----------------------------------+ A tabela TIPO foi criada separadamente pois um mesmo tipo de curso poder ser util izado em dezenas de cursos. Para poupar recursos de armazenamento na tabela CURS O pois armazenar um nmero (campo CODIGO) ocupa menos espao do que armazenar textos (campo TIPO) - e tambm para disponibilizar os tipos de cursos sem depender do ca dastro de outros cursos, esta informao deve ser gerenciada por esta tabela. Tabela INSTRUTOR +----------------------------------------+ | CODIGO (PK) | INSTRUTOR | TELEFONE | |-------------+--------------+-----------| | 1 | Andr Milani | 1111-1111 | | 2 | Carlos Tosin | 1212-1212 | +----------------------------------------+ A tabela INSTRUTOR foi criada separadamente dos cursos pois um mesmo instrutor p ode ser o responsvel por um ou mais cursos disponibilizados pela Softblue. Para no haver redundncia de dados, gerar economia de espao de armazenamento e facilidade de manuteno (alterao de dados do instrutor), estas informaes devem ser gerenciadas por esta tabela. Tabela CURSO +---------------------------------------------------------------------+ | CODIGO (PK) | CURSO | TIPO (FK) | INSTRUTOR (FK) | VALOR | |-------------+------------------+-----------+----------------+-------| | 1 | Java Fundamentos | 2 | 2 | 270 | | 2 | Java Avanado | 2 | 2 | 330 | | 3 | SQL Completo | 1 | 1 | 170 | | 4 | Php Bsico | 2 | 1 | 270 | +---------------------------------------------------------------------+ A tabela CURSO criada com as colunas TIPO e INSTRUTOR como chaves estrangeiras ( FK) pois representam o cdigo dos registros das outras tabelas as quais fazem refe rncia. Desta forma, se o instrutor mudar o seu telefone, ser necessrio alterar apen as na tabela INSTRUTOR, alm da economia em espao de armazenamento por no repetir in formaes. Tabela ALUNO +----------------------------------------------------------------------------+ | CODIGO (PK) | ALUNO | ENDERECO | EMAIL | |-------------+------------+------------------------+------------------------| | 1 | Jos | Rua XV de Novembro 72 | jose@softblue.com.br | | 2 | Wagner | Av. Paulista | wagner@softblue.com.br | | 3 | Emlio | Rua Lajes 103, ap: 701 | emilio@softblue.com.br | +----------------------------------------------------------------------------+ A tabela ALUNO criada sem nenhuma informao sobre as matrculas j realizadas por este aluno, para evitar que seus dados pessoais sejam repetidos em mais de um registr o de matrcula. Nesta tabela uma possibilidade seria no criar a coluna CODIGO e em

seu lugar utilizar a coluna EMAIL como chave primria. Contudo, para prevenir anom alias de alterao (pois e-mail algo que uma pessoa pode mudar e criar outro, e nest e caso seria necessrio alterar em outras tabelas que fizessem referncias), bem com o para poupar espao de armazenamento ao utilizar a chave primria em outras tabelas , recomendvel utilizar cdigos nicos internos como chave primria. Tabela PEDIDO +----------------------------------------------------+ | CODIGO (PK) | ALUNO (FK) | DATA | HORA | |-------------+--------------+------------+----------| | 1 | 2 | 15/04/2010 | 11:23:32 | | 2 | 2 | 15/04/2010 | 14:36:21 | | 3 | 3 | 16/04/2010 | 11:17:45 | +----------------------------------------------------+ A tabela PEDIDO representa o momento em que o aluno realizou o seu pedido, como um caixa de mercado. Ela apresenta as informaes do aluno e do momento das matrculas , mas como cada aluno pode estar se matriculando em um ou mais cursos no mesmo p edido, a tabela PEDIDO deve ser referenciada pela tabela PEDIDO_DETALHE, onde co nsta cada curso que o aluno est se matriculando. Observe que no consta o valor total do pedido nesta tabela, pois este valor pode ser obtido com a soma dos itens que fazem parte deste pedido, gerenciados pela t abela PEDIDO_DETALHE. Tabela PEDIDO_DETALHE +----------------------------------+ | PEDIDO (FK) | CURSO (FK) | VALOR | |-------------+------------+-------+ | 1 | 1 | 270 | | 1 | 2 | 330 | | 2 | 1 | 270 | | 2 | 2 | 330 | | 2 | 3 | 170 | | 3 | 4 | 270 | +----------------------------------+ A tabela PEDIDO_DETALHE informa quais cursos fazem parte de cada pedido realizad o na Softblue. Observe que a chave primria neste exemplo formada pelas chaves est rangeiras PEDIDO e CURSO. Isto ocorre pois em nosso modelo podemos assumir que no possvel comprar dois ou mais cursos iguais em um mesmo pedido. Observe que existe uma coluna VALOR, que pode parecer redundante com a coluna VA LOR j existente na tabela CURSO, contudo ela ser encarregada de armazenar o valor do curso no momento da matrcula, j que futuramente o preo na tabela CURSO poder ser corrigido devido a novos preos praticados pela Softblue. Como a coluna VALOR desta tabela e a coluna VALOR de CURSOS possivelmente tero va lores que podero se repetir em vrios registros, seria possvel ainda normalizar esta coluna em uma tabela chamada PRECO formada por um cdigo (PK) e o valor em questo, e apenas referenciar este cdigo nas tabelas citadas. Contudo, por ser um campo n umrico e significativamente ocupar menos espao que outros campos de texto, e por o utras questes de desenvolvimento, este campo no ser normalizado em tabela prpria. Todas as chaves estrangeiras apresentadas neste exemplo so consideradas ndices.

Das könnte Ihnen auch gefallen