• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

saramgsilva

Base de dados- Cozinha

45 mensagens neste tópico

Este trabalho foi realizado por: Sara Silva ( tofas), Sara Carvalho e Rita Coimbra no ambito da cadeira de Base de Dados que frequentamos no 1 semestre.

Boas,  :)  vou apresentar mais um projecto, desta vez uma base de dados para um sistema de gestao de uma cozinha.

Com o furor do Kisc, criamos uma base de dados de uma cozinha!

Este é o modelo ER da base de dados,

cpiadeercozinha9yj.jpg

o ficheiro do codigo sql para criar o base de dados encontra-se  criar tabelas ( cria.slq )

Criar as tabelas :

/*
   Instruções em SQL: criar as tabelas da base de dados

*/


/*

   Estrutura da tabela compras

*/


CREATE TABLE compras (
                  n_compra    int(11)       NOT NULL UNIQUE,
  			total       double(10,2)  NOT NULL,
  			datac       date          NOT NULL,
  			id_forn     int(11)       NOT NULL,
  			PRIMARY KEY  (n_compra),
		check(total>=0,0)
	     );





/*

  Estrutura da tabela cozinhado


*/ 


CREATE TABLE cozinhado (
  			  id_coz       int(11)    NOT NULL UNIQUE,
                    n_pessoas    int(11)    default NULL,
  			  duracao      int(11)    default NULL,
   			  tipo         char(30)   default NULL,
                    PRIMARY KEY  (id_coz),
	        check(duracao>=0 and n_pessoas>=0)
		);


/*

   Estrutura da tabela familia_p

*/


CREATE TABLE familia_p (
  			 id_familia    int(11)    NOT NULL UNIQUE,
  			 nome_familia  char(30)   NOT NULL,
  		       PRIMARY KEY  (id_familia)
                       );




/*

  Estrutura da tabela fornecedores

*/ 

CREATE TABLE fornecedores (
  			    id_forn        int(11)    NOT NULL UNIQUE,
  			    nome_forn      char(30)   NOT NULL,
  			    descricao_forn  char(40)   default NULL,
  			    PRIMARY KEY  (id_forn)
		  );


/*

  Estrutura da tabela  produtos

*/ 

CREATE TABLE produtos (
  			id_p         int(11)   NOT NULL UNIQUE,
  			nome_p       char(30)  NOT NULL,
  			localizacao  char(30)  default NULL,
  			id_familia   int(11)   NOT NULL,
  			PRIMARY KEY  (id_p)
	     );


/*

  Estrutura da tabela receitas

*/ 


CREATE TABLE  receitas  (
  			 id_r       int(11)    NOT NULL UNIQUE,
  			 nome_r     char(30)   NOT NULL,
  			 familia_r  char(30)   default NULL,
  			 id_coz     int(11)    NOT NULL,
  			 PRIMARY KEY  (id_r)
		);

/*

Estrutura da tabela stock_outro

*/ 

CREATE TABLE stock_outro (
  			   id_p      int(11)       NOT NULL UNIQUE,
  			   omedida   char(20)      default NULL,
  			   ounidade  double(10,2)  default NULL,
  			   PRIMARY KEY  (id_p),
		   check(ounidade>=0,0)
		   );

/*

Estrutura da tabela stock_peso
*/ 

CREATE TABLE stock_peso (
  			  id_p      int(11)      NOT NULL UNIQUE,
  			  pmedida   char(20)     default NULL,
  			  punidade  double(10,2) default NULL,
  			  PRIMARY KEY  (id_p),
		  check(punidade>=0,0)
		);

/*

  Estrutura da tabela fazer_receita


*/

CREATE TABLE fazer_receita (
  			     id_r       int(11)      NOT NULL,
  			     med_quant  char(20)     NOT NULL,
  			     un_quant   double(10,2) NOT NULL,
  	        	     id_p       int(11)      NOT NULL,
    	                 PRIMARY KEY  ( id_r, id_p),
			     foreign key(id_r) references receitas(id_r),
    			     foreign key(id_p) references produtos(id_p),
		     check(un_quant>=0.0)
                            );


/*

Estrutura da tabela prod_compra

*/


CREATE TABLE prod_compra (
  			   id_p            int(11)       NOT NULL,
  			   preco_unid      double(10,2)  NOT NULL,
   			   marca           char(30)      default NULL,
  		         quant_unidade   double(10,2)  NOT NULL,
  			   quant_medida    char(20)      NOT NULL,
  			   n_compra        int(11)       NOT NULL,
  			   PRIMARY KEY (id_p, n_compra),
	         foreign key(id_p) references produtos(id_p),
    			   foreign key(n_compra) references compras(n_compra),	
		   check(preco_unid>=0,0 and quant_unidade>=0,0)		   
                         );



para efectuarmos pesquisas e usarmos a base de dados criamos 1 ficheiro para inserir dados... pode encontra-lo inserir dados ( insert.sql )

O nosso relatorio, encontra-se aqui: Relatorio-BDD-Cozinha.pdf

ao lerem o relatorio, fica a perceber como "funciona" a nossa base de dados, e tem uma explicação teorica de praticamente tudo o que aplicamos e usamos na base de dados...

