469,299 Members | 2,050 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,299 developers. It's quick & easy.

C# database project

Hi,

I want to start a new project, I want to build my own database server and
start very simple. I want to create a file-based database server, with
XML-files. Does anyone know a good site or book to get some more information
about this kind of project (like 'How to build your own database server')?

Or can someone help me start...?

I want to build it in C# (.NET) and save files in XML.

I want to use XML-files to use as my database-definition files, like:

<data>
<database name="TestDB">
<table name="TestTable">
<field type="PrimaryKey" name="ID" />
<field type="String" name="Name" />
<field type="DateTime" name="DateOfBirth" />
<field type="Bool" name="Male" default="True" />
</table>
</database>
</data>

I also want to use/create a SQL like query language to use for querying this
database.

Hopefully someone can help me.

Thanks in advance.

Greetings,

Jelle

Feb 13 '08 #1
7 4536
Jelle,

This is a ^tremendous^ undertaking that you are considering. I don't
know if you are doing it because you have to (in which case, I would say
find some other data source) or if you are just doing it for the hell of it,
but either way, it's not easy.

The major areas you have to deal with are the storage of the data, and
the querying of the data. While these are the two main concerns, there are
going to be many things that you have to consider:

- How will storing data structure/information in XML affect the performance
of the database?
- How will you affect concurrent access to the database?
- How will you handle indexes (you have a primary key, which implies an
index in most/all DB systems)
- How will you connect to the database and execute commands/return
information
- What will the query language look like?

These are just ^some^ of the issues you have to deal with when writing a
DB server. There are many, many more, but the questions posed above are
probably good places to start.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Jelle de Jong" <je***@nospam.hoest.nlwrote in message
news:47***********************@news.kpnplanet.nl.. .
Hi,

I want to start a new project, I want to build my own database server and
start very simple. I want to create a file-based database server, with
XML-files. Does anyone know a good site or book to get some more
information about this kind of project (like 'How to build your own
database server')?

Or can someone help me start...?

I want to build it in C# (.NET) and save files in XML.

I want to use XML-files to use as my database-definition files, like:

<data>
<database name="TestDB">
<table name="TestTable">
<field type="PrimaryKey" name="ID" />
<field type="String" name="Name" />
<field type="DateTime" name="DateOfBirth" />
<field type="Bool" name="Male" default="True" />
</table>
</database>
</data>

I also want to use/create a SQL like query language to use for querying
this database.

Hopefully someone can help me.

Thanks in advance.

Greetings,

Jelle

Feb 13 '08 #2
By the way, I want to use it for webapplications and windowsapplications.

"Jelle de Jong" <je***@nospam.hoest.nlwrote in message
news:47***********************@news.kpnplanet.nl.. .
Hi,

I want to start a new project, I want to build my own database server and
start very simple. I want to create a file-based database server, with
XML-files. Does anyone know a good site or book to get some more
information about this kind of project (like 'How to build your own
database server')?

Or can someone help me start...?

I want to build it in C# (.NET) and save files in XML.

I want to use XML-files to use as my database-definition files, like:

<data>
<database name="TestDB">
<table name="TestTable">
<field type="PrimaryKey" name="ID" />
<field type="String" name="Name" />
<field type="DateTime" name="DateOfBirth" />
<field type="Bool" name="Male" default="True" />
</table>
</database>
</data>

I also want to use/create a SQL like query language to use for querying
this database.

Hopefully someone can help me.

Thanks in advance.

Greetings,

Jelle
Feb 13 '08 #3
Nicholas,

I know it's not an easy project, but I just want to create something for my
own use. And this is a real challenge! ;-)

I want to start very simple. My idea was to work with some form of
Serialization. But I don't know what the performance will be when I want to
write back to the filesystem.

It's just for fun, and maybe someone also wants to create such a thing or
did it before?

Gr.,
Jelle

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard.caspershouse.comwrote in
message news:%2****************@TK2MSFTNGP03.phx.gbl...
Jelle,

This is a ^tremendous^ undertaking that you are considering. I don't
know if you are doing it because you have to (in which case, I would say
find some other data source) or if you are just doing it for the hell of
it, but either way, it's not easy.

The major areas you have to deal with are the storage of the data, and
the querying of the data. While these are the two main concerns, there
are going to be many things that you have to consider:

- How will storing data structure/information in XML affect the
performance of the database?
- How will you affect concurrent access to the database?
- How will you handle indexes (you have a primary key, which implies an
index in most/all DB systems)
- How will you connect to the database and execute commands/return
information
- What will the query language look like?

These are just ^some^ of the issues you have to deal with when writing
a DB server. There are many, many more, but the questions posed above are
probably good places to start.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Jelle de Jong" <je***@nospam.hoest.nlwrote in message
news:47***********************@news.kpnplanet.nl.. .
>Hi,

I want to start a new project, I want to build my own database server and
start very simple. I want to create a file-based database server, with
XML-files. Does anyone know a good site or book to get some more
information about this kind of project (like 'How to build your own
database server')?

Or can someone help me start...?

I want to build it in C# (.NET) and save files in XML.

I want to use XML-files to use as my database-definition files, like:

<data>
<database name="TestDB">
<table name="TestTable">
<field type="PrimaryKey" name="ID" />
<field type="String" name="Name" />
<field type="DateTime" name="DateOfBirth" />
<field type="Bool" name="Male" default="True" />
</table>
</database>
</data>

I also want to use/create a SQL like query language to use for querying
this database.

Hopefully someone can help me.

Thanks in advance.

Greetings,

Jelle


Feb 13 '08 #4
Jelle,

If you are going to use it for web-based applications, then I really
have to say that you are going to have to do plenty of dirty little things
to make sure it performs well, and you are going to have to make sure that
transaction consistency is bullet-proof. With the number of people that
will hammer the database at the same time in a web-based app, those things
are certainly going to be put to the test.

Additionally, if the database is file-based, you simply are not going to
get the performance you can get with keeping the data in memory and paging
out to disk when necessary. The reason for this is that if all of your
operations are done on the file each time they occur, your disk access
becomes a HUGE bottleneck for you.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Jelle de Jong" <je***@nospam.hoest.nlwrote in message
news:47***********************@news.kpnplanet.nl.. .
By the way, I want to use it for webapplications and windowsapplications.

"Jelle de Jong" <je***@nospam.hoest.nlwrote in message
news:47***********************@news.kpnplanet.nl.. .
>Hi,

I want to start a new project, I want to build my own database server and
start very simple. I want to create a file-based database server, with
XML-files. Does anyone know a good site or book to get some more
information about this kind of project (like 'How to build your own
database server')?

Or can someone help me start...?

I want to build it in C# (.NET) and save files in XML.

I want to use XML-files to use as my database-definition files, like:

<data>
<database name="TestDB">
<table name="TestTable">
<field type="PrimaryKey" name="ID" />
<field type="String" name="Name" />
<field type="DateTime" name="DateOfBirth" />
<field type="Bool" name="Male" default="True" />
</table>
</database>
</data>

I also want to use/create a SQL like query language to use for querying
this database.

Hopefully someone can help me.

Thanks in advance.

Greetings,

Jelle

Feb 13 '08 #5
Nicholas,

So maybe it's better to use XmlSerialization to save objects to the
filesystem and Deserialize them to use them as objects again. So no
query-language or in-memory data or whatsoever. Or use MySQL, SQL Server or
Oracle instead ;-)

Or do you have other nice ideas about how people should store their data
into a data-structure or a filesystem?
Gr.,
Jelle

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard.caspershouse.comwrote in
message news:%2****************@TK2MSFTNGP02.phx.gbl...
Jelle,

If you are going to use it for web-based applications, then I really
have to say that you are going to have to do plenty of dirty little things
to make sure it performs well, and you are going to have to make sure that
transaction consistency is bullet-proof. With the number of people that
will hammer the database at the same time in a web-based app, those things
are certainly going to be put to the test.

Additionally, if the database is file-based, you simply are not going
to get the performance you can get with keeping the data in memory and
paging out to disk when necessary. The reason for this is that if all of
your operations are done on the file each time they occur, your disk
access becomes a HUGE bottleneck for you.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Jelle de Jong" <je***@nospam.hoest.nlwrote in message
news:47***********************@news.kpnplanet.nl.. .
>By the way, I want to use it for webapplications and windowsapplications.

"Jelle de Jong" <je***@nospam.hoest.nlwrote in message
news:47***********************@news.kpnplanet.nl. ..
>>Hi,

I want to start a new project, I want to build my own database server
and start very simple. I want to create a file-based database server,
with XML-files. Does anyone know a good site or book to get some more
information about this kind of project (like 'How to build your own
database server')?

Or can someone help me start...?

I want to build it in C# (.NET) and save files in XML.

I want to use XML-files to use as my database-definition files, like:

<data>
<database name="TestDB">
<table name="TestTable">
<field type="PrimaryKey" name="ID" />
<field type="String" name="Name" />
<field type="DateTime" name="DateOfBirth" />
<field type="Bool" name="Male" default="True" />
</table>
</database>
</data>

I also want to use/create a SQL like query language to use for querying
this database.

Hopefully someone can help me.

Thanks in advance.

Greetings,

Jelle


Feb 13 '08 #6
Nicholas,
>
There is nothing wrong with saving data to the file system, but keep in
mind that ^always^ accessing the data from the files in the file system is
going to be a huge bottleneck for you.
But when I'm using Serialization, my application should perform better, then
the object will be in-memory while it's being used, isn't it? And in-memory
is the fastest way, I presume?

Jelle

Feb 13 '08 #7
Jelle,

Yes, it will be in memory, but you want to ^keep^ it in memory for as
long as possible. If you save it back to the filesystem after an update,
for example, and then reload it again the next time you need it, that's
going to cause a bottleneck. If you already have it lying around in memory,
you wouldn't have to load it from disc.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Jelle de Jong" <je***@nospam.hoest.nlwrote in message
news:47***********************@news.kpnplanet.nl.. .
Nicholas,
>>
There is nothing wrong with saving data to the file system, but keep
in mind that ^always^ accessing the data from the files in the file
system is going to be a huge bottleneck for you.

But when I'm using Serialization, my application should perform better,
then the object will be in-memory while it's being used, isn't it? And
in-memory is the fastest way, I presume?

Jelle

Feb 13 '08 #8

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by ColinWard | last post: by
4 posts views Thread by Martyn Fewtrell | last post: by
4 posts views Thread by JM | last post: by
2 posts views Thread by just_out_for_fun | last post: by
reply views Thread by dot.yet | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by zhoujie | last post: by
1 post views Thread by Geralt96 | last post: by
reply views Thread by harlem98 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.