2013-03-14 2 views
0

я хотим попробовать сделать некоторые операции запроса на реляционной databases.for напримерRealtional База данные и запросы

relation cars 

    brandname  type  year 
     acura  suv  2012 
     bmw   sedan  2013 

и/или

relation transport 

transport vehicle  capacity ticketprice 
bus       40  30 
airplane     300   500 
taxi       3  125 

in this database has up to 100 relations. 
each relation could has 10 attributes. 
each relation could has 10000 row data. 

в этой базе данных есть один текстовый файл. этот файл, cars транспорт

первая линия как любое отношение есть в этом файле? и другие строки - название отношений.

Есть 2 разных файла для каждого отношения. первый один текстовый файл,

3 
brandname String 20 
type  String 10 
year  Int  4 

первая строка, сколько атрибут в этом соотношении таблицы атрибутов других линий и типов (строка/целое) и размер атрибутов (байт)

второй файл двоичный файл, есть информация о каждой строке данных. «acura suv 2012», но его двоичный код.

Итак,

Я имею в виду, что, как,

первый я должен создать структуры, как,

struct relation{ 
char attribute[10]; 
char row[10000]; 
} 

struct row { 
char type[2]; //string or integer 
char title[???]; //i think i have to read from binary file how many title in this file ?? 
long size; //how many bytes size of each attribute 
} 

, но я не уверен, что моя идея верна или нет.

+0

Вы задаете слишком много вопросов в одном сообщении. Пожалуйста, прочитайте [FAQ] и [Ask] советы о том, как писать хорошие вопросы. –

+0

@JimGarrison Моя проблема в том, что я не могу расшифровать, каков его фактический вопрос. ccc, вы объяснили о своей проблеме, но четко не задали свой вопрос. Пожалуйста, перефразируйте более четко ваш вопрос – wired00

+0

жаль, что я хочу просто спросить, какие определения в моей структуре верны? – ccc

ответ

0

Вы можете свободно моделировать свои структуры данных C на основе структур файлов.

struct attribute 
{ 
    char title[17+1]; // or whatever the max. title string length; e. g. "year" 
    char type; 
    long size; 
    unsigned char **data; // dynamically allocate data[0] up to data[10000-1] 
}; 

struct relation 
{ 
    char name[9+1]; // e. g. "cars", "transport" 
    int how_many_attributes; 
    struct attribute att[10]; // up to 10 
}; 

struct database 
{ 
    int how_many_relations; 
    struct relation rel[100]; // up to 100 
}; 
Смежные вопросы