I need to write a web application, which works only with MySQL database, but all actual data lies within an Oracle. So now i'm looking for some way to syncronize partially or use some automated tools to do that. Or just for a best practice for that case. To be clear, there's no way to use Oracle directly from web applications due to security policies. Any advices?
You can use tungsten replicator http://code.google.com/p/tungsten-replicator/ or also there is option of Data Integration / ETL tools like talend https://www.talend.com/resource/etl.html.
Related
I have to develop a database that will be used for data acquisition, mainly measurements from micrometer which will be compared against a Reference Table inside the db. The platform is OS X. I have been looking at Valentina-DB, SQLite and even MySQL.
My main requirement is: The database will be used by factory workers which may not have a lot of experience in using software. Therefore, the front-end has to be extremely easy to use. This includes installation of the database and the front-end.
What are my options when it comes to custom GUI apps?
Most of databases have no GUI front-end to use "by factory workers for data acquisition" so you need to program it yourself.
One of the approaches would be to use Java Swing GUI and some Java-based database like Apache Derby maybe. You could put everything into runnable jars, talk to database exclusively directly (not network setup, no authentication) and Java is available on OS X form Oracle website. Seems relatively easy to setup and would also run under Windows if at the end desired. This is not the only possible approach but something that is likely to work.
There are many possible alternative approaches.
I'm considering an option to use Oracle Database as web services provider and implement web service logic via PL/SQL stored procedures. I used to code stored procedures some time ago, though I'm not sure what direction should I go in order to use most up to date solutions:
I would like to use amazon cloud for oracle solution. After creating oracle instance, what else should be done in order to use it for serving as web server. I didn't find Amazon Cloud for Oracle Application Server or Glassfish. Also, I need to use JSON but it's unclear does Oracle have such support out of the box. Currently, I found the only option to use Soap 1.1 with Oracle XML DB
Should there be two DB instances for security issues: one node serving as data source and the other one serving as web service provider.
Would appreciate for any ideas and info :)
You might want to review the Oracle Rest Data Services Developer Guide
Amazon provides Oracle access in their product "RDS", but I've never tried it. However, I doubt that you'd be able to use the Oracle web listener directly.
JSON support is not included in Oracle AFAIK, but it should be easy to implement on your own.
I want to transfer data between Mysql and SQL Server databases, but both are hosted online.
I tried to do this thing using odbc, but it did not work. What is the best solution for this task? ODBC/web services/some other method? Please help me to solve this problem.
You could take a look at the Microsoft Sync Framework, it's very flexible and can deal with different databases.
http://msdn.microsoft.com/en-us/sync/default
There are some database syncing tools already existed. One great tool I can recommend is the Navicat Premium. This tool supports different servers.
Create your own data sync app. It's not so hard to create.
Back in the MSSQL 2000 timeline, there was an IIS integration layer that allowed HTTP GET commands to make select statements, and there were other SqlXml niceties that worked (not that fast or well but they worked) out of the box. I gave a chance to expose database stuff fairly quickly.
What is the comparable technology for MSSQL 2008/2012? I saw slashDb (http://www.slashdb.com/) and it seems to do that, but I am trying to understand the other options out there. Just SQL Server crud and sproc access.
Thanks.
Yes, SlashDB does exactly that and more. Full disclosure: I am the founder and CEO.
Once SlashDB is installed you would use its web interface to connect it with your database. Depending which database login and database schema you use for that connection, you will have the tables and views from that schema turned into of URL endpoints.
Those URLs can be followed in the browser but they are also API endpoints in JSON, XML or CSV. It works for reading and writing (you can control that in user configuration).
In addition to that you can define a set of parameterized SQL queries. Each query is given a name and instantly becomes an API endpoint too.
In order to help you getting started easily SlashDB is available on AWS and Azure marketplaces, as a Docker container from DockerHub, pre-built virtual machines or as .rpm and .deb packages for installation directly on Linux.
For more technical info please visit: https://docs.slashdb.com
The nearest equivalent may be SOAP/HTTP endpoints, however Microsoft has deprecated them for various reasons and recommends WCF or ASP.NET instead. Although the simplest way to get a quick CRUD setup is probably to use a framework or ORM that generates it for you, like LINQ to SQL or whatever else suits your needs.
Can MySql database be used as a back-end of a desktop application. What are the various possible ways to do it?
I would say that it would be possible, with each desktop application client connecting to a centralized mysql database, at the client site, or possibly connecting to a centralized server managed by you/your company, and like #Neil Butterworth mentioned there are various APIs/methods to use to talk to the database. However, if you are looking to embed a database with your application, I would suggest looking at sqlite instead. It is a small,lightweight relational database designed for being embedded into applications.
To add to nstehr's answer, see:
SQLite vs MySQL
How scalable is Sqlite
How do databases work internally
Yes, I have done so on more than one occasion. Build your database in MySQL, either locally or on a remote machine, and then set up your connection to the database using the appropriate API.
There is a package for connecting to a .NET application (just search .NET MySQL library and it should turn up), with Java you can use Hibernate (or any other ORM Framework) and set the dialect to whichever version of MySQL you're using in the hibernate.config file. Or you could just use ODBC/JDBC directly. I'm sure other languages have their own support.
Any application, if built well, should be able to be supported by a variety of databases, and it should not affect the application. Switching between databases should involve changing a couple of property files at most, and then testing for database-specific idiosyncrasies.
Can MySql database be used as a
back-end of a desktop application
Yes, of course - just like any other database.
What are the various possible ways to
do it?
What do you mean? Do you mean how to access the database from the app? Lots of ways - some are:
via its native C API
via ODBC
via JDBC
Which one you use will of course depend greatly on which language(s) your desktop app is written in.