The content provider is the one who decides what codec they will use for their content. If your browser doesn't support some codec, your browser is crap.
I'm not ignoring what china government is doing, but they are free to do what their people let them do. We cannot judge them because our government and people do exactly the same things they do (censorship, killing innocent people, etc).
IF our countries didnt do these things, THEN we could say to china how they are wrong and how they could be better doing like us. We are all still the same.
I guess I'll just sit back, smile, and learn the next time the cultural revolution [wikipedia.org] or the Tiananmen Square [wikipedia.org] massacre roll by on my TV screen.
Sadly, the USA and many other countries around the world kill people and commit crimes against humanity every single day too.
The USA trying to force other countries to think like them is as inflexible as china government. Instead, you should learn with a civilization thousands of years older than the US.
Because they are working hard for people in the developed world. You know, someone has to do the dirty jobs you no longer want to do.
Or they are being explored in every possible way by rich people. Who knows?
It's a perfectly valid reason to use stored procedures.
Your DBMS can and will be vulnerable to unwanted access too, if not more than the app itself (I know many big companies which allow "everyone" to have direct access to production databases). Any auditing you can do at the database level can be done at the app level. Database security is not an advantage over app level security.
Sure, it depends on the app, but 'create a new order' or 'add a new user' are potentially complicated operations and there are a lot of situations where it makes a lot of sense to keep the complexity in one place.
This place surely isnt the database which must contain only data. The objectives of "new order" and "add user" are the same but the ways you get there can vary wildly.
Stored procedures don't have to be written in SQL either. I think Oracle supports Java stored procs, and MSSQL supports external DLL's.
I'm not going to tie my app to some DBMS. I want to develop and test quickly with in-memory databases like HSQLDB for example.
Creating a separate 'Business Logic' layer in the language of your choosing with a published API between the database and the presentation layer also solves this problem (and most other problems) to some extent.
Yes, that's why the database must store only data. Application logic is much more flexible handling security, testing, reusing, versioning of API and assets, coupling between applications, etc.
making generalizations like you did with your "No, the logic belongs to the app. The database is there to store data" comment is just going to get you into trouble.
A few situations when procs could be used are performance targets that the application must meet, but the developer should choose to use procs, it's not something a DBA can demand and even then the logic itself is in the app, the proc is like an optimization.
it's never hard to extract the username and password
You cant use security as argument, if you assume the app is so vulnerable, why not assume the DBMS is as vulnerable?
code reuse
Code reuse is a thing to be left to developers to decide what is to be reused and what is not, you have to design specifically for it and SQL is not as helpful as an object-oriented imperative language when doing it.
And different environments require different logic, your mobile app will not have the same data requirements as your enterprise app.
control
You can have control without procs, simply take a look at all SQL commands the app will execute. It's not like the app will execute ANY combination of commands.
performance
Use of procs only is a performance issue actually, you cant execute batch inserts for instance. In MSSQL, we had to generate XML that had to be parsed in our procs so we could send X records per round-trip, much slower than simple batch inserts.
users will construct horrible queries
Just take a look at all commands an app will execute and tell your users what needs to be corrected.
Tell your people to hire real programmers (because real programmers know TSQL and set theory just as well as you do) and stay the hell away from my business logic, thanks. Worry about replication, administration, and index tuning like you're supposed to. (The "A" in DBA, ya know...)
In the rare case that I can't figure out how to make a specific query fly - I'll ask for your help - but rest assured that the code stays in my control.
+1
Why DBAs posts are Insightful and this one isnt?
DBAs should not try to develop our apps. Leave it to the professionals.
Here in Brazil every major bank have this kind of device. I dont need to worry about losing my password because the thief will not have my device which is always with me. I'm actually surprised this tech is still to be deployed in US.
Link (in portuguese): http://www.itau.com.br/itoken/index.htm
It's impossible to stop piracy. Why are you still trying? Do you think the third world will pay double, triple or quadruple to play WoW or anything? If it's not fair, then people will find a way to make it fair like it or not.
You dont need to program in C++ to get increased performance (plus childish bugs like buffer overflows and memory corruption). Complex apps and other types of programs can be faster than what you think.
And what makes you think women wants to know what men like? They compete between themselves to see which one is the most beautiful, they dont need to make any efforts to appeal to men.
The content provider is the one who decides what codec they will use for their content. If your browser doesn't support some codec, your browser is crap.
I'm not ignoring what china government is doing, but they are free to do what their people let them do. We cannot judge them because our government and people do exactly the same things they do (censorship, killing innocent people, etc). IF our countries didnt do these things, THEN we could say to china how they are wrong and how they could be better doing like us. We are all still the same.
USA citizens are in no position to judge China.
No one is.
I guess I'll just sit back, smile, and learn the next time the cultural revolution [wikipedia.org] or the Tiananmen Square [wikipedia.org] massacre roll by on my TV screen.
Sadly, the USA and many other countries around the world kill people and commit crimes against humanity every single day too.
The USA trying to force other countries to think like them is as inflexible as china government. Instead, you should learn with a civilization thousands of years older than the US.
Because they are working hard for people in the developed world. You know, someone has to do the dirty jobs you no longer want to do. Or they are being explored in every possible way by rich people. Who knows?
It's a perfectly valid reason to use stored procedures.
Your DBMS can and will be vulnerable to unwanted access too, if not more than the app itself (I know many big companies which allow "everyone" to have direct access to production databases). Any auditing you can do at the database level can be done at the app level. Database security is not an advantage over app level security.
Sure, it depends on the app, but 'create a new order' or 'add a new user' are potentially complicated operations and there are a lot of situations where it makes a lot of sense to keep the complexity in one place.
This place surely isnt the database which must contain only data. The objectives of "new order" and "add user" are the same but the ways you get there can vary wildly.
Stored procedures don't have to be written in SQL either. I think Oracle supports Java stored procs, and MSSQL supports external DLL's.
I'm not going to tie my app to some DBMS. I want to develop and test quickly with in-memory databases like HSQLDB for example.
Creating a separate 'Business Logic' layer in the language of your choosing with a published API between the database and the presentation layer also solves this problem (and most other problems) to some extent.
Yes, that's why the database must store only data. Application logic is much more flexible handling security, testing, reusing, versioning of API and assets, coupling between applications, etc.
making generalizations like you did with your "No, the logic belongs to the app. The database is there to store data" comment is just going to get you into trouble.
A few situations when procs could be used are performance targets that the application must meet, but the developer should choose to use procs, it's not something a DBA can demand and even then the logic itself is in the app, the proc is like an optimization.
it's never hard to extract the username and password
You cant use security as argument, if you assume the app is so vulnerable, why not assume the DBMS is as vulnerable?
code reuse
Code reuse is a thing to be left to developers to decide what is to be reused and what is not, you have to design specifically for it and SQL is not as helpful as an object-oriented imperative language when doing it. And different environments require different logic, your mobile app will not have the same data requirements as your enterprise app.
control
You can have control without procs, simply take a look at all SQL commands the app will execute. It's not like the app will execute ANY combination of commands.
performance
Use of procs only is a performance issue actually, you cant execute batch inserts for instance. In MSSQL, we had to generate XML that had to be parsed in our procs so we could send X records per round-trip, much slower than simple batch inserts.
users will construct horrible queries
Just take a look at all commands an app will execute and tell your users what needs to be corrected.
Tell your people to hire real programmers (because real programmers know TSQL and set theory just as well as you do) and stay the hell away from my business logic, thanks. Worry about replication, administration, and index tuning like you're supposed to. (The "A" in DBA, ya know...)
In the rare case that I can't figure out how to make a specific query fly - I'll ask for your help - but rest assured that the code stays in my control.
+1 Why DBAs posts are Insightful and this one isnt? DBAs should not try to develop our apps. Leave it to the professionals.
No, the logic belongs to the app. The database is there to store data, how we are going to use it is app-dependent.
Here in Brazil every major bank have this kind of device. I dont need to worry about losing my password because the thief will not have my device which is always with me. I'm actually surprised this tech is still to be deployed in US. Link (in portuguese): http://www.itau.com.br/itoken/index.htm
It's impossible to stop piracy. Why are you still trying? Do you think the third world will pay double, triple or quadruple to play WoW or anything? If it's not fair, then people will find a way to make it fair like it or not.
Who said 4gb of memory would be enough for anyone?
You dont need to program in C++ to get increased performance (plus childish bugs like buffer overflows and memory corruption). Complex apps and other types of programs can be faster than what you think.
And what makes you think women wants to know what men like? They compete between themselves to see which one is the most beautiful, they dont need to make any efforts to appeal to men.