Board index   FAQ   Search  
Register  Login
Board index PHP PHP Scripts

Php class which provide quasi relational database

Links for php scripts

Moderators: macek, egami, gesf

Php class which provide quasi relational database

Postby DrNemo@ » Wed Aug 13, 2003 1:00 am

I'm proud to announce release of new version of NemoDB.
NemoDB is the Php calss which provide simple, quasi relational database, fast and easy to use.
Features:
- table definition: columns has size and opt. default value;
- automatic data compression and decompression for columns;
- simple, concurrent table access;
- functions for select, update, insert, delete and drop operations with logical conditions for table data; select function has order clause; select accept * operator for all columns;
- sequences for primary key (can be default value for a column);
- value for a column can be any type (text, image etc.)
- disc space reservation for tables data;
- stored functions and procedures for data manipulation.
DrNemo@
New php-forum User
New php-forum User
 
Posts: 4
Joined: Tue Aug 12, 2003 11:59 pm

:)

Postby DrNemo@ » Wed Aug 13, 2003 1:11 am

Sorry -here is the missed link:
http://sourceforge.net/projects/nemodb/

Enjoy :D
DrNemo@
New php-forum User
New php-forum User
 
Posts: 4
Joined: Tue Aug 12, 2003 11:59 pm

Postby swirlee » Wed Aug 13, 2003 7:11 am

This probably constitues spam, so I doubt DrNemo is ever coming back, except maybe to spam again, but I have plenty of questions about this product:
  1. What do you mean by "quasi"-relational?*
  2. How is the data stored? Flat file? XML? Something else? Where is the metadata stored?
  3. How fast is it?
  4. How much does it conform to the ANSI SQL standard?
  5. Does it do joins? Views? What are some of the built-in functions?
  6. What about permissions? Does it have GRANT and REVOKE?
  7. What about importing data, a la LOAD DATA INFILE?
  8. Why should I use this instead of SQLite?
* I already know part of this answer: Because in the relational model, a column is supposed to have only one data type. For the same reason, SQLite could be called "quasi-relational".

I'm sure I'll think of more, but this should get you started. If you can answer each of these questions, especially the last one, I might take the time to download your product.
User avatar
swirlee
Moderator
Moderator
 
Posts: 2272
Joined: Sat Jul 05, 2003 1:18 pm
Location: A bunk in the back

Postby DrNemo@ » Thu Aug 14, 2003 1:34 am

Well its not a spam but only announce of new product released under LGPL ;) with hope to be usefull for somebody.

1. "Quasi" I mean NemoDB provide subset of relational standards. It's very simple database but it provide enough features to help store data in personal DB used for dynamise web content.
2. Data is stored in binary files. It provide possibility to store compressed data, images, sounds etc.
3. In my tests queries fetched 20-30 rows with sort was done in 0/1 seconds. Naturally it always depends form hardware and count of current tasks etc.
4. NemoDB don't need SQL -quite enough are functions like Select, Drop etc.
5. No. Well PhP provide enough functions.
6. Permissions are required for DML operations. For web solutions it's enough i think.
7. NemoDB is open to inprove -maybe in the future I or somebody wirtes it.
8. SQLite is wrote in C - NemoDB in PhP -it's the main feature to use it in web development.
(Sorry for my poor english)
DrNemo@
New php-forum User
New php-forum User
 
Posts: 4
Joined: Tue Aug 12, 2003 11:59 pm

Postby swirlee » Thu Aug 14, 2003 7:52 am

DrNemo, thanks for coming back and answering my questions. In return, I've taken the time to download your package and take a look at the documentation. While some of it's a little obtuse (I didn't understand the stored procedures explanation at all), it looks like your product, at the very least, is interesting. I haven't had time to actually try it out, but overall, the examples in the documentation are helpful in getting a 'feel' for it. I like the object-oriented manner in which you've implemented SELECT, INSERT, etc. I might try it out later today and see how it performs, if at all, when given a few thousand rows. In response to a few more specific issues:

3. In my tests queries fetched 20-30 rows with sort was done in 0/1 seconds. Naturally it always depends form hardware and count of current tasks etc.


But how does it perform when given a thousand rows? Or ten thousand? Does it hold up under stress? And how does it cope with several concurrent connections? What happens when two users try to manipulate the same database simultaneously?

8. SQLite is wrote in C - NemoDB in PhP -it's the main feature to use it in web development.


But SQLite's main feature is also that it's meant for use in web development. And SQLite is going to be bundled by default in all subsequent versions of PHP (for the forseeable future, at least), so 90% of users will have it. What advantage does your package present over SQLite, other than that it's available "now" rather than "soon"? (Note: SQLite is available now, but requires a recompile for most users, and many users are not able to do this.)

Lastly, I took a peek at your code, and while it's refreshingly clean, it appears to completely lack inline comments. Without inline comments, it's going to be near-impossible for other developers to expand up, if that is your intention. Also, you appear to capitalize the first letter of every function, which is nonstandard usage. It works (PHP is case-insensitive), but it's not recommended -- if you read the PHP documentation, you'll notice that not a single function name is capitalized.
User avatar
swirlee
Moderator
Moderator
 
Posts: 2272
Joined: Sat Jul 05, 2003 1:18 pm
Location: A bunk in the back

Postby DrNemo@ » Thu Aug 21, 2003 5:43 am

Swirlee, thanks for Your time and good questions.

While some of it's a little obtuse (I didn't understand the stored procedures explanation at all), it looks like your product, at the very least, is interesting.


At all stored function/procedure is a PhP code which use NemoDB API functions like Select, Update or internal functions of class NemoDB. Then You can run it "inside" database using function fRun and get result. In next release I'll write better documentation.


But how does it perform when given a thousand rows? Or ten thousand? Does it hold up under stress? And how does it cope with several concurrent connections? What happens when two users try to manipulate the same database simultaneously?


NemoDB is a very simple "database" engine. My intention is to provide solution for small www content management like guest books, news etc.
It's very importent question: concurrent access for read and write data. NemoDB uses PhP fLock function to control access rights. Of course NemoDB do this more smart (several retries with diffrent wait time).


What advantage does your package present over SQLite, other than that it's available "now" rather than "soon"?


Well NemoDB is written using PhP and this is the main feature. To use it is enough to add in scripts Reqire_Once and thats all.
DrNemo@
New php-forum User
New php-forum User
 
Posts: 4
Joined: Tue Aug 12, 2003 11:59 pm


Return to PHP Scripts

Who is online

Users browsing this forum: Yahoo [Bot] and 1 guest

Sponsored by Sitebuilder Web hosting and Traduzioni Italiano Rumeno and antispam for cPanel.

cron