Vejam o indice, para terem uma noção do relatorio.

No Capitulo 10 ( pagina 42 ) - podem ver exemplos:  de perguntas em linguagem corrente, em algebra relacional e em SQL... espero que gostem

espero, e foi essa a minha ideia, que este projecto venha ajudar a desenvolver o KISC!! :) eu nao sei visual basic, mas na parte da base de dados... este projecto é uma boa proposta!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hmm...muito sinceramente, cheira-me a sucesso. O trabalho da base de dados está realizado. Pessoal, de que mais precisamos nós para continuar este projecto? :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hmm...muito sinceramente, cheira-me a sucesso. O trabalho da base de dados está realizado. Pessoal, de que mais precisamos nós para continuar este projecto? :biggrin:

:) espero que ajude!! a serio...mesmo alguem que nao perceba mto de bdd, e saiba VB ou outra linguagem...e keira arriscar!! ao ler o projecto todo axo que vai perceber bem  a ideia da bdd... FORÇA!! 

(ando aprender php...e ja me lembrei qdo tiver tempo e conhecimentos suficientes....criar o KISC para web )  :cheesygrin: era a loucura!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

?? eu inda n precebi nada disso :X e vai ser programado em k linguagem? e kual eh o objectivo disso? :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

?? eu inda n precebi nada disso :X e vai ser programado em k linguagem? e kual eh o objectivo disso? :S

uma base de dados tem como base a linguagem SQL, e existem varios sistemas de gestao de base de dados : Mysql, access, SQL Server....

e isto que crei foi 1 base de dados para uma cozinha, com a junção de outra liguagem, pode-se fazer 1 programa de modo a usar esta bdd...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ah yah :D lol agora atao fases uma pagina em PHP para fazer a gestao da cosinha :thumbsup: lol

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ya agora tou a dar base de Dados a Tic até agora é seca e a prof  :mad:

Mas no fundo Base de Dados da mt jeito

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tás a dar mt teoria que não vais usar. eu tmb estou a dar e sei o k estou a dizer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hi,

Tive ali a analisar ali aquele modelo entidade relação, mas que dor :O eu acho que isto devia ser banido desta realidade aquilo parece mais ultrapassado que a ZX-Spectrum.

Eis a minha forma de ver:

Se tentarmos modelar este problema fazendo uma certa aplicação de conhecimento dos belíssimos diagramas de classes usados para OO, ficaria tudo mais bonito imaginemos uma situação seguinte

+-----------------+                                                            +-----------------+

|      Pessoa      |                                                              | Nacionalidade |

+-----------------+                                                          1  +-----------------+

| #id_pessoa    |  n                              |-------------------  | #id                |

| #nacionalidade| ----------------------------|                        | nome            |

+-----------------+                                                            +-----------------+

Ou seja modelamos uma tabela como se fosse uma classe, e faríamos a relação por exemplo unido atributo com atributo como eu defini acima, seria assim utilizada uma forma bastante mais simples e eficaz de apresentar o problema!

Think about!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao percebi mto bem o que querias realmente transmitir.... mas daquilo que conclui, foi que usar este "tipo de diagrama" é mais simples de perceber a base de dados e de trabalhar...é isso?

Bem eu conheco esse tipo, e ate acho mto fixe, e agora uso mais...mas quando fiz a cadeira, tinha que fazer como o professor queria, e usei como viste no trabalho, acho eu...mas para quem nao percebe mto disto mais facilmente percebe um esquema como tu apresentaste do que o meu esquema....

:dontgetit:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

gostei da ideia. eu programo em php, se quiserem a minha ajuda estou á vossa disposição

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hmm...muito sinceramente, cheira-me a sucesso. O trabalho da base de dados está realizado. Pessoal, de que mais precisamos nós para continuar este projecto? :biggrin:

Podias cozinhar aí pró pessoal. Isso é que era :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

gostei da ideia. eu programo em php, se quiserem a minha ajuda estou á vossa disposição

ta, eu de momento estou acabar o curso... .e depois queria pegar nisto... depois eu aviso -te  :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

altamente tofitas... vou já instalar esta aplicação na minha cozinha a ver se começo a ter as refeições prontas quando chegar a casa... e o modulo de compras é excelente... h3h3h3hh3h3h3h

lindo... uma aplicação femenina da programação...

uma iniciativa muito interessante...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tás a dar mt teoria que não vais usar. eu tmb estou a dar e sei o k estou a dizer.

Podes exemplificar por exemplo?

É que quanto mais trabalho com bds, mais me apercebo da necessidade dos fundamentos teóricos...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

altamente tofitas... vou já instalar esta aplicação na minha cozinha a ver se começo a ter as refeições prontas quando chegar a casa... e o modulo de compras é excelente... h3h3h3hh3h3h3h

lindo... uma aplicação femenina da programação...

uma iniciativa muito interessante...

isto é algo que pretendo implementar, com base, na ideia inicial do KISC

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tás a dar mt teoria que não vais usar. eu tmb estou a dar e sei o k estou a dizer.

Podes exemplificar por exemplo?

É que quanto mais trabalho com bds, mais me apercebo da necessidade dos fundamentos teóricos...

tipo tu quando constrois uma bd tu não pensas nas fases todas (acho k são 12), constrois normalmente - pensas logo no que precisas e no que vais precisar, controis, implementas e está feito.

Não sou apologista de ter de decorar fases (que não são poucas) em vez de fazer a experimentação "on the field", percebes o que quero dizer?

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

epa acordem ta ai pessoal a dizer ha e tal php se quiseres ajuda em php epá desculpem lá mas n e mt melhor isto numa apps tipo sei lá em visual basic?

desculpem lá ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

epa acordem ta ai pessoal a dizer ha e tal php se quiseres ajuda em php epá desculpem lá mas n e mt melhor isto numa apps tipo sei lá em visual basic?

desculpem lá ;)

as coisas não se fazem de qualquer maneira....tem que ser planeadas... e bem organizadas....  :dontgetit:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tás a dar mt teoria que não vais usar. eu tmb estou a dar e sei o k estou a dizer.

Podes exemplificar por exemplo?

É que quanto mais trabalho com bds, mais me apercebo da necessidade dos fundamentos teóricos...

tipo tu quando constrois uma bd tu não pensas nas fases todas (acho k são 12), constrois normalmente - pensas logo no que precisas e no que vais precisar, controis, implementas e está feito.

Fala por ti.

Quando construo uma bd faço-o como deve ser, passando pelas várias fases que a construção da mesma implica.

E sim, estou a dizer que passo pelo desenho, normalização, desnormalização, etc. da mesma até à implementação...

A razão é simples: fazer as coisas como deve ser permite que o trabalho seja bem feito, com qualidade e robustes. Essa é a razão pela qual não uso um "martelo" mas uso sim o método teórico.

Não sou apologista de ter de decorar fases (que não são poucas) em vez de fazer a experimentação "on the field", percebes o que quero dizer?

Cumps

Percebo e isso tem um nome na programação: "quick and dirty"!

Também sei bem o preço a pagar por essa abordagem: muito mais horas à volta da bd do que o necessário e muito mais alterações ao desenho inicial, que costuma resultar numa salganhada de tabelas e campos (muitas vezes redundantes) que tornam a bd mais suja, menos performante e implicam que a aplicação que a usa também tenha de levar umas marretadas para se adaptar à "dinâmica" do modelo... Normalmente o resultado é uma bd que é uma treta... Mas isso sou só eu a falar pela experiência que tenho...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

M6  talvés tenhas algo a dizer sobre esta base de dados .... vejo que tens mais experiencia no assunto... :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

M6  talvés tenhas algo a dizer sobre esta base de dados .... vejo que tens mais experiencia no assunto... :hmm:

É um facto que há já muitos anos que trabalho com BDs e que elas fazem parte do meu dia-a-dia, pelo que espero ter bastantes conhecimentos sobre o assunto. :P

Para poder opinar gostaria de saber mais sobre os requisitos do projecto.

Mas para já, gostava que me explicasses algumas coisas:

- A entidade "compras" ligada a total, datac, e n_compra pretende ser o quê em particular?

- A entidade "prod_compra" como se relaciona com a entidade "compras" (a nível lógico e semântico)?

- Porque incluiste na entidade "prod_compra" campos como "marca"? Isso não faze mais sentido no produto?

- Como é que os stocks funcionam e como estão relacionados com os produtos? Pelo que li no relatório o stock poderia ser apenas uma entidade onde o tipo (Kg/Unidade/Lt) poderia ser apenas um atributo...

Um pequeno à parte, no teu relatório dizes:

"A álgebra relacional foi desenvolvida para descrever operações sobre uma base de dados

relacional. O conjunto de objectos são as tabelas e uma operação possui como operandos e como

resultado tabelas."

Não é verdade. A álgebra já existia há muito quando as bases de dados relacionais, tal como as conhecemos hoje, nasceram "apenas" nos anos 70. Por exemplo, uma consulta a um cruzamento de tabelas numa BD é uma aplicação prática da álgebra relacional.

Outra coisa, esta não está errada é meramente a título de curiosidade, o SQL quando nasceu com o nome de SQL não queria dizer Structured Query Language, foi apenas o nome que os autores da linguagem, após uma tentativa frustrada de uma linguagem arranjaram e pretendia dizer "sequel", ou seja, sequela/próxima. Só mais tarde é que alguém se lembrou de baptizar o SQL como Structured Query Language. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Gostei do desenho sobre o projecto, tudo muito bonitinho e tal mas o dificil é fazer na pratica o que está no desenho.

Estou aqui para ajudar no que for preciso...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

M6 já li o que escreveste, mas não deu para responder...estou numa fase complicada, quando poder respondo-te ...  ;)

kingless pois, isso foi uma implementação que fizemos, um pouco a pensar no kisc, agora que ja trabalhei com php e myqsl, vejo que há certas coisas que são complicadas de implementar...

Quanto tiver oportunidade, respondo e falarei mais sobre o que tenho em mente...

tofas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora