Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 38 reacties

Na de aankondiging op de OpenWorld-conferentie heeft Oracle zijn NoSQL Database uitgebracht. Volgens het softwarebedrijf is de NoSQL Database vooral geschikt voor bedrijven die grote hoeveelheden data moeten verwerken.

Oracle wil met zijn NoSQL Database naar eigen zeggen een product op de markt zetten dat geoptimaliseerd is voor het ongestructureerd opslaan van grote datavolumes. Als voorbeelden noemt Oracle onder andere het bewaren van logbestanden en het verwerken van datastromen afkomstig van e-commerce-sites en sociale netwerken. Door geen sql-architectuur op de datastructuur van deze database toe te passen, zouden de prestaties en de schaalbaarheid beter zijn.

NoSQL Database is gebaseerd op de Java-versie van Berkeley DB, een opensourcedatabase die vooral in embedded systemen wordt gebruikt. Het systeem kan via een webinterface aangestuurd worden. Volgens Oracle werkt de nieuwe database prima samen met zijn overige databaseproducten.

Het nieuwe databasesysteem van Oracle is ook beschikbaar in een gratis community-variant. Bij de commerciële versie levert Oracle ondersteuning, terwijl het softwarebedrijf ook belooft dat het op termijn extra functionaliteit aan NoSQL Database zal toevoegen.

Moderatie-faq Wijzig weergave

Reacties (38)

Nog geen half jaar geleden heeft Oracle zelf een whitepaper van zo'n 15 pagina's uitgebracht getiteld: "Debunking the NoSQL Hype." Hierin werden nosql databases aan alle kanten afgekraakt. Quote van de laatste regel uit dat document:

"Go for the tried and true path. Don't be risking your data on NoSQL databases."

Hoe ironisch dat ze nu zelf met een NoSQL oplossing komen. En ook "toevallig" dat de toenmalige downloadlink niet meer werkt...
"Go for the tried and true path. Don't be risking your data on NoSQL databases."
Op zich staat die statement nog wel. Een NoSQL database is niet zo veilig en betrouwbare als bijvoorbeeld een ander soort database, met allerlij veiligheidsmechanismen in place om betrouwbaarheid te garanderen. Echter, die databases zijn weer niet geschikt om het specifieke type werk af te handelen waar een NoSQL database juist weer wel een expert in is.
Dat is maar net wat je onder betrouwbaarheid verstaat. Vele serieuze NoSQL oplossingen bieden ingebouwde replicatie, failover, geografische scheiding van datam zelfs instelbare betrouwbaarheid en meer van dit soort fratsen. Als het om betrouwbare data opslag gaat, zit dat wel goed.

Wel zijn er wat andere pijnpunten, mat name op het gebied van backups bieden de meesten bar weinig goede tools. Ook is consistentie nog wel eens een probleem, al hebben ze daar allemaal wel redelijk goede oplossingen voor.
spuit11

Link naar de betreffende whitepaper:
https://docs.google.com/v...xP4yC4bqqMaLHSMBBNg&pli=1
However, compared to relational databases, their feature set is primitive. The database
deployments typically aren't very large in terms of data or challenging in terms of
performance. Their number of deployments is relatively small. Their application
development model is challenging, adding to the complexity of the implementation. Their
high availability and SLAs need evaluation.

[Reactie gewijzigd door afraca op 25 oktober 2011 22:06]

SQL vs. NoSQL is een hot topic dezer dagen. Er wordt vooral veel modder gegooid vanuit beide kampen, in plaats van te kijken wanneer wat het beste werkt. Feit is dat NoSQL voor sommige toepassingen met minder inspanning sneller is dan een traditionele SQL-oplossing, feit is ook dat NoSQL niet alles vervangt of kan vervangen dat op SQL gebaseerd is. Had het niet "NoSQL" geheten dan hadden de technieken makkelijk broederlijk naast elkaar kunnen bestaan, en had Oracle het niet nodig gevonden een FUD-paper te schrijven over NoSQL (om later toch zelf met een produkt te komen).

Dennis Forbes heeft een mooie post waarin hij specifiek de kritiek op SQL vanuit het NoSQL-kamp aankaart, overigens zonder daarbij NoSQL af te schrijven. Bevat veel links naar achtergrondmateriaal.
NoSQL heeft een heel andere mind-set nodig als ik het een beetje begrijp. Zo lijkt mij niet het uitgangspunt van NoSQL om compleet te zijn. Hiermee wil ik zeggen dat je NoSQL niet zult gebruiken om je orders bij te houden omdat je deze allemaal wilt kunnen bijhouden. NoSQL lijkt me wel een goeie tool om data te bekijken zoals internet posts (forum, blog, etc.) of andere user generated content.

Het feit dat Oracle nog niet eerder een oplossing voor NoSQL heeft geboden getuigd wel dat Oracle misschien achterloopt als het gaat om zien welke oplossing benodigd zijn binnen de huidige business environments.
geoptimaliseerd voor het ongestructureerd opslaan van grote datavolumes. Als voorbeelden noemt Oracle onder andere het bewaren van logbestanden en het verwerken van datastromen afkomstig van e-commerce-sites en sociale netwerken.
Waarin verschilt dat van een filesysteem?
Filesysteem hebben meestal een vaste boomstructuur, waardoor zoeken vaak lastig wordt, omdat je gebonden bent aan die boom.

"Document stores" (weet niet of er een betere algemene naam is?) zorgen er vaak voor dat je op basis van verschillende ingangen documenten kunt zoeken, en dat je ook gegevens kunt samenvoegen.
Het grote voordeel van zulke systemen zijn dat je niet gebonden bent aan de structuur van het onderliggend filesysteem. Aangezien NoSQL databases geen stricte schema's hebben, kan je gemakkelijk extra data toevoegen. Je hoeft je bijgevolg ook niet te houden aan de klassieke folder-structuur. Zo kan je bijvoorbeeld gemakkelijk tags toevoegen aan een document, een workflow-status bijhouden indien dit nodig is, en extra meta-data toevoegen die afhankelijk is van een document. Vb: voor een excel-bestand met verkoopcijfers ga je andere meta-data moeten bijhouden, dan voor een excel-bestand met verlofinformatie.
Nog nooit van gehoord, hoe doet deze (trouwens heel rare generieke naam voor de database..) NoSQL database het tegenover de huidige meest populaire nosql database MongoDB?

Ik vind het apart dat het gebaseerd is op Java, dat kan de snelheid van de database niet goed doen (JVM). Plus voor portability natuurlijk.

[Reactie gewijzigd door shadylog op 25 oktober 2011 12:48]

Ik vind het apart dat het gebaseerd is op Java, dat kan de snelheid van de database niet goed doen (JVM).
Het idee dat Java langzaam is omdat het op een JVM draait is al jaren achterhaald. Java bytecode wordt door de Java virtual machine just-in-time omgezet in native machine code.

Oracle's HotSpot JVM bevat zeer veel geavanceerde optimalisaties, waardoor software geschreven in Java net zo snel kan draaien als software geschreven in een taal die direkt wordt gecompileerd naar native machine code. Sterker nog, de JIT kan zelfs beter geoptimaliseerde code genereren dan een ahead-of-time compiler door gebruik te maken van informatie die tijdens runtime is verzameld over het gedrag van het draaiende programma.
Dat van die snelheid valt waarschijnlijk wel mee. Zo te zien is het gebaseerd op Hadoop, wat de reputatie heeft erg goed te schalen, en daarmee heel snel te zijn. Op een enkele machine zul je met handgeschreven C/C++ code misschien nog sneller zijn, maar als je het over meerdere machines wilt distribueren wordt dat te lastig. Dan is die kleine overhead van Java niet meer zo'n probleem. Ook is Java niet meer zo traag als de meeste mensen denken.
Kijk eens naar deze presentatie van David J. DeWitt .

Kort gezegd komt het op het volgende neer:

Relationele database:
Gestructureerde data met een bekende indeling
ACID
Transacties
SQL
ETL

NoSQL
(On/semi)gestructureerde data zonder indeling
Niet ACID
Niet transactioneel
Geen ETL

Zie ook slide 12 uit de presentatie.
NoSQL kende ik ook niet, tot "toevallig" deze week in het nieuws was dat ook Apache een versie heeft uitgebracht.

Vaker tweakers bezoeken?

[Reactie gewijzigd door tes_shavon op 25 oktober 2011 12:47]

