BearDB w.t.f.

BearDB W.T.F.

  • Why make another relational database?

    First, BearDB is not just another relational database. We wanted to create a database that would still be fast, durable and trustworthy like a relational database, but would also have features which would be required by moderm systems and applications. So we have an excellent database engine, but have added many feautures which are necessary with current technologies.
    The second reason are the monoliths in the database software oilgarghy. The reason the technology in BearDB was created was to stick it to the rest of the database systems which cost so much to acquire and run.
    Nothing makes us happier than when our customers tell us they didn't buy something and used BearDB.
    The database engine allows our users to put BearDB on everything from an Andriod phone all the way up to a cluster of VM's hosted in a cloud. The ability to scale from small to medium with no user intervention makes BearDB less work for everyone.
    BearDB has a data replication process which can be used for scalability, clustering, and even to control access to the database server. There are a lot of things you can do with that one technology, and we have many new replication features coming soon.
    BearDB supports REST requests direct to the database server, and this means you do not need REST service middleware between your applications and your data store - you can just go direct and get the best performance possible.
    BearDB can handle non-relational data through its REST service, and is designed to have many REST clients sending JSon into the server at the same time.
    BearDB does not use the classic cursor as a return type from queries, and that allows BearDB to run much faster and return all the data you want in the least amount of time.
    As far as inserting data, BearDB allows reading SQL from the command-line as a way to Bulk Load data. We are adding other bulk-load facilities in the next release so you have options about how you want to rapidly load data.
    Lastly, BearDB has this amazing client/server protocol which can be implemented in just about any programming language. The protocol allows seamless use of any BearDB client with any BearDB server, and works across platforms.

  • Is BearDB a NOSQL database?

    No. BearDB is a hybrid relational database which can handle SQL and JSon. It is possible to query or insert data with JSon and never use SQL, but BearDB is not a NOSQL database in the classic sense.
    Coming in Q3 we will release BigBear, which is a NOSQL database with all the common features to allow massive scalability. BigBear will actually support SQL if you need it, but it is otherwise a classic NOSQL database.

  • About the BearDB Source Code

    BearDB can be built from C# or Java programming languages.
    The code in each programming language is intentionally designed to be identical.
    A line of code in C# should be in the same class file and look identical to the same line of code in Java.
    This was done for many reasons, but the primary requirement was that this design allows for easier feature development and bug fixes.
    What is done to one codebase is done to the other code base. Fix a bug, and there will be the same bug fix in the same place in the other programming language.
    Another thing to notice is that class objects are kept to a minimum. This makes the source code appear to be too tighly coupled for some.
    An advantage of this approach is related to performance. Reducing object counts and making code perform well is actually part of BearDB's primary directive. BearDB is a purpose-specific application. To make a high-performance application you need to make code optimizations which won't make code bigots very happy. For example, we decided to stop using an interface when you have only one implemented class and no chance of that changing in the future.
    We here at the .org don't really care what people think about the source code. We all have to work on it, work with both programming languages, and keep BearDB running as fast as possible.

  • Does BearDB have any performance testing?

    Yes and no on performance testing. We do extensive testing on each release to ensure performance only goes up, and we even make a point in each release to profile the app and improve performace.
    What we have not done is to pay a 3rd party to run a set of benchmarks. And while that may seem suspect, there are many reasons not to have benchmarks.
    What we find is that benchmarks are testing generalized things which are 'expected of all database systems'.
    To do that type of testing you are not comparing the performance of a database, you are comparing the performance of the tests. Each database system has things where it shines, and other things where it does not.
    For example, Microsoft will tell you it does fast queries. For some configurations this is true, but for most configurations it is trivial to get SQLServer queries to perform very poorly without a lot of tuning. Do you think a benchmark test should require a bunch of domain-specific tuning to get a good result? If that was the case, then there would be different benchmarks for each different database being tested and the results would not tell you much about which is the best.
    Lastly, we need to call out the companies which perform performance testing on database systems.
    The big 4 that only do benchmarking on software are very expensive, and you will NEVER get results which are worth the money and time you have to sink into such an operation. The vendors are also very predatory, and will contact you to offer 'efficiences' in your testing if you just pay some additional fees. That amounts to a toll you have to pay if you want the test results to look good.
    Fuck the performance testing companies. When they have a truly level testing environment which costs much less than $1000 then we may reconsider.

  • Why is it named BearDB and why is it a .org?

    Just as BearDB is an open-source project, BearDB was created from another open-source project.
    The team at Bear Data Software was created by Yona, the project admin of a prior open-source project, and a few of the Adults who contributed to the project. And we also have Pete, who is just our secret weapon.
    Yona believes in Medicine. Not pills-like medicine, but the understanding of 'The Medicine' as taught to him by his Grandmother, a real Cherokee.
    Anytime we discussed the branding for the database system, bears would be mentioned. Over time, the team started to see the bear monniker worked well on many levels so the name was adopted for our project.
    We created the .org because we want to wring out all the potential of the technology and to add features which compliment existing technologies. With a team approach we can prioritize features better, and get out more releases per year.

  • How much personal data is collected?

    This is the most important feature of BearDB which everyone needs to know about:

    • We will never allow our software to send any data anywhere.
    • BearDB does not require an internet connection. A connection may be required to use clustering, replication, or failover.
    • We capture nothing in the database engine other than the data YOU put in there, and there is no way to view or log the data other than issuing SQL queries.
    • Your activities cannot be logged. We don't even allow logging queries as the data would pose a huge security risk.

  • Does BearDB have automatic updates?

    We will never auto-update your system and you will never be requried to update to any version for any reason.
    If you want to update, we will put out an installer or new binaries to allow you to update in less than a minute.

  • Is BearDB licensed, or is there a fee for anything?

    Open-source license only. Completely free to use, and there are no limited features. Support is always free and we will work very hard to get your issue resolved.

  • How in the hell do you make money?

    We do not. We love the technology and love giving away the results of our work.
    Our goal is that BearDB or BigBear will cause a user not to pay for some other database system.

  • Can I contribute to BearDB?

    We need help with everything. If there is something you want to help us with, we would be happy to get you setup.
    We prefer that volunteers work on something they are proficient with. We don't want anyone getting frustrated and giving up after only a few days.
    We promise not to dump a ton of work on volunteers with unrealistic delivery dates, but we are dependent on volunteers completing the task(s) they are assigned.

  • BearDB is on SourceForge.

    Yes it is.
    SourceForge link
    The prior project on which BearDB is based was also on SourceForge.
    Yona is not a fan of GitHub due to a recent Microsoft infection.
    Yona is also not happy with Git due to data loss with merges in Git Command-Line.
    SourceForge allows us to stay away from Microsoft properties and not use Git.

  • Where can I go to find out how to do things with BearDB?

    The best place to get info is in the beardocs. Our documentation spells out everything you can do with BearDB and the BearDB clients.
    If that does not work for you, then please send your question to us at and we will answer it asap.
    We also have a discussion section where you can get help and read about other questions by the users.