Many times I have heard programmers call, for instance, referential constraints "useless" (I know MySQL now has foreign key support), and think of them (and other integrity restrictions) just as a nuisance that they had to cope with.
These programmers think the DBMS has to accept any data they throw at it, in the way they throw at it
I was thinking on that when I said MySQL was easier for the programmer. Of course, you can say the same about PostgreSQL. Just don't use any integrity constraint.
The fact is that in many cases you don't have that option in MySQL (lack of features). On the other hand if you (DBA) have a DBMS which implements proper integrity constraints (PostgreSQL or other) it is unlikely that you choose not to use them.
So in the end, one of these programmers (not the good programmers, indeed) would feel that MySQL is "easier" because he won't have to code workarounds to recover from database "errors". MySQL would just happyly accept any SQL sentence provided it is syntactically correct, whereas other databases could refuse to execute the same sentence if it violates some constraint.
you can't have a DBMS which makes both happy: there are opposing roles.
Well, I don't think I'd agree with that, but if anything I'd say MySQL is the easier one to administer. Postgres needs a lot more thought with regards to tuning and user management.
When I said PostgreSQL was more friendly towards the database administrator I was talking about administering the data, not the DBMS (these are not quite the same)
There are tasks that are impossible to acomplish in MySQL because of the lack of features. For instance, How do you implement an audit trail within the DB in MySQL without triggers? Answer: you can't. You have to do it in your app (which can be easily bypassed) Now... I am willing to trade some point and click easy to administer interface or syntax any day if in return I have more control over which data enters the database.
But what counts at the end of the day is, that MySQL is far more user-friendly and people would have a hard time to migrate to Postgres
It depends on which user you are talking about.
A database system has many users. Among them, database administrators and programmers.
Programmers' goal is to hack applications as
easily and quickly as possible. Database administrators' goal is to make sure the database keeps its integrity (i.e. the data stored there is correct)
I would say that PostgreSQL is more friendly towards database administrators and Mysql is more friendly towards programmers. And, no, you can't have a DBMS which makes both happy: there are opposing roles.
IMO what counts at the end of the day (I mean, from a business point of view) is that the organization as a whole can trust its data, and not if a hacker wrote 50 or 100 fewer lines of code.
Of course, if you are talking about a situation in wich
the same person is the database administrator *and* the only programmer, well... I think MySQL is OK for your league.
Appearantly their SQL parser is still very flawed
and you cannot seriously store binary data with
it (BLOBs), unless you can live by the ugly
encoding you get your data back with. MySQL never
had such problems (it also allows binary data in
TEXT fields!),
Maybe it is because MySQL treats TEXT fields as binary since it has no Unicode support (at least, the current stable, non beta release).
But then again... a man's bug is another man's feature.
There are other DBs written in Java
, for example
Mckoi SQL .
Mckoi SQL is quite usable, supports a great
deal of the SQL 92 standard, and the performance is
not bad (of course, talking about the
range of database sizes for which
it makes sense using an embedded sql engine
Does anyone have experience with Couldscape.
How does it compare with Mckoi?
See
this
for a short (and practical) explanation. For an in depth answer use any of the books mentioned in the references. Any decent Database Theory book usually devotes an entire chapter to these higher Normal Forms.
> people pulled out the UML books in favor of a > decent First Normal Form DB design
In favor of a *decent* First Normal Form DB design?
First normal form is regarded as *very bad* design. You could take that design, transform it (normalize it) and get it up to the Fifth Normal Form. However, I guess you can call a Boyce-Codd Normal Form decent. (Boyce-Codd is between the 3rd and the 4th Normal Forms)
To use another analogy, it is like someone drinking Pepsi in a nice glass, and wanting to switch to drinking water because it is free, but not wanting to because the new glass may cost to much. Yes the one time cost may hurt a little bit, but the long term savings will more than make up for it.
How about...
You drink Pepsi directly from the can, so you don't need a glass. If you want to switch to water you'd need to buy a glass first, which may be expensive. But that doesn't really matters, because in the long run you recover what you spent on the glass since water is cheaper than Pepsi.
I can't speak of other countries, but here in Argentina, you can read things like this in the news:
* A rock artist is indicted for having said at the stage in a concert: "It's a beautiful night for smoking some pot" (The crime is "Apología del delito", that means "speaking in favor of committing a crime") * Members of a neo-nazi group were indicted for selling WWII (nazi) memorabilia (violating some antidiscrimination law)
Most people I know are against the "neo-nazis", and regard illegal drugs as a "bad thing". So they tend to favor the Estate's actions I mentioned. Interestingly, the same people are in favor of "freedom of speech", effectively turning it into "You can have all the freedom of speech you like, as long as your opinions don't diverge from the majorities' point of view".
> In an anarchist society, it is possible to be > organized
Exactly. Anarchy is often used as a synonym of "chaos". In the political sense, however, it means "absence of government". The anarchists believe, indeed, in an organized anarchist society in which little or no formal government would be needed, since it would be replaced by people's self government,
IMO, browser-based interfaces lack in the usability front. They are simply not rich enough.
They work fine on the web because they are a compromise: I give you a site with a rather dull interface , but you get to it without installing custom software AND ALSO you are presented with a familiar and simple user interface (click links, scroll pages, fill up form fields, submit info), so you can catch on quickly with my site, because it work quite similarly to other sites you have visited before (an important aspect that some flash-based and some overworked DHTML-based sites seem to overlook).
Of course, the software used internally in a business has both more demands and less limitations.
It has less limitations because you can install wathever software you want (you have tech support, and don't depend on the end user failing to install the latest plugin). You don't have severe bandwidth limitations. You can standarize on a single platform for your clients, and on a single screen resolution (or, if it is not single, at least can be a known and definite set). You don't need to engineer your application to be run in a restrictive security sandbox, so you can have full control of the devices attached to your computer. For instance, you can make the application print an invoice as part of a transaction, without explicit user intervention (no "print" dialog), automatically selecting certain parameters (paper size, margins, resolution), not allowing the user to mess with them. The application you build can also have a steeper learning curve, because you won't have casual users (potential customers that have to figure out how things work on their own, and that you'll loose if they get annoyed), but permanent users that are your employees and can be trained.
The user interface of business software has higher demands too. If you fill in an online purchase form twice a week, you can put up with a clumsy user interface. But if that is your job, and you process purchase orders from 9 to 5, you'll need something better than the average HTML form. For instance, when a customer tells their name over the phone, you type the first three letters and a list of those customers that meet the citeria is instantly displayed for an easier selection. Also, you might want your text to be spell checked as you type when fou fill a text area. If you have used both SQL-Ledger and GNU cash, or PhpMyAdmin and mysqlcc, or any web-mail and any mail program, or groups.google.com and any newsreader then you should know what I'm talking about: even the best engineered web application falls short to almost all rich GUI applications.
Of course, in the future web interfaces might evolve to become richer (XForms, for intance), but until then, selecting a web-based architecture for internal business use certainly can hurt productivity.
Having said all this, I must also point out that it depends on what you call "a Browser-based application". I have taken for granted that the original poster meant a HTML-based application as opposed to, say, an application consisting in a single page containing a java applet or ActiveX control.
One good way to minimize gerrymandering is to create compact districts. This is a requirement that districts be roughly uniform in shape (like a hexagon or circle).
If you, as a DBA, declare a column as NOT NULL is because you want to define an integrity rule. You are saying: "The programmer HAS to provide a value here, otherwise dont't accept the data". Integrity rules are the way you protect the data from the programer's mistakes.
If a column is declared as not accepting NULLS, and a default value is not provided, and the user trying to insert a tuple doesn't provide a value either, then the normal behavior for any decent database is to reject the tuple and not to perform the insertion, that is, a decent database protects the integrity of your data.
Looks somewhat interesting.
I would try it myself when/if someone writes a Thunderbird/Mozilla extension for it.
(Before you ask. No, it's not interesting enough for ME to write a thunderbird extension myself)
I agree with you in general.
What I meant was this:
Many times I have heard programmers call, for instance, referential constraints "useless" (I know MySQL now has foreign key support), and think of them (and other integrity restrictions) just as a nuisance that they had to cope with.
These programmers think the DBMS has to accept any data they throw at it, in the way they throw at it
I was thinking on that when I said MySQL was easier for the programmer. Of course, you can say the same about PostgreSQL. Just don't use any integrity constraint.
The fact is that in many cases you don't have that option in MySQL (lack of features). On the other hand if you (DBA) have a DBMS which implements proper integrity constraints (PostgreSQL or other) it is unlikely that you choose not to use them.
So in the end, one of these programmers (not the good programmers, indeed) would feel that MySQL is "easier" because he won't have to code workarounds to recover from database "errors". MySQL would just happyly accept any SQL sentence provided it is syntactically correct, whereas other databases could refuse to execute the same sentence if it violates some constraint.
When I said PostgreSQL was more friendly towards the database administrator I was talking about administering the data, not the DBMS (these are not quite the same)
There are tasks that are impossible to acomplish in MySQL because of the lack of features. For instance, How do you implement an audit trail within the DB in MySQL without triggers? Answer: you can't. You have to do it in your app (which can be easily bypassed) Now... I am willing to trade some point and click easy to administer interface or syntax any day if in return I have more control over which data enters the database.
It depends on which user you are talking about.
A database system has many users. Among them, database administrators and programmers. Programmers' goal is to hack applications as easily and quickly as possible. Database administrators' goal is to make sure the database keeps its integrity (i.e. the data stored there is correct)
I would say that PostgreSQL is more friendly towards database administrators and Mysql is more friendly towards programmers. And, no, you can't have a DBMS which makes both happy: there are opposing roles.
IMO what counts at the end of the day (I mean, from a business point of view) is that the organization as a whole can trust its data, and not if a hacker wrote 50 or 100 fewer lines of code.
Of course, if you are talking about a situation in wich the same person is the database administrator *and* the only programmer, well... I think MySQL is OK for your league.
Maybe it is because MySQL treats TEXT fields as binary since it has no Unicode support (at least, the current stable, non beta release).
But then again... a man's bug is another man's feature.
There are other DBs written in Java , for example Mckoi SQL .
Mckoi SQL is quite usable, supports a great deal of the SQL 92 standard, and the performance is not bad (of course, talking about the range of database sizes for which it makes sense using an embedded sql engine
Does anyone have experience with Couldscape. How does it compare with Mckoi?
Really? Does it run on different platforms (as Acrobat Reader, or other PDF viewers do)?
See this for a short (and practical) explanation. For an in depth answer use any of the books mentioned in the references. Any decent Database Theory book usually devotes an entire chapter to these higher Normal Forms.
> people pulled out the UML books in favor of a
> decent First Normal Form DB design
In favor of a *decent* First Normal Form DB design?
First normal form is regarded as *very bad* design. You could take that design, transform it (normalize it) and get it up to the Fifth Normal Form. However, I guess you can call a Boyce-Codd Normal Form decent. (Boyce-Codd is between the 3rd and the 4th Normal Forms)
He might have said it or not. We couldn't possibly know.
However, what we know for sure is that the operating system created under his command was designed with that premise in mind.
Which is worst?
I can't speak of other countries, but here in Argentina, you can read things like this in the news:
* A rock artist is indicted for having said at the stage in a concert: "It's a beautiful night for smoking some pot" (The crime is "Apología del delito", that means "speaking in favor of committing a crime")
* Members of a neo-nazi group were indicted for selling WWII (nazi) memorabilia (violating some antidiscrimination law)
Most people I know are against the "neo-nazis", and regard illegal drugs as a "bad thing". So they tend to favor the Estate's actions I mentioned. Interestingly, the same people are in favor of "freedom of speech", effectively turning it into "You can have all the freedom of speech you like, as long as your opinions don't diverge from the majorities' point of view".
And how about distributing it along with a real application that required the JDK, for instance Tomcat, or Eclipse? I think that wouldn't be a hack.
> In an anarchist society, it is possible to be
> organized
Exactly. Anarchy is often used as a synonym of "chaos". In the political sense, however, it means "absence of government". The anarchists believe, indeed, in an organized anarchist society in which little or no formal government would be needed, since it would be replaced by people's self government,
IMO, browser-based interfaces lack in the usability front. They are simply not rich enough.
They work fine on the web because they are a compromise: I give you a site with a rather dull interface , but you get to it without installing custom software AND ALSO you are presented with a familiar and simple user interface (click links, scroll pages, fill up form fields, submit info), so you can catch on quickly with my site, because it work quite similarly to other sites you have visited before (an important aspect that some flash-based and some overworked DHTML-based sites seem to overlook).
Of course, the software used internally in a business has both more demands and less limitations.
It has less limitations because you can install wathever software you want (you have tech support, and don't depend on the end user failing to install the latest plugin). You don't have severe bandwidth limitations. You can standarize on a single platform for your clients, and on a single screen resolution (or, if it is not single, at least can be a known and definite set). You don't need to engineer your application to be run in a restrictive security sandbox, so you can have full control of the devices attached to your computer. For instance, you can make the application print an invoice as part of a transaction, without explicit user intervention (no "print" dialog), automatically selecting certain parameters (paper size, margins, resolution), not allowing the user to mess with them. The application you build can also have a steeper learning curve, because you won't have casual users (potential customers that have to figure out how things work on their own, and that you'll loose if they get annoyed), but permanent users that are your employees and can be trained.
The user interface of business software has higher demands too. If you fill in an online purchase form twice a week, you can put up with a clumsy user interface. But if that is your job, and you process purchase orders from 9 to 5, you'll need something better than the average HTML form. For instance, when a customer tells their name over the phone, you type the first three letters and a list of those customers that meet the citeria is instantly displayed for an easier selection. Also, you might want your text to be spell checked as you type when fou fill a text area. If you have used both SQL-Ledger and GNU cash, or PhpMyAdmin and mysqlcc, or any web-mail and any mail program, or groups.google.com and any newsreader then you should know what I'm talking about: even the best engineered web application falls short to almost all rich GUI applications.
Of course, in the future web interfaces might evolve to become richer (XForms, for intance), but until then, selecting a web-based architecture for internal business use certainly can hurt productivity.
Having said all this, I must also point out that it depends on what you call "a Browser-based application". I have taken for granted that the original poster meant a HTML-based application as opposed to, say, an application consisting in a single page containing a java applet or ActiveX control.
the Japanese Pocket-Size PC Cube
For the rest of us, the acronym-impaired, SLR means "Single Lens Reflex".
http://en.wikipedia.org/wiki/SLR
Did you notice?
From the screenshots it appears that they have based this prototype on the Eclipse platform.
No. That doesn't make sense.
If you, as a DBA, declare a column as NOT NULL is because you want to define an integrity rule. You are saying: "The programmer HAS to provide a value here, otherwise dont't accept the data". Integrity rules are the way you protect the data from the programer's mistakes.
If a column is declared as not accepting NULLS, and a default value is not provided, and the user trying to insert a tuple doesn't provide a value either, then the normal behavior for any decent database is to reject the tuple and not to perform the insertion, that is, a decent database protects the integrity of your data.
Why suddenly a lot of people think Longhorn will be sooo great? Just because Microsoft says so?
Yeah. Just like open source products: the early versions mostly suck, but then you see big improvements as development continues.
The only difference is that Microsoft charge you big bucks for this.
Wow! I didn't know that!
y wA AAAAMAAwU lvONmOZtfzgFz5 yLWGsEbtLiOSpy cQZXZeYGejmJlv KOzrcd3iq9uis1 cf5VWzXyym7PH
And it works with Mozilla !
Try selecting this text (taken from the RFC) and pasting it on a browser window!
data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///
AAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvU
ByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP
a/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfn
ZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtw
F81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f
hhx4dbgYKAAA7
Does it work with IE too? (sorry, no Windows box at hand)
You called libertarianism, capitalism and comunism "false ideologies".
I'm curious. What would you call a "true ideology"?
Wasn't jini supposed to do this?