NoSQL is ook geen product, het is een verzamelnaam voor databases die over het algemeen geen gebruik maken van de SQL taal ("SELECT username FROM accounts") en die vooral heel anders gestructureerd zijn. Over het algemeen slaan ze (gestructureerde) documenten op in tegenstelling tot de SQL databases waar alles in tabellen staat die aan elkaar geknoopt worden. Hierdoor hebben NoSQL heel andere eigenschappen op het gebied van performance en schaalbaarheid.

Bekende voorbeelden zijn b.v. CouchDB en Dynamo (van idd Apache), MongoDB, Redis, Hadoop en ook Memcache.

Maar aardig om te zien dat Oracle hier ook (eindelijk?) het licht begint te zien. Wel jammer dat ze dan voor een relatief beperkt systeem als BerkeleyDB kiezen.
Oracle noemt hun product toch echt Oracle NoSQL Database.
Wat volgens de tekst toch echt op BerkeleyDB gebaseerd is:
NoSQL Database is gebaseerd op de Java-versie van Berkeley DB, een opensourcedatabase die vooral in embedded systemen wordt gebruikt.
Je moet het dan ook in dat licht zien. Dat ze het er op baseren wil echter nog niet zeggen dat NoSQL Database ook zo beperkt is, die functionaliteit kan best uitgebreid zijn.
Laten we Cassandra niet vergeten wat oa door Facebook gebruikt wordt.
De naam 'NoSQL' is juist heel erg toepasselijk omdat de applicatie dus juist GEEN SQL architectuur op zijn database toe te passen (letterlijk uit de text).
Als beschrijving voor het type database is het prima maar niet als productnaam.
Daar klaag je toch ook niet over bij alle produkten die SQL in de naam opnemen zoals Microsoft SQL, Oracle SQL, PostGre SQL, MySQL, noem ze maar op? Het duidt op het feit dat de database op 'Structured Query Language' is gebaseerd, dat is het enige wat het betekent namelijk en om dat in de naam op te nemen is zeer gebruikelijk.

Nu is er een tegenhanger (bestaat al veel langer namelijk, alleen nu komt het even in het nieuws) en noemt het NoSQL, en het is ineens een probleem? Klaag dan ook over die 100+ andere implementaties die allemaal net even anders zijn en SQL in de naam hebben staan ...
NoSQL kan ook staan voor "Not only SQL", het is dus mogelijk dat er wel delen van de SQL terug komen in de database.
http://en.wikipedia.org/wiki/NoSQL

[Reactie gewijzigd door Jegorex op 25 oktober 2011 16:28]

Een deel van SQL maakt geen SQL. SQL is een programmeertaal om relationele database management systemen te beheren. Als je daar iets uithaalt is het geen SQL meer, het gaat om het totaal pakket en niet om een onderdeeltje er van.

Maw, NoSQL met een paar dingetjes van SQL wat ze dan toepasselijk Not-Only SQL noemen is gewoon nog steeds NO SQL want het is niet compleet.

Wat mij betreft gewoon een verzinsel om zich te onderscheiden, niet meer niet minder.

[Reactie gewijzigd door InflatableMouse op 25 oktober 2011 16:43]

Java doen ze volgens mij wegens het feit dat Oracle zelf servers verkoopt met java er op, en zo kunnen ze aangeven dat er zoiets ook voor java is.

Ze willen allebei verkopen dus dan is java niet zo'n gek idee van Oracle, maar ja of dit nu voor iedereen weggelegd is dat is dan weer een andere vraag.
Dat hele "Java is traag" verhaal is al tig jaar outdated. Mensen die dat roepen zijn gewoon niet op de hoogte. Daarnaast is het voor een database de 'taal' waarin het geimplementeerd is niet de limiterende factor.
Interessante mening, maar onderbouw hem dan ook fatsoenlijk. Ben wel benieuwd. :)
Dat doe ik toch? Ik kan m'n bericht nog wel een keer typen maar ik geloof dat ik het toch duidelijk uitleg.

Uiteraard moeten java fans het naar beneden modden maar dat zijn we ondertussen gewend van de modjes, totaal niet objectief.

Maar oke, linkje voor de kleingelovigen:
http://blogs.forrester.co...nterprise_app_development

[Reactie gewijzigd door InflatableMouse op 25 oktober 2011 20:11]

Java is niet traag. De JVM kan wel veel geheugen gebruiken. Dat wel. Overigens is er als ik me goed herinner er een client VM en een server VM. Onder Linux is de server VM standaard, onder Windows is de client VM standaard meen ik. De client VM start wat sneller op en heeft minder geheugen nodig, maar de server VM biedt meer performance. Server VM starten kan met java -server.

Je kan eenvoudig duidelijke UI's maken, bijv. met SWT, java-gnome of zelfs met Swing (Moet je wel met 1 regeltje ervoor zorgen dat de native theme gebruikt wordt, anders krijg je zo'n lelijke blauwe theme) (Voor Swing gebruikte ik altijd MigLayout, dat hielp enorm -- zie http://miglayout.com) Wel heeft veel Java software er een handje van om 10.000-en abstractie lagen en lekker veel XML toe te passen :X

[Reactie gewijzigd door onox op 25 oktober 2011 21:43]

Schrikbarend dat veel mensen nog nooit van een NoSQL-based database hebben gehoord. Neem eens een kijkje naar MongoDB bijvoorbeeld. Hierin wordt alles als JSON (eigenlijk BSON) opgeslagen en het werkt schemaloos. Elke "row" mag kan dus andere "columns" hebben dan de rest in zijn "table".

Voor in PHP-projecten is het zeer interresant om bijvoorbeeld logs bij de houden maar naar mijn ervaring ook prima voor contactgegevens, facturatiegegevens etc. Daarnaast is het naar mijn gevoel sneller dan bijvoorbeeld MySQL en ook zeer geschikt voor data clustering aangezien "primary keys" uniek zijn als een "hash" en geen oplopend nummer.

Ik zou zeggen, developers, kijk er naar! Facebook gebruikt het naar horen zeggen ook voor veel delen van haar website.
Ik zou zeggen, developers, kijk er naar!
Helemaal mee eens!

Veel te vaak kiest men voor een relationele (SQL) database omdat dat de standaardkeuze is: "er moet data worden opgeslagen dus nemen we een relationele database", zonder erover na te denken waarom eigenlijk.

Vooral als je applicatie schaalbaar moet zijn naar vele servers is een NoSQL-oplossing wellicht veel beter dan een relationele database. Het idee van NoSQL is dat zaken zoals joins en ACID achterwege worden gelaten, want dat zijn juist de zaken die ervoor zorgen dat relationele databases niet schaalbaar zijn (doe eens een query met een join over een cluster van DB servers... dat is een heel zware operatie als er data die op verschillende servers staat aan elkaar gekoppeld moet worden).

Natuurlijk is NoSQL niet voor alle soorten applicaties geschikt, maar ontwikkelaars zouden wel verder moeten kijken dan hun neus lang is en zonder na te denken altijd voor een relationele database kiezen.

Ik heb pas geleden eens met MongoDB zitten spelen, het is supersimpel in gebruik.
En NoSQL databanken zijn ook al veel ouder dan de meeste mensen denken :)

Zelf werk ik al jarenlang met een noSQL databank, nl Lotus Domino. Waarschijnlijk kennen de meeste mensen hier enkel de client versie, nl: Lotus Notes :P

Veel van de concepten in CouchDB zijn bijvoorbeeld geinspireerd op Lotus Domino.

En Lotus Notes/Domino is op zijn beurt weer geinspireerd op het PLATO systeem, dat op mainframes draaide.
Door geen sql-architectuur op de datastructuur van deze database toe te passen, zouden de prestaties en de schaalbaarheid beter zijn.
Om data de database in te pompen ja, maar gaat de leessnelheid niet enorm naar beneden? Krijg je ooit nog data uit een query?
Ik ken de onderliggende technieken niet goed, maar NoSQL is nu juist geschikt om de leessnelheid van gigantisch grote hoeveelheden data enorm te verhogen.
Klopt. Aangezien deze databases niet relationeel zijn, kunnen er vrij eenvoudige indexen worden opgebouwd, die vrij snel te doorzoeken zijn.
Als er nauwelijks complexe queries worden gedaan, dan is dat best een valide tradeoff.
NoSQL database klinken erg interessant, maar voor elke serieuze website heb ik wel iets als transacties nodig en dan doe ik liever alles in gewoon een ACID compliant DBMS voor de consistentie.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True