Построение базы данных "Кулинарная книга"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



>

Cuisine_nameCategory_namecount(Recipe_ID)Европейская кухнязакуска21Европейская кухнясуп22Европейская кухнясалат24

Эффективность выполнения запроса:

idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra1SIMPLECuisineALLPRIMARYNULLNULLNULL5Using temporary; Using filesort1SIMPLEReciperefRec_Cuisine_ind,Rec_Category_indRec_Cuisine_ind4recipe_book.Cuisine.Cuisine_ID951SIMPLECategoryeq_refPRIMARYNULL4recipe_book.Recipe.Rec_Category_ID1

Интерпретация:

Объединяются таблицы: Пользователь, Рецепт, Состав. Выбираются авторские рецепты и запросом having отбираются рецептыiислом ингредиентов равным минимальному.

Заключение

В результате выполнения данной курсовой работы была разработана и создана база данных, содержащая кулинарные рецепты. В базу данных были занесены названия ингредиентов, единицы измерений, состояние ингредиентов, категории, названия национальных кухонь, метод приготовления, основа блюда. Остальные таблицы заполнялись равномерно распределенными данными. После чего были выполнены SQL запросы. Из полученных результатов и построенных по ним графиков видно, что данные действительно распределены равномерно.

В результате проделанной работы мы получили базу данных, способную заменить книгу кулинарных рецептов. Данная база может быть использована для создания сайта или определенного приложения.

Приложение 1

Программа заполнения базы данных.

Заполнение таблицы Книга

#include "stdafx.h"

#include

#include

#include

#include

#include

#include namespace std;names

{string s1;l;*next,*prev;

};surnames

{string s2;k;*next,*prev;

};Cname

{private:g;:(void);create(void);

};::Cname(void)

{create();

}Cname::create(void)

{float c1,h1,t1;book_name, author, descr;char c,h,t;(time(NULL));g("book.txt");(int i=0;i<50;i++)

{author.clear();_name.clear();.clear();

c1=rand();=rand();=rand();=192+(c1/32767)*31;=192+(h1/32767)*31;=192+(t1/32767)*31;

author.push_back(c);_name.push_back(h);.push_back(t);(int j=0; j < 7; j++)

{c1=rand();=rand();=rand();=224+(c1/32767)*31;=224+(h1/32767)*31;=224+(t1/32767)*31;

author.push_back(c);_name.push_back(h);.push_back(t);

}<<"Insert into Book SET Book_ID='"<<i+1<<"', Title='"<< book_name<<"', Author='"<<author<<"', Description='"<<descr<<"';\n";<<"Insert into Book SET Book_ID='"<<i+1<<"', Title='"<< book_name<<"', Author='"<<author<<"', Description='"<<descr<<"';\n";}.close();

}main (void)

{setlocale(LC_ALL,"Russian");g;

_getch();

}

Заполнение таблицы Пользователь

#include

#include

#include

#include

#include

#include namespace std;names

{string s1;l;*next,*prev;

};surnames

{string s2;k;*next,*prev;

};Cname

{private:f,sur,g;a;*nnew,*tec,*start;*nnew_s,*tec_s,*start_s;

int max_names,max_surnames;

public:(void);build_names(void);build_surnames(void);create(void);

};::Cname(void)

{max_names=1;_surnames=1;_names();_surnames();();.close();.close();.close();

}Cname::build_names(void)

{string s; int i=0;f("name.txt");=new names;>prev=NULL;>next=NULL;=tec;(f.good())

{getline(f,s);>s1=s;>l=i;++;_names++;=new names;>prev=tec;>next=NULL;>next=nnew;=nnew;

//cout<<s<<"\n";

}=start;.close();

}Cname::build_surnames(void)

{string s; int i=0;sur("surname.txt");_s=new surnames;_s->prev=NULL;_s->next=NULL;_s=tec_s;(sur.good())

{getline(sur,s);_s->s2=s;_s->k=i;++;_surnames++;_s=new surnames;_s->prev=tec_s;_s->next=NULL;_s->next=nnew_s;_s=nnew_s;

//couts2;

}_s=start_s;.close();

}Cname::create(void)

{int c=500,q,w,j,password;double q1,w1,p1;(time(NULL));g("zapros_500.txt");(int i=0;i<500;i++)

{q1=rand();=1+(q1/32767)*(max_names-1);=q1/32767.0;

cout<<q1<<"\n";=rand();

w=1+(w1/32767)*(max_surnames-1);=rand();

//coutnext;

//couts2<<"', Login='"<<i<<"', Password='"<<password<<"', User_ID="<<i+1<<";\n";

}.close();

}main (void)

{setlocale(LC_ALL,"Russian");g;

_getch();

}

Заполнение таблицы Состав

#include

#include

#include

#include

#include

#include

#include namespace std;Ccomp

{private:g;:(void);create(void);

};::Ccomp(void)

{create();

};Ccomp::create(void)

{double num,ingr,cond,measure,quant;comp_ingr, comp_num, comp_unit, comp_cond,quantity;(time(NULL));g("6_composition.sql");(int i=0;i<1000;i++)

{num=(rand()/double(32767));_num=1+num*10;(int j=0;j<comp_num;j++)

{ingr=rand();_ingr=1+(ingr/double(32767))*452;=rand();_cond=1+(cond/double(32767))*56;=rand();_unit=1+(measure/double(32767))*14;=rand();=1+(quant/double(32767))*20;<<"Insert into Composition SET Comp_Ingredient_ID="<<comp_ingr<<", Comp_Recipe_ID="<<i+1<<", Comp_Unit_measure_ID="<<comp_unit<<", Comp_Condition_ID="<<comp_cond<<", Quantity="<<quantity<<";\n";

}

}.close();

}main (void)

{setlocale(LC_ALL,"Russian");g;

_getch();

}

Заполнение таблицы Отзыв

#include

#include

#include

#include

#include

#include namespace std;Cref

{private:g;:(void);create(void);

};::Cref(void)

{create();

}Cref::create(void)

{double num,user,simv;ref_num,user_id,y,m,d,h,min,s;c;message;(time(NULL));g("8_reference.sql");(int i=0;i<1000;i++)

{num=rand();_num=1+(num/32767)*5;

for(int j=0;j<ref_num;j++)

{user=rand();_id=1+(user/double(32767))*500;=rand();=192+(simv/double(32767.0))*31;.clear();.push_back(c);(int k=0;k<20;k++)

{simv=rand();=224+(simv/double(32767.0))*31;.push_back(c);

}=2008+rand()/(32767.0)*3;m=rand()/(double(32767))*12;d=1+rand()/(double(32767))*30;h=rand()/(double(32767))*24;min=rand()/(32767.0)*60;s=rand()/(double(32767))*60;<<"Insert into Reference SET Ref_User_ID="<<user_id<<", Ref_Recipe_ID="<<i+1<<", Message='"<<message<<"', Date='"<<y<<"-"<<m<<"-"<<d<<" "<<h<<":"<<min<<":"<<s<<"';\n";

}

}.close();

}main (void)

{setlocale(LC_ALL,"Russian");g;

_getch();

}

Приложение 2

Данные заполнения словарей

Кухня

Европейская кухня

Русская кухня

Японская кухня

Американская кухня

Китайская кухня

Категория